【算法与数据结构】——对抗搜索

本文探讨了对抗搜索中的基本策略Minimax搜索,以及其优化版Alpha-Beta剪枝搜索。通过实例讲解了如何在博弈中应用这些算法,同时讨论了它们的优缺点,特别是Alpha-Beta剪枝在减少搜索树复杂性方面的高效性。
摘要由CSDN通过智能技术生成

文章目录

  • 对抗搜索
  • 最大最小搜索(MinMax搜索)
    • minmax搜索评价
  • Alpha-Beta剪枝搜索(Pruning Search)

对抗搜索

对抗搜索也称为博弈搜索
在一个竞争的环境中,智能体(agents)之间通过竞争实现相反的利益,一方最大化这个利益,另一方最小化。
对抗搜索的方法主要有三个:
最小最大搜索(Minmax Search)
Alpha-Beta剪枝搜索(Pruning Search)
蒙塔卡洛树搜索(Monte-Caelo Tree Search)

最大最小搜索为对抗搜索中最基本的搜索方法;剪枝搜索是一种对最大最小搜索进行改进的算法,即在搜索过程中可以减去无需搜索的分支节点,且不影响搜索结果。蒙特卡洛树搜索通过采样而非穷举方法来实现搜索。

最大最小搜索(MinMax搜索)

我们采用一个例题来对这类问题进行说明,后面的搜索方法也是基于此例题
一个3*3的矩阵,A和B对矩阵轮流操作,A先操作,每次操作选择一个2×2的矩阵,统计矩阵元素和加在总分数上,然后将这个2×2矩阵逆时针旋转90度,一共进行k轮,也就是2k次操作,A的目标是使得总分数最大,B的目标是使得总分数最小,计算两人在最优策略下最后获得的总分数。
参考例题【题目记录】——ICPC南宁2017I题
对于每一个人,对于当前的矩阵状态都无法直接选出使得最终结果最优的操作方法,我们需要对于每个人的每种情况进行模拟,每个人有4种操作方法,这样最终会形成一个 4 2 k 4^{2k} 42k的决策树。
从上往下,单数层是A的行动,偶数层是B的行动,单数层要使最终结果最大,偶数层要使最终结果最小。
上面的层我们无法直接确定哪一个是最优值,但是最后一层是B的操作,我们可以直接确定一个最小值返回,返回之后再根据这个值在上一层选择一个最大值,然后依次类推,直到顶层。

minmax搜索评价

优点
算法是一种简单有效的对抗手段
在对手也“尽力而为”的前提下,算法可返回最优结果
缺点
如果搜索树极大,则无法在有效时间内返回结果

Alpha-Beta剪枝搜索(Pruning Search)

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

Alpha-Beta算法是在Min-Max方法基础上的一个改进.它维护一个搜索窗口(search window):[α, β].
请添加图片描述
详细的计算过程参考文章《人工智能》(二): Alpha-Beta算法

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值