Modelos de Redes: Problemas de Modelos de Redes: Problemas de
la Ruta m la Ruta m s corta s corta M. En C. Eduardo Bustos Far M. En C. Eduardo Bustos Far as as 2 Problemas de la Ruta m Problemas de la Ruta m s corta s corta Problemas de la Ruta m Problemas de la Ruta m s corta s corta Se trata de encontrar la ruta de menor distancia, o Se trata de encontrar la ruta de menor distancia, o costo ,a entre el punto de partida o nodo inicial y el costo ,a entre el punto de partida o nodo inicial y el destino o nodo terminal. destino o nodo terminal. Definici Definici n del Problema n del Problema - - Se tienen n nodos, partiendo del nodo inicial 1 y terminando en Se tienen n nodos, partiendo del nodo inicial 1 y terminando en el nodo final n. el nodo final n. - - Arcos Arcos bi bi- -direccionales conectan los nodos i y j con distancias direccionales conectan los nodos i y j con distancias mayores que cero, mayores que cero, d d ij ij - - Se desea encontrar la ruta de m Se desea encontrar la ruta de m nima distancia que conecta el nima distancia que conecta el nodo 1 con el nodo n. nodo 1 con el nodo n. 4 Soluci Soluci n n- -Analog Analog a con un problema de a con un problema de redes redes El algoritmo de El algoritmo de Dijkstra Dijkstra s s: : - -Encontrara la distancia m Encontrara la distancia m nima del nodo de nima del nodo de partida a los otros nodos, en el orden que se partida a los otros nodos, en el orden que se encuentran los nodos con respecto al nodo de encuentran los nodos con respecto al nodo de inicio. inicio. - - Este algoritmo encuentra la ruta m Este algoritmo encuentra la ruta m s corta s corta desde el nodo de inicio a todos los nodos de desde el nodo de inicio a todos los nodos de la red. la red. 5 Algoritmos de Algoritmos de Dijkstra Dijkstra Para Ruta Para Ruta M M s Corta s Corta Estos son algoritmos de etiquetado, los Estos son algoritmos de etiquetado, los cuales, en t cuales, en t rminos generales, rminos generales, encuentran la ruta m encuentran la ruta m s corta entre dos s corta entre dos nodos, inicial nodos, inicial a a y final y final z, z, de la siguiente de la siguiente manera: manera: Los nodos de la red son etiquetados con Los nodos de la red son etiquetados con n n meros. meros. Al principio, todos tienen la etiqueta 00 Al principio, todos tienen la etiqueta 00 excepto el nodo inicial excepto el nodo inicial a a que tiene la que tiene la etiqueta 0. etiqueta 0. 6 Los arcos tienen un peso Los arcos tienen un peso wij wij que que representa la distancia del enlace representa la distancia del enlace ( (i i, , j j). ). Los algoritmos de Los algoritmos de Dijkstra Dijkstra renumeran los nodos, de manera renumeran los nodos, de manera que cuando el nodo que cuando el nodo z z tiene una tiene una etiqueta permanente, se ha etiqueta permanente, se ha obtenido la soluci obtenido la soluci n final. n final. 2 7 Algoritmo de la ruta m Algoritmo de la ruta m s s corta corta 1. 1. Objetivos para n Objetivos para n- - sima sima interacci interacci n: n: Encontrar el n Encontrar el n- - simo simo nodo m nodo m s s cercano al origen. (Este paso se cercano al origen. (Este paso se repetir repetir para n = 1,2, para n = 1,2, , hasta que el , hasta que el n n- - simo simo nodo m nodo m s cercano sea el nodo s cercano sea el nodo destino). destino). 2. 2. Datos para la n Datos para la n- - sima sima interacci interacci n: n n: n- -1 1 nodos m nodos m s cercanos al origen s cercanos al origen (encontrados en las interacciones (encontrados en las interacciones previas), incluyendo su ruta m previas), incluyendo su ruta m s corta s corta y la distancia desde el origen. (Estos y la distancia desde el origen. (Estos nodos y el origen se llamar nodos y el origen se llamar n nodos n nodos resueltos; el resto son nodos no resueltos; el resto son nodos no resueltos). resueltos). 8 3. 3. Candidatos para el n Candidatos para el n- - simo simo nodo nodo m m s cercano: Cada nodo resuelto s cercano: Cada nodo resuelto que que sta conectado directamente sta conectado directamente por una ligadura con uno o m por una ligadura con uno o m s s nodos no resueltos proporcionan nodos no resueltos proporcionan un candidato, y este es el nodo no un candidato, y este es el nodo no resuelto que tiene la ligadura m resuelto que tiene la ligadura m s s corta. (Los empates proporcionan corta. (Los empates proporcionan candidatos adicionales). candidatos adicionales). 9 4. 4. C C lculo del n lculo del n- - simo simo nodo m nodo m s cercano: s cercano: Para cada nodo resuelto y sus Para cada nodo resuelto y sus candidatos, se suma la distancia entre candidatos, se suma la distancia entre ellos y la distancia de la ruta m ellos y la distancia de la ruta m s corta s corta desde el origen a este nodo resuelto. desde el origen a este nodo resuelto. El candidato con la distancia total m El candidato con la distancia total m s s peque peque a es el n a es el n- - simo simo nodo m nodo m s s cercano (los empates proporcionan cercano (los empates proporcionan nodos resueltos adicionales y su ruta nodos resueltos adicionales y su ruta m m s corta es la que genera esa s corta es la que genera esa distancia). distancia). 10 EJ EMPLO 1 EJ EMPLO 1 Ruta m Ruta m s corta s corta Lineas Lineas Fairway Fairway Van Van Determine la ruta mas corta entre Seattle y El Paso Determine la ruta mas corta entre Seattle y El Paso para la siguiente red de carreteras. para la siguiente red de carreteras. Salt Lake City 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 El Paso Seattle Boise Portland Butte Cheyenne Reno Sac. Bakersfield Las Vegas Denver Albuque. Kingman Barstow Los Angeles San Diego Tucson Phoenix 599 691 497 180 432 345 440 102 452 621 420 526 138 291 280 432 108 469 207 155 114 386 403 118 425 314 602 3 SEA. SEA. Salt Lake City 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 El Paso Seattle Boise Portland Butte Cheyene Reno Sac. Bakersfield Las Vegas Denver Albuque. Kingman Barstow Los Angeles San Diego Tucson Pheonix 599 691 497 180 432 345 440 102 452 621 420 526 138 291 280 432 108 469 207 155 114 386 403 118 425 314 BUT 599 POR 180 497 BOI 5 9 9 1 8 0 4 9 7 POR. POR. BOI 432 SAC 602 + + = = 6 1 2 7 8 2 BOI BOI BOI. BOI. 345 SLC + = 8 4 2 BUT. BUT. SLC 420 CHY. 691 + + = = 1 1 1 9 1 2 9 0 SLC. SLC SLC. SAC. SAC. Una representacin del algoritmo de Dijkstras Y de esta manera hasta cubrir toda la red.. 14 Soluci Soluci n n - - Analog Analog a de un problema de programaci a de un problema de programaci n n lineal lineal - - Variables de decisi Variables de decisi n n X X ij ij = 1 si un transporte debe viajar por la carretera que = 1 si un transporte debe viajar por la carretera que une la ciudad i con la ciudad j. une la ciudad i con la ciudad j. 0 0 En cualquier otro caso En cualquier otro caso Objetivo = Minimizar Objetivo = Minimizar d d ij ij X X ij ij 15 7 2 Salt Lake City 1 3 4 Seattle Boise Portland 599 497 180 432 345 Butte [El numero de carreteras para salir de Seattle (Nodo de inicio)] = 1 X12 + X13 + X14 = 1 De una forma similar: [El nmero de carreteras para llegar a El Paso (Nodo final)] = 1 X12,19 + X16,19 + X18,19 = 1 [El nmero de carreteras para entrar a la cuidad] = [El nmero de carreteras para salir de la ciudad]. Por ejemplo, en Boise(Ciudad 4): X14 + X34 +X74 = X41 + X43 + X47. Sujeto a las siguientes restricciones Restricciones mayores que cero 16 Solucin Optima por WINQSB Solucin Optima por WINQSB 17 EJ EMPLO 2 EJ EMPLO 2 Ruta m Ruta m s corta s corta 18 Una empresa distribuidora surte a 7 supermercados con Una empresa distribuidora surte a 7 supermercados con distintas ubicaciones. distintas ubicaciones. Los administradores desean conocer la distancia m Los administradores desean conocer la distancia m s corta s corta a cada uno de ellos, as a cada uno de ellos, as como las distancias ( como las distancias (Km Km) ) 4 19 SOLUCI SOLUCI N N CON WINQSB CON WINQSB 20 M M todo tabular todo tabular 8 2 4 3 3 21 22
23 EJ EMPLO 3 EJ EMPLO 3 RUTA M RUTA M S CORTA S CORTA 24 ENCONTRAR LA RUTA MS CORTA ENTRE O Y T. LOS NMEROS SOBRE LOS ARCOS SE MIDEN EN MILLAS. 5 25 SOLUCI SOLUCI N N 26 (2, 0) 27 (2, O) (4,O) 28 (2, O) (4,O) (5,O) 29 (2, O)* (4,O)* (5,O) (2,A) (4,A)* 30 (2, O)* (4,O)* (5,O) (2,A) (4,A)* (7,A) (3,B) 6 31 (2, O)* (4,O)* (5,O) (2,A) (4,A)* (7,A) (8,B)* (3,B) (7,B)* 32 (2, O)* (4,O)* (5,O) (2,A) (4,A)* (7,A) (8,B)* (3,B) (7,B)* (7,E) 33 (2, O)* (4,O)* (5,O) (2,A) (4,A)* (7,A) (8,B)* (3,B) (7,B)* (7,E) (13,D)* LA RUTA MS CORTA REQUIERE 13 MILLAS. 34 Forma tabular Forma tabular 35 EJ EMPLO 4 EJ EMPLO 4 RUTA M RUTA M S CORTA S CORTA 36 7 37 38 Soluci Soluci n n 39 40 41 42 8 43 44 45 310 46 47 (0,1)* (110,1)* (110,2) (160,3) (455,1) (610,1) (185,1)* (295,2)* (310,2) (420,2)*(455,2) (565,2) (235,3) (420,3) (360,3) (545,3) (160,4) (455,4) (235,4) (530,4)* (160,5) (580,5) 48 EJ EMPLO 5 EJ EMPLO 5 RUTA M RUTA M S CORTA S CORTA 9 49 El costo de un autom El costo de un autom vil cuesta 12,000 vil cuesta 12,000 d d lares, el costo de mantenimiento depende lares, el costo de mantenimiento depende de la edad del auto al inicio del a de la edad del auto al inicio del a o (ver o (ver tabla). tabla). Con la finalidad de evitar el costo de Con la finalidad de evitar el costo de mantenimiento alto, se da como cuota inicial mantenimiento alto, se da como cuota inicial de un nuevo que es valorado de acuerdo a su de un nuevo que es valorado de acuerdo a su edad (ver tabla). edad (ver tabla). La preocupaci La preocupaci n es minimizar el costo neto n es minimizar el costo neto incurrido en los pr incurrido en los pr ximos 5 a ximos 5 a os. os. 50 50 5 12000 1000 4 9000 2000 3 5000 6000 2 4000 7000 1 2000 PRECIO DEL AUTO POR COTA INICIAL EDAD DEL AUTO PRECIO DE MANTENIMIENTO ANUAL 51 SOLUCI SOLUCI N N 52 La red tendr La red tendr a {1,2,3,4,5,6} seis nodos el nodo i a {1,2,3,4,5,6} seis nodos el nodo i corresponde al inicio del a corresponde al inicio del a o i; para i < j o i; para i < j El arco (i, j) corresponde a la compra del auto nuevo El arco (i, j) corresponde a la compra del auto nuevo al inicio del a al inicio del a o i y conservarlo hasta el inicio del a o i y conservarlo hasta el inicio del a o o j. j. La longitud del arco (i, j): llamado La longitud del arco (i, j): llamado Ci Ci, j es el costo , j es el costo neto total incurrido por ser el due neto total incurrido por ser el due o y tener el auto o y tener el auto desde el inicio del a desde el inicio del a o i hasta el principio del a o i hasta el principio del a o j, si o j, si se compra un auto nuevo al inicio del a se compra un auto nuevo al inicio del a o i y se da o i y se da como adelanto al inicio del a como adelanto al inicio del a o j o j 53 54 En miles de pesos: En miles de pesos: C12 C12 = = 2 2 + + 12 12 7 7 = 7 = 7 C13 C13 = = 2 2 + + 4 4 + + 6 6 = 12 = 12 C14 C14 = = 2 2 + + 4 4 + + 5 5 + + 12 12 2 2 = 21 = 21 C15 C15 =2 + 4 =2 + 4 + 5 + 5 + + 9 9 + + 12 12 1 = 31 1 = 31 C16 C16 =2+ =2+ 4 4 +5 +5 +9 +9 + + 12 12 + 12 = 44 + 12 = 44 C23 C23 = = 2 2 + + 12 12 7 7 = = 7 7 C24 C24 = = 2 2 + + 4 4 + + 12 12 6 6 = = 12 12 C25 C25 =2+ =2+ 4+ 4+ 5 5 + + 12 12 2 2 = 21 = 21 C26 C26 =2 =2 + + 4 4 +5 +5 +9 +9 +12 +12 1 = 31 1 = 31 10 55 56 (31,4)* (31,4)* (7,5) (7,5) (24,3)* (24,3)* (12,4) (12,4) (7,4) (7,4) (19,2)* (19,2)* (21,3) (21,3) (12,3) (12,3) (7,3) (7,3) (31,2) (31,2) (21,2) (21,2) (12,2) (12,2) (7,2) (7,2) (44,1) (44,1) (31,1) (31,1) (21,1) (21,1) (12,1)* (12,1)* (7,1)* (7,1)* (0,1)* (0,1)* 57 2