- 在线时间
- 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
- 自我介绍
- 软件开发工程师
 |
=========================================
3 i* a8 j; p; s6 t! H. b最短路径中的Floyd算法(弗洛伊德算法)的较为严格的冥想证明过程:. G) j. E+ B U- M; d l9 D. n
仍用数学归纳法,1 _" P; @/ {1 z6 n7 t1 s
假设N<=n时,弗法正确。具体值我就不验证了。+ z9 c7 C5 P L5 ]
当N=n+1时,假设最新一点最后一点为K,此时K=n+1, }+ o$ P9 s4 [) Q1 F' N6 g/ E) P7 |
三重循环中,我们都把K排在循环中的最后一位。, \8 m4 ~* h& p. J: J. ~2 [
现在我们要证明的是,加上新点K点后,经过弗法的三重循环,原来的n点之间仍是最短距离,但是n点与K点之间的短离是不是最短的就不知的。$ t( i* {* V( ], V! E% S
如果原来的n点的某两点之间最短距是与K点无关的,显然经过三重循环后,就是最短距了。
! S" O% w5 I$ P% `- B如果原来的n点的某两点之间最短距是经过K点的,假设P1,P2,P3,,,Pk-1,Pk,Pk+1,,,Pm本应是实边最短距,不是虚边最短距。% A" R) j2 g' i5 h8 ~; b
那么由弗法知,P1,P2,P3,,,Pk-1与PK+1,,,,Pm已是连通的最短路了。且Pk-1Pk与PKPK+1是原始实边,不是虚边。6 i, z1 L: k$ V! Q3 L6 i2 M, h
经过最外层最后一次循环的松驰操作,必能连通P1,P2,P3,,,Pk-1,Pk,Pk+1,,,Pm。
, T9 k6 }( D& R1 _所以得证:加上新点K点后,经过弗法的三重循环,原来的n点之间仍是最短距离,但是n点与K点之间的短离是不是最短的就不知的。6 d8 R( D8 P4 l1 y P( z
由于对称性,将K点置入内部,把P1点放到最后一点,原来的循环结果不会变的,8 c: S' ]. S" x9 p: Z9 ^/ l
所以三重循环后,K点与原来的点(除P1外)的最短距,就可以求出来了。
6 r! {+ r3 S5 s& N! f: K由于对称性,将K点置入内部,把P2点放到最后一点,原来的循环结果不会变的,+ v* v4 N* E; a+ s( F* [7 }
所以三重循环后,K点与原来的点(除P2外,但P1不除外)的最短距,就可以求出来了。
0 ]0 @, z6 ]2 {! S% l, ~9 r: j所以K点与原来的n个点的最短距,也就已经求出来的了,仍是原来的三重循环也。
3 q1 p3 f7 x. C5 V( `这样,弗法就可以较为严格的证明了。, x! g" m/ c0 D2 W4 Z
=========================================
5 p: L/ B6 @0 v) b为何假设P1,P2,P3,,,Pk-1,Pk,Pk+1,,,Pm本应是实边最短距,不是虚边最短距???
0 d3 q* ~* G/ K如果是虚边最短距,也可以转化成实边最短距,然后结果一样的。1 N$ W+ ?6 O" e0 j5 l, Y
=========================================( d4 z% g' B! D: v
# r- W0 G( ^) y0 L6 z7 c2 |4 H( k! x" f6 {5 ^" n
|
zan
|