7 W( S; A4 {/ W" M我在用实际顶点代入验证的基础上证实如下现象,无法用理论解释,个人感到弗洛伊德算法象哥德巴赫猜想一样,无法证明的。 $ ^0 h) [5 Y4 }5 G原来的弗洛伊德算法是: $ G7 E& R9 F6 u" |* T8 pFor k:=1 to n9 d N/ d8 |+ K8 J5 n6 \) @" `9 D
For i:=1 to n, p9 H! g" ]% U% Y. `* O
For j:=1 to n 6 X& M3 z0 A' R) XIf D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j]; 5 V6 j8 M! U! Q+ x& X我改成下面的形式,结果具体值代入仍是正确的,当然无法证明:# V6 D6 ^7 v2 Z7 j5 v2 e
For j:=1 to n 0 n( d+ t7 g3 a: k/ JFor i:=1 to n ; |* X1 f; U+ j3 o3 ]For k:=1 to n; r1 [5 H2 J0 K/ r7 ~
If D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j]; ; s8 M( z$ j5 v0 t我再改成如下形式,结果仍是正确的:, k4 _4 g% H F* ~ G% Y
For j:=1 to n' Z" t4 v- z- d( i5 Q9 M4 N
For i:=1 to j-13 v# ~) R% j% N G* W4 I' o
For k:=1 to n - {- t ]1 ?# W3 ?5 S* Q& xIf D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];3 Z/ `- u* u! S+ H H* Q' C
如果我改成如下形式,结果出错,不行了:& ~/ m' w7 t2 u) q/ g W( @, ~5 R
For j:=1 to n+ Y+ F: j3 I+ e; ?+ @+ h
For i:=j+1 to n. i$ b: I2 R7 _3 s1 w
For k:=1 to n* a+ d' d& E- j$ M- J/ K
If D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];# ]3 U" a$ C0 h3 P+ A
无法证明,只能用具体值来代入验证。 : q6 C( ?' m6 Y1 d8 L& A+ X4 k% P. t6 X& P9 r2 p( b1 K! ~