棋类计算基础

五子棋教室


#1 棋类计算基础 作者:江南新绿 发表时间:2007-12-11 22:36:52

随着人工智能的日益发展,我们对棋类的认识更进了一步,比如象棋和五子棋,往往被认为是开局+残局的架构,侧重点是:苦练残局,背诵开局,两头加强后,中局能力水涨船高了.而模仿这种理论的做出来的软件的结果大家也都看到了,和人类的水平有很大的一段差距.当最后不能简单几步杀出的残局,就往往自杀了.而目前比较成熟的人工智能软件,都采用了启发式的算法,就是说,不完全依赖于最后是不是能够取胜,而是以函数评价给出指导,结合算法的步骤的多少,最后综合性的评价.

有些人认为计算是神秘的东西.为什么阅读过大师的文章,通样是掌握了文章的观点,为什么下的棋的效果也不尽相同?

原因在于在现实当中,当棋局比较复杂之后,变化的因素很多,很难准确的说出是什么?就像我们听到门外有响动的时候,叫一个人去看一下门外有什么,在那个人回来告诉你发生了什么之前,那种状态和我们揣度棋局有类似之处.如果你的经验足够,门外有什么似乎能猜个八九不离十,但同样的声音有时却代表了不同的含义.棋局的可能性也往往如此,一个开放的棋局,往往存在一种以上的解法,是不是有必要把那些多余的走法都了解一遍.有些人会联想到可以对不必要的走法进行剪枝.可现实的复杂性在于,你不知道连续的走法是否会产生蝴蝶效应.连续的若干步走法是不是能够掌控局势从平稳到复杂,再到平稳.

这些也是人工智能目前还不能达到的高度.所以说对于棋局来说,既有封闭的计算(有标准答案),也有着开放的计算.(没有标准答案,只有参考答案).对于后者,我们不能仅仅从理论上去理解棋局,只有深入进去,更多的参与.最终从万千的棋局中不断的提取,杂糅,最终得到一个大致的估值.有了这个估值之后,你的计算就可以开始轻松了.当你看到一个估值为从40-50的棋局,那么上限和下限都很接近,简单计算下就行了,不用算的太多,如果是一个估值为-60到+80的棋局,那么就得深入的算一下最后的变化了.弄错一步就完蛋了,当然计算的结果也不必到终局,只要觉得棋局朝着自己有利的方向且比较稳定就足够了.

前面简单讲了一下估值的重要性,现在来说一下性价比了.计算的也并不是多多益善的,算的多了效率自然就差了.尤其是我们离标准答案越近,那么效果越不明显,很难说我们能够分辨的清一个非常接近圆的椭圆.棋局也是如此,很多时候有多个备选答案是接近必胜的,而真正必胜的答案确少的可怜.当然这只是理论,和实战关系不大.分类是很重要的,什么样的走法能够挑起战斗,什么样的走法能够平稳局面,什么样的走法比较理智,什么样的走法近似疯狂.虽然有些看来是极具有个性化的,计算机难以模仿的.但是我们必须看到下棋是比较复杂的,单调的算法显然是不满足要求的.而提高棋艺的必由之路就是认识各个棋子的目的,掌握不同的走法.

好了,就写到这里吧.认识浅薄,不通之处还望原谅.

[ 有志青年 于 2007-12-11 22:55:11 时奖励此帖[金币加 20 威望加1]