VV游戏

 找回密码
 立即注册
查看: 200|回复: 6

3年,一个中国象棋ai的大冒险

[复制链接]

2

主题

6

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2022-12-5 14:56:17 | 显示全部楼层 |阅读模式
这篇文章本来是关于这两天写的一个py版本的中国象棋ai的,也就是这个项目:
不过其实这个项目背后有几个挺有意思的故事,所以这篇文章更多的关于那几个故事。
说来也挺有趣,2020 年的时候写了一个 py 版本的象棋 ai  https://github.com/bupticybee/elephantfish



我和elephantfish下棋

elephantfish全部代码就 100 多行,基本是学习性质的一个项目,实现完发现 ai 很弱,就我不失误的话都能赢的水平,实现完了之后挺失望的,感觉没整好这个活。
这个项目实现之后我在其之上做了一些实验,也算学到了一点东西,基本项目目的达到了,然后基本就放在那里没管了。项目的star什么的也不多。我以为这个项目应该渐渐就凉了,不过之后发生的事情有点出乎我的意料。
揭棋ai



首先实在2021年,有一个小伙子从issue里找到我,说是在elephantfish基础上搞了一个揭棋ai。揭棋,其实就是把中国象棋的各个子洗牌,面朝下然后下棋:



揭棋

我当时觉得,elephantfish底子其实不好,实力不强,还要改成非完美信息博弈的ai,这个跨界跨的有点大,这能强得了么?
不够随着他的这个揭棋项目的深入,我发现事情没这么简单,小伙子进行了非常密集的实验,并且修改了很多搜索逻辑,经过不停的改进,后来这个ai基本已经可以打赢作者了,而且拿出去排位段位也很不错。
后来小伙子在我的建议下甚至实现了c++版本,ai棋力更是已经不可同日而语。
这个事其实对我启发很大,特别是,当时其实沉迷于类alpha-go、alpha-star算法,总是觉得这些规则奇奇怪怪的棋类游戏都应该给自对弈去学习,启发式算法上限太低,没想到传统方法也可以做到这么好。这个揭棋ai作者在研究算法的过程中其实融入了非常多自己的知识到算法的各个方面,包括非常多领域知识:


甚至包括很多搜索算法本身的改进


而且仔细想想,这一套下来成本可比自对弈的强化学习、alpha go这种算法便宜很多,只需要对游戏的深入理解就可以。
对我启发尤其大的是,即使是非常简单的一个算法,经过不停的,持续的优化,也可以变得非常强。而且原来我认为只在完美信息博弈上能work的算法,其实到非完美信息博弈上,也有可能work的很好嘛。

机...机械臂

还有两个项目都是最近在网上冲浪的时候发现的,做的东西都很类似,都是在elephahtfish的基础上,给做了象棋机器人。
一个是在英伟达论坛上发现的:多么孤独的灵魂,才能用Jetson NANO做个象棋机器人
中国象棋自动下棋装置_腾讯视频



“如虎添翼?”

这个作者就非常坚持了,花了两年时间(两年!!)打通了一个使用机械臂和人下象棋的流程,这里边想必也是踩了很多坑,更不用提作者是个文科生,很多东西都没有基础,这个系统非常硬核,令我映像最深的点莫过于,每次下完一步棋的时候,都需要手动接一下电路,来确认提交这一步,然后电脑才会走下一步。



很秀的手动接电路

不过比较遗憾的事,和作者父亲对局的时候,由于elephantfish的棋力实在就那样,就还是惜败了。

另一也是类似的项目,只不过大学生做的,也是用我的代码,然后使用了看起来3d打印了更先进一点的机械臂,也做了一个象棋机器人,还得了个什么比赛的一等奖:
【2022研电赛】安谋科技企业命题一等奖:基于EAIDK-610的中国象棋机器人对弈系统 - 极术社区 - 连接开发者与智能计算生态



象棋机器人

他们自己做了整套东西,包括单片机电路都是自己做的,不过和上面那个项目看起来框架似乎都差不多



象棋单片机



被ai将死

这个活整得还是不错的,至少下完棋不用接一遍电路,只需要按一下绿色的按钮就完事了,而且根据作者自己的描述,整套设备下来其实很便宜。
看到这些项目的时候心情挺复杂的,一方面有人愿意使用我的代码肯定很开心,但是另一方面,这个活我没整好啊,ai 的棋力其实不是很强,连我都下不过,我不知道这几伙人接入这个代码的时候是什么心情。
所以这两天就寻思着能不能整个好点的活,把 python 的象棋 ai 棋力整高一点。于是乎就有了文章开头的项目,思路倒是不复杂,基本就是把象眼的 js 版本整个翻译成了 py ,而且有了之前的象棋 ai 的经验,过程其实蛮顺利的,这回整完了这个活,我和 ai 下了一下,终于是可以稳定下过我了,于是我放心了,感觉这回稳了,之后要是有人想用我的代码整活,我至少能拍胸脯说,这玩意还是有点实力的。
全剧终,大家可以打打看,看看能不能打过这个 ai
回复

使用道具 举报

1

主题

4

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2022-12-5 14:56:48 | 显示全部楼层
致敬作者,BTW,您的德扑solver能不能加上nodelock的功能
回复

使用道具 举报

3

主题

5

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2022-12-5 14:57:12 | 显示全部楼层
现在已经有社区在维护项目了,我觉得你要的这些功能慢慢都会有
回复

使用道具 举报

1

主题

5

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2022-12-5 14:57:52 | 显示全部楼层
太棒了
回复

使用道具 举报

1

主题

5

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2022-12-5 14:58:01 | 显示全部楼层
这个社群在哪看啊
回复

使用道具 举报

1

主题

5

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2022-12-5 14:58:41 | 显示全部楼层
github
回复

使用道具 举报

2

主题

6

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2022-12-5 14:58:59 | 显示全部楼层
谢了[爱]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|VV游戏

GMT+8, 2025-4-8 11:49 , Processed in 0.106601 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表