QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 7955|回复: 32
打印 上一主题 下一主题

[问题求助] 最短路径算法的弗洛伊德算法的数学归纳法冥想证明 Version 1.0

[复制链接]
字体大小: 正常 放大
释永思        

23

主题

13

听众

146

积分

升级  23%

  • TA的每日心情
    难过
    2016-5-14 14:04
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    自我介绍
    软件开发工程师

    社区QQ达人

    跳转到指定楼层
    1#
    发表于 2015-9-7 11:12 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    本帖最后由 释永思 于 2015-9-23 16:16 编辑
    : A: q- m( y; x0 P3 ]1 q9 B& F3 m7 P1 p; l6 x
    最短路径算法的弗洛伊德算法的数学归纳法冥想证明 Version 1.0
    ( Y  @' T- p( u$ i( _
    ; h5 j) f+ {2 f) Y4 W" |                                作者:李均宇(李恒星)  2015.09.074 W5 `4 L. g# v; {; b$ S8 b, ?0 [
    * L2 N' ~5 l7 y  {; f
       我二十年前已了解迪杰斯特拉算法,最近忽有兴趣开发了一款最短路径算法小软件EXE,了却二十年前的心愿。余庆未了,网上了解了还有多种方法,如A-Star,johnson,bellman,SPFA等算法,其中最感兴趣的是弗洛伊德算法。百度了,看了很多源码,大同小异。但对弗洛伊德算法原理,网上讲的,我看后也觉似懂非懂。利用抗战70周年纪念日放假期间,我闭关冥想,想到了N步的方法,但冥想出来的源码,总比网上讲的多一层循环。于是继续冥想,想到了要用数学归纳法来证明弗洛伊德算法。百度下,好似网上暂没这方面资料,于是共享出来,与诸君分享,不知对错也,网上讲到的什么迭代法,总是不太对似的,弗法可能并没有这么简单的:( b' l4 i& @4 J; C: z/ m
    假设顶点数为N,
    ! H! k6 E, G! P; D* r$ V# Y    N=4,5,6时,具体的弗法正确性,我就不想验证了。
    ) t! u/ m# x, b) @) \假设N<=n时,弗法是正确的,如何证明N=n+1时,弗法仍是正确的?
    & h: O, @5 s- l. T) A    先研究下N=n弗法正确时的特性。" a( R; I8 p. j& u
    N=n时,所有的n个顶点两两组合的边D[i,j],不论虚边实边(直接的称实边,要通过其他顶点的叫虚边,我如此定义先),全部有值,且为最小值最短路径。N<n时,也就是最外层循环,每到一个值K时,此值K的弗法全是正确。" K6 ^( }' Z) h( l+ Y
    当N=n+1时,新加一点,称最后一点K。
    7 Z; T: u1 L' |9 X: M. c令最后一点K总在循环中排在最后一位,三重循环中都是排在最后一位。
    7 R) Q+ _2 S5 b1 {4 a令最外层循环为k,中间层循环为j,最内层循环为i。: C3 C1 M7 \$ [6 |8 k' s
    定理一:
    + }2 \1 Q. |3 b. r* _/ }   最后一点k若改变i与j之距D[i,j],则所有经过i与j之最短路必同步更新且不分先后。0 ~& `5 w3 o+ u/ D
    证明:
    3 M- P( b  O! j* j0 F# O! `6 B  假设点x经过最短路径D[i,j],D[i,x]=D[i,j]+D[j,x]或D[i,x]=D[i,j]-D[j,x]。  R2 j/ |$ z; T: L
    D[i,j]已被替换成为了D[i,k]+D[j,k],而D[j,k]+D[j,x]>=D[k,x]或D[j,k]+D[j,x]>=D[k,x].
    ! }; U2 s( f, P: Y$ A所以D[i,x]>=D[i,k]+D[k,x],所以x点必被更新,也就是执行松驰操作。 0 q( r, R3 F( \% w
    定理二:# Q3 J5 h0 ~. W# x9 Q
       最后一点k若改变i与j之距D[i,j],则经过i与j之最短路必不经过最后一点k。/ H1 b: _: ^3 d- W0 |
    证明:
    ( C1 Q$ g, ]5 s/ [+ c   由定理一知,如果经过最后一点k,则D[i,k]本身要变,但正是用D[i,k]来执行松驰操作的,所以矛盾。7 W' J! }! Y! t; q' ^: f1 ~
    " A5 m1 K2 n9 P, n
    定理四:
    6 ]1 g* ?& U5 C/ i   最后一点k与任一点之连线D[i,k]或D[j,k]必非无穷大,即必已连接(不论虚边实边)。5 B! P! r7 W2 @" S! X% P1 |5 y* f2 z  t
    证明:
    + }- D6 A: `7 ]* V   k为最内层循环点最后一位。取i,j最小者位于中间层循环,最大者位于最外层循环。5 ~6 D/ l3 b. j- h' L! R
    此为max(i,j)<n之弗法,弗法已假设N<=n时全成立,现在求证N=n+1时情况。
    ( I1 |/ ~4 F& Z9 n9 q. B可知i,j必连通,即D[i,j]必非无穷大。
    / o" o1 t9 O& F( y! {5 e4 E" ID[i,k],D[j,k]两个不可能都是无穷大,这可以取min(i,j)来递归而知,min迭代到一条实边则可止,或本身数学归纳法内部要嵌套另一个数学归纳法来证明其中小引理。% e- Z6 x0 @0 q# ]- \
    即知D[i,k],D[j,k]必有一个是连通的,D[i,j]也是连通的,从而三点必全连通,必非无穷大。6 e9 B" t' i- n# a; ?* H% w3 |
    定理五:, c' Z* n8 Z/ D6 L# l
       与k相连已经全是最短路。
    / \; e6 U6 ?' s' I% _' b证明:
    ' j8 \1 s, u( S9 A3 f   因为与最后一点k相连的,全部没有变动,全部已非无穷大,所以经过k点的必是最短路。
    4 ~6 |8 G; _+ n+ R: e
    4 y' j( v1 p. M所以新增一点k,由定理五知,当最外层循环到最后一位k时,所有经过k点的已是最短路。
    9 C( F8 k0 Z- |* z8 x' J, a所有对原来N=n时的弗法最短路的调整松弛操作,全能同步更新经过相关点的最短路,也就是原来的n个点的弗法,后来仍是最短路。
    . f4 q6 e0 }- Y( r" g: x! G4 d* L则N=n+1时,全部三重循环后,全部仍是最短路。
    2 f! S1 Z% p" r( r& Z+ p3 N0 n$ a由数学归纳法知,三重循环的弗洛伊德算法是正确的。' f$ H& y& E! }% u  {$ w5 z
    ///////////////////////////////////////////////////////////////////////////////////////
    3 ]" K' ]9 Y' h# \5 x# F关于弗洛伊德算法的新证明:2015.09.23
    8 D; ]% S$ [$ m# A. A+ v" y  `* g+ b
    + L1 d; r8 @* L6 {经过弗法的三重循环后,任意两点之间的距离已是最短路。
      P/ g# G) h; J( e仍用数学归纳法,假设N <= n时,弗法是正确的,要证明,N = n+1时,弗法仍是成立的。
    ) N# Y5 C1 c! N设k = n+1是最后一点。
    # ?: S( D& H7 Y/ S& ~1 O如果任意两点间的最短路径结过的顶点数是小于k的,那么根据假设知弗法正确是最短路的。
    : e. g" c& Y* J1 h如果任意两点间的最短路径结过的顶点数是等于k的。那么知摘去最后3个顶点即只剩下(k-3)个点时,是N <= n的情形。) d7 E5 k/ s4 Z1 D" {: @( s# q
    起点是a点,终点是b点,与k点直接相连的是c点,d点 。8 l& |! B. D! O" E( E9 C$ j$ c5 x$ Q9 x
    当最外层第三重循环循环到最后三点k,c,d时,ac,bd已经连通了是N <= n的弗法情形。* q4 F; H* h6 ]" Q# T+ |: r' W
    k,c,d三点,无论哪个是先是后的组合,都必定能够令ab连通且最短路。& {( S* z% _0 Z: S: p$ R$ n
    例如k点连通cd,c点连通ad,d点连通ab。
    . E# m) ~' ?% ]6 w5 n又如c点连通ak(ck不用c点连通,因为原始边长早已有数值早已连通),k点连通ad,d点连通ab。) Z3 r2 k3 _) t
    所以命题得证。
    ; o) P5 \" v- [! Z5 R
    # R) V% x& m) X6 Y0 c/ Q. F8 {  X
    " g/ x) D1 |6 Z" _7 K
    ' u7 R' ?) F; p0 O/ r$ `/ d& \2 T& P6 f7 j, o3 c. y5 g" a5 g

      W" B- t3 n, L4 x( @$ T: y. z3 C% t& b( I) Z$ f3 |. u7 ?% V4 S
    ! w9 s; A4 I" B' N

    / T6 J* f8 i* z* I) J
    / [+ U/ @! D9 A/ J/ z0 I
    5 P- A' W: y, a, P, F7 `+ l
    6 X6 z6 U* G3 z* i- j" S% M$ {5 W7 z; V3 \9 @+ f- e# F) ]
    ; x( @, ?, @$ r' x

    1 z6 v+ [" Y1 [3 C5 `: s) }: ]3 X  ^2 D4 U
    9 n: c6 Y8 Q8 G/ j, ]- V" {
    . }" H7 T9 `2 a& u3 H. F- j
    9 t% h% `( a6 B! r

    $ s/ x: |' @4 `6 r, f+ \$ P
    " V6 u9 r3 s8 h% L
    / C) l1 F5 ?- }7 H, S  N$ B  M8 I3 ^9 ?" z2 G" C  ~- _% |; M! f3 N( V% A1 z
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    1

    主题

    13

    听众

    128

    积分

    升级  14%

  • TA的每日心情
    开心
    2024-3-22 15:49
  • 签到天数: 43 天

    [LV.5]常住居民I

    社区QQ达人

    回复

    使用道具 举报

    361

    主题

    13

    听众

    2078

    积分

    风靡全球

  • TA的每日心情
    开心
    2016-11-15 12:14
  • 签到天数: 102 天

    [LV.6]常住居民II

    网络挑战赛参赛者

    新人进步奖 发帖功臣 最具活力勋章

    回复

    使用道具 举报

    361

    主题

    13

    听众

    2078

    积分

    风靡全球

  • TA的每日心情
    开心
    2016-11-15 12:14
  • 签到天数: 102 天

    [LV.6]常住居民II

    网络挑战赛参赛者

    新人进步奖 发帖功臣 最具活力勋章

    回复

    使用道具 举报

    361

    主题

    13

    听众

    2078

    积分

    风靡全球

  • TA的每日心情
    开心
    2016-11-15 12:14
  • 签到天数: 102 天

    [LV.6]常住居民II

    网络挑战赛参赛者

    新人进步奖 发帖功臣 最具活力勋章

    回复

    使用道具 举报

    361

    主题

    13

    听众

    2078

    积分

    风靡全球

  • TA的每日心情
    开心
    2016-11-15 12:14
  • 签到天数: 102 天

    [LV.6]常住居民II

    网络挑战赛参赛者

    新人进步奖 发帖功臣 最具活力勋章

    回复

    使用道具 举报

    361

    主题

    13

    听众

    2078

    积分

    风靡全球

  • TA的每日心情
    开心
    2016-11-15 12:14
  • 签到天数: 102 天

    [LV.6]常住居民II

    网络挑战赛参赛者

    新人进步奖 发帖功臣 最具活力勋章

    回复

    使用道具 举报

    361

    主题

    13

    听众

    2078

    积分

    风靡全球

  • TA的每日心情
    开心
    2016-11-15 12:14
  • 签到天数: 102 天

    [LV.6]常住居民II

    网络挑战赛参赛者

    新人进步奖 发帖功臣 最具活力勋章

    回复

    使用道具 举报

    361

    主题

    13

    听众

    2078

    积分

    风靡全球

  • TA的每日心情
    开心
    2016-11-15 12:14
  • 签到天数: 102 天

    [LV.6]常住居民II

    网络挑战赛参赛者

    新人进步奖 发帖功臣 最具活力勋章

    回复

    使用道具 举报

    361

    主题

    13

    听众

    2078

    积分

    风靡全球

  • TA的每日心情
    开心
    2016-11-15 12:14
  • 签到天数: 102 天

    [LV.6]常住居民II

    网络挑战赛参赛者

    新人进步奖 发帖功臣 最具活力勋章

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-4-16 15:13 , Processed in 0.484998 second(s), 97 queries .

    回顶部