- 在线时间
- 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
- 自我介绍
- 软件开发工程师
 |
=========================================
k. m6 w0 ~% |- V* f6 x最短路径中的Floyd算法(弗洛伊德算法)的较为严格的冥想证明过程:9 } o# K# B' X
仍用数学归纳法,
. }3 F/ |% ]8 v6 e: H* f假设N<=n时,弗法正确。具体值我就不验证了。& \' v, _7 a- D5 t
当N=n+1时,假设最新一点最后一点为K,此时K=n+1,
% r! p0 o* { ], k0 P. f3 y三重循环中,我们都把K排在循环中的最后一位。' l5 h2 f5 K( D3 i8 U
现在我们要证明的是,加上新点K点后,经过弗法的三重循环,原来的n点之间仍是最短距离,但是n点与K点之间的短离是不是最短的就不知的。
4 X) J; N" g+ F1 w7 m' }. Q; C如果原来的n点的某两点之间最短距是与K点无关的,显然经过三重循环后,就是最短距了。& [6 {" ?2 X9 B1 Y
如果原来的n点的某两点之间最短距是经过K点的,假设P1,P2,P3,,,Pk-1,Pk,Pk+1,,,Pm本应是实边最短距,不是虚边最短距。( N5 x8 N( t" ^, p8 c. E1 R9 ], f1 E4 F
那么由弗法知,P1,P2,P3,,,Pk-1与PK+1,,,,Pm已是连通的最短路了。且Pk-1Pk与PKPK+1是原始实边,不是虚边。
) |/ q& S; O5 V( n经过最外层最后一次循环的松驰操作,必能连通P1,P2,P3,,,Pk-1,Pk,Pk+1,,,Pm。
D4 A/ e! X0 K0 C* s) ^% e" F* q所以得证:加上新点K点后,经过弗法的三重循环,原来的n点之间仍是最短距离,但是n点与K点之间的短离是不是最短的就不知的。
5 o3 K! ?) G1 k* K( O9 C由于对称性,将K点置入内部,把P1点放到最后一点,原来的循环结果不会变的,% c# p; Z6 n$ D9 |. V6 ]
所以三重循环后,K点与原来的点(除P1外)的最短距,就可以求出来了。
. @3 g+ U. y% `3 Z3 I! R由于对称性,将K点置入内部,把P2点放到最后一点,原来的循环结果不会变的,4 }; U" ~, | W
所以三重循环后,K点与原来的点(除P2外,但P1不除外)的最短距,就可以求出来了。
& Z1 I }9 u& j, P$ ?6 k" }所以K点与原来的n个点的最短距,也就已经求出来的了,仍是原来的三重循环也。
( R3 ] x1 }7 V/ v4 r+ k% N+ w3 Y这样,弗法就可以较为严格的证明了。
% o- q* p6 I6 B9 L=========================================1 e6 d) S. q+ m4 m4 a
为何假设P1,P2,P3,,,Pk-1,Pk,Pk+1,,,Pm本应是实边最短距,不是虚边最短距???% \7 D6 N5 u2 s$ W$ r; K
如果是虚边最短距,也可以转化成实边最短距,然后结果一样的。$ e U& N% q- D5 ?8 T, @+ N W" ]+ y- o
=========================================+ L, B) ]- _$ x! h
) q0 [5 t9 o3 {2 H# A( W! H; P
# M) y* @: e& A$ P) _ |
zan
|