- 在线时间
- 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
- 自我介绍
- 软件开发工程师
 |
========================================= N6 e ]. X' A7 }+ v5 z3 H0 l
最短路径中的Floyd算法(弗洛伊德算法)的较为严格的冥想证明过程:
- n# N9 F9 n" v5 P% B v+ b9 o" L仍用数学归纳法,: r) \" d- Y: F' h) S$ ?
假设N<=n时,弗法正确。具体值我就不验证了。
( \9 t! c6 E+ Q# P- L9 A. u; S; U当N=n+1时,假设最新一点最后一点为K,此时K=n+1,) G+ O6 y2 X) D8 R9 r
三重循环中,我们都把K排在循环中的最后一位。" q0 v; m$ A7 ?6 Y- }8 i9 j2 b
现在我们要证明的是,加上新点K点后,经过弗法的三重循环,原来的n点之间仍是最短距离,但是n点与K点之间的短离是不是最短的就不知的。& u! V" T& Q. n' { t+ Z5 k( p p$ @
如果原来的n点的某两点之间最短距是与K点无关的,显然经过三重循环后,就是最短距了。
5 p" ^ R* e+ A! |如果原来的n点的某两点之间最短距是经过K点的,假设P1,P2,P3,,,Pk-1,Pk,Pk+1,,,Pm本应是实边最短距,不是虚边最短距。% ?. p6 L w6 p1 v" r
那么由弗法知,P1,P2,P3,,,Pk-1与PK+1,,,,Pm已是连通的最短路了。且Pk-1Pk与PKPK+1是原始实边,不是虚边。' m7 Q; \0 v: Y4 ~0 S( s% P. Q% o
经过最外层最后一次循环的松驰操作,必能连通P1,P2,P3,,,Pk-1,Pk,Pk+1,,,Pm。
4 a8 v7 T6 G- P( {: i0 X v& f所以得证:加上新点K点后,经过弗法的三重循环,原来的n点之间仍是最短距离,但是n点与K点之间的短离是不是最短的就不知的。
& X' X$ i! i3 l+ J由于对称性,将K点置入内部,把P1点放到最后一点,原来的循环结果不会变的,
1 t: `1 ^, y! f2 v, j所以三重循环后,K点与原来的点(除P1外)的最短距,就可以求出来了。6 A. a. q1 T6 w# a3 n' @
由于对称性,将K点置入内部,把P2点放到最后一点,原来的循环结果不会变的,
5 S6 w2 H% b/ i* {7 t所以三重循环后,K点与原来的点(除P2外,但P1不除外)的最短距,就可以求出来了。" _# v. y( [9 L i& R" w8 {+ P
所以K点与原来的n个点的最短距,也就已经求出来的了,仍是原来的三重循环也。
" v$ f+ ^' M+ x这样,弗法就可以较为严格的证明了。( }! F2 m9 i" W! f) Z
=========================================
1 x+ Z- \1 t( P3 V为何假设P1,P2,P3,,,Pk-1,Pk,Pk+1,,,Pm本应是实边最短距,不是虚边最短距???) ]: F) K! ^* X) Q) Z
如果是虚边最短距,也可以转化成实边最短距,然后结果一样的。 i' u# V' A% F" t
=========================================6 H/ W4 G! z; T: P/ _& s& b, D% E1 Z
$ @. o [7 X% ~9 ~' j/ A" p5 {6 F, x
* o0 ]7 W) W2 Q0 G' m9 o% |1 C% F7 i- V |
zan
|