码迷,mamicode.com
首页 > 编程语言 > 详细

Bellman ford 最短路径算法

时间:2015-07-05 15:06:01      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:

Bellman ford 最短路径算法

 

 技术分享

下表记录S到每个节点的距离:

第一次迭代,

S->A = 4 ,因为S->A目前为INF,因此更新MIN(S->A)为4

S->B = 6,因为S->B目前为INF,因此更新MIN(S->B)为6

S->C=INF(表示不可达)

S->D=INF

 

MIN(S->S)

MIN(S->A)

MIN(S->B)

MIN(S->C)

MIN(S->D)

0

4

6

INF

INF

第二次从A开始迭代:

 

技术分享

 

 

A->C=3,因为S->C目前为INF,因此更新MIN(S->C)为7

MIN(S->S)

MIN(S->A)

MIN(S->B)

MIN(S->C)

MIN(S->D)

0

4

6

7

INF

第二次从B开始迭代,

 

 技术分享


B->A= -5 ,因为S->A=4 S->B=6,因此S->B->A=1 < S->A = 4,故更新MIN(S->A)=1

因为更新了S->A,而A可达点集有C,因此需要对这些可达点集进行递归

MIN(S->C) 此时为7,而MIN(S->A)->C为1+3=4,故需要更新MIN(S->C)=4

B->D = 1,因为MIN(S->D) = INF,故MIN(S->D)需更新为7

MIN(S->S)

MIN(S->A)

MIN(S->B)

MIN(S->C)

MIN(S->D)

0

1

6

4

7

从C点开始迭代:

技术分享

 


C可达点集只有D,因为MIN(S->D)为7,而MIN(S->C)->D为4+2=6,因此MIN(S->D)需要更新为6

得到最后结果为:

MIN(S->S)

MIN(S->A)

MIN(S->B)

MIN(S->C)

MIN(S->D)

0

1

6

4

6

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

Bellman ford 最短路径算法

标签:

原文地址:http://blog.csdn.net/lan_liang/article/details/46762713

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!