Está en la página 1de 7

PONTIFICIA UNIVERSIDAD CATÓLICA DEL ECUADOR

SEDE ESMERALDAS
ESCUELA DE INGENIERÍA EN SISTEMAS Y COMPUTACIÓN

TRABAJO ALGORITMO FLOYD Y WARSHALL

Estudiantes: Bryan Espinoza

Jean Pierre León

Jhonny Bolívar

Docente: Ing. Jaime Sayago Heredia

Materia: Estructura de datos 2

Nivel: 4to

Carrera: Ingeniería en Sistemas y Computación

Esmeraldas, Mayo
PONTIFICIA UNIVERSIDAD CATÓLICA DEL ECUADOR
SEDE ESMERALDAS
ESCUELA DE INGENIERÍA EN SISTEMAS Y COMPUTACIÓN

CONCEPTO FLOYD WARSHALL

Es un algoritmo de análisis sobre grafos para encontrar el camino mínimo en grafos

dirigidos ponderados. El algoritmo encuentra el camino entre todos los pares de vértices en una

única ejecución. El algoritmo de Floyd-Warshall es un ejemplo de programación dinámica,

teniendo en cuenta que este tipo de programación tiene como fin encontrar una solución optima a

dicho problema recursivamente.

El algoritmo de Floyd-Warshall compara todos los posibles caminos a través del grafo

entre cada par de vértices. El algoritmo es capaz de hacer esto con sólo V3 comparaciones (esto

es notable considerando que puede haber hasta V2 aristas en el grafo, y que cada combinación de

aristas se prueba). Lo hace mejorando paulatinamente una estimación del camino más corto entre

dos vértices, hasta que se sabe que la estimación es óptima.

FUNCIONAMIENTO

El problema que intenta resolver este algoritmo es el de encontrar el camino más corto

entre todos los pares de nodos o vértices de un grafo. Esto es semejante a construir una tabla con

todas las distancias mínimas entre pares de ciudades de un mapa, indicando además la ruta a

seguir para ir de la primera ciudad a la segunda. Este es uno de los problemas más interesantes

que se pueden resolver con algoritmos de grafos.


PONTIFICIA UNIVERSIDAD CATÓLICA DEL ECUADOR
SEDE ESMERALDAS
ESCUELA DE INGENIERÍA EN SISTEMAS Y COMPUTACIÓN

Características

• Obtiene la mejor ruta entre todo par de nodos.

• Trabaja con la matriz D inicializada con las distancias directas entre todo par de

nodos.

• La iteración se produce sobre nodos intermedios, o sea para todo elemento de la

matriz se prueba si lo mejor para ir de i a j es a través de un nodo intermedio elegido o como

estaba anteriormente, y esto se prueba con todos los nodos de la red. Una vez probados todos los

nodos de la red como nodos intermedios, la matriz resultante da la mejor distancia entre todo par

de nodos.

• El algoritmo da sólo la menor distancia; se debe manejar información adicional

para encontrar tablas de encaminamiento.

• Hasta no hallar la última matriz no se encuentran las distancias mínimas.

• Su complejidad es del orden de N3.

Aplicaciones
PONTIFICIA UNIVERSIDAD CATÓLICA DEL ECUADOR
SEDE ESMERALDAS
ESCUELA DE INGENIERÍA EN SISTEMAS Y COMPUTACIÓN

El algoritmo de Floyd-Warshall puede ser utilizado para resolver los siguientes

problemas:

• Camino mínimo en grafos dirigidos (algoritmo de Floyd).

• Cierre transitivo en grafos dirigidos (algoritmo de Warshall). Es la formulación

original del algoritmo de Warshall. El grafo es un grafo no ponderado y representado por una

matriz booleana de adyacencia. Entonces la operación de adición es reemplazada por la

conjunción lógica (AND) y la operación menor por la disyunción lógica (OR).

• Encontrar una expresión regular dada por un lenguaje regular aceptado por un

autómata finito (algoritmo de Kleene).

• Inversión de matrices de números reales (algoritmo de Gauss-Jordan).

• Ruta óptima. En esta aplicación es interesante encontrar el camino del flujo

máximo entre 2 vértices. Esto significa que en lugar de tomar los mínimos con el pseudocódigo

anterior, se coge el máximo. Los pesos de las aristas representan las limitaciones del flujo. Los

pesos de los caminos representan cuellos de botella; por ello, la operación de adición anterior es

reemplazada por la operación mínimo.

• Comprobar si un grafo no dirigido es bipartito.

Ventajas

 Complejidad O(n).
PONTIFICIA UNIVERSIDAD CATÓLICA DEL ECUADOR
SEDE ESMERALDAS
ESCUELA DE INGENIERÍA EN SISTEMAS Y COMPUTACIÓN

 Encontrar el camino entre todos los pares de vértices en una única ejecución.

 Algoritmo que usa el método de programación dinámica. 

Desventajas

Fuentes

Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L. (1990).

Introduction to Algorithms (1º Edición). Sección 26.2, "The Floyd–Warshall algorithm".


PONTIFICIA UNIVERSIDAD CATÓLICA DEL ECUADOR
SEDE ESMERALDAS
ESCUELA DE INGENIERÍA EN SISTEMAS Y COMPUTACIÓN

Floyd, Robert W. Algorithm 97: Shortest Path. Communications of the ACM.

Kleene, S. C. (1956 Representation of events in nerve nets and finite automata.

En C. E. Shannon and John McCarthy. Automata Studies.

Warshall, Stephen.A theorem on Boolean matrices.

Kenneth H. Rosen (2003). Discrete Mathematics and Its Applications, 5ª Edición.

Addison Wesley.

Conclusión
PONTIFICIA UNIVERSIDAD CATÓLICA DEL ECUADOR
SEDE ESMERALDAS
ESCUELA DE INGENIERÍA EN SISTEMAS Y COMPUTACIÓN

Actualmente java es uno de los lenguajes de programación más utilizados por lo

programadores por la gran cantidad de herramienta que brinda con relación al manejo de

herramientas graficas JApplet, JFrame y también El contexto grafico también nos proporciona y

nos permite manipular otro conjunto de información, como el color , letra, etc .. Reduciendo así

los tiempos de desarrollo de aplicaciones.

También nos brinda gráficos de java en 2d para mostrar gráficos y charts complejos que

usan varios estilos de línea y de relleno para distinguir conjuntos de datos y un contexto de

renderizado con formas en 2d ubicando el grafico en un sistema de coordenadas. Y

permitiéndonos crear de forma virtual las formas geométricas y dibujándola en Gráficos en 2d.

También podría gustarte