在线时间 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 ~, j% D* b( j% [8 R% L
最短路径中的Floyd算法(弗洛伊德算法)的较为严格的冥想证明过程:
9 ^. f: d' p+ ^5 j0 |# J 仍用数学归纳法,
8 U5 U4 U& E1 d9 K4 d# a% y7 L 假设N<=n时,弗法正确。具体值我就不验证了。4 h+ _: \5 p$ [
当N=n+1时,假设最新一点最后一点为K,此时K=n+1,& j* L' X" a# a9 R
三重循环中,我们都把K排在循环中的最后一位。! D% e2 ?. f3 y: a
现在我们要证明的是,加上新点K点后,经过弗法的三重循环,原来的n点之间仍是最短距离,但是n点与K点之间的短离是不是最短的就不知的。! N( Y2 L: B% U& V' u+ S. ?
如果原来的n点的某两点之间最短距是与K点无关的,显然经过三重循环后,就是最短距了。* O, t, t9 X" @. c
如果原来的n点的某两点之间最短距是经过K点的,假设P1,P2,P3,,,Pk-1,Pk,Pk+1,,,Pm本应是实边最短距,不是虚边最短距。9 J3 I/ \- B- V' S! J9 a$ q4 b8 r5 d+ i
那么由弗法知,P1,P2,P3,,,Pk-1与PK+1,,,,Pm已是连通的最短路了。且Pk-1Pk与PKPK+1是原始实边,不是虚边。7 O2 t5 d5 h4 B, { Y" |
经过最外层最后一次循环的松驰操作,必能连通P1,P2,P3,,,Pk-1,Pk,Pk+1,,,Pm。
! `6 y+ ^ {5 D 所以得证:加上新点K点后,经过弗法的三重循环,原来的n点之间仍是最短距离,但是n点与K点之间的短离是不是最短的就不知的。
" q- Q' F( ?4 w- Y 由于对称性,将K点置入内部,把P1点放到最后一点,原来的循环结果不会变的,
; x9 p3 a6 S1 P$ z, X2 x9 X! M( i; o 所以三重循环后,K点与原来的点(除P1外)的最短距,就可以求出来了。
3 C; O% T K( \" T0 e5 F 由于对称性,将K点置入内部,把P2点放到最后一点,原来的循环结果不会变的,+ y& [- v9 T6 {1 T( C; c; G
所以三重循环后,K点与原来的点(除P2外,但P1不除外)的最短距,就可以求出来了。
& v7 Z4 X! `: ? 所以K点与原来的n个点的最短距,也就已经求出来的了,仍是原来的三重循环也。
* `' s- d D# U 这样,弗法就可以较为严格的证明了。% F7 l" m; Z4 \$ I7 P$ t3 _ j
=========================================% p; B/ M/ H) t% {0 ]( Y) g
为何假设P1,P2,P3,,,Pk-1,Pk,Pk+1,,,Pm本应是实边最短距,不是虚边最短距???
. c1 p" X% e$ M) E3 ^1 z 如果是虚边最短距,也可以转化成实边最短距,然后结果一样的。" G6 v( w* W( A H+ p
=========================================
& |* k! s' Y7 Z% N, x- x) O
H+ u: L" v1 K" S( J 3 ~* G: H5 c+ L' Y
zan