Title: TEMA 5: El problema de la ruta mnima
1TEMA 5 El problema de la ruta mínima
2Formulación matemática del problema de ruta mínima
- Sea una red compuesta de nodos y arcos en la que
exista al menos un nodo de salida s y uno de
entrada e. A cada arco que une dos nodos
genéricos i y j se le asocia un coeficiente cij,
que representa un costo o distancia. - El problema de la ruta mínima consiste en
encontrar la ruta menos costosa o más corta entre
cada par de elementos nodo salida - nodo entrada.
- A lo largo del desarrollo se supondrá que existe
en la red un solo nodo de salida y otro de
entrada, en caso contrario se tendrán tantos
problemas diferentes como pares de nodos salida y
entrada que se encuentren definidos en la red.
3Ejemplo de red
4El problema de la ruta mínima ejemplo
- Una compañía aérea desea saber la ruta entre el
aeropuerto A y el resto de aeropuertos que hace
mínimo el tiempo de vuelo. La duración de cada
vuelo se indica en el arco correspondiente
5Formulación matemática
- La formulación matemática de este problema es
similar a la del problema de flujo máximo en una
red, en el que éste es encuentra limitado a una
unidad, puesto que las leyes de conservación de
Kirchhoff también se cumplen para todos los nodos
de la red. - La función objetivo será la estándar del problema
de optimización lineal, y las variables tomarán
valores de 1 o 0 dependiendo de si el arco al que
se encuentran asociadas es i no básico.
6Formulación dual
- El problema dual viene dado por
- En el problema dual existen n variables g, y como
el número de restricciones que se verifican con
estricto signo de igualdad son n-1 (n-1 variables
xij básicas), una de las variables duales g debe
ser especificada arbitrariamente. Haciendo g10,
y definiendo li-gi, se tiene el problema - ln representa el beneficio que obtiene la
empresa dual al asignar los precios li para el
usuario que quiera ir al nodo i. Las
restricciones del dual garantizan que la oferta
de la empresa dual es competitiva. En el
óptimo, li es el coste mínimo de ir desde el nodo
de salida al i
Maximizar
7Algoritmo para costos positivos
- El algoritmo consiste en partir del nodo de
salida e ir explorando todo los nodos, a través
de los arcos que los unen, marcándolos con el
valor de la distancia al nodo de salida. El
proceso finaliza una vez se haya alcanzado el
nodo de entrada. - Para la aplicación del procedimiento iterativo se
hace uso de una tabla cuya cabecera se numeran
los nodos de la red para cada una de estas
cabeceras se define una columna en la que se
especifican parejas (j,cij), donde j es el nodo
que se encuentra unido al nodo cabecera por el
arco de distancia cij.
8Ejemplo
- Obtener la ruta de longitud mínima del nodo 1 al
8 en la siguiente red.
6
9
5
2
7
4
8
7
3
3
2
5
4
4
5
3
1,0 2 3 4 5 6 7 8 5,4 5,2 4,6 8,2 6,3 7,5 4,3 2,5
6,4 8,9 7,3 3,5 4,8 8,4 3,7 7,7
9Ejemplo
- Se comienza por el nodo de salida 1, marcándolo
con (1,0). - De todos los nodos de su columna (5,2,3), se
elige aquél con menor distancia a él. (5 con
c154) - Se eliminan las parejas en las que interviene el
nodo 5 porque darán lugar a una distancia mayor.
1,0 2 3 4 5 6 7 8 5,4 5,2 4,6 8,2 6,3 7,5 4,3 2,5
6,4 8,9 7,3 3,5 4,8 8,4 3,7 7,7
10Ejemplo
- Se asignara la cabecera del nodo 5 con el valor
de la variable dual l5044 - Los nuevos nodos a considerar correspondientes a
las parejas (2,5),(3,7) ,(6,3) y (3,5). La menos
variable dual l es la (2,5), l2055 - Se marca la cabecera 2 con el valor de la
variable dual. No se eliminará ninguna otra
pareja puesto que el nodo 2 no interviene más. - Los nuevos nodos a considerar son
(3,7),(6,4),(7,7),(6,3) y (3,5). Mínimo valor
tienen l3077 y l6437
,4
1,0 2 3 4 5 6 7 8 5,4 5,2 4,6 8,2 6,3 7,5 4,3 2,5
6,4 8,9 7,3 3,5 4,8 8,4 3,7 7,7
,5
,7
,7
11Ejemplo
- Los nuevos nodos a considerar son
(7,7),(4,6),(8,9),(7,5) y (4,8). Mínimo valor
l75712 pàra (7,5) y (7,7) - Las nuevas parejas son (4,6), (8,9), (4,8),
(4,3) y (8,4). Mínimo valor l47613 - Las ultimas parejas son (8,9) y (8,4). Mínimo
valor l412416
,4
,13
,15
1,0 2 3,7 4 5 6,7 7 8 5,4 5,2 4,6 8,2 6,3 7,5 4,3
2,5 6,4 8,9 7,3 3,5 4,8 8,4 3,7 7,7
,5
,12
12Ejemplo
l7
l13
l5
6
9
5
2
7
4
8
7
3
3
l0
l15
2
5
4
4
5
3
l12
l7
l4
,4
,13
,15
1,0 2 3,7 4 5 6,7 7 8 5,4 5,2 4,6 8,2 6,3 7,5 4,3
2,5 6,4 8,9 7,3 3,5 4,8 8,4 3,7 7,7
,5
,12
13Algoritmo para costos positivos
Comenzando por el origen s, se asigna al nodo
cabecera una variable dual ls0, marcándolo como
(s,0). Elegir aquel nodo de columna con un valor
mínimo ljlscsj.
Marcar la pareja (j,csj) y asignar al nodo
cabecera j-ésimo la variable dual lj.
De todas las columnas, eliminar parejas (j,c.j)
De todas las parejas perteneciente a columnas con
cabecera asignada, se elige aquella con menor
valor de la variable dual (menor distancia al
origen).
14Ejemplo
- Obtener la ruta de longitud mínima en la
siguiente red de costos negativos y positivos
3
3
5
2
-6
4
3
4
-2
8
3
5
-1
4
4
2
1 2 3 4 5 6 7 8 9 2,5 4,3 4,4 6,3 7,-1 9,2 9,3 7,5
3,3 3,-2 7,8 7,-6 8,4 7,4 9,4 5,2
15Ejemplo
3
3
5
2
-6
4
3
4
-2
8
3
5
-1
4
4
2
1,0 2 3,3 4 5 6 7 8 9 2,5 4,3 4,4 6,3 7,-1 9,2 9,3
7,5 3,3 3,-2 7,8 7,-6 8,4 7,4 9,4 5,2
16Ejemplo
3
3
5
2
-6
4
3
4
-2
8
3
5
-1
4
4
2
1,0 2,5 3,3 4 5,5 6 7 8 9 2,5 4,3 4,4 6,3 7,-1 9,2
9,3 7,5 3,3 3,-2 7,8 7,-6 8,4 7,4 9,4 5,2
17Ejemplo
3
3
5
2
-6
4
3
4
-2
8
3
5
-1
4
4
2
1,0 2,5 3,3 4 5,5 6 7,4 8 9 2,5 4,3 4,4 6,3 7,-1 9
,2 9,3 7,5 3,3 3,-2 7,8 7,-6 8,4 7,4 9,4 5,2
18Ejemplo
3
3
5
2
-6
4
3
4
-2
8
3
5
-1
4
4
2
1,0 2,5 3,3 4,7 5,5 6 7,4 8 9,7 2,5 4,3 4,4 6,3 7,
-1 9,2 9,3 7,5 3,3 3,-2 7,8 7,-6 8,4 7,4 9,4 5,
2
19Ejemplo
3
3
5
2
-6
4
3
4
-2
8
3
5
-1
4
4
2
1
1,0 2,5 3,3 4,7 5,5 6 7,4 8 9,7 2,5 4,3 4,4 6,3 7,
-1 9,2 9,3 7,5 3,3 3,-2 7,8 7,-6 8,4 7,4 9,4 5,
2
20Ejemplo
3
3
5
2
-6
4
3
4
-2
8
3
5
-1
4
4
2
1,0 2,5 3,3 4,7 5,5 6 7,1 8 9, 2,5 4,3 4,4 6,3 7,-
1 9,2 9,3 7,5 3,3 3,-2 7,8 7,-6 8,4 7,4 9,4 5,2
21Ejemplo
- Comenzando por el nodo de salida se van marcando
las parejas con mínimo valor de la variable de
holgura lj.
1,0 2 3 4 5 6 7 8 9 2,5 4,3 4,4 6,3 7,-1 9,2 9,3 7
,5 3,3 3,-2 7,8 7,-6 8,4 7,4 9,4 5,2
,3
l10 c133 l3l1c13033
Prosiguiendo el algoritmo tal como en el caso de
costos no negativos, pero cuidando de no eliminar
parejas, se sigue marcando otra u otras parejas
de las columnas asignadas, en este caso de las
columnas 1,0 y 3,3.
1,0 2 3 4 5 6 7 8 9 2,5 4,3 4,4 6,3 7,-1 9,2 9,3 7
,5 3,3 3,-2 7,8 7,-6 8,4 7,4 9,4 5,2
,3
,5
,5
l2325 y l5055
22Ejemplo
Entre las nuevas parejas a considerar
destacaremos a 3,-2 con l33. Pero como la
cabecera del nodo 3 ya se encuentra asignada con
3,3, se prosigue el algoritmo
1,0 2 3 4 5,5 6 7 8 9 2,5 4,3 4,4 6,3 7,-1 9,2 9,3
7,5 3,3 3,-2 7,8 7,-6 8,4 7,4 9,4 5,2
,3
,5
l25-23
La siguiente parejas a considerar es 7,-1 con
l74.
,4
1,0 2 3 4 5,5 6 7 8 9 2,5 4,3 4,4 6,3 7,-1 9,2 9,3
7,5 3,3 3,-2 7,8 7,-6 8,4 7,4 9,4 5,2
,3
,5
l75-14
23Ejemplo
La siguiente parejas es 9,3 con l47.
1,0 2 3 4 5,5 6 7 8 9 2,5 4,3 4,4 6,3 7,-1 9,2 9,3
7,5 3,3 3,-2 7,8 7,-6 8,4 7,4 9,4 5,2
,5
,4
,7
,7
,3
La siguientes parejas son 9,3 con l97 , 8,9
l89 con y 4,4 con l47.
,1
,9
1,0 2 3 4 5,5 6 7 8 9 2,5 4,3 4,4 6,3 7,-1 9,2 9,3
7,5 3,3 3,-2 7,8 7,-6 8,4 7,4 9,4 5,2
,3
,5
,7
,7
La nueva pareja es 7,-6 con l77-61. Como la
cabecera ya se encontraba asignada, se vuelve a
reasignar con el nuevo valor optimizado l71. Se
marca la pareja 7,-6 y se desmarcan todas las
parejas definidas en la columna 7 y todas las
parejas ya marcadas cuyo primer elemento sea el
nodo 7, es decir la pareja 7,-1.
24Ejemplo
La siguientes asignación corresponderá a 7,-1
con l74 y 9,3 con l94. Como l7 es mayor que la
asignación actual de dicha cabecera, se elimina.
Y como l9 es mejor que la antigua asignación de
la cabecera, se substituye y se marca dicha
pareja, dado lugar a la tabla siguiente
,1
1,0 2 3 4 5,5 6 7 8,9 9 2,5 4,3 4,4 6,3 7,-1 9,2 9
,3 7,5 3,3 3,-2 7,8 7,-6 8,4 7,4 9,4 5,2
,3
,5
,4
,7
,10
La pareja 4,3 también se elimina puesto que
l4538gt7
La siguiente pareja es 6,3 dando lugar a l610
La pareja 7,8 da lugar a l611gt1 gt se
elimina También se eliminan 9,2 con l912 y 9,4
con l913.
Las parejas 7,5 7, 4 y 7,8 dan lugar a
valores gt1.
25Ejemplo
5
7
10
3
3
5
2
-6
4
1
3
4
4
0
-2
8
3
5
-1
4
4
2
9
5
3
,1
1,0 2 3 4 5,5 6 7 8,9 9 2,5 4,3 4,4 6,3 7,-1 9,2 9
,3 7,5 3,3 3,-2 7,8 7,-6 8,4 7,4 9,4 5,2
,3
,5
,4
,7
,10