Floyd Proof
设有向图G<V,E>, 其中V为点集,E为遍集,n为点的数量,考虑其中的一个子集C{1, 2, 3, 4, ..., k} (k <= n), 设点对i, j∈V。考虑从i到j的中间点全部取自C,设p为其权重最小的路径。有两种情况讨论:
当k不是路径p上的中间结点时,则路径p上的所有结点属于集合B{1, 2, 3, 4, ... k - 1}, 因此,由结点i到结点j的最短路径经过中间点取自集合B同样也取自集合C, 即:
\(d\binom{k}{ij} = d\binom{k - 1}{ij}\)
当k是路径p上的中间结点时,则从i到j的最短路可以表示为
\(d\binom{k}{ij} = d\binom{k-1}{ik} + d\binom{k - 1}{kj}\)
上述式子中的k-1为中间点取自集合{1, 2, 3, 4, ... k - 1}
综上所述:
\(\begin{equation}d\binom{k}{ij}=\left\{\begin{aligned}w_{ij}\quad k = 0\\min(d\binom{k - 1}{ij}, d\binom{k - 1}{ik} + d\binom{k - 1}{kj})\quad k >= 1\\\end{aligned} \right.\end{equation}\)
当中间点集为{1,2,3,4,...,n}时,也就是k=n时,含d矩阵即为结果。