西洋跳棋求解之路:挑战与突破
1. 西洋跳棋求解方法
求解西洋跳棋是一个复杂的过程,我们结合了构建残局数据库(从游戏结束反向求解到开始)和启发式搜索(从游戏开始正向求解到数据库中的已证明结果)两种方法。具体的证明过程包含以下三个部分:
- 残局数据库(反向搜索) :我们拥有八子残局数据库。前向搜索程序只需搜索到棋盘上棋子数量为八个或更少(希望有一天能到十个)的局面,残局数据库就能给出已证明的结果。
- 证明树管理器(搜索管理) :从西洋跳棋的起始局面(二十四个棋子)开始,逐步构建求解方案。它维护一个正在进行的证明大纲(搜索树),遍历该树,并生成需要探索的局面以推动证明的进展。这些局面由证明求解器进行评估,结果用于更新管理器的证明树,这个过程会一直重复,直到游戏被求解。
- 证明求解器(正向搜索) :可以有多个证明求解器。每个求解器由证明树管理器分配要搜索的局面。给定一个局面,该组件使用两个具有不同搜索算法的程序来确定局面的值。一个程序使用α - β搜索(CHINOOK),另一个使用证明数搜索。使用两种算法增加了我们成功的机会,因为很多时候一种算法找不到证明时,另一种可能可以。
为了更直观地理解,我们可以用一个类比来说明。想象一个警察局,有一位负责凶杀案部门的侦探。每次有人被谋杀,侦探都要破案。侦探可以一次处理一个案件,也可以同时关注几个案件。他手下有许多警察,每个警察从侦探那里得到一项任务,比如调查犯罪现场、跟踪嫌疑人或询问证人。警察将结果报告给侦探,侦探则负责将所有线索拼凑起来破案。警察可以向专家寻求帮助,比如在判断犯罪现场找到的枪是否为凶器时,弹道实验室
超级会员免费看
订阅专栏 解锁全文
37

被折叠的 条评论
为什么被折叠?



