Está en la página 1de 9

3.

6 Algoritmo de
Floyd-Warshall (1)

Alberto Conejero y Cristina Jordán


Aplicaciones de la
Depto. Matemática Aplicada
Teoría de Grafos
E.T.S. Ingeniería Informática
a la vida real
Universitat Politècnica de València
Aplicaciones de la Teoría 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 gustaría disponer de una tabla que le indicara en cada
ocasión cuál sería el coste del trayecto más barato y el recorrido a realizar.

L1 L2 L3 L4 L5
L1 1 6 -2
L2 3 4
L3 3 -3
L4 1 3
L5 4 4

3.6. Floyd-Warshall(1)
Aplicaciones de la Teoría de Grafos a la vida real

Ejemplo introductorio

Observaciones al enunciado anterior


1. Al igual que en el caso de caminos más cortos entre dos puntos o de
un punto a todos los demás, 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 solución, 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 solución será una tabla (matriz) 5x5 (la diagonal no se
tendrá en cuenta)
3. Nos piden dos tipos de datos el coste más barato del trayecto entre dos
puntos y el camino entre esos dos puntos.
Por lo tanto, la solución estará en realidad constituida por dos matrices.
4. Observamos en la tabla valores negativos.
El algoritmo que vamos a estudiar los permite, con la excepción que a
continuación comentaremos
5. Los bucles no tienen sentido en los problemas de caminos más cortos
3.6. Floyd-Warshall(1)
Aplicaciones de la Teoría de Grafos a la vida real

Pesos negativos
¿Cuál es el camino más corto de v3 a v2?

v2 ¿Es v3v2? p(v3v2) = 3.


-4 No, porque p(v3v4v1v2) = -1

2 ¿Es v3v4v1v2? p(v3v4v1v2) = -1


3 No, porque p(v3v4v1v2v4v1v2) = -2
1
v4 ¿Es v3v4v1v2v4v1v2 ? p(v3v4v1v2v4v1v2) = -2
2 v3 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 Teoría de Grafos a la vida real

Matriz de pesos
(Algoritmo de Floyd-Wharsall)
Idea v2
1. ¿Cuál es el camino más corto de v1 a v2? 7

• Primer intento: 4
1
De forma directa p(v1 v2) = 7 2
• Segundo intento: v3
2 v4
¿Y si pasamos por v3? p(v1 v3 v2) = 2+4= 6 < 7 = p(v1 v2)
• Tercer intento:
¿Y si ademas pasamos por v4? p(v1 v3 v4 v2) = 2+ 2+1= 5 < 6 = p(v1 v3 v2)

2. ¿Cuál es el camino más 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 Teoría de Grafos a la vida real

Matriz de pesos
(Algoritmo de Floyd-Wharsall)

Idea
Nos planteamos por tanto :
Dados dos vértices u y v,
¿ Existe un vértice w tal que p(u,w)+p(w,v) ≤ p(u,v) ?
u v

Para comprobarlo, consideramos como candidato w a cumplir la


propiedad cada uno de los distintos vértices:
• En caso afirmativo, cambiamos el peso y el camino
• En caso negativo, lo desechamos

3.6. Floyd-Warshall(1)
Aplicaciones de la Teoría 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 más corto al dar la opción a
pasar por los vértices distintos de nuestros origen y llegada.
En caso de encontrar un « camino más 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 vértices entre los
que estamos calculando el camino o el vértice que estamos
usando como punto intermedio

3.6. Floyd-Warshall(1)
Aplicaciones de la Teoría 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 más corto al dar la opción a
pasar por los vértices distintos de nuestros origen y llegada.
En caso de encontrar un « camino más 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 vértices entre los
que estamos calculando el camino o el vértice que estamos
usando como punto intermedio

3.6. Floyd-Warshall(1)
Aplicaciones de la Teoría 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 más corto al dar la opción a
pasar por los vértices distintos de nuestros origen y llegada.
En caso de encontrar un « camino más 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 vértices entre los
que estamos calculando el camino o el vértice que estamos
usando como punto intermedio

3.6. Floyd-Warshall(1)

También podría gustarte