Академический Документы
Профессиональный Документы
Культура Документы
Algoritmo de Floyd
Algoritmo de Floyd
Encaminamiento
Algoritmos para encontrar el camino ms corto:
Bellman - Ford. Dijkstra. Floyd - Warshall.
Matriz de rutas.
[Rij] Siguiente nodo en la ruta del nodo i al nodo j.
Matriz de costes.
[Dij] Coste o distancia total de la ruta del nodo i al nodo j.
Algoritmo de Floyd
Algoritmo de Floyd
Nmero de iteraciones igual al nmero (N) de nodos. En la iteracin i se coloca el nodo i como nodo intermedio de todas las rutas. La ruta se actualiza comparando el camino anterior y el nuevo: Djk(i) = min { Djk (i-1), Dji (i-1) + Dik (i-1) }
Algoritmo de Floyd
Algoritmo de Floyd
Ejemplo
2 5
2
2
3
3 1
1
1
6
2
1 1 R= 1
2 3 4 3 4 2 4 5 6 2 3 5 3 4 6 3 5
0 2 5 1 2 0 3 2 5 3 0 3 1 5 D= 1 2 3 0 1 1 1 0 2 5 2 0
Algoritmo de Floyd 4
Algoritmo de Floyd
Iteracin 1
Se permite el nodo 1 como nodo intermedio.
1 0 0 D (jk) = min D (jk ) , D (j1 ) + D1(k0 )
}
0 2 5 1 2 0 3 2 5 3 0 3 1 5 = 1 2 3 0 1 1 1 0 2 5 2 0
( D1k0 ) (0 D2k )
(0 D21 )
D ( 0)
2 0 3 2
0 2 5 1 2 2 4 7 3
Algoritmo de Floyd
Algoritmo de Floyd
Iteracin 1.
Nodo 3 al resto de nodos:
0 (0 D3(1) = min D3(k ) , D31 ) + D1(k0 ) k
(0 D31 )
{ { { {
} } } }
D ( 0)
0 2 5 1 2 0 3 2 5 3 0 3 1 5 = 1 2 3 0 1 1 1 0 2 5 2 0
D1(k0)
0 D3(k )
0 2 5 1 2 0 3 2 5 3 0 3 1 5 ( 0) D = 1 2 3 0 1 ( 0) 1 1 0 2 D41 5 2 0 ( 0)
D1(k0)
( D40) k 0 D5( k ) ( D60) k
D51
(0 D61 )
Algoritmo de Floyd
Algoritmo de Floyd
Iteracin 2.
2 1 ( D (jk ) = min D (jk) , D (j12) + D21) k
Iteracin 3.
D ( 3)
D ( 2)
0 2 5 1 2 0 3 2 5 3 0 3 1 5 = 1 2 3 0 1 1 1 0 2 5 2 0
R (3)
Algoritmo de Floyd
Iteracin 4. 4 3 ( D (jk ) = min{D (jk ) , D (j 3) + D43) } ... 4 k Iteracin 5. 5 4 4 D (jk ) = min{D (jk ) , D (j 4 ) + D5( k ) } ... 5 Iteracin 6.
6 5 ( D (jk ) = min D (jk ) , D (j 5) + D65) 6 k
D (6)
0 2 3 = 1 2 4
2 3 1 2 4 0 3 2 3 5 3 0 2 1 3 2 2 0 1 3 3 1 1 0 2 5 3 3 2 0
R (6)
1 5 = 1 4 5
2 4 4 4 4 3 4 4 4 2 5 5 5 2 5 5 5 4 3 4 6 5 5 5 5
Algoritmo de Floyd 8