在线时间 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
自我介绍 软件开发工程师
=========================================) ^4 ~; t4 |9 L% R8 z* l3 q
最短路径中的Floyd算法(弗洛伊德算法)的较为严格的冥想证明过程:$ w# Y" A& \) E" `' m; q* w
仍用数学归纳法,) m* V; K( W3 a' p( U& \3 T+ @1 W
假设N<=n时,弗法正确。具体值我就不验证了。
6 m/ V$ D- N4 m1 }; K+ l6 K8 k+ a 当N=n+1时,假设最新一点最后一点为K,此时K=n+1,8 }9 J' [3 n8 f$ K3 g) f
三重循环中,我们都把K排在循环中的最后一位。
6 ^0 n# w3 p& L# s 现在我们要证明的是,加上新点K点后,经过弗法的三重循环,原来的n点之间仍是最短距离,但是n点与K点之间的短离是不是最短的就不知的。
0 g8 P) X' V4 M9 C 如果原来的n点的某两点之间最短距是与K点无关的,显然经过三重循环后,就是最短距了。5 v9 I* ~! D9 q
如果原来的n点的某两点之间最短距是经过K点的,假设P1,P2,P3,,,Pk-1,Pk,Pk+1,,,Pm本应是实边最短距,不是虚边最短距。) G. G9 |6 ]6 i) ^8 z; w' x Y( y' N9 \
那么由弗法知,P1,P2,P3,,,Pk-1与PK+1,,,,Pm已是连通的最短路了。且Pk-1Pk与PKPK+1是原始实边,不是虚边。/ M& [; V9 p& x1 {9 {! N% p
经过最外层最后一次循环的松驰操作,必能连通P1,P2,P3,,,Pk-1,Pk,Pk+1,,,Pm。
( o0 X+ Z, H. s 所以得证:加上新点K点后,经过弗法的三重循环,原来的n点之间仍是最短距离,但是n点与K点之间的短离是不是最短的就不知的。) I9 f' \( ?0 s2 o6 u# x4 ]3 m1 x
由于对称性,将K点置入内部,把P1点放到最后一点,原来的循环结果不会变的,
9 u$ G7 h" n3 J. } 所以三重循环后,K点与原来的点(除P1外)的最短距,就可以求出来了。
5 M! v @- g/ f+ ?5 }! H0 ] 由于对称性,将K点置入内部,把P2点放到最后一点,原来的循环结果不会变的,+ F$ E& i' d& `9 C
所以三重循环后,K点与原来的点(除P2外,但P1不除外)的最短距,就可以求出来了。& `) Y3 T4 u/ U0 S8 F( m+ u [
所以K点与原来的n个点的最短距,也就已经求出来的了,仍是原来的三重循环也。
, K* G8 r' T! W& k& l 这样,弗法就可以较为严格的证明了。; h, ]- W% u0 |/ K9 Q4 C% s
=========================================0 `# U/ T8 c8 _, t" w0 w) c) r9 [
为何假设P1,P2,P3,,,Pk-1,Pk,Pk+1,,,Pm本应是实边最短距,不是虚边最短距???
1 E! m# x! n; K' P 如果是虚边最短距,也可以转化成实边最短距,然后结果一样的。- q5 K( i4 k2 H9 _6 F/ Q; `
=========================================
! q% [: l" p1 x- ?
4 C: `3 T4 E% B3 j, @* W5 Q - z! w7 B+ ]) M0 n( N( a
zan