co od for alle (i,j) do cij(0):= dij od ; for k:=1 to n do for alle (i,j), do od od
Korrektheit:
Zu zeigen: cij(k) des Algorithmus = cijk (damit sind für
k=n die Kosten der kürzesten Pfade durch cij(k)
gegeben).
Beweis:
Richtig für k=0. Induktionsschluß: Ein kürzester Pfad von vi
nach vj mit inneren Knoten enthält
entweder vk+1 gar nicht als inneren Knoten, oder er enthält
vk+1 genau einmal als inneren Knoten. Im ersten Fall wurde dieser
Pfad also bereits für cij(k) betrachtet, hat also Länge
. Im zweiten Fall setzt er sich aus einem
kürzesten Pfad P1 von vi nach vk+1 und einem kürzesten
Pfad von P2 von vk+1 nach vj zusammen, wobei alle inneren
Knoten von P1 und P2 sind. Also ist die
Länge des Pfades =ci,k+1(k)+ck+1,j(k).