【问题标题】:Alpha beta pruning in Checkers (test cases to prove the efficiency)Checkers 中的 Alpha beta 剪枝(证明效率的测试用例)
【发布时间】:2014-01-05 09:23:35
【问题描述】:

我开发了一个使用 alpha beta 剪枝的并行跳棋(英文跳棋)游戏,以便找到机器可以做出的最佳移动。我想知道增加游戏树的深度/级别并使用 alpha beta 剪枝算法对其进行搜索是否必然会演变出最佳的移动?

我在低级别机器上运行,我无法将深度加起来超过 9。我已经使用以下测试用例检查了我的程序,但考虑到深度1到9如下。

case 1
+B+B+B+B
B+B+B+B+
+B+B+B+B
O+O+O+O+
+O+O+O+O
A+A+A+A+
+A+A+A+A
A+A+A+A+           output: (5, 0) => (4, 1)

case 2
+B+B+B+B
O+O+B+B+
+O+O+B+B
O+B+O+O+
+O+O+O+O
A+A+A+O+
+O+O+O+O
O+O+O+O+           output: (5, 2) => (4, 3)

case 3
+O+O+O+O
O+O+O+O+
+B+O+O+O
O+O+O+O+
+B+B+O+O
O+A+A+O+
+O+O+O+O
O+O+A+A+           output: (5, 2) => (3, 4)

case 4
+k+O+O+O
O+B+O+O+
+O+O+O+B
O+O+O+B+
+O+O+B+O
O+O+O+O+
+O+O+O+O
A+A+A+A+           output: (0, 1) => (2, 3)

case 5
+B+B+B+B
O+O+O+O+
+O+O+O+O
O+O+O+O+
+B+B+K+O
O+A+O+O+
+O+O+O+O
A+A+O+A+           output: (5, 2) => (3, 0)

case 6
+k+O+O+O
B+O+O+O+
+O+O+O+O
O+O+O+O+
+O+O+O+O
O+O+O+O+
+O+O+O+O
O+O+O+O+           output: (0, 1) => (1, 2)

解释在哪里,

O- Empty dark square
+- Empty white square
A- Machine's pawn
B- Opponent's pawn
k- Machine's king
K- Opponent's king

我计算了博弈树的叶节点的启发式值,即棋盘中剩余的机器棋子数减去玩家对手棋子的数量,因为国王的能力比棋子强大,所以启发式计算每个国王作为两个普通棋子,使用它应用 alpha beta 搜索。

我想我的程序运行良好,但是当我将深度增加到 9 时,为游戏树的叶节点计算的启发式值最终没有改变(如果我进一步增加深度,它可能会改变)。谁能给我一些测试用例,我可以用它来证明深度 9 内的效率?

【问题讨论】:

    标签: algorithm testcase alpha-beta-pruning


    【解决方案1】:

    你的问题很开放,但这里有一些提示。

    1. 为叶节点计算的启发式值不依赖于搜索深度,因为它们是叶节点。所以你的评论“为叶节点计算的值......没有改变”没有多大意义。也许你的意思是根节点的值没有改变。

    2. 通常增加搜索深度会导致更好的移动。如果您对所有搜索深度 1..9 都获得相同的“最佳”移动,那么某处存在错误。

    3. 评估函数是 alpha-beta 搜索解决方案中最重要的部分。您需要一种比仅以简单的方式计算材料更好的评估功能,尤其是在您负担不起深度搜索的情况下。

    4. 通常人们不使用简单的 alpha-beta,而是使用主变分搜索、迭代深化、空步启发式等方法来提高算法的实际效率。

    5. 构建您自己的测试用例,在其中您知道实际的最佳操作是什么,并验证您的算法是否可以找到它。例如,您知道一名玩家可以在三步中获胜的最终游戏情况。

    【讨论】:

    • 感谢您的回答,但请注意您的第 1 点,我特别提到了整棵树的深度,搜索深度等于它。因此,当树的深度发生变化时,叶节点的启发式值往往会改变(根节点的值确实取决于每个叶节点中的值)。不是吗?
    猜你喜欢
    • 1970-01-01
    • 2017-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多