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算法源代码

最短路算法详解(Dijkstra/SPFA/Floyd)

最短路算法详解:Dijkstra、SPFA、Floyd

SPFA算法的优化及应用

  • 2012-09-03 12:17
  • 467KB
  • 下载

CSU 1333 & Uva 12661 Funny Car Racing【最短路变形+spfa算法,链式前向星建图】

Funny Car Racing Memory Limit: 131072KB 64bit IO Format: %lld & %llu Status ...

SPFA算法模板

SPFA算法.ppt

  • 2015-08-04 15:15
  • 34KB
  • 下载

USACO Sweet Butter, 难题,Bellman-Ford算法 + SPFA优化

这题碰到我头晕的时候,搞了几天没搞懂,参考了网上的代码 nocow的解释:http://www.nocow.cn/index.php/USACO/butter Bellman-Ford算法:h...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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