第3章 图搜索与问题求解.
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
步3 取OPEN表中第一个节点N放在CLOSED表中; 并冠以顺序编号n;
步4 若目标节点Sg=N,成功退出。
步5 若N不可扩展,转步2。
步6 扩展N,生成一组节点,对这组子节点作如 下处理:
3.1.2 状态图搜索
(1)删除N的先辈节点(如果有的话)。
(2)对已存在于OPEN表中的节点(如果有的话)也删除 之;删除之前要比较其返回初始节点的新路径与原路 径,如果新路径“短”,则修改这些节点在OPEN表中 的原返回指针,使其沿新路径返回。
边的数目来考察,当前扩展的节点是搜索图中的n,P是
n的后继
S0
S0
n
n
F
F
P
m
P
m
Ps
Ps Ps’
Ps’
3.1.2 状态图搜索
不回溯线式搜索算法
步1 把初始节点S0放入CLOSED表中; 步2 令N= S0 ; 步3 若N是目标节点,则搜索成功,结束。 步4 若N不可扩展,则搜索失败,退出。 步5 扩展N,选取其一个未在CLOSED表中出现过的
3.1.2 状态图搜索
搜索:从初始节点出发,沿着与之相连的边试探 地前进,寻找目标节点的过程。
搜索过程中经过的节点和边,按原图的连接关系, 便会构成一个树型的有向图,这种树型有向图称 为搜索树。
搜索进行中,搜索树会不断增长,直到当搜索树 中出现目标节点,搜索便停止。这时从搜索树中 就可很容易地找出从初始节点到目标节点的路径 (解)来。
径短,则修改这些节点在OPEN表中的原返回指针,使其沿原
路径返回。
S0 Path1
Path2
如 图 所 示 : 说 明 从 S0→P 至 少有两条路,这时有两
种情况:
n m
先扩展 P
后扩展
P在n之前已是某一节点m的后继
f(Path2)< f(Path1), 当前路径较好,要修改P 的指针,使其指向n,即 搜索之后的最佳路径。
3.1.1 状态图
例3.2八数码难题(重排九宫问题)
28 3
1
4
76 5
12 3
8
4
76 5
初始棋局
目标棋局
棋局作为节点,相邻节点通过移动数码一个一个产生 出来,所有节点由它们的相邻关系连成一个有向图。
以上两个问题抽象来看,都是某个有向图中寻找目标 或路径的问题,在人工智能技术中,把这种描述问题 的有向图称为状态空间图,简称状态图。
否则,原路径好。
3.1.2 状态图搜索
对已存在于CLOSED表的节点,作与(2)同样的处理,并将 其移出CLOSED表,放入OPEN表中重新扩展。
S0
a.P在n之前已是某一节点m的
后继,所以需要做如同(2)
过去对Ps的 最优路径 n k
现在生成 P的路径
同样的处理,如图右部所示。
过去生成
P的路径 b.P在Closed表中,说明P的后
(3)对已存在于CLOSED表的节点,作与(2)同样的处 理,并且将其移出CLOSED表,放入OPEN表中重新扩展 。
(4)对其余子节点配上指向N的返回指针后放入OPEN表 中某处,或对OPEN表进行重新排序,转步2。
3.1.2 状态图搜索
树式算法的几点说明
返回指针指的是父节点在CLOSED表中的编号。 步6中修改指针的原因是返回初始节点的路径有两
回溯的线式搜索是随机碰撞式搜索,回溯的线式搜 索也是穷举式搜索。 启发式搜索
是利用“启发性信息”引导的搜索策略。“启发 性信息”就是与问题有关的有利于尽快找到问题解 的信息或知识。启发式搜索分为不同的策略,如全 局择优,局部择优,最佳图搜索。 按扩展顺序不同分为广度优先和深度优先。
3.1.2 状态图搜索
3 搜索算法
搜索的目的是为了寻找初始节点到目标节点的路径, 搜索过程中就得随时记录搜索轨迹。
ClOSED表动态数据结构来记录考察过的节点。
OPEN表的动态数据结构来专门登记当前待考查的节 点。
OPEN表
CLOSED表
节点 父节点编号
编号 节点 父节点编号
3.1.2 状态图搜索
树式搜索算法
步1 把初始节点S0放入OPEN表中。 步2 若OPEN表为空,则搜索失败,退出。
条,要选择“短”的那条路径。 这里路径长短以节点数来衡量,在后面将会看到以
代价来衡量。按代价衡量修改返回指针的同时还要 修改相应的代价值。
图 3-5 修改返回指针示例
3.1.2 状态图搜索
树式搜索例
对于已存在于OPEN表中的节点(如果有的话)也删除之;删
除之前要比较其返回初始节点的新路径与原路径,如果新路
继也在n之前已经生成,称为
Ps。对Ps而言同样可能 由于
m
n→P这一路径的加入,又必
Ps P
须比较多条路径之后而取代价 小的一条,如图左部所示。
3.1.2 状态图搜索
例:设当前搜索图和搜索树如图所示
S0
S0
n
Biblioteka Baidu
n
F
P
Ps
m Ps’
FP Ps
m Ps’
3.1.2 状态图搜索
若启发函数f(n)为从S0到节点n的最短路径的长度,用
LOGO
第3章 图搜索与问题求解
主讲:李 辉
Email:lihui@qust.edu.cn
第3章 图搜索与问题求解
主要内容
3.1 状态图搜索 3.2 状态图搜索问题求解 3.3 与或图搜索 3.4 与或图搜索问题求解
3.5 博弈树搜索
3.1 状态图搜索-搜索与求解
• 搜索是人工智能技术中进行问题求解的基本技术,不管是 符号智能还是计算智能,最终往往都归结为某种搜索,用 某种搜索算法去实现。
3.1.2 状态图搜索
1 搜索方式
树式搜索 在搜索过程中记录所经过的所有节点和边。树式搜
索所记录的轨迹始终是一棵树,这棵树也就是搜索过 程中所产生的搜索树。 线式搜索
在搜索过程中只记录那些当前认为在所找路径上的 节点和边。
不回溯线式搜索 可回溯线式搜索
3.1.2 状态图搜索
2 搜索策略
盲目搜索 无向导的搜索,树式盲目搜索就是穷举搜索,不
• 图搜索模拟的是人脑分析问题、解决问题的过程,是基于 领域知识的问题求解技术。计算智能是借鉴或模拟某些自 然现象或生命现象而实现的搜索和问题求解技术。
图搜索技术是人工智能中的核心技术之一。
3.1.1 状态图
例3.1走迷宫
走迷宫问题就是从该有向图的初始节点出发,寻找目 标节点的问题,或者是寻找通向目标节点的路径问题。
子节点N1放入 CLOSED表中,令N=N1,转步3。
3.1.2 状态图搜索
可回溯的线式搜索
步1 把初始节点S0放入CLOSED表中; 步2 令N= S0 ; 步3 若N是目标节点,则搜索成功,结束。 步4 若N不可扩展,则移出CLOSED表中的末端节点Ne ,若Ne=S0,
步4 若目标节点Sg=N,成功退出。
步5 若N不可扩展,转步2。
步6 扩展N,生成一组节点,对这组子节点作如 下处理:
3.1.2 状态图搜索
(1)删除N的先辈节点(如果有的话)。
(2)对已存在于OPEN表中的节点(如果有的话)也删除 之;删除之前要比较其返回初始节点的新路径与原路 径,如果新路径“短”,则修改这些节点在OPEN表中 的原返回指针,使其沿新路径返回。
边的数目来考察,当前扩展的节点是搜索图中的n,P是
n的后继
S0
S0
n
n
F
F
P
m
P
m
Ps
Ps Ps’
Ps’
3.1.2 状态图搜索
不回溯线式搜索算法
步1 把初始节点S0放入CLOSED表中; 步2 令N= S0 ; 步3 若N是目标节点,则搜索成功,结束。 步4 若N不可扩展,则搜索失败,退出。 步5 扩展N,选取其一个未在CLOSED表中出现过的
3.1.2 状态图搜索
搜索:从初始节点出发,沿着与之相连的边试探 地前进,寻找目标节点的过程。
搜索过程中经过的节点和边,按原图的连接关系, 便会构成一个树型的有向图,这种树型有向图称 为搜索树。
搜索进行中,搜索树会不断增长,直到当搜索树 中出现目标节点,搜索便停止。这时从搜索树中 就可很容易地找出从初始节点到目标节点的路径 (解)来。
径短,则修改这些节点在OPEN表中的原返回指针,使其沿原
路径返回。
S0 Path1
Path2
如 图 所 示 : 说 明 从 S0→P 至 少有两条路,这时有两
种情况:
n m
先扩展 P
后扩展
P在n之前已是某一节点m的后继
f(Path2)< f(Path1), 当前路径较好,要修改P 的指针,使其指向n,即 搜索之后的最佳路径。
3.1.1 状态图
例3.2八数码难题(重排九宫问题)
28 3
1
4
76 5
12 3
8
4
76 5
初始棋局
目标棋局
棋局作为节点,相邻节点通过移动数码一个一个产生 出来,所有节点由它们的相邻关系连成一个有向图。
以上两个问题抽象来看,都是某个有向图中寻找目标 或路径的问题,在人工智能技术中,把这种描述问题 的有向图称为状态空间图,简称状态图。
否则,原路径好。
3.1.2 状态图搜索
对已存在于CLOSED表的节点,作与(2)同样的处理,并将 其移出CLOSED表,放入OPEN表中重新扩展。
S0
a.P在n之前已是某一节点m的
后继,所以需要做如同(2)
过去对Ps的 最优路径 n k
现在生成 P的路径
同样的处理,如图右部所示。
过去生成
P的路径 b.P在Closed表中,说明P的后
(3)对已存在于CLOSED表的节点,作与(2)同样的处 理,并且将其移出CLOSED表,放入OPEN表中重新扩展 。
(4)对其余子节点配上指向N的返回指针后放入OPEN表 中某处,或对OPEN表进行重新排序,转步2。
3.1.2 状态图搜索
树式算法的几点说明
返回指针指的是父节点在CLOSED表中的编号。 步6中修改指针的原因是返回初始节点的路径有两
回溯的线式搜索是随机碰撞式搜索,回溯的线式搜 索也是穷举式搜索。 启发式搜索
是利用“启发性信息”引导的搜索策略。“启发 性信息”就是与问题有关的有利于尽快找到问题解 的信息或知识。启发式搜索分为不同的策略,如全 局择优,局部择优,最佳图搜索。 按扩展顺序不同分为广度优先和深度优先。
3.1.2 状态图搜索
3 搜索算法
搜索的目的是为了寻找初始节点到目标节点的路径, 搜索过程中就得随时记录搜索轨迹。
ClOSED表动态数据结构来记录考察过的节点。
OPEN表的动态数据结构来专门登记当前待考查的节 点。
OPEN表
CLOSED表
节点 父节点编号
编号 节点 父节点编号
3.1.2 状态图搜索
树式搜索算法
步1 把初始节点S0放入OPEN表中。 步2 若OPEN表为空,则搜索失败,退出。
条,要选择“短”的那条路径。 这里路径长短以节点数来衡量,在后面将会看到以
代价来衡量。按代价衡量修改返回指针的同时还要 修改相应的代价值。
图 3-5 修改返回指针示例
3.1.2 状态图搜索
树式搜索例
对于已存在于OPEN表中的节点(如果有的话)也删除之;删
除之前要比较其返回初始节点的新路径与原路径,如果新路
继也在n之前已经生成,称为
Ps。对Ps而言同样可能 由于
m
n→P这一路径的加入,又必
Ps P
须比较多条路径之后而取代价 小的一条,如图左部所示。
3.1.2 状态图搜索
例:设当前搜索图和搜索树如图所示
S0
S0
n
Biblioteka Baidu
n
F
P
Ps
m Ps’
FP Ps
m Ps’
3.1.2 状态图搜索
若启发函数f(n)为从S0到节点n的最短路径的长度,用
LOGO
第3章 图搜索与问题求解
主讲:李 辉
Email:lihui@qust.edu.cn
第3章 图搜索与问题求解
主要内容
3.1 状态图搜索 3.2 状态图搜索问题求解 3.3 与或图搜索 3.4 与或图搜索问题求解
3.5 博弈树搜索
3.1 状态图搜索-搜索与求解
• 搜索是人工智能技术中进行问题求解的基本技术,不管是 符号智能还是计算智能,最终往往都归结为某种搜索,用 某种搜索算法去实现。
3.1.2 状态图搜索
1 搜索方式
树式搜索 在搜索过程中记录所经过的所有节点和边。树式搜
索所记录的轨迹始终是一棵树,这棵树也就是搜索过 程中所产生的搜索树。 线式搜索
在搜索过程中只记录那些当前认为在所找路径上的 节点和边。
不回溯线式搜索 可回溯线式搜索
3.1.2 状态图搜索
2 搜索策略
盲目搜索 无向导的搜索,树式盲目搜索就是穷举搜索,不
• 图搜索模拟的是人脑分析问题、解决问题的过程,是基于 领域知识的问题求解技术。计算智能是借鉴或模拟某些自 然现象或生命现象而实现的搜索和问题求解技术。
图搜索技术是人工智能中的核心技术之一。
3.1.1 状态图
例3.1走迷宫
走迷宫问题就是从该有向图的初始节点出发,寻找目 标节点的问题,或者是寻找通向目标节点的路径问题。
子节点N1放入 CLOSED表中,令N=N1,转步3。
3.1.2 状态图搜索
可回溯的线式搜索
步1 把初始节点S0放入CLOSED表中; 步2 令N= S0 ; 步3 若N是目标节点,则搜索成功,结束。 步4 若N不可扩展,则移出CLOSED表中的末端节点Ne ,若Ne=S0,