Najkratšia cesta, SA 2
Program{v ekvacionálnej schéme} P2
declare H: array[0..N?1, 0..N?1, 0..N]
always
? || i, j :: H[i, j, 0] = W[i, j] ?
? k :: ? i, j :: H[i, j, k +1] =
min(H[i, j, k], H[i, k, k] + H[k, j, k]) ??
? || i, j :: d[i, j] = H[i, j, N] ?
Program s explicitnou sekvencializáciou:
PASCAL-like program PP (sekvencializácia P1)
for x := 0 to N?1 do
for u := 0 to N?1 do
for v := 0 to N?1 do
d[u,v] := min(d[u,v], d[u,x] + d[x,v])
Indexy v PP sú modifikované nasledujúcim spôsobom: (x,u,v):=(x,u,v)+1, kde (x,u,v) je trojmiestne císlo v N-árnej sústave
Program P3 {Floyd?Warshall}
declare x, u, v: int
initially ? || i, j :: d[i, j] = W[i, j] ? || x, u, v = 0, 0, 0
assign
d[u, v] := min(d[u, v], d[u, x] + d[x, v])
|| (x, u, v) := (x, u, v) + 1 if (x, u, v) ? (N ? 1, N ? 1, N ? 1)