没有合适的资源?快使用搜索试试~ 我知道了~
启发式最短路径算法研究.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 184 浏览量
2022-05-06
18:16:07
上传
评论
收藏 1.02MB DOC 举报
温馨提示
试读
38页
启发式最短路径算法研究.doc
资源推荐
资源详情
资源评论
启发式最短路径算法研究
——以庐山路网寻径为例
摘 要:最短路径算法的效率是GIS、智能交通系统等应用领域普遍关注和迫切
需要解决的问题。在深入分析经典的Dijkstra和启发式最短路径算法的基础上,
选取A*启发式最短路径算法,以庐山交通路网为数据基础,对A*算法和Dijkstra
算法进行了对比分析和测试。实验结果表明A*算法能够限制条件扩展节点,减少
算法遍历的节点数目, 降低执行时间,较经典Dijkstra算法具有更高的效率。在A*
启发性算法中,可以将启发函数h(n)看作是节点值估计的约束条件,如果h(n)包
含的信息越多或约束条件越多,则排除的节点就越多,估价函数f(n)越好。因此,
选择合适的估价函数对算法整体效率有很大影响。
关键词:Dijkstra A* 最短路径算法
Heurisc shortest path algorithm research --
an example of network roung on Lushan Mt.
Abstract: The efficiency of the shortest path algorithm is the widespread concern problem which
is urgent need to solve in GIS,intelligent transportation system and other application field . In
depth analysis of the classical Dijkstra and heuristic shortest path algorithm based on A*, this
paper selects heuristic shortest path algorithm in traffic network with Lushan Mt. for the data base,
and the A * algorithm and Dijkstra algorithm are analyzed and tested. The experimental results
show that A * algorithm can limit the conditions of extended node traversal algorithm, reduce the
number of nodes and the execution time, compared with the classical Dijkstra algorithm,A*
algorithm has higher efficiency. In A * heuristic algorithm, heuristic function h (n) can be regarded
as the node value estimate of the constraints, if h ( n ) contains more information or more
constraint conditions,algorithm excludes more nodes number and the evaluation function is
better.Therefore, choosing the appropriate valuation function on the whole algorithm efficiency
has a great influence.
Key words: Dijkstra ;A* ; shortest path algorithm
1
目录
第 1 章 绪论.........................................................................4
1.1 研究目的和意义............................................................................................................... 4
1.2 国内外研现状.................................................................................................................. 5
第 2 章 Dijkstra 和启发式最佳路径算法研究.............................7
2.1 图搜索算法和 Dijkstra 算法............................................................................................. 7
2.2 启发式算法...................................................................................................................... 8
2.3 A*算法.............................................................................................................................. 8
2.4 A*算法可接纳性.............................................................................................................. 9
2.4.1 A*算法的条件....................................................................................................... 9
2.4.2 定理 1................................................................................................................... 10
2.4.3 定理 2................................................................................................................... 12
2.4.4 一致性(或单调)条件......................................................................................13
2.4.5 定理 3................................................................................................................... 15
2.5 估价函数的选取............................................................................................................. 17
第三章 实验环境和数据基础..................................................18
3.1 软件环境........................................................................................................................ 18
3.2 硬件环境........................................................................................................................ 18
3.3 实验数据........................................................................................................................ 18
第 4 章 关键技术.................................................................20
4.1 启发式函数.................................................................................................................... 20
4.2 数据预处理.................................................................................................................... 21
4.2.1 读取数据.............................................................................................................. 21
4.2.2 数据检查.............................................................................................................. 22
4.3 邻接表构建拓扑............................................................................................................. 22
4.4 排序算法................................................................................................................ 22
第 5 章 算法实现.................................................................24
5.1 实现流程图.................................................................................................................... 24
5.2 Dijkstra 和 A*算法的实现...............................................................................................25
第 6 章 结论与展望..............................................................29
6.1 结论................................................................................................................................ 29
6.2 展望................................................................................................................................ 29
参考文献...........................................................................30
致谢..................................................................................31
2
第 1 章 绪论
1.1 研究目的和意义
随 着 计 算 机 的 普 及 以 及 地 理 信 息 科 学 的 发 展 , 地 理 信 息 系 统
(GocmetyrnIofmratinoSysetm,GIS)因其强大的功能得到日益广泛和深入的应用。
网络分析作为 GIS 最主要的功能之一,在电子导航、交通旅游、城市规划以及
电力、通讯等各种管网、管线的布局设计中发挥了重要的作用,而网络分析中
最基本、最关键的问题是最短路径问题
[1]
。
在众多的路径搜索算法中, Dijkstra算法提供了从图的一个节点到另一个节
点的最短路径。 经过一次Dijkstra算法计算, 可以得到从起点到图内被其搜索到
的所有节点的最短路径, 其时间复杂度为o(n^2) ( 其中n 为图的节点数)。但是
在实际应用中, 所关心的是某两个特定节点之间的最短路径而非起点到其他点
的情况, 且在大规模网络中Dijkstra算法的时间复杂度较高, 使其应用受到限制。
Agrawal.R提出了利用堆数据结构来改善Dijkstra算法的寻径速度, 但对
Dijkstra 算法的时间复杂度性能提高有限
[2][3]
。
经典的 Dijkstra 算法存在搜索空间过大导致效率低的问题。启发式最短路
径算法通过启发式方法实现剪枝效果,能够减少搜索空间,提高算法效率。启
发式算法是相对于最优化算法提出的,启发式算法可以这样定义:
一个基于直观或经验构造的算法,在可接受的花费(指计算时间和空
间)下给出待解决组合优化问题每一个实例的一个可行解,该可行解与最优
解的偏离程度不一定事先可以预计。
在这里启发式指的是在一个搜寻树的节点上定义的函数 h(n),用于评估
从此节点到目标节点代价最低的路径。启发式算法通常用于信息充分的搜寻
算法,典型的如最好优先贪婪算法与 A*。最好优先贪婪算法会为启发式函数
选择最低代价的节点;A*则会为 g(n) + h(n)选择最低代价的节点,(g(n)是
4
从起始节点到当前节点路径的实际代价)。如果 h(n)是可接受的,意即 h(n)
未曾付出超过达到目标的代价,则 A*一定会找出最佳解。
启发式搜索就是在状态空间中对每一个搜索的位置进行评估,得到当前最好
的位置,再从这个位置进行搜索直到目标。这样可以省略大量无谓的搜索路径,
提高了效率。在启发式搜索中,对位置的估价是十分重要的。采用了不同的估
价可以有不同的效果。
1.2 国内外研现状
最短路径分析是根据网络的拓扑性质,求网络图数据结构中,从一个顶点
出发到其他各顶点之间的最短路径,或求解每对顶点之间的最短路径。最短路
径实质上是求加权后的最短路径。最短路径计算分静态最短路径计算和动态最
短路径计算。目前基于地理信息系统的最短路径搜索算法研究很多,典型的如:
1.Dijkstra 算法
2.A*算法
3.Bellman-Ford 算法
4.SPFA 算法 (Bellman-Ford 算法的改进版本)
5.Floyd-Warshall 算法
6.Johnson 算法
7.Bi-Direction BFS 算法
对于静态最短路径算法,1959 年 Dijkstra 提出的单源问题算法是最适合拓
扑网络中两结点间最短路径搜索的算法之一, 本文将此算法称为“原始 Dijkstra
算法”,后人在此算法的基础上进行了大量的优化。P. E. Hart , N. J. Nilsson 和
B. Raphael 共同发表了一篇在启发式搜索方面有深远影响力的论文,在该论文
中提出 A*算法,论文指出,如果有已知信息可用来估计某一点到目标点的距离,
则可用 A*搜寻算法,以减小最短路径的搜索范围。Korf 于 1985 年提出了一个
IDA*( Iternative Deepening A*)算法,算法把深度最大值 Dmax 设为起始结点的
h 值,开始进行深度优先搜索,忽略所有 f 值大于 Dmax 的结点,减少了很多
搜索量。如果没有解,再加大 Dmax 的值,直到找到一个解。容易证明这个解
5
剩余37页未读,继续阅读
资源评论
老帽爬新坡
- 粉丝: 82
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- MATLAB大数据仿真案例-蚁群算法(ACO)用于求解旅行商(TSP)问题.rar
- MySQL基础知识-个人笔记.rar
- Project8.ipynb
- Python实现BWO-LSTM白鲸算法优化长短期记忆神经网络时间序列预测(完整源码和数据)
- C语言实现文件读写操作的几种常用方法-C 语言.rar
- RK 3568 Android11 版本的梯形校正补丁
- 基于pyqt yolov5 dlib的驾驶员行为监控系统源码+模型.zip
- python代码案例详解-旅行商问题的多种求解算法.rar
- 单相电力电子负载仿真,PWM整流+单相并网逆变
- C语言功能模块(配置文件读取 、debug日志记录等).zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功