Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function [W,P] = leenknegt_floyd(M)
- //valideer M eerst
- [r,c] = size(M)
- if r ~= c then
- error("Het aantal rijen is niet gelijk aan het aantal kolommen!")
- end
- W = M
- P = zeros(r,c)
- aantal = 0
- //het floyd algoritme uitvoeren
- for via = 1:r do
- for i = 1:r do
- //als i gelijk is aan via overslaan
- if via == i then
- continue
- end
- //als D(i,via) gelijk is aan inf ook overslaan omdat niets korter kan dan via i -> via
- if W(i , via) == inf then
- continue
- end
- //kijken of het punt D(i,j) niet via het punt via kan.
- for j = 1:c do
- //als i == j ook skippen want dan zeg je kan er nog een kortere weg van 1 naar 1 via 1
- //of als j == via dan ook skippen want dan vraag je je af of je kortere weg kan vinden van 2 naar 1 via 1
- //of als er geen verbinding is tussen via en j W(via,j) is oneindig
- if (i == j) | (j == via) | (W(via,j) == inf) then
- continue
- end
- //kijken of het korter is via het punt via
- som = W(i,via) + W(via,j)
- if som < W(i,j) then
- W(i,j) = som
- P(i,j) = via
- end
- end
- end
- end
- endfunction
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement