对抗搜索之【最大最小搜索】【Alpha-Beta剪枝

简介: 对抗搜索之【最大最小搜索】【Alpha-Beta剪枝

 本节这里我们讨论的是确定的、完全可观测、序贯决策、零和游戏下的对抗搜索。

  所谓零和博弈是博弈论的一个概念,属非合作博弈。指参与博弈的各方,在严格竞争下,一 方的收益必然意味着另一方的损失,博弈各方的收益和损失相加总和永远为“零”,双方不存在 合作的可能。

  对抗搜索(Adversarial Search)一般指的是博弈双方会阻止对方收益最大化,也称为博弈搜索(Game Search)。在博弈游戏中经常会碰到,比如围棋这种零和游戏。智能体(agents)之间通过竞争实现相反的利益。

  对抗搜索主要有三种:最大最小搜索(Minimax Search)、Alpha-Beta剪枝搜索(Pruning Search)和蒙特卡洛树搜索(Monte-Carlo Tree Search)。

最小最大搜索

  最小最大搜索是在对抗搜索中最为基本的一种让玩家来计算最优策略的方法.。在开始之前我们需要定义如下基本概念:

202002081134090.png

  以Tic-Tac-Toe游戏的对抗搜索 为例,如下图所示:

20200208142349965.png

  上图中的MAXMIN可以看作是两个对手,MAX希望游戏的终局得分高,MIN希望游戏的终局得分低。其所形成游戏树的叶子节点有9!=362880种。

minimax算法

  那minimax算法大体的工作流程是怎样的呢?我们给出如下例子:

  如果最后一排是终止节点,那么MIN则会选择其中最小的数值,如上图中红色框中所选择出来的数值。而MAX会从MIN选择最小的数值之后从中选择一个最大的数值3

  用人话来逻辑理解一下:从最糟糕的情况中选择一个最好的情况。比如让你选择掉100块钱还是50块钱,两种情况都不好,但是你依旧会选择掉50块钱这一个相对来说不那么糟糕的情况。

  在minimax算法里面,MAX会选择后续玩法最大的一种玩法。而MIN会选择后续玩法里面最小的一种玩法。两者轮流竞争。

20200208144432148.png

  minimax的算法非常简单有效的对抗搜索算法,如果计算资源足够的话,这种算法可返回最优结果。但是就是这个计算资源可能会导致在对一些复杂的情况下无法穷举,无法在有效时间内返回结果。

  由此后人改进提出了:用alpha-beta pruning算法来减少搜索节点;或者对节点进行采样、而非逐一搜索 (蒙特卡洛树搜索)。

alpha、beta剪枝搜索

  一种对最小最大搜索进行改进的算法,即在搜索过程中可剪除无需搜索的分支节点,且不影响搜索结果。该算法需要尽量去剪除那些不用搜索的节点。

  那如何来剪枝呢?

20200208145718516.png

  如上图所示,假设我们已近搜完了B BB节点,得到其最小收益为3,然后开始搜C CC节点,当搜到2的时候,剩下的两个46就没有必要搜索下去了,因为不管接下来搜到什么,整个C CC得出来的结果都会比B BB的结果3要小。

  可以看出,如果对于一颗非常巨大的树来说,如果可以剪枝一部分对搜索结果没有影响的分支,将会大大提高搜索的效率。

  整个的搜索流程可展示为下图所示过程:

20200208150939890.png

  那alphabeta剪枝搜索中的AlphaBeta又是什么呢?

  • Alpha值α \alphaα:假设n nnMIN节点,如果n nn的一个后续节点可提供的收益小于α \alphaα,则n nn及其后续节点可被剪枝。因为你是MIN节点,搜到一个更小的节点对手不会这么干,所以没必要搜索下去。
  • Beta值β \betaβ:假设n nnMAX节点,如果n nn的一个后续节点可获得收益大于β \betaβ,则n nn及其后续节点可被剪枝。因为你是MAX节点,搜到一个更大的节点虽然你自己很喜欢,但是对手也不会让你这么干的。

  每个节点有两个值,分别是α \alphaα值和β \betaβ值。节点α \alphaαβ \betaβ值在搜索过程中不断变化。其中α \alphaα从负无穷大逐渐增加、β \betaβ从正无穷大逐渐减少,如果一个节点中α > β \alpha > \betaα>β,则该节点的后续节点可剪枝。

  • Alpha、Beta剪枝算法伪代码

  AlphaBeta剪枝算法的伪代码如下图所示:

20200208153619246.png

  • 剪枝本身并不会影响算法输出结果。节点先后次序会影响剪枝效率。

我的微信公众号名称:深度学习先进智能决策

微信公众号ID:MultiAgent1024

公众号介绍:主要研究深度学习、强化学习、机器博弈等相关内容!期待您的关注,欢迎一起学习交流进步!

相关文章
|
机器学习/深度学习 人工智能 算法
顶会论文 | 阿里云视频摘要 SOTA 模型:用于视频摘要的多层时空网络
这次向大家分享的工作是作者所负责团队在国际人工智能多媒体顶会 ACM MM 2022 (CCF-A)发表的文章 “Multi-Level Spatiotemporal Network for Video Summarization”,该文提出了一种用于视频摘要的多层时空网络,在视频摘要领域实现了全球领先的研究探索。基于作者团队在工业级推荐系统方面的研究积累,成功地在阿里云产业大规模视频摘要场景实践中解决了一个视频摘要领域的重要问题,推动了该领域的发展。
4023 1
顶会论文 | 阿里云视频摘要 SOTA 模型:用于视频摘要的多层时空网络
|
7月前
|
机器学习/深度学习 人工智能 数据可视化
构建AI智能体:六十四、模型拟合的平衡艺术:深入理解欠拟合与过拟合
机器学习模型训练中存在欠拟合和过拟合两大核心问题。欠拟合指模型过于简单无法捕捉数据规律,表现为训练和测试误差均高;过拟合则是模型过于复杂导致记忆噪声而非规律,表现为训练误差低但测试误差高。解决欠拟合需增加模型复杂度(如多项式回归、决策树)或改进特征工程;解决过拟合则需限制复杂度(如降低树深度)、增加正则化或使用集成方法。MSE是关键的评估指标,良好拟合表现为训练集和测试集MSE均适中且接近。掌握这一平衡艺术是构建泛化能力强、稳健模型的关键。
1300 16
|
安全 数据安全/隐私保护
公钥私钥是什么,分别有什么用?
公钥私钥是什么,分别有什么用?
|
机器学习/深度学习 人工智能 算法
通义OmniAudio大模型,让 AI 看懂 360° 视频,并“听”出对应的空间音频
OmniAudio 是一项突破性的空间音频生成技术,能够直接从 360° 视频生成 FOA(First-order Ambisonics)空间音频,为虚拟现实和沉浸式娱乐带来全新可能。通过自监督 coarse-to-fine 预训练和双分支视频表示微调,OmniAudio 在非空间音频质量和空间定位准确性上显著优于现有方法。项目包含超过 103,000 个视频片段的 Sphere360 数据集,支持高质量的模型训练与评估。代码、数据及论文均已开源,助力沉浸式体验技术发展。
1991 63
|
12月前
|
机器学习/深度学习 人工智能 数据可视化
基于YOLOv8的AI虫子种类识别项目|完整源码数据集+PyQt5界面+完整训练流程+开箱即用!
本项目基于YOLOv8与PyQt5开发,实现虫子种类识别,支持图片、视频、摄像头等多种输入方式,具备完整训练与部署流程,开箱即用,附带数据集与源码,适合快速搭建高精度昆虫识别系统。
基于YOLOv8的AI虫子种类识别项目|完整源码数据集+PyQt5界面+完整训练流程+开箱即用!
|
Kubernetes Cloud Native 微服务
微服务实践之使用 kube-vip 搭建高可用 Kubernetes 集群
微服务实践之使用 kube-vip 搭建高可用 Kubernetes 集群
1082 3
|
11月前
|
数据采集 存储 XML
Python爬虫XPath实战:电商商品ID的精准抓取策略
Python爬虫XPath实战:电商商品ID的精准抓取策略
|
存储 编解码 算法
视频为什么可以被压缩?帧内压缩与帧间压缩有何区别?视频编码中的CBR、VBR、CRF...是什么?
视频压缩基于冗余,包括空间冗余、时间冗余、视觉冗余和编码冗余。帧内压缩利用空间相关性,帧间压缩利用时间相关性。视频编码中的码率控制方法有CBR(固定码率)、VBR(动态码率)、CRF(固定码率系数)、CQP(固定质量参数)、CVBR(约束可变码率)和ABR(平均码率),各有优缺点,适用于不同的场景。
|
JavaScript 测试技术 持续交付
使用 GitLab CI/CD 管道自动化部署 Web 应用
【10月更文挑战第2天】使用 GitLab CI/CD 管道自动化部署 Web 应用
849 1