Alpha-beta剪枝是minimax算法的修改版本。它是minimax算法的一种优化技术。 
  正如我们在minimax搜索算法中看到的那样,必须检查的游戏状态数量在树的深度上呈指数级。由于我们无法消除指数,因此可以将其减半。因此,存在一种无需检查游戏树的每个节点就可以计算出正确的minimax决策的技术,该技术称为剪枝。这涉及两个阈值参数Alpha和Beta用于将来扩展,因此称为 alpha-beta剪枝。也称为 Alpha-Beta算法。
   Alpha-beta剪枝可以应用于树的任何深度,有时它不仅可以剪枝树叶,还可以剪枝整个子树。
  两个参数可以定义为:   Alpha: : 到目前为止,我们在Maximizer路径上的任何位置都找到了最佳(最高价值)选择。 alpha的初始值为-∞。   测试版: 到目前为止,我们在"最小化器"路径上的任何位置都找到了最佳(最低价值)选择。 beta的初始值为 +∞。 
  将Alpha-beta剪枝为标准minimax算法会返回与标准算法相同的动作,但会删除所有不会真正影响最终决策但会使算法变慢的节点。因此,通过剪枝这些节点,可以使算法更快。  
α>=β
   Max播放器只会更新alpha的值。
   Min播放器只会更新beta的值。
  回溯树时,节点值将传递到上层节点,而不是alpha和beta值。
  我们只会将alpha,beta值传递给子节点。 
   
 
   
 
   
 
   
 
   
 
   
 
   最差排序: 在某些情况下,alpha-beta剪枝算法不会剪枝任何树上的叶子,并且与minimax算法完全一样。在这种情况下,由于alpha-beta因素,它还会消耗更多的时间,这种剪枝动作被称为最差排序。在这种情况下,最佳移动发生在树的右侧。这样的订单的时间复杂度为O(b  m )。
   理想排序: 当在树中进行大量剪枝时,发生理想的alpha-beta剪枝顺序,并且最佳移动发生在树的左侧。我们应用DFS,因此它首先在树的左侧搜索,并且在相同的时间内经过两次最小深度算法。理想排序的复杂度为O(b  m/2 )。 
  从最浅的节点获得最佳移动。
  对树中的节点进行排序,以便首先检查最佳节点。 
  使用领域知识,同时找到最佳方法。例如: 对于国际象棋,请尝试顺序: 先捕获,然后威胁,然后向前移动,向后移动。
  我们可以保留状态,因为状态可能会重复。