我正在尝试使用 alpha-beta 剪枝和转置表来实现极小极大算法。这是针对可能循环的 pacman 代理,因此必须特别注意这一点。如果一个状态(游戏和回合的状态(pacman 或 Ghost))在换位表中,并且之前看到的状态是该节点的父节点(祖父节点,...),则可以将其丢弃。这适用于没有 ab 剪枝的极小极大。从之前的搜索来看,tt(转置表)与ab的实现似乎要困难得多。我试图使代码尽可能清晰,它基于伪代码Artificial Intelligence: A Modern Approach。我希望使用第一种方法使最终结果尽可能接近。
我发现的每个伪代码都以非常不同的方式定义:
大多数差异看起来只是表面上的。但这些代码都没有完全符合我正在寻找的结构:用 ab 剪枝除以 minValue 和 maxValue 的 minimax
提前致谢,
请询问任何进一步的解释
algorithm chess artificial-intelligence minimax alpha-beta-pruning