在线时间 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
自我介绍 软件开发工程师
=========================================
$ |: {& M( x2 h 最短路径中的Floyd算法(弗洛伊德算法)的较为严格的冥想证明过程:% G1 I8 E& u% @3 t' a
仍用数学归纳法,
s% b, F5 `. t" j* h' V6 h 假设N<=n时,弗法正确。具体值我就不验证了。
0 I( A; P& h" B( h8 y0 h' s! [ 当N=n+1时,假设最新一点最后一点为K,此时K=n+1,4 q0 d- V; ?+ J9 B( S6 y# k
三重循环中,我们都把K排在循环中的最后一位。7 ?' z1 }. P4 u
现在我们要证明的是,加上新点K点后,经过弗法的三重循环,原来的n点之间仍是最短距离,但是n点与K点之间的短离是不是最短的就不知的。
% M$ U5 U2 i& \) ]9 \8 L- { 如果原来的n点的某两点之间最短距是与K点无关的,显然经过三重循环后,就是最短距了。 O, O4 O3 Q/ R2 Q1 r8 H* l+ C
如果原来的n点的某两点之间最短距是经过K点的,假设P1,P2,P3,,,Pk-1,Pk,Pk+1,,,Pm本应是实边最短距,不是虚边最短距。9 G% m* k6 h' E+ k; J1 ^0 ^
那么由弗法知,P1,P2,P3,,,Pk-1与PK+1,,,,Pm已是连通的最短路了。且Pk-1Pk与PKPK+1是原始实边,不是虚边。$ r2 q# J1 n; B e/ X/ z
经过最外层最后一次循环的松驰操作,必能连通P1,P2,P3,,,Pk-1,Pk,Pk+1,,,Pm。/ l1 D! o3 u/ n! z7 D
所以得证:加上新点K点后,经过弗法的三重循环,原来的n点之间仍是最短距离,但是n点与K点之间的短离是不是最短的就不知的。* H: k" M# O2 l: o! h
由于对称性,将K点置入内部,把P1点放到最后一点,原来的循环结果不会变的,- G8 {! F3 E9 ~( Z+ O) |
所以三重循环后,K点与原来的点(除P1外)的最短距,就可以求出来了。2 A9 G! ?0 \3 E( m5 Q
由于对称性,将K点置入内部,把P2点放到最后一点,原来的循环结果不会变的,- v1 ~5 _2 [* Q9 M6 Y
所以三重循环后,K点与原来的点(除P2外,但P1不除外)的最短距,就可以求出来了。
/ x& M* {. u& U/ f K 所以K点与原来的n个点的最短距,也就已经求出来的了,仍是原来的三重循环也。# U. ?2 d; q, J( g( H5 l
这样,弗法就可以较为严格的证明了。
8 {% h4 W; _4 O =========================================5 B/ ~9 ]! L7 ?! _1 @
为何假设P1,P2,P3,,,Pk-1,Pk,Pk+1,,,Pm本应是实边最短距,不是虚边最短距???# _* `, G0 {& ~* j
如果是虚边最短距,也可以转化成实边最短距,然后结果一样的。
( ?; e9 y! O+ n- Y# A% u =========================================
9 k/ ?" D* d: R0 Q2 F$ v
) c- Z- p3 G3 g: O& z7 D / v& D( G4 V, b9 [1 ]2 p
zan