第二章与或图搜索问题
与或图搜索问题

与或图搜索问题的特点
组合优化问题
与或图搜索问题是一个典型的组 合优化问题,因为解决方案空间 通常非常大,需要采用高效的搜 索策略来找到最优解。
逻辑约束
与或图中的节点之间存在逻辑约 束,即某些节点必须同时满足与 (AND)或(OR)关系。
决策变量
与或图中的节点代表决策变量, 需要确定它们的取值以最大化目 标函数或满足特定条件。
03
与或图搜索问题的求解算法
深度优先搜索算法
深度优先搜索是一种用于遍历或搜索树 或图的算法。该算法会尽可能深地搜索 树的分支,当节点v的所在边都己被探 寻过,搜索将回溯到发现节点v的那条
边的起始节点。
深度优先搜索算法适合求解与或图中的 AND-OR图问题,可以找到所有解或
最优解。
算法步骤:选择一个起始节点,标记为 已访问,然后递归地搜索与该节点关联 的所有未被访问的节点,直到所有节点
与或图搜索问题的求解目标
找到最优解
与或图搜索问题的求解目标是找到满足所有 逻辑约束的节点组合,以最大化目标函数或 满足特定条件。
高效求解
由于与或图搜索问题通常具有较大的解决方案空间 ,因此需要采用高效的搜索策略和启发式算法来快 速找到最优解。
实际应用
与或图搜索问题在许多实际应用中具有广泛 的应用,如电路设计、计划调度、物流优化 等。
路径规划
在路径规划问题中,与或图搜索问题可以用于寻找满足特定条件的路径, 如最短路径、最少花费路径等,使得路径能够连接起点和终点。
02
与或图搜索问题概述
与或图搜索问题的定义
与或图搜索问题是一种组合优化问题,旨在寻找满足一系列与 (AND)或(OR)逻辑关系的节点组合。
它通常由一个有向图表示,其中节点表示决策变量,边表示 逻辑关系。
知识表示及Prolog语言 “与或”图表示法及其应用

信息技术学科教案时间(分)教学过程教师活动学生活动设计意图225(课前2分钟预备)复习提问:(2分钟)⒈知识表示遵循的思路?(讨论:自然语言→符号→计算机语言)⒉已经学过哪些知识表示的方法?(回答:框架、产生式、状态空间表示法)引入新课:(2分钟)实例分析1:证明三角形全等方法的知识表示。
(如:图1)图1:证明三角形全等方法的“或”图从而引出“与/或”图表示法及其应用的教学内容。
讲授新课:“与/或”图表示法及其应用一、“与/或”图表示法⒈“或”图图2:“或”图“或”图:“或”指的是当一个问题P变换为一组子问题P1、P2、P3 …Pn时,只要任意一个子问题有解,则原问题就有解。
只有当所有的子问题都无解时,原问题才无解。
这样原问题P与子问题之间的关系可以用“或”图来表示。
(如:图2),P:或节点。
任务一:(见《课堂练习》)画出边角边方法证明三角形全等(Q3)的“或”图。
分析:此问题变换为三个子问题Q31、Q32、Q33:三组边角边任意一组对应相等都可证明三角形全等。
组织提问播放分析分析归纳布置指导监查就坐安静思考回答观看思考回答观察思考理解思考完成组织课堂复习过实例引出新课便于理解由一般到特殊的认识规律达成教学目标之一5⒉“与”图由任务一引出探究问题1:用“边角边”方法证明一对三角形全等的子问题Q32图如何画?实例分析2:结合具体三角形分析利用“边角边”方法证明一对三角形全等,归纳出“与”图。
(如:图3)Q32:△ADE≌△CBEQ321:AD=CBQ322:∠ADE=∠CBEQ323:DE=EB图3:用“边角边”方法证明三角形全等的“与”图“与”图:“与”指当一个问题P可以分解为一组子问题P1、P2、P3 …Pn时,只有当所有的子问题都有解时,原问题才有解,任何一个子问题无解都会导致原问题无解,这样原问题与其所有的子问题之间的关系可以用“与”图”来表示。
(如:图4)图4:“与”图任务二:(见《课堂练习》)画出表示信息技术会考合格条件的“与”图。
与或图

北京信息科技大学 孙骏 2014.05.13
与或图的搜索策略
1 与或图的一般搜索过程 2 与或图的广度优先搜索
3 与或图的深度优先搜索
4 与或图的有序搜索 5 博弈树的启发式搜索
1 与或图的一般搜索过程
与图: 把一个原问题分解为若干个子问题,P1,P2, P3,…可用“与图”表示;P1,P2,P3,…对应的子问
S0 2
A 6 t1 5 t2 E C 1 t3 2 F 3 1 2 B 2
D 1 G 1
t4 2 t5
解:左边解树, 按和代价:h(A)=11 h(S0)=13; 按最大代价:h(A)=6 h(S0)=8; 右边解树, 按和代价:h(G)=3, h(D)=4, h(B)=6, h(S0)=8; 按最大代价:h(G)=2, h(D)=3, h(B)=5, h(S0)=7
P
E
F
2
G
0 0 2 2 0 0
H
3
2
h(N)=2, h(P)=7, h(C)=3, h(A)=8 左子树h(S0)=9
3
2
2
2
三阶梵塔问题
1 2 3 1 2 3
A
A
B C
B C
初始配置
目标配置
问题描述: 采用三元组表示状态: S=(i,j,k) 其中,i, j, k分别表示金片C,B,A所在的钢针号。 初始状态(1,1,1),目标状态(3,3,3)
a
4-5=-1 b
5-4=1
5-5=0
5-5=0
6-6=0
程可用一个“与或图”来表示
P P1 P11 P12 P2 P31 P3 P32 P33
与或图搜索问题

…...
K个
*
耗散值的计算
k(n, N) = Cn+k(n1, N)+…+k(ni, N) 其中:N为终节点集 Cn为连接符的耗散值
…...
i个
n
n1
n2
ni
*
目标
目标
初始节点s
a
b
c
解图:
*
能解节点
终节点是能解节点
若非终节点有“或”子节点时,当且仅当其子节点至少有一能解时,该非终节点才能解。
f(n) = g(n) + h(n) 对n的评价实际是对从s到n这条路径的评价
01
n
02
s
03
普通图搜索的情况
04
*
与或图: 对局部图的评价
目标
目标
初始节点
a
b
c
*
两个过程
01
图生成过程,即扩展节点
03
计算耗散值的过程
02
从最优的局部途中选择一个节点扩展
04
对当前的局部图重新新计算耗散值
*
AO*算法举例
若非终节点有“与”子节点时,当且仅当其子节点均能解时,该非终节点才能解。
*
不能解节点
若非终节点有“或”子节点,当且仅当所有子节点均不能解时,该非终节点才不能解。
若非终节点有“与”子节点时,当至少有一个子节点不能解时,该非终节点才不能解。
没有后裔的非终节点是不能解节点。
*
2.2 与或图的启发式搜索算法AO*
第一阶段是完成自顶向下的图生成操作,先通过有标记的连接符,找到目前为止最好的一个局部解图,然后对其中一个非终结点进行扩展,并对其后继结点赋估计耗散值和加能解标记。
第二章与或图搜索问题

15
耗散值(代价值)的计算:示例
• 解树:S0, A, t1和t2。S0, B, D, G, t4和t5。
S0
2
2
• 由左边的解树可得: • 和代价:h(A)=11,h(S0)=13
A
6
5
1
• 最大代价: h(A)=6,h(S0)=8
t1
t2
C
• 由右边的解树可得: • 和代价:h(G)=3,h(D)=4,h(B)=6,h(S0)=8
3
2
2
2
H(G)=7, h(H)=6, h(E)=7, h(D)=11, S0的右
子树算出的h(S0)=12,而左子树的h(S0)=9,
因此左子树为希望树
22
与或树的有序搜索:示例
S0
A
D
B L
C 3
M
E
F
2
G
H
0
0
2
2
3
2
2
2
h(L)=2, h(M)=6, h(B)=3, h(A)=8, L、B均为可解节点。但节
• 1. 把初始节点S0放入OPEN表。
• 2. 把OPEN表中的第一个节点(记为节点n)取出放入CLOSED 表。
• 3. 如果节点n可扩展,则作下列工作: • 3.1 扩展节点n,将其子节点放入OPEN 表的尾部,并为每
个子节点配置指向父节点的指针,以备标识过程使用。
• 3.2 考察这些子节点中有否终止节点。若有,则标识这些终 止节点为可解节点,并应用可解标识过程对其父节点、祖父 节点等先辈节点中的可解节点进行标识。如果初始节点S0也被 标识为可解节点,就得到了解树,搜索成果,退出搜索过程; 如辈果的不节能点确。定S0为可解节点,则从OPEN表中删去具有可解先
与或图搜索问题

f
0
0 1
d b
0 3
m h
1
1
n e
k i
-3 1
6
a
0
c
-3
3
g
5 4
6
j
0
5
-3
3 3
-3
0
2
2
-3
0
-2
3 5 4
1
-3
0 6
8 9
-3
α-β剪枝
极大节点的下界为α。 极小节点的上界为β。 剪枝的条件:
后辈节点的β值≤祖先节点的α值时, α剪枝 后辈节点的α 值≥祖先节点的β值时, β剪枝
α-β剪枝的其他应用
故障诊断
A 风险投资
B
C
D
1
极大
1
b
0
极小
6
a
0
3
1
0
-3
3
-3
-3
-2
1
-3
6
-3
0
5
-3
3 3
-3
0
2
2
-3
0
-2
3 5 4
1
-3
0 6
8 9
-3
5 α-β剪枝
设某博弈问题如下图所示,应用极小极大方法进行搜索。假设搜索的 顺序为从下到上,从左到右。当计算完a的值为0后,由于b是极大节 点,马上就可以知道b的值大于等于0。接下来求c的值。由于c是极小 节点,由d的值为-3,知道c的值小于等于-3。而a和c都是b的子节点, 所以即便不扩展节点e,也可以知道b的值一定为0了。所以在这种情 况下,没有生成节点e的必要。同样,在知道b的值为0后,由于k是极 小节点,所以立即知道k的值要小于等于0。而通过节点f、g,知道h 的值至少为3。这样即便不扩展A所包围的那些节点,也能知道k的值 一定为0。所以A包围的那些节点也没有生成的必要,不管这些节点取 值如何,都不影响k的值。如果在搜索的过程中,充分利用这些信息, 不就可以少生成很多节点,从而提高搜索的空间利用率吗?α-β过程 正是这样一种搜索方法。
与或图搜索-2015

黄色:6 目标
2015-6-17 22 华北电力大学
AO*算法举例
n0 n1 n2 n4
初始节点
n1 5
n0
初始节点
n4(1)
n2(4)
n3
n5
n3(4)
n5(1)
2
n6(2)
n6
n8
n8(0)
目标
n7
红色:5
n7(0)
23
目标
2015-6-17
黄色:6
华北电力大学
AO*算法举例
n0
n1 n2
初始节点
(2,2,1,1,1)
对方扩展的节点
(2,1,1,1,1,1)
2015-6-17 27 华北电力大学
与或图搜索技术 问题
对简单的博弈或复杂博弈的残局,可以用类似于与或 图的搜索技术求出解图,解图代表了从开局到终局任 何阶段上的弈法 对许多博弈问题不可实现:
• 中国象棋:一盘棋平均走50步,总状态数约为10的161 次方。假设1毫微秒走一步,约需10的145次方年→→不 可能穷举 • 即使用了强有力的启发式搜索技术,也不可能使分枝压 到很少
2015-6-17
28
华北电力大学
与或图搜索技术
解决:
实用策略:把目标确定为寻找一步好棋,等对手回 敬后再考虑寻找另一步好棋 每一步结束条件可根据时间限制、存储空间限制或 深度限制等因素加以确定 搜索策略可采用宽度、深度或启发式方法,一个阶 段搜索结束后,要从搜索树中提取一个优先考虑的 “最好的”走步,这就是实用策略的基本点 极小极大搜索策略就是其中的一种
2015-6-17 11
华北电力大学
基本概念 局部图:
① 单一节点是一个局部图 ② 对于一个局部图的任意叶节点n,选择一个n的外向连 接符K,则该局部图、外向连接符K,以及K所连接的n 的后继节点一起组成的图,仍然组成一个局部图
与或图搜索

• 解图:
初始节点
目标
目标
该解图的耗散值为: (1+(1+1))+(1+1)=5
9
局部解图的耗散值计算
如果我们也将局部图的耗散值记为k(n,N),则: ① 若n是局部图的一个叶节点,则
k(n,N)=h(n);
② 若n是一个外向连接符指向后继节点{n1,…, ni},并设该连接符的耗散值为Cn,则
1
与或图例子
2
2.1 基本概念
与或图是一个超图,节点间通过连接符连接。
超图是图的最一般的表达形式,无论什 么图,你都可以说它是超图,就像无论 整数,无理数,复数,反正都是数一样。
超图的定义由两个集合构成:一个点集A, 另一个是点集A中元素的子集的集合B(B 中所有元素的并集就是集合A)。A中的元 素叫节点;B中的元素就叫边,这样超图 H=(A,B)。
17
与或树的一般搜索过程(续)
• 由上述搜索过程所形成的节点和指针 结构称为搜索树。 • 与或树搜索的目标是寻找解树,从而 求得原始问题的解。如果在搜索的某一 时刻,通过可解标示过程可确定初始节 点是可解的,则由此初始节点及其下属 的可解节点就构成了解树。
18
与或树的一般搜索过程(续)
• 如果在某时刻被选为扩展的节点不可扩 展,并且它不是终止节点,则此节点就 是不可解节点。此时可应用不可解标示 过程确定初始节点是否为不可解节点,
如果可以确定初始节点是不可解的,则搜 索失败;否则继续扩展节点。
19
与或树的性质
• 可解与不可解标示过程都是自下而上进行 的,即由子节点的可解性确定父节点的可解性。
• 在与或树中搜索解树时,如果已确定某个 节点为可解节点,则其不可解的后裔节点就不 再有用,可从搜索树中删去;同样,如果已确 定某个节点是不可解节点,则其全部后裔节点 都不再有用,可从搜索树中删去,但当前这个 不可解节点还不能删去,因为在判断其先辈节 点的可解性时还要用到它。
第2章_基于状态空间图表示的搜索搜索技术(新)XXXX1013

2020/10/24
人工智能
6
2.1.2 知识表示(1)
➢知识表示:就是研究在计算机中如何用最合适 的形式表示问题求解过程中所需要的各种知识, 包括构成问题求解框架的全部知识。
➢常用的知识表示形式
➢ 状态空间图 ➢ 与或图 ➢ 谓词逻辑 ➢ 产生式 ➢ 框架 ➢ 语义网络 ➢ ……
2020/10/24
2020/10/24
人工智能
5
2.1.1 知识与问题求解框架(3)
3.问题求解框架
问题:是指事件或事物的已知或当前状态与目标状态之间有差异 。
问题求解:是指在一定的控制策略下,通过一系列的操作或运算 来改变问题的状态,使之与目标状态接近或一致。 例如,李明在北京,他要去西安(办事)。 又如,博弈问题。 问题的求解框架 (1)叙述性知识:描述问题的状态有关的各种知识。 (2)过程性知识:描述状态之间的变换关系的各种知识。 (3)控制性知识:描述如何在当前状态下选择合适操作的知识。
例2.3修道士和野人问题(4)
2.操作集F={p01, p10,p11,p02,p20,q01,q10,q11, q02,q20}
操作符
p01 p10 p11 p02 p20 q01
q10 q11 q02 q20
条
件
b=1, m=0或3, c≥1 b=1, (m=3,c=2)或(m=1,c=1)
b=1, m=c, c≥1 b=1, m=0或3, c≥2 b=1, (m=3,c=1)或(m=2,c=2) b=0, m=0或3, c≤2
(0,3,1) q01
(0,2,0)
p20 (2,2,1)
2020/10/24
人工智能
25
2.2.2 隐式状态空间图
与或图搜索策略

注意:终止节点一定是端节点,但端节点不一定是终 止节点。
10
可解节点: 6. 可解节点:节点须满足下列 条件之一: (1) 终止节点是可解节点; (2)一个与节点可解,当且仅当其子节点全都可解; (3)一个或节点可解,只要其子节点至少有一个可解; 7.不可解节点: 不可解节点: 不可解节点 关于可解节点的三个条件全部不满足的节点称为不可 解节点。 8.解树 解树: 解树 由可解节点所构成,并且由这些可解节点可推出初 始节点(它对应于原始问题)为可解节点的子树.
11
可解性判别
1 3 2 4 B 5 t1
t4
t3 t2 A
12
可解性判别
S0
A D
B C 3 G L M 3 0 0 2 2 2 E 2 H F
2
2
13
例题
三阶梵塔
C B A
(1,1,1)
三元组
(i, j, k)
i 代表金盘C所在的杆号;j代表金盘B所在的 杆号;k代表金盘A所在的标号。
14
1 3 2 4 5 t1
3) 4)
t4
t3 t2 A
5)
此时,closed 表就是由节点1,2,3,4,5和t1,t2,t3,t4构成的解树,如图中粗线所示。
22
与/或树的深度优先搜索算法
1、把初始节点S0放入OPEN表; 2、移出为OPEN表的第一个节点N放入CLOSED表,并冠以序号n; 3 、如果节点N 的深度大于等于深度界限,则转第5部的第(1); 4、若节点N可扩展,则做下列工作:
t5 G 2 1 t4 F t3 E 1 D 2 3 B 2 1 2 c S0 2 5 A 6 t1
目标 目标
9
其它几个概念与术语
研究生第2章知识表示与推理6-与或树搜索

2024/2/20
2.3.1 与或树盲目搜索技术
问题归约法
与或图
原始问题
起始节点
中间问题
中间节点
本原问题集
终叶节点
操作符
2024/2/20
生成“与”、“ 或” 后继节点的有向弧
可解节点的定义是(递归地):
2024/2/20
(4)、 扩 展 节 点 n , 生 成 其 全 部 后 继 节 点 , 送 OPEN表末端,并设置指向 n 的指针
说明:此时可能出现三种情况 ➢节点 n 无后继节点 ➢节点 n 有后继节点、并有叶节点 ➢节点 n 有后继节点、但无叶节点
2024/2/20
(5)、若 n 无后继节点,标志 n 为不可解,并转(9) ((10)、(11));若后继节点中有叶节点,则标 志这些叶节点为可解节点,并继续((6)、(7)、 (8));否则转(3)
2024/2/20
第五大循环((3)、(4)、(5)步): (3)、从OPEN表中取出节点5,并送到CLOSED表 (4)、扩展节点5,生成后继节点B、C,并送到
OPEN表的末端 (5)、无叶节点,转到(3)步
OPEN= { 6, 7, 8, 9, B, C } CLOSED= { 1 , 2, 3, 4, 5 }
说明: 先扩展的节点画在左边
√
1
√
2
3
X
√
5
6
7
t
1
X
t
t
2
3
√√
√
1
√
2
√
3
X
√
搜索和或图搜索实例AO算法

• 没有后裔旳非终节点是不能解节点。
• 若非终节点有“或”子节点,当且仅当全部子节点均不能解时,该非终节点才不 能解。
• 若非终节点有“与”子节点时,当至少有一种子节点不能解时,该非终节点才不 能解。
耗散值旳计算
1.若n是N旳一种元素, 则k(n, N) =0 2.若n是一种外向连接符指向后继结点{n1,..ni}
k(4, N)= min(1+k(5, N),
1+k(8,N))
目的n8
= min(3, 1)=1
N0= 2+1+2=5
解图(c)
同理可计算得: (a)旳解图耗散值为8 (b)旳解图耗散值为7
具有最小耗散值旳解图称为最佳解 图,其值也用h*(n)标识.上例中旳 h*(n)=5
一般图搜索旳情况
s
n
t f(n) = g(n) + h(n) 对n旳评价实际是对从s经过n到目旳地这条途径旳评价
设:K连接符 旳耗散值为K
AO*算法搜索例子
G中只有一种结点n0
第一种大循环(扩展结点),直到n0是SOLVED:
q=3 n0 初始节点
1. 找到待扩展旳局部图G’{n0} 2. n=G’中任意结点, 此时n=n0
3. 扩展结点n=n0, 生成后继结点集合{n1,n4,n5},
n1
连接符1
连接符2
与或图: 对局部图旳评价
初始节点
c
a b
目的
目的
与或图搜索:AO*算法
两个过程
• 图生成过程,即扩展节点
自顶向下, 从最优旳局部途中选择一种节点扩展
• 计算耗散值旳过程
自下向顶, 对目前旳局部图重新计算耗散值
与或图的搜索算法

contents
目录
• 与或图的基本概念 • 与或图的搜索算法 • 与或图的优化算法 • 与或图的应用场景 • 与或图搜索算法的挑战与未来发展
01
CATALOGUE
与或图的基本概念
与或图的定义
总结词
与或图是一种特殊的图形结构,用于表示一组逻辑表达式之 间的关系。
详细描述
与或图由节点和边组成,其中节点表示变量或逻辑运算符, 边表示逻辑关系。每个节点可以是一个与节点(AND节点) 或一个或节点(OR节点),表示相应的逻辑运算符。
总结词
A*搜索算法是一种启发式搜索算法,它 结合了最佳优先搜索和Dijkstra算法的特 性。
VS
详细描述
A*算法使用一个启发函数来评估节点的重 要性,并优先探索最有可能达到目标状态 的节点。
03
CATALOGUE
与或图的优化算法
记忆化搜索
要点一
总结词
通过存储已搜索的节点状态,避免重复搜索,提高搜索效 率。
启发式搜索
总结词
利用启发式信息指导搜索方向,优先搜索最有希望达 到目标节点的路径。
详细描述
启发式搜索是一种基于启发式信息的搜索算法,它利 用启发式信息来指导搜索方向,优先搜索最有希望达 到目标节点的路径。启发式信息可以是与目标节点距 离最近的节点、最短路径长度等。在搜索过程中,启 发式搜索会根据启发式信息评估每个节点的优先级, 优先搜索优先级最高的节点。启发式搜索可以在一定 程度上减少不必要的搜索,提高搜索效率。
问题转化
为了扩大算法的应用范围,需要研究如何将其他类型的 问题转化为与或图问题,以便利用该算法进行求解。
THANKS
感谢观看
详细描述
第二章 搜索与问题求解

Step4当原始顶点被确定为可解顶点时,输出相应解图为问题的解。
下面通过例2-2对与或图问题表示及其求解步骤作进一步的说明。
例2-2三阶梵塔问题。如图2-4所示,有A、B、C三个金片及1、2、3三根钢针,三个金片按自下而上从大到小的顺序穿在1号钢针上,要求把它们全部移到3号钢针上。每次只能移动一个金片,且任何时刻都不能把大的金片压在小的金片上。
本章介绍关于搜索的基本知识,叙述问题求解的状态空间表示法和与或图表示法,阐述用于问题求解的主要启发式算法,并在此基础上说明计算机博弈中的搜索方法。
2.1
人们希望能在最短的时间内搜索到最好的解。但解的最优性和求解的计算复杂性之间是一对矛盾。在搜索算法不变的情况下,为了获得更好的解,需要更大的时间和空间开销。对于复杂问题,难以同时满足解的最优性和计算的可行性,须在二者之间进行权衡和折衷,一般从以下三个方面来考虑:
(a) (b) (c)
图2-1二阶梵塔问题
(a)初始状态;(b)目标状态1;(c)目标状态2。
解:
(1)用 表示问题的第 个状态。其中, 表示金片A所在的钢针号, 表示金片B所在的钢针号。问题的全部可能状态共有以下9种:
.
显然, 为初始状态, 或 为目标状态。
(2)只能通过移动金片A或B来解决问题。因此,定义操作符 和 。 表示把金片A从第i号钢针移到j号钢针上; 表示把金片B从第i号钢针移到j号钢针上。这样,共有12种能促使状态发生转换的操作,分别是:
2.2.1
一个问题对应的状态空间是一个五元组:
, (2-1)
其中, 是状态的集合, 是用于状态转换的操作符的集合, 是状态转换代价的集合, 是初始状态的集合, 是目标状态的集合。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
分钱币问题
对方先走 (6,1) (7) (5,2) (3,2,2) (4,3)
(5,1,1) (4,2,1)
(3,3,1)
(4,1,1,1) (3,2,1,1) (3,1,1,1,1) (2,1,1,1,1,1)
(2,2,2,1) 我方必胜
19
(2,2,1,1,1)
中国象棋
• 一盘棋平均走50步,总状态数约为10的 161次方。 • 假设1毫微秒走一步,约需10的145次方 年。 • 结论:不可能穷举。
+∞,
p是A方胜局 p是B方胜局
-∞, e(p)=
a b
e(+p)-e(-p), p是未定局 0, p是和局 a b a
e(+p):可使a成为三子一线的数目 e(-p ):可使b成为三子一线的数目
b a a b a b
5000 states、~900,000 nodes in Tic-Tac-Toe
9
与或图: 对局部图的评价
初始节点
c
a
b 目标 目标
10
两个过程
• 图生成过程,即扩展节点
– 从最优的局部图中选择一个节点扩展
• 计算耗散值的过程
– 对当前的局部图重新计算耗散值
11
AO*算法举例
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
-3
0 6
8 9
26
-3
Properties of minimax
• • • • • Complete? Yes (if tree is finite) Optimal? Yes (against an optimal opponent) Time complexity? O(bm) α-β? O(bm/2) Space complexity? O(bm) (depth-first exploration)
34
问题1:12枚硬币,其中有一枚假币,(凡轻于或重于 真币者即为假币),设计一个算法,使用无砝码天平至 多称3次,找出假币并指出它轻于还是重于真币。 问题2:任给k枚硬币,其中有一枚假币,问至少称几次 可以找出假币。 现有标号为1,2,3,4,5,6,7,8,9的九张纸牌, 甲、乙两人轮流取一张牌,已取走的牌不能重新放回, 目标是手中任意三张牌的点数加起来正好是15点,谁先 拿到,谁就赢了。
5
n6
• 解图: 初始节点n0 n1 n2 n5 n3 n4 K(n0,N) =2+k(n4,N)+k(n5,N) =3+2k(n5,N) =3+2×2 =7 n6 目标n8 目标n7
6
能解节点
• 终节点是能解节点 • 若非终节点有“或”子节点时,当且仅 当其子节点至少有一能解时,该非终节 点才能解。 • 若非终节点有“与”子节点时,当且仅 当其子节点均能解时,该非终节点才能 解。
第二章 与或图搜索问题
初始节点n0 n1 n2 n4 n5
n3
n6 目标 n8 目标 n7
1
2.1 基本概念
• 与或图是一个超图,节点间通过连接符 连接。 • K-连接符:
…...
K个
2
耗散值的计算
k(n, N) = Cn+k(n1, N)+…+k(ni, N) 其中:N为终节点集 Cn为连接符的耗散值
– 后辈节点的β值≤祖先节点的α值时, α剪枝 – 后辈节点的α 值≥祖先节点的β值时, β剪枝
•
简记为:
– 极小≤极大,剪枝 – 极大≥极小,剪枝
25
α-β剪枝(续)
f
0 0 1
d b
0 3
m h
1
1
n e
k i
1
6
a
0
c
-3
3
g
5 4
-3
6
j
0 5
-3
3 3
-3
0 2
2
-3
0 -2
3 5 4
1
7
不能解节点
• 没有后裔的非终节点是不能解节点。 • 若非终节点有“或”子节点,当且仅当 所有子节点均不能解时,该非终节点才 不能解。 • 若非终节点有“与”子节点时,当至少 有一个子节点不能解时,该非终节点才 不能解。
8
普通图搜索的情况
s
n
f(n) = g(n) + h(n) 对n的评价实际是对从s到n这条路径的评价
红色:5 黄色:6
17
n7
目标
2.3 博弈树搜索
• • • • • • • • • • • 博弈过程: 二人零和:博弈结果只有胜、负、平三种情况 全信息:当前及过往局势全开放 非偶然:双方都理智决定行为(选择最有利于己方的策略) 博弈树构成 初始格局记为S0 “AND”和“OR”逐层交替出现, 己方扩展的为“OR”(MAX), 对方为“AND”(MIN) 使己方获胜的终局为可解节点,对方获胜的为不可解节点 极大极小分析法 端节点用估价函数估值,反推上层节点估值,直至根节点 估值大的方案较好(按获利) 博弈树扩展深度越大越精确,但计算量庞大,通常一定深度
• For chess, b ≈ 35, m ≈100 for "reasonable" games exact solution completely infeasible
27
Deterministic games in practice
• Checkers: Chinook ended 40-year-reign of human world champion Marion Tinsley in 1994. Used a precomputed endgame database defining perfect play for all positions involving 8 or fewer pieces on the board, a total of 444 billion positions. » • Chess(1030): Deep Blue defeated human world champion Garry Kasparov in a six-game match in 1997. Deep Blue searches 200 million positions per second, uses very sophisticated evaluation, and undisclosed methods for extending some lines of search up to 40 ply. • Othello: human champions refuse to compete against computers, who are too good. • Go: human champions refuse to compete against computers, who are too bad. In go, b > 300, so most programs use pattern knowledge bases to suggest plausible moves.
35
22
我方先手
1
MAX
a
-1
a
-2
a
1
MIN
a b
a b
a b
a b
a b
b a
b a a
b a b a b
b a b a
1
0
1
0
-1
-1
0
-1
0
-2
1
2
23
0
b a a b a ba b a a b 0 a a bb a a b a a b 1 b a 1 b a b a b 1 a b a b 1 a b a b a 2 b a a b 0 b a a 0 b b a a b 0 b ab a 0
12
目标
n7
目标
n0 n1 n2
初始节点
n1(2) n4
n0
初始节点
n4(1)
n3
n5
n5(1)
n6
n8
目标
n7
目标
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
红色:4 黄色:3
13
n0 n1 n2
初始节点
n1 n4 2,5*
n0
初始节点
n4(1) n2(4)
n3
n5 n3(4)
n5(1)
n6
n8
目标
n7
目标
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
红色:4 黄色:6
14
n0 n1 n2
初始节点
20
1,极小极大过程
1
极大
1
b a
0
极小
6
0
3
1
0
-3
3
-3
-3
-2
1
-3
6
-3
0 5
-3
3 3
-3
0 2
2
-3
0 -2
3 5 4
1
-3
0 6
8 9
-3
21
例:一字棋,井字游戏(Tic-Tac-Toe;/ttt/) A方:a棋;B方:b棋;扩展深度:2层 估价函数e(p)定义: