当前位置:   article > 正文

算法学习(二)——Alpha-Beta剪枝算法_alpha-beta剪枝算法流程图

alpha-beta剪枝算法流程图

参考:https://blog.csdn.net/weixin_42192933/article/details/105873866

剪枝流程

这里以流程图来表述
图中红 线 \textcolor{Red}{红线}红线代表被剪枝的部分,蓝 线 \textcolor{Blue}{蓝线}蓝线代表流程,正方形代表maximum,圆形代表minimum
剪枝算法内部旨在求α \alphaα的下界极大值,β \betaβ的上界极小值

讨 论 \textcolor{Red}{讨论}讨论:
\qquad流程5与流程10的差别:
\qquad在流程5, 经 过   i f    α ≥ β   t h e n 经过\ if\ \ α ≥ β\ then经过 if  α≥β then 的判断,可以知道数字6直接导致超出区间范围,立刻剪枝,另一分支不再被访问
\qquad在流程10,区间范围是[4,inf],由于2 ≤ 4 2\leq 42≤4,所以α \alphaα不发生改变, ∴ 4 ≤ i n f \therefore\textcolor{Red}{4\leq inf}∴4≤inf,符合范围,v的值被传递出去,传递出去之后,剪枝

 

 

伪代码:

  1. function alphabeta(node, depth, α, β, maximizingPlayer) is
  2. if depth = 0 or node is a terminal node then
  3. return the heuristic value of node
  4. if maximizingPlayer then
  5. value := −∞
  6. for each child of node do
  7. value := max(value, alphabeta(child, depth − 1, α, β, FALSE))
  8. α := max(α, value)
  9. if α ≥ β then
  10. break (* β cut-off *)
  11. return value
  12. else
  13. value := +∞
  14. for each child of node do
  15. value := min(value, alphabeta(child, depth − 1, α, β, TRUE))
  16. β := min(β, value)
  17. if α ≥ β then
  18. break (* α cut-off *)
  19. return value

相关定义

α代表下界,β代表上界,α初始定义为-inf,β初始定义为inf

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/123217
推荐阅读
相关标签
  

闽ICP备14008679号