象棋被穷尽了吗?
返回“棋软知识”
远远远远远远...没有。
目前象棋圈软件爱好者跑出来的大残局库子力组合,例如有车炮对马炮士象全(四大子+双士双相)、双马单相对马卒双象(三大子+一兵+三相)、双炮单士相对马缺士(三大子+双士三相)、双马炮单士对车双士(四大子+三士)、炮兵单缺相对炮卒(二大子+二兵+双士一相)等等, 可见距离“穷尽”(十二大子+十兵+四士四相) 极其遥远。
目前最准确的象棋状态总数估算是《智能系统学报》发表的《动态规划求解中国象棋状态总数》,该文作者在知乎上也有发表中国象棋状态总数 ,尽管存在些小问题,但数量级在40位数左右或者保守说接近40位数是没问题的,理论最少存储都需要接近30位数的TB,而全球数据总量加起来恐怕不足14位数的TB。至于硬件的计算量,没有存储只会产生巨量的重复计算。即使退一万步无视存储,不重复地计算局面,双路9654满载运行皮卡鱼2023年版本时开局平均每秒计算3亿局面,考虑到皮卡鱼使用神经网络评估减速,就假设使用极简评估算它每秒10亿局面,再假设全世界有一千亿台双路9654,算一百年也只有30位数的量级,还是差太多。
浮点计算与象棋无关,量子计算机目前也只是解决特定问题(目前在这点上,被拿出来说的特例反而代表了只能解决极少问题),尚无看见解决象棋的可能性。
另外,有言论说“象棋合理着法有限所以可以基本算尽”,问题就在于所谓合理着法是需要穷尽结果支撑的,无法知道某一招是不是不合理的,现在强引擎剪枝都剪得极多,剪枝的目的就是为了都搜索“合理着法”,但是总有很多局面引擎也很难计算出优解。
即使目前的引擎,偶尔也能发现评估严重误判的局面,可以合理推测——没发现的严重误判局面数量也不少,只是囿于在正常均势局双方很难走出来(象棋容错率高)。
在容错率低的局面下可以很好展现象棋软件的误判情况。一个例子是引擎在高优局的表现,50%和棋率的高优势局,即使是再强的机器进行自对弈也可能产生“某局面这次走出红胜,但下次走该局面走出和棋”的情况,有时候引擎评估己方优势极大但仍然最终和棋,有时候引擎评估己方优势小但仍然能走赢,这种例子比比皆是。