- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二、有序搜索
用估价函数 f 来排列OPEN表上的节点。
应用某个算法选择OPEN表上具有最小f 值的节点作为
二、宽度优先搜索
例3.2 八数码问题 操作规定: 允许空格四周上、下、左、右的数码 块移入空格中,不许斜方向移动,不许返回先辈 结点。
1 2 3 8 5 7 4 6
1
4
1 3 8 2 5 7 4 6
2
1 2 3 8 4 5 7 6
3
1 2 3 8 5 7 4 6
5
1 2 3 8 5 7 4 6
深度优先搜索的特点
OPEN表为堆栈,操作是后进先出(LIFO) 深度优先又称纵向搜索。 一般不容易保证找到最优解(如下图所示) 防止搜索过程沿着无益的路径扩展下去,往往 给出一个节点扩展的最大深度——深度界限。
2、有界深度优先搜索
引入搜索深度限制值d,使深度优先搜索具有完备性 。 (1)深度界限的选择很重要 d若太小,则达不到解的深度,得不到解;若太大,既 浪费了计算机的存储空间与时间,降低了搜索效率。由于 解的路径长度事先难以预料,要恰当地给出d的值是比较 困难的。 (2)即使能求出解,它也不一定是最优解。 例3.3:设定搜索深度限制d=5的八数码问题。
4. 搜索过程框图
S0放入OPEN表 是 OPEN表空? 否 将OPEN表中第一个节点(n) 移至CLOSE表 否 n是目标节点? 扩展节点n,把n的后继节点放入 OPEN表末端,提供指向 节点n的指针 修改指针方针,重排OPEN表
失败
是
成功
一、图搜索策略(Graph Search) 5.图搜索方法分析:
3.2 启发式搜索
盲目搜索的不足:效率低,耗费空间与时间。 启发式搜索:利用问题本身特性信息(启发信息) 指导搜索过程。是有序搜索。 一、启发式搜索策略 启发式信息主要用途:
(1)用于确定要扩展的下一个节点,避免盲目扩展。 (2)用于确定应该从搜索树中抛弃或修剪的节点。
估价函数 f (n):估算节点n的希望程度。 f (n)可以是节点n到目标节点的距离;或包括节 点n的路径长度。
B1,77
B3,52
C2,87
C1,96
D1,77
E1,57
E2,92
F1,32
G1,27
H1,51
二、宽度优先搜索
例3.1 从王某家族的四代中找王A的后代且其寿 命为X的人(设X=57)
A,47
搜索8步找到
B2,65
B1,77
B3,52
C2,87
C1,96
D1,77
E1,57
E2,92
F1,32
1 2 3 4 5 8 7 6
16
1 2 3 8 5 6 7 4
17
1 2 8 5 3 7 4 6
18
1 3 5 8 2 7 4 6
19
8 1 3 2 5 7 4 6
20
1 2 3 7 8 5 4 6
21
2 3 1 8 5 7 4 6
22
1 2 8 4 3 7 6 5
23
1 2 3 8 4 7 6 5
有界深度优先搜索示例
有界深度优先算法步骤:
(1)初始结点S放入堆栈OPEN中;
(2)若OPEN为空,则搜索失败,问题无解;
(3)弹出OPEN中栈顶结点n,放入CLOSE表中 ,并给出顺序编号n; (4)若n为目标结点D,则搜索成功,问题有解; (5)若n的深度d(n)=d,则转(2) ; (6)若n无子结点,即不可扩展,转(2) ; (7)扩展结点n,将其所有子结点配上返回n的指 针,并压入OPEN堆栈,转(2) 。
索朝着最有希望的方向进行,搜索效率高。
第三章 搜索技术 搜索分类
盲目搜索
只是可以区分出哪个 是目标状态。 一般是按预定的搜索 策略进行搜索。 没有考虑到问题本身 的特性,这种搜索具 有很大的盲目性,效 率不高,不便于复杂 问题的求解。
启发式搜索
是在搜索过程中加入 了与问题有关的启发 式信息,用于指导搜 索朝着最有希望的方 向前进,加速问题的 求解并找到最优解。
深度优先搜索
例3.1 从王某家族的四代中找王A的后代且其寿 命为X的人(设X=57)
A,47
B2,65
搜索9步找到
B1,77
B3,52
C2,87
C1,96
D1,77
E1,57
E2,92
F1,32
G1,27
H1,51
三、深度优先搜索
节点扩展:最深节点
基本思想
一种自上向下的搜索过程,优 先自己子节点集合中选择下一个 被考察的节点,不断向纵深方向 前进,直到到达叶子节点或受到 深度限制时,才返回到上一级节 点沿另一方向继续前进。 与宽度优先搜索算法根本不同 在于:将扩展的后继节点放在 OPEN表的前端(LIFO)。
F1,32
B2,65
E1,57
E2,92
G1,27
H1,51
一、 图搜索策略
例3.1 从王某家族的四代中找王A的后代且其寿 命为X的人(设X=57) 搜索目标 搜索空间 搜索策略
A,47
B1,77
B3,52
B2,65
C2,87
C1,96
D1,77
E1,57
E2,92
F1,32
G1,27
宽度优先搜索的特点:
OPEN表是一个队列,先进 先出(FIFO)。CLOSED 表是一个顺序表,表中各 节点按顺序编号,正被考 察的节点在表中编号最大 。
宽度优先搜索的特点:
宽度优先搜索又称为广度优先或横向搜索。 宽度优先策略是完备的, 即只要问题的解存 在,则一定可以找到最优解。 宽度优先搜索策略与问题无关,具有通用性。 缺点搜索效率低。
A,47 B2,65
B3,52
D1,77
E1,57
E2,92
G1,27
H1,51
宽度优先搜索示意图
OPEN表 节点 A B1 B3 父节点 NULL A A 1 2 3 CLOSE表 编号 节点 父节点 A B1 B3 NULL A A
B2
C2 C1 D1 E1 E2
A
B1 B1 B3 B2 B2
6
1 2 3 8 4 5 7 6
7
1 2 3 8 4 5 7 6
8
1 2 3 8 5 6 7 4
9
1 2 8 5 3 7 4 6
10
1 3 8 2 5 7 4 6
11
1 3 8 2 5 7 4 6
12
1 2 3 7 8 5 4 6
13
2 3 1 8 5 7 4 6
14
1 2 3 8 4 7 6 5
15
C2,87 C1,96
D1,77 E1,57H1,51
第三章 搜索技术
搜索分类
1、盲目式摸索:无信息搜索,搜索时按规定顺 序逐个考察节点,直到找到目标。通用性强,但
效率低;适用于简单树状结构问题。
包括:宽度优先、深度优先、等代价搜索
2、启发式搜索:用到自身的某些信息,指导搜
G1,27
H1,51
3.1 盲目搜索
二、宽度优先搜索
宽度优先搜索 搜索是以接近起始节点的程 度依次扩展节点。 B1,77 宽度优先搜索的基本思想 深度优先搜索是严格按节点 在树中的出现位置一层一层向 C2,87 C1,96 下的搜索过程。 通过将OPEN表设计为一个 队列来实现,将新生成的子节 F1,32 点放在OPEN表的后面,保证 先生成的节点先考察(FIFO) 。
深度优先搜索
1 2 3 8 5 7 4 6
1
2
1 2 3 8 5 7 4 6 1 3 8 2 5 7 4 6 1 2 3 8 5 7 4 6 1 2 3 8 4 5 7 6
3
1 2 3 8 4 5 7 6 1 2 3 8 4 5 7 6
4
1 2 3 8 4 7 6 5
5
1 2 8 4 3 7 6 5 1 2 3 8 4 7 6 5
本章内容
3.1 3.2 3.3 3.4 3.5 3.6 盲目搜索 启发式搜索 博弈树搜索 遗传算法 模拟退火算法 免疫算法
一、 图搜索策略
例3.1 从王某家族的四代中找王A的后代且其寿 命为X=57的人
王A:寿命47,有儿子王B1、王B3、王B2 王B1:寿命77,有儿子王C1、王C2 A,47 王B3:寿命52,有儿子王1 王B2:寿命65,有儿子王E1、王E2 王C1:寿命96 B3,52 王C2:寿命87,有儿子王F1 B1,77 王D1:寿命77,没有儿子 王E1:寿命57,有儿子王G1 王E2:寿命92,有儿子王H1 C2,87 C1,96 D1,77 王F1:寿命32 王G1:寿命27,没有儿子 王H1:寿命51
(1)策略:各种搜索策略的 区别主要体现在OPEN表排序准 则的不同。 (2)成功:每当扩展节点为 目标节点时,宣告成功结束。这 时,能够重现这条成功路径, (3)失败:当搜索树不再剩 有未被扩展的端节点时,过程就 以失败告终。在失败终止的情况 下,从起始节点出发,一定达不 到目标节点。
A,47 B2,65
A,47
A
一、图搜索策略
3.图搜索的一般过程
。 (6) 扩展节点n,生成后继节点
B1,77 B3,52 A,47
B2,65
(7) 把n的后继节点放入OPEN 表的末端,提供返回节点n的指针 (8) 按某一任意方式或按某个探 试值,重排OPEN表。 (9) GO LOOP。
B1 B2 B3
A
开始 3.1 盲目搜索
3.图搜索的一般过程
(1) 建立一个只含有起始节点S 的搜索图G,把S放到OPEN表中 。 (2) 建立一个CLOSED表,其 初始为空表。 (3) LOOP:若OPEN表是空表 ,则失败退出。