瞎扯淡 写象棋 AI 很厉害的人,下象棋也很厉害吗?

QueXuQ · 2014年04月11日 · 最后由 marksloan 回复于 2014年04月17日 · 13216 次阅读

写象棋 AI 很厉害的人,下象棋也很厉害吗?

还是说有可能他们仅仅只会象棋的皮毛而已。

不是遍历棋谱找到最优手么,

不一定吧。。不过那些肯定是需要一些知识来搞那些“启发”的东西的。

#1 楼 @ywjno 没有那么简单,它的实现难度在于解空间太大了,时间也有限,所以要在一定的时间和空间范围来求解。

这种 AI 无非就是模型、算法的应用,因为机器学习训练的过程,用到相关的模型。但是 BI 开发,就要很熟悉业务。

#2 楼 @Tony612 可以这么说吗?不需要很会象棋,也可以写出厉害的 AI。但是想进一步提升,就需要更了解象棋怎么下?

#5 楼 @QueXuQ 应该可以这么说。一个写的差不多初级的 AI 程序,应该可以搜索到 8~9 层的样子,如果启发算法 (也就是怎样走是有希望的走法) 还行的话,可以想见可能比一般人要厉害一点。但是如果想要更厉害的话,我觉得要不就是优化启发算法使得策略更好,要不就是优化剪枝来加快程序执行,从而算到更深的层。

如果你遍历的话,会生成一棵树。在树的叶子上你会有很多种局面。如果下象棋不历害,你就很难判断哪个局面更好。只有能找到好的局面,然后你才能尽可能的往那个局面走。

代码写久了,象棋很厉害。。。话说局面这种事,我喜欢乱战,弃子争先。

这种古老的 game 到现在基本都有固定招式的,比如国际象棋的 开局、残局 基本也就那么几种,中盘用 hash table 找最优手。当年 深蓝 能找到 12 步棋这算不错了吧

国际象棋的 AI 比较常见大概因为国外研究的多,AI 算难的一个是围棋、另一个就是日本将棋了

https://github.com/timebug/harmless 我同学大学写的一个项目。

没法直接回答,但是我记得在 卡斯帕罗夫(陪深蓝玩那位)的 棋与人生 说有举行过人 + 电脑(深蓝有的时候也需要人来调整策略)辅助的国际象棋比赛,比较牛的,不是国际象棋大师,也不是很懂计算机的,而是两者都懂的人。但我记不清具体的规则是什么了。。。

只知道最简单的方法是对所有可能尽可能的穷举,然后给每一种可能的情况一个评分(是否更有利),下一步是分数最多的那个。

跑下题,卡斯帕罗夫有一次推算了 20 步 +(可能是 36 步吧。。。),但他自己也说忽略了大量的可能情况。

再跑一下 还有某个大师,下着棋,大脑中有歌谣想起,于是收到了启发。。。于是赢了。。。人在想出很难的问题的答案的前一刻的大脑是非常平静,然后突然爆发。good idea 也许不是“想”出来的,而是“不想“出来的。

随便一提,现在国际象棋方面,难点不是如何让计算机更厉害(据说的推算能力是 200 步),而是如何让计算机笨成不同等级。

我当年学象棋的时候,我爸说只要你每下一步棋都能想到后面三步可能的下法,你的水平就算“比较不错”了。以前有个我同学写了个五子棋 AI,仅仅向后推算 5 步,就不是那么容易能下赢了,感觉这个和编写者的下棋水平没什么关系吧,对于比较简单的棋类游戏,只要穷举足够的可能性,人类的大脑总归是有跟不上的时候。

我们县城里小朋友不知从什么时候开始从小就要去学国际象棋,也诞生了几个国际大师级的人物。 我不会,但是认为 不怎么会下国际象棋的人也写不出来什么象棋程序。 就好象玩游戏小白的人,也不会写出好的游戏脚本出来。

主要就是减枝和估值,估值多数用机器学习,实际上就是概率统计。更好点的可以用多台计算机并行处理。

写游戏很强的人,不一定玩游戏很强,特别要反应速度的游戏

需要 登录 后方可回复, 如果你还没有账号请 注册新账号