Está en la página 1de 9

3.

6 Algoritmo de
Floyd-Warshall (1)

Aplicaciones de la
Teora de Grafos
a la vida real

Alberto Conejero y Cristina Jordn


Depto. Matemtica Aplicada
E.T.S. Ingeniera Informtica
Universitat Politcnica de Valncia

Aplicaciones de la Teora de Grafos a la vida real

Ejemplo introductorio
Sergio se traslada entre varios puntos de la ciudad, L1, L2, L3, L4 y L5, en
su viejecito pero til coche. Ha analizado el gasto entre diferentes lugares
y lo ha recogido en la tabla siguiente. Dado que cada vez se desplaza entre
sitios distintos le gustara disponer de una tabla que le indicara en cada
ocasin cul sera el coste del trayecto ms barato y el recorrido a realizar.

L1
L1

L2

L3

L4

-2

L2

L3
L4
L5

3
1

L5

-3
3

3.6. Floyd-Warshall(1)

Aplicaciones de la Teora de Grafos a la vida real

Ejemplo introductorio
Observaciones al enunciado anterior
1. Al igual que en el caso de caminos ms cortos entre dos puntos o de
un punto a todos los dems, lo que nos interesa es el peso total del
trayecto recorrido; en este caso entre dos puntos cualesquiera.
2. Como trabajamos con dos puntos cualesquiera, la solucin, en el
ejemplo anterior estar formada por 20 valores:
de 1 a 2, de 1 a 3, de 1 a 5, de 2 a 1, de 2 a 3,, de 2 a 5,,
de 5 a 1, de 5 a 4.
Por lo tanto, la solucin ser una tabla (matriz) 5x5 (la diagonal no se
tendr en cuenta)
3. Nos piden dos tipos de datos el coste ms barato del trayecto entre dos
puntos y el camino entre esos dos puntos.
Por lo tanto, la solucin estar en realidad constituida por dos matrices.
4. Observamos en la tabla valores negativos.
El algoritmo que vamos a estudiar los permite, con la excepcin que a
continuacin comentaremos
5. Los bucles no tienen sentido en los problemas de caminos ms cortos
3.6. Floyd-Warshall(1)

Aplicaciones de la Teora de Grafos a la vida real

Pesos negativos
Cul es el camino ms corto de v3 a v2?
Es v3v2?

v2
-4
2
1

v4

v3

p(v3v2) = 3.
No, porque p(v3v4v1v2) = -1

Es v3v4v1v2? p(v3v4v1v2) = -1
No, porque p(v3v4v1v2v4v1v2) = -2
Es v3v4v1v2v4v1v2 ? p(v3v4v1v2v4v1v2) = -2
No, porque p(v3v4v1v2v4v1v2v4v1v2) = -3
???

Hay un ciclo de peso total negativo: v2v4v1v2 , p(v2v4v1v2) = 2+1+-4 = -1


El problema no puede resolverse en ese caso

3.6. Floyd-Warshall(1)

Aplicaciones de la Teora de Grafos a la vida real

Matriz de pesos
(Algoritmo de Floyd-Wharsall)
v2

Idea
7

1. Cul es el camino ms corto de v1 a v2?

Primer intento:
De forma directa p(v1 v2) = 7

Segundo intento:

4
2

v3

Y si pasamos por v3? p(v1 v3 v2) = 2+4= 6 < 7 = p(v1 v2)

v4

Tercer intento:
Y si ademas pasamos por v4? p(v1 v3 v4 v2) = 2+ 2+1= 5 < 6 = p(v1 v3 v2)
2. Cul es el camino ms corto de v1 a v4?

Primer intento:
No podemos ir de forma directa p(v1 v4) =
Segundo intento:
Y si pasamos por v2? No existe camino de v1 a v4 pasando por v2

Tercer intento:
Y si pasamos por v3? p(v1 v3 v4) = 2+ 2 = 4 < p(v1 v4) =
3.6. Floyd-Warshall(1)

Aplicaciones de la Teora de Grafos a la vida real

Matriz de pesos
(Algoritmo de Floyd-Wharsall)
Idea
Nos planteamos por tanto :
Dados dos vrtices u y v,
Existe un vrtice w tal que p(u,w)+p(w,v) p(u,v) ?
u

v
w

Para comprobarlo, consideramos como candidato w a cumplir la


propiedad cada uno de los distintos vrtices:
En caso afirmativo, cambiamos el peso y el camino
En caso negativo, lo desechamos

3.6. Floyd-Warshall(1)

Aplicaciones de la Teora de Grafos a la vida real

Matriz de pesos
(Algoritmo de Floyd-Wharsall)
Consecuencia
1. Tomamos como valores de partida los costes de las aristas, y si sta
no existe consideraremos infinito (valor muy grande)
2. Iremos probando si hay un camino ms corto al dar la opcin a
pasar por los vrtices distintos de nuestros origen y llegada.
En caso de encontrar un camino ms corto lo guardamos
Nota. Cuando se hagan comparaciones suprimiremos las que involucren
a) aristas (arcos) de peso infinito
b) aristas (u,v) donde u v coincidan con los vrtices entre los
que estamos calculando el camino o el vrtice que estamos
usando como punto intermedio

3.6. Floyd-Warshall(1)

Aplicaciones de la Teora de Grafos a la vida real

Matriz de pesos
(Algoritmo de Floyd-Wharsall)
Consecuencia
1. Tomamos como valores de partida los costes de las aristas, y si sta
no existe consideraremos infinito (valor muy grande)
2. Iremos probando si hay un camino ms corto al dar la opcin a
pasar por los vrtices distintos de nuestros origen y llegada.
En caso de encontrar un camino ms corto lo guardamos
Nota. Cuando se hagan comparaciones suprimiremos las que involucren
a) aristas (arcos) de peso infinito
b) aristas (u,v) donde u v coincidan con los vrtices entre los
que estamos calculando el camino o el vrtice que estamos
usando como punto intermedio

3.6. Floyd-Warshall(1)

Aplicaciones de la Teora de Grafos a la vida real

Matriz de pesos
(Algoritmo de Floyd-Wharsall)
Consecuencia
1. Tomamos como valores de partida los costes de las aristas, y si sta
no existe consideraremos infinito (valor muy grande)
2. Iremos probando si hay un camino ms corto al dar la opcin a
pasar por los vrtices distintos de nuestros origen y llegada.
En caso de encontrar un camino ms corto lo guardamos
Nota. Cuando se hagan comparaciones suprimiremos las que involucren
a) aristas (arcos) de peso infinito
b) aristas (u,v) donde u v coincidan con los vrtices entre los
que estamos calculando el camino o el vrtice que estamos
usando como punto intermedio

3.6. Floyd-Warshall(1)

También podría gustarte