最小-最大搜索树表示
Min-Max Search tree representation
我想知道是否有人可以帮助我解决这个问题。我查阅了 Min Max 理论,但我仍然不知道如何将这个概念应用于下面的这个问题。
下面的树代表了竞争游戏中可能的走法,表明玩家 X 目前可以在走法 A 和走法 B 之间做出选择。
在玩家 X 的移动之后,玩家 Y 被允许 select 一步,然后玩家 X 被允许 select 游戏的最后一步。
树的叶节点被标记为 W、L 或 T,具体取决于该结局代表玩家 X 的胜利、失败或平局。
使用最小-最大搜索来确定玩家 X 是否应该移动 A 或 B 以获得 X 可以预期的最佳结果。
要查看最小-最大搜索,请参阅http://www.nada.kth.se/kurser/kth/2D1350/progp02/lecture2.pdf
玩家 X 应该移动 A.
玩家 X 应该移动 B。
我为节点添加了数字,并突出显示了 "max" 行。未突出显示的行是 "min" 行(即玩家想要最小化结果)。显然,L 是最低值,W 是最高值。我们通常为获胜分配 1,为失败分配 -1,为平局分配 0。玩家 Y 想让数字尽可能低(如果玩家 X 得到 L,他们就赢了)。玩家 X 想让数字尽可能高(他想要一个 W)。
如果游戏进行到节点 4,您知道玩家 X 无论如何都会赢。因此,4 标记为 W(或 1)。如果游戏进行到节点 5,您知道他输了,所以它被标记为 L。同样发生在 6(获得 W)。
要分配给节点 2,我们注意到 2 在 "min" 行上(轮到玩家 Y 了)。 4、5、6,分别有W、L、W。玩家 Y 可以通过选择节点 5 来最小化这一点,因此获胜。因此,玩家X知道如果玩家Y聪明,玩家X选择A就会输。
我们可以在另一边做同样的事情来表明如果玩家 X 选择 B,他会平局。因此,玩家X应该选择B。
当为 minimax 编写代码时,代码执行 post-order tree traversal 并通过查看后代为节点分配值。
我想知道是否有人可以帮助我解决这个问题。我查阅了 Min Max 理论,但我仍然不知道如何将这个概念应用于下面的这个问题。
下面的树代表了竞争游戏中可能的走法,表明玩家 X 目前可以在走法 A 和走法 B 之间做出选择。 在玩家 X 的移动之后,玩家 Y 被允许 select 一步,然后玩家 X 被允许 select 游戏的最后一步。 树的叶节点被标记为 W、L 或 T,具体取决于该结局代表玩家 X 的胜利、失败或平局。
使用最小-最大搜索来确定玩家 X 是否应该移动 A 或 B 以获得 X 可以预期的最佳结果。
要查看最小-最大搜索,请参阅http://www.nada.kth.se/kurser/kth/2D1350/progp02/lecture2.pdf
玩家 X 应该移动 A.
玩家 X 应该移动 B。
我为节点添加了数字,并突出显示了 "max" 行。未突出显示的行是 "min" 行(即玩家想要最小化结果)。显然,L 是最低值,W 是最高值。我们通常为获胜分配 1,为失败分配 -1,为平局分配 0。玩家 Y 想让数字尽可能低(如果玩家 X 得到 L,他们就赢了)。玩家 X 想让数字尽可能高(他想要一个 W)。
如果游戏进行到节点 4,您知道玩家 X 无论如何都会赢。因此,4 标记为 W(或 1)。如果游戏进行到节点 5,您知道他输了,所以它被标记为 L。同样发生在 6(获得 W)。
要分配给节点 2,我们注意到 2 在 "min" 行上(轮到玩家 Y 了)。 4、5、6,分别有W、L、W。玩家 Y 可以通过选择节点 5 来最小化这一点,因此获胜。因此,玩家X知道如果玩家Y聪明,玩家X选择A就会输。
我们可以在另一边做同样的事情来表明如果玩家 X 选择 B,他会平局。因此,玩家X应该选择B。
当为 minimax 编写代码时,代码执行 post-order tree traversal 并通过查看后代为节点分配值。