贪心算法最短路径问题 最短路径问题Dijkstra算法的改进

摘要:对最短路径问题使用的Dijkstra算法进行了改进,使得算法步数更少、计算次数减少、过程更简单、有效性更高。同时对改进算法进行了举例实证,通过两种算法的对比,对Dijkstra算法的改进使得总计算步数由原来的步减少为不到步,计算次数得到大幅减少。实证检验进一步验证肯定了这一算法改进的优越性。

  关键词:算法 简单带权图 最短路径 Dijkstra算法
  中图分类号:TP311.13 文献标识码:A 文章编号:1007-9416(2016)11-0133-01
  1 引言
  最短路径问题:任给简单带权图及,求之间的最短路径及距离。最短路径问题的一个有效算法是Dijkstra算法。
  2 Dijkstra算法
  Dijkstra算法是一种标号法,每一个顶点有一个标号,标号分永久标号和临时标号两种,在顶点的标号记为。算法:
  (1) 令,表示空,
  。
  (2) 对所有的且
  令,
  若,则令。
  (3) 求。
  令。
  (4) 令,
  若,则转(2)。
  每一步有一个顶点获得永久标号,个顶点共要进行步。计算结束后,就是到的距离,而利用通过回溯可以得到到的最短路径。
  3 Dijkstra算法的改进
  i步骤(3)标号永久化的同时也将 中顶点的标号永久化;ii将和并入新一轮的。这样的增加量大于等于1,使得总计算步数小于等于,总计算次数大幅减少,大大简化了计算过程。
  4 实证举例
  如图1所示,求图中顶点到的最短路径。
  解一 用Dijkstra算法,计算过程如表1所示。
  表示该顶点在这一步取得永久标号。由表1可知到的距离,到的最短路径为,计算步数为6,计算次数(表中标号个数)为21。
  解二 用改进算法,计算过程如表2所示。
  由表2同样可知到的距离,到的最短路径为,但表2中计算步数比表1减少,只需要5步,计算次数也减少为18。
  5 结语
  对Dijkstra算法的改进使得总计算步数由原来的步减少为不到步,计算次数得到大幅减少。同时实证检验进一步验证肯定了这一算法改进的优越性(步数由6步减少为5步,计算次数由21减少为18)。
  参考文献
  [1]温武,钟沃坚.离散数学及应用(第2版)[M].广州:华南理工大学出版社,2010.
  [2]耿素云,曲婉玲,张立昂.离散数学[M].北京:清华大学出版社,2013.
  [3]韦斯特.图论导引(第2版)[M].北京:电子工业出版社,2014.
贪心算法最短路径问题 最短路径问题Dijkstra算法的改进
百度搜索“爱华网”,专业资料、生活学习,尽在爱华网!  

爱华网本文地址 » http://www.aihuau.com/a/310451/584883755042.html

更多阅读

转载 C语言贪心算法 c语言贪心算法

你真牛原文地址:C语言贪心算法作者:人鱼的泪贪心算法开放分类:算法、信息学贪心算法所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最

神经猫的贪心算法 贪心算法的优缺点

一、概念 贪心算法(贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,但对范围相当广泛的许多问题他

最大公约数算法 最大公约数最优算法

1、查找约数法. 先分别找出每个数的所有约数, 再从两个数的约数中找出公有的约数, 其中最大的一个就是 最大公约数. 例如,求 12 和 30 的最大公约数. 12 的约数有:1、2、3、4、6、12; 30 的约数有:1、2、3、5、6、10、15、30. 12 和 30 的公约

声明:《贪心算法最短路径问题 最短路径问题Dijkstra算法的改进》为网友精神领袖分享!如侵犯到您的合法权益请联系我们删除