我已经实现了带有 alpha-beta 修剪的 minimax 来玩跳棋。作为我的价值启发式,无论位置如何,我都只使用板上物质价值的总和。
我的主要问题在于实际完成游戏。深度为 14 的搜索与深度为 3 的搜索相匹配,因为该算法陷入了一个循环中,在一个角落里来回移动国王。深度 14 的玩家有四个国王和一个棋子对抗一个国王,具有显着的物质优势,但是,它只移动一个棋子。
我从同等价值的移动列表中随机选择了一个移动,这会导致更有趣的游戏(从而防止循环)。然而,无论哪个玩家使用了这种随机策略,结果都会变得更糟。
我不太确定如何解决这个问题。我应该更深入地搜索具有相同值的最佳动作吗?还是启发式有错?如果是这样,你会建议什么改变?
到目前为止,我已经尝试了一种简单的遗传生成算法,该算法优化了线性评分函数(占位置)。然而,随着算法的优化,它只导致了平局和相同的国王循环。
非常欢迎任何有关如何停止此国王循环的建议!