SPFA算法简介

转载 2011年01月23日 22:02:00

SPFA算法简介

 

SPFA算法采用图的存储结构是邻接表,方法是动态优化逼近法。算法中设立了一个先进先出的队列Queue用来保存待优化的顶点,优化时从此队列里顺序取出一个点w,并且用w点的当前路径D[W]去优化调整其它各点的路径值D[j],若有调整,即D[j]的值改小了,就将J点放入Queue队列以待继续进一步优化。反复从Queue队列里取出点来对当前最短路径进行优化,直至队空不需要再优化为止,此时D数组里就保存了从源点到各点的最短路径值 。

 

    下面举一个实例来说明SFFA算法是怎样进行的:

 

    设有一个有向图G{VE},其中,V{V0,V1,V2,V3,V4}E{<V0,V1>,<V0,V4>,<V1,V2>,<V1,V4>,<V2,V3>,<V3,V4>,<V4,V2>}{2,10,3,7,4,5,6},见下图:

 

 

 

 

 查看更多精彩图片

 

 

 

 

 

算法执行时各步的Queue队的值和D数组的值由下表所示。

 

表一  实例图SPFA算法执行的步骤及结果

 

初始

第一步

第二步

第三步

第四步

第五步

queue

D

queue

D

queue

D

queue

D

queue

D

queue

D

V0

0

V1

0

V4

0

V2

0

V3

0

 

0

 

V4

2

V2

2

 

2

 

2

 

2

 

 

 

5

 

5

 

5

 

5

 

 

 

 

 

9

 

9

 

 

10

 

9

 

9

 

9

 

9

 

算法执行到第五步后,队Queue空,算法结束。源点V0V1的最短路径为2,到V2的最短路径为5,到V3的最短路径为9,到V4的最短路径为9,结果显然是正确的。

 

 

透析SPFA算法(图例讲解)

SPFA算法是Bellman-Ford的队列优化,所以先介绍Bellman-Ford算法。        Dijkstra算法是处理单源最短路径的有效算法,但它局限于边的权值非负的情况,若图中出现权值...
  • u013445530
  • u013445530
  • 2014年12月05日 23:53
  • 1497

SPFA算法详解

解决存在负环的图的单源最短路径,bellman-ford算法是比较经典的一个,但是大家都知道,这个算法的效率并不咋的,因为它只知道要求单源最短路,至多做|v|(j图的结点数)次松弛操作,感觉有点盲目吧...
  • GeiZuoZuoZuo
  • GeiZuoZuoZuo
  • 2013年05月07日 16:42
  • 4796

spfa算法详解

介绍:       单源最短路径的算法最常用的是Dijkstra,些算法从时间复杂度来说为O(n^2),但是面对含有负权植的图来说就无能为力了,此时Dellman-ford算法就有用了,这咱算法...
  • my_acm
  • my_acm
  • 2014年07月20日 20:16
  • 1630

最短路径问题的Dijkstra和SPFA算法总结

Dijkstra算法: 解决带非负权重图的单元最短路径问题。时间复杂度为O(V*V+E) 算法精髓:维持一组节点集合S,从源节点到该集合中的点的最短路径已被找到,算法重复从剩余的节点集V-S中选择...
  • hq572241670
  • hq572241670
  • 2014年04月11日 14:07
  • 1024

谈宽搜SPFA算法和深搜优化SPFA

SPFA算法是最短路的万能算法。 本文就宽搜和深搜的两种写法来谈,深搜优化主要解决优化判负环的速度。值得一看!...
  • xuechen_gemgirl
  • xuechen_gemgirl
  • 2017年07月25日 00:59
  • 252

最短路径 之 SPFA算法

最短路径 之 SPFA算法 http://hi.baidu.com/southhill/item/ab26a342590a5aae60d7b967 求最短路径的算法有许多种,除...
  • JustSteps
  • JustSteps
  • 2013年04月08日 15:32
  • 12483

(最短路径算法整理)dijkstra、floyd、bellman-ford、spfa算法模板的整理与介绍

这一篇博客以一些OJ上的题目为载体,整理一下最短路径算法。会陆续的更新。。。   一、多源最短路算法——floyd算法       floyd算法主要用于求任意两点间的最短路径,也成最短最短路径问题。...
  • caihongshijie6
  • caihongshijie6
  • 2014年05月23日 19:45
  • 4752

HDU 2544(最短路径 SPFA 算法模板)

F - 最短路 Crawling in process... Crawling failed Time Limit:1000MS     Memory Limit:32768KB     64...
  • L_BestCoder
  • L_BestCoder
  • 2016年07月28日 20:00
  • 778

图论:一个叫做SPFA的东西(C语言代码实现)

spfa.png (23.94 KB, 下载次数: 2) 下载附件  保存到相册 2013-2-20 20:58 上传 输入样例: 5 7 1 2 2 1 5 10 2 3 3 2 ...
  • ahalei
  • ahalei
  • 2014年03月05日 11:34
  • 2620

浅谈路径规划算法之SPFA算法

SPFA算法        求单源最短路的SPFA算法的全称是:Shortest Path Faster Algorithm。SPFA算法是西南交通大学段凡丁于1994年发表的。从名字我们就可以看出,...
  • AK_Lady
  • AK_Lady
  • 2017年04月12日 22:13
  • 310
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SPFA算法简介
举报原因:
原因补充:

(最多只允许输入30个字)