搜索与或图搜索实例算法
合集下载
2013第三章_与或图的搜索

第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
人工智能6第六章-与或树的搜索策略_搜索的完备性与效率 (2)

• 解决方案:根据问题本身提供的启发性信息定义一个 启发函数,由启发函数估算子节点的代价,然后反推 计算父节点和先辈节点的代价。每当有新一代的节点 生成时,都要自下而上地重新计算先辈节点的代价。
希望树
希望树的定义
选择待扩展节点时,挑选有希望成为最优 解树一部分的节点进行扩展,保证任一时刻 求出的部分解树的代价都是最小的。
例:与/或树的宽度优先搜索
Step3:扩展3得到5、B,都不是终叶节点,接 着扩展4。
Step4:扩展4得到A、t2。
t过2是程终标叶出节4、点2,均标为示可4解为节可点解。节点。应用可解标示
还不能确定1为可解节点。此时5号节点是OPEN表 中的第一个待考察的节点,所以下一步扩展5号节 点。
OPEN ……
– 如果x是“或”节点,y1, y2, …, yn是它的子节点,则具有
min
1i n
c x, yi h yi
值的那个子节点yi也应在希望树中。
– 如果x是“与”节点,则它的全部子节点都应在希望树中。
有序搜索算法流程
(1)把初始节点S放入OPEN表中。 (2)根据当前搜索树中节点的代价求出以S为根的希望
如果x不可扩展,且不是终叶节点,则定义:h(x)=
如果x是“或”节点,y1, y2, …, yn是它的子节点,则x的代价为:
h
x
min
1i n
c
x,
yi
h
yi
如果x是“与”节点.则x的代价有两种计算方法:
※和代价法
n
h x c x, yi h yi i 1
※最大代价法
h
x
max
1i n
c
x,
宽度优先搜索算法流程
希望树
希望树的定义
选择待扩展节点时,挑选有希望成为最优 解树一部分的节点进行扩展,保证任一时刻 求出的部分解树的代价都是最小的。
例:与/或树的宽度优先搜索
Step3:扩展3得到5、B,都不是终叶节点,接 着扩展4。
Step4:扩展4得到A、t2。
t过2是程终标叶出节4、点2,均标为示可4解为节可点解。节点。应用可解标示
还不能确定1为可解节点。此时5号节点是OPEN表 中的第一个待考察的节点,所以下一步扩展5号节 点。
OPEN ……
– 如果x是“或”节点,y1, y2, …, yn是它的子节点,则具有
min
1i n
c x, yi h yi
值的那个子节点yi也应在希望树中。
– 如果x是“与”节点,则它的全部子节点都应在希望树中。
有序搜索算法流程
(1)把初始节点S放入OPEN表中。 (2)根据当前搜索树中节点的代价求出以S为根的希望
如果x不可扩展,且不是终叶节点,则定义:h(x)=
如果x是“或”节点,y1, y2, …, yn是它的子节点,则x的代价为:
h
x
min
1i n
c
x,
yi
h
yi
如果x是“与”节点.则x的代价有两种计算方法:
※和代价法
n
h x c x, yi h yi i 1
※最大代价法
h
x
max
1i n
c
x,
宽度优先搜索算法流程
第3章(搜索推理技术1-图盲目搜索)

①、起 始节点 ( 即根
节点)的深度为0。
②、任何其它节点的
深度等于其父辈
节点深度加上1。
深度优先搜索的基本
思路:
先扩展最深的节点 。
当出现没有后继节点
时,换到旁边的次深
节点
后生成的节点画在左边
含有深度界限的深度优先搜索算法:
① 把起始节点 S 放到未扩展节点的 OPEN 表中。 如果此节点为一目标节点,则得到解 ② 如果 OPEN 为一空表,则无解、失败退出
状态:长度为9的一维数组
(q1 , q2 , … , q9 )
其中,qi 取 0 , 1 , … , 8 个数,0 表示空格,且取值
互不相同
如果记空格的位置为P,这时空格的移动规则是: 1 4 7 2 5 8 3 6 9 数字表示位置 1 2 3 4 5 6 7 8 9 P-3
P-1
P
P+1
P+3
起始节点的父节点标志和操作符:
不作记录或记录为负
搜索过程(按照程序运行方式)
① 起始节点放到OPEN表
2 8 3 1 0 4
2 8 3 1 4 7 6 5 7 6 5
② OPEN不为空,继续
③ 将第一个节点 n 从 OPEN 表中移出,并放到 CLOSED表中 OPEN表
CLOSED表 1 0 0 2 8
13
14
1
4
2
8
8
3
3
0
1
2
4
1
5
4
7
7
0
6
6
5
1 8
7
2
3 4
14 15 15
16 16
3 2 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
北京信息科技大学 孙骏 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
与或图搜索问题

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的值。如果在搜索的过程中,充分利用这些信息, 不就可以少生成很多节点,从而提高搜索的空间利用率吗?α-β过程 正是这样一种搜索方法。
人工智能中图搜索算法(PDF 159页)

图4—5 八数码问题的广度优先搜索
第9页
第4章 图搜索技术
以上两个问题都是在某个有向图中寻找目标或路径问 题,这种问题图搜索问题。把描述问题的有向图称为状态 空间图,简称状态图。图中的节点代表问题中的一种格局, 一般称为问题的一个状态,边表示两个状态之间的联系。 在状态图中,从初始节点到目标节点的一条路径或者所找 到的目标节点,就是问题的解(路径解)。
谓搜索,顾名思义,就是从初始节点出发,沿着与之相连 的边试探地前进,寻找目标节点的过程(也可以反向进行)。 搜索过程中经过的节点和边,按原图的连接关系,形成树 型的有向图,称为搜索树。搜索过程应当随时记录搜索痕 迹。
1.搜索方式 用计算机来实现状态图的搜索,有两种最基本的方式: 树式搜索和线式搜索。 所谓树式搜索,形象地讲就是以“画树”的方式进行 搜索。 即从树根(初始节点)出发一笔一笔地描出来的。
状态图实际上是一类问题的抽象表示。事实上,有许
多智力问题(如梵塔问题、旅行商问题、八皇后问题、农
夫过河问题等)和实际问题(如路径规划、定理证明、演
绎推理、机器人行动规划等)都可以归结为在某一状态图
中寻找目标或路径的问题。因此,研究状态图搜索具有普
遍意义。
第10页
第4章 图搜索技术
4.1.2 状态图搜索 在状态图中寻找目标或路径的基本方法就是搜索。所
第4章 图搜索技术
3. 搜索算法 由于搜索的目的是为了寻找初始节点到目标节点 的路径,所以在搜索过程中就得随时记录搜索轨迹。 为此,我们用一个称为CLOSED表的动态数据结构来 专门记录考查过的节点。显然,对于树式搜索来说, CLOSED表中存储的正是一棵不断成长的搜索树;而 对于线式搜索来说,CLOSED表中存储的是一条不断 伸长的折线,它可能本身就是所求的路径(如果能找到 目标节点的话)。
与或图搜索-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 的后继节点一起组成的图,仍然组成一个局部图
2.7 与或图法知识表示与问题求解

(111) (333)
(111) (122)
(122) (322)
(322) (333)
(113) (111)
(123) (113)
(122) (322) (321) (321) (331) (123)
(333) (331)
自动化系仪自教研室
2.2.6 问题归约法
[例]求解不定积分
A B C A B
1 1 2 3 1
1 C
自动化系仪自教研室
2
3
2.2.6 问题归约法
归约过程 (1)移动圆盘A和B至柱子2的双圆盘难题;
A B C
1
2 1 (111)
3
C
1 A
B
2 1 (122)
3
自动化系仪自教研室
2.2.6 问题归约法
(2)移动圆盘C至柱子3的单圆盘难题;
1 A
B C
2 1 (122)
自动化系仪自教研室
6.2.4 基于与或图的搜索
与或图的基本概念回顾
与树:当把一个复杂问题分解为若干个子问题时, 可用一个“与树”来表示这种分解。 或树:当把一个复杂问题变换为若干个与之等价的 新问题时,可用一个“或树”来表示这种变换。
A
A
B
C
D
B
C
23 或图自动化系仪自教研室
与图
6.2.4 基于与或图的搜索
2.2.6 问题归约法
本原问题:
指那种不能或不需要再进行分解或变换,且可以直 接解答的问题。 归约: 把一个复杂问题分解或变换为一组本原问题的过程。 问题的分解:是指把一个复杂问题分解为若干个子问题的过程。
问题的解是所有子问题解的“与”,即只有当所有子问题都有解时, 原问题才有解。
(111) (122)
(122) (322)
(322) (333)
(113) (111)
(123) (113)
(122) (322) (321) (321) (331) (123)
(333) (331)
自动化系仪自教研室
2.2.6 问题归约法
[例]求解不定积分
A B C A B
1 1 2 3 1
1 C
自动化系仪自教研室
2
3
2.2.6 问题归约法
归约过程 (1)移动圆盘A和B至柱子2的双圆盘难题;
A B C
1
2 1 (111)
3
C
1 A
B
2 1 (122)
3
自动化系仪自教研室
2.2.6 问题归约法
(2)移动圆盘C至柱子3的单圆盘难题;
1 A
B C
2 1 (122)
自动化系仪自教研室
6.2.4 基于与或图的搜索
与或图的基本概念回顾
与树:当把一个复杂问题分解为若干个子问题时, 可用一个“与树”来表示这种分解。 或树:当把一个复杂问题变换为若干个与之等价的 新问题时,可用一个“或树”来表示这种变换。
A
A
B
C
D
B
C
23 或图自动化系仪自教研室
与图
6.2.4 基于与或图的搜索
2.2.6 问题归约法
本原问题:
指那种不能或不需要再进行分解或变换,且可以直 接解答的问题。 归约: 把一个复杂问题分解或变换为一组本原问题的过程。 问题的分解:是指把一个复杂问题分解为若干个子问题的过程。
问题的解是所有子问题解的“与”,即只有当所有子问题都有解时, 原问题才有解。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 f(n) = g(n) + h(n) 对n的评价实际是对从s经过n到目的地这条路径的评价
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.大循环结束
n4
G中 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
d继令.q修…cq1续.q改2(m(m小(指mm=)循)=针n)==环01到q2的+:(+qhn连2h(1n对接()n1=应符5)m=)的有+1inh+连两((q54结条=1),=符6,q计42上算)=去45.大fdeg行....循如令q修小修(环果q改循m改(结n指m环=,3束n即)结针非=1将到束)qS被O(mqn修L10=V对改)nE=应1D过m的,的则,i则n父连m(需q结结=1要点n,符q也1n2上也0对)=加去为m5到非的SS父中O结LV点ED进
k(n, N) = Cn+k(n1, N)+…+k(ni, N) 其中:N为终节点集
Cn为连接符的耗散值
n
…...
n1 n2
ni
i个
目标n7
初始节 点n0
搜索解图耗散值的递归计算:
n0=2+k(4, N)+k(5, N)
n4
k(5, N)= min(2+k(7,N)+k(8,
n5
N),…)
=2
k(4, N)= min(1+k(5, 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
与或图搜索
与或图表示
弧线 与节 点
终结点
父节点
或节
点
A
子节
点
N MH
BC D E FG
• 与或图是一个超图,节点间通过连 接符连接。
• K-连接符:
…... K个
与或图搜索问题
a 目标
初始节点s c
b 目标
n0→ {n7,n8}的3个解图
初始节 点n0
初始节 点n0
目标n7 (a)
目标n8
初始节 点n0
与或图: 对局部图的评价
初始节点
c
a b
目标
目标
与或图搜索:AO*算法
两个过程
• 图生成过程,即扩展节点
自顶向下, 从最优的局部途中选择一个节点扩展
• 计算耗散值的过程
自下向顶, 对当前的局部图重新计算耗散值
AO*算法搜索例子
n0 初始节点
n1
n2
n4
n3
n5
n6
n7 目标
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
q(n4)=1, q(n5)=1, q(n1)=2, 都不是终结点, 把结点加到G中
n4
4. 小循环(修改结点耗散值),直到S为空: a. S={n=n0}
b. 保证n的后代不在S中
c. 取出m=n0的连接符有两条,
n5
计算q1(m)=1+q(n1)=1+2=3
q2(m)=2+q(n5)+q(n4)=2+1+1=4
与或图搜索
与或图表示
弧线 与节 点
终结点
父节点
或节
点
A
子节
点
N MH
BC D E FG
• 与或图是一个超图,节点间通过连 接符连接。
• K-连接符:
…... K个
与或图搜索问题
a 目标
初始节点s c
b 目标
n0→ {n7,n8}的3个解图
初始节 点n0
初始节 点n0
目标n7 (a)
目标n8
初始节 点n0
q(n4)=1, q(n5)=1, q(n1)=2, 都不是终结点, 把结点加到G中
n4
4. 小循环(修改结点耗散值),直到S为空: a. S={n=n0}
b. 保证n的后代不在S中
c. m=n0的连接符有两条,
n5
计算q1(m)=1+q(n1)=1+2=3
q2(m)=2+q(n5)+q(n4)=2+1+1=4
与或图: 对局部图的评价
初始节点
c
a b目标Fra bibliotek目标与或图搜索:AO*算法
两个过程
• 图生成过程,即扩展节点
自顶向下, 从最优的局部途中选择一个节点扩展
• 计算耗散值的过程
自下向顶, 对当前的局部图重新计算耗散值
AO*算法搜索例子
n0 初始节点
n1
n2
n4
n3
n5
n6
n7 目标
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
q=43 n0 初始节点
第二个大循环(扩展结点),直到n0是SOLVED: 1. 找到待扩展的局部图G’{n0,n1}
q=5 n1
连接符1
n2
连接符2
2. n=G’中非终结点, 此时n=n1
3. 扩展结点n=n1, 生成后继结点集合{n2,n3},
q(n2)=4, q(n3)=4, 都不是终结点,把结点加到
初始节点
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(m)=q(n0)=min(q1,q2)=3
d.修改指针到q1对应的连结符上去
e.如果n1为非SOLVED,则m=n0也为非
SOLVED
f.如果m=n0为SOLVED,或者q(m)被修改过,则
需要也对m的父结点进行修改, 即将m的父结点
加到S中
g.小循环结束
5.大循环结束
AO*算法搜索例子 G={n0,n1,n4,n5}
n4
G中 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
d继令.q修…cq1续.q改2(m(m小(指mm=)循)=针n)==环01到q1的+:(+qhn连2h(1n对接()n1=应符5)m=)的有+1inh+连两((q54结条=1),=符6,q计42上算)=去45.大fdeg行....循如令q修小修(环果q改循m改(结n指m环=,3束n即)结针非=1将到束)qS被O(mqn修L10=V对改)nE=应1D过m的,的则,i则n父连m(需q结结=1要点n,符q也1n2上也0对)=加去为m5到非的SS父中O结LV点ED进
AO*算法的最优性:
若s→ N存在解图,当h(n)≤h*(n),且h(n)满足单调限制条件,则AO*一 定能够找到最佳解图, 即AO*具有可采纳性
单调限制条件指对于图中从结点到n→{n1,…,nk}的每一个连接符都施 加限制h(n)≤C+ h(n1)+..+ h(nk),如果同时有h(ti)=0(ti∈N),那么单 调限制意味着h是h*的下界范围,即对所有的结点n有h(n)≤h*(n)
{n6,n7,n8}, q(n6)=2, q(n7)=0, q(n8)=0 把结点加到G中 4. 小循环(修改结点耗散值),直到S为空: a. S={n=n5} b. 保证n的后代不在S中 c. m=n5的连接符有两条,
计算q1(m)=1+q(n6)=1+2=3 q2(m)=1+q(n7)+q(n8)=2+0+0=2