首先纠正楼主的一个说法:中国象棋的棋盘是81个点而不是64格,64格的是国际象棋。
象棋这项运动的属性更近于科学,而非艺术。象棋棋盘就64格,对人类来说是千变万化,但对软件而言,就是一个数学问题,一个科学问题,是电脑的能力可以穷尽的。
基本同意楼主说象棋的本质是计算,但不同意把象棋划入科学范畴,也不同意电脑的能力可以穷尽的说法。楼主观点的误区是首先假定电脑软件可以对象棋博弈进行精确的计算,从而导出象棋这项运动的属性更近于科学,而非艺术的结论。
电脑软件下棋的思考方式与人脑的思考是不同的,人脑下棋是根据对棋理的理解和前人的实战经验来思考棋步的,而电脑软件是人脑设计的程序,用审局函数给象棋的每一子力及所在位置和形态估值,以评分的方式找出最佳的招法。这种计算方式虽然与数学有关,但对象棋博弈而言却无法得到数学意义上的绝对精确结果。函数既然是人写的,自然带有作者个人对象棋的理解的特性,象棋软件的编写只能尽可能地接近棋理,而不可能完全符合棋理。这就是为什么不同品牌的棋软在博弈中表现出水平不同、风格不同及效率不同。很多实际使用棋软的朋友都有这样的体会:有很多残局软件打分优势500或更多,但实际纯人判断是和棋,软件打分只优势3,40分,纯人判断这棋是有机会的!面对我们所谓的刀局,软件往往判断不出来而导致输棋。本来是可以赢棋的局面,但软件的死板的、机械的审局方式往往会通过兑子简化棋局的方式而得到最高的分数,但最后的结果却是本来能赢的棋却和了,如果是纯人或是软件人机操作就会避免兑子简化,保持棋局的复杂性而最后赢棋。这就是软件本身的无法避免的缺陷,就像人工智能再高的机器人也无法模仿得与真实的人类一模一样,机器人也许知识渊博,计算能力远超人脑,但永远无法表现出人灵性。象棋软件也一样,尽管计算能力远超人类,但不会有人类下棋时的灵性。
撇开棋软程序本身的缺陷不谈,就现今的硬件水平而论,也无法令棋软达到真正意义上的精确计算结果。计算机引擎棋步搜索,是“引擎”驱动着程序。但就中国象棋博弈树的搜索而言,博弈节点相当庞大(它会成指数增长),因而搜索(限定层数以内的)整棵树是一
件相当费时的工作——其时间复杂度为O(bn)。其中b是分枝因子,即针对各种局面的合法着法的数目的平均值,n是搜索的深度。中国象棋在中盘时平均着法数目大约是40种左右,那么搜索4层需要检查250万条路线,搜索5层需要检查1亿条路线,搜索6层需要检查40亿条路线……我们以现在比较典型的16核机,超频3.5G,按照中局搜索速度20M/秒个节点,同时不经“裁剪”采取蛮力搜索(穷尽)的方式,搜索7层以上所需的时间是你难以想象的。如果按照每一步平均有40种可行着法,每局棋平均走90步,那从开始局面展开到分出胜负,则要考虑 4090=1.5× 10144 种局面。这一天文数字要比地球上的原子数目还要多,即使用世界上最快的计算机进行计算,直到地球毁灭也无法算出第一步的着法。由于完整的博弈树过于庞大,蛮力搜索所能达到的层数十分有限,在象棋博弈中几乎没有实用价值。若想在指定时间内将搜索深度加以提高,一方面需要改进硬件与优化程序代码,提高单位时间内搜索的节点数;另一方面就需要像人类棋手一样有选择性地进行搜索,即对博弈树进行必要的裁剪-------搜索裁剪算法。而正是由于软件本身使用了裁剪法,使得在博弈中不可避免的出现计算的盲区和漏算。也许有人会说现在的硬件水平不行,但终有一日硬件能达到软件真正意义的穷举法而不再使用剪裁计算,这一日能不能到来我不敢说,但至少在你我的有生之年是不可能达到的。另外,象棋软件博弈并非像科学领域里对某一题目的计算,科学计算可以用几个小时、几日乃至更多时间去计算某一命题,但电脑软件的象棋博弈是有局时和棋步的时间限制的,在那么短的时间实现真正意义的穷举法是不可想象的。
我的结论是:不能把象棋这项运动简单地归纳于冰冷的数学和科学的范畴,而抹杀象棋本身的艺术色彩和博弈中所表现的人的灵性!