2010-03-28 48 views
0

我了解此搜索的基本知识,但测试截止部分让我感到困惑,因为测试版< = alphabeta的值可以返回beta,break或继续循环。Alpha-Beta截止

  • 回归测试似乎并不正常在所有的工作,它返回错误的球员转会为主板的不同状态(进一步进入搜索树)

  • 突破似乎正常工作,它是非常快,但它似乎有点太快太快

  • 继续是比慢了很多慢,但它似乎更正确......我猜这是正确的方式,但谷歌的伪代码都使用'休息',但因为这是伪代码,我不确定它们是什么意思'break'

+0

你到底在说什么? – 2010-03-28 14:24:58

+0

请尝试http://en.wikipedia.org/wiki/Alpha-beta_pruning和外部链接,以更好地理解alpha-beta。 – pajton 2010-03-28 14:30:21

回答

2

只是为了好玩,我会猜你在谈论用极小α-β截止,其中

α-β截止是 的方法减少数量节点在Minimax战略中探索了 。对于节点 它探索它计算,另外 得分,一个alpha值和一个 beta值。

Here is a page描述这种方法,并且还提供了一个链接到实现此方法的C program。希望这里有些东西可以帮助你解决问题,如果我完全不了解我的猜测,请在你的问题中提供更多细节。

function MINIMAX(N) is 
    begin 
     if N is a leaf then 
      return the estimated score of this leaf 
     else 
      Let N1, N2, .., Nm be the successors of N; 
      if N is a Min node then 
       return min{MINIMAX(N1), .., MINIMAX(Nm)} 
      else 
       return max{MINIMAX(N1), .., MINIMAX(Nm)} 
     end MINIMAX; 
1

Beta cutoffs当您正在搜索的分支比您已搜索的分支更适合您的对手时发生。曾经向我解释过如下:

假设正在与你的敌人战斗,并且你考虑了一些你的选择。

在完全搜索到您的第一个选择的最佳可能结果(投掷一拳)后,您确定结果是您的对手最终会将您戳在眼睛中。我们将这个测试称为...迄今为止你的对手所能做的最好的。显然,你想找到一个效果更好的结果。

现在我们考虑你的下一个选项(在失望中跑掉)。在探索对手的第一个可能的答案时,我们发现最好的结果是你用枪后面射门。这是触发beta测试的截止点......我们停止搜索其他对手的动作并返回测试版,因为我们真的不在乎如果您在搜索他的其他回复时发现他也可以激怒您...您已经选择前面选项中的捅捅。

现在具体是什么意思是你的程序应该返回测试版...如果它不起作用,你应该比较一个alpha-beta搜索算法elsewhere

+0

10/10好的答案。会再读一遍。 – SetSlapShot 2013-10-17 02:07:58