我的决战黑白棋从开始编写到现在已经大约经历了1年的时间,其中有几次是重大改编,可以说整个数据结构完全重写了。
决战黑白棋刚开始的时候使用的是二维数组棋盘,估值函数基于棋子位置价值加行动力、潜在行动力,搜索深度大约是中局6层+终局15层。棋力很不理想,如禁止它进行终局搜索,我自己可以不费太大精力取胜。可见其估值函数是很差的。
其后的一次重大改写是将二维棋盘改成了一维棋盘,是速度提高了20%左右,但由于估值函数的问题,棋力并没有加强,直到我改写估值函数。
其后的估值函数在相当长的一段时间内都是棋子位置价值+行动力+潜在行动力+稳定子。这个估值函数可以说是比较强的,加上对终局搜索的改写,终局搜索加入奇偶搜索后速度大大加快。这时的决战黑白棋可以中局搜索8、9层,终局可以达到18-20层。这样的棋力已经非常强了。人要取胜几乎是没有可能的,我下载了国内的十多个著名的黑白棋软件,只有《伤心黑白棋3.1》和shines的《黑白棋世界1.0》能够战胜我的决战黑白棋。其中《黑白棋世界1.0》和《决战黑白棋》的棋力相差无几,但《伤心黑白棋3.1》要强很多。
很早就听说《伤心黑白棋3.1》是基于模板估值的,并且据说搜索深度最大达到了中局18层+终局20层,终局20层对我来说到没什么,但中局18层却是无法想象。想必一定采用了前期剪枝。但无论是前期剪枝还是模板估值我那时都还不懂,对于这个号称国内第一强的《伤心黑白棋3.1》一点办法都没有。
于是开始研究模板估值的论文,期待着能够大幅度的提高棋力。关于模板估值的文档很少,中文的更是没有。只找到一篇,英文的,而且讲的也不是很详细。断断续续的看了很久也没能掌握到要领,一直也没能付诸实践。后来用了一套简单的模板
决战黑白棋刚开始的时候使用的是二维数组棋盘,估值函数基于棋子位置价值加行动力、潜在行动力,搜索深度大约是中局6层+终局15层。棋力很不理想,如禁止它进行终局搜索,我自己可以不费太大精力取胜。可见其估值函数是很差的。
其后的一次重大改写是将二维棋盘改成了一维棋盘,是速度提高了20%左右,但由于估值函数的问题,棋力并没有加强,直到我改写估值函数。
其后的估值函数在相当长的一段时间内都是棋子位置价值+行动力+潜在行动力+稳定子。这个估值函数可以说是比较强的,加上对终局搜索的改写,终局搜索加入奇偶搜索后速度大大加快。这时的决战黑白棋可以中局搜索8、9层,终局可以达到18-20层。这样的棋力已经非常强了。人要取胜几乎是没有可能的,我下载了国内的十多个著名的黑白棋软件,只有《伤心黑白棋3.1》和shines的《黑白棋世界1.0》能够战胜我的决战黑白棋。其中《黑白棋世界1.0》和《决战黑白棋》的棋力相差无几,但《伤心黑白棋3.1》要强很多。
很早就听说《伤心黑白棋3.1》是基于模板估值的,并且据说搜索深度最大达到了中局18层+终局20层,终局20层对我来说到没什么,但中局18层却是无法想象。想必一定采用了前期剪枝。但无论是前期剪枝还是模板估值我那时都还不懂,对于这个号称国内第一强的《伤心黑白棋3.1》一点办法都没有。
于是开始研究模板估值的论文,期待着能够大幅度的提高棋力。关于模板估值的文档很少,中文的更是没有。只找到一篇,英文的,而且讲的也不是很详细。断断续续的看了很久也没能掌握到要领,一直也没能付诸实践。后来用了一套简单的模板