最新Dijkstra算法描述.doc
《最新Dijkstra算法描述.doc》由会员分享,可在线阅读,更多相关《最新Dijkstra算法描述.doc(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品资料Dijkstra算法描述.Dijkstra算法描述Dijkstra算法描述Dijkstra算法描述目录一、算法概述Dijkstra(迪杰斯特拉)算法是典型的单源最短路径计算算法,用于解决源点到所有结点最短路径计算的问题,它采用了分治和贪心(动态规划的特殊形式)的思想搜索全局最优解。本系统采用了主流、开源的JAVA图论库Jgrapht来解决源点到终点间所有可能路径输出的问题,它的核心计算引擎采用了一种Dijkstra-like算法,由经典的Dijkstra(迪杰斯特拉)算法演化和改进而来。二、算法原理及计算2.1算法原理Dijkstra算法思想为:设是带权有向图,代表图中顶点集合,代表图
2、中含权重的边集合。将全部顶点集合分成两组,第一组为已求出最短路径的顶点集合,用表示(初始时中只有一个源点,以后每求得一条最短路径,就将该路径的终点加入到集合中);第二组为其余待确定最短路径的顶点集合,用表示。按最短路径长度的递增次序依次把集合的顶点逐个加入到集合中,约束条件是保持从源点到中各顶点的最短路径长度不大于从源点到中任何顶点的最短路径长度。算法的终止条件是集合为空集,即集合的顶点全部加入到集合中。2.2计算过程以图1为例讨论Dijkstra算法的计算过程,即计算某源点到网络上其余各结点的最短路径,设源点为,逐步搜索,每次找出一个结点到源点的最短路径,直至完成所有结点的计算。图1 带权有
3、向图记为源点到某终点的距离,是源点到终点某条路径的所有链路长度之和。记是源点到终点的距离。Dijkstra算法归纳如下:(1)初始化,令是已求出最短路径的顶点集合,是其余未确定最短路径的顶点集合,可写出: (1-1)公式1-1中,是源点与终点的直连路径长度,而代表源点与终点不相连,初始化结果如表1所示;(2)遍历集合中的所有结点并计算。所有结点中寻找一个结点,用最小值去更新值,并将其从集合中剔除并加入到集合中。(3)重复步骤(2),直至集合为空集。表1 针对图1的最短路径计算过程步骤SUD(2)D(3)D(4)D(5)D(6)初始化241124Add242231Add43Add312442Ad
4、d12452312Add表1是针对图1的详细计算步骤的中间结果。具体计算描述如下:初始化步骤:由于初始选择了源点,因此集合只是结点。观察图1,源点到结点、的直连路径长度分别为2,4和1,到结点、不存在直连边因而为。根据计算结果,集合所有结点的最小值为,因而将结点从集合中剔除并将其加入到集合中步骤1:针对结点,(是遍历集合的某结点,是集合新加入结点),而,因而源点到结点的最小距离为2;针对结点,(是遍历集合的某结点,是集合新加入结点),而,因而源点到结点的最小距离为4;针对结点,是集合新加入结点,标记为Add;针对结点,(是遍历集合的某结点,是集合新加入结点),而,因而源点到结点的最小距离为2;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 Dijkstra 算法 描述
限制150内