Alpha-beta剪枝

Alpha-beta剪枝是一种搜索算法,用以减少极小化极大算法(Minimax算法)搜索树的节点数。这是一种对抗性搜索算法,主要应用于机器游玩的二人游戏(如井字棋象棋围棋)。当算法评估出某策略的后续走法比之前策略的还差时,就会停止计算该策略的后续发展。该算法和极小化极大算法所得结论相同,但剪去了不影响最终决定的分枝[1]

历史

Allen Newell和Herbert A. Simon在1958年,使用了John McCarthy所谓的“近似”alpha-beta算法[2],此算法当时“应已重新改造过多次”[3]亞瑟·李·塞謬爾(Arthur Samuel)有一个早期版本,同时Richards、Hart、Levine和/或Edwards在美国分别独立发现了alpha-beta[4]。McCarthy在1956年达特默思会议上提出了相似理念,并在1961年建议给他的一群学生,其中包括MIT的Alan Kotok[5]。Alexander Brudno独立发现了alpha-beta算法,并在1963年发布成果[6]Donald Knuth和Ronald W. Moore在1975年优化了算法[7][8],Judea Pearl在1982年证明了其最优性[9]

对原版极小化极大算法的改进

Alpha-beta的优点是减少搜索树的分枝,将搜索时间用在“更有希望”的子树上,继而提升搜索深度。该算法和极小化极大算法一样,都是分支限界类算法。若节点搜索顺序达到最优化或近似最优化(将最佳选择排在各节点首位),则同样时间内搜索深度可达极小化极大算法的两倍多。

在(平均或恒定)分枝因子为b,搜索深度为d层的情况下,要评估的最大(即招法排序最差时)叶节点数目为O(b*b*...*b) = O(bd)——即和简单极小化极大搜索一样。若招法排序最优(即始终优先搜索最佳招法),则需要评估的最大叶节点数目按层数奇偶性,分别约为O(b*1*b*1*...*b)和O(b*1*b*1*...*1)(或O(bd/2) = O(√bd))。其中层数为偶数时,搜索因子相当于减少了其平方根,等于能以同深度搜索两次[10]b*1*b*1*...意义为,对第一名玩家必须搜索全部招法找到最佳招式,但对于它们,只用将第二名玩家的最佳招法截断——alpha-beta确保无需考虑第二名玩家的其他招法。但因节点生成顺序随机,实际需要评估的节点平均约为O(b3d/4)[2]

一般在alpha-beta中,子树会由先手方优势或后手方优势暂时占据主导。若招式排序错误,这一优势会多次切换,每次让效率下降。随着层数深入,局面数量会呈指数性增长,因此排序早期招式价值很大。尽管改善任意深度的排序,都以能指数性减少总搜索局面,但排序临近根节点深度的全部局面相对经济。在实践中,招法排序常由早期、小型搜索决定,如通过迭代加深。

算法使用两个值alpha和beta,分别代表大分玩家放心的最高分,以及小分玩家放心的最低分。alpha和beta的初始值分别为正负无穷大,即双玩家都以可能的最低分开始游戏。在选择某节点的特定分枝后,可能发生小分玩家放心的最小分小于大分玩家放心的最大分(beta <= alpha)。这种情况下,父节点不应选择这个节点,否则父节点分数会降低,因此该分枝的其他节点没有必要继续探索。

伪代码

下面为一有限可靠性版本的Alpha-beta剪枝的虛擬代碼[10]

 function alphabeta(node, depth, α, β, maximizingPlayer) // node = 节点,depth = 深度,maximizingPlayer = 大分玩家
     if depth = 0 or node是终端節點
         return 節點的啟發值
     if maximizingPlayer
         v := -∞
         for 每个子節點
             v := max(v, alphabeta(child, depth - 1, α, β, FALSE)) // child = 子節點
             α := max(α, v)
             if β ≤ α
                 break // β裁剪
         return v
     else
         v := ∞
         for 每个子節點
             v := min(v, alphabeta(child, depth - 1, α, β, TRUE))
             β := min(β, v)
             if β ≤ α
                 break // α裁剪
         return v
(* 初始調用 *)
alphabeta(origin, depth, -∞, +∞, TRUE) // origin = 初始節點

在這個有限可靠性的alpha-beta中,當v超出調用參數α和β構成的集合時(v < α或v > β),alphabeta函數返回值v。而與此相對,強化的有限可靠性alpha-beta限制函數返回在α與β包括範圍中的值。

参考文献

  • George T. Heineman, Gary Pollice, and Stanley Selkow. Chapter 7: Path Finding in AI. Algorithms in a Nutshell. Oreilly Media. 2008: 217–223. ISBN 978-0-596-51624-6. 
  • Judea Pearl, Heuristics, Addison-Wesley, 1984
  • John P. Fishburn. Appendix A: Some Optimizations of α-β Search. Analysis of Speedup in Distributed Algorithms (revision of 1981 PhD thesis). UMI Research Press. 1984: 107-111. ISBN 0-8357-1527-2. 
  1. ^ Russell, Stuart J.; Norvig, Peter. Artificial Intelligence: A Modern Approach 3rd. Upper Saddle River, New Jersey: Pearson Education, Inc. 2010: 167 [2016-02-05]. ISBN 0-13-604259-7. (原始内容存档于2011-02-28). 
  2. ^ 2.0 2.1 McCarthy, John. Human Level AI Is Harder Than It Seemed in 1955. LaTeX2HTML 27 November 2006 [2006-12-20]. (原始内容存档于2012-04-08).  请检查|date=中的日期值 (帮助)
  3. ^ Newell, Allen and Herbert A. Simon. Computer Science as Empirical Inquiry: Symbols and Search (PDF). Communications of the ACM. March 1976, 19 (3) [2006-12-21]. doi:10.1145/360018.360022. (原始内容 (PDF)存档于2007-06-28). 
  4. ^ Edwards, D.J. and Hart, T.P. The Alpha–beta Heuristic (AIM-030). Massachusetts Institute of Technology. 4 December 1961 to 28 October 1963 [2006-12-21]. (原始内容存档于2012-04-08).  请检查|date=中的日期值 (帮助)
  5. ^ Kotok, Alan. MIT Artificial Intelligence Memo 41. 2004-12-03 [2006-07-01]. (原始内容存档于2012-04-08). 
  6. ^ Marsland, T.A.. Computer Chess Methods (PDF) from Encyclopedia of Artificial Intelligence. S. Shapiro (editor) (PDF). J. Wiley & Sons: 159–171. May 1987 [2006-12-21]. (原始内容 (PDF)存档于2008-10-30). 
  7. ^ * Knuth, D. E., and Moore, R. W. An Analysis of Alpha–Beta Pruning (PDF). Artificial Intelligence. 1975, 6 (4): 293–326. doi:10.1016/0004-3702(75)90019-3. [永久失效連結] Reprinted as Chapter 9 in Knuth, Donald E. Selected Papers on Analysis of Algorithms. Stanford, California: Center for the Study of Language and Information - CSLI Lecture Notes, no. 102. 2000 [2016-02-05]. ISBN 1-57586-212-3. OCLC 222512366. (原始内容存档于2010-11-15). 
  8. ^ Abramson, Bruce. Control Strategies for Two-Player Games (PDF). ACM Computing Surveys. June 1989, 21 (2): 137 [2008-08-20]. doi:10.1145/66443.66444. (原始内容 (PDF)存档于2008-08-20). 
  9. ^ Pearl, Judea. The Solution for the Branching Factor of the Alpha–beta Pruning Algorithm and its Optimality. Communications of the ACM. August 1982, 25 (8): 559–564. doi:10.1145/358589.358616. 
  10. ^ 10.0 10.1 Russell, Stuart J.; Norvig, Peter, Artificial Intelligence: A Modern Approach 2nd, Upper Saddle River, New Jersey: Prentice Hall, 2003 [2016-02-05], ISBN 0-13-790395-2, (原始内容存档于2011-02-28) 

外部链接

  • http://www.emunix.emich.edu/~evett/AI/AlphaBeta_movie/sld001.htm(页面存档备份,存于互联网档案馆
  • http://sern.ucalgary.ca/courses/CPSC/533/W99/presentations/L1_5B_McCullough_Melnyk/(页面存档备份,存于互联网档案馆
  • http://sern.ucalgary.ca/courses/CPSC/533/W99/presentations/L2_5B_Lima_Neitz/search.html(页面存档备份,存于互联网档案馆
  • https://web.archive.org/web/20021223103359/http://www.maths.nott.ac.uk/personal/anw/G13GAM/alphabet.html
  • https://web.archive.org/web/20041123061044/http://chess.verhelst.org/search.html
  • http://www.frayn.net/beowulf/index.html(页面存档备份,存于互联网档案馆
  • http://hal.inria.fr/docs/00/12/15/16/PDF/RR-6062.pdf(页面存档备份,存于互联网档案馆
  • Minimax (with or without alpha–beta pruning) algorithm visualization - game tree solving (Java Applet), for balance or off-balance trees(页面存档备份,存于互联网档案馆
  • Demonstration/animation of minimax game search algorithm with alpha–beta pruning (using html5, canvas, javascript, css)(页面存档备份,存于互联网档案馆
  • Java implementation used in a Checkers Game(页面存档备份,存于互联网档案馆
博弈论专题
定义
均衡概念英语Solution concept
纳什均衡 · 强纳什均衡英语Strong Nash equilibrium · 子博弈均衡英语Subgame perfect equilibrium · 贝叶斯-纳什均衡 · 贝叶斯完美均衡英语Perfect Bayesian equilibrium · 颤抖手完美均衡 · 恰当均衡英语Proper equilibrium · ε-均衡 · 相关均衡 · 序贯均衡 · 准完美均衡英语Quasi-perfect equilibrium · 进化稳定策略英语Evolutionarily stable strategy · 风险占优英语Risk dominance · 帕累托最优 · 自我应验均衡英语Self-confirming equilibrium · 马尔可夫完美均衡英语Markov perfect equilibrium · 默滕斯稳定均衡英语Mertens-stable equilibrium · 英语Core (game theory) · 夏普利值英语Shapley value · 吉布斯均衡英语Potentialg ame · 量子响应均衡英语Quantal response equilibrium · 谢林点
策略
优势策略 · 纯策略 · 混合策略 · 以牙還牙 · 冷酷触发策略英语Grim trigger · 策略复制论证英语Strategy-stealing argument · 逆向归纳法英语Backward induction · 前向归纳法英语Forward induction · 马尔可夫策略英语Markov strategy
博弈类型
对称博弈 · 完美信息 · 序贯博弈 · 重复博弈 · 信号博弈 · 廉价磋商英语Cheap talk · 零和博弈 · 机制设计 · 随机博弈 · 非传递博弈 · 全局博弈英语Global game · 甄别博弈英语screening game · 讨价还价问题英语Bargaining problem · 多人博弈英语n-player game · 大型泊松博弈英语Large Poisson game · 严格决定博弈 · 潜博弈英语Potential game · 位勢賽局
博弈模型
围棋 · 國際象棋 · 无限棋英语Infinite chess · 西洋跳棋 · 井字棋 · 囚徒困境可选择的囚徒博弈英语Optional prisoner's dilemma · 用餐者困境 · 旅行者困境 · 猜均值的2/3 · 协调博弈英语Coordination game · 蜈蚣博弈 · 志愿者困境 · 搭便车问题 · 拍卖美元 · 膽小鬼博弈 · 智猪博弈 · 性别战 · 獵鹿賽局 · 賭便士英语Matching pennies · 最後通牒賽局海盗博弈 · 石头、剪子、布 · 獨裁者賽局信任游戏 · 公共財賽局英语Public goods game · 纳什讨价还价问题英语Nash Bargaining Game · 上校賽局  · 消耗战 · 少数派博弈El Farol酒吧问题 · 公平分配博弈切蛋糕问题英语Fair cake-cutting · 古诺竞争 · 死結 · 库恩扑克游戏英语Kuhn poker  · 甄别博弈英语Screening Game  · 公主与怪兽游戏英语Princess and monster game · 约会问题英语Rendezvous problem · 囚徒帽子谜题英语Prisoners and hats puzzle
定理
极值定理 · 纯化定理英语Purification theorem · 无名氏定理 · 显示定理英语Revelation principle · 阿罗不可能定理 · 极小化极大算法 · 纳什均衡 · 策梅洛定理
关键人物英语List of game theorists
阿尔伯特·W·塔克 · 阿摩司·特沃斯基 · 阿里埃勒·鲁宾斯坦 · 克劳德·香农 · 丹尼尔·卡内曼 · 戴维·K·莱文英语David K. Levine · 戴维·M·克雷普斯英语David M. Kreps · 唐纳德·B·吉利斯英语Donald B. Gillies · 朱·弗登博格英语Drew Fudenberg · 埃里克·马斯金 · 哈罗德·W·库恩英语Harold W. Kuhn · 赫伯特·亚历山大·西蒙(司马贺) · 埃尔维·穆兰英语Hervé Moulin · 让·梯若尔 · 让-弗朗索瓦·默滕斯英语Jean-François Mertens · 珍妮弗·图尔·蔡司英语Jennifer Tour Chayes · 夏仙義·亞諾什·卡羅伊 · 约翰·梅纳德·史密斯 · 安托万·奥古斯丁·库尔诺 · 约翰·福布斯·纳什 · 约翰·冯·诺伊曼 · 肯尼斯·阿罗 · 肯尼思·宾默尔 · 里奥尼德·赫维克兹 · 劳埃德·沙普利 · 梅尔文·德雷希尔英语Melvin Dresher · 梅里尔·M·弗勒德 · 奧嘉·邦達雷娃英语Olga Bondareva · 奥斯卡·莫根施特恩英语Oskar Morgenstern · 保罗·米尔格龙 · 佩顿·杨英语Peyton Young · 赖因哈德·泽尔腾 · 羅伯特·阿克塞爾羅 · 罗伯特·约翰·奥曼 · 罗伯特·B·威尔逊 · 罗杰·梅尔森 · 塞缪尔·鲍尔斯英语Samuel Bowles (economist) · 苏珊娜·斯科奇姆 · 托马斯·克罗姆比·谢林 · 威廉·维克里
参见
全支付拍卖 · Alpha-beta剪枝 · 伯川德悖论英语Bertrand paradox (economics) · 有限理性 · 組合博弈論 · 对抗分析英语Confrontation analysis · 合作性競爭 · 棋局中的先手优势英语First-move advantage in chess · 博弈机制英语Game mechanics · 博弈论词汇表英语Glossary of game theory · 博弈理论家列表英语List of game theorists · 特殊博弈列表 · 雙輸 · 国际象棋的解局策略英语Solving chess · 拓扑博弈英语Topological game · 公地悲劇 · 小决定暴政