并行博弈树搜索算法-第3篇 优秀的园丁:Alpha-Beta算法

本文详细介绍了Alpha-Beta算法,一种用于优化Min-Max搜索的剪枝策略。在博弈树中,Alpha-Beta算法通过维护搜索窗口[α, β]进行剪枝,减少不必要的节点搜索。针对良序的博弈树,算法可以找到最小树,并分析了不同类型的节点(PV、CUT、ALL)以及它们在搜索过程中的角色。此外,讨论了强有序博弈树的概念,以及如何通过存储表和启发式方法改进算法的有序性,以提高搜索效率。" 122118567,11565838,C语言实现矩形秩计算,"['c语言', '算法', '线性代数']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

3.1   Alpha-Beta算法

虽然博弈树的状态是有限的,但是状态个数却非常多.假设博弈树的深度为d,每个结点有b个分支,即分支因子(branchingfactor)为b,那么使用Min-Max方法搜索这个博弈树需要搜索个结点.

然而幸运的是,Min-Max方法的一些搜索是没有必要的,故此可以剪除(cut-off)那些没有必要搜索,即对搜索进行剪枝(prune).Alpha-Beta算法是一种有效而常用的剪枝算法.

Alpha-Beta算法是在Min-Max方法基础上的一个改进.它维护一个搜索窗口(search window):[α, β].其中α表示在搜索进行到当前状态,当前对抗者能确保达到的最大的结点值.在进一步的搜索中,将竭力提高α这个下限.而β表示在搜索进行到当前状态,在对手逼迫下,当前对抗者所达到的最大的博弈值.如果α > β,那么就没有必要再搜索这个结点及其子结点了.

实际上,可以证明,剪除的这一段搜索也不可能搜索到最小最大值.也可以证明[4],使用搜索窗口[α = -∞, β = +∞]对根位置(root position)进行搜索,Alpha-Beta算法可以返回最小最大值.

AlphaBeta(node, alpha, beta)
1:	if node.depth = 0 then
2:		return EvaluateNegaMax(node)
3:	for i ← 1 to node.branch.length
4:		new_node ← Traverse(nod
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值