【人工智能】博弈搜索(极小极大值、α-β剪枝)

1. 极小极大值算法

  人工智能中 “博弈” 通常专指博弈论专家们称为有完整信息的、确定性的、轮流行动的、两个游戏者的零和游戏(如国际象棋)。术语中,这是指在确定的、完全可观察的环境中两个 Agent必须轮流行动,在游戏结束时效用值总是相等并且符号相反。例如下国际象棋,一个棋手贏了,则对手一定是输了。正是 Agent 之间效用函数的对立导致了环境是对抗的。

博弈的游戏通常被 AI 作为一个好的问题来进行研究主要是因为:

  • 玩家需要向人一样的智慧
  • 游戏可能非常复杂(如象棋、围棋)
  • 需要在一定的时间限制内做出决策
  • 游戏是容易被定义的而且可以重复
  • 游戏完全可观察并且有有限的环境
  • 可以直接将人与AI进行比较

以井字棋为例我们可以得到下面的博弈树:
在这里插入图片描述
  通过以上博弈树可以得知游戏的终止会有两种结果MAX得到+1,MIN就会是-1,MAX是-1,MIN就会是+1,也就是一名玩家最大化结果,另一名玩家的结果就会最小。

  假设两个玩家(MAX为计算机、MIN为其对手)都发挥最佳效果,那么在计算机移动后,对手将选择最小化(但对于对手来说是最有利的操作)的移动,由此可得计算机应在考虑其移动和对手的最佳移动的情况下选择最佳移动,如下图所示:
在这里插入图片描述

  如上图所示计算机在根节点有四种选择方式,每种选择之后其对手又有不同种选择方式,在其对手选择完成后就会进入终止状态产生结果,计算机 (MAX) 为确保自己所获利益最大,应当选择B、C、D、E中最大的值,因为对手 (MIN) 总会选择对自己最有利的决策,所以B值的由来是F、G中的最小值、C的由来是H、I、J的最小值,由此就可以得到了极小极大值的算法,极小代表的是在计算机 (MAX) 决策后其对手 (MIN) 总会选择对于计算机 (MAX) 来说获利最小的操作,极大值代表的是计算机 (MAX) 需要在所有的决策中(所有的极小值中),选择最大的值,通过以上分析可得运用递归的方法是比较容易实现以上操作的,具体伪代码如下:

function MINIMAX_DECISION(state) returns an actioninputs: state,current state in gamereturn the a in Actions(state) maximizing MIN-VALUE(RESULT(a,state))function MAX-VALUE(state) returns a utility valueif TERMINAL-TEST(state) then return UTILITY(state)v = -for a,s in SUCCESSORS(state) do v = MAX(v,MIN-VALUE(s))function MIN-VALUE(state) returns a utility valueif TERMINAL-TEST(state) then return UTILITY(state)v =for a,s in SUCCESSORS(state) do v = MIN(v,MAX-VALUE(s))

  从如上代码中可以得到 MAX-VALUE 函数与 MIN-VALUE 函数相互调用,通过深度优先搜索与逆向的归纳实现了极小极大值算法流程。

2. α-β剪枝

假设有如下博弈搜索树:
在这里插入图片描述
其正常的深搜顺序如下所示:
在这里插入图片描述
但根据极小极大值算法来看,我们发现有些搜索是没有必要进行的,请看以下分析:
在这里插入图片描述
  查看上图得知,MAX已完成了对第一个子节点的搜索,此时 MAX 在未搜索到其它节点的情况下的选择应该是大于等于3的 (目前所得到的极小极大值为3)。
在这里插入图片描述
  继续对第二个子节点进行搜索,但在第二个子节点的孩子节点搜到 2 时,我们就得知第二个子节点的值只会 ≤2 ,比第一个节点的值要小,因为我们要在所有子结点中选择最大值,因此在搜完第二个子节点的 2 节点之后,第二个子节点的孩子节点就没有搜索的必要了。
在这里插入图片描述
  但如果在搜索第三个节点时搜索到了值为 14 的节点,剩余的节点是还要继续搜索的,因为我们不知道第三个子节点的最小孩子节点是多少,所以需要继续搜索。
  以上过程只是展示了 MAX 在搜索中的剪枝过程,同理我们也可以得到 MIN在搜索时,也可以利用同样的优化方案,此时我们就可以得到 α-β 剪枝的伪代码:

function ALPHA-BETA-SEARCH(state) returns an actionv = MAX-VALUE(state,-∞,+)return the action in ACTIONS(state) with value vfunction MAX-VALUE(state,α,β) returns a utility valueif TERMINAL-TEST(state) then return UTILITY(state)v = -for each a in ACTIONS(state) dov = MAX(v,MIN-VALUE(RESULT(s,a),α,β))if v ≥ β then return= MAX(α,v)return vfunction MIN-VALUE(state,α,β) returns a utility valueif TERMINAL-TEST(state) then return UTILITY(state)v = +for each a in ACTIONS(state) dov = MIN(v,MAX-VALUE(RESULT(s,a),α,β))if v ≤ α then return= MIN(β,v)return v

  其中 α 表示到目前为止路径上发现的 MAX 的最佳 (即极大值) 选择,β表示到目前为止路径上发现的 MIN 的最佳 (即极小值) 选择。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/679809.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蜜蜂收卡系统 加油卡充值卡礼品卡自定义回收系统源码 前后端开源uniapp可打包app

本文来自:蜜蜂收卡系统 加油卡充值卡礼品卡自定义回收系统源码 前后端开源uniapp可打包app - 源码1688 卡券绿色循环计划—— 一项旨在构建卡券价值再利用生态的社会责任感项目。在当前数字化消费日益普及的背景下,大量礼品卡、优惠券因各种原因未能有效…

Android 右键 new AIDL 无法选择

提示 (AIDL File)Requires setting the buildFeatures.aidl to true in the build file) 解决方式: 在app的build.gradl中 adnroid{} 添加: buildFeatures{aidl true}

IaC实战指南:DevOps的自动化基石

基础设施即代码(Infrastructure as Code,IaC)是指利用脚本、配置或编程语言创建和维护基础设施的一组实践和流程。通过IaC,我们可以轻松测试各个组件、实现所需的功能并在最小化停机时间的前提下进行扩展。更值得一提的是&#xf…

单链表OJ题练习讲解

目录 前言 1.返回链表的倒数第k个节点 2.判断链表的回文结构 实现寻找中间节点的函数: 链表逆置的函数: 判断回文结构: 3.链表的相交 4.带环链表的判断 1.怎么判断链表是否为带环链表呢? 2.快慢指针方法的可行性验证和补…

ENVI拓展工具资源去哪里找

ENVI拓展工具资源去哪里找? 文章目录 ENVI拓展工具资源去哪里找?前言网站(链接见文末)ENVI应用商店(App Store)ENVI官方提供第三方制作自己制作 总结参考 前言 ENVI 拓展工具是指 ENVI 软件的扩展功能或插…

基于模糊控制的AMT自动变速汽车换档智能控制系统simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于模糊控制的AMT自动变速汽车换档智能控制系统simulink建模与仿真。 2.系统仿真结果 输入的V,Ac,a 输出的档位: 3.核心程序与模型 版…

Edge的使用心得和深度探索-Sider: ChatGPT 侧边栏

作为一款备受欢迎的网络浏览器,Microsoft Edge在用户体验和功能方面都有着诸多优势。在长期的使用中,我总结出了三条使用心得,同时也发现了三个能够极大提高效率的功能。让我们一起深度探索Edge的潜力吧! 使用心得: 界…

2024年数维杯数学建模A题思路

文章目录 1 赛题思路2 比赛日期和时间3 竞赛信息4 建模常见问题类型4.1 分类问题4.2 优化问题4.3 预测问题4.4 评价问题 5 建模资料 1 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 2 比赛日期和时间 报名截止时间:2024…

产业项目招商活动会议课程报名签到h5小程序pc开源版开发

产业项目招商活动会议课程报名签到h5小程序pc开源版开发 一个集PC和移动端功能于一体的解决方案,线上线下进行服务,围绕 活动报名、在线课程、项目大厅、线下签到、会员系统等。为商会提供了更加便捷高效的管理方式,提升了商会活动和项目的组…

基于二维CS-SCHT变换和扩频方法的彩色图像水印嵌入和提取算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ............................................................. % figure; % subplot(121);…

一键关闭 Win11 系统广告「GitHub 热点速览」

不知道读者中有多少人早已对 Windows 11 系统自带的广告感到厌烦,却又不知道如何关闭它们? 虽然网上有详细的关闭教程,但是都需要逐一手动操作,不是很方便。所以,今天「GitHub 热点速览」给大家带来了一款能够轻松关闭…

【深度学习】网络安全,SQL注入识别,SQL注入检测,基于深度学习的sql注入语句识别,数据集,代码

文章目录 一、 什么是sql注入二、 sql注入的例子三、 深度学习模型3.1. SQL注入识别任务3.2. 使用全连接神经网络来做分类3.3. 使用bert来做sql语句分类 四、 深度学习模型的算法推理和部署五、代码获取 一、 什么是sql注入 SQL注入是一种常见的网络安全漏洞,它允许…