- 在线时间
- 138 小时
- 最后登录
- 2018-11-1
- 注册时间
- 2015-8-26
- 听众数
- 13
- 收听数
- 0
- 能力
- 0 分
- 体力
- 366 点
- 威望
- 0 点
- 阅读权限
- 30
- 积分
- 146
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 70
- 主题
- 23
- 精华
- 0
- 分享
- 0
- 好友
- 17
升级   23% TA的每日心情 | 难过 2016-5-14 14:04 |
|---|
签到天数: 18 天 [LV.4]偶尔看看III
- 自我介绍
- 软件开发工程师
 |
=========================================2 y+ p- [3 g: R7 E
最短路径中的Floyd算法(弗洛伊德算法)的较为严格的冥想证明过程:
/ T- \ S& a+ u/ W; T仍用数学归纳法,, f1 Q- J+ O5 U# {- U
假设N<=n时,弗法正确。具体值我就不验证了。
1 A: J' g- \7 J当N=n+1时,假设最新一点最后一点为K,此时K=n+1,$ B+ Y0 n1 g7 |1 n. R U0 [. _
三重循环中,我们都把K排在循环中的最后一位。
( b4 t* o. a) N8 j7 r现在我们要证明的是,加上新点K点后,经过弗法的三重循环,原来的n点之间仍是最短距离,但是n点与K点之间的短离是不是最短的就不知的。6 S8 F* G0 ~. }* _+ y
如果原来的n点的某两点之间最短距是与K点无关的,显然经过三重循环后,就是最短距了。 E. S. C# h: V/ j# c$ R
如果原来的n点的某两点之间最短距是经过K点的,假设P1,P2,P3,,,Pk-1,Pk,Pk+1,,,Pm本应是实边最短距,不是虚边最短距。
2 |5 M$ V8 M# L( N& |那么由弗法知,P1,P2,P3,,,Pk-1与PK+1,,,,Pm已是连通的最短路了。且Pk-1Pk与PKPK+1是原始实边,不是虚边。
5 E& ?6 B5 X+ L经过最外层最后一次循环的松驰操作,必能连通P1,P2,P3,,,Pk-1,Pk,Pk+1,,,Pm。8 E" w. W9 j' W* u+ B3 k ~. B+ u
所以得证:加上新点K点后,经过弗法的三重循环,原来的n点之间仍是最短距离,但是n点与K点之间的短离是不是最短的就不知的。
$ `( D8 y2 i9 a$ F' R由于对称性,将K点置入内部,把P1点放到最后一点,原来的循环结果不会变的,& M$ b2 s& }$ T& k
所以三重循环后,K点与原来的点(除P1外)的最短距,就可以求出来了。/ m. z, q0 Q" W6 t. _# C: W9 b1 [0 ?
由于对称性,将K点置入内部,把P2点放到最后一点,原来的循环结果不会变的,0 r! u% t5 K9 [7 y6 ?+ X
所以三重循环后,K点与原来的点(除P2外,但P1不除外)的最短距,就可以求出来了。3 I; }! ?, A1 G6 `! \
所以K点与原来的n个点的最短距,也就已经求出来的了,仍是原来的三重循环也。3 N* m7 J" r) H. R" g, M8 k" V$ ?- R
这样,弗法就可以较为严格的证明了。
$ L% y! L( E8 z1 z6 w- k% y9 F% J# }=========================================5 i8 U, b$ b8 c' }( _# j1 y5 ]
为何假设P1,P2,P3,,,Pk-1,Pk,Pk+1,,,Pm本应是实边最短距,不是虚边最短距???4 \6 A- ^: m+ ~- l. h. q# {
如果是虚边最短距,也可以转化成实边最短距,然后结果一样的。
: O3 O B8 c, X2 n=========================================* K5 E& L# g$ @/ Y1 ~, [
0 o8 v/ S# u, I! w
! F+ U1 k0 [7 X- W! @ |
zan
|