Documente Academic
Documente Profesional
Documente Cultură
2005
UNIVERSIDAD DE CHILE
FACULTAD DE CIENCIAS FSICAS Y MATEMTICAS
DEPARTAMENTO DE INGENIERA MATEMTICA
COMISIN EXAMINADORA
CALIFICACIONES
NOTA(no )
(Letras)
FIRMA
: ..........
........................................
....................
: ..........
........................................
....................
: ..........
........................................
....................
: ..........
........................................
....................
: ..........
........................................
....................
PROFESOR GUA
SR. CRISTIN CORTS
PROFESOR CO-GUA
SR. MARTN MATAMALA
PROFESOR INTEGRANTE
SR. ROBERTO COMINETTI
PROFESOR INVITADO
SANTIAGO DE CHILE
JUNIO 2005
RESUMEN DE LA MEMORIA
PARA OPTAR AL TTULO DE
INGENIERO CIVIL MATEMTICO
POR: CLAUDIO CONTARDO VERA.
FECHA: 06 DE JUNIO DE 2005
PROF. GUA: SR. CRISTIN CORTS CARRILLO.
RESUMEN
El objetivo de esta memoria es introducir el concepto de trasbordo al Problema de Recoger
y Dejar Pasajeros, tanto en su formulacin como en algoritmos que lo resuelvan. Este intento
por introducir tal concepto es porque genera una gran flexibilidad en los sistemas de recoger y
dejar pasajeros, cuestin esencial al momento de evaluar un sistema de alta demanda en el que
la rigidez de un sistema sin trasbordos hace poco viable la existencia de tal sistema.
La metodologa usada durante esta memoria es la de adaptar resultados ya descritos por
otros investigadores para sistemas sin trasbordos.
Se har una formulacin detallada del problema de recoger y dejar pasajeros con trasbordos
y ventanas de tiempo. Para ello se han considerado las diversas formulaciones de este problema
en ausencia de trasbordos, y se propone una que junto con introducir el concepto de trasbordo,
generaliza el Problema de Recoger y Dejar Pasajeros. Se presenta una formulacin lineal del
problema y se demuestran propiedades que explican por qu esta formulacin modela de buena
forma el problema en cuestin.
A continuacin se presentan soluciones exactas al problema basadas en el Principio de
Programacin Dinmica y en la Descomposicin de Benders para problemas semi-enteros.
Finalmente se presentan algoritmos heursticos de solucin al problema con demanda esttica, trasbordos y ventanas de tiempo, para culminar con la extensin al caso de demanda
variable en tiempo real, trasbordos y ventanas de tiempo. Se presentan resultados numricos
que muestran las propiedades, ventajas y desventajas de cada uno de los algoritmos.
Agradecimientos
Detrs de esta memoria no hay tan solo un ao y algo ms de trabajo, que es lo que ha
demorado este documento en tomar su forma final. Hay muchas personas, y todas de ellas han
dado lo mejor de s durante mucho tiempo para que esto as sea. Es por eso que me atrevo
a decir que detrs de esta memoria hay varios cientos de aos, muchos kilos de amor, otros
tantos metros de cario y muchos, pero muchos, pascales de comprensin. En estas lneas
quisiera agradecer a una pequea parte de las personas que han participado en mi vida, y por
qu no decirlo, en esta memoria.
A mis padres Ricardo y Liliana, quienes han dedicado los ltimos 26 aos de su vida a
criarme, entregndome valores slidos y principios fundamentales que debieran regir la vida
de cualquier persona de bien.
A mis abuelos Gloria, lvaro, Gladys y Segundo, quienes han dedicado los ltimos 26 aos
de su vida a malcriarme. La suerte de pocos he tenido de poder compartir con ellos cosas tan
lindas y trascendentales en mi vida.
A Vanessa, en quien pude encontrar comprensin incondicional, muchas veces injustificada
de mi parte. Con ella conoc el significado de la palabra amor, y ella conmigo conoci el de la
palabra paciencia.
A mis hermanos Sebastin y Cristbal, quienes me han dado su amor fraternal y han sido
blanco constante de mis descargas emocionales sintetizadas en un buen coscacho o algo por el
estilo.
A mis profesores guas, Cristin y Martn, por sus sabios consejos, gracias a los cuales esta
memoria tom la forma que ahora puede verse. A los profesores de la comisin, Roberto y Juan
Carlos, por dedicar parte importante de su tiempo a escucharme y orientarme en el desarrollo
de esta investigacin.
A mi ta Marta quien ha sido parte importantsima en mi nutricin y flojera. Sin ella hubiese
tenido que ordenar mi pieza y prepararme el almuerzo todos los das.
A Tommy, la bola de pelos que me espera cada da en la casa sin esperar nada de mi parte.
Su amor incondicional, solo comparable al de un buen amigo.
A mis compaeros y amigos con quienes compart mis ltimos aos de estudio. Solo por
nombrar algunos: Pechu, Guatn Sport, Rojo, Pablo Miranda, Cristin Navas, Rodrigo Escudero.
A Conicyt, por su financiamiento a travs del Proyecto Fondecyt 1030700. A la Iniciativa
Cientfica Milenio a travs de sus proyectos en Sistemas Complejos de Ingeniera e Informacin y Aleatoriedad.
Y por ltimo, a mi mismo por ser como soy.
A mi tata lvaro.
ndice General
Introduccin
1.1
1.2
Motivacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3
Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Revisin Bibliogrfica
2.1
2.2
2.3
11
Incorporacin de Trasbordos . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
23
3.1
3.2
3.2.2
Ventanas de Tiempo . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.2.3
38
Mtodos Exactos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
1
NDICE GENERAL
4.2
4.1.1
Programacin Dinmica . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.1.2
Mtodos Heursticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.2.1
4.2.2
4.2.3
4.2.4
Demanda Dinmica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Resultados
73
5.1
Pruebas de Velocidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.2
Pruebas de Calidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
80
88
A.1 Definiciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
A.2 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
B Descomposicin de Benders
93
Lista de Figuras
1.1
1.2
Red de Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3
3.1
Modelacin de un Trasbordo . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.1
4.2
5.1
Lista de Tablas
5.1
5.2
5.3
5.4
Captulo 1
Introduccin
C APTULO 1. I NTRODUCCIN
1.1
Una empresa de transporte de pasajeros consta de una flota predefinida de m vehculos con
capacidad para Q pasajeros cada uno. As mismo, existe una demanda ubicada en distintos
puntos de la ciudad que desea viajar, cada uno, desde un punto de origen a un punto de destino.
La pregunta que cabe hacerse entonces es, Cul es la manera ptima de rutear los vehculos
con el fin de satisfacer toda la demanda de clientes minimizando cierta funcin objetivo?.
El problema antes descrito es conocido como el Problema de Recoger y Dejar Pasajeros
que ha sido bastante estudiado y para el cual existe gran cantidad de literatura, ya sea para
formularlo como para resolverlo.
Si ahora existen puntos de la ciudad en los cuales los vehculos pueden interactuar entre
ellos traspasndose pasajeros unos a otros (es decir, nodos de transferencia de pasajeros), y
se quiere resolver el mismo problema planteado antes pero con la libertad de permitir a los
vehculos interactuar en los nodos de trasbordo, Se podran obtener mejores soluciones que si
no se considerara esta posibilidad?.
La respuesta a priori debera ser S, ya que una solucin factible para el problema sin
trasbordo es tambin factible para el problema con trasbordos, y por lo tanto se incrementa el
conjunto de soluciones factibles.
R1
R1
R2
R2
Ahora bien, ha quedado claro el concepto de trasbordo, como un nodo especial donde los
vehculos interactan entre s intercambiando pasajeros, sin embargo no hemos dicho nada
C APTULO 1. I NTRODUCCIN
acerca de la demanda o de las posibles caractersticas de la funcin objetivo. Para el conocimiento de la demanda existen bsicamente dos opciones:
1. Demanda conocida, a la cual llamaremos esttica (porque no vara durante el tiempo en
que el despachador decide el ruteo o durante la evolucin misma del sistema)
2. Demanda variable, aquella que puede variar ya sea durante el tiempo en el cual el despachador decide las rutas o durante el trascurso del ruteo mismo de los vehculos
Ambos casos son igualmente interesantes pues ambas situaciones ocurren en la realidad.
En este estudio se proponen maneras de resolver ambas instancias del problema.
Tambin aparece el concepto de ventanas de tiempo, que corresponde a una restriccin
temporal en la cual los clientes deciden a priori (y por lo tanto es una informacin del sistema)
intervalos de tiempo en los cuales desean ser atendidos. En esta memoria se proponen 2 formas
de incorporar estas restricciones temporales y se analizan sus ventajas y desventajas.
1.2
Motivacin
A continuacin se detalla la notacin que ser utilizada a lo largo del captulo. Ms adelante
esta notacin podr variar segn sean las necesidades y complejidades del problema particular.
Los vehculos se denotarn con la letra k indexados por algn subndice, luego el vehculo
1 ser identificado como k1 y as sucesivamente. Cada vehculo tendr asociado un depot dk j
R2 . Los clientes se notarn por i y sus nodos origen/destino vendrn dados por el par (i+ , i )
donde cada componente tambin es un vector de R2 . El trasbordo vendr etiquetado como T .
Sea entonces la siguiente instancia del problema:
2 Vehculos, con depots en las siguientes posiciones
d k1 =
831
270
d k2 =
274
106
C APTULO 1. I NTRODUCCIN
910 702
775 , 115
(2+ , 2 ) =
541 558
208 , 94
(3+ , 3 ) =
411 916
755 , 650
(4+ , 4 ) =
769 97
542 , 767
(5+ , 5 ) =
2 971
36 , 14
589
397
2+
dk1
3
4+
4
3+
1+
Se desea minimizar la distancia (euclidiana) total recorrida por los vehculos desde que
salen del depot hasta que atienden al ltimo nodo.
C APTULO 1. I NTRODUCCIN
La Figura 1.3 muestra las rutas ptimas sin y con uso del trasbordo. La optimalidad de estas
rutas puede ser verificada enumerando todas las rutas factibles y quedndose con las de menor
costo.
(0, 0)
(0, 0)
2
5+
d k2
5+
d k2
2+
2+
dk1
dk1
4+
4
3+
4+
1+
3+
1+
Considerando la funcin objetivo antes descrita, los costos obtenidos para ambas soluciones
son de 3885 [UD] para aquella que no hace uso del trasbordo y de 3796 [UD] para aquella que
s lo hace.
Con esto se evidencia que en este caso existe una ganancia REAL al incorporar la opcin
de hacer trasbordo por parte de los vehculos.
Una vez que se ha comprendido la necesidad de incorporar trasbordos al sistema, obteniendo una flexibilidad del mismo que permite potencialmente obtener soluciones de mejor calidad
que para el problema sin trasbordos, es que surgen inmediatamente las preguntas: Cmo formular matemticamente este problema?, Cmo encontrar soluciones al problema de manera
eficiente?
Responder estas preguntas resulta algo no trivial, y contestando a esta necesidad es que
C APTULO 1. I NTRODUCCIN
10
1.3
Objetivos
Captulo 2
Revisin Bibliogrfica
11
12
Esta revisin bibliogrfica se divide en tres secciones: En la primera seccin se hace referencia a lo existente en la literatura acerca de Problemas de Ruteo de Vehculos, mencionando
tanto el tipo de problemas que se ha atacado, como sus formulaciones y soluciones propuestas por los distintos autores. En la segunda seccin se centrar el anlisis en el Problema de
Recoger y Dejar Pasajeros, se muestran tanto las formulaciones existentes como los distintos
mtodos de solucin propuestos por los autores. Finalmente, se da una breve descripcin de cmo antes se ha enfrentado la incorporacin de trasbordos en sistemas de transporte de pasajeros
puerta a puerta.
2.1
Para comenzar con esta revisin, es necesario remontarse al ao 1956 cuando Flood (1956)
plantea el Problema del Vendedor Viajero (TSP).
El problema se puede plantear como sigue:
Un vendedor (viajero por cierto) necesita visitar n puntos de la ciudad, sin importar el
orden en que lo haga, cada uno exactamente una vez y en el menor tiempo posible.
En el contexto de lo que se ver ms adelante, podramos decir que el vendedor viajero es
asociable a un operador de un servicio puerta a puerta que debe atender a la demanda ubicada
en la posicin de cada uno de los n nodos que debe visitar.
Luego de la aparicin de el problema del vendedor viajero y de su formulacin, aparece el
Problema de Ruteo de Vehculos (VRP), que es una generalizacin del TSP, y que se enuncia
como sigue:
Se cuenta con una flota de m vehculos cada uno con capacidad Q, y se necesita despachar
carga a n puntos de la ciudad partiendo cada vehculo desde algn depot. Cada uno de los
puntos i tiene asociada una demanda di que debe ser satisfecha por uno y solo uno de los
vehculos.
Dentro de los VRP existen diversas variaciones al modelo original, por ejemplo el Problema
13
de Ruteo de Vehculos con Ventanas de Tiempo (VRPTW) en que a cada nodo de demanda i se
le asocia un par de valores (li , ui ) que representan un intervalo de tiempo dentro del cual debe
ser atendido el nodo i. Est el Problema de Ruteo de Vehculos con Carga/Descarga (VRPB) en
el cual la demanda se puede dividir en 2 conjuntos B y L, el primero de los nodos de oferta y el
segundo de nodos demanda. cada nodo debe ser visitado una sola vez y por tan solo un vehculo
y se debe satisfacer toda la oferta/demanda de los nodos. Por ltimo tenemos al Problema de
Recoger y Dejar Pasajeros (PDP) en el cual cada cliente i tiene asociado un par origen/destino
(i+ , i ) donde debe ser recogido/entregado respectivamente. El detalle de estos problemas se
encuentra con mayor profundidad descrito en Toth y Vigo (2002).
2.1.1
Para resolver distintas instancias del VRP, VRPTW y VRPB se han desarrollado varios algoritmos, que se pueden dividir en mtodos exactos y mtodos aproximados.
Mtodos Exactos
Dentro de los mtodos exactos para resolver el VRP, destacan los algoritmos del tipo Ramificacin y Acotamiento (R&A), Ramificacin y Corte (R&C) y Particin de Conjuntos Generacin de Columnas (PC-GC).
Dentro de los algoritmos de tipo R&A, destacan los trabajos de Laporte, Mercure y Nobert
(1986); Fischetti, Toth y Vigo (1994); Fisher (1994). La idea de estos trabajos es la de dar
cotas inferiores a las soluciones de los respectivos problemas, por medio de relajaciones de
las variables enteras o eliminacin de algunas restricciones. Con estas relajaciones se llega a
problemas conocidos en la literatura con soluciones rpidas y que representan cotas para el
valor del problema original.
Laporte et al. (1986) transforma el problema VRP original en un Problema de Transporte
(para el caso asimtrico) o en un Problema de Asignacin (para el caso simtrico) mediante la
relajacin de las variables enteras y la eliminacin de las restricciones de capacidad. Lamen-
14
tablemente las cotas obtenidas mediante esta relajacin son muy pobres, obteniendo un gap
promedio entre la cota y la solucin ptima del problema cercana al 9 % para el caso asimtrico y sobre un 30 % para el caso simtrico (ver Toth y Vigo 2002). La complejidad de los
mtodos son O(|V |3 ) y O(|V |2 |E|) respectivamente, donde G = (V, E) es el grafo que modela
la instancia del problema.
Fischetti et al. (1994) propone dos procedimientos aditivos para calcular cotas inferiores.
Los procedimientos son aditivos en el sentido de que se para la iteracin i-sima se usa como
entrada la salida de la iteracin (i 1)-sima y prueba en ambos casos que la suma de las cotas
obtenidas son cotas inferiores del VRP. Para uno de los procedimientos se prueba que la cota
obtenida domina a la cota de Laporte et al. (1986), pero se debe pagar un costo computacional
alto (en ambos casos O(n4 )). Toth y Vigo (2002) muestra que las cotas obtenidas con este
mtodo son mejores que las obtenidas usando los mtodos de Laporte et al. (1986) tanto para
el caso simtrico como para el asimtrico.
Tanto en los trabajos de Laporte como de Fischetti, las cotas son aplicadas al comienzo del
algoritmo de R&A, y se proponen distintas estrategias de ramificacin.
Los algoritmos de tipo R&C proponen la agregacin de nuevos cortes o desigualdades
vlidas al poltopo factible de soluciones del problema. Las desigualdades propuestas en su
mayora son adaptaciones de cortes vlidos para el TSP simtrico (STSP) (ver Cornujols,
Fonlupt y Naddef 1985; Naddef y Rinaldi 1993). Toth y Vigo (2002) muestran con detalle como
estas desigualdades se pueden aplicar al VRP. Estas desigualdades han mostrado tener bastante
xito en la resolucin de problemas, pero lamentablemente dependen mucho de la estructura
particular del VRP. Otro problema que se ha encontrado es que muchas de las desigualdades
vlidas para este problema son deducibles a partir de la solucin de problemas tan complejos
como el original y se ha necesitado desarrollar heursticas que permitan encontrar cortes de
manera rpida.
Los algoritmos de tipo Particin de Conjuntos - Generacin de Columnas se basan en el
mtodo de descomposicin de Dantzig-Wolfe (Dantzig y Wolfe 1960). La idea clave consiste
15
en enumerar todas las rutas factibles para todos los vehculos y resolver el problema de setcovering asociado. Lamentablemente, como la cantidad factible de rutas es exponencial en el
nmero de nodos es inviable computacionalmente resolver directamente este problema.
Una tcnica para resolverlo consiste en enumerar un set ms pequeo de rutas factibles y
resolver el problema relajado para ese set de rutas ms pequeo. Como una solucin ptima de
este problema no necesariamente es solucin ptima del problema original (el relajado con la
enumeracin de todas las rutas) se usa una tcnica para encontrar rutas que no est consideradas
en el subconjunto de rutas inicial y que bajen el costo de la solucin. Lamentablemente, el
algoritmo para encontrar dichas rutas tambin es difcil computacionalmente (requiere resolver
el TSP eficientemente). Agarwal, Marthur y Salkin (1989); Desrochers, Desrosiers y Solomon
(1992); Bixby, Coullard y Simchi-Levi (1997) desarrollan distintas tcnicas para resolver el
problema de encontrar nuevas rutas.
Otra visin es la de intentar resolver directamente el problema de set-covering mediante
tcnicas de ramificacin y corte (ver Padberg y Rinaldi 1991; Hoffman y Padberg 1993). La
limitacin de estos mtodos es que encuentran la mejor solucin para un set determinado de
rutas elegido a priori, sin embargo no asegura optimalidad en el sentido de encontrar el mnimo
para el set completo de rutas factibles.
Finalmente, Desrochers et al. (1992) resuelven el problema mediante un mtodo de ramificacin y precio en el cual en cada nodo del rbol de bsqueda se generan nuevas columnas y
se agregan al problema. Este mtodo a diferencia de los anteriores asegura optimalidad de las
soluciones.
Mtodos Aproximados
Los mtodos aproximados pueden dividirse en dos grandes grupos. Los mtodos heursticos y
los meta-heursticos. De los primeros podemos mencionar los mtodos de ahorro de tiempo y
los mtodos de insercin, principalmente.
En los mtodos de ahorro de tiempo estn los trabajos de Clarke y Wright (1964); Des-
16
rochers y Verhoog (1989); Wark y Holt (1994). Estos mtodos buscan mezclar rutas con un
criterio de pegado entre ellas.
Por ejemplo, Clarke y Wright (1964) computan los ahorros de tiempo de mezclar dos rutas
si se pegan formando una nica ruta. Partiendo con rutas que inicialmente contienen tan solo
un nodo se mezclan rutas hasta que ya no exista forma de ahorrar tiempo mezclando un par de
ellas.
Los mtodos de insercin en cambio, parten con rutas inicialmente vacas (o que contienen
un nico nodo) e iterativamente evalan la mejor forma de insertar un nodo en alguna ruta, y
se quedan con el par (nodo, ruta) que representa la mejor insercin. Dentro de estas heursticas tenemos los trabajos de Mole y Jameson (1976); Christofides, Mingozzi y Toth (1979);
Solomon (1987).
Dentro de los mtodos metaheursticos estn Recocido Simulado, Recocido Determinstico, Bsqueda Tab, Algoritmos Genticos, etc. (ver Toth y Vigo 2002). A diferencia de los
mtodos heursticos clsicos, en un mtodo metaheurstico el algoritmo puede considerar pasar
de una solucin xt a otra xt+1 cuyo costo sea mayor.
Los mtodos de Recocido Simulado funcionan de la siguiente manera:
Durante la iteracin t, se tiene una solucin xt de costo c(xt ). Dentro de una vecindad N (xt )
se elige aleatoriamente un miembro x N (xt ) de costo c(x). Si c(x) < c(xt ) entonces se hace
xt+1 = x. En caso contrario
xt+1 =
x,
con probabilidad pt ,
(2.1)
xt , con probabilidad 1 pt .
donde pt en general es una funcin decreciente en t a valores en [0,1]. En la forma que tenga
pt y el como se definen las vecindades N (x) se encuentran los distintos mtodos propuestos
en la literatura (ver Robust, Daganzo y Souleyrette 1990; Alfa, Heragu y Chen 1991; Osman
1993).
Cuando la aceptacin de una nueva solucin viene dada por un criterio determinstico se
17
2.2
El Problema de Recoger y Dejar Pasajeros (PDP) se plantea como una especificacin del VRP.
En este problema se cuenta con una flota de m vehculos y de n clientes. Cada cliente i tiene
asociado un par de nodos (i+ , i ) que en adelante llamaremos nodos origen y destino del cliente
i, respectivamente. Cada cliente i debe ser recogido en su origen i+ por algn vehculo y luego
ese mismo vehculo1 debe ir a dejarlo a su lugar de destino. El problema se puede plantear
como minimizar cierta cantidad (distancia recorrida por los vehculos, tiempos de viaje/espera
de los clientes, etc.) sujeto a satisfacer la demanda de los n clientes.
Savelsbergh y Sol (1995) formula matemticamente el PDP como un Mixed Integer Programming (MIP), como puede verse en la pgina 18.
1 Es
una de las restricciones que se relajan en la formulacin del Problema de Recoger y Dejar Pasajeros con
Trasbordos
18
f (x)
mn
x
(2.2)
s. a.
(2.3)
zki = 1
i C
(2.4)
i C, l {i+ , i }, k M
(2.5)
kM
xlkj =
jV W
xkjl = zki
xkk+ j = 1
k M
(2.6)
k
xik
=1
k M
(2.7)
Dk + = 0
k M
(2.8)
Di+ 6 Di
i C
(2.9)
jV W
jV {k }
jV {k }
xikj = 1 Di + ti j 6 D j
(i, j) E, k M
(2.10)
k M
(2.11)
i C, l {i+ , i }
(2.12)
(i, j) E, k M
(2.13)
xikj {0, 1}
(i, j) E, k M
(2.14)
zki {0, 1}
i C, k M
(2.15)
i V
(2.16)
yk+ = 0
yl 6
Qk zki
kM
xikj = 1 yi + qi = y j
Di , yi > 0
Para representar el problema se usan cuatro tipos de variables: xikj con (i, j) E, k M
donde E es el conjunto de nodos del grafo y M el conjunto de vehculos. Estas variables son
binarias e iguales a 1 si el vehculo k usa el arco (i, j), 0 en caso contrario. zki igual a 1 si
el cliente i C es asignado al vehculo k, 0 en caso contrario. Di con i V variable real
representando el tiempo en que el nodo i es atendido. yi variable real representando la carga del
vehculo que atiende al nodo i al llegar a l. Se tienen constantes ti j representando el tiempo de
viaje entre i y j, qi representando la carga (o cantidad de pasajeros) asociados al cliente i y Qk
19
2.2.1
Al igual que en la seccin anterior, los mtodos existentes en la literatura son tanto exactos y
aproximados.
Mtodos Exactos
Psaraftis (1980, 1983); Desrosiers, Dumas y Soumis (1986) plantean algoritmos de programacin dinmica para resolver el Problema de Recoger y Dejar Pasajeros. Psaraftis (1983);
Desrosiers et al. (1986) resuelven minimizando la distancia total recorrida por los vehculos
considerando ventanas de tiempo duras, mientras que Psaraftis (1980) considera la insatisfaccin a los usuarios sin ventanas de tiempo. Estos algoritmos definen estados del sistema y las
funciones costo de la transicin para pasar de un estado a otro.
Por ejemplo Psaraftis (1983) resuelve el Problema de Recoger y Dejar Pasajeros con Ventanas de Tiempo para 1 vehculo con ventanas de tiempo duras y resuelve para la distancia recorrida por los vehculos. Para ello define los estados del sistema como la posicin del vehculo
L y los estados de los clientes ki (1 si aun estn esperando, 2 si estn sobre el vehculo y 3 si
20
ya han sido entregados en su destino). define las transiciones como los posibles lugares L0 a los
cuales se puede ir desde L ya sea para ir a buscar a un cliente que an no ha sido recogido o
para ir a dejar a un cliente a bordo.
Desrosiers et al. (1986) tambin resuelven el Problema de Recoger y Dejar Pasajeros para
1 vehculo. Definen los estados como (S, i) y dicen que tal estado es factible si existe una ruta
que pase por todos los nodos en S y termine en i. Basado en esta definicin, proponen una
tcnica para reducir el espacio de los estados factibles. Son capaces de resolver instancias de
hasta 40 clientes.
Dumas, Desrosiers y Soumis (1991) proponen un mtodo de generacin de columnas para
resolver el Problema de Recoger y Dejar Pasajeros con Ventanas de Tiempo, usando la descomposicin de Dantzig-Wolfe. Lo que hacen en trminos generales es definir las columnas como
rutas de vehculos. Se reporta en Toth y Vigo (2002) que son capaces de resolver instancias de
hasta 50 clientes.
Ruland y Rodin (1997) formulan el Problema de Recoger y Dejar Pasajeros como un MIP
y estudian la estructura poliedral del poltopo que se define. Dan como resultado 4 tipos de
desigualdades vlidas para el Problema de Recoger y Dejar Pasajeros basndose en el TSP
con restricciones de precedencia. Mediante el mtodo de ramificacin y corte que proponen
son capaces de resolver instancias de hasta 15 clientes.
Lu y Dessouky (2004) en el trabajo ms reciente que se reporta en la literatura para resolver
el Problema de Recoger y Dejar Pasajeros con Ventanas de Tiempo, formulan el problema multivehculo con ventanas de tiempo blandas como un MIP y proponen 4 tipo de desigualdades
vlidas para el problema, proponen tambin un mtodo para la ramificacin de las variables
0-1, todo esto enmarcado en la resolucin por medio de un mtodo de ramificacin y corte.
Logran resolver instancias de hasta 17 clientes en un tiempo de 3 horas.
Mtodos Aproximados
Sexton y Bodin (1985a,b) proponen un mtodo heurstico basado en la descomposicin de
21
Benders Benders (1962) del Problema de Recoger y Dejar Pasajeros. Ellos minimizan la desutilidad de los pasajeros y descomponen el problema en un problema de ruteo con variables
binarias y en cada subproblema resuelven un problema de scheduling.
Jaw, Odoni, Psaraftis y Wilson (1986) resuelven el Problema de Recoger y Dejar Pasajeros
con Ventanas de Tiempo (duras) mediante una heurstica de insercin. En el problema que
ellos resuelven, un cliente especifica una hora deseada para su recogida o dejada (pero no para
ambas), una ventana temporal que acota la llegada a tal nodo, y el tiempo de viaje es acotado
como funcin del tiempo de viaje directo desde el origen hacia el destino. En este contexto, las
ventanas que consideran son duras, y cualquier insercin que no satisfaga estas condiciones se
considera infactible.
Cullen, Jarvis y Ratliff (1981) por primera vez introducen el concepto de cluster para el
Problema de Recoger y Dejar Pasajeros, o ventana espacial donde clientes cercanos se asocian
a un mismo cluster y se limita su atencin a un subconjunto de vehculos determinado para
atender tal cluster. El gran problema que presentan los clusters es que un mismo cliente cuyo
par origen/destino est distanciado debera estar en 1 solo cluster. Recogiendo esta inquietud
Dumas, Desrosiers y Soumis (1989) propone la incorporacin de mini-clusters donde un cluster
representa una regin asimilable a un segmento de ruta.
2.3
Incorporacin de Trasbordos
La inclusin de trasbordos en operaciones de este tipo ha sido tratada en la literatura con anterioridad. Sorprendentemente, no existe una formulacin estricta del Problema de Recoger y
Dejar Pasajeros con Trasbordos basndose en el problema original sin trasbordos, ms bien
se proponen formas de operacin a priori, y se optimizan etapas del viaje, o bien, se optimiza
la operacin dentro de zonas alimentadoras, y se coordina la operacin en los trasbordos con
lneas troncales de ruta fija. Podemos encontrar muchos trabajos donde se trata la operacin
eficiente de los nodos de trasbordo. Corts y Jayakrishnan (2005) hacen una completa revisin
22
Captulo 3
Formulacin del Problema de Recoger y
Dejar Pasajeros con Trasbordos
23
C APTULO 3. F ORMULACIN
3.1
DEL
PDPT
24
En el Problema de Recoger y Dejar Pasajeros se cuenta con una flota de vehculos y un conjunto de clientes definidos a priori, y cada uno de esos clientes han especificado un origen y un
destino para su viaje. Se pueden distinguir los siguientes conjuntos
(PDP1)
V 0 = N M+ M
E 0 = {(i, j) : i M + , j C+ } {(i, j) : i, j N, i 6= j} {(i, j) : i C , j M }
El problema de encontrar rutas Rk , k M tales que se pasen a recoger todos los clientes
y luego se pasen a dejar, es conocido como Problema de Recoger y Dejar Pasajeros. Este
C APTULO 3. F ORMULACIN
DEL
PDPT
25
problema al ser formulado exige que un vehculo que vaya a buscar a un cliente i C a su
origen i+ deba luego ir a dejarlo a su lugar de destino i .
Si a los conjuntos anteriormente definidos se agrega
(3.1)
y a cada r T se le asocia un par de nodos (e(r), s(r)) y se puede definir el grafo G = (V, E)
como
V =V 0 e(T ) s(T )
E =E 0 {(i, e(r)) : r T, i M + N} {(e(r), s(r)) : r T }
{(s(r), j) : j N M } {(s(r), e(t)) : r,t T, r 6= t}
La razn por la cual se debe definir para cada trasbordo r T el par de nodos e(r), s(r)
(ver Figura 3.1) es porque en un trasbordo cada vehculo realiza 2 tipos de acciones: En primer
lugar deja pasajeros (para que otros vehculos se los lleven) y en segundo lugar, en una etapa
posterior, recoge pasajeros. Para poder diferenciar estas acciones llevadas a cabo dentro del
trasbordo por la totalidad de los vehculos y saber quin se baja de tal o cual vehculo y quin
se sube a tal o cual otro, es que se necesita dividir el trasbordo real en 2 nodos dentro del
modelo que se propone.
Finalmente, se suponen conocidos los costos de usar los distintos arcos de la red, denotados
por (ti j )(i, j)E . Se supone que los costos ti j son tales que en el grafo no existen ciclos de tiempo
01 .
Se define entonces el Problema de Recoger y Dejar Pasajeros con Trasbordos como el
problema de encontrar rutas Rk en el grafo G = (V, E) tales que se pase a buscar a todos los
pasajeros a su lugar de origen y luego a dejar a su lugar de destino.
1 En
general, casi todos los ti j son mayores que 0, pues incluso entre nodos cuyo costo de viaje sea 0, existe
un costo (en tiempo) de realizar alguna accin en el nodo i. Si an persisten ciclos de largo 0, stos se pueden
eliminar usando restricciones de eliminacin de subtours
C APTULO 3. F ORMULACIN
DEL
PDPT
26
mn
f (x, D, z)
(3.2)
Ax 6 a
(3.3)
Bx +CD 6 b
(3.4)
Ex + Fz 6 c
(3.5)
GD + Hz 6 d
(3.6)
x {0, 1}n
(3.7)
D, z > 0
(3.8)
s.a.
Las variables x definen el conjunto de rutas de los |M| vehculos, como en el problema
de recoger y dejar pasajeros clsico (Savelsbergh y Sol 1995). Las variables D entregan la
informacin temporal, asociadas al momento en que los nodos son visitados. Estas variables
son tpicas tambin en la formulacin del problema de recoger y dejar pasajeros clsico. En esta
formulacin sin embargo, se agregan las variables z que entregan informacin respecto de la
carga de los vehculos y su identificacin en trminos de pasajeros. Estas variables no aparecen
en el problema de recoger y dejar pasajeros tradicional, y bsicamente se justifican dado que en
el caso con trasbordos es relevante saber qu clientes estn sobre los vehculos al momento de
llegar al trasbordo para poder realizar el intercambio. La forma en que se relacionan estos tipos
e(r)
s(r)
te(r)s(r)
C APTULO 3. F ORMULACIN
DEL
PDPT
27
Las condiciones (a)-(d) son bsicas y fundamentales en la definicin operativa del problema, y por eso se debe ser cuidadoso en formular las restricciones apropiadas para representarlas.
Se define la variable binaria xikj que vale 1 si el vehculo k M usa el arco (i, j) E, 0 en
caso contrario. El siguiente conjunto de restricciones define k pseudo-rutas de vehculos, cada
una de ellas comenzando en el depot origen del vehculo correspondiente, y terminando en el
depot destino del vehculo.
C APTULO 3. F ORMULACIN
DEL
PDPT
28
xkk+ i = 1
k M
(3.9)
k
xik
=1
k M
(3.10)
k
xmi
61
k M
(3.11)
xkji = 0
i N, k M
(3.12)
{i|(k ,i)E}
{i|(i,k )E}
mM {iV :(m,i)E}
xikj
{ j|(i, j)E}
{ j|( j,i)E}
k
k
xie(r)
= xe(r)s(r)
r T, k M
(3.13)
k
k
xs(r)
j = xe(r)s(r)
r T, k M
(3.14)
{i|(i,e(r))E}
{ j|(s(r), j)E}
Las ecuaciones (3.9) y (3.10) aseguran que cada vehculo salga de su respectivo depot
origen y llegue a su respectivo depot destino. La ecuacin (3.11) asegura que un vehculo no
pueda comenzar dos rutas desde depot distintos. La ecuacin (3.12) es de conservacin de
flujo en los nodos de N. Las ecuaciones (3.13) y (3.14) muestran la conservacin de flujo en
los nodos de trasbordo. En conjunto estas restricciones definen para cada vehculo k M, rutas
que parten en k+ , terminan en k y (eventualmente) contienen ciclos. Para formalizar esto
ltimo es necesaria la siguiente proposicin
k
Proposicin 3.1.1. Sea (xikj )kM
(i, j)E satisfaciendo las restricciones (3.9)-(3.14). Sea E = {(i, j)
E : xikj = 1} el conjunto de arcos que usa el vehculo k, y Gk = G[E k ] el grafo inducido2 por
esos arcos. Entonces Gk contiene una ruta de k+ a k .
Demostracin. Por conveniencia notacional definamos V k := V (Gk ).
Sea M k+ = M + V k , M k = M V k , N k = V k \ (M + M ). Probemos que para dichos conjuntos se cumplen las propiedades (A.2)-(A.4) de la pgina 90. Con esto ms la Proposicin
A.2.2 se concluye el resultado.
Sea v M k+ , es decir dG+k (v) > 0 o bien dGk (v) > 0, y como dG (v) = 0 se tiene (A.2). Sea
2 ver
C APTULO 3. F ORMULACIN
DEL
PDPT
29
w M k , es decir dG+k (w) > 0 o bien dGk (w) > 0, y como dG+ (w) = 0 se tiene (A.3). La propiedad (A.4) se tiene por la conservacin de flujo en los nodos de N e(T ) s(T ) dada por las
restricciones (3.12)-(3.14). Las restricciones (3.9) y (3.10) implican que k+ M k+ , k M k .
Luego la Proposicin A.2.2 dice que existe (al menos) una ruta de k+ a M k y una de M k+ a
k . Si no existiera una ruta de k+ a k en este grafo Gk , entonces se tendra que la ruta de M k+
a k parte en otro nodo k0+ 6= k+ , con lo que se violara la restriccin (3.11).
El conjunto de restricciones antes descrito no asegura que se cumpla la propiedad (b). Para
ello agregamos las siguientes restricciones
xkji = 1
i C
(3.15)
xik+ j = 1
i C
(3.16)
kM { j|(i , j)E}
La ecuacin (3.15) obliga a que exactamente 1 vehculo pase por el nodo destino del cliente
i, mientras que la ecuacin (3.16) obliga a que se haga lo mismo con su nodo de origen. Ac
tenemos la primera gran diferencia con el problema de recoger y dejar pasajeros clsico, en
el cual un mismo vehculo debe atender tanto al nodo origen como al nodo de destino de un
cliente. En esta nueva formulacin, el par origen-destino de un cliente puede ser atendido por
dos vehculos distintos. Las ecuaciones (3.9) a (3.16) representan en detalle la relacin entre
variables x, tal como se muestra genricamente en ecuacin (3.3).
Las restricciones (3.9)-(3.16) generan para cada vehculo k M una ruta Rk que une los pares k+ , k + ciclos simples3 . Para formalizar esta aseveracin se tiene la siguiente proposicin
Proposicin 3.1.2. Sea (xikj )kM
(i, j)E satisfaciendo las restricciones (3.9)-(3.14). Sea k M. Entonces el grafo Gk (definido en la proposicin anterior) est compuesto por una ruta de k+ a
k + ciclos simples.
3 Para
C APTULO 3. F ORMULACIN
DEL
PDPT
30
C APTULO 3. F ORMULACIN
DEL
PDPT
31
k M, i C
(3.17)
k M, i C
(3.18)
k M, i, j N
(3.19)
k M, i N, r T
(3.20)
k M, r T
(3.21)
k M, j N, r T
(3.22)
k M, r T, t T \{r}
(3.23)
xikj = 1 Di + ti j 6 D j
k
xie(r)
= 1 Di + tie(r) 6 Dke(r)
k
xe(r)s(r)
= 1 Dke(r) + te(r)s(r) 6 Dks(r)
k
k
xs(r)
j = 1 Ds(r) + ts(r) j 6 D j
k
xs(r)e(t)
= 1 Dks(r) + ts(r)e(t) 6 Dke(t)
Estas restricciones eliminan los ciclos de largo positivo, pues en caso de que exista alguno
Ck = (c1 , . . . , cn = c1 ) en el grafo Gk , entonces 1) si c1 N Ck Dc1 < Dcn ; 2) si c1
(e(T ) (T )) Ck Dkc1 < Dkcn .
Las restricciones que hay hasta ahora aseguran que efectivamente existan k M rutas Rk
que parten en k+ , terminan en k , y en conjunto pasan por todos los nodos de N, con lo cual se
cumplen las propiedades (a) y (b).
Para poder satisfacer las propiedades (c) y (d) se necesita definir variables adicionales. Las
variables que se proponen para poder completar la formulacin representan la carga dentro de
los vehculos, llevando la historia de qu clientes van en qu vehculos mientras estos ltimos
hacen su ruta.
zkij : 1 si el cliente i C est en el vehculo k M cuando ste llega al nodo j V . En caso
contrario vale 0.
Las restricciones que se agregan son
C APTULO 3. F ORMULACIN
DEL
ki
zki
k + = zk = 0
32
k M, i C
(3.24)
(3.25)
xik+ j = 1 zkij = 1
i C, j tq (i+ , j) E
(3.26)
xik j = 1 zkij = 0
i C, j tq (i , j) E
(3.27)
r T, i C
(3.28)
i C
(3.29)
k M, j V \{k+ , k }
(3.30)
ki
xlkj = 1 zki
l = zj
zkie(r) zkis(r) = 0
kM
PDPT
kM
zkie(r) 6 1
rT kM
{l|(l, j)E}
xlkj = 0
zkij 6 0
iC
La restriccin (3.24) asegura que los vehculos parten y terminan vacos en sus depot origen
y destino. La restriccin (3.25) dice que los clientes no se suben ni se bajan en un nodo, si no
es ni su nodo origen ni su nodo destino. La restriccin (3.26) (resp.(3.27)) establece que los
clientes se suben (resp. bajan) al (resp. del) vehculo que pasa por el nodo origen (resp. destino).
La restriccin (3.28) asegura que los clientes que llegan al trasbordo en algn vehculo deban
luego dejarlo en algn otro (eventualmente el mismo). La restriccin (3.29) permite que cada
cliente pueda hacer trasbordo a lo ms una vez4 . Finalmente la restriccin (3.30) seala que si
es igual a 1 entonces el vehculo k pasa por el nodo .
Como consecuencia de lo anterior, si tanto el origen como el destino de un cliente i estn
en la ruta del vehculo k, entonces el nodo i+ siempre es visitado antes que i . En efecto,
consideremos al vehculo que recoge al cliente i, y supongamos que visita el nodo i antes de
visitar i+ . Al no poder pasar nuevamente por el nodo i por la restriccin (3.15) entonces el
vehculo termina su ruta con el cliente i en su interior, lo que es imposible por la restriccin
(3.24). Para el caso en que el cliente hace trasbordo necesitamos que se satisfaga la propiedad
(d).
4 Esta
C APTULO 3. F ORMULACIN
DEL
PDPT
33
Adems, notar que como consecuencia de la forma en que se ligan las variables x con z,
estas ltimas pueden relajarse para restringirlas en el intervalo [0, 1].
Con las restricciones antes descritas no se satisface necesariamente la propiedad (d), luego
se agrega la siguiente restriccin (restriccin (3.6) en el problema sinttico)
vi
k
v
zki
e(r) + zs(r) = 2 De(r) + 6 Ds(r)
r T, k, v M, i C
(3.31)
donde > 0 es una constante que representa el tiempo que los pasajeros necesitan para
abordar un nuevo vehculo luego de haber llegado al trasbordo. La lectura de esta restriccin
es exactamente lo que en palabras se pide para cumplir la propiedad (d).
Faltara ver que se cumpla la propiedad (c) en el caso general en que los nodos origen y
destino de un cliente estn en rutas distintas. Supongamos que el nodo i+ est en la ruta del
vehculo k e i est en la ruta del vehculo l. Por las restricciones (3.25) y (3.26) para todos los
nodos j siguientes a i+ se tiene zkij = 1 a menos que antes el vehculo pase por un trasbordo.
Si nunca pasa por un trasbordo, entonces el vehculo termina su ruta con el cliente i en su
interior lo que no es posible por la restriccin (3.24). Luego el vehculo pasa por el trasbordo
y el cliente es recogido por algn vehculo que sale del trasbordo con el cliente i en su interior.
Este vehculo debe ser l pues en caso contrario el vehculo debe volver a pasar a un trasbordo,
para que el vehculo l recoja al cliente i, lo que es imposible por la restriccin (3.29). Luego es
el vehculo l el que recoge al cliente i, e i est en la ruta del vehculo l despus del trasbordo,
pues si as no fuera, entonces el vehculo l llega a su depot destino con el cliente i en su interior
lo que es imposible por la restriccin (3.24). Las restricciones (3.17)-(3.23) y (3.31) aseguran
que Di+ < Di .
Hasta ahora, si se tiene una tupla (x, D, z) que satisfaga (3.9)-(3.31), se pueden identificar
|M| rutas que en su totalidad satisfacen las condiciones (a)-(d), con lo que el Problema de
Recoger y Dejar Pasajeros con Trasbordos puede considerarse formulado exitosamente, sin
embargo hay restricciones adicionales que se deben agregar con el fin de representar de mejor
C APTULO 3. F ORMULACIN
DEL
PDPT
34
zkij 6 Qk
k M, j V
(3.32)
iC
ti j xikj
(DRV)
kM (i, j)E
Di+
(TEC)
(Di Di+ )
(TVC)
iC
iC
Estas cantidades, si bien son las ms usadas en la literatura, no son las nicas que pueden
escribirse en trminos de las variables del problema. La informacin entregada por las variables
z permite incluir cantidades relacionadas a ocupacin de los vehculos, nmero de paradas hechas por los vehculos y los clientes, por nombrar algunas. A continuacin se muestran algunas
cantidades que pueden ser incluidas en el problema mediante restricciones lineales.
C APTULO 3. F ORMULACIN
DEL
PDPT
35
zkij :
zkij :
jV
kM
zkij :
(3.35)
zkij :
(3.36)
zkij :
(3.37)
zkij :
(3.38)
iC
jV kM
jV iC
iC kM
3.2
Hasta ahora, el problema que hemos resuelto permite una flexibilidad total del sistema. Sin embargo, preguntas como cmo considerar la inclusin de ventanas de tiempo?, cmo permitir
que un trasbordo pueda ser usado ms de una vez por cada vehculo? son preguntas que vale la
pena hacerse y a las cuales damos una alternativa de respuesta en esta seccin.
3.2.1
Hasta el momento la formulacin solo permite que cada vehculo pase a lo ms una vez por un
trasbordo. Esta restriccin debiera ser relajada si queremos flexibilizar el sistema permitiendo
que sea una variable de decisin el nmero de veces que un vehculo debe pasar por un mismo
trasbordo.
Supongamos que permitiremos a los vehculos pasar un mximo de MT veces por un mismo trasbordo.
Para cada r T definimos nodos e(r1 ), . . . , e(rMT ), s(r1 ), . . . , s(rMT ), y permitimos los arcos (e(ri ), s(ri ))i = 1, . . . , MT , (s(ri ), e(r j )) j 6= i. Adems si en el problema original existe el
C APTULO 3. F ORMULACIN
DEL
PDPT
36
arco ( j, e(r)) en el nuevo grafo agregamos los arcos ( j, e(ri )) para i = 1, . . . , MT , y para cada
arco (s(r), j) agregamos los arcos (s(ri ), j) para i = 1, . . . , MT .
De esta forma hemos conseguido permitir que cada vehculo pase a lo ms un nmero MT
de veces por cada trasbordo r T .
3.2.2
Ventanas de Tiempo
Puede ocurrir que los clientes tengan asociados intervalos de tiempo deseados en los cuales
un vehculo puede pasar a buscarlos y/o a dejarlos a su lugar de origen o destino. En trminos
de las variables del problema, esto puede escribirse como que las siguientes restricciones son
vlidas
li 6 Di 6 ui
(3.39)
Como restricciones DURAS , es decir no se permite bajo ningn caso que los nodos sean
visitados fuera de las ventanas de tiempo definidas a priori. Se agregan las restricciones
(3.39) a la formulacin i N
Como restricciones BLANDAS , es decir, se permite la violacin de las ventanas de tiempo
pero se penalizan dichas violaciones en la funcin objetivo. Ms precisamente, se definen
nuevas variables i , i , i N y se agregan restricciones
i > Di ui
i N
(3.40)
i > li Di
i N
(3.41)
i N
(3.42)
i , i > 0
C APTULO 3. F ORMULACIN
DEL
PDPT
37
(Uii + Lii)
(3.43)
iN
3.2.3
Captulo 4
Mtodos de Solucin Para el Problema de
Recoger y Dejar Pasajeros con Trasbordos
38
4.1
39
Mtodos Exactos
4.1.1
Programacin Dinmica
Lk =
j [1, c]
j [c + 1, 2c]
(4.1)
j [2c + 1, 2c + r]
si vehculo k est en e( j 2c) y lleg vaco
zi =
j [1, m]
j [m + 1, 2m]
Si cliente i est en vehculo j m y YA hizo trasbordo
2m + r + 1
Si cliente i ya fue pasado a dejar a su destino
(4.2)
Para cada par i, j [0, 2c + 3r] se asume conocido el tiempo de viaje para ir del nodo i a j,
y se denota ti j , que es tal que t2c+i, j = t2c+r+i, j para todo i [1, r], j [0, 2c + 3r].
40
(4.3)
(4.4)
X k (S) =
{0 : si zi = 2m + r + 1 i [1, c]}
{1 6 i 6 c : zi = 0, si qk (z) 6 Qk 1}
{c + 1 6 i 6 2c : zic {k, k + m}}
{2c + 1 6 i 6 2c + r : si qk (z) = 0 y z j 6= k + m 0 6 j 6 c}
si Lk
/ [2c + 1, 2c + 2r]
{2c + r + 1 6 i 6 2c + 2r : si qk (z) 6= 0 y z j 6= k + m 0 6 j 6 c}
(4.5)
si Lk [2c + 1, 2c + r]
{r + Lk }
si Lk [2c + r + 1, 2c + 2r]
41
Para los distintos valores de Lk 0 X k (S) hay que ver cmo varan las posiciones de los clientes.
Hay que considerar los clientes que se bajan de los vehculos y los que se suben, tanto para los
nodos asociados a orgenes y destinos, como para los de trasbordo. De esta forma, los valores
que tomen los distintos zi 0 dados Lk 0 , zi vienen dados por las relaciones
1. Lk 0 = 0
zi 0 = zi
i [1, c]
(4.6)
2. Lk 0 [1, c]
zi =
si i = Lk 0
(4.7)
zi
3. Lk 0 [c + 1, 2c]
zi 0 =
2m + r + 1 si i = Lk 0 c
zi
(4.8)
4. Lk 0 [2c + 1, 2c + 2r]
zi 0 =
z j0 =
2m + Lk 0 2c si zi = k
zi
2m + Lk 0 2c r si zi = k
zi
si Lk 0 [2c + 1, 2c + r]
(4.9)
si Lk 0 [2c + r + 1, 2c + 2r]
(4.10)
El caso Lk 0 [2c + 2r + 1, 2c + 3r] se detalla aparte pues en tal caso, cuando un vehculo
sale del trasbordo, debido a que tiene capacidad finita, si existen ms pasajeros que la capacidad del vehculo, entonces se debe elegir cules clientes subir al vehculo y cules no.
Adems, se impone la restriccin de que si el vehculo lleg vaco al trasbordo entonces al
42
salir deber hacerlo al menos con un pasajero. Esto se hace para evitar la posibilidad de que
los vehculos pasen a un trasbordo sin hacer nada relevante1 . Para ser ms exactos, cuando
Lk 0 = 2c + 2r + j el conjunto de posibles estados siguientes se puede definir como sigue
Sea A = {i [1, c] : zi = 2m + Lk 0 2c 2r}, y sean B = {B A : |B| 6 Qk }, C = {C A :
1 6 |C| 6 Qk }.
1. Si Lk [2c + r + 1, 2c + 2r]
Para cada B B habr un estado en que las variables cambian como sigue:
k + m si i B
0
zi =
zi
(4.11)
k + m si i C
0
zi =
zi
(4.12)
Notar que en este caso no se permite que el vehculo salga vaco del trasbordo, puesto
que lleg vaco.
As, se puede construir para cada S S , el conjunto (S) = {S0 : S S0 } de todos los
estados alcanzables desde S al mover uno (y solo uno) de los vehculos.
Sea S S . Se define la funcin vS : (S) {1, . . . , m} como
vS (S0 ) = k si S0 = (L10 , . . . , Lk 0 , . . . , Lm , z0 )
(4.13)
que dados S, S0 , entrega el nmero del vehculo que se movi en esa transicin.
1 Esto
evita que se produzcan ciclos de estados, pues se obliga a cambiar el estado de al menos un cliente en
cada transicin de un estado a otro
43
haber movido el vehculo k. Dependiendo de los valores que tomen Lk , Lk 0 ser como se definan
D 0 y w0 .
1. Lk 0 [0, 2c]
D j0 =
Dk + tL L 0 si j = k
k k
w j0 = w j
(4.14)
Dj
j = 1, . . . , c
(4.15)
2. Lk 0 [2c + 1, 2c + 2r]
D j0 =
w j0 =
Dk + tL L 0 si j = k
k k
Dj
Dk 0 si z j = k
wj
(4.16)
(4.17)
3. Lk 0 [2c + 2r + 1, 2c + 3r]
Dj
1 si z j 0 = m + k
0
wj =
wj
(4.18)
(4.19)
44
(4.20)
(4.21)
0
V (S, D, w) = mn P(S,D,w) (S0 , D0 , w0 ) +V (S0 , D0 , w0 ) : S0 (S), (D0 , w0 ) = u(S,D,w) (S0 )
(4.22)
= mn
S0 (S)
2 En
P(S,D,w) (S0 , u(S,D,w) (S0 )) +V (S0 , u(S,D,w) (S0 ))
(4.23)
trminos de las variables D del captulo 3 se puede escribir como iC Di+ + (1 ) iC [Di Di+ ],
o de manera equivalente (1 ) iC Di + (2 1) iC Di+ .
45
b Rm
Se Introducen condiciones de borde para D
+ dadas por
b (1)c = 0
V (0)m , (2m + r + 1)c , D,
y
si
S S
es
tal
que
(S) =
entonces V (S, D, w) = +,
(4.24)
D Rm
+,
w ({1} R+ )c .
El problema de encontrar las rutas factibles que minimicen la ponderacin entre tiempo de
espera y tiempo de viaje se reduce a encontrar
0 c
0 m
0 c
V (Lk0 )m
k=1 , (zi )i=1 , (Dk )k=1 , (wi )i=1
(4.25)
(4.26)
estados S S . Adems se debe guardar para cada uno de los estados, punteros indicando los
posibles estados siguientes a S, es decir (S). Lamentablemente la naturaleza continua de las
variables Dk , wi hace que la cantidad real de estados sea mucho mayor a la cantidad antes mencionada. Por esto ltimo es que no se puede dar una mejor estimacin del orden del algoritmo,
sin embargo se sabe que ser al menos de orden cuadrtico en el nmero de estados antes
calculado. Los resultados mostrados en el captulo 5 muestran que la complejidad del mtodo
crece muy rpidamente.
Finitud del Algoritmo
Para que este algoritmo sea aplicable necesitamos al menos garantizar la finitud del mismo.
Para ello basta con probar la siguiente proposicin
46
Proposicin 4.1.2. Sea S S , S0 (S), y sean (D, w), (D0 , w0 ) tales que (D0 , w0 ) = u(S,D,w) (S0 ).
Entonces salvo que todos los clientes hayan sido atendidos (es decir que zi = 2m + r + 1i)
n
existe i {1, . . . , c} tal que zi 6= zi 0 . Adems en una secuencia de estados S j , D j , w j j=1 tales
que (S j , D j , w j ) (S j+1 , D j+1 , w j+1 ) se tiene i {1, . . . , c} una vez que un cliente cambia
de un estado zi a otro zi 0 no podr volver ms a zi .
Demostracin. La primera parte es directa de la definicin de z0 de 4.6 a 4.12.
Para la segunda parte, notemos que el grafo de la Figura 4.1 representa todas las posibles
transiciones (obviando la transicin identidad) de una variable zi para i {1, . . . , c} al pasar de
un estado S a otro S0 (S)
Basta con ver que este grafo no admite ciclos para concluir con el resultado.
{1, . . . , m}
{m + 1, . . . , 2m}
2m + r + 1
{2m + 1, . . . , 2m + r}
47
V (L0 , z0 , 0, D0 , w0 , 1)
(4.27)
4.1.2
48
En esta seccin se presenta un algoritmo basado en una variacin del algoritmo de descomposicin de Benders (Benders 1962), presentado por Codato y Fischetti (2004), y cuyo gran
aporte est en el hecho de que logra explotar la estructura de problemas basados en variables
0 1 ligados con variables reales por medio de restricciones del tipo Big-M.
Sea el problema de minimizacin
mn
x,y
ct x + d t y
s.a. Ax 6 b
y B(x)
(P)
Cy 6 e
x {0, 1}n
y>0
Inicialmente se supone que d = 0, c 6= 0. Siguiendo el mismo desarrollo del captulo anterior
este problema se puede escribir de manera equivalente como
(P0 )
mn
y
(Px )
0t y
s.a. y B(x)
Cy 6 e
y>0
49
x j(i) = 0 bi j y j 6 fi
i I0
(4.28)
x j(i) = 1 bi j y j 6 fi
i I1
(4.29)
cuando x es fijo, entonces tan solo algunas restricciones de las anteriores se activan y luego el
problema (Px ) puede escribirse como
mn
0t y
s.a.
bi j y j 6 f i
(Fx )
i Ix
Cy 6 e
y>0
donde Ix = {i I0 : x j(i) = 0} {i I1 : x j(i) = 1}.
Se Define entonces el problema maestro
mn
x,y
(M)
ct x
s.a. Ax 6 b
x {0, 1}n
que en caso de ser infactible, entonces el problema completo tambin lo es. En cambio, si x
es una solucin ptima de (M) y (Fx ) tiene solucin y , entonces (x , y ) es solucin ptima
del problema completo. Finalmente, si x es una solucin ptima de (M) y (Fx ) es infactible,
entonces existe un subconjunto de restricciones (minimal) de (Fx ) que se estn violando, y por
lo tanto algunos xj(i) deben cambiar de valor. Ms especficamente, se agrega el siguiente corte
al problema (M)
iSI0 Ix
x j(i) +
(1 x j(i) ) > 1
iSI1 Ix
(CCB)
50
max zx (u, v) =
u,v
iIx
(DFx )
s.a.
fi ui + ei vi
iH
bi j ui + ci j vi 6 0
iI
iH
u, v 6 0
Si (Fx ) es infactible, entonces (DFx ) es infactible o no acotado, sin embargo la infactibilidad de (DFx ) es imposible pues u = v = 0 es una solucin factible, y por lo tanto la
infactibilidad de (Fx ) se traduce en el no acotamiento de (DFx ).
Ntese que, si (u , v ) es factible para (DFx ) y tal que zx (u , v ) = 1, entonces (u , v )
es tambin factible y zx (u , v ) = zx (u , v ), y por lo tanto (u , v ) es un rayo de no acotamiento del problema. Sin perder generalidad se puede entonces encontrar un rayo particular
de no acotamiento, por ejemplo (u, v) tal que zx (u, v) = 1. Luego el problema que se resuelve
es el siguiente
max gt u + ht v
u,v
s.a.
(DFx )
fiui + eivi = 1
iIx
iH
bi j ui + ci j vi 6 0
iI
iH
u, v 6 0
donde g, h son los pesos que se les da a las restricciones en (DFx ). El valor que tomen es
arbitrario y pueden ser usadas para manipular el soporte de las variables duales (y por tanto las
restricciones que van a formar los conjuntos de restricciones infactibles).
La siguiente propiedad es vlida
Proposicin 4.1.4. Sea (u , v ) solucin de (DFx ). Entonces las filas de (Fx ) indexadas por
IIS = {i : ui 6= 0 vi 6= 0} forman un conjunto de restricciones infactibles de (Fx ).
51
Demostracin. Si el conjunto de restricciones indexadas por IIS fuese factible, existe un y > 0
tal que
bi j yj 6 fi
i Ix IIS
(4.30)
ci j yj 6 ei
i H IIS
(4.31)
yj
j
ui bi j +
iIx IIS
vi ci j
>
ui fi +
iIx IIS
iHIIS
vi ei = 1
(4.32)
iHIIS
y como todos los yj son positivos (> 0) queda que al menos para algn j debe tenerse que
iIx IIS
ui bi j +
vi ci j > 0
(4.33)
iHIIS
d t y 6 UB
(4.34)
Para una solucin factible x de (M), si (Fx ) es factible (o equivalentemente su dual modificado es infactible), significa que se ha encontrado una nueva solucin al problema (x , y ) tal
que d t y 6 UB .
Para el Problema de Recoger y Dejar Pasajeros con Trasbordos, una funcin objetivo ser
de la forma g(D, z) que debe agregarse al subproblema como
g(D, z) 6 UB
(4.35)
52
Cabe sealar, que el problema maestro en este caso se transforma en un problema de factibilidad, es decir la ramificacin no considera la mejora de ninguna funcin objetivo.
= 0.
(4.36)
mn
x
f (x)
(4.37)
(4.38)
Y se usa el dual del siguiente problema (con x fijo) para generar los cortes que se introducen al
53
problema maestro.
mn
D,z
D
0
z
t
(4.39)
s.a.
x, D satisfacen (3.17)-(3.23)
(4.40)
x, z satisfacen (3.24)-(3.30)
(4.41)
D, z satisfacen (3.31)
(4.42)
z satisface (3.10)
(4.43)
D>0
(4.44)
(4.45)
4.2
54
Mtodos Heursticos
En esta seccin se presentan dos heursticas de insercin para resolver el Problema de Recoger
y Dejar Pasajeros con Trasbordos en el caso particular en que se tiene tan solo 1 trasbordo y
los vehculos pueden pasar no ms de una vez por l.
El primero de ellos est esencialmente diseado para cuando la funcin objetivo depende
de los tiempos en que los nodos son visitados (por ejemplo, cuando se desea minimizar tiempos
de espera, de viaje, ventanas de tiempo, etc.). Usa dos mtodos (corte de rutas y reinsercin de
clientes) para buscar soluciones que mejoren alguna solucin previamente construida.
El segundo algoritmo en cambio, comienza con rutas vacas, inicialmente solo conteniendo
trasbordos e iterativamente se van insertando los clientes en las rutas. Este mtodo est especialmente diseado para funciones objetivo que no dependen del momento en que se atienden
los nodos, como por ejemplo, cuando se quiere minimizar la distancia total recorrida por los
vehculos.
El segundo mtodo se ve muy natural en su implementacin, y entonces cabe hacerse la
pregunta de por qu no usar tal mtodo para funciones objetivo como tiempos de espera o
tiempos de viaje. La razn es que el mtodo en tal caso siempre entrega como solucin, un
conjunto de rutas que no hace trasbordo. Cualquier solucin que considere el paso efectivo
por un trasbordo (es decir, que los vehculos pasen a los trasbordos y que adems lleguen con
clientes que cambien de vehculo) nunca son consideradas.
4.2.1
En lo siguiente se presenta un mtodo heurstico principalmente orientado a resolver el Problema de Recoger y Dejar Pasajeros con Trasbordos para cuando la funcin objetivo depende de
los tiempos en que los nodos son atendidos (tiempos de espera, tiempos de viaje, violacin de
ventanas de tiempo, etc.). ste es un algoritmo de insercin que re-optimiza rutas anteriormente
construidas.
55
Corte Las rutas se cortan en el punto de trasbordo. Los clientes eliminados de las rutas, segn
si se elimin tanto en su origen y destino como slo en su destino se guardan en listas U1
y U2 .
Insercin Los nodos eliminados en la etapa de corte se reinsertan en las rutas.
Definicin 4.2.1. Sea Rk una ruta del vehculo k que hace trasbordo. Se define la porcin postf
56
La Figura 4.2 ilustra el proceso de corte de rutas cuando son dos los vehculos que hacen
trasbordo.
R1
7
4+
k1+
1+
2+
9
8+
10
10+
4
9+
11+
1
k2+
13
11
12+
12
3+
k1
13+
7+
6+
5+
k2
R2
4+
k1+
1+
2+
9
8+
10
10+
4
9+
11+
6+
5+
k2+
3
5
3+
k1
13+
7+
12+
13
11
12
k2
R2
f
57
Procedure CortarRutas
4.1.1
4.1.2
4.1.3
4.1.4
4.1.5
4.1.6
4.1.7
Input: R1 , . . . , Rl
Output: U1 ,U2
begin
U1 0/
U2 0/
for i C do
for j 1 to l do
f
if i+ and i R j then
U1 U1 {i}
f
Borrar i+ , i de R j
4.1.8
4.1.9
4.1.10
Borrar i de R j
4.1.11
4.1.12
end
Procedure Insercin
4.2.1
4.2.2
4.2.3
4.2.4
4.2.5
4.2.6
4.2.7
4.2.8
4.2.9
4.2.10
58
Procedure InsertarD
4.3.1
4.3.2
4.3.3
4.3.4
4.3.5
4.3.6
4.3.7
4.3.8
4.3.9
4.3.10
4.3.11
4.3.12
4.3.13
4.3.14
4.3.15
4.3.16
4.3.17
end
En la lnea 4.3.8 se inserta el nodo i en la posicin j de la ruta Rk . Esto se hace para todo
k y para todo j y se guarda la mejor de todas las inserciones.
59
Procedure InsertOD
4.4.1
4.4.2
4.4.3
4.4.4
4.4.5
4.4.6
4.4.7
4.4.8
4.4.9
4.4.10
4.4.11
4.4.12
4.4.13
4.4.14
4.4.15
4.4.16
4.4.17
4.4.18
4.4.19
je finde(Sk )
js finds(Sl )
for j+ 1 to je do
for j js + 1 to size(Sl ) do
Th Sh h
InsertarNodo(Tk , j+ , i+ )
InsertarNodo(Tl , j , i )
[z, f eas] Feas(T1 , . . . , Tl ,U1 ,U2 )
if f eas then
val Value(T1 , . . . , Tl ,U1 ,U2 , z)
if val < v then
Sh Th h
v val
4.4.20
4.4.21
4.4.22
4.4.23
4.4.24
4.4.25
4.4.26
4.4.27
4.4.28
4.4.29
4.4.30
4.4.31
for k 1 to l do
Rk Sk
4.4.32
4.4.33
4.4.34
end
En las lneas 4.4.10,4.4.11, 4.4.24 y 4.4.25 se insertan los nodos origen-destino del cliente
i en la posicin j de la ruta k. Esto se hace para todo k y para todo j. El resultado es la mejor
de todas las inserciones.
60
Notar que la forma en que se sacan los elementos de U1 U2 en la lnea 4.2.4 no est
definida a priori, y no se tiene una estrategia que asegure ser ptima (o cercana al ptimo) en
algn sentido. En la implementacin computacional que se hizo en esta memoria se usa una
estrategia del tipo GRASP en que se prueban varios rdenes aleatorios de los clientes.
A continuacin se detallan los procedimientos Factible y Valor, que evalan la factibilidad
de una insercin y el valor de la misma, respectivamente.
Procedure Factible
4.5.1
4.5.2
4.5.3
for k M do
Recorrer ruta Rk . Hacer xikj = 1 si (i, j) Rk
4.5.4
4.5.5
return 0 , f alse
4.5.6
4.5.7
4.5.8
4.5.9
4.5.10
4.5.11
end
F P x,U1 ,U2 admite soluciones factibles. Notar que F P x,U1 ,U2 es un problema de programacin
lineal corriente y puede ser resuelto de manera eficiente.
61
Procedure Valor
4.6.1
4.6.2
4.6.3
for k 1 to m do
Recorrer ruta Rk . Hacer xikj = 1 si (i, j) Rk
4.6.4
4.6.5
4.6.6
4.6.7
4.6.8
4.6.9
4.6.10
4.6.11
end
Este procedimiento resuelve el valor del sistema para el conjunto de rutas R1 , . . . , Rm . Notar
que este procedimiento slo se llama despus de verificar que F P x,U1 ,U2 es factible, luego se
est calculando el valor sobre un conjunto de rutas factible.
Los problemas F P x,U1 ,U2 y V P x,z,U1 ,U2 , que evalan la factibilidad y valor de una insercin,
respectivamente, se detallan a continuacin
62
mn
0t z
s.a.
zki
k+ = 0
k M, i C
(4.47)
zki
k = 0
k M, i C
(4.48)
(4.49)
xik+ j = 1 zkij = 1
i C, j tq (i+ , j) E
(4.50)
xik j = 1 zkij = 0
i C, j tq (i , j) E
(4.51)
i C\U2
(4.52)
i U2
(4.53)
k M, j V \{k+ , k }
(4.54)
k M, j V
(4.55)
j V, k M, i C
(4.56)
(4.46)
ki
xlkj = 1 zki
l = zj
zkie = zkis
kM
kM
zkis 6 0
kM
xlkj = 0
{l|(l, j)E}
zkij 6 0
iC
zkij 6 Qk
iC
zkij [0, 1]
Notar que F P x,U1 ,U2 solo considera para la factibilidad restricciones sobre las variables z,
y no sobre las variables D. Esto porque una vez que un conjunto de clientes es atendido de
manera lgica (es decir, se satisfacen las condiciones de precedencia dadas por las variables z)
entonces los tiempos D se pueden ajustar para que el sistema sea factible. En otras palabras, los
vehculos pueden esperar cuanto sea necesario en algn nodo para poder atender a los clientes.
63
f (x, z, D, De , Ds , , )
mn
D,De ,Ds ,,
(4.57)
i C, k M
(4.58)
i C, k M
(4.59)
xikj = 1 Di + ti j 6 D j
i, j N
(4.60)
k
xie
= 1 Di + tie 6 Dke
i N, k M
(4.61)
k
xes
= 1 Dke + tes 6 Dks
k M
(4.62)
xsk j = 1 Dks + ts j 6 D j
j N, k M
(4.63)
k, v M, i C
(4.64)
i > Di ui
i N
(4.65)
i > l i D i
i N
(4.66)
k M
(4.67)
Di > 0
i N
(4.68)
i , i > 0
i N
(4.69)
s.a.
k{1,2}
vi
k
v
zki
e + zs = 2 De + 6 Ds
Este problema, como puede verse, considera las variables D y las violaciones de las ventanas de tiempo como variables de optimizacin. Las variables x, z son conocidas en esta etapa.
Si la cantidad a minimizar durante todo el proceso es
iC
iN
iN
64
f =
iC
iC
iU2
iN
iN
(4.70)
donde U j
= {i+() : i U j }.
65
Function Heuristica1(n, m)
4.7.1
4.7.2
4.7.3
4.7.4
4.7.5
4.7.6
4.7.7
4.7.8
4.7.9
4.7.10
4.7.11
4.7.12
4.7.13
Input: R1 , . . . , Rm
Output: S1 , . . . , Sm
begin
v +
S1 , . . . , Sm 0/
for (p1 , . . . , pm ) P do
Tj R j , j
Insertar trasbordo en ruta T j en la posicin p j , j
[U1 ,U2 ] CortarRutas(T1 , . . . , Tm )
while U1 U2 6= 0/ do
Sacar i de U1 U2
if i estaba en U1 then
InsertarOD(i, T1 , . . . , Tm ,U1 ,U2 )
else
InsertarD(i, T1 , . . . , Tm ,U1 ,U2 )
if w Valor del nuevo set de rutas <v then
vw
S j Tj , j
4.7.14
4.7.15
4.7.16
return S1 , . . . , Sm
4.7.17
4.7.18
end
n m
m
n3
(4.71)
66
Esto muestra que el algoritmo es muy sensible tanto en el nmero de vehculos m que se
consideran en la heurstica como de la razn de clientes y vehculos
n
m,
y obviamente en el
n m
m
(4.72)
(k+ , . . . , n(pk ), e, s, . . . , k )
(4.73)
Dn(pk ) + t(n(pk ), e)
Definamos a esta cantidad como Tpkk
(4.74)
67
(4.75)
que para valores pequeos de produce que se consideren cada vez menos posibles inserciones, y adems todas ellas son tales que los vehculos en juego pasan en un intervalo de a lo
ms por el trasbordo.
4.8.1
4.8.2
4.8.3
4.8.4
4.8.5
4.8.6
4.8.7
4.8.8
Input: R1 , . . . , Rl
Output: V1 ,V2
begin
V1 0/
V2 0/
for i C do
for j 1 to l do
if i+ and i Rij then
V1 V1 {i}
Borrar i+ , i de Rij
f
4.8.9
4.8.10
4.8.11
4.8.12
end
Esto permite optimizar el uso del trasbordo hacia atrs. En esta memoria se han implementado ambas etapas de Heuristica, considerando cortes y reinserciones tanto antes como
despus del trasbordo, siguiendo este orden
1. Aplicar rutina CortarRutas. Input: R1 , . . . , Rl , Output: R1 0 , . . . , Rl 0 .
2. Optimizar el uso del trasbordo hacia delante. Input: R1 0 , . . . , Rl 0 , Output: S1 , . . . , Sl
68
zkie = zkis
kM
i C\V2
(4.76)
i V2
(4.77)
kM
zkis > 1
kM
f =
iC
iC
iV2
iN
(4.78)
iN
Con C0 = C\V1 , C = C\ (V1 V2 ) y N 0 = N\ V1+ V1 V2+ .
Notar que la funcin f de (4.70) y (4.78) no son iguales aunque se pueden interpretar de la
misma manera, como la funcin objetivo que no considera penalidad en los nodos que no han
sido insertados.
69
Procedure Process(n, m, i)
4.9.1
4.9.2
4.9.3
Input: R1 , . . . , Rm , i
i
Output: S1i , . . . , Sm
begin
vi +
Sij 0/
for (i, p2 , . . . , pm ) P do
Tj R j , j
Insertar trasbordo en ruta T j en la posicin p j , j
[U1 ,U2 ] CortarRutas(T1 , . . . , Tm )
while U1 U2 6= 0/ do
Sacar i de U1 U2
if i estaba en U1 then
InsertarOD(i, T1 , . . . , Tm ,U1 ,U2 )
else
InsertarD(i, T1 , . . . , Tm ,U1 ,U2 )
4.9.4
4.9.5
4.9.6
4.9.7
4.9.8
4.9.9
4.9.10
4.9.11
4.9.12
4.9.13
4.9.14
4.9.15
4.9.16
4.9.17
end
Con este esquema de paralelizacin se tiene una reduccin de los tiempos de CPU en O( mn )
dejando la heurstica en
n m1 3
n
O
m
(4.79)
iteraciones.
Aplicando el mismo concepto varias veces (en la coordenada 2, 3, etc.), si se tienen O(( mn )l )
CPUs, los tiempos se pueden reducir a
n ml 3
O
n
m
(4.80)
iteraciones.
4.2.2
(i, j)E
ti j xikj
(4.81)
70
entonces ya no importa cunto tiempo estn los pasajeros esperando en el trasbordo a que otro
vehculo los lleve.
Sea el siguiente conjunto P
(
)
(4.82)
k=1
4.10.1
4.10.2
4.10.3
4.10.4
4.10.5
Input: n, m
Output: S1 , . . . , Sm
begin
v +
S1 , . . . , Sm 0/
for (p1 , . . . , pm ) P do
T j (k+j , kj ), { j : p j = 1}
T j (k+j , e, s, kj ), { j : p j = 0}
4.10.6
U {1, . . . , n}
while U 6= 0/ do
Sacar i de U
/
InsertarOD(i, T1 , . . . , Tm ,U, 0)
4.10.7
4.10.8
4.10.9
4.10.10
4.10.11
4.10.12
4.10.13
return S1 , . . . , Sm
4.10.14
4.10.15
end
(4.83)
71
4.2.3
(4.84)
Es natural pensar que los mtodos anteriormente descritos puedan complementarse para ser
alternados con otros mtodos, como por ejemplo, heursticas de intercambio de clientes. La
implementacin que se ha usado en esta memoria usa una complementacin con un algoritmo
de este tipo. El algoritmo de intercambio de clientes saca los nodos asociados a cada cliente
insertado (uno por uno) y busca alguna reinsercin que pueda mejorar el costo. Si no es posible hacerlo, se mantiene la solucin actual. Los resultados que se presentan en el captulo 5
usan este mtodo introducindolo al final de los ciclos for de las lneas 4.7.4 y 4.10.4 de los
algoritmos Heuristica1 y Heuristica2, respectivamente.
4.2.4
Demanda Dinmica
Los algoritmos presentados pueden ser fcilmente adaptados para incorporar demanda dinmica en tiempo real. para ello basta notar que en caso de aparecer una nueva llamada, basta
con buscar la mejor insercin del par origen/destino asociado. En cuanto a complejidad, ya
sabemos por lo visto antes que es O(n2 ) lo que hace que sea muy eficiente esta manera de
incorporar demanda dinmica.
Seguramente al incorporar una nueva llamada a un sistema en desarrollo con muchos clientes y vehculos, la insercin de un nuevo cliente mediante el mtodo antes descrito ser no solo
eficiente sino que adems buena en cuanto a calidad (suponiendo que el sistema se encuentra
cercano al ptimo), sin embargo la insercin de una gran cantidad de llamadas puede hacer que
72
Captulo 5
Resultados
73
C APTULO 5. R ESULTADOS
74
Sealemos que todas las pruebas fueron hechas utilizando el siguiente equipo:
Procesador
Memoria RAM
Disco Duro
1
2 Tiempos
1
1
1
2 T EC + 2 TVC .
Tanto R&A como CCB y las subrutinas Valor y Factible de los algoritmos de insercin
HI1 y HI2 fueron programados usando la interfaz Concert Technology para C++ 6.0 de ILOG
CPLEX 9.0 usando la licencia perteneciente al Departamento de Ingeniera Industrial de la
Universidad de Chile.
Los algoritmos PD, HI1 y HI2 fueron programados en su totalidad en Visual C++ 6.0.
Las instancias consideradas se separan en dos tipos: pequeas y medianas. Las instancias
pequeas corresponden a redes de 2 vehculos y 1 trasbordo, variando el nmero de clientes
1 La
C APTULO 5. R ESULTADOS
75
5.1
Pruebas de Velocidad
El tiempo de corrida para los algoritmos exactos fue acotado en un mximo de dos horas,
tiempo despus del cual stos finalizan y se considera como resultado la mejor solucin hasta
el momento.
Las tablas 5.1a y 5.1b muestran los tiempos promedio tomados por cada algoritmo para
resolver las instancias pequeas.
3c 2v 1t
4c 2v 1t
5c 2v 1t
6c 2v 1t
R&A
[s]
0.385
8.879
233.751
1872.205
CCB
[s]
0.479
4.073
17.469
119.531
HI1
[s]
1.246
3.023
5.715
9.512
3c 2v 1t
4c 2v 1t
5c 2v 1t
6c 2v 1t
R&A
[s]
22.870
7200+
7200+
7200+
CCB
[s]
543.865
7200+
7200+
7200+
PD
[s]
7200+
7200+
7200+
7200+
HI2
[s]
1.701
7.075
15.526
25.486
C APTULO 5. R ESULTADOS
76
Los grficos que se pueden obtener a partir de estas pruebas (salvo PD), en cuanto al tiempo
tomado por los algoritmos pueden verse en la Figura 5.1.
10000
1000
100
100
10
1
0.1
0.01
2
R&A
Exponencial (R&A)
CCB
Exponencial (CCB)
0.01
HI
Exponencial (HI)
4
R&A
5
CCB
HI
De estos grficos se desprende que para minimizar DRV mediante un algoritmo exacto,
CCB es mucho ms rpido que R&A. Sin embargo, el resultado se invierte al considerar la
funcin objetivo 21 T EC + 21 TVC. En ambos casos la heurstica de insercin toma tiempos mucho menores, entregando resultados muy buenos como se ver en la subseccin siguiente.
As mismo, se calcul la ganancia porcentual promedio obtenida con respecto al algoritmo
de Ramificacin y Acotamiento original. Para cada instancia i se define la ganancia porcentual
de un algoritmo A respecto a R&A como
gi (A) =
Ti (R&A) Ti (A)
Ti (R&A)
(5.1)
donde Ti (A) es el tiempo tomado por el algoritmo A para la instancia i. La ganancia promedio G(A) sobre un conjunto de instancias I ser el promedio de las ganancias del algoritmo A,
es decir
G(A) =
1
gi (A)
|I|
iI
(5.2)
C APTULO 5. R ESULTADOS
77
No se incluye informacin acerca de PD puesto que los resultados son muy pobres para ese
mtodo.
El gap promedio tomado por los mtodos HI1, HI2 y CCB pueden verse en la Tabla 5.2.
CCB
3c 2v 1t -0.544
4c 2v 1t 0.370
5c 2v 1t 0.410
6c 2v 1t 0.920
HI1
-11.583
-0.685
0.039
0.978
3c 2v 1t
4c 2v 1t
5c 2v 1t
6c 2v 1t
CCB
-25.098
0.0
0.0
0.0
HI2
0.911
0.999
0.998
0.996
5.2
Pruebas de Calidad
En primer lugar, se muestran resultados comparando el valor objetivo de las soluciones encontradas por los algoritmos exactos versus los encontrados por la heurstica de insercin, para
las instancias pequeas. Como los algoritmos exactos en algunos casos terminan abruptamente
(por correr por ms de dos horas) las soluciones que se obtienen no son necesariamente las
ptimas.
Esto muestra que, con respecto a las soluciones ptimas (que se pueden calcular con exactitud para las instancias ms pequeas), los algoritmos aproximados entregan soluciones muy
buenas, variando en torno al 2 % de error para el caso de la funcin objetivo DRV , como se
muestra en la Tabla 5.3a. Sin embargo, para la funcin objetivo 21 T EC + 12 TVC, hay una clara
ganancia en la calidad de las soluciones entregadas por cada algoritmo, obteniendo soluciones
no comparables, como se muestra en la Tabla 5.3b.
C APTULO 5. R ESULTADOS
3c 2v 1t
4c 2v 1t
5c 2v 1t
6c 2v 1t
CCB
2218
2262
2609
3200.5
(a) ob j = DRV
78
HI1
2218
2326
2635
3200.5
3c 2v 1t
4c 2v 1t
5c 2v 1t
6c 2v 1t
R&A
1733.5
2577.8
5128
6115
HI2
1746.6
2447.4
3205
3994
(b) ob j = 21 T EC + 21 TVC
C APTULO 5. R ESULTADOS
12c 3v 1t
15c 3v 1t
18c 3v 1t
21c 3v 1t
Prueba
5700.1
6975.0
8279.9
8715.8
79
HI1
5595.9
6788.2
7523.7
8257.7
(a) ob j = DRV
12c 3v 1t
15c 3v 1t
18c 3v 1t
21c 3v 1t
Prueba
8191.1
12242.3
15556.5
19498.8
HI2
8133.2
12126.4
15278.8
19398.1
(b) ob j = 21 T EC + 12 TVC
Function Prueba(n, m)
5.1.1
5.1.2
5.1.3
Input: C, M
Output: R1 , . . . , Rm rutas aproximadas sin trasbordo
begin
for k 1 to m do
Rk (k+ , k ) // Inicialmente todas las rutas vacas
U {1, . . . , n}
while U 6= 0/ do
vmin +
kmin = 1
imin = 1
for k M, i U do
Insertar i+ , i en la ruta S Rk
if v Costo de la insercin < vmin then
vmin v
kmin k
imin i
5.1.4
5.1.5
5.1.6
5.1.7
5.1.8
5.1.9
5.1.10
5.1.11
5.1.12
5.1.13
5.1.14
5.1.15
5.1.16
return R1 , . . . , Rm
5.1.17
5.1.18
end
Captulo 6
Conclusiones e Investigacin Futura
80
81
En primer lugar, se ha logrado formular exitosamente el Problema de Recoger y Dejar Pasajeros con Trasbordos y Ventanas de Tiempo, planteando el MIP asociado. Esta formulacin
posee la virtud de que las variables {0, 1} del modelo son las mismas que se encuentran para
el problema sin trasbordo, solo agregando aquellas variables asociadas a los nodos de trasbork
k
do, definidas por xie(r)
, xs(r)
j . Esta formulacin extiende de manera perfecta al Problema de
Recoger y Dejar Pasajeros con Ventanas de Tiempo en el caso en que |T | = 0, y por lo tanto
cualquier Problema de Recoger y Dejar Pasajeros puede estudiarse como un caso particular del
Problema de Recoger y Dejar Pasajeros con Trasbordos y Ventanas de Tiempo. La informacin
que se tiene del sistema es muy rica en cuanto a saber en todo momento la ubicacin de los
clientes. Usando esta informacin, investigaciones futuras debieran incluir esta informacin y
simular sistemas que, por ejemplo, consideren estas variables a nivel de la funcin objetivo,
cosa que en esta memoria se menciona pero sin proponer nada explcitamente.
En segundo lugar, se ha simulado este sistema obteniendo resultados prometedores. El
mtodo de solucin directa de R&A demuestra ser muy limitado sin embargo, como deba
esperarse del trabajo de Codato y Fischetti (2004) para el caso en que se desea minimizar la
distancia total recorrida por los vehculos el algoritmo de CCB muestra una mejora porcentual
en los tiempos respecto a R&A que en algunos casos sobrepasa al 90 %, con un promedio
muy bueno de sobre el 50 % en todos los casos que se documentan. Este mismo algoritmo
cuando se implementa para el caso de funcin objetivo real muestra ser muy inferior a R&A y
debera ser descartado a priori (al menos en su implementacin directa). Si bien este resultado
puede considerarse como malo, tiene como parte positiva el documentar de que as es, cosa que
Codato y Fischetti (2004) no hace.
Se propone un algoritmo de programacin dinmica que mostr ser muy inferior a cualquiera de todos los otros algoritmos, y con una limitante importantsima la cual es la imposibilidad de reconstruir el conjunto de rutas ptimas para el problema. Sin embargo este algoritmo
muestra por primera vez como el Problema de Recoger y Dejar Pasajeros con Trasbordos puede formularse como un problema de programacin dinmica, y eso debiera ser rescatable para
82
Bibliografa
Agarwal, Y., Marthur, K. y Salkin, H. M. A set-partitioning-based exact algorithm for the
vehicle routing problem. Networks 19:731749 (1989).
Alfa, A. S., Heragu, S. S. y Chen, M. A 3-opt based simulated annealing algorithm for vehicle
routing problems. Computers & Industrial Engineering 21:635639 (1991).
Barbarosoglu, G. y Ozgur, D. A tabu search algorithm for the vehicle routing problem. Computers and Operations Research 26:255270 (1999).
Benders, J. F. Partitioning procedures for solving mixed-variables programming problems.
Numerische Mathematik 4:238252 (1962).
Bertsimas, Dimitri y Tsitsiklis, John. Introduction to Linear Optimization, captulo 4, 151.
Athena Scientific (1997).
Bixby, A., Coullard, C. y Simchi-Levi, D. The capacited prize-collecting traveling salesman
problem (1997). Working Paper, Department of Industrial Engineering and Engineering
Management, Northwestern University, Evanston, IL.
Christofides, N., Mingozzi, A. y Toth, P. The vehicle routing problem. Wiley, Chichester, UK
(1979).
Clarke, G. y Wright, J. W. Scheduling of vehicles from a central depot to a number of delivery
points. Operations Research 12(4):568581 (1964).
83
BIBLIOGRAFA
84
BIBLIOGRAFA
85
Dumas, Yvan, Desrosiers, Jacques y Soumis, Franois. Large scale multi-vehicle dial-a-ride
problems. Technical Report Cahiers du GERAD G-89-30, cole des Hautes tudes Commerciales, Montral, Canada (1989).
Dumas, Yvan, Desrosiers, Jacques y Soumis, Franois. The Pickup and Delivery Problem with
Time Windows. European Journal of Operational Research 54:722 (1991).
Fischetti, Matteo, Toth, Paolo y Vigo, Daniele. A branch-and-bound algorithm for the capacitated vehicle routing problem on directed graphs. Operations Research 42:846859 (1994).
Fisher, M. L. Optimal solution of vehicle routing problems using minimum k-trees. Operations
Research 42:626642 (1994).
Flood, Merrill M. The Traveling Salesman Problem. Operations Research 4:6175 (1956).
Hoffman, K. L. y Padberg, M. Solving airline crew scheduling problems by branch-and-cut.
Management Science 39:657682 (1993).
Horn, M. E. T. Fleet scheduling and dispatching for demand-responsive passenger services.
Transportation Research C 10:3563 (2002a).
Horn, M. E. T. Multi-modal and demand-responsive passenger transport systems: a modelling framework with embedded control systems. Transportation Research A 36(2):167
188 (2002b).
Jaw, Jang-Jei, Odoni, Amedeo R., Psaraftis, Harilaos N. y Wilson, Nigel H. M. A heuristic algorithm for the multi-vehicle advance request dial-a-ride problem with time windows.
Transportation Research B 20B(3):243257 (1986).
Laporte, Gilbert, Mercure, H. y Nobert, Y. An exact algorithm for the asymmetrical capacitated
vehicle routing problem. Networks 16:3346 (1986).
Lu, Quan y Dessouky, Maged. An exact algorithm for the multiple vehicle pickup and delivery
problem. Transportation Science 38(4):503514 (2004).
BIBLIOGRAFA
86
Malucelli, F., Nonato, M. y Pallottino, S. Demand Adaptive Systems: some proposals on flexible transit. En Crainic et al. (Editor), Operational Research in Industry, 157182. McMillan
Press, Londres, Inglaterra (1999).
Mole, R. H. y Jameson, S. R. A sequential route-building algorithm employing a generalized
savings criterion. Operations Research Quarterly 27:503511 (1976).
Naddef, Denis y Rinaldi, Giovanni. The graphical relaxation: A new framework for the symetric traveling salesman polytope. Mathematical Programming 58:5388 (1993).
Nemhauser, George L. y Wolsey, Laurence A. Integer and Combinatorial Optimization, captulo 1, 96. John Wiley & Sons (1988).
Osman, I. H. Metastrategy simulated annealing and tabu search algorithms for the vehicle
routing problem. Annals of Operations Research 41:421451 (1993).
Padberg, M. y Rinaldi, Giovanni. A branch-and-cut algorithm for the resolution of large-scale
symmetric traveling salesman problems. SIAM Reviews 33:60100 (1991).
Psaraftis, Harilaos N. A dynamic programming solution to the single vehicle many-to-many
inmediate request dial-a-ride problem. Transportation Science 14(2) (1980).
Psaraftis, Harilaos N. An exact algorithm for the single-vehicle may-to-many dial-a-ride problem with time windows. Transportation Science 17(3) (1983).
Robust, F., Daganzo, Carlos F. y Souleyrette, R. Implementing vehicle routing models. Transportation Research B 24:263286 (1990).
Ruland, Kevin S. y Rodin, E. Y. The pickup and delivery problem: faces and branch-and-cut
algorithm. Computers & Mathematics with Applications 33(12):113 (1997).
Savelsbergh, M. W. P. y Sol, M. The general pickup and delivery problem. Transportation
Science 29(1) (1995).
BIBLIOGRAFA
87
Apndice A
Consideraciones sobre Teora de Grafos
88
89
En este apndice se presenta algunos resultados asimilables a la teora de grafos que son
usados en el captulo 3 para presentar la formulacin del Problema de Recoger y Dejar Pasajeros con Trasbordos.
A.1
Definiciones
Definicin A.1.1 (Grafo). Un grafo es un par G = (V, E) tal que E V 2 . Para evitar ambige/ Llamaremos a V el conjunto de nodos de G, y lo
dades siempre supondremos que E V = 0.
notaremos V (G) o simplemente V cuando no haya lugar a confusin. Igualmente llamaremos
a E el conjunto de arcos de G y lo notaremos como E(G) o simplemente E cuando no haya
posibles ambigedades.
Definicin A.1.2 (Grafo Inverso). Sea G = (V, E) un grafo. Definimos el Grafo Inverso de G,
y lo notamos I (G), a la tupla G0 = (V, E 0 ) con E 0 = {(w, v) : (v, w) E}.
Definicin A.1.3 (Subgrafo). Sea G = (V, E) un grafo. Diremos que un grafo G0 = (V 0 , E 0 ) es
un subgrafo de G (y lo notaremos G0 G) si V 0 V y E 0 E.
Definicin A.1.4 (Grafo Inducido). Sea G = (V, E) un grafo. Sean V 0 V , E 0 E. Definimos
G[V 0 ] al grafo cuyos vrtices estn en V 0 y cuyos arcos son todos aquellos (u, v) E tal que
u, v V 0 . De igual modo definimos G[E 0 ] al grafo cuyos vrtices son todos aquellos u V tal
que (u, v) E 0 (v, u) E 0 para algn v V , y cuyos arcos son exactamente E 0 .
Definicin A.1.5 (Vecinos de un Nodo). Sea G = (V, E) un grafo, y sea v V . Notaremos
NG (v) = {w V : (w, v) E} y lo llamaremos Nodos entrantes a v. De igual manera notaremos NG+ (v) = {w V : (v, w) E} y lo llamaremos Nodos salientes de v. Cuando no sea
necesario obviaremos los subndices.
Definicin A.1.6 (Grado de un vrtice). Sea G = (V, E) un grafo, y sea v V . Notaremos
dG+ (v) = NG+ (v), dG (v) = NG (v) y los llamaremos grado de salida y entrada de v respectivamente.
90
Definicin A.1.7 (Camino). Sea G = (V, E) un grafo. Sean v1 , . . . , vn V . Decimos que la tupla
P = (vi )ni=1 es un camino en G si i {1, . . . , n 1} (vi , vi+1 ) E y todos los pares (vi , vi+1 )
son distintos.
Observacin: Note que si P = (v1 , . . . , vn ) es un camino en un grafo G, entonces la tupla
G(P) = (V (P), E(P)) con V (P) = {vi : i = 1, . . . , n}, E(P) = {(vi , vi+1 ) : i = 1, . . . , n 1} es un
subgrafo de G. Muchas veces confundiremos G(P) simplemente con P.
Observacin: Note que en un camino P = (v1 , . . . , vn ) se tiene siempre que
0 si v1 = vn
+
+
dP (v1 ) dP (v1 ) = dP (vn ) dP (vn ) =
1 si v1 6= vn
(A.1)
Definicin A.1.8 (Camino Simple). Sea G = (V, E) un grafo. Decimos que un camino P =
(v1 , . . . , vn ) en G es simple si todos los vi son distintos.
Definicin A.1.9 (Camino Abierto (Cerrado)). Sea G = (V, E) un grafo. Diremos que un camino P = (v1 , . . . , vn ) en G es abierto si v1 6= vn . Diremos que P es cerrado si v1 = vn .
Definicin A.1.10 (Camino Maximal). Sea G = (V, E) un grafo. Diremos que un camino
P = (v1 , . . . , vn ) es maximal si no existe forma de extenderlo por ninguno de sus extremos
manteniendo la propiedad de que la nueva secuencia sea un camino.
A.2
Resultados
v M +
(A.2)
dG (v) > 0
dG+ (v) = 0
v M
(A.3)
v N
(A.4)
Entonces todo camino maximal abierto P = (v1 , . . . , vn ) en G de largo > 2 es tal que v1 M + ,
vn M . En particular lo anterior se tiene para todo camino maximal simple.
91
v N
(A.5)
92
+
M , y todos sus nodos son tales que dG
P = dGP = 1. Por el Teorema de Euler (Diestel 2000)
Apndice B
Descomposicin de Benders
93
94
ct x + d t y
s.a. Ax 6 b
(P)
Bx +Cy 6 e
x {0, 1}n
y>0
(P0 )
mn
y
(Px )
dt y
s.a. Cy 6 e Bx
y>0
Cuyo dual es
max
u
(Dx )
ut (Bx e)
s.a. Ct u + d > 0
u>0
95
C
d
H = u : u >
I
0
donde
t
C
I
(B.1)
k uk + j u j : k = 1, , > 0
jJ
kK
(B.2)
kK
donde {uk : k K} son los puntos extremos de H y {u j : j J} son los rayos extremos de
{u > 0 : Ct u > 0}, y luego (Dx ) es equivalente a
max
kK
s.a.
k = 1
jJ
(B.3)
kK
, > 0
Si algn utj (Bx e) > 0 entonces (Dx ) es no acotado, y luego (Px ) es infactible. En cambio
(B.4)
96
mn
,x
utj (Bx e) 6 0
j J
Ax 6 b
x {0, 1}n
El problema de resolver (P00 ) es que a priori no conocemos los puntos extremos y rayos
extremos de H, y la cardinalidad de K J podra ser muy grande, haciendo que (P00 ) sea
incalculable.. Es por eso que planteamos una relajacin de (P00 ) de la siguiente forma
mn
,x
utj (Bx e) 6 0
j J0
Ax 6 b
x {0, 1}n
con K0 K, J0 J conjuntos considerablemente ms pequeos que los originales.
En general se tiene que
zPR00 6 zP 6 ct x + zDx
x, K0 , J0
97
Algoritmo de Solucin
Paso 0: Inicializacin
Buscar x0 {0, 1}n que satisfaga Ax0 6 b. Hacer xopt = x0
Definir UB = +, LB = .
Hacer {uk : k K} = {u j : j J} =
Hacer i = 0.
Paso 1: Subproblema
Resolver (Dxi ).
Si tiene solucin acotada u, hacer {uk : k K} {uk : k K} {u}. Si UB >
ct xi + ut (Bxi e) hacer UB ct xi + ut (Bxi e) y xopt xi .
Si no tiene solucin acotada, y u es un rayo que produce no acotamiento, hacer
{u j : j J} {u j : j J} {u}
Paso 2: Problema Maestro
Resolver (PR00 )
0