`
sonyfe25cp
  • 浏览: 202654 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

代价树的广度优先搜索

阅读更多
背景:如图是5城市之间交通路线图,A城市是出发地,E城市是目的地,两城市间的交通费用(代价)如图中数字所示,求从A到E的最小费用路线。

解法:采用 代价树的广度优先搜索
理论:

1. 首先根据交通图,画出代价图

代价图 如图2:



2. 开始搜索

oepn表存放刚刚生成的节点。
closed表存放将要扩展的节点或已经扩展过的节点。

open表结构:
[代价]|[节点]|[父节点]

closed表结构:
[序号]|[节点]|[父节点]



1) 把A放入 open表

open表:
0| A | 0      
Closed表: 空

2) 把A从open表放入closed表

open表: 空            
closed表:
1 | A | 0

3) 扩展A,得C1,B1,放入open表
C1的代价:3
B1的代价:4

Open表:
3 | C1 | A 
4 | B1 | A
closed表:
1 | A | 0


4) 把C1从open表放到closed表

Open表:
4 | B1 | A 
closed表:
1 | A | 0
2 | C1 | A

C1不是目标节点,于是继续扩展

5) 把C1扩展得到 D1,放入open表
D1的代价:3+2=5
B1的代价:4

open表:
4 | B1 | A
5 | D1 | C1
closed表:
1 | A  | 0
2 | C1 | A

6) 把B1从open放入closed表

open表:
5 | D1 | C1  
closed表:
1 | A  | 0
2 | C1 | A
3 | B1 | A
B1不是目标节点,于是继续扩展

7) 扩展B1得D2,E1,放入Open表
D2的代价:4+4=8
E1的代价:4+5=9

open表:
5 | D1 | C1 
8 | D2 | B1            
9 | E1 | B1            
closed表:
1 | A | 0
2 | C1 | A
3 | B1 | A


8) 把D1从open表放入closed表

open表:
8 | D2 | B1 
9 | E1 | B1            
closed表:
1 | A | 0
2 | C1 | A
3 | B1 | A
4 | D1 | C1

D1不是目标节点,于是继续扩展

9) 把D1扩展得到E2,B2,放入open表
E2的代价:3+2+3=8
B2的代价:3+2+4=9
D2的代价:8
E1的代价:9

open表:
8 | E2 | D1 
8 | D2 | B1            
9 | B2 | D1            
9 | E1 | B1             
closed表:
1 | A | 0
2 | C1 | A
3 | B1 | A
4 | D1 | C1

10) 把E2从open表放入closed表

                             
open表:
8 | D2 | B1           
9 | B2 | D1            
9 | E1 | B1            
closed表:
1 | A | 0
2 | C1 | A
3 | B1 | A
4 | D1 | C1
5 | E2 | D1                           
E2 是目标节点,搜索结束。

则搜索路径 A - C1 - D1 -E2
即:A - C - D - E


















  • 大小: 22.4 KB
  • 大小: 36.2 KB
分享到:
评论

相关推荐

    代价树的广度优先搜索 带有open表和closed表的显示

    代价树的广度优先搜索 带有open表和closed表的显示

    人工智能代价树的广度优先搜索

    通过广度优先搜索结合open表和close表,搜索最短路径。还包括一些图的经典算法和数据结构。深度遍历等~

    第四章搜索策略.ppt

    终止节点一定是端节点,但端节点不一定是终止节点。 状态空间表示法 ...代价树的深度优先搜索 估价函数与择优搜索 状态空间的启发式搜索策略 图的有序搜索与A*算法 A*算法应用举例 博弈树的启发式搜索

    人工智能实验:搜索算法问题求解

    2.实现搜索树的宽度优先搜索,深度优先搜索,一致代价搜索,迭代加深的深度优先搜索算法; 3.实现贪婪最佳优先搜索和A*搜索 4.使用编写的搜索算法代码求解罗马尼亚问题; 5.记录各种算法的时间复杂度并绘制...

    Artificial Intelligence人工智能领域课件03.ppt

    (2)深度优先搜索耗费的空间量是路径长度值的线性函数,OPEN在每一层只保留一个状态的子状态,如果图中每个状态平均有B个子状态,则搜索到图中第n层时要求B×n个状态的空间,有大量分支的图时会有相当高的效率。...

    A*以及迭代加深的A*算法(IDA*)

    IDA*算法(也就是迭代深度优先算法),将上面的A*和ID算法结合起来,也就是,在进行搜索时,使用耗散值替代ID中的深度值(f=g+h),也就是说,搜索的范围在那些不超过给定值的节点中进行深度优先搜索。如果搜索不...

    人工智能课件第三章搜索原理

    学习要求 重点掌握宽度优先和深度优先搜索算法 掌握等代价搜索算法 掌握启发式搜索相关知识 理解博弈树搜索相关技术 掌握遗传算法基本原理 理解模拟退火算法基本原理

    计算机专业数据结构设计课件

    深度优先搜索 2.广度优先搜索 (四)图的基本应用及其复杂度分析 1.最小(代价)生成树 2.最短路径 3.拓扑排序 4.关键路径 四、查找 (一)查找的基本概念 (二)顺序查找法 (三)折半查找法 (四)B-树 (五...

    算法分析与设计——无向图的应用(C++版).

    然后,和有向图相似的介绍了两种无向图的遍历方法(深度优先遍历和广度优先遍历)。接着介绍了迷宫问题的求解方法。最后,介绍了求解最短路径的六种方法,包括宽度优先搜索、动态规划、A﹡算法、等代价搜索法、...

    第 4 章 搜索策略1

    引入:BFS和DFS都假设状态空间中各边的代价都相同(个单位),但现实中,各边的代价可能不同。称边上有代价的搜索树为代价树。设表初始节点到节点 的代价,表从节点

    考研-数据结构-殷人昆.zip

    7.3.1 深度优先搜索遍历 188 7.3.2 广度优先搜索遍历 189 7.3.3 例题选讲 190 7.4 小(代价)生成树 193 7.4.1 普里姆算法和克鲁斯卡尔算法 193 7.4.2 例题选讲 197 7.5 短路径 198 7.5.1 迪杰斯特拉算法 198 7.5.2 ...

    人工智能实验报告.doc

    "经过10步搜索得到目标节 "经过7步搜索得到目标节" " "点 "点 "点 " "学生结论 " 宽度优先搜索能保证在 " 深度优先搜索要沿路径 " A*算法是启发式算法" " "搜索树中找到一条通向目 "一条一条的走到底,如果目"的...

    算法引论:一种创造性方法.[美]Udi Manber(带详细书签).pdf

    7.3.1 深度优先搜索 7.3.2 广度优先搜索 7.4 拓扑排序 7.5 单源最短路径 7.6 最小代价生成树 7.7 全部最短路径 7.8 传递闭包 7.9 图的分解 7.9.1 双连通分支 7.9.2 强连通分支 7.9.3 利用图分解的例子 ...

    本人利用pascal 写的delphi算法与数据结构的源代码

    -------深度优先搜索-------- -------广度优先搜索-------- --------普里姆最小代价生成树算法-------- ---4 -------用邻接矩阵构造带权有向图-------- --------------最短路径--------------- --------用邻接表...

    基于A*算法的人工智能程序

    A*算法属于一种启发式搜索,它扩展结点的次序类似于广度优先搜索,但不同的是每生成一个子结点需要计算估价函数F,以估算起始结点的约束经过该结点至达目标结点的最佳路径代价;每当扩展结点时,意是在所有待扩展结点中...

    python实现Dijkstra静态寻路算法

    迪科斯彻算法使用了广度优先搜索解决赋权有向图或者无向图的单源最短路径问题,算法最终得到一个最短路径树。该算法常用于路由算法或者作为其他图算法的一个子模块。 当然目前也有人将它用来处理物流方面,以获取...

    数据挖掘18大算法实现以及其他相关经典DM算法

    主要用于关键信息的搜索,类似于在空间中的二分搜索,大大提高了搜索效率,在寻找目标元素时,使用了DFS深度优先的方式和回溯进行最近点的寻找。详细介绍链接 MS-Apriori 基于多支持度的Apriori算法。是Apriori...

    数据结构课设

    (3) 分别用广度优先和深度优先的方法遍历图,起始点定为1号教学楼; (4) 建立校园局域网,要求所花的代价最小; (5) 查询从1号教学楼到其他各点的最短路径; (6) 查询图中任意两个建筑间的最短路径。 4、...

    数据结构(C++)有关练习题

    2、 为该类分别设计一个实现深度优先搜索和广度优先搜索的成员函数,并要输出搜索结果; 注: 1、为了让你设计的图类拥有数据,可以设计一个成员函数,用于构造你自己预先设计好的图; 2、要求的图如下,...

Global site tag (gtag.js) - Google Analytics