与或图搜索策略
2013第三章_与或图的搜索
![2013第三章_与或图的搜索](https://img.taocdn.com/s3/m/0165fdad284ac850ad0242aa.png)
第10次课 10月07日
上次课程回顾
与或图搜索:搜索从初始节点到一组终节点集N的一个 解图。 对于与或图搜索,是通过对局部图的评价来选择待扩 展的节点。 解图的求法是:从节点n开始,正确选择一个外向连接 符,再从该连接符所指的每一个后继结点出发,继续 选一个外向连接符,如此进行下去直到由此产生的每 一个后继节点成为集合N中的一个元素为止。 具有最小耗散值的解图称为最佳解图。 能解节点 不能解节点
算法
极大极小过程MINIMAX:
1. T:=(s, MAX),OPEN:=(s),CLOSED:=( );开始时树由初始节点 构成,OPEN表只含有S. 2. LOOP1: IF OPEN =( ) THEN GO LOOP2; 3. n:=FIRST(OPEN),REMOVE(n,OPEN),ADD(n,CLOSED);将n放到 CLOSED表的前面, 4. IF n可直接判定为赢, 输或平局 THEN f(n):= -0,GO LOOP1 ELSE EXPAND(n){ni}, ADD ({ni} ,T) IF d{ni} k THEN ADD({ni}, OPEN) ,GO LOOP1 ELSE 计算f(ni); ni达到深度k,计算各端节点f值.
n5(1)
2
n6
n8
n8(0)
目标
n7
目标
n7(0)
红色:5 蓝色:6
3次循环之后
n0 n1 n2
初始节点
n1 n4 5
n0
初始ห้องสมุดไป่ตู้点
1 n4(1)
n2(4)
n3
n5 n3(4) n6(2)
n5(1)
2
n6
人工智能之与或图搜索问题
![人工智能之与或图搜索问题](https://img.taocdn.com/s3/m/3ed2921c2af90242a995e50b.png)
规定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
AI03-2与或图搜索
![AI03-2与或图搜索](https://img.taocdn.com/s3/m/09e70f58be23482fb4da4c47.png)
E H 5 4
F I
G
反向更新代价 g(E)=5, g(D)=9, g(Q0)=10 g(I)=0, g(F)=1, g(D)=8, g(Q0)=9
3.3.3 启发式与或树搜索
例 3.18
A D Q0
B
C K L
E H 5 4
F I
J
G
反向更新代价 g(J)=0, g(K)=0, g(B)=2, g(A)=7, g(Q0)=8 g(L)=0, g(C)=1, g(A)=5, g(Q0)=6
Q21 Q22 Q23
Q’21 Q’22 Q’23
3.3.1 与或图
与或图/与或树
n0 n1 n2 n4 初始节点
n3
n5
n6
n8 目标 n7 目标
3.3.1 与或图
问题求解
状态图/或图
一个问题可以有几种求解方法 只要其中一种方法可以求解问题,则该问题被求解,方法之 间是"或"的关系
与图:
在用一种方法求解时,又可能需要求解几个子问题 这些子问题必须全部求解,才可能用该方法求解原始问题, 这些子问题之间是"与"的关系
3.3.3 启发式与或树搜索
例 3.18
A D Q0
B 3 3
C
E 3 2
F
左局部树: g(B)=3, g(C)=3, g(A)=8, g(Q0)=9 右局部树: g(E)=3, g(F)=2, g(D)=7, g(Q0)=8
希望树
3.3.3 启发式与或树搜索
例 3.18
A D Q0
B 3 3
C
3.3.3 启发式与或树搜索
例 3.18
A √ D √ √ K √ C √ L E H 5 4 F I Q0 √
与或图搜索问题
![与或图搜索问题](https://img.taocdn.com/s3/m/5de4d29a185f312b3169a45177232f60dccce715.png)
与或图搜索问题的特点
组合优化问题
与或图搜索问题是一个典型的组 合优化问题,因为解决方案空间 通常非常大,需要采用高效的搜 索策略来找到最优解。
逻辑约束
与或图中的节点之间存在逻辑约 束,即某些节点必须同时满足与 (AND)或(OR)关系。
决策变量
与或图中的节点代表决策变量, 需要确定它们的取值以最大化目 标函数或满足特定条件。
03
与或图搜索问题的求解算法
深度优先搜索算法
深度优先搜索是一种用于遍历或搜索树 或图的算法。该算法会尽可能深地搜索 树的分支,当节点v的所在边都己被探 寻过,搜索将回溯到发现节点v的那条
边的起始节点。
深度优先搜索算法适合求解与或图中的 AND-OR图问题,可以找到所有解或
最优解。
算法步骤:选择一个起始节点,标记为 已访问,然后递归地搜索与该节点关联 的所有未被访问的节点,直到所有节点
与或图搜索问题的求解目标
找到最优解
与或图搜索问题的求解目标是找到满足所有 逻辑约束的节点组合,以最大化目标函数或 满足特定条件。
高效求解
由于与或图搜索问题通常具有较大的解决方案空间 ,因此需要采用高效的搜索策略和启发式算法来快 速找到最优解。
实际应用
与或图搜索问题在许多实际应用中具有广泛 的应用,如电路设计、计划调度、物流优化 等。
路径规划
在路径规划问题中,与或图搜索问题可以用于寻找满足特定条件的路径, 如最短路径、最少花费路径等,使得路径能够连接起点和终点。
02
与或图搜索问题概述
与或图搜索问题的定义
与或图搜索问题是一种组合优化问题,旨在寻找满足一系列与 (AND)或(OR)逻辑关系的节点组合。
它通常由一个有向图表示,其中节点表示决策变量,边表示 逻辑关系。
第4章 图搜索策略
![第4章 图搜索策略](https://img.taocdn.com/s3/m/6d276741fe4733687e21aa42.png)
4.1.1 通用或图搜索算法
或图通用搜索算法:
设S0 :初始状态, Sg:目标状态 1. 产生一仅由S0组成的open表,即open=(S0); 2. 产生一个空的closed表; 3. 如果open为空,则失败退出; 4. 在 open 表上按某一原则选出第一个优先结点, 称为n,将n放到closed表中,并从open表中去掉 n;
4.1.2 A算法与A*算法
由定义有 f(n’ ) =g(n’ ) +h(n’ ) =g*(n’ ) +h(n’ ) (因为n’在最优路径上) ≤ g*(n’ ) +h*(n’ ) =f*(n’ ) =f*(S0 ) (由于A*的定义h(n) ≤h*(n)) 所以f(n’)≤f*(S0)成立。
4.1.2 A算法与A*算法
推论1 若问题有解,A*算法一定终止。
(2-1)
因为若A*算法不终止,则命题2的
f(n)≥g(n)≥g*(n)≥d*(n)· e
与命题3的
f(n’)≤f*(S0) (2-2)
同时成立,则产生矛盾。
4.1.2 A算法与A*算法
命题 4 若问题有解, A* 算法终止时一定 找到最优解, 即A*算法是可采纳的。
4.1.1 通用或图搜索算法
注1 : 若生成的后继节点放于:
( 1 ) Open 表的尾部 —— 相当于 Breadth-firstsearch;
( 2 ) Open 表 的 首 部 —— 相 当 于 Depth-firstsearch; (3)根据启发式函数f的估计值确定最佳者,放 于Open 表的首部——相当于Best-first-search 最佳优先搜索。
证:A*终止只有两种情况。 (1) 在第3步, 因open为空而失败退出 但由命题 3 可知: A* 终止前, open 表上必 存在一点n’,满足 f(n’)≤f*(S0) 即open表不会空,所以,不会终止于第3步。
第4章 与或图搜索
![第4章 与或图搜索](https://img.taocdn.com/s3/m/3a60af8f6529647d27285275.png)
• 右图所示的与或 图中,节点n 图中,节点n0有两 个连接符: 个连接符:
–1-连接符指向节 1 点 n 1; –2-连接符指向节 2 点集合{n 点集合{n4、n5};
• 对节点n0 对节点n
–n1称为或节点, n 称为或节点, 称为与节点。 –n4、n5称为与节点。 n
图4-2 与或图
4.3 与或图搜索
kkkk-
第四章 与或图搜索
• 4.1 问题归约法 • 4.2 与或图 • 4.3 与或图搜索 • 4.4 AO*算法 • 4.5 博弈树的搜索
4.1 问题归约法
• 当问题复杂时,可把初始问题分解成若干简单 当问题复杂时, 的子问题,若子问题仍复杂,可再进一步分解, 的子问题,若子问题仍复杂,可再进一步分解, 直到这些子问题的解可直接得到。 直到这些子问题的解可直接得到。这种问题的 描述和求解方法,称为问题归约法。 描述和求解方法,称为问题归约法。 • 可直接解答的问题称为本原问题,是不必证明 可直接解答的问题称为本原问题, 自然成立的。 的、自然成立的。
• 如果n=s为初始节点,则此解图是所求解问题的 如果n=s为初始节点, n=s为初始节点 解图。 解图。
与或图搜索
![与或图搜索](https://img.taocdn.com/s3/m/0c0c6b14a31614791711cc7931b765ce05087a69.png)
• 解图:
初始节点
目标
目标
该解图的耗散值为: (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
与或树的性质
• 可解与不可解标示过程都是自下而上进行 的,即由子节点的可解性确定父节点的可解性。
• 在与或树中搜索解树时,如果已确定某个 节点为可解节点,则其不可解的后裔节点就不 再有用,可从搜索树中删去;同样,如果已确 定某个节点是不可解节点,则其全部后裔节点 都不再有用,可从搜索树中删去,但当前这个 不可解节点还不能删去,因为在判断其先辈节 点的可解性时还要用到它。
人工智能-4 与或图搜索
![人工智能-4 与或图搜索](https://img.taocdn.com/s3/m/c2c4baaa284ac850ad02420b.png)
评估的目的:对后面的状态提前进行考虑, 并且以各种状态的评估值为基础作出最好的 走棋选择。 评估的方法:用评价函数对棋局进行评估。 赢的评估值设为+∞,输的评估值设为-∞, 平局的评估值设为0。 评估的标准:由于下棋的双方是对立的,只 能选择其中一方为评估的标准方。
3.极小极大搜索过程
3.极小极大搜索过程
3.极小极大搜索过程
MAX MIN MAX
MIN
0
-3
3 3
-3 0
2
2
-3 0
-2
3 5 4 1
-3
0 6 8 9
-3
3.极小极大搜索过程
1 1 3 6
MAX MIN MAX
0 0
1
0
-3
3
-3
-3
-2
1
-3
6 -3
MIN
0
5
-3
3 3
-3 0
2
2
-3 0
-2
3 5 4 1
3.3 博弈树(Game tree)搜索
1.概述
20世纪60年代,研制出的西洋跳棋和国际象棋 的博弈程序达到了大师级的水平。 1958约翰•麦卡锡提出博弈树搜索算法 1997年,IBM公司研制的“深蓝”国际象棋 程序,采用博弈树搜索算法,该程序战胜了 国际象棋世界冠军卡斯帕罗夫。
1.概述
博弈问题特点: 双人对弈,轮流走步。 信息完备,双方所得到的信息是一样的。 零和,即对一方有利的棋,对另一方肯定 是不利的,不存在对双方均有利或无利的 棋。
1.概述
博弈的特性 ①两个棋手交替地走棋 ; ②比赛的最终结果,是赢、输和平局中的 一种; ③可用图搜索技术进行,但效率很低; ④博弈的过程,是寻找置对手于必败态的 过程; ⑤双方都无法干预对方的选择。
与或图搜索策略
![与或图搜索策略](https://img.taocdn.com/s3/m/192f64135f0e7cd184253647.png)
注意:终止节点一定是端节点,但端节点不一定是终 止节点。
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章 与或图搜索
![第2章 与或图搜索](https://img.taocdn.com/s3/m/72c919d25022aaea998f0f82.png)
2.2 与或图的启发式搜索算法
• 以结点n为尾的红色箭头,标识结点n为根的最佳局部图。 • 在第4步得到的n0局部图中,叶结点都属于{n7, n8}。 • 解图: n0
5 n4 1
2
n5 n8 0 n7
0
当EXPAND(n)={}时,令q(n)=∞
2.2 与或图的启发式搜索算法
① G:={s},计算q(s)=h(s), 如果GOAL(s), THEN M(s, SOLVED) AO*算法 ② While (s还没加上SOLVED标记)do { a) G‘ = FIND(G) b) n:=G‘的任一个非终结点 生长,对新结点 c) EXPAND(n) →{nj}, 计算q(nj)=h(nj), 这里nj∈G 计算q d) G:=G∪{nj}; IF GOAL(nj), THEN M(nj, SOLVED) e) S := {n}
2.2 与或图的启发式搜索算法
• 第四次生长
n1 5 n2 n3 4 n6 2 n7 0 0 4 2 n5 n8 n6 n8 n0 5 5 n1 n4 1 1 n3 n2 n4 n0
n5
1)沿n0的最佳局部图,找到一个叶结点; n7 2)扩展此叶结点,计算以叶结点为根的局部图的耗散; 3)向上修改非终结点为根的局部图的耗散估计; 4)修改n0最佳局部图的标识。
2.2 与或图的启发式搜索算法
• 第二次生长
6 n1 2 n2 n3 4 1 1 n5 n6 n8 n0 4 3 n4 n3 n1 n2 n4 n0
5
4
n5
1)沿n0的最佳局部图,找到一个叶结点; n7 2)扩展此叶结点,计算以叶结点为根的局部图的耗散; 3)向上修改非终结点为根的局部图的耗散估计,表示最佳局部图; 4)修改n0最佳局部图的标识。
与或图的搜索算法
![与或图的搜索算法](https://img.taocdn.com/s3/m/50d9957b42323968011ca300a6c30c225901f028.png)
contents
目录
• 与或图的基本概念 • 与或图的搜索算法 • 与或图的优化算法 • 与或图的应用场景 • 与或图搜索算法的挑战与未来发展
01
CATALOGUE
与或图的基本概念
与或图的定义
总结词
与或图是一种特殊的图形结构,用于表示一组逻辑表达式之 间的关系。
详细描述
与或图由节点和边组成,其中节点表示变量或逻辑运算符, 边表示逻辑关系。每个节点可以是一个与节点(AND节点) 或一个或节点(OR节点),表示相应的逻辑运算符。
总结词
A*搜索算法是一种启发式搜索算法,它 结合了最佳优先搜索和Dijkstra算法的特 性。
VS
详细描述
A*算法使用一个启发函数来评估节点的重 要性,并优先探索最有可能达到目标状态 的节点。
03
CATALOGUE
与或图的优化算法
记忆化搜索
要点一
总结词
通过存储已搜索的节点状态,避免重复搜索,提高搜索效 率。
启发式搜索
总结词
利用启发式信息指导搜索方向,优先搜索最有希望达 到目标节点的路径。
详细描述
启发式搜索是一种基于启发式信息的搜索算法,它利 用启发式信息来指导搜索方向,优先搜索最有希望达 到目标节点的路径。启发式信息可以是与目标节点距 离最近的节点、最短路径长度等。在搜索过程中,启 发式搜索会根据启发式信息评估每个节点的优先级, 优先搜索优先级最高的节点。启发式搜索可以在一定 程度上减少不必要的搜索,提高搜索效率。
问题转化
为了扩大算法的应用范围,需要研究如何将其他类型的 问题转化为与或图问题,以便利用该算法进行求解。
THANKS
感谢观看
详细描述
人工智能作业题解答
![人工智能作业题解答](https://img.taocdn.com/s3/m/b646b669bf1e650e52ea551810a6f524ccbfcb3f.png)
人工智能作业题解答第三章图搜索与问题求解1、何为状态图和与或图?图搜索与问题求解有什么关系?解:按连接同一节点的各边间的逻辑关系划分,图可以分为状态图和与或图两大类。
其中状态图是描述问题的有向图。
在状态图中寻找目标或路径的基本方法就是搜索。
2、综述图搜索的方式和策略。
解:图搜索的方式有:树式搜索,线式搜索。
其策略是:盲目搜索,对树式和不回溯的线式是穷举方式,对回溯的线式是随机碰撞式。
启发式搜索,利用“启发性信息”引导的搜索。
3、什么是问题的解?什么是最优解?解:能够解决问题的方法或具体做法成为这个问题的解。
其中最好的解决方法成为最优解。
4、什么是与或树?什么是可解节点?什么是解树?解:与或树:一棵树中的弧线表示所连树枝为“与”关系,不带弧线的树枝为或关系。
这棵树中既有与关系又有或关系,因此被称为与或树。
可解节点:解树实际上是由可解节点形成的一棵子树,这棵子树的根为初始节点,叶为终止节点,且这棵子树一定是与树。
解树:满足下列条件的节点为可解节点。
①终止节点是可解节点;②一个与节点可解,当且仅当其子节点全都可解;③一个或节点可解,只要其子节点至少有一个可解。
5、设有三只琴键开关一字排开,初始状态为“关、开、关”,问连接三次后是否会出现“开、开、开”或“关、关、关”的状态?要求每次必须按下一个开关,而且只能按一个开关。
请画出状态空间图。
注:琴键开关有这样的特点,若第一次按下时它为“开”,则第二次按下时它就变成了“关”。
解:设0为关,1为开6、有一农夫带一只狼、一只羊和一筐菜欲从河的左岸乘船到右岸,但受下列条件限制:1)船太小,农夫每次只能带一样东西过河。
2)如果没农夫看管,则狼要吃羊,羊要吃菜。
请设计一个过桥方案,使得农夫、狼、羊、菜都不受损失地过河。
画出相应状态空间图。
提示:(1)用四元组(农夫、狼、羊、菜)表示状态,其中每个元素都可为0或1,用0表示在左岸,用1表示在右岸。
(2)把每次过河的一次安排作为一个算符,每次过河都必须有农夫,因为只有他可以划船。
与或图搜索ANDORGraphSearch_OK
![与或图搜索ANDORGraphSearch_OK](https://img.taocdn.com/s3/m/aaa73cbcc850ad02de8041f9.png)
i个
5
• 解图(对应普通图中 的解路径):
n1
n3
n0 初始节点
n2 n5
n4 几个解图的费用
n6
n7 目标
n8
目标
6
• 解图(对应普通图中 的解路径):
初始节点
假设k-连接 符的费用为k
解图的费用:8
目标
目标
7
• 解图(对应普通图中 的解路径):
初始节点
解图的费用:7
目标
目标
8
与或图启发式搜索算法AO*
估计约147亿年~10的10次方年 ) • 结论:不可能穷举。
21
22
23
24
0 ->1
0
1
3 ->-1
0 2 123 4
-1
02
1 -5 2 3 0 4
-1
0 32
1 -5
2 3 -1 ->0 4 -1
0 -3 3
2
1 -3 -5 2 3 -3 -1 0 4 -1
25
-剪枝
• 极大节点的下界为。 • 极小节点的上界为。 • 剪枝的条件:
n3(4)
n8
目标
红色:4 蓝色:6
13
n1 n3 n6
n7目标
n0 初始节点
n0(4) 初始节点
n2 n5
n1(5)
n4
n4(1)
n2(4)
nn55((11)->2)
n3(4)
n6(2) n8
n8(0)
目标
n7(0)
14
n1 n3 n6
n7目标
n0 初始节点
n0(n40->(45)) 初始节点
第二章与或图的搜索算法
![第二章与或图的搜索算法](https://img.taocdn.com/s3/m/6099a51655270722192ef79b.png)
16
AO*算法举例
n0 n1 n2 n4
初始节点
n3
n5
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 设:K连接符 的耗散值为K
目标
17
n0 n1(2)
初始节点
n0 n1
初始节点
n4(1)
n2
n4
n5(1)
n3
n5 红色:4
n6
n8 目标
黄色:3
18
n7目标
n0
初始节点 n1
n0
初始节点
n1
n2 n4
5
n4(1) n2(4) n5(1)
n3
n5
n3(4) n6 n8
目标 红色:4 黄色:6
n7目标
19
n0
初始节点 n1
n0初始节点Fra bibliotekn1n2 n4
5
n4(1) n2(4)
n3
父节 点
A M 子节 点
H
E
F
G
6
梵塔问题与或图
(111) (333)
(111) (122)
(122) (322)
(322) (333)
(111) (113)
(113) (123)
(123) (122) (322) (321) (321) (331)
(331) (333)
25
AO*与A的区别
A算法有OPEN表和CLOSED表,而AO*算法只 用一个与或图结构,它代表到目前为止已 显式生成的部分搜索图,图中每一个结点 的h(n)值是估计最佳解图,而不是估计解 路径。
搜索(与或图搜索实例AO算法)
![搜索(与或图搜索实例AO算法)](https://img.taocdn.com/s3/m/35e9f56425c52cc58bd6bea7.png)
AO*算法搜索例子
q=5 初始节点 n0 q=5 n1
连接符1
n2
连接符2
q=1 n4
n3
q=2 n5
n6
n8
n7
在重新计算n0耗散的小循环中: … 由于n4,n5为SOLVED, 则n0为SOLVED q(n0)=5, 找到解
G={n0,n1,n2,n3,n4,n5,n6,n7,n8} 第四个大循环(扩展结点),直到n0是SOLVED: 1. 找到待扩展的局部图G’{n0,n4,n5,n7,n8} 2. n=G’中非终结点, 此时n=n4 3. 扩展结点n=n4, 生成后继结点集合{n5, n8}, q(n5)=2, q(n8)=0 4. 小循环(修改结点耗散值),直到S为空: a. S={n=n4} b. 保证n的后代不在S中 c. m=n5的连接符有两条, 计算q1(m)=1+q(n5)=1+2=3 q2(m)=1+q(n8)=1+0=1 令q(m)=q(n4)=min(q1,q2)=1 d.修改指针到q2对应的连结符上去 e. n8为SOLVED,则m=n4也为SOLVED f. m=n4也为SOLVED,则需要也对m的父结点 进行修改, 即将m=n1的父结点n0加到S中 g.小循环结束 5.大循环结束
G={n0,n1,n4,n5} q=3 q=4 第二个大循环(扩展结点),直到n0是SOLVED: n0 初始节点 1. 找到待扩展的局部图G’{n0,n1} 2. n=G’中非终结点, 此时n=n1 q=5 3. 扩展结点n=n1, 生成后继结点集合{n2,n3}, 连接符1 n1 连接符2 q(n2)=4, q(n3)=4, 都不是终结点,把结点加 n2 到G中 n4 4. 小循环(修改结点耗散值),直到S为空: a. S={n=n1} n3 b. 保证n的后代不在S中 n5 c. 取出m=n1的连接符有两条, 计算q1(m)=1+q(n3)=1+4=5 q2(m)=1+q(n2)=1+4=5 令q(m)=q(n0)=min(q1,q2)=5 继续小循环: d.修改指针到q1对应的连结符上去 … e.如果n3非SOLVED,则m=n1也为非SOLVED c. m=n0的连接符有两条,计算 f. q(m=n1)被修改过,则需要也对m的父结点 q1(m)=1+h(n1)=1+5=6 进行修改, 即将m=n1的父结点n0加到S中 q2(m)=2+h(n5)+h(4)=4 g.小循环结束 令 q(m)=q(n1)=min(q1,q2)=4 d.修改指针到q2对应的连结符上去 5.大循环结束 …
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
17
3.4.1 与或树盲目搜索
一般搜索过程 广度优先搜索 深度优先搜索 举例
18
或图的一般搜索过程 与/或图的 或图的
• 对于一个”与”节点,只有当其子节点全部为可解节点时 对于一个” 只有当其子节点全部为可解节点时, 节点 只有当其子节点全部为可解节点时 它才为可解节点,只要子节点 只要子节点中有一个为不可解节点,它就 它才为可解节点 只要子节点 是不可解节点; • 对于一个”或”节点 只要子节点中有一个是可解节点时 对于一个” 节点,只要子节点中有一个是可解节点时 只要子节点中有一个是可解节点时, 它就是可解节点,只有当全部都是 只有当全部都是不可解节点时,它才是不 它就是可解节点 只有当全部都是 可解节点. • 像这样由可解子节点来确定父节点、祖父节点等为可解节 可解子节点来确定父节点、 可解子节点来确定父节点 点的过程为可解标示过程 可解标示过程; 点的过程为可解标示过程;由不可解子节点来确定其父节 祖父节点等为不可解节点的过程为不可解标示过程 不可解标示过程; 点、祖父节点等为不可解节点的过程为不可解标示过程; • 在与/或树的搜索过程中将反复使用这两个过程,直到初 始节点(即原始问题)被标示为可解或不可解节点为止.
3.4 与或树搜索(问题归约法)
3.4.1 3.4.2 3.4.3
与或树的表示 与或树搜索 启发式与或树搜索
1
问题的与或图表示
在现实世界中,经常会遇到这样的问题: 在现实世界中,经常会遇到这样的问题:一 个问题可以有几种求解方法, 个问题可以有几种求解方法,只要其中一种方法 可以求解问题,则该问题被求解。也就是说, 可以求解问题,则该问题被求解。也就是说,对 求解该问题来说,方法之间是"或 的关系 的关系。 求解该问题来说,方法之间是 或"的关系。但在 用每一种方法求解时, 用每一种方法求解时,又可能需要求解几个子问 这些子问题必须全部求解, 题,这些子问题必须全部求解,才可能用该方法 求解原始问题。也就是说,这些子问题之间是"与 求解原始问题。也就是说,这些子问题之间是 与 "的关系。此类问题可以用与或图来表示。如下图 的关系。 的关系 此类问题可以用与或图来表示。 所示: 所示
(CBA) (1,1,1)(1,2,2) (1,2,2)(3,2,2) (3,2,2)(3,3,3) C B A
(1,1,1)
1,2,2
3,2,2
(3,3,3)
15
举例(三阶梵塔)
与或树表示
(1)把A、B盘从1号杆移到2号杆;
(1,1,1)=>(3,3,3)
(2)把C盘从1号杆移到3号杆; (3)把A、B盘从2号杆移到3号杆;
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可扩展,则做下列工作:
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
4
与节点
与
只有解决所有子 问题,才能解决其父辈 问题的节点集合。 与关系集合中,各 个结点之间用一端小圆 弧连接标记。称为k- 连接符 .
5
或节点
● 等价变换:利用同构或同态的等价变换,把它 变换为若干个较容易求解的新问题。若新问题中 有一个可求解,则就得到了原问题的解.
E B F
A
D
或
只要解决某个问 题就可解决其父辈问 题的节点集合。称为 1-连接符 .
目标 目标
9
其它几个概念与术语
1. 本原问题 本原问题:不能再分解或变换,而且直接可解的子问 题。 2. 终止结点 终止结点:本原问题对应的节点。(可解节点) 3. 端节点 在与或图(树)中无子节点的节点。 端节点: 4. 与节点:一个节点的子节点如果是“与”关系,称~ 与节点 5. 或节点 或节点:一个节点的子节点如果是“或”关系,称~
2
3
“分解 分解”和“等价变换 等价变换”概念 分解 等价变换
与/或树表示法:对于一个复杂的问题,可以通过“分解” 和“等价变换”两种手段相结合使用,得到一个图,这个 图就是与/或图。 ● 分解:把一个复杂问题分解为若干个较为简单的 子问题,每个子问题又可继续分解为若干个更为较为简单 的子问题,重复此过程,直到不需要再分解或不能解为止. 然后对每个子问题分别进行求解,最后把各子问题的解复 合起来就得到了原问题的解.
(1)扩展N,将其子节点配上指向父节点的指针后放入OPEN表的首部; (2)考察这些子节点中是否有终止节点。若有,则标记它们为可解节点,并 将它们也放入CLOSED表,然后由它们的可解返回推断其先辈节点的可解性, 并对其中的可解节点进行标记。如果初始节点也被标记为可解节点,则搜索 成功,结束。否则 (3)删去OPEN表中那些具有可解先辈的节点(因为其先辈节点已经可解,故已 无需再考察节点的必要),转步2;
25
解树的代价
解树的代价就是树根的代价。树根的代价是从树叶开始自 下而上逐层计算求得的。 计算方法: 设h(x)表示节点x的代价,c(x,y)表示节点x到其 子节点y的代价(即边xy的代价),则: (1)若x是终止节点,h(x)=0; (2) 若x是或节点, h(x)=min{c(x,yi)+h(yi)}(1≤ i≤ n) (3) 若x是与节点x,则有两种计算公式 h(x)=∑{c(x,yi)+h(yi)} 称为和代价法; h(x)=max{c(x,yi)+h(yi)}(1≤ i≤ n)称为最大代价法,其中 y1,y2 , y3 。。。。 yn是x的子节点。 (4)对非终止的端节点x, h(x)=∞
19
• 与或图搜索 与或图搜索:边扩展节点边确定初始节 点是否可解。一旦能够确定初始节点的 可解性,则搜索停止,并根据返回指针 从搜索树中得到一个解图(树)。
20
1、把初始节点S0放入OPEN表; 2、移出为OPEN表的第一个节点N放入CLOSED表,并冠以序号n; 3、若节点N可扩展,则做下列工作: (1)扩展N,将其子节点配上指向父节点的指针后放入OPEN表尾部; (2)考察这些子节点中是否有终止节点。若有,则标记它们为可解节 点,并将它们也放入CLOSED表,然后由它们的可解返回推断其先辈 节点的可解性,并对其中的可解节点进行标记。如果初始节点也被 标记为可解节点,则搜索成功,结束。否则 (3)删去OPEN表中那些具有可解先辈的节点(因为其先辈节点已经可 解,故已无需再考察节点的必要),转步2; 4、若N不可扩展,则做下列工作: (1)标记N为不可解节点,然后由它的不可解返回推断其先辈节点的 不可解性,并对其中的不可解节点进行标记。如果初始节点S0也被 标记为不可解节点,则搜索失败,表明原始问题无解,退出。否则 (2)删去OPEN表中那些具有不可解先辈的节点(因为其先辈节点已不 可解,故已无再考察这些节点的必要),转步2;
G I
6
上述两种方法也可以结合起来使用,此时的图称为” 或 上述两种方法也可以结合起来使用 此时的图称为”与/或” 此时的图称为 树.
7
Q
Q1
Q2
Q11
Q12
Q13
Q11’
Q12’
Q13’
Q21
Q22
Q23
Q21’
Q22’
Q23’
图中的弧线表示所连边为“与”关系,不带弧边的边为或关 系。
8
初始节点s a c b
(1,1,1)=>(1,2,2)
(1,2,2)=>(3,2,2)
(3,2,2)=>(3,3,3)
(1,1,1)=>(1,1,3)
(1,2,3)=>(1,2,2)
(3,2,1)=>(3,3,1)
(1,1,3)=>(1,2,3)
(3,2,2)=>Байду номын сангаас3,2,1)
(3,3,1)=>(3,3,3)
16
在三阶梵塔问题中,共有七个终止节点,对应于七个 本原问题,它们是通过“分解”得到的。 若把这些本原问题的解按从左至右的顺序排列,就得 了原始问题的解: (1,1,1)=>(1,1,3) (3,2,2)=>(3,2,1) (1,1,3)=>(1,2,3) (3,2,1)=>(3,3,1) (1,2,3)=>(1,2,2) (3,3,1)=>(3,3,3) (1,2,2)=>(3,2,2)
注意:终止节点一定是端节点,但端节点不一定是终 止节点。
10
可解节点: 6. 可解节点:节点须满足下列 条件之一: (1) 终止节点是可解节点; (2)一个与节点可解,当且仅当其子节点全都可解; (3)一个或节点可解,只要其子节点至少有一个可解; 7.不可解节点: 不可解节点: 不可解节点 关于可解节点的三个条件全部不满足的节点称为不可 解节点。 8.解树 解树: 解树 由可解节点所构成,并且由这些可解节点可推出初 始节点(它对应于原始问题)为可解节点的子树.
5、若N不可扩展,则做下列工作:
(1)标记N为不可解节点,然后由它的不可解返回推断其先辈节点的不可解 性,并对其中的不可解节点进行标记。如果初始节点S0也被标记为不可解节 点,则搜索失败,表明原始问题无解,退出。否则 (2)删去OPEN表中那些具有不可解先辈的节点(因为其先辈节点已不可解,故 已无再考察这些节点的必要),转步2;