游戏树中是否有最佳深度?

时间:2018-11-27 13:12:06

标签: game-engine minimax game-theory

我正在使用该游戏引擎来玩一些棋盘游戏,我实现了带有alpha beta修剪和移动顺序的minimax。现在,当我使用其他现有引擎时,一切看起来都很好。但是,我发现了两个细微的问题,我不知道是什么原因导致的,也许我的知识还有些不足。

第一个问题:

当我增加搜索深度时,即使消耗更多时间,直觉上我也应该获得更好的结果,但就我而言,从深度8(获胜)移至深度9会使我一直迷路,现在我增加它到10我突然又赢了。请记住,除深度外,我将其他所有内容保持不变。一开始我以为是因为在第9深度我们发现了一个有前途的举动,对手可以轻易地反驳它,但随后可能在每个深度发生。所以我的问题是什么导致这种奇怪的行为?是否有最佳深度,如果我们超越此深度,可能会适得其反?

第二期: 它与移动排序类似,但是可以获取下一个游戏的值来选择要玩的游戏。例如:

For every possible move starting from weakest move do: minimax(move)

现在,由于我们必须经历所有可能的动作,为什么拥有强力的动作首先会赢得比赛,但是如果我从最弱的动作开始,则会输掉比赛。由于我们必须评估所有可能的移动,因此没有实现。是什么原因导致这种行为?

1 个答案:

答案 0 :(得分:1)

  

当我增加搜索深度时,凭直觉我应该得到   即使耗费更多时间也可以获得更好的结果,但就我而言,   深度8(获胜)达到深度9使我一直失去   增加到10我突然又赢了。

在我看来,这听起来确实像是个小虫。

For every possible move starting from weakest move do:
    minimax(move)

您应该始终从最有力的一步开始,以便从alpha-beta修剪中受益

  

现在,因为我们必须经历所有可能的动作

α-β修剪怎么样?您不必经历所有可能的动作。