菜单
  

    2.1 Dijkstra算法
    Dijkstra(迪杰斯特拉)算法又称为标号法,是1959年荷兰计算机科学家E.W.Dijkstra提出的关于最短路径的搜索算法,该算法是很具有代表性的单源最短路径的实用算法[2],主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止,用于计算一个节点到其他所有节点的最短路径,表述方法通常有两种,一种是临时标号方式和永久标号方式,另外一种是open和close的方式,通常采用前一种方式,原始的Dijkstra算法将网络结点分为未标记结点、临时标记结点和永久标记结点这三个部分[13]。在网络中的所有结点首先都要进行初始化为未标记节点,然后在搜索过程中将与最短路径中结点相通的结点标为临时标记结点,每次循环都是从临时标记结点中搜索距离源点路径长度最短的结点作为永久标记结点,直到所有的目标结点成为永久标记结点才结束算法。该算法是目前多数系统解决最短路径问题的理论基础,程序设计简单通用性比较强,但是该算法遍历计算的节点比较多,因此效率比较低。
    2.1.1 算法思想
    Dijkstra算法,是迪杰斯特拉采用贪心法算法的策略提出的按照路径长度递增的顺序产生的最短路径的算法[5],该算法的算法思想是,设置两个集合 和 ,集合 存放已经找到最短路径的顶点的集合,集合 存放当前还未找到的最短路径的顶点,初始状态 中存放 然后不断从 中不断的找出到定 点的最短路径,把这个定点加入到 中,集合 中每加入一个顶点,都要修改定点 到集合 中剩余其他定点的值,直到经过 步,集合 为空,就可以得到从起点到其他各节点的最短路径。 Dijkstra算法是从起点出发,逐步向外探寻最短路径。
    2.1.2 算法描述
    1)假设起始点 , 中只包含顶点 ,除去 ,剩余顶点均在集合 中,可以得出到 对应的距离为 ,即 。我们规定 中顶点对应的距离值:如果图中有弧,用 表示,并且 顶点的距离为该弧的权值,否则就为 。
    2)从 中选择一个其距离值最小的顶点 ,然后加入到 中。
    3)每往 中加入一个顶点 后,就要对 中各个顶点的距离值进行一次修改。如果 做中间顶点,使得 的值小于 值,则用 代替原来 的距离值。
  1. 上一篇:校园公益捐赠网站的现状分析与未来发展趋势
  2. 下一篇:浅析云安全+文献综述+参考文献
  1. 随机物流车辆调度问题的仿真与决策

  2. Hopfield神经网络人工神经网...

  3. 城市立体交通网络求最短...

  4. 云节点协同工作若干问题的研究

  5. 基于矩阵低秩分解的图像标注增强问题研究

  6. 死路径语义下服务组合控制流图的生成

  7. 多自由度越障机构动力学建模及路径规划

  8. 河岸冲刷和泥沙淤积的监测国内外研究现状

  9. 乳业同业并购式全产业链...

  10. 电站锅炉暖风器设计任务书

  11. 酸性水汽提装置总汽提塔设计+CAD图纸

  12. 当代大学生慈善意识研究+文献综述

  13. java+mysql车辆管理系统的设计+源代码

  14. 十二层带中心支撑钢结构...

  15. 大众媒体对公共政策制定的影响

  16. 中考体育项目与体育教学合理结合的研究

  17. 杂拟谷盗体内共生菌沃尔...

  

About

751论文网手机版...

主页:http://www.751com.cn

关闭返回