人工智能之与或图搜索问题
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
规定MAX先手
52
静态估计函数e(P)定义为: ① 若格局 P 对任何一方都不能获胜,则 e(P) =(所有空格上都放上 MAX的棋子后,MAX 的三个棋子所组成的行、列及对角线的总数) -
(所有空格上都放上 MIN 的棋子后, MIN 的三个
棋子所组成的行、列及对角线的总数)
53
② 若 P 是MAX获胜,则 e(P)=+∞
第二章 与或图搜索问题
初始节点s
a c b
目标 目标
1
2.1 基本概念
与或图是一个超图,节点间通过连接符连 接。 K-连接符:
…...
K个
2
耗散值的计算
k(n, N) = Cn+k(n1, N)+…+k(ni, N) 其中:N为终节点集 Cn为连接符的耗散值
n
n1
…...
n2 i个
ni
3
• 解图:
2
O X X
1
O X O X
0
O O X
O
O
O
1
O O
0
O O X X
2
O
0
O
1
O
1
O O X
O X
1
X
X
X
X O X
X
O X
X O
X
X
O
2
2
3
1
O O
2
X
X
2
O O
X X
1
1
O X
X
0
X
O X
0
58
X
O X
O
1
X
O X
O
第三步
O X X O X
1
X
-
X O X
O X
O
X X
O X O
5 、若 CLOSED 表 为空 ,则转 8 ;否则取出
CLOSED表中的第一个节点,记为 np;
45
6、若 np 属于MAX层,且对于它的属于MIN层
的子节点 nci 的 e ( nci )有值,则: e ( np ) =max { nci }
46
(续)
若 np 属于MIN层,且对于它的属于MAX层的子 节点 nci 的 e ( nci )有值,则:
节点 ,而任何一方获胜的最终格局为目标状态, 对应于树的终叶节点(可解节点或本原问题)。 但是,从 MAX 的角度出发,所有使 MAX 获胜的 状态格局都是本原问题,是 可解节点 ,而使 MIN 获胜的状态格局是不可解节点。
25
博弈树特点
(1)博弈的初始状态是初始节点;
(2)博弈树的“与”节点和“或”节点是逐层交替出 现的; (3)整个博弈过程始终站在某一方的立场上,所以能 使自己一方获胜的终局都是本原问题,相应的节
22
MAX
从MAX方的角度来看:
所有属于MAX方的节点都是或节点
好招
理由:
因为扩展MAX方节点时,MAX方可选择扩展最
有利于自己的节点,只要可扩展的子节点中有
一个对已有利, 则该节点就对已有利。
23
总之: 从MAX方来说,与节点、或节点交替出现;反之, 从MIN方的角度来看,情况正好相反。
24
在博弈树中,先行一方的初始状态对应着树的 根
(4,3)
(3,3,1)
(5,1,1) (4,2,1)
(4,1,1,1) (3,2,1,1) (3,1,1,1,1)
(2,2,2,1)
(2,2,1,1,1)
我方必胜
(2,1,1,1,1,1)
30
对于比较复杂的博弈问题,只能模拟人的思维 “向前看几步”,然后作出决策,选择最有利自 己的一步。即只能给出几层走法,然后按照一定 的估算办法,决定走一好招。
初始节点
目标 目标
4
能解节点
终节点是能解节点
若非终节点有“或”子节点时,当且仅当 其子节点至少有一能解时,该非终节点才 能解。 若非终节点有“与”子节点时,当且仅当 其子节点均能解时,该非终节点才能解。
5
不能解节点
没有后裔的非终节点是不能解节点。
若非终节点有“或”子节点,当且仅当所 有子节点均不能解时,该非终节点才不能 解。 若非终节点有“与”子节点时,当至少有 一个子节点不能解时,该非终节点才不能 解。
双人博弈 :即两位选手对垒,轮流依次走步,
其中任何一方都完全知道对方过去已经走过的
棋步和今后可能的走步,其结果是一方赢 (而另
一方则输),或双方和局
15
博弈的例子: 一字棋 跳棋
中国象棋
围棋 五子棋
16
2.3 博弈树搜索
博弈问题
双人对弈,对垒的双方轮流走步; 信息完备,对垒双方所得到的信息是一样的, 不存在一方能看到,而另外一方看不到的情况; 零和,即对一方有利的棋,对另一方肯定是不 利的,不存在对双方均有利或均无利的棋,对 弈的结果是一方赢,而另一方输,或者双方和 棋。
20
为什么与节点、或节点隔层交替出现?
假设博弈双方为:MAX和MIN 在博弈过程中,规则是双方轮流走步。在博弈 树中,相当于博弈双方轮流扩展其所属节点。
21
从MAX方的角度来看:
所有MIN方节点都是与节点
MIN
好招
理由:
因为MIN方必定选择最不利于MAX方的方式来
扩展节点,只要 MIN 方节点的子节点(下出棋 局)中有一个对 MAX 方不利,则该节点就对 MAX方不利,故为“与节点”。
一个静态估价函数值。值越大对MAX越有利,反 之越不利;
36
② 对于给定的格局,MAX给出可能的走法,然后
MIN对应地给出相应的走法,这样重复若干次,得 到 一 组 端 节 点 ( 必 须 由 MIN 走 后 得 到 的 , 等 待
MAX下的棋局)。这一过程相当于节点扩展;
注:博弈树深度或层数一定是偶数。
42
极大极小搜索过程为:
1、将初始节点 S 放入 OPEN 表中,开始时搜索
树 T 由初始节点 S 构成;
2、若 OPEN 表为空(节点扩展结束),则转5; 3 、 将 OPEN 表 中 第 一 个 节 点 n 移 出 放 入
CLOSED 表的前端;
43
4、若 n 可直接判定为赢、输、或平局,则令对应的
17
博弈的特点:
双方的智能活动,任何一方都不能单独控制
博弈过程,而是由双方轮流实施其控制对策 的过程。
18
人工智能中研究的博弈问题:
如何根据当前的棋局,选择对自己最有利的
一步棋 ?
中国象棋
19
博弈问题(求解过程)的表示:
用博弈树来表示,它是一种特殊的与或树。节点
代表博弈的格局(即棋局),相当于状态空间中 的状态,反映了博弈的信息, 并且与节点、或 节点隔层交替出现。
1
MAX的走步
×
MIN
-1
-2
×
×
1
× O
× O
× O
× O
× O
O × O ×
1
0
O
1
0
O × ×
-1
O × O
1
2
MAX
×
× O
-1
0
-1
0
-2
57
X O
X
第二步
1
O X X O X O O X O O X O X X
1
X O O X
X O X O
X O X
2
O O X X X
1
O X X
3
O X X
(3, 2, 1, 1, MAX)
数字序列:表示不同堆中钱币的个数 说明:表示下一步由谁来分,即取MAX或MIN
28
现在取 N=7 的简单情况,并由MIN先分
(7,MIN)
所有可能的分法
(4,3,MAX)
(3,3,1,MIN)
(6,1,MAX)
(5,2,MAX)
(5,1,1,MIN)
(4,2,1,MIN)
M A X 占 优 , M I N 不 利 势 均 力 敌 M A X 不 利 , M I N 占 优
40
符号:
OPEN:存放待扩展的节点,此时为队列,即以
宽度优先的策略扩展节点。 CLOSED :存放已扩展的节点,此时为堆栈,
即后扩展的节点先计算。
41
极大极小过程的基本思想:
(1)当轮到MIN走步的节点时,MAX应考虑最 坏的情况(即f(p)取极小值); (2)当轮到MAX走步的节点时,MAX应考虑最 好的情况(即f(p)取极大值); (3)评价往回倒推时,相应于两位棋手的对 抗策略,交替使用( 1 )和( 2 )两种方 法传递倒推值。
31
中国象棋
一盘棋平均走 50 步,总状态数约为 10 的 161 次方。 假设1毫微秒走一步,约需10的145次方年。 结论:不可能穷举。
32
在人工智能中可以采用搜索方法 来求解博弈问题,下面就来讨论 博弈中两中最基本的搜索方法。
33
极大极小过程
对于复杂的博弈问题,要规定搜索深度与时间, 以便于博弈搜索能顺利进行。
n3
n5
n5(1)
n6
n8
目标
n7
红色:4
黄色:3
目标
11
n0 n1 n2
初始节点
n1 n4 n2(4) 5
n0
初始节点
n4(1)
n3
n5 n3(4)
n5(1)
n6
n8
目标
n7
红色:4
黄色:6
目标
12
n0 n1 n2
初始节点
n1 n4 5
n0
初始节点
n4(1) n2(4)
n3
n5 n3(4) n6(2)
假设由MAX来选择走一步棋,问题是: MAX如何来选择一步好棋?
34
极大极小过程
极大极小过程是考虑双方对弈若干步之后, 从可能的走法中选一步相对好的走法来走, 即在有限的搜索深度范围内进行求解。 需要定义一个静态估价函数 e, 以便对棋局 的态势做出评估。
35
极大极小过程的基本思路:
① 对于每一格局(棋局)给出(定义或者倒推)
点也是可解节点,所有使对方获胜的节点都是不
可解节点。
26
例 Grundy博弈:分配物品的问题
如果有一堆数目为 N 的钱币,由两位选手轮流进 行分配,要求每个选手每次把其中某一堆分成数 目不等的两小堆,直至有一选手不能将钱币分成
不等的数字序列加上一个说明来表示一个状态:
(3,2,2,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)
注:如果MAX走红箭头的分法,必定获胜。
29
分钱币问题
对方先走
(6,1)
(7)
(5,2)
(3,2,2)
③ 若 P 是MIN获胜,则
e(P)=-∞
54
例:计算下列棋局的静态估价函数值
O ×
棋局
× O × × × × × × ×
行=2 列=2
O O O O × O O O O
行=2 列=2
对角=2
对角=0
e(P)=6-4=2
55
利用棋盘的对称性,有些棋局是等价的 O × ×
O
O × × O
56
MAX
e ( np )=min{ nci }
47
7、转5; 8、根据 e (S) 的值,标记走步或者结束(-∞,
∞或 0)。
48
算法分成两个阶段:
第一阶段为1、2、3、4步,用宽度优先算法生成 规定深度 k 的全部博弈树,然后对其所有端节点 计算 e(P); 第二阶段为5、6、7、8步,是自下而上逐级求节
6
普通图搜索的情况
s
n
f(n) = g(n) + h(n) 对 n 的评价实际是对从 s 到 n 这条路 径的评价
7
与或图: 对局部图的评价
初始节点 c
a b 目标 目标
8
两个过程
图生成过程,即扩展节点
从最优的局部途中选择一个节点扩展
计算耗散值的过程
对当前的局部图从新计算耗散值
9
AO*算法举例
37
③ 对于每一个端节点,计算出它们的静态估价函 数,然后自下而上地逐层计算倒推值,直到MAX 开始的格局。在MIN下的格局中取估值的最小值,
在MAX下格局中取估值的最大值;
④ 取估值最大的格局作为MAX要走的一招棋。
38
例:向前看一步的两层博弈树
39
定义静态函数e(P)的一般原则:
0 eP ( ) 0 0
n0 n1 n2 n4
初始节点
n3
n5
n6
n8
其中: h(n0)=3 h(n1)=2 h(n2)=4 h(n3)=4 h(n4)=1 h(n5)=1 h(n6)=2 h(n7)=0 h(n8)=0 设:K连接符 的耗散值为K
10
目标
n7
目标
n0 n1 n2
初始节点
n1(2) n4
n0
初始节点
n4(1)
e(n)=∞,-∞或 0,并转2;否则扩展 n,产生 n 的
后继节点集 { ni },将{ ni }放入搜索树 T 中。此时, 若搜索深度 d{ ni } 小于预先设定的深度 k ,则将 { ni }放入OPEN表的末端,转2;否则,ni 达到深 度k,计算e ( ni ),并转2;
44
步2
Open为空,即已经扩展完节点
n5(1)
2
n6
n8
n8(0)
目标
n7
目标
n7(0)
红色:5
黄色:6
13
n0 n1 n2
初始节点
n1 n4 5
n0
初始节点
1 n4(1)
n2(4)
n3
n5 n3(4) n6(2)
n5(1)
2
n6
n8
n8(0)
目标
n7
目标
n7(0)
红色:5 黄色:6
14
2.3 博弈树搜索
博弈
是一类具有竞争性的智能活动
点的倒推估价值,直至求出初始节点的 e(S) 为止,
再由 e(S) 选得相对较好的走法,过程结束。
49
等对手走出相应的棋,再以当前的格局 作为初始节点,重复此过程,选择对自 己有利的走法。
50
极大极小过程
51
例: 一字棋的极大极小搜索过程
约定:
每一方只向前看一步 (扩展出二层) 记MAX的棋子为“×”,MIN的棋子为“O”