与或图搜索策略

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
G I
6
上述两种方法也可以结合起来使用,此时的图称为” 或 上述两种方法也可以结合起来使用 此时的图称为”与/或” 此时的图称为 树.
7
Q
Q1
Q2
Q11
Q12
Q13
Q11’
Q12’
Q13’
Q21
Q22
Q23
Q21’
Q22’
Q23’
图中的弧线表示所连边为“与”关系,不带弧边的边为或关 系。
8
初始节点s a c b
17
3.4.1 与或树盲目搜索
一般搜索过程 广度优先搜索 深度优先搜索 举例
18
或图的一般搜索过程 与/或图的 或图的
• 对于一个”与”节点,只有当其子节点全部为可解节点时 对于一个” 只有当其子节点全部为可解节点时, 节点 只有当其子节点全部为可解节点时 它才为可解节点,只要子节点 只要子节点中有一个为不可解节点,它就 它才为可解节点 只要子节点 是不可解节点; • 对于一个”或”节点 只要子节点中有一个是可解节点时 对于一个” 节点,只要子节点中有一个是可解节点时 只要子节点中有一个是可解节点时, 它就是可解节点,只有当全部都是 只有当全部都是不可解节点时,它才是不 它就是可解节点 只有当全部都是 可解节点. • 像这样由可解子节点来确定父节点、祖父节点等为可解节 可解子节点来确定父节点、 可解子节点来确定父节点 点的过程为可解标示过程 可解标示过程; 点的过程为可解标示过程;由不可解子节点来确定其父节 祖父节点等为不可解节点的过程为不可解标示过程 不可解标示过程; 点、祖父节点等为不可解节点的过程为不可解标示过程; • 在与/或树的搜索过程中将反复使用这两个过程,直到初 始节点(即原始问题)被标示为可解或不可解节点为止.
23
3.4.2启发式与或树搜索
有序搜索 解树的代价 希望树 与或树的有序搜索过程 举例
24
有序搜索
搜索都是从初始节点开始,先自上而下地进行搜索, 寻找终止节点及端节点,然后再自下而上地进行可解性标 记,一旦初始节点被标记为可解节点或不可解节点,搜索 就不再继续进行。 搜索都是按确定路线进行的,当要选择一个节点进行 扩展时,只是根据节点在与或树中所处的位置,而没有 根据节点在与或树中所处的位置, 根据节点在与或树中所处的位置 考虑要付出的代价,因而求得的解树不一定是代价最小的 考虑要付出的代价 解树,即不一定是最优解树 最优解树。 最优解树 为了求得最优解树,就要在每次确定欲扩展的节点时, 先往前多看几步,计算一下扩展这个节点可能要付出的代 价,并选择代价最小的节点进行扩展。像这样根据代价决 定搜索路线的方法称为与或树的有序搜索,它是一种重要 的启发式搜索策略。
5、若N不可扩展,则做下列工作:
(1)标记N为不可解节点,然后由它的不可解返回推断其先辈节点的不可解 性,并对其中的不可解节点进行标记。如果初始节点S0也被标记为不可解节 点,则搜索失败,表明原始问题无解,退出。否则 (2)删去OPEN表中那些具有不可解先辈的节点(因为其先辈节点已不可解,故 已无再考察这些节点的必要),转步2;
4
与节点

只有解决所有子 问题,才能解决其父辈 问题的节点集合。 与关系集合中,各 个结点之间用一端小圆 弧连接标记。称为k- 连接符 .
5
或节点
● 等价变换:利用同构或同态的等价变换,把它 变换为若干个较容易求解的新问题。若新问题中 有一个可求解,则就得到了原问题的解.
E B F
A
DBiblioteka Baidu

只要解决某个问 题就可解决其父辈问 题的节点集合。称为 1-连接符 .
(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)
目标 目标
9
其它几个概念与术语
1. 本原问题 本原问题:不能再分解或变换,而且直接可解的子问 题。 2. 终止结点 终止结点:本原问题对应的节点。(可解节点) 3. 端节点 在与或图(树)中无子节点的节点。 端节点: 4. 与节点:一个节点的子节点如果是“与”关系,称~ 与节点 5. 或节点 或节点:一个节点的子节点如果是“或”关系,称~
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;
注意:终止节点一定是端节点,但端节点不一定是终 止节点。
10
可解节点: 6. 可解节点:节点须满足下列 条件之一: (1) 终止节点是可解节点; (2)一个与节点可解,当且仅当其子节点全都可解; (3)一个或节点可解,只要其子节点至少有一个可解; 7.不可解节点: 不可解节点: 不可解节点 关于可解节点的三个条件全部不满足的节点称为不可 解节点。 8.解树 解树: 解树 由可解节点所构成,并且由这些可解节点可推出初 始节点(它对应于原始问题)为可解节点的子树.
t5 G 2 1 t4 F t3 E 1 D 2 3 B 2 1 2 c S0 2 5 A 6 t1
26 i=0
例:如图所示的与或树,其中包括两棵解树,一棵解树由S0,A, t1和t2组成;另一棵解树由S0,B,D,G,t4和t5组成。在些与或 树中,t1,t2,t3,t4,t5为终止节点;E,F是端节点,其代价均为∞; 边上的数字是该边的代价。 由右边的解树可得: 按和代价: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
2
3
“分解 分解”和“等价变换 等价变换”概念 分解 等价变换
与/或树表示法:对于一个复杂的问题,可以通过“分解” 和“等价变换”两种手段相结合使用,得到一个图,这个 图就是与/或图。 ● 分解:把一个复杂问题分解为若干个较为简单的 子问题,每个子问题又可继续分解为若干个更为较为简单 的子问题,重复此过程,直到不需要再分解或不能解为止. 然后对每个子问题分别进行求解,最后把各子问题的解复 合起来就得到了原问题的解.
(1)扩展N,将其子节点配上指向父节点的指针后放入OPEN表的首部; (2)考察这些子节点中是否有终止节点。若有,则标记它们为可解节点,并 将它们也放入CLOSED表,然后由它们的可解返回推断其先辈节点的可解性, 并对其中的可解节点进行标记。如果初始节点也被标记为可解节点,则搜索 成功,结束。否则 (3)删去OPEN表中那些具有可解先辈的节点(因为其先辈节点已经可解,故已 无需再考察节点的必要),转步2;
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可扩展,则做下列工作:
与/或树的广度优先搜索算法
搜索成功后, 解树就记录在CLOSED表中。
21
例:设有与或树如图,其中1号节点为初始节点,t1,t2,t3,t4 均为终止节点,A和B是不可解的端节点。采用广度搜索 策略进行搜索.
1) 2) 扩展节点1,得到2 和3号节点,依次放到OPEN 表尾部;2和3为非终止节点,接着扩展2号节点; 扩展2号节点,得到4号和t1节点。 t1为终止节点, 则为可解节点,放到closed表,再判断其先辈节点 的可解性; 扩展3号节点,得5和B节点,两者为非终止节点, B 继续扩展4号节点; 4号扩展后得到A和t2。t2为终止节点,标记为可 解节点,放入closed表中,这时其先辈节点4和2 也为可解节点,因4节点可解,故在OPEN表中删 去A; 扩展5号节点,得到t3和t4。由于t3和t4都为终止 节点(放入closed表),故可推断出5,3都为可解 节点。故初始节点1为可解节点。搜索成功,结 束。
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号杆;
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)=∞
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
相关文档
最新文档