algoritmo de floyd - warshall

22
Algoritmo de Floyd- Warshall Equipo 3: Mario Alejandro Martínez Enrique González Villanueva Santiago de la Cruz de Jesús

Upload: gt-alexo

Post on 16-Sep-2015

97 views

Category:

Documents


1 download

DESCRIPTION

Teoría de Grafos

TRANSCRIPT

Algoritmo de Warshall

Algoritmo de Floyd-WarshallEquipo 3:Mario Alejandro MartnezEnrique Gonzlez VillanuevaSantiago de la Cruz de JessAlgoritmo de Floyd-WarshallEs un algoritmo de anlisis de grafos para que, de forma eficiente y simultnea, encuentre los caminos ms cortos dentro de un grafo en el cual las aristas tengan un costo (distancia entre nodo y nodo, duracin del viaje entre nodos, etc.). Al ejecutar el algoritmo encontrara el camino menor o ms corto de entre todos los pares de vrtices, pero no devuelve los detalles de los caminos en s. El algoritmo de Floyd-Warshall puede ser usado para resolver los siguientes problemas, entre otros.Caminos corto en un grafo dirigido (Algoritmo de Floyd)Clausura transitiva de grafos dirigidos (Algoritmo de Warshall). En el algoritmo original de Warshall, el grafo no tiene aristas con coste o valor y es representado por una matriz Booleana de proximidad. Inversin de matrices de nmeros reales (Algoritmo de Gauss-Jordn)Probar si un grafo indirecto es bipartito Calculo rpido de redes de organizacin de datos.

Aplicaciones:En que consiste el algoritmo?El algoritmo de Warshall determina si existe un camino entre dos vrtices (nodos) en el grafo. No da el nmero de los caminos entre dos nodos.Se basa en un concepto llamado cerradura transitiva de matriz de adyacencia.Definicin: Algoritmo de WarshallEjemplo:

Camino mnimo entre todos los pares de nodosPara la ejecucin de este algoritmo 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.. Es importante comprender el significado de la matriz de distancias mnimas y de la matriz de caminos.Ejemplo:

Matriz de distancias mnimasMatriz de caminos Ejemplo: Hallar el camino mnimo desde el vrtice 3 hasta 4 en elgrafo siguiente:

Aplicamos el algoritmo de Floyd-Warshall, y para ello en cada iteracin fijamos un vrtice intermedio.Iteracin 3: nodo intermedio = 3

d12 = min(d12, d13 + d32) = 3d14 = min(d14, d13 + d34) = 1d15 = min(d15, d13 + d35) = 12d16 = min(d16, d13 + d36) = 6d24 = min(d24, d23 + d34) = 4d25 = min(d25, d23 + d35) = 9d26 = min(d26, d23 + d36) = 9d45 = min(d45, d43 + d35) = 13d46 = min(d46, d43 + d36) = 4d56 = min(d56, d53 + d36) = 8Iteracin 4: nodo intermedio = 4

d12 = min(d12, d14 + d42) = 3d13 = min(d13, d14 + d43) = 5d15 = min(d15, d14 + d45) = 12d16 = min(d16, d14 + d46) = 5d23 = min(d23, d24 + d43) = 8d25 = min(d25, d24 + d45) = 9d26 = min(d26, d24 + d46) = 8d35 = min(d35, d34 + d45) = 7d36 = min(d36, d34 + d46) = 1d56 = min(d56, d54 + d46) = 8Iteracin 5: nodo intermedio = 5

d12 = min(d12, d15 + d52) = 3d13 = min(d13, d15 + d53) = 5d14 = min(d14, d15 + d54) = 1d16 = min(d16, d15 + d56) = 5d23 = min(d23, d25 + d53) = 8d24 = min(d24, d25 + d54) = 4d26 = min(d26, d25 + d56) = 8d34 = min(d34, d35 + d54) = 6d36 = min(d36, d35 + d56) = 1d46 = min(d46, d45 + d56) = 4Iteracin 6: nodo intermedio = 6

d12 = min(d12, d16 + d62) = 3d13 = min(d13, d16 + d63) = 5d14 = min(d14, d16 + d64) = 1d15 = min(d15, d16 + d65) = 12d23 = min(d23, d26 + d63) = 8d24 = min(d24, d26 + d64) = 4d25 = min(d25, d26 + d65) = 9d34 = min(d34, d36 + d64) = 5d35 = min(d35, d36 + d65) = 7d45 = min(d45, d46 + d65) = 12Ya se han hecho todas las iteraciones posibles. Por tanto, el camino mnimo entre 2 vrtices cualesquiera del grafo ser el obtenido en la matriz final. En este caso, el camino mnimo entre 3 y 4 vale 5.Complejidad:Stephen Warshall (15 noviembre 1935 a 11 diciembre 2006) naci en New York City. Durante su carrera, Warshall llevado a cabo la investigacin y el desarrollo de sistemas operativos, diseo, diseo del compilador del lenguaje, y la investigacin operativa. Warshall muri el 11 de diciembre de 2006 de cncer en su casa.

Robert W. Floyd (8 de junio de 1936 - 25 de septiembre de 2001) fue un prominente cientfico estadounidense en informtica. Nacido en Nueva York, Floyd culmin el bachillerato a los14 aos. Se gradu en la Universidad de Chicago en 1953 a los 17 aos y como Fsico en 1958. Entre sus contribuciones se encuentran el diseo y anlisis de algoritmos eficientes para encontrar el camino ms corto en un grafo y para el problema de reconocimiento de frases, pero probablemente su logro ms importante fue el ser pionero