人工智能之与或图搜索问题
(3,1,1,1,1)
(2,2,1,1,1) 我方必胜
(2,1,1,1,1,1) 30
对于比较复杂的博弈问题,只能模拟人的思维 “向前看几步”,然后作出决策,选择最有利自 己的一步。即只能给出几层走法,然后按照一定 的估算办法,决定走一好招。
31
中国象棋
一盘棋平均走50步,总状态数约为10的161 次方。
(2,2,2,1,MAX)
(2,2,1,1,1,MIN)
(2,1,1,1,1,1,MAX)
注:如果MAX走红箭头的分法,必定获胜。 29
分钱币问题
对方先走
(7)
(6,1) (5,2)
(4,3)
(5,1,1) (4,2,1) (3,2,2)
(3,3,1)
(4,1,1,1) (3,2,1,1) (2,2,2,1)
6
普通图搜索的情况
s
n
f(n) = g(n) + h(n) 对n的评价实际是对从s到n这条路 径的评价
7
与或图: 对局部图的评价
初始节点
c
a b
目标
目标
8
两个过程
图生成过程,即扩展节点
从最优的局部途中选择一个节点扩展
计算耗散值的过程
对当前的局部图从新计算耗散值
9
n1 n3 n6
n7 目标
44
步2
Open为空,即已经扩展完节点
5、若CLOSED表为空,则转8;否则取出
CLOSED表中的第一个节点,记为 np;
45
6、若 np 属于MAX层,且对于它的属于MIN层
的子节点 nci 的 e ( nci )有值,则: e ( np ) =max { nci }
46
(续) 若 np 属于MIN层,且对于它的属于MAX层的子 节点 nci 的 e ( nci )有值,则:
用博弈树来表示,它是一种特殊的与或树。节点 代表博弈的格局(即棋局),相当于状态空间中 的状态,反映了博弈的信息, 并且与节点、或 节点隔层交替出现。
20
为什么与节点、或节点隔层交替出现?
假设博弈双方为:MAX和MIN 在博弈过程中,规则是双方轮流走步。在博弈 树中,相当于博弈双方轮流扩展其所属节点。
21
从MAX方的角度来看:
MIN
所有MIN方节点都是与节点
好招
理由:
因为MIN方必定选择最不利于MAX方的方式来 扩展节点,只要MIN方节点的子节点(下出棋 局)中有一个对MAX方不利,则该节点就对 MAX方不利,故为“与节点”。
22
MAX
从MAX方的角度来看:
所有属于MAX方的节点都是或节点
好招
假设1毫微秒走一步,约需10的145次方年。 结论:不可能穷举。
32
在人工智能中可以采用搜索方法 来求解博弈问题,下面就来讨论 博弈中两中最基本的搜索方法。
33
极大极小过程
对于复杂的博弈问题,要规定搜索深度与时间, 以便于博弈搜索能顺利进行。
假设由MAX来选择走一步棋,问题是: MAX如何来选择一步好棋?
OO
OO
OO
XX
XX
XX
XXO
X
XO
X
OX
-
1
0
1
OOO
OO
OO
OO
XX OXX
XX
XX
X
-
X
1
XO
1
X
O
1
OO
X
-
X
X
OOO
OO
OO
OO
X
OX
X
XO
X
XX
X XOX X
X
-
1
2
2
OO O
OO
OO
OO
X
OX
X
XO
XX
XX
XXO XX
-
0
2
1
59
但是,从MAX的角度出发,所有使MAX获胜的 状态格局都是本原问题,是可解节点,而使MIN 获胜的状态格局是不可解节点。
25
博弈树特点
(1)博弈的初始状态是初始节点; (2)博弈树的“与”节点和“或”节点是逐层交替出
现的; (3)整个博弈过程始终站在某一方的立场上,所以能
使自己一方获胜的终局都是本原问题,相应的节 点也是可解节点,所有使对方获胜的节点都是不 可解节点。
34
极大极小过程
极大极小过程是考虑双方对弈若干步之后, 从可能的走法中选一步相对好的走法来走, 即在有限的搜索深度范围内进行求解。
需要定义一个静态估价函数e,以便对棋局 的态势做出评估。
35
极大极小过程的基本思路:
① 对于每一格局(棋局)给出(定义或者倒推) 一个静态估价函数值。值越大对MAX越有利,反 之越不利;
目标
n4(1) n8(0)
n7(0)
红色:5
黄色:6
13
n1 n3 n6
n7目标
n0
初始节点
n0
初始节点
n2 n5
n1 5
n4 n2(4) n5(1) 2
n3(4) n6(2) n8
目标
1 n4(1)
n8(0)
n7(0)
红色:5
黄色:6
14
2.3 博弈树搜索
博弈 是一类具有竞争性的智能活动
双人博弈:即两位选手对垒,轮流依次走步,
n4(1) n5(1)
红色:4 黄色:3
11
n1 n3 n6
n7目标
n0
初始节点
n0
初始节点
n2 n5
n1 5
n4 n2(4)
n3(4)
n5(1)
n4(1)
n8
目标
红色:4 黄色:6
12
n1 n3 n6
n7目标
n0
初始节点
n0
初始节点
n2 n5
n1 5
n4 n2(4) n5(1) 2
n3(4) n6(2) n8
28
现在取 N=7 的简单情况,并由MIN先分
(7,MIN)
所有可能的分法
(6,1,MAX)
(5,2,MAX)
(4,3,MAX)
(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)
41
极大极小过程的基本思想:
(1)当轮到MIN走步的节点时,MAX应考虑最 坏的情况(即f(p)取极小值);
(2)当轮到MAX走步的节点时,MAX应考虑最 好的情况(即f(p)取极大值);
(3)评价往回倒推时,相应于两位棋手的对 抗策略,交替使用(1)和(2)两种方 法传递倒推值。
42
极大极小搜索过程为: 1、将初始节点 S 放入 OPEN 表中,开始时搜索
0
O OX X
2
O XX
O
2
O X XO
3
O
O
OO
XX
XXO XX
O
0
1
1
O
1
X
O
O
OO
X
X
XO
X
X
OX
X
O
1
2
2
X
X
OO
O
O
X
OX
X
0
1X
1X
0O X
58
XOO
1
X
X
OO
1
X
X
第三步
OO
X X -
X
XOO XOO XOO XOO
OX
X
X
XO
X
XO
X
OX
1
2
1
1
OO
- X X
OO X
X
XX
-
OOO
利的,不存在对双方均有利或均无利的棋,对 弈的结果是一方赢,而另一方输,或者双方和 棋。
17
博弈的特点:
双方的智能活动,任何一方都不能单独控制 博弈过程,而是由双方轮流实施其控制对策 的过程。
18
人工智能中研究的博弈问题:
如何根据当前的棋局,选择对自己最有利的 一步棋 ?
中国象棋
19
博弈问题(求解过程)的表示:
e ( np )=min{ nci }
47
7、转5; 8、根据 e (S) 的值,标记走步或者结束(-∞,
∞或 0)。
48
算法分成两个阶段:
第一阶段为1、2、3、4步,用宽度优先算法生成 规定深度 k 的全部博弈树,然后对其所有端节点 计算 e(P);
第二阶段为5、6、7、8步,是自下而上逐级求节 点的倒推估价值,直至求出初始节点的 e(S) 为止, 再由 e(S) 选得相对较好的走法,过程结束。
53
② 若 P 是MAX获胜,则 e(P)=+∞
③ 若 P 是MIN获胜,则 e(P)=-∞
54
例:计算下列棋局的静态估价函数值
O ×
棋局
e(P)=6-4=2
×O× × ×× × ××
行=2 列=2 对角=2
OOO O×O OOO
行=2 列=2 对角=0
55
利用棋盘的对称性,有些棋局是等价的
O ×
树 T 由初始节点 S 构成;
2、若 OPEN 表为空(节点扩展结束),则转5;
3、将 OPEN 表中第一个节点 n 移出放入
CLOSED 表的前端;
43
4、若 n 可直接判定为赢、输、或平局,则令对应的
e(n)=∞,-∞或 0,并转2;否则扩展 n,产生 n 的 后继节点集 { ni },将{ ni }放入搜索树 T 中。此时, 若搜索深度d{ ni }小于预先设定的深度 k,则将 { ni }放入OPEN表的末端,转2;否则,ni 达到深 度k,计算e ( ni ),并转2;