我正在尝试开发一个国际象棋程序。这将是对树的常规蛮力搜索,唯一不同的是评估。最初,我将使用 Claude Shannon 设计的标准评估器,以便更容易测试它是否在基础上工作正常。移动列表生成和它周围的所有其他基础设施都可以正常工作。
现在进行搜索:我想使用wikipedia的 alpha/beta 修剪代码示例。这就是一个问题:它对一件事模棱两可;应该从谁的角度进行评估?我已经用谷歌搜索了好几天(字面意思),但没有一个例子明确说明这一点。所以:评估应该是
- 从那个深度的“当前推动者”的角度来看
- 从那个深度的“当前行动的对手”的角度来看
- 从树根的移动者的角度来看,例如正在为其进行树搜索的人(AI 玩家)
- 从树根的移动者的对手的角度来看
?
我实验性地尝试了 rootSide、side、rootOpponent,基本上所有选项,然后让它们互相对抗。这样做的结果是,“在那个深度的当前推动者”将是使用的那个(它最常获胜),但是针对任何其他引擎测试该版本会导致 100% 的损失。
当然,维基百科会更新得更清楚!(请忽略维基百科历史中的注释:那是我自己写的,可能不正确,所以我删除了它)