几种最短路径算法的比较.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
几种最短路径算法的比较.doc

几种最短路径算法的比较 (陈先红 湖北省仙桃市沔城高级中学) 摘 要:最短路径算法种类繁多,比较有名的算法包括:Dijkstra 算法、Warshall –Floyd算法、动态规划算法、A*算法以及改进的Dijkstra 算法,而即使同一种算法也有多种不同的实现方式。本文主要这几种经典的算法进行分析比较。 关键词:最短路径 算法 邻接矩阵 1. 引言, 寻找从指定起点到终点的一条具有最小权值总和的路径问题。如果把权值看成是道路的长度属性, 那么目标路径就是从起点到终点的最短路径。所谓最短路径就是网络中两点之间距离最短的路径,这里讲的距离可以是实际的距离,最短路径不仅仅指一般地理意义上的距离最短,也可以引申为其它的度量,如时间、运费、流量等。 2. Dijkstra算法,目标点为。Dijkstra算法由近到远为顺序,依次求得到G的各顶点的最短路和距离,直至,算法结束。为避免重复并保留每一步的计算信息,采用了标号算法。 算法步骤如下: 步骤1:令=0,对于,令,,。 步骤2:对每个,用代替, 当不相邻时,。计算,把达到这个最小值的一个顶点记为,令。 步骤3:若,则停止;若,则代替,转步骤2。 3. Warshall -Floyd算法Dijkstra算法N次。但这里要提的Warshall -Floyd算法算法,顶点到顶点的最短路径经过顶点或者不经过顶点。比较与的值。若,则令,保持是当前有哪些信誉好的足球投注网站的顶点到顶点的最短路径。重复这一过程,最后当有哪些信誉好的足球投注网站完所有顶点时,就是顶点到顶点的最短距离。 Warshall -Floyd算法是顶点到顶点的最短距离,是顶点到顶点的权。Warshall -Floyd算法,有=,。 步骤2 更新。对所有,若,则令。 步骤3 若,则存在一条含有顶点的负回路,停止;或者 停止,否则转步骤2。 4. 动态规划算法 动态规划算法的基本思想是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。动态规划算法使用于解最优化问题。通常可以按以下步骤设计动态规划算法: (1)找出最优解的性质,并刻画其结构特征; (2)递归地定义最优解; (3)以自底向上的方式计算出最优解; (4)根据计算最优值时得到的信息,构造最优解。 5.A* 算法 A*算法是在宽度优先有哪些信誉好的足球投注网站算法的基础上, 每次都是利用一个自己确定的估价函数对所有没展开的结点进行估价,从而找出最应该被展开的结点(也就是说要找的答案最有可能是从该结点展开,把该结点展开,直到找到目标结点为止)。 A* 算法是人工智能领域的一种图有哪些信誉好的足球投注网站策略, 采用了启发式函数对有哪些信誉好的足球投注网站过程中产生的分支进行评估, 以选择最佳的分支进行有哪些信誉好的足球投注网站。其更一般的引入了一个估价函数f(n),其定义为f(n)=g(n)+h(n)。 其中g(n)为到达当前节点的耗费, 而h(n)表示对从当前节点到达目标节点的耗费的估计, 其必须满足两个条件: (1) h(n)必须小于等于实际的从当前节点到达目标节点的最小耗费h*。 (2) f(n)必须保持单调递增。 A* 算法生成的总节点数为N ,解的深度为d ,尝试为d 的一致有哪些信誉好的足球投注网站树为了包括N + 1 个节点所必须的分支因子为b* 。因此, ,可以看出空间复杂度高。如果是可采纳的,即启发函数设计得好, 可以大大降低扩展的节点,从而在较小的时间内即可完成最佳路径有哪些信誉好的足球投注网站。其时间复杂度为。 6.改进的Dijkstra 算法 传统的利用Dijkstra 算法来实现图中任意结点之间的最短路径查找,其基本思想就是依次以图中各个结点为起点利用Dijkstra 算法计算出最短路径,这样循环n 次即可得到图中任意结点之间的最短路径,而每一步都是一个简单的重复过程。这样虽然能够实现任意两点之间的最短路径查找,但是从效率上分析并不是最优的。实际是可以进行改进,具体方法如下: (1) 根据Dijkstra 算法思想,可以由图中结点的出入度信息来提高各点之间最短路径的查找速度。 (2) 在带权图中利用Dijkstra 算法找出部分结点之间的最短路径后,若其他还没有找出最短路径的结点可以利用前面已找出的最短路径信息为自己提供快速的最短路径查找。 7.最短路径算法的分析比较 求解同一计算问题可能有许多不同的算法,究竟如何来评价这些算法的好坏,主要考虑两点: (1)执行算法所耗费的时间; (2)执行算法所耗费的存储空间。 7.1 Dijkstra 算法的成功率是最高的,因为它每次必能有哪些信誉好的足球投注网站到最优路径。但另一方面, Dijkstra 算法的有哪些信誉好的足球投注网站速度是最慢的。Dijkstra 算法求一个点到其他所有点的最短路径时间复杂度为,求一个点到其他所有点最短路径等效于求一个点到另一个点的最短路径n 个点之间互相的最短路径空间复杂度为。 7.2 Warshall -Floyd算法基于图论的

文档评论(0)

gujf + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档