Vous êtes sur la page 1sur 22

Algoritmo de

FloydWarshall
Equipo 3:
Mario Alejandro Martnez
Enrique Gonzlez Villanueva
Santiago de la Cruz de Jess

Algoritmo de Floyd-Warshall

Es 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.

Aplicaciones:

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.

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:

Sea
un dgrafo.
La matriz de
adyacencia , es la matriz cuyas entradas
estn determinadas por la siguiente
funcin:

Algoritmo de Warshall

Sea

un dgrafo donde .

Aqu est la idea del algoritmo.


Se construir la matriz de adyacencia que
nos indicar cuales de los pares de vrtices
estn directamente conectados.
La primera ronda tendr una matriz , lo que
indicar cuales de los pares de vrtices son
conectados por un camino usando
como
pivote de conexin.


La

prxima ronda se pondr matriz , lo que nos


mostrar las conexiones de pares de vrtices
por un camino haciendo slo y como pivotes.
Continuar
construyendo
las
matrices
siguientes hasta llegar a obtener la matriz .

Ejemplo:

Sea
. Como para , concluimos que existen
caminos entre los vrtices , y .

Camino mnimo entre todos


los pares de nodos
Para 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
mnimas

Matriz de caminos

Ejemplo: Hallar el camino mnimo desde el


vrtice 3 hasta 4 en elgrafo siguiente:


Obtenemos

la matriz de distancias

Aplicamos el algoritmo de Floyd-Warshall, y para ello


en cada iteracin fijamos un vrtice intermedio.

Iteracin
1: nodo intermedio = 1

La matriz es simtrica, por lo que solamente har falta


calcular el tringulo superior de las distancias.
d23
d24
d25
d26
d32
d34
d35
d36
d45
d46
d56

=
=
=
=
=
=
=
=
=
=
=

min(d23,
min(d24,
min(d25,
min(d26,
min(d32,
min(d34,
min(d35,
min(d36,
min(d45,
min(d46,
min(d56,

d21
d21
d21
d21
d31
d31
d31
d31
d41
d41
d51

+
+
+
+
+
+
+
+
+
+
+

d13)
d14)
d15)
d16)
d12)
d14)
d15)
d16)
d15)
d16)
d16)

=
=
=
=
=
=
=
=
=
=
=

8
4
9
8
6
7
1
4


Iteracin
2: nodo intermedio = 2

d13
d14
d15
d16
d34
d35
d36
d45
d46
d56

=
=
=
=
=
=
=
=
=
=

min(d13,
min(d14,
min(d15,
min(d16,
min(d34,
min(d35,
min(d36,
min(d45,
min(d46,
min(d56,

d12
d12
d12
d12
d32
d32
d32
d42
d42
d52

+
+
+
+
+
+
+
+
+
+

d23)
d24)
d25)
d26)
d24)
d25)
d26)
d25)
d26)
d26)

=5
=1
= 12
=
=6
=7
=1
= 13
=4
=

Iteracin 3: nodo intermedio = 3


d12
d14
d15
d16
d24
d25
d26
d45
d46
d56

=
=
=
=
=
=
=
=
=
=

min(d12,
min(d14,
min(d15,
min(d16,
min(d24,
min(d25,
min(d26,
min(d45,
min(d46,
min(d56,

d13
d13
d13
d13
d23
d23
d23
d43
d43
d53

+
+
+
+
+
+
+
+
+
+

d32)
d34)
d35)
d36)
d34)
d35)
d36)
d35)
d36)
d36)

=3
=1
= 12
=6
=4
=9
=9
= 13
=4
=8

Iteracin 4: nodo intermedio = 4


d12
d13
d15
d16
d23
d25
d26
d35
d36
d56

=
=
=
=
=
=
=
=
=
=

min(d12,
min(d13,
min(d15,
min(d16,
min(d23,
min(d25,
min(d26,
min(d35,
min(d36,
min(d56,

d14
d14
d14
d14
d24
d24
d24
d34
d34
d54

+
+
+
+
+
+
+
+
+
+

d42)
d43)
d45)
d46)
d43)
d45)
d46)
d45)
d46)
d46)

=3
=5
= 12
=5
=8
=9
=8
=7
=1
=8

Iteracin 5: nodo intermedio = 5


d12
d13
d14
d16
d23
d24
d26
d34
d36
d46

=
=
=
=
=
=
=
=
=
=

min(d12,
min(d13,
min(d14,
min(d16,
min(d23,
min(d24,
min(d26,
min(d34,
min(d36,
min(d46,

d15
d15
d15
d15
d25
d25
d25
d35
d35
d45

+
+
+
+
+
+
+
+
+
+

d52)
d53)
d54)
d56)
d53)
d54)
d56)
d54)
d56)
d56)

=3
=5
= 1
=5
=8
=4
=8
=6
=1
=4

Iteracin 6: nodo intermedio = 6


d12
d13
d14
d15
d23
d24
d25
d34
d35
d45

=
=
=
=
=
=
=
=
=
=

min(d12,
min(d13,
min(d14,
min(d15,
min(d23,
min(d24,
min(d25,
min(d34,
min(d35,
min(d45,

d16
d16
d16
d16
d26
d26
d26
d36
d36
d46

+
+
+
+
+
+
+
+
+
+

d62)
d63)
d64)
d65)
d63)
d64)
d65)
d64)
d65)
d65)

=3
=5
= 1
= 12
=8
=4
=9
=5
=7
= 12

Ya 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:

Si

utilizamos matrices booleanas, para


encontrar los de desde se necesita hacer
operaciones
binarias.
Debido
a
que
empezamos con y computamos la secuencia
de matrices booleanas el numero total de
operaciones binarias es de . Por lo tanto, la
complejidad del algoritmo es de , adems de
que el algoritmo tendra problemas si la
grfica cuenta con pesos negativos.

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

Vous aimerez peut-être aussi