Floyd-Warshall brukes til å finne den korteste veien mellom alle noder i en vektet rettet graf ved bruk av dynamisk programmering og vektmatriser og kjører i
Vi antar at det IKKE er negative sykler derimot er negative kanter ok.
All pairs shortest path.
Input: En vektet, rettet graf
Output: En
Returnerer en forgjengermatrise
- Takes in matrix
$W$ ($n \times n$ ) - For each row
$k$ in matrix$W$ : Get the matrix$D^{k}$ - For each vertex
$i$ : for each vertex$j$ : find shortest path from$i$ to$j$ - Set point in matrix equal to that path
- Return altered matrix
In-place: Ja, alt skjer inne i matrisen.
Floyd Warshall | |
---|---|
Complexity | |
Recommended graph size | Small |
Good for APSP* | Yes |
Can detect negative cycles | Yes |
SP on graph with weighted edges | Bad in general |
SP on graph with unweighted edges | Bad in general |
*APSP = All Pairs Shortest Path
Pensumvarianten i CLRS av FW kxsrever
Denne endringen resulterer i en forbedret minneallokasjon og vi går fra
Best case | Average case | Worst case | Minne |
---|---|---|---|