Alpha-beta剪枝

✍ dations ◷ 2024-09-20 08:13:47 #Alpha-beta剪枝

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

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

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

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

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

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

下面为一有限可靠性版本的Alpha-beta剪枝的伪代码:

01 function alphabeta(node, depth, α, β, maximizingPlayer) 02      if depth = 0 or node是终端节点03          return 节点的启发值04      if maximizingPlayer05          v := -∞06          for 每个子节点07              v := max(v, alphabeta(child, depth - 1, α, β, FALSE)) 08              α := max(α, v)09              if β ≤ α10                  break 11          return v12      else13          v := ∞14          for 每个子节点15              v := min(v, alphabeta(child, depth - 1, α, β, TRUE))16              β := min(β, v)17              if β ≤ α18                  break 19          return v
alphabeta(origin, depth, -∞, +∞, TRUE) 

在这个有限可靠性的alpha-beta中,当v超出调用参数α和β构成的集合时(v < α或v > β),alphabeta函数返回值v。而与此相对,强化的有限可靠性alpha-beta限制函数返回在α与β包括范围中的值。

相关

  • 楔形文字幼发拉底河 · 底格里斯河乌鲁克 · 乌尔 · 埃利都 启什 · 拉格什 · 尼普尔 阿卡德帝国 · 库提 乌尔第三王朝 · 伊辛第一王朝 · 拉尔萨 · 伊辛第二王朝古巴比
  • 中南大学湘雅医学院中南大学湘雅医学院是现代医学在中国传播史上具有重要意义的教会创办学校,位于湖南省长沙市,由湖南育群学会与美国雅礼协会联合创建,创始人为胡美博士(Edward Hicks Hume)和颜福
  • 游戏规则《游戏规则》(法语:La Règle du jeu)是知名法国导演让·雷诺阿的作品,剧情描述第二次世界大战时期的上流社会,于1939年上映。《游戏规则》是让·雷诺阿的代表作之一,也被广泛的视
  • 路易·德博纳尔德波纳德 (法语:Louis Gabriel Ambroise de Bonald,1754年10月2日-1840年11月23日),法国的反革命哲学家和政治家。在那革命的时代中,他和好友迈斯特(Joseph de Maistre)同为传统主义者,
  • 向水性向水性 ,或称向湿性,是指植物受到水影响的向性,一个常见的例子是生长在潮湿空气中的根向湿度较高的地方弯曲。这是一个生物学上的表征,目的是增加植物在生态系统中运作的效能。
  • 火箭上面级列表上面级是多级火箭的第一级以上的部分,通常为第二级或第三级。本表列出各国研制的火箭上面级。
  • 瓦通纸瓦通纸(英语:Corrugated Fiberboard;又称瓦楞纸、纸皮)是纸质包装箱常见的用料,比木箱质轻,又有硬度,大小容易剪裁,保护包装的其他产品,不受损害。而且瓦通纸可在外部印刷不同色彩图
  • 阿卡语阿卡语是阿卡人使用的语言,使用范围分布于中国云南、缅甸掸邦、老挝北部以及泰国北部。西方学者将阿卡语、哈尼语及豪尼语(英语:Honi language)归类于哈尼语支之下,将它们视为彼
  • 淳安县淳安县位于中国浙江省西部,是杭州市下辖的一个县。淳安县于宋代取“淳而易安”之义而得名。东汉建安十三年(208年)分歙县东之叶乡置始新县;隋开皇九年(589年)改为新安县;唐永贞元年
  • 青州国家地质公园青州国家地质公园位于山东省青州市西南山区,包括云驼园区和仰天山黄花溪园区,规划总面积70.7km2,是一处以岩溶地貌景观为特色的国家地质公园,包括常态山、崮形地貌、岩溶峡谷、