gobang icon indicating copy to clipboard operation
gobang copied to clipboard

在靠近边上开局,棋力下降明显

Open zhangshun97 opened this issue 6 years ago • 6 comments

你好,我之前按照你博客的思路有实现过python的版本。刚刚又和你最新(2018/07/07)的版本下过一局,我执黑在角落开局,最终赢下了比赛(我是休闲玩家,很多名词比如算杀都是在这次写AI的时候才第一次听说)。我就是一路感觉下来,基于极大极小搜索的AI引擎好像对于这种“角落开局”,会陷入一种困境——进行无意义冲四、往边上下、等等一些非常“愚蠢”的下法,最终就导致其棋力下降(如果我执黑在中间下的话是很难赢的。。)。 不知道作者你有没有思考过这个问题,如有想法,还请赐教!谢谢!

zhangshun97 avatar Jul 15 '18 21:07 zhangshun97

@zhangshun97 目前可行的方法应该是通过权重来做,给靠近边角的棋增加一个较低的权重,比如 0.8。这样电脑就会倾向于往中间走。

如果有神经网络的话应该能完美解决这个问题,这其实是电脑大局观 的一部分,传统的搜索算法本来对局势的判断就不理想。

lihongxun945 avatar Jul 16 '18 01:07 lihongxun945

@lihongxun945 谢谢!请问这个所谓的权重,是直接乘在该点的score上嘛?因为你的整个体系都是基于score的嘛,当初也有想过加权重之类的,但是就怕掌握不好度,会出现比如为了往中间走而走出一些不好的棋?不过又感觉这样的其实可以通过一定的搜索深度来避免……嗯……感觉python的瓶颈还是搜索的不够深orz,我实现的版本也只能做到在10秒内启发式搜索最多给10个点的情况下执黑搜6层,执白搜5层,VCF和VCT是15层(不过感觉算杀这块速度还行),不知道作者你在JS上的效率大概是如何的!

zhangshun97 avatar Jul 16 '18 11:07 zhangshun97

@zhangshun97 第一个问题,我觉得可以有两种实现:直接在分数上乘,或者增加一个额外的权重字段。 第二个问题,我用JS可以搜索8~10层,不过偶尔会超过10秒。这是在我用了一些优化技巧后的结果,你可以看看我新写的教程的性能优化一章有介绍:性能优化

lihongxun945 avatar Jul 17 '18 02:07 lihongxun945

#10 666,厉害厉害

jggnice avatar Mar 23 '19 06:03 jggnice

边角 确实棋力下降的很厉害,传统算法还是不太理解外势和空间的概念。。。

XuXING0430 avatar Aug 14 '19 08:08 XuXING0430

我正在向10秒以内而努力,我目前的程序9层平均就是30秒,正在拼命的想办法压缩时间

ybwsdsx avatar Feb 09 '23 12:02 ybwsdsx