最小 - 最大搜索树表示

时间:2015-04-22 03:23:34

标签: artificial-intelligence minmax

我想知道是否有人可以帮我解决这个问题。我查阅了Min Max理论,但我仍然不知道如何将这个概念应用于下面这个问题。

以下树表示竞技游戏中的可能移动,表明玩家X当前可以在移动A和移动B之间进行选择。 在玩家X移动之后,允许玩家Y选择移动,然后允许玩家X选择游戏的最后移动。 树的叶节点标记为W,L或T,具体取决于该结尾是否代表玩家X的胜利,失败或平局。

使用min-max搜索来确定玩家X是否应移动A或B以获得X所期望的最佳结果。

enter image description here

要查看最小 - 最大搜索,请参阅http://www.nada.kth.se/kurser/kth/2D1350/progp02/lecture2.pdf

玩家X应该移动A.

玩家X应移动B。

1 个答案:

答案 0 :(得分:2)

我为节点添加了数字,并突出显示了“max”行。未突出显示的行是“min”行(即,玩家想要最小化结果)。显然L是最低值,W是最高值。我们通常将1分配给一个胜利,将-1分配给一个亏损,将0分配给一个平局。玩家Y想要使数字尽可能低(如果玩家X得到L则他们赢了)。玩家X想要尽可能高的数字(他想要一个W)。

enter image description here

如果游戏向节点4播放,你知道无论如何,玩家X都会获胜。因此,4标记为W(或1)。如果游戏向节点5播放,你知道他输了,所以它被标记为L.同样的情况发生在6(获得W)。

要分配给节点2,我们注意到2位于“min”行(它是玩家Y的回合)。 4,5,6分别具有W,L,W。玩家Y可以通过选择节点5来最小化这一点,从而获胜。因此,玩家X知道如果玩家Y是智能的,如果他选择A,则玩家X将失败。

我们可以在另一边做同样的事情来表明如果玩家X选择B,他将会打平。因此,玩家X应该选择B.

当为minimax编写代码时,代码执行post-order tree traversal并通过查看后代来为节点分配值。