与或图搜索策略

合集下载

2013第三章_与或图的搜索

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

人工智能之与或图搜索问题

人工智能之与或图搜索问题

规定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与或图搜索

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 √

与或图搜索问题

与或图搜索问题

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

第4章 图搜索策略

第4章  图搜索策略

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章 与或图搜索
mxxzyxxthenzyzyxmxxifn1i1i1in1????设初始状态为7min则该问题的状态空间图如图45所示图中所有终节点均表示要走步的选手必输的情况取胜方的目标是设法使棋局发展为结束在对方走步7min43max52max61max421min511min322min331min4111max2221max3211maxbartificialintelligence图45grundy博弈问题状态空间图结束在对方走步时的终节点上因此节点a是max的搜索目标而节点bc则为min的搜索目标
• 右图所示的与或 图中,节点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为初始节点 解图。 解图。

与或图搜索

与或图搜索
8
• 解图:
初始节点
目标
目标
该解图的耗散值为: (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 与或图搜索
对各个局面进行评估
评估的目的:对后面的状态提前进行考虑, 并且以各种状态的评估值为基础作出最好的 走棋选择。 评估的方法:用评价函数对棋局进行评估。 赢的评估值设为+∞,输的评估值设为-∞, 平局的评估值设为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.概述
博弈的特性 ①两个棋手交替地走棋 ; ②比赛的最终结果,是赢、输和平局中的 一种; ③可用图搜索技术进行,但效率很低; ④博弈的过程,是寻找置对手于必败态的 过程; ⑤双方都无法干预对方的选择。

与或图搜索策略

与或图搜索策略

注意:终止节点一定是端节点,但端节点不一定是终 止节点。
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章  与或图搜索

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最佳局部图的标识。

与或图的搜索算法

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

人工智能作业题解答

人工智能作业题解答

人工智能作业题解答第三章图搜索与问题求解1、何为状态图和与或图?图搜索与问题求解有什么关系?解:按连接同一节点的各边间的逻辑关系划分,图可以分为状态图和与或图两大类。

其中状态图是描述问题的有向图。

在状态图中寻找目标或路径的基本方法就是搜索。

2、综述图搜索的方式和策略。

解:图搜索的方式有:树式搜索,线式搜索。

其策略是:盲目搜索,对树式和不回溯的线式是穷举方式,对回溯的线式是随机碰撞式。

启发式搜索,利用“启发性信息”引导的搜索。

3、什么是问题的解?什么是最优解?解:能够解决问题的方法或具体做法成为这个问题的解。

其中最好的解决方法成为最优解。

4、什么是与或树?什么是可解节点?什么是解树?解:与或树:一棵树中的弧线表示所连树枝为“与”关系,不带弧线的树枝为或关系。

这棵树中既有与关系又有或关系,因此被称为与或树。

可解节点:解树实际上是由可解节点形成的一棵子树,这棵子树的根为初始节点,叶为终止节点,且这棵子树一定是与树。

解树:满足下列条件的节点为可解节点。

①终止节点是可解节点;②一个与节点可解,当且仅当其子节点全都可解;③一个或节点可解,只要其子节点至少有一个可解。

5、设有三只琴键开关一字排开,初始状态为“关、开、关”,问连接三次后是否会出现“开、开、开”或“关、关、关”的状态?要求每次必须按下一个开关,而且只能按一个开关。

请画出状态空间图。

注:琴键开关有这样的特点,若第一次按下时它为“开”,则第二次按下时它就变成了“关”。

解:设0为关,1为开6、有一农夫带一只狼、一只羊和一筐菜欲从河的左岸乘船到右岸,但受下列条件限制:1)船太小,农夫每次只能带一样东西过河。

2)如果没农夫看管,则狼要吃羊,羊要吃菜。

请设计一个过桥方案,使得农夫、狼、羊、菜都不受损失地过河。

画出相应状态空间图。

提示:(1)用四元组(农夫、狼、羊、菜)表示状态,其中每个元素都可为0或1,用0表示在左岸,用1表示在右岸。

(2)把每次过河的一次安排作为一个算符,每次过河都必须有农夫,因为只有他可以划船。

与或图搜索ANDORGraphSearch_OK

与或图搜索ANDORGraphSearch_OK

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)) 初始节点

第二章与或图的搜索算法

第二章与或图的搜索算法

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算法)

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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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;
相关文档
最新文档