在线时间 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
自我介绍 软件开发工程师
=========================================
5 Z6 C& Y8 p# I; k! t 最短路径中的Floyd算法(弗洛伊德算法)的较为严格的冥想证明过程:' V M/ w5 n6 n5 G# M
仍用数学归纳法,
& t" `" i/ g+ m' _! p5 ]2 S( x i1 x 假设N<=n时,弗法正确。具体值我就不验证了。
, Z0 N2 \: D) U 当N=n+1时,假设最新一点最后一点为K,此时K=n+1,: i" X+ q% B+ I2 j; b' r
三重循环中,我们都把K排在循环中的最后一位。# I1 Z: z1 z4 n. u Z @) G6 a
现在我们要证明的是,加上新点K点后,经过弗法的三重循环,原来的n点之间仍是最短距离,但是n点与K点之间的短离是不是最短的就不知的。/ l6 W! C& b v7 M
如果原来的n点的某两点之间最短距是与K点无关的,显然经过三重循环后,就是最短距了。
: c/ u$ F% P) H7 P 如果原来的n点的某两点之间最短距是经过K点的,假设P1,P2,P3,,,Pk-1,Pk,Pk+1,,,Pm本应是实边最短距,不是虚边最短距。
- ]- J5 H _( ~ N. q 那么由弗法知,P1,P2,P3,,,Pk-1与PK+1,,,,Pm已是连通的最短路了。且Pk-1Pk与PKPK+1是原始实边,不是虚边。* g z3 G* z# N. z
经过最外层最后一次循环的松驰操作,必能连通P1,P2,P3,,,Pk-1,Pk,Pk+1,,,Pm。
3 i6 }/ \+ L3 b1 ?/ p 所以得证:加上新点K点后,经过弗法的三重循环,原来的n点之间仍是最短距离,但是n点与K点之间的短离是不是最短的就不知的。
* b" B6 u4 |4 {) A5 L/ S 由于对称性,将K点置入内部,把P1点放到最后一点,原来的循环结果不会变的,
3 _. |; M; R j' Z 所以三重循环后,K点与原来的点(除P1外)的最短距,就可以求出来了。/ O. i& ?4 e7 o$ r8 M4 |2 e
由于对称性,将K点置入内部,把P2点放到最后一点,原来的循环结果不会变的,8 [0 U" z& Y9 i& c/ ]
所以三重循环后,K点与原来的点(除P2外,但P1不除外)的最短距,就可以求出来了。3 {8 k' Q9 D4 Z) x; A; a$ \/ e9 d
所以K点与原来的n个点的最短距,也就已经求出来的了,仍是原来的三重循环也。
& r4 T [6 P9 C, F3 k) _/ y8 Z 这样,弗法就可以较为严格的证明了。
3 V% ~7 R- r8 j# a0 `: ]+ ?- F/ K =========================================3 q1 G5 ~: @6 d- J9 R; o
为何假设P1,P2,P3,,,Pk-1,Pk,Pk+1,,,Pm本应是实边最短距,不是虚边最短距???4 e4 R- F. K2 L Z1 T: c& z
如果是虚边最短距,也可以转化成实边最短距,然后结果一样的。
% c" |% Z" f' E! Q =========================================
9 l7 i0 t8 e& o; I
% g& q! j+ Y5 c+ J k& B7 u 4 ~# x+ {6 T% x/ ]! \4 G+ C
zan