热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

人工智能一种现代方法第5章对抗搜索

文章目录博弈博弈中的优化决策Minmax算法(极小极大算法)多人博弈时的最优决策α-β剪枝(重点)不完美的实时决策评估函数截断搜索向前剪枝资源分享博弈

文章目录

      • 博弈
      • 博弈中的优化决策
        • Minmax算法(极小极大算法)
        • 多人博弈时的最优决策
      • α-β剪枝(重点)
      • 不完美的实时决策
        • 评估函数
        • 截断搜索
        • 向前剪枝
      • 资源分享


博弈

对抗搜索:竞争环境中每个Agent的目标之间是有冲突的,也成为博弈。
博弈:有完整信息的、确定性的、轮流行动的、两个游戏者的零和游戏。
剪枝:在搜索树中忽略那些不影响最后决定的部分。
启发式评估函数:在不进行完全搜索的情况下估计某些状态的真实效用值。
效用函数(目标函数、收益函数)UTILITY(s,p):定义游戏者p在终止状态下的数值。

博弈中的优化决策

考虑一个Max和Min两个人的下棋问题:
最优解:到达目标状态的一系列行动
中止状态:一方取胜
极小极大值:可以理解为有两个人MAX和MIN,MAX喜欢移动到有极大值的地方,MIN喜欢移动到有极小值的地方,终端状态由效用函数进行评价。MAX指向有最高极小极大值的中止状态。假设对手的决策均为最优。

上图中,终止结点是Max的效用值;其他结点旁标的数字是Max和Min的极小极大值。Max在根节点的最佳行棋是a1,因为它指向有最高极小极大值的后继,而Min此时的最佳行棋是b1,因为它指向有最低的极小极大值的后继。

给定一棵博弈树,最优策略可以通过检查每个结点的极小极大值来决定,记作MINmAX(s)。MAX喜欢移动到有极大值的地方,MIN喜欢移动到有极小值的地方。根据上述博弈树可得到如下公式。


Minmax算法(极小极大算法)

极小极大算法从当前状态计算极小极大决策。它使用了简单的递归算法计算每个后继的极小极大值。递归算法自上而下一直前进到树的叶子节点,递归回溯通过搜索树把极小极大值回传。
理解:每一步都是最小化敌方的最大收益。

多人博弈时的最优决策

超过两个人的博弈利用MINIMAX算法,由于之前研究的两人博弈一方得分可以反应另一方得分,故仅用一个数值表示状态得分,对于多人游戏,应该使用向量值替换单一效用值。每个节点的回传至是该选手在节点的后继者效用值向量中选择的结果。

多人博弈通常会涉及在游戏选手之间出现正式或非正式联盟的情况。

α-β剪枝(重点)

极大极小值搜索时间复杂度呈指数级增加,α-β剪枝可以将复杂度减半,很多情况下可以剪裁掉整个子树。

在某节点的父节点有更好的选择,则不会探索到该节点。

  • α:到目前为止路径上发现的MAX的最佳选择(极大值)
  • β:到目前为止路径上MIN的最佳选择(极小值)

此技术应用到标准的极小极大搜索树上,会剪掉那些不可能影响决策的分支。比α小则停止探索,比β大则停止探索。

一个α-β剪枝实例
目标:判断下图中根节点的决策是走到BCD中的哪一个结点。

过程如下

选择B的子节点下最小的值3,即B的值至多为3,返回给A,A的α值变为3,即根节点的值至少为3




C下面的第一个叶子结点值为2,表示C这个Min结点的值至多为2,不过已经知道了B点值是3,所以Max不会选择C。故可不用考虑C的其他结点了,可以剪枝



D下面的第一二个结点的值分别为14,5。因此,都要进行搜索。第3个结点值为2,故D这个Min结点的值至多是2,所以Max结点(根节点)的决策是走到值为3的B结点。





上述过程可以看作是对MinMax公式的简化。如上述过程中C的两个没有计算的子节点的值是x和y。根结点的值计算如下:

在以下情况下,α-β的增益最大:

  • 如果以增加备份值的方式对Min节点的Max子节点进行升序排序,则效果更好。例如,对D这个Min结点的子节点进行从小到大排序2、5、14,则可以不计算结点5、14。
  • 如果对Max结点的Min结点进行降序排序,则效果更好。

这种情况下,α-β算法可以裁掉其中的一大部分,只需要检查O(b^(m/2))个结点来做出决策,其中,b是决策深度
极小极大算法搜索整个博弈空间,需要检查的结点数为O(b^m)
如果后继状态采用随机顺序而不是最佳优先的顺序,那么α-β算法需要检查的总结点数大约是O(b^(3m/4 )),采用最佳优先排序时只需检查O(b^(m/2))个结点

不完美的实时决策

由于实时决策允许的模拟时间很短,故需要尽早截断搜索、将启发式评估函数用于搜索。
启发式评估函数EVAL(可以评估中间状态)–替代效用函数
用决策什么时候运用EVAL的截断测试(cutoff test)–替代终止测试

评估函数

①对终止状态的排序应该和真正的效用函数的排序结果一样
②评估函数的计算成本不能花费太长时间
③对于非终止状态,评估函数应该和取胜几率密切相关

截断搜索

最简单的节点搜索:设置固定的搜索深度
地平线效应:当好棋出现在固定搜索深度之后时,无法探索到好棋

向前剪枝

向前剪枝:在某节点上无需进一步考虑而直接剪枝一些节点
柱搜索:只考虑最好的n步行棋,但无法保证最好的行棋不被剪枝掉

资源分享

实验代码下载:
https://github.com/yyl424525/AI_Homework
人工智能-一种现代方法中文第三版pdf、课件、作业及解答、课后习题答案、实验代码和报告、历年考博题下载:https://download.csdn.net/download/yyl424525/11310392


推荐阅读
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • Learning to Paint with Model-based Deep Reinforcement Learning
    本文介绍了一种基于模型的深度强化学习方法,通过结合神经渲染器,教机器像人类画家一样进行绘画。该方法能够生成笔画的坐标点、半径、透明度、颜色值等,以生成类似于给定目标图像的绘画。文章还讨论了该方法面临的挑战,包括绘制纹理丰富的图像等。通过对比实验的结果,作者证明了基于模型的深度强化学习方法相对于基于模型的DDPG和模型无关的DDPG方法的优势。该研究对于深度强化学习在绘画领域的应用具有重要意义。 ... [详细]
  • 【论文】ICLR 2020 九篇满分论文!!!
    点击上方,选择星标或置顶,每天给你送干货!阅读大概需要11分钟跟随小博主,每天进步一丢丢来自:深度学习技术前沿 ... [详细]
  • AstridDAO 专访:波卡稳定币黑马 BAI
    加入Pol ... [详细]
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 近年来,大数据成为互联网世界的新宠儿,被列入阿里巴巴、谷歌等公司的战略规划中,也在政府报告中频繁提及。据《大数据人才报告》显示,目前全国大数据人才仅46万,未来3-5年将出现高达150万的人才缺口。根据领英报告,数据剖析人才供应指数最低,且跳槽速度最快。中国商业结合会数据剖析专业委员会统计显示,未来中国基础性数据剖析人才缺口将高达1400万。目前BAT企业中,60%以上的招聘职位都是针对大数据人才的。 ... [详细]
  • 生成对抗式网络GAN及其衍生CGAN、DCGAN、WGAN、LSGAN、BEGAN介绍
    一、GAN原理介绍学习GAN的第一篇论文当然由是IanGoodfellow于2014年发表的GenerativeAdversarialNetworks(论文下载链接arxiv:[h ... [详细]
  • 词袋模型的通俗介绍
    词,袋, ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • macOS Big Sur全新设计大版本更新,10+个值得关注的新功能
    本文介绍了Apple发布的新一代操作系统macOS Big Sur,该系统采用全新的界面设计,包括图标、应用界面、程序坞和菜单栏等方面的变化。新系统还增加了通知中心、桌面小组件、强化的Safari浏览器以及隐私保护等多项功能。文章指出,macOS Big Sur的设计与iPadOS越来越接近,结合了去年iPadOS对鼠标的完善等功能。 ... [详细]
  • 2016 linux发行版排行_灵越7590 安装 linux (manjarognome)
    RT之前做了一次灵越7590黑苹果炒作业的文章,希望能够分享给更多不想折腾的人。kawauso:教你如何给灵越7590黑苹果抄作业​zhuanlan.z ... [详细]
  • 面试经验分享:华为面试四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试
    最近有朋友去华为面试,面试经历包括四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试。80%的人都在第一轮电话面试中失败,因为缺乏基础知识。面试问题涉及 ... [详细]
  • 数据结构与算法的重要性及基本概念、存储结构和算法分析
    数据结构与算法在编程领域中的重要性不可忽视,无论从事何种岗位,都需要掌握数据结构和算法。本文介绍了数据结构与算法的基本概念、存储结构和算法分析。其中包括线性结构、树结构、图结构、栈、队列、串、查找、排序等内容。此外,还介绍了图论算法、贪婪算法、分治算法、动态规划、随机化算法和回溯算法等高级数据结构和算法。掌握这些知识对于提高编程能力、解决问题具有重要意义。 ... [详细]
author-avatar
阵风阿斯顿
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有