人工智能知识表示与推理博弈树搜索复习课程
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2020/6/3
博弈问题的表示:
用博弈树来表示,它是一种特殊的与或图。节点 代表博弈的格局(即棋局),相当于状态空间中 的状态,反映了博弈的信息。 与节点、或节点 隔层交替出现
2020/6/3
为什么与节点、或节点隔层交替出现?
假设博弈双方为:MAX和MIN 在博弈过程中,规则是双方轮流走步。在博弈 树中,相当于博弈双方轮流扩展其所属节点
理由:
因为扩展MAX方节点时,MAX方可选择扩展最 有利于自己的节点,只要可扩展的子节点中有 一个对已有利, 则该节点就对已有利
2020/6/3
总之 从MAX方来说,与节点、或节点交替出现;反之, 从MIN方的角度来看,情况正好相反
2020/6/3
在博弈树中,先行一方的初始状态对应着树的根 节点,而任何一方获胜的最终格局为目标状态, 对应于树的终叶节点(可解节点或本原问题)
2020/6/3
(续) 此时,若搜索深度d{ ni }小于预先设定的深度 k, 则将{ ni }放入OPEN表的末端,转2;否则,ni 达到深度k,计算e ( ni ),并转2
2020/6/3
步2
Open为空,即已经扩展完节点
5、若CLOSED表 为空 ,则转8;否则取出
CLOSED表中的第一个节点,记为 np
人工智能
Artificial Intelligence (AI)
曲维光 wgqu@njnu.edu.cn 南京师范大学计算机学院
2020/6/3
2.4 博弈问题的搜索技术 2.4.1 博弈问题的表达 2.4.2 极大极小搜索过程 2.4.3 - 剪枝法
2020/6/3
2.4.1 博弈问题的表达
博弈是一类具有竞争性的智能活动
(5,1,1,MIN)
(4,2,1,MIN)
(3,2,2,MIN)
(3,3,1,MIN)
(4,1,1,1,MAX) (3,1,1,1,1,MIN)
(3,2,1,1,MAX)
(2,2,2,1,MAX)
(2,2,1,1,1,MIN)
(2,1,1,1,1,1,MAX)
注:2020如/6/3 果MAX走红箭头的分法,必定获胜
0 e(P)0
0
MAX占优,MIN不利 势均力敌
MAX不利,MIN占优
2020/6/3
符号:
✓ OPEN:存放待扩展的节点,此时为队列, 即以宽度优先的策略扩展节点
✓ CLOSED:存放已扩展的节点,此时为堆栈, 即后扩展的节点先计算静态估价函数值
2020/6/3
极大极小搜索过程为: 1、将初始节点 S 放入 OPEN 表中,开始时搜索
2020/6/3
③ 对于每一个端节点,计算出它们的静态估价函 数,然后自下而上地逐层计算倒推值,直到MAX 开始的格局。在MIN下的格局中取估值的最小值, 在MAX下格局中取估值的最大值 ④ 取估值最大的格局作为MAX要走的一招棋
2020/6/3
例:向前看一步的两层博弈树
2020/6/3
定义静态函数e(P)的一般原则:
对于比较复杂的博弈问题,只能模拟人的思维 “向前看几步”,然后作出决策,选择最有利自 己的一步。即只能给出几层走法,然后按照一定 的估算办法,决定走一好招
2020/6/3
2.4.2 极大极小过程 对于复杂的博弈问题,要规定搜索深度与时间, 以便于博弈搜索能顺利进行
假设由MAX来选择走一步棋,问题是: MAX如何来选择一步好棋?
2020/6/3
用数字序列加上一个说明来表示一个状态: (3, 2, 1, 1, MAX)
数字序列:表示不同堆中钱币的个数 说明:表示下一步由谁来分,即取MAX或MIN
2020/6/3
现在取N=7的简单情况,并由MIN先分
(7,MIN)
所有可能的分法
(6,1,MAX)
(5,2,MAX)
(4,3,MAX)
但是,从MAX的角度出发,所有使MAX获胜的 状态格局都是本原问题,是可解节点,而使MIN 获胜的状态格局是不可解节点
2020/6/3
例 Grundy博弈:分配物品的问题
如果有一堆数目为N的钱币,由两位选手轮流进 行分配,要求每个选手每次把其中某一堆分成数 目不等的两小堆,直至有一选手不能将钱币分成 不等的两堆为止,则判定这位选手为输家
2020/6/3
极大极小过程的基本思路:
① 对于每一格局(棋局)给出(定义或者倒推) 一个静态估价函数值。值越大对MAX越有利,反 之越不利
2020/6/3
② 对于给定的格局,MAX给出可能的走法,然 后MIN对应地给出相应的走法,这样重复若干次, 得 到 一 组 端 节 点 ( 必 须 由 MIN 走 后 得 到 的 , 由 MAX下的棋局)。这一过程相当于节点扩展 注:博弈树深度或层数一定是偶数
2020/6/3
6、若 np 属于MAX层,且对于它的属于MIN层
的子节点 nci 的 e ( nci )有值,则: e ( np ) =max { nci }
某一个节点属于MAX的含义 是该节点等待MAX来扩展
2020/6/3
(续) 若 np 属于MIN层,且对于它的属于MAX层的子 节点 nci 的 e ( nci )有值,则:
双人博弈:即两位选手对垒,轮流依次走步,
其中任何一方都完全知道对方过去已经走过的 棋步和今后可能的走步,其结果是一方赢(而另 一方则输),或双方和局
2020/6/3
博弈的例子: ➢ 一字棋 ➢ 跳棋 ➢ 中国象棋 ➢ 围棋 ➢ 五子棋
2020/6/3
人工智能中研究的博弈问题:
如何根据当前的棋局,选择对自己最有利的 一步棋 ?!
树 T 由初始节点 S 构成
2、若 OPEN 表为空,则转5
3 、 将 OPEN 表 中 第 一 个 节 点 n 移 出 放 入
CLOSED 表的前端
2020/6/3
4、若 n 可直接判定为赢、输、或平局,则令对
应的 e(n)=∞,-∞或 0,并转2;否则扩展 n, 产生 n 的后继节点集 { ni },将{ ni }放入搜索树 T中
2020/6/3
从MAX方的角度来看:
MIN
所有MIN方节点都是与节点
好招
理由:
因为MIN方必定选择最不利于MAX方的方式来 扩展节点,只要MIN方节点的子节点中有一个 对MAX方不利,则该节点就对MAX方不利,故 为“与节点”
2020/6/3
M源自文库X
从MAX方的角度来看:
所有属于MAX方的节点都是“或节点” 好招
博弈问题的表示:
用博弈树来表示,它是一种特殊的与或图。节点 代表博弈的格局(即棋局),相当于状态空间中 的状态,反映了博弈的信息。 与节点、或节点 隔层交替出现
2020/6/3
为什么与节点、或节点隔层交替出现?
假设博弈双方为:MAX和MIN 在博弈过程中,规则是双方轮流走步。在博弈 树中,相当于博弈双方轮流扩展其所属节点
理由:
因为扩展MAX方节点时,MAX方可选择扩展最 有利于自己的节点,只要可扩展的子节点中有 一个对已有利, 则该节点就对已有利
2020/6/3
总之 从MAX方来说,与节点、或节点交替出现;反之, 从MIN方的角度来看,情况正好相反
2020/6/3
在博弈树中,先行一方的初始状态对应着树的根 节点,而任何一方获胜的最终格局为目标状态, 对应于树的终叶节点(可解节点或本原问题)
2020/6/3
(续) 此时,若搜索深度d{ ni }小于预先设定的深度 k, 则将{ ni }放入OPEN表的末端,转2;否则,ni 达到深度k,计算e ( ni ),并转2
2020/6/3
步2
Open为空,即已经扩展完节点
5、若CLOSED表 为空 ,则转8;否则取出
CLOSED表中的第一个节点,记为 np
人工智能
Artificial Intelligence (AI)
曲维光 wgqu@njnu.edu.cn 南京师范大学计算机学院
2020/6/3
2.4 博弈问题的搜索技术 2.4.1 博弈问题的表达 2.4.2 极大极小搜索过程 2.4.3 - 剪枝法
2020/6/3
2.4.1 博弈问题的表达
博弈是一类具有竞争性的智能活动
(5,1,1,MIN)
(4,2,1,MIN)
(3,2,2,MIN)
(3,3,1,MIN)
(4,1,1,1,MAX) (3,1,1,1,1,MIN)
(3,2,1,1,MAX)
(2,2,2,1,MAX)
(2,2,1,1,1,MIN)
(2,1,1,1,1,1,MAX)
注:2020如/6/3 果MAX走红箭头的分法,必定获胜
0 e(P)0
0
MAX占优,MIN不利 势均力敌
MAX不利,MIN占优
2020/6/3
符号:
✓ OPEN:存放待扩展的节点,此时为队列, 即以宽度优先的策略扩展节点
✓ CLOSED:存放已扩展的节点,此时为堆栈, 即后扩展的节点先计算静态估价函数值
2020/6/3
极大极小搜索过程为: 1、将初始节点 S 放入 OPEN 表中,开始时搜索
2020/6/3
③ 对于每一个端节点,计算出它们的静态估价函 数,然后自下而上地逐层计算倒推值,直到MAX 开始的格局。在MIN下的格局中取估值的最小值, 在MAX下格局中取估值的最大值 ④ 取估值最大的格局作为MAX要走的一招棋
2020/6/3
例:向前看一步的两层博弈树
2020/6/3
定义静态函数e(P)的一般原则:
对于比较复杂的博弈问题,只能模拟人的思维 “向前看几步”,然后作出决策,选择最有利自 己的一步。即只能给出几层走法,然后按照一定 的估算办法,决定走一好招
2020/6/3
2.4.2 极大极小过程 对于复杂的博弈问题,要规定搜索深度与时间, 以便于博弈搜索能顺利进行
假设由MAX来选择走一步棋,问题是: MAX如何来选择一步好棋?
2020/6/3
用数字序列加上一个说明来表示一个状态: (3, 2, 1, 1, MAX)
数字序列:表示不同堆中钱币的个数 说明:表示下一步由谁来分,即取MAX或MIN
2020/6/3
现在取N=7的简单情况,并由MIN先分
(7,MIN)
所有可能的分法
(6,1,MAX)
(5,2,MAX)
(4,3,MAX)
但是,从MAX的角度出发,所有使MAX获胜的 状态格局都是本原问题,是可解节点,而使MIN 获胜的状态格局是不可解节点
2020/6/3
例 Grundy博弈:分配物品的问题
如果有一堆数目为N的钱币,由两位选手轮流进 行分配,要求每个选手每次把其中某一堆分成数 目不等的两小堆,直至有一选手不能将钱币分成 不等的两堆为止,则判定这位选手为输家
2020/6/3
极大极小过程的基本思路:
① 对于每一格局(棋局)给出(定义或者倒推) 一个静态估价函数值。值越大对MAX越有利,反 之越不利
2020/6/3
② 对于给定的格局,MAX给出可能的走法,然 后MIN对应地给出相应的走法,这样重复若干次, 得 到 一 组 端 节 点 ( 必 须 由 MIN 走 后 得 到 的 , 由 MAX下的棋局)。这一过程相当于节点扩展 注:博弈树深度或层数一定是偶数
2020/6/3
6、若 np 属于MAX层,且对于它的属于MIN层
的子节点 nci 的 e ( nci )有值,则: e ( np ) =max { nci }
某一个节点属于MAX的含义 是该节点等待MAX来扩展
2020/6/3
(续) 若 np 属于MIN层,且对于它的属于MAX层的子 节点 nci 的 e ( nci )有值,则:
双人博弈:即两位选手对垒,轮流依次走步,
其中任何一方都完全知道对方过去已经走过的 棋步和今后可能的走步,其结果是一方赢(而另 一方则输),或双方和局
2020/6/3
博弈的例子: ➢ 一字棋 ➢ 跳棋 ➢ 中国象棋 ➢ 围棋 ➢ 五子棋
2020/6/3
人工智能中研究的博弈问题:
如何根据当前的棋局,选择对自己最有利的 一步棋 ?!
树 T 由初始节点 S 构成
2、若 OPEN 表为空,则转5
3 、 将 OPEN 表 中 第 一 个 节 点 n 移 出 放 入
CLOSED 表的前端
2020/6/3
4、若 n 可直接判定为赢、输、或平局,则令对
应的 e(n)=∞,-∞或 0,并转2;否则扩展 n, 产生 n 的后继节点集 { ni },将{ ni }放入搜索树 T中
2020/6/3
从MAX方的角度来看:
MIN
所有MIN方节点都是与节点
好招
理由:
因为MIN方必定选择最不利于MAX方的方式来 扩展节点,只要MIN方节点的子节点中有一个 对MAX方不利,则该节点就对MAX方不利,故 为“与节点”
2020/6/3
M源自文库X
从MAX方的角度来看:
所有属于MAX方的节点都是“或节点” 好招