Académique Documents
Professionnel Documents
Culture Documents
Existen varias soluciones a este problema y los algoritmos a aplicar dependen tambin
de la existencia de arcos con pesos o costes negativos en el grafo. En el caso de no
existir pesos negativos, sera posible ejecutar V veces el algoritmo de Dijkstra para el
clculo del camino mnimo, donde V es el nmero de vrtices o nodos del grafo. Esto
conllevara un tiempo de ejecucin de O(V^3) (aunque se puede reducir). Si existen
arcos con pesos negativos, se puede ejecutar tambin V veces el Algoritmo de Bellman-
Ford, una vez para cada nodo del grafo. Para grafos densos (con muchas conexiones o
arcos) esto conllevara un tiempo de ejecucin de O(V^4).
Floyd-Warshall (G)
Inicializar
si i=j o Dij= infinito entonces Pi,j = nulo sino Pi,j=i 'matriz de caminos
for k = 1 to V
for i = 1 to V
for j = 1 to V
Pi,j = Pk,j
fin
Robert W. Floyd
Robert W. Floyd, Algorithm 97 (Shortest Path). Communications of the ACM,
5(6):345, 1962.
Stephan Warshall, A theorem on boolean matrices. Journal of the ACM, 9(1):11-
12, 1962.
C. H. Papadimitriou, M. Sideri, On the Floyd-Warshall algorithm for logic
programs shows that the Floyd-Warshall algorithm is essentially unique, J. of
Logic Programming.
ejemplo de camino mnimo entre todos los pares
de nodos
Para la ejecucin de este algoritmo en Grafos no se requiere de la seleccin de ningn
nodo origen o destino. Como su nombre indica, el algoritmo proporcionar todos los
posibles caminos mnimos entre cada par de nodos origen y destino. En cierto modo es
equivalente a ejecutar n n veces el algoritmo de Dijkstra eligiendo a cada paso el
nodo origen y destino i-j correspondiente.
Grafos subrayar todos los arcos que formen parte de algn camino mnimo. Los
itinerarios o caminos entre pares de nodos aparecern descritos en el texto del anlisis.
Es importante comprender el significado de la matriz de distancias mnimas y de la
matriz de caminos.
N1\N2 0 1 2 3 4
0 0 8 9 5 7
1 11 0 1 2 4
2 11 19 0 16 4
3 9 3 4 0 2
4 7 15 6 12 0
Matriz de Caminos:
N1\N2 0 1 2 3 4
0 - 3 1 0 3
1 4 - 1 1 3
2 4 3 - 0 2
3 4 3 1 - 3
4 4 3 4 0 -
Listado de Caminos:
0 --(0)--> 0 =
0 --(8)--> 1 = 0, 3, 1
0 --(9)--> 2 = 0, 3, 1, 2
0 --(5)--> 3 = 0, 3
0 --(7)--> 4 = 0, 3, 4
1 --(11)--> 0 = 1, 3, 4, 0
1 --(0)--> 1 =
1 --(1)--> 2 = 1, 2
1 --(2)--> 3 = 1, 3
1 --(4)--> 4 = 1, 3, 4
2 --(11)--> 0 = 2, 4, 0
2 --(19)--> 1 = 2, 4, 0, 3, 1
2 --(0)--> 2 =
2 --(16)--> 3 = 2, 4, 0, 3
2 --(4)--> 4 = 2, 4
3 --(9)--> 0 = 3, 4, 0
3 --(3)--> 1 = 3, 1
3 --(4)--> 2 = 3, 1, 2
3 --(0)--> 3 =
3 --(2)--> 4 = 3, 4
4 --(7)--> 0 = 4, 0
4 --(15)--> 1 = 4, 0, 3, 1
4 --(6)--> 2 = 4, 2
4 --(12)--> 3 = 4, 0, 3
4 --(0)--> 4 =