我不是专业做软件的,可能有些东西会说错
1、分支的多少
现在的棋类算法应该是采取类似于穷举法的树型搜索,我看过奇兵的思考,似乎每一层都是从头开始列举,可能它中间有一些筛选的程序。
这样问题就来了
象棋好,国际象棋好,对于每一方,每一步走子的可能占少数都是相当有限的,一般来说开局第一着红方就只有46种走法(若考虑局面的对称性,应该不多于25步,不过一般来说,以后就没有对称性这个问题了)以后走法的可能性都不会比这个大很多,以我今早用奇兵分析局面来说,我记得在分析某一局时,开局了才9个回合左右,奇兵列出要分析的种类(反正它写着45,每一层都是从1到45数一次,每个序号代表一种着法,数完了就到下一层)也就是45,所以,估计实战最多是60至70吧(理论最大值应该是112左右,但实战里严重不足),中国象棋现在一局高手平均数算作60左右吧,大家可以想象,的确很多棋都可以下到无限长回合,比围棋还长,但一般来说,过了60回合胜负和都已经很显明显了,那时候电脑的作用已经不大。顺便提一句,奇兵的1.63版到了残局只要进攻子力数不大于二(包括兵)的话,就下得比人还差了
围棋现在一局高手至少是150手,即75个回合,这样算来,即使是最后一手,也有360-149=211种可能
这样算来,至底限度多了15个回合,30着,而算法总数是每着累乘的
从着法的可能选择数多少上,大家可以看出,围棋的着法可能性选择总数(即从开局到终局的总数)至少是象棋的200的30次方倍以上
2、着法的筛选
大家知道象棋和国际象棋现在会有一套相对完善的形势判断算法,以前我略看过一个算法,好象是线性的,就是把各要素的分值(例如子力对比,王的安全,各子力控制的交叉点,分重要的格子和不重要的,等等)乘以一定的系数再相加,现在的不知怎样了,应该差不多吧。这样一来,我们想象就可以很容易把一些明显的错误着法筛选出来,例如第一着红方走车一进一,电脑算到黑方炮8进7后,黑方的王很安全,但已经大了一只马,所以车一进一可以筛掉,甚至第一着炮二进七也可以筛掉,因为黑方控制的交叉点重要性和红方的对比和未走炮二进七之前有了质的变化。所以,现在象棋和国际象棋筛选算法的效率是相当高的
但围棋就不同了,因为现在还找不到比较成熟的筛选算法,这和围棋的特点有关,即使我把一只子投到1路上甚至是角上,也可能是一个巧妙的手筯,因为围棋里,弃掉一两只子是十分常见的,甚至我们经常可以看到类似于这样的新闻:“古力对形势作出冷静的判断,弃掉一大块,形成大转换,使李世石无处翻身。”我们可以看到,有时即使把一条大龙弃掉了,也未必是错着
所以,围棋着法的筛选和其它两种棋特点是很大不同的,现在很明显,未找到成熟的办法。
上述两点造成了:围棋要算的着法本身就比起其它要多得多,再加上象棋和国象有极高效率的筛选程序,所以国象和中象的电脑软件比较容易找到相对正确的着法。
不过这并不代表围棋变化多,我还是坚持这个观点:变化多不多,要看这种棋有多少人去研究(即专业棋手的多少),多长时间后,变化才能枯竭(指出现大面积和棋)。
在这个意义上说,中国象棋是最少的,因为中国人再多,都是只一个国家,一个民族(即华人)去研究,系统研究大约始于明清时期,真正的系统研究始于建国后,到了现在,就已经整天想办法限制和棋了。
国际象棋明显比中国象棋多,它集中了全世界不太贫穷的国家的棋手去研究,系统研究大约始于17世纪,真正的系统研究大始于1850的前后几十年(以斯坦尼茨为标志),到了近几年,才开始说太多和棋。
围棋就可想而知了,它的系统研究时间和中国象棋差不多,只有三个国家去研究,这几点都不比国际象棋强。但它用贴目制从根本上取消了和棋,而且会时不时根据统计数据改变贴目数,使双方都要改变策略,所以,到目前来说,围棋是远未到枯竭的时候,但并不代表它的变化数一定最多,因为对于最高手来说,每一着正确的着法就只有几着而已,可能布局会多一点。
和棋虽然并不代表不好看,但围棋没有和棋都要改变贴目数,我们中象更要想多点办法了
正常情况下 象棋是40回合左右 围棋是100回合200手左右这是其一
其二 每一回合符合规则的着法 围棋远比象棋多,这个是计算力关键
其三 就是楼主所说的着法筛选,这是靠比较局面评估函数值大小来实现了 象棋按子力分值占大头 ,位置分值(含王的安全性,控制格子数等等)占小头的方法可以做出不错的评估函数。这方面围棋很难办,一块棋究竟是厚势还是被攻对象?一颗棋筋重要还是一块棋重要?电脑很难判断。
其一其二通过将来计算机能力的增长还可以解决一部分 其三是现有计算机体系没法解决的: 模糊判断综合判断一直是计算机的弱项。问题在这里 不然光看计算力,现在的电脑比起象棋将族时代的386不知强了多少倍,09年围棋棋软mogo更是使用800cpu的超级电脑,但是棋力仍然是不入流。
其实象棋软件残局下不好和围棋软件是一样的问题。到残局的时候局面评估函数会出问题。到残局,子力判断容易出大错。为了一点子力把胜局走成和局乃至输棋是常见的。例如在开局和中局 一个车比马炮或者双马强是没问题的,但是残局面对对方士相全的时候电脑可能会做出保留车而不是保留马炮的错误决策。类似的问题残局还不少的。
结论是 围棋软件要突破,光靠计算机计算能力增长是没用的。计算机体系必须在模糊判断和综合分析有突破性进展。必须更像人,象棋残局亦然。
最后 喜爱象棋的人 不必操心于电脑象棋,象棋职业赛事不景气的问题。自己在下棋过程中得到快乐就行了。我就喜欢自己看排局创作和实用残局,对看大师下棋一点兴趣都没得。
这么好的贴,被打入冷宫了。
有一点似乎应该澄清,围棋软件水平太差,不是计算机的问题,也不是围棋的问题,而是“人”的水平太差。
人类到目前为止还没有找到一个满意的评估模型,仅此而已。
有一点似乎应该澄清,围棋软件水平太差,不是计算机的问题,也不是围棋的问题,而是“人”的水平太差。
人类到目前为止还没有找到一个满意的评估模型,仅此而已。