Sunteți pe pagina 1din 103

UNIVERSIDAD DE CHILE

FACULTAD DE CIENCIAS FSICAS Y MATEMTICAS


DEPARTAMENTO DE INGENIERA MATEMTICA

FORMULACIN Y SOLUCIN DE UN PROBLEMA DE RUTEO DE


VEHCULOS CON DEMANDA VARIABLE EN TIEMPO REAL,
TRASBORDOS Y VENTANAS DE TIEMPO

CLAUDIO ANDRS CONTARDO VERA

2005

UNIVERSIDAD DE CHILE
FACULTAD DE CIENCIAS FSICAS Y MATEMTICAS
DEPARTAMENTO DE INGENIERA MATEMTICA

FORMULACIN Y SOLUCIN DE UN PROBLEMA DE RUTEO DE VEHCULOS CON


DEMANDA VARIABLE EN TIEMPO REAL, TRASBORDOS Y VENTANAS DE TIEMPO

CLAUDIO ANDRS CONTARDO VERA

COMISIN EXAMINADORA

CALIFICACIONES
NOTA(no )

(Letras)

FIRMA

: ..........

........................................

....................

: ..........

........................................

....................

: ..........

........................................

....................

SR. JUAN CARLOS MUOZ

: ..........

........................................

....................

NOTA FINAL EXAMEN DE TTULO

: ..........

........................................

....................

PROFESOR GUA
SR. CRISTIN CORTS
PROFESOR CO-GUA
SR. MARTN MATAMALA
PROFESOR INTEGRANTE
SR. ROBERTO COMINETTI
PROFESOR INVITADO

MEMORIA PARA OPTAR AL TTULO DE


INGENIERO CIVIL MATEMTICO

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

Descripcin del Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2

Motivacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.3

Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

Revisin Bibliogrfica
2.1

Problemas de Ruteo de Vehculos . . . . . . . . . . . . . . . . . . . . . . . . . 12


2.1.1

2.2

Mtodos de Solucin Propuestos . . . . . . . . . . . . . . . . . . . . . 13

Problema de Recoger y Dejar Pasajeros . . . . . . . . . . . . . . . . . . . . . 17


2.2.1

2.3

11

Mtodos de Solucin Propuestos . . . . . . . . . . . . . . . . . . . . . 19

Incorporacin de Trasbordos . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

Formulacin del PDPT

23

3.1

Formulacin Caso Esttico . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.2

Variantes y situaciones especiales . . . . . . . . . . . . . . . . . . . . . . . . 35


3.2.1

Considerar mltiples pasadas por un mismo trasbordo . . . . . . . . . 35

3.2.2

Ventanas de Tiempo . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

3.2.3

Extensin al Caso Dinmico . . . . . . . . . . . . . . . . . . . . . . . 37

Mtodos de Solucin para el PDPT


4.1

38

Mtodos Exactos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
1

NDICE GENERAL

4.2

4.1.1

Programacin Dinmica . . . . . . . . . . . . . . . . . . . . . . . . . 39

4.1.2

Cortes Combinatoriales de Benders . . . . . . . . . . . . . . . . . . . 48

Mtodos Heursticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.2.1

Ventanas de Tiempo y/o Tiempos de Espera y de Viaje . . . . . . . . . 54

4.2.2

Distancia Recorrida por los Vehculos . . . . . . . . . . . . . . . . . . 69

4.2.3

Complementacin con Otros Mtodos . . . . . . . . . . . . . . . . . . 71

4.2.4

Demanda Dinmica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

Resultados

73

5.1

Pruebas de Velocidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

5.2

Pruebas de Calidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

Conclusiones e Investigacin Futura

80

A Consideraciones sobre Teora de Grafos

88

A.1 Definiciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
A.2 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
B Descomposicin de Benders

93

Lista de Figuras
1.1

Ilustracin de Rutas con y sin trasbordo . . . . . . . . . . . . . . . . . . . . .

1.2

Red de Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.3

Rutas ptimas sin y con trasbordo . . . . . . . . . . . . . . . . . . . . . . . .

3.1

Modelacin de un Trasbordo . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

4.1

Transiciones posibles de la variable zi . . . . . . . . . . . . . . . . . . . . . . 46

4.2

Rutina de Corte de Rutas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

5.1

Tiempos de CPU para instancias pequeas . . . . . . . . . . . . . . . . . . . . 76

Lista de Tablas
5.1

Tiempos de CPU promedios para instancias pequeas . . . . . . . . . . . . . . 75

5.2

Gap Promedios de CCB y HI . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

5.3

Comparativa de la calidad de las soluciones . . . . . . . . . . . . . . . . . . . 78

5.4

Costos promedio entregados por los mtodos HI y Prueba . . . . . . . . . . . 79

Captulo 1
Introduccin

C APTULO 1. I NTRODUCCIN

1.1

Descripcin del Problema

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

(a) Rutas de vehculos SIN trasbordo

(b) Rutas de vehculos CON trasbordo

Figura 1.1: Ilustracin de Rutas con y sin trasbordo

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

5 Clientes, con nodos origen/destino definidos por


(1+ , 1 ) =

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






1 Trasbordo, con nodos entrada y salida en


T=

589
397

La ciudad es representada por un cuadrado de 1000x1000 Unidades de Distancia2 [UD2 ],


como se puede ver en la Figura 1.2.
(0, 0)
2
5+
d k2

2+
dk1

3
4+
4

3+

1+

Figura 1.2: Red de Ejemplo

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+

(a) Rutas ptimas sin trasbordo

3+

1+

(b) Rutas ptimas con trasbordo

Figura 1.3: Rutas ptimas sin y con trasbordo

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

aparece este trabajo de investigacin.

1.3

Objetivos

El objetivo central de esta memoria es presentar un nuevo concepto en sistemas de ruteo de


vehculos puerta a puerta, generalizando el problema de Recoger y Dejar Pasajeros a un nuevo problema donde se incorporen trasbordos. Para alcanzar este objetivo de manera clara y
contundente debemos ser capaces de:
1. Entender los alcances y limitaciones del estado del arte en la materia. Para ello se da
cuenta de una vasta revisin bibliogrfica donde se muestra el desarrollo del Problema
de Recoger y Dejar Pasajeros clsico.
2. Formular rigurosamente el Problema de Recoger y Dejar Pasajeros con Trasbordos.
3. Proponer mtodos de solucin del Problema de Recoger y Dejar Pasajeros con Trasbordosy aplicarlos. Comparar los resultados con los obtenidos para el Problema de Recoger
y Dejar Pasajeros clsico.
4. Dar resultados que muestren las ventajas y limitaciones de la formulacin y mtodos de
solucin. Analizar los resultados obtenidos.
5. Concluir segn los resultados obtenidos y proponer otras posibles metodologas que no
han sido implementadas en esta memoria y que podran ser un aporte al conocimiento
del problema

Captulo 2
Revisin Bibliogrfica

11

C APTULO 2. R EVISIN B IBLIOGRFICA

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

Problemas de Ruteo de Vehculos

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

C APTULO 2. R EVISIN B IBLIOGRFICA

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

Mtodos de Solucin Propuestos

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-

C APTULO 2. R EVISIN B IBLIOGRFICA

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

C APTULO 2. R EVISIN B IBLIOGRFICA

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-

C APTULO 2. R EVISIN B IBLIOGRFICA

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

C APTULO 2. R EVISIN B IBLIOGRFICA

17

llama Recocido Determinstico.


Los mtodos de tipo Bsqueda Tab son similares a Recocido Simulado con la diferencia
de que la movida se realiza al mejor vecino x de una solucin xt . Para evitar ciclos se prohbe
que una misma solucin sea revisada ms de una vez durante un cierto nmero de iteraciones.
Uno de los trabajos ms recientes en el tema es el de Barbarosoglu y Ozgur (1999).

2.2

Problema de Recoger y Dejar Pasajeros

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

C APTULO 2. R EVISIN B IBLIOGRFICA

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

C APTULO 2. R EVISIN B IBLIOGRFICA

19

la capacidad del vehculo k.


La restriccin (2.4) asegura de que cada cliente sea asociado a un nico vehculo. La restriccin (2.5) se preocupa que un nico vehculo pase por los nodos origen/destino de un cliente,
y que tal vehculo sea el que tiene asociado a tal cliente. Las restricciones (2.6)-(2.7) aseguran que todo vehculo sale de su depot origen y llega a su depot destino. Las restricciones
(2.8)-(2.10) relacionan los viajes de los vehculos con la precedencia en tiempo de los nodos visitados por cada uno. Las restricciones (2.11)-(2.13) relacionan los viajes con la carga/descarga
de los vehculos. Las restricciones (2.14)-(2.16) determinan la naturaleza entera o real de las
variables.
Las restricciones definidas por una proposicin lgica p q pueden escribirse usando el
mtodo Big-M.

2.2.1

Mtodos de Solucin Propuestos

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

C APTULO 2. R EVISIN B IBLIOGRFICA

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

C APTULO 2. R EVISIN B IBLIOGRFICA

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

C APTULO 2. R EVISIN B IBLIOGRFICA

22

de la operacin en trasbordos y proponen un mtodo heurstico para optimizar la asignacin


vehculo-pasajero en los puntos de trasbordos, esencialmente para problemas dinmicos con
decisiones tomadas en tiempo real. Recientemente, los trabajos de Malucelli, Nonato y Pallottino (1999) y Crainic, Malucelli y Nonato (2001), proponen y formulan la operacin de
sistemas ms flexibles basados en servicios alimentadores conectados con lneas troncales, basndose en las ideas de Schneider y Smith (1981). Horn (2002b,a) proponen una interesante
heurstica para resolver problemas con trasbordo, pero entre diferentes modos.

Captulo 3
Formulacin del Problema de Recoger y
Dejar Pasajeros con Trasbordos

23

C APTULO 3. F ORMULACIN

3.1

DEL

PDPT

24

Formulacin Caso Esttico

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

N = {1, . . . , n} Conjunto de Nodos asociados a Clientes


M = {1, . . . , m} Conjunto de Vehculos
M + = {1, . . . , m+ } Depots Origen de Vehculos

(PDP1)

M = {1, . . . , m } Depots Destino de Vehculos


C = {1, . . . , nC } Conjunto de Clientes
Existen tambin funciones + : C N y : C N inyectivas, tales que
i. C+ C =
ii. C+ C = N
A cada i C se le asocia i+ como el nodo origen del cliente i, y i como su nodo destino.
Para cada k M, existen funciones + : M M + , : M M , y se dice que k+ , k son
los depot origen y destino respectivamente del vehculo k.
A partir de lo anterior se puede considerar el siguiente grafo G0 = (V 0 , E 0 ) definido como

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

T = {1, . . . nT } Conjunto de Trasbordos

(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

La formulacin que se presentar en esta memoria puede escribirse como un Problema de


Programacin Entera Mixta de la forma

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)

(a) Trasbordo Real

(b) Trasbordo Modelado

Figura 3.1: Modelacin de un Trasbordo

C APTULO 3. F ORMULACIN

DEL

PDPT

27

de variables se puede resumir en las restricciones (3.3) a (3.6). En adelante, describiremos e


interpretaremos los distintos tipos de relaciones que aparecen aqu, dando argumentos tambin
para construir las posibles representaciones de dependiendo del tipo de objetivo que se quiera
optimizar.
La formulacin propuesta deber satisfacer las siguientes propiedades
a) Para cada vehculo k M existe una ruta Rk que parte en k+ , termina en k y no contiene
ciclos.
b) Todos los nodos en N son visitados por algn vehculo.
c) El nodo origen de un cliente siempre es visitado antes que su nodo de destino.
d) Si un cliente hace trasbordo en r T , digamos del vehculo k1 al k2 , entonces el vehculo
k2 deja el trasbordo despus de que k1 haya llegado.

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

definicin en pgina 89.

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|( j,i )E}

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

la definicin de ciclo simple ver pgina 90.

C APTULO 3. F ORMULACIN

DEL

PDPT

30

Demostracin. En efecto, sabemos de la proposicin anterior que se satisfacen las propiedades


(A.2) y (A.3). De las restricciones (3.15) y (3.16) se tiene que dG+k (v) = dGk (v) = 1 v N k ,
con lo que se satisface la propiedad (A.5). Luego por la Proposicin A.2.3 se tiene que 1)
Todo camino de M k+ a M k es simple, 2) Todo nodo que no est en algn camino de M k+ a
M k pertenece a un ciclo simple, y 3) Todo camino de M k+ a M k no admite bifurcaciones.
Consideremos todos los caminos (simples) que van de M k+ a M k . En primer lugar veamos
que hay un nico camino de k+ a k . En efecto, por la restriccin (3.11) necesariamente si
tiene que el nuevo camino debe comenzar con el mismo arco que el otro camino. Como los
caminos no admiten bifurcaciones (arcos que salgan de algn nodo del camino hacia otro lado)
luego tal camino termina en k . Adems M k+ = {k+ } tambin por la restriccin (3.11). Sea un
camino de k+ a M k . Tal camino parte con el mismo arco que el camino de k+ a k , y como
no se admiten bifurcaciones entonces tal camino termina en M k , por lo que se concluye que
M k = {k } (pues para todo k0 M k existe un camino que parte en k+ y llega a l). Todos
los dems nodos estn en ciclos simples, con lo que se concluye la proposicin.
Para poder eliminar los ciclos y poder asegurar el cumplimiento de la propiedad (a) definimos el siguiente conjunto de variables reales positivas
Di : Tiempo en que es atendido el nodo i N
Dke(r) : Tiempo en que el vehculo k M llega al trasbordo r T .
Dks(r) : Tiempo en que el vehculo k M sale del trasbordo r T .

C APTULO 3. F ORMULACIN

DEL

PDPT

31

Y se imponen las siguientes restricciones


xkk+ i+ = 1 tk+ i+ 6 Di+

k M, i C

(3.17)

xkk+ e(r) = 1 tk+ e(r) 6 Dke(r)

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)

i C, (l, j) E\{(e(r), s(r))|r T } tq l 6= i+ , i

(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

restriccin puede escribirse ms generalmente como rT kM zki


e(r) 6 L, donde L es el nmero mximo
de veces que un cliente puede trasbordar. En sistemas reales se usa L = 1 para poder ofrecer un buen nivel de
servicio a los pasajeros.

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

manera el sistema. Una de ellas es la restriccin de capacidad, que se escribe

zkij 6 Qk

k M, j V

(3.32)

iC

donde Qk es la capacidad del vehculo k.


de este modo, se ha logrado formular exitosamente el Problema de Recoger y Dejar Pasajeros con Trasbordos como en (3.1), con la salvedad de que nada se ha dicho acerca de
f (x, D, z).
Con las variables del problema, es directo plantear dos tipos de funciones objetivos clsicas
en cualquier Problema de Recoger y Dejar Pasajeros, como son la distancia total recorrida por
los vehculos (DRV), el tiempo de espera de los clientes (TEC) y el tiempo de viaje de los
clientes (TVC).

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 :

# de paradas que hace el vehculo k con el cliente i en su interior. (3.33)

zkij :

# de vehculos que llegan al nodo j con el cliente i en su interior. (3.34)

jV

kM

zkij :

# de clientes que llegan al nodo j en el vehculo k.

(3.35)

zkij :

# total de paradas que hace el cliente i.

(3.36)

zkij :

# total de carga asignada al vehculo k.

(3.37)

zkij :

# total de clientes que llegan al nodo j.

(3.38)

iC

jV kM

jV iC

iC kM

3.2

Variantes y situaciones especiales

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

Considerar mltiples pasadas por un mismo trasbordo

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)

Esencialmente existen 2 formas en que se puede agregar dicha restriccin

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

y a la funcin objetivo se agregan penalidades de la forma

(Uii + Lii)

(3.43)

iN

de forma de intentar minimizar la violacin de las ventanas de tiempo.


La gran ventaja que tienen las restricciones blandas por sobre las duras, es que se gana
factibilidad en el problema con un pequeo trade-off que significa agregar nuevas variables
(variables reales).

3.2.3

Extensin al Caso Dinmico

Sean R1 , . . . , Rm rutas representando la solucin de una instancia del Problema de Recoger y


Dejar Pasajeros con Trasbordos para conjuntos C, N, M, T , y funciones e, s, +, . Sea G =
(V, E) el grafo que representa la red del problema.
En cierto instante surge la necesidad de atender un nuevo cliente n + 1. Se agrega entonces
un par de nodos (n + 1)+ , (n + 1) al conjunto N inicial y con ello se considera el grafo G =
(V , E ) que es la extensin del grafo G cuando se agregan estos dos nodos.
Se tiene que en el instante en que se debe decidir cmo atender la llamada, los vehculos se
ki
ki
han ruteado de tal manera de que algunas variables xikj , Di , Dki
e(r) , Ds(r) , z j ya se han seteado

sin posibilidad de poder ser re-decididas.


La solucin del nuevo problema ser equivalente a resolver el problema modificado en el
nuevo grafo G .
Sin embargo, sta no es la nica forma de resolver el Problema de Recoger y Dejar Pasajeros con Trasbordos con demanda dinmica, y es tan difcil de hacerlo como lo es resolver el
problema esttico. En la seccin 4.2 se presentan mtodos heursticos de insercin que permiten resolver este problema de manera eficiente.

Captulo 4
Mtodos de Solucin Para el Problema de
Recoger y Dejar Pasajeros con Trasbordos

38

C APTULO 4. M TODOS DE S OLUCIN PARA EL PDPT

4.1

39

Mtodos Exactos

4.1.1

Programacin Dinmica

En esta seccin se introduce un algoritmo de solucin para el Problema de Recoger y Dejar


Pasajeros con Trasbordos basado en el principio de programacin dinmica. Otras implementaciones del algoritmo de Programacin Dinmica para resolver el Problema de Recoger y
Dejar Pasajeros y el Problema de Recoger y Dejar Pasajeros con Ventanas de Tiempo son las
desarrolladas por Psaraftis (1980, 1983) y Desrosiers et al. (1986).
Sea C el conjunto de clientes y V el conjunto de nodos de la red. Sea M el conjunto de
vehculos y T el conjunto de trasbordos. Se denotan c = |C|, n = |V |, m = |M| y r = |T |.
Se definen Lk como la posicin de un vehculo k en un instante dado, zi la posicin del
cliente i en el sistema. Ms precisamente, definimos Lk , zi como sigue

Lk =

j [1, c]

j [c + 1, 2c]

si vehculo k est en el depot


si vehculo k est en el origen del cliente j
si vehculo k est en el destino del cliente j c

(4.1)

j [2c + 1, 2c + r]
si vehculo k est en e( j 2c) y lleg vaco

j [2c + r + 1, 2c + 2r] si vehculo k est en e( j 2c r) y lleg con pasajeros

j [2c + 2r + 1, 2c + 3r] si vehculo k est en s( j 2(c + r))

zi =

j [1, m]

Si cliente i no ha sido ido a buscar


Si cliente i est en vehculo j y NO ha hecho trasbordo

j [m + 1, 2m]
Si cliente i est en vehculo j m y YA hizo trasbordo

j [2m + 1, 2m + r] Si cliente i est en trasbordo j 2m

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].

C APTULO 4. M TODOS DE S OLUCIN PARA EL PDPT

40

Se define S el conjunto de todos los estados. Diremos que S S si


S = (L1 , . . . , Lm , z)

(4.3)

con Lk {0, . . . 2c + 3r}, para k [1, m], y z {0, . . . , 2m + r + 1}c


Sea ahora z {0, . . . , 2m + r + 1}c . Se define qk (z) como la carga sobre el vehculo k en un
instante dado, en el cual los clientes estn en posiciones dadas por z. Ms precisamente

qk (z) = |{i [1, c] : zi {k, k + m}}|

(4.4)

Sea S = {S : S = (L1 , . . . , Lm , z)} el conjunto de estados. Para cada S S se definen los


estados siguientes de S como (S).
Hay que definir (S), a partir de un S S dado. La idea es definir para un estado S que
representa las posiciones de todos los vehculos y clientes en el sistema en un instante dado,
todos los posibles estados que se pueden alcanzar con el movimiento de uno de los vehculos,
manteniendo todos los otros inmviles. Se denota por X k (S) todos los posibles valores de
Lk 0 [0, m + 2c + 2r] que son factibles de ser alcanzados a partir de S cuando se mueve el
vehculo k. Para ser ms precisos X k (S) tiene la siguiente forma

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)

{2r + Lk si i [1, c] tq zi [2m + 1, 2m + r]}

si Lk [2c + 1, 2c + r]

{r + Lk }

si Lk [2c + r + 1, 2c + 2r]

Sea S = (L1 , . . . , Lk , . . . , Lm , z), y sea S0 = (L1 , . . . , Lk 0 , . . . , Lm , z0 ) un estado alcanzado al


mover el vehculo k. Notemos que la forma que adquiera el estado S0 depende solo de z y Lk 0 .

C APTULO 4. M TODOS DE S OLUCIN PARA EL PDPT

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

C APTULO 4. M TODOS DE S OLUCIN PARA EL PDPT

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)

Notar que 0/ B , y luego es explcita la existencia de un estado siguiente en que el


vehculo sale del trasbordo vaco.
2. Si Lk [2c + 1, 2c + r]
Para cada C C habr un estado en que las variables cambian como sigue:

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

C APTULO 4. M TODOS DE S OLUCIN PARA EL PDPT

43

Notaremos Dk para k {1, . . . , m} el tiempo acumulado de viaje del vehculo k y wi para


i {1, . . . , c} el tiempo de llegada del cliente i a algn trasbordo en caso de que est ah, que
ser -1 en caso de que el cliente no est en ningn trasbordo.
Sea ahora una tripleta (S, D, w), y sea S0 (S). Veamos cmo construir (D0 , w0 ) de manera
nica a partir de (S, D, w) y S0 , manteniendo la propiedad de seguir representando tiempos
acumulados de viaje (para el caso de D0 ) y tiempo de llegada al trasbordo (para el caso de w0 ).
0
0
0
Sea S0 v1
S {k}, es decir S = (L1 , . . . , Lk , . . . , Lm , z ) un estado siguiente a S producto de

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]

max{Dk + tL L 0 , {wl : zl 0 = m + k}} si j = k


k k
0
Dj =

Dj

1 si z j 0 = m + k
0
wj =

wj

(4.18)

(4.19)

C APTULO 4. M TODOS DE S OLUCIN PARA EL PDPT

44

Lo anterior motiva que definamos, dado un estado S S , y tiempos de viaje acumulados y


de llegada a trasbordo (D, w) una funcin u(S,D,w) : (S) (R+ )m ({1} R+ )c como sigue

u(S,D,w) (S0 ) = (D1 , . . . , Dk 0 , . . . , Dm , w ) si S0 v1


S {k}

(4.20)

Definicin 4.1.1. Diremos que una tripleta (S0 , D0 , w0 ) es siguiente a (S, D, w) si


i. S0 (S)
ii. (D0 , w0 ) = u(S,D,w) (S0 )
y lo denotaremos (S, D, w) (S0 , D0 , w0 )
Se desea minimizar una combinacin lineal entre tiempos de viaje y tiempos de espera de
los clientes2 .
Para un par de tripletas (S, D, w), (S0 , D0 , w0 ) tales que (S, D, w) (S0 , D0 , w0 ) se define la
funcin de transicin para pasar de (S, D, w) a (S0 , D0 , w0 ) como

P(S,D,w) (S0 , D0 , w0 ) =(1 ) Dk 0 (1 (Lk , Lk 0 ))[c+1,2c] (Lk 0 )+


k=1
m

(4.21)
0

(2 1) Dk (1 (Lk , Lk ))[1,c] (Lk )


k=1

Y entonces para una tripleta (S, D, w) se define su funcin de rendimiento como



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+ .

C APTULO 4. M TODOS DE S OLUCIN PARA EL PDPT

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)

Donde Lk0 = 0 k, z0i = 0 i, D0k = 0 k, y w0i = 1 i.


Complejidad del Algoritmo
Para implementar computacionalmente este algoritmo, se necesita guardar en memoria un total
de

(2c + 3r + 1)m (2m + r + 2)c

(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

C APTULO 4. M TODOS DE S OLUCIN PARA EL PDPT

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}

Figura 4.1: Transiciones posibles de la variable zi

Corolario 4.1.3. El algoritmo de Programacin Dinmica termina en un nmero finito de


pasos
Demostracin. Si no fuera as, se tendra o que bien en alguna transicin no se producen cambios en ninguna variable zi o bien si ocurre un cambio se llega a un estado anterior. Cualquiera
de los dos casos est descartado por la Proposicin 4.1.2

C APTULO 4. M TODOS DE S OLUCIN PARA EL PDPT

47

Extensin al Caso Dinmico


Si en algn momento aparece la necesidad de atender un nuevo cliente |C| + 1, y se sabe el
estado del sistema en el momento actual, digamos que el sistema se encuentra en un estado
(L0 , z0 , D0 , w0 ), se agrega entonces una nueva componente a z0 , w0 y se resuelve

V (L0 , z0 , 0, D0 , w0 , 1)

(4.27)

que es la solucin ptima al problema partiendo desde (L0 , z0 , D0 , w0 ).

Construccin de Rutas ptimas


Una vez que el algoritmo termina, la pregunta obvia es, Cul es la solucin del problema? o
de manera equivalente, Cmo construyo las rutas ptimas?.
Lamentablemente no se tiene una respuesta a esta interrogante, o ms bien, la respuesta
a esa pregunta depende de cmo se guarde el conjunto de estados del sistema. De la manera
que se ha propuesto en esta memoria, que es la construccin en tiempo real de los estados (por
causa de la componente real que poseen), el algoritmo descrito no puede resolverse como un
problema de rutas mnimas en el cual se guarde el conjunto de predecesores de cada estado,
pues para poder hacer esto se necesita conocer a priori el conjunto de estados. Conocer a
priori el conjunto completo de estados (S, D, w) computacionalmente produce un crecimiento
exponencial en la cantidad de recursos de memoria para almacenar todos los estados.

C APTULO 4. M TODOS DE S OLUCIN PARA EL PDPT

4.1.2

48

Cortes Combinatoriales de Benders

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{ct x + mn{0t y : y B(x),Cy 6 e, y > 0} : Ax 6 b, x {0, 1}n }


x

Luego para x conocido, se puede definir (Px ) como el siguiente problema

mn
y

(Px )

0t y

s.a. y B(x)
Cy 6 e
y>0

(Px ) no es ms que el problema de decidir si el conjunto {y : y B(x),Cy 6 e, y > 0} es


factible o no.
Si las restricciones y B(x) pueden ser descritas por condiciones de la forma

C APTULO 4. M TODOS DE S OLUCIN PARA EL PDPT

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

Donde S son los ndices de un conjunto infactible minimal de (Fx ).

(CCB)

C APTULO 4. M TODOS DE S OLUCIN PARA EL PDPT

50

Conjunto Minimal de Restricciones Infactibles


Sea x una solucin de (M) tal que (Fx ) es infactible. Sea el problema dual de (Fx )

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 ).

C APTULO 4. M TODOS DE S OLUCIN PARA EL PDPT

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)

Multiplicando 4.30 por ui y 4.31 por vi y sumando queda que


!

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

lo que es una contradiccin.


Lamentablemente esta proposicin no entrega minimalidad del conjunto de restricciones
violadas.
Para resolver el caso c = 0, d 6= 0, se deben manejar variables globales UB, > 0. Inicialmente UB = +. Al sub-problema se le debe agregar la siguiente restriccin

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)

Adicionalmente se pueden agregar restricciones asociadas a ventanas de tiempo (duras y


blandas).

C APTULO 4. M TODOS DE S OLUCIN PARA EL PDPT

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.

Algoritmo de Ramificacin y Corte


Lo anterior motiva naturalmente a resolver el problema maestro (M) por medio del mtodo de
ramificacin y acotamiento.
En cada nodo del rbol de ramificacin del problema (M) considerar las variables x que
toman valores en {0, 1}, y construir el problema (Fx ). Si (Fx ) es factible, seguir la ramificacin (y hacer UB d t y , en caso que corresponda). En caso contrario, resolver (DFx )
y agregar el corte (CCB) asociado a las variables x j(i) que intervienen en las restricciones
asociadas a las variables duales encontradas.
Para el caso c = 0, d 6= 0 el algoritmo termina cuando (M) se vuelve infactible.

Implementacin del Algoritmo de Ramificacin y Corte


En el marco del desarrollo de la seccin anterior, la funcin objetivo slo puede depender de
las variables binarias o de las variables reales.
Por ejemplo, si se considera una funcin objetivo de la forma

f (x) + g(D, z),

= 0.

(4.36)

entonces se resuelve el siguiente problema a variables enteras

mn
x

f (x)

s.a. x satisface (3.9)-(3.16)

(4.37)
(4.38)

Y se usa el dual del siguiente problema (con x fijo) para generar los cortes que se introducen al

C APTULO 4. M TODOS DE S OLUCIN PARA EL PDPT

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)

z [0, 1]|V ||M||C|

(4.45)

Adicionalmente se agrega 4.35 en caso de que > 0.

C APTULO 4. M TODOS DE S OLUCIN PARA EL PDPT

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

Ventanas de Tiempo y/o Tiempos de Espera y de Viaje

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.

C APTULO 4. M TODOS DE S OLUCIN PARA EL PDPT

55

En primer lugar, se presenta un mdulo de optimizacin local de rutas. Como su nombre lo


indica, este mdulo busca, a partir de rutas R1 , . . . , Rm , algunas de las cuales tienen al trasbordo
incorporado, reoptimizar estas rutas favoreciendo el uso del trasbordo. En caso de no encontrar
una solucin mejor que la inicial, el optimizador tiene la opcin de quedarse ya sea con esa
solucin o con la mejor de las encontradas por el algoritmo.
El mdulo de optimizacin local de rutas es utilizado luego en la heurstica. Si R1 , . . . , Rm
son rutas que no hacen trasbordo, se consideran todas las inserciones de trasbordos convenientes de analizar. En ellas, una vez insertados los trasbordos, se aplican los mtodos de corte de
rutas y reinsercin de clientes.

Mdulo de optimizacin local de rutas


Sean rutas R1 , . . . , Rl que hacen trasbordo. Se quiere reoptimizar el uso del trasbordo, permitiendo que los vehculos que pasan al trasbordo intercambien pasajeros y, alternativamente,
rehagan sus rutas. Para fijar ideas, por ejemplo cuando 2 vehculos hacen trasbordo pero ningn cliente se cambia de vehculo, el uso del trasbordo no tiene sentido, y entonces se debe
aplicar alguna estrategia que use el trasbordo para encontrar soluciones mejores.
El procedimiento propuesto se divide en 2 etapas que se aplican de manera secuencial:

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

trasbordo de la ruta Rk como Rk , que comienza en el trasbordo y termina en el depot destino


del vehculo k. De igual modo se define la porcin pre-trasbordo de la ruta Rk como Rik , que
comienza en el depot origen del vehculo k y termina en el trasbordo.

C APTULO 4. M TODOS DE S OLUCIN PARA EL PDPT

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

(a) Rutas Iniciales antes de aplicar Corte


R1
7

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

U1 = {10, 11, 12, 13} Clientes con origen y destino en


R1,2
f
U2 = {1, 4, 6, 7, 8, 9} Clientes con solo destino en R1,2

(b) Rutas Finales despus de aplicar Corte

Figura 4.2: Rutina de Corte de Rutas

C APTULO 4. M TODOS DE S OLUCIN PARA EL PDPT

57

La rutina CortarRutas se detalla a continuacin

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

else if i+ Rij and i R j then


U2 U2 {i}

4.1.9
4.1.10

Borrar i de R j

4.1.11

4.1.12

end

Luego de aplicar el algoritmo de corte de rutas, comienza la etapa de Insercin de clientes.


Lo que se hace es, mediante un proceso iterativo, buscar la mejor insercin para un cliente que
se ve afectado por el trasbordo, es decir aquellos que estn en U1 U2 .
El algoritmo propuesto se detalla a continuacin

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

Input: R1 , . . . , Rl ,U1 ,U2


Output: S1 , . . . , Sl . Rutas de vehculos haciendo trasbordo
Step 1
// Inicializar Output
Si Ri i
while U1 U2 6= 0/ do
Sacar i de U1 U2
if i estaba en U1 then
InsertarOD(i, S1 , . . . , Sl ,U1 ,U2 )
else
InsertarD(i, S1 , . . . , Sl ,U1 ,U2 )
return S1 , . . . Sl
end Step 1

C APTULO 4. M TODOS DE S OLUCIN PARA EL PDPT

58

Las subrutinas InsertarD e InsertarOD se detallan a continuacin

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

Input: i, R1 , . . . , Rl ,U1 ,U2


Output: void
begin
Sh Rh h
v +
for k 1 to l do
js finds(Sk )
for j js + 1 to size(Sk ) do
Th Sh h
InsertarNodo(Tk , j, i )
z = new triple array
if Feas(T1 , . . . , Tl ,U1 ,U2 , z) then
val Value(T1 , . . . , Tl ,U1 ,U2 , z)
if val < v then
Sh Th h
v val
for k 1 to l do
Rk Sk

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.

C APTULO 4. M TODOS DE S OLUCIN PARA EL PDPT

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

Input: i, R1 , . . . , Rl ,U1 ,U2


Output: void
begin
S1 R1 , S2 R2
v +
for k 1 to l do
for l 1 to l do
if k == l then
for j+ 2 to size(Sk ) do
for j j+ + 1 to size(Sk )+1 do
Th Sh h
InsertarNodo(Tk , j+ , i+ )
InsertarNodo(Tk , j , i )
z = new triple array
if Feas(T1 , . . . , Tl ,U1 ,U2 , z) then
val Value(T1 , . . . , Tl ,U1 ,U2 , z)
if val < v then
Sh Th h
v val
else

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.

C APTULO 4. M TODOS DE S OLUCIN PARA EL PDPT

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

Input: R1 , . . . Rl ,U1 ,U2


Output: bool f , verdadero si las rutas son factibles, falso si no. z arreglo 3-d con los valores de las

variables, si f == true. z = 0 en caso contrario.


begin
// Inicializar variables xikj
forall the (i, j) E, k M do
xikj = 0

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

Resolver F P x,U1 ,U2


if F P x,U1 ,U2es factible then

return sol F P x,U1 ,U2 ,true
else
h
i

return 0 , f alse

4.5.6
4.5.7
4.5.8
4.5.9
4.5.10
4.5.11

end

Este procedimiento entrega como resultado f actible in f actible, segn si el problema

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.

C APTULO 4. M TODOS DE S OLUCIN PARA EL PDPT

61

Procedure Valor

4.6.1

Input: R1 , . . . , Rl ,U1 ,U2 , z


Output: valor de la funcin objetivo para las rutas R1 , . . . Rl .
begin
// Inicializar variables xikj
forall the (i, j) E, k {1, . . . , m} do
xikj = 0

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

Resolver V P x,z,U1 ,U2


if V P x,z,U1 ,U2 es factible then
return ob jval (V P x,z,U1 ,U2 )
else
return +

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

C APTULO 4. M TODOS DE S OLUCIN PARA EL PDPT

62

mn

0t z

s.a.

zki
k+ = 0

k M, i C

(4.47)

zki
k = 0

k M, i C

(4.48)

i C, (l, j) E\{(e, s)} tq l 6= i+ , i

(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.

C APTULO 4. M TODOS DE S OLUCIN PARA EL PDPT

63

f (x, z, D, De , Ds , , )

mn

D,De ,Ds ,,

(4.57)

xkk+ i+ = 1 tk+ i+ 6 Di+

i C, k M

(4.58)

xkk+ e = 1 tk+ e 6 Dke

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

Dke , Dks > 0

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

f = Di+ + (Di Di+ ) + i + i


iC

iC

iN

iN

entonces en el problema V P x,z,U1 ,U2 se propone usar la siguiente funcin truncada de f ,


cuyo rol es el de penalizar slo en los nodos que se han insertado en la solucin, dejando los

C APTULO 4. M TODOS DE S OLUCIN PARA EL PDPT

64

nodos que an no han sido insertados fuera del criterio de optimizacin.

f =

Di+ + (Di Di+ ) + ((Dke + ) 1i+Rk Di+ ) + i + i

iC

iC

iU2

iN

iN

(4.70)


Con C = C\U1 , C = C\ (U1 U2 ) y N = N\ U1+ U1 U2 .


+()

donde U j

= {i+() : i U j }.

Implementacin del Mdulo: Algoritmo de Insercin


El mdulo de insercin antes descrito el programador puede ser usarlo de muchas formas
(razn por la cual se ha introducido previo al algoritmo en s), usando distintas estrategias para
combinar las rutas. En esta memoria se presenta una estrategia que luego de varias pruebas
result dar los mejores resultados en cuanto a calidad de las soluciones.
Considere el PDPTTW con n clientes, m vehculos y 1 trasbordo, en adelante PDPTTW(n, m).
Sean R1 , . . . , Rm un conjunto de rutas dado para el PDPTW(n, m), es decir el problema de
recoger y dejar pasajeros sin trasbordo, y sean L(Rk ) los largos de cada ruta.
Sea P = {(p1 , . . . , pm ) : 0 6 p j < L(R j ) j} el conjunto de todas las posiciones en las distintas rutas (pk = 0 significa que en el vehculo k no se inserta trasbordo).
El algoritmo propuesto busca todas las posiciones posibles donde se pueden poner los trasbordos en todos los vehculos. En cada una de ellas resuelve el mdulo de optimizacin local
de rutas, descrito en la seccin anterior y finalmente se queda con el p P que produce la
mejor solucin.
Este procedimiento puede ser generalizado muy fcilmente cuando tenemos rutas que YA
tienen incorporado el trasbordo en medio de ellas. Para aclarar ideas, digamos que las l primeras rutas ya tienen el trasbordo incorporado, mientras que las restantes m l an no. Lo que se
hace es definir el conjunto P = {(p1 , . . . , pl , pl+1 , . . . , pm ) : 0 6 p j < L(R j ) j > l}, donde p j
es la posicin del trasbordo en la ruta j 6 l.

C APTULO 4. M TODOS DE S OLUCIN PARA EL PDPT

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

Anlisis de Complejidad del Algoritmo


El Anlisis de la complejidad del algoritmo Heuristica1(n, m) se hace en trminos del nmero
de inserciones que deben hacerse en todo el proceso.
En primer lugar, notar que la insercin de cada elemento de U1 debe hacerse en orden O(n2 )
que es la cantidad de inserciones posibles para la tupla (i+ , i ) en cualquiera de las rutas, con
i U1 .
En segundo lugar, si se considera que la cantidad de clientes en U1 es O(n) eso da que
dentro del ciclo while de la lnea 4.7.8 el nmero de inserciones que deben hacerse es del
orden O(n3 ).
Si se asciende hasta el ciclo for de la lnea 4.7.4, el nmero de inserciones se multiplica
m 
por O mn
, obteniendo un nmero total de inserciones del orden de

 n m
m

n3

(4.71)

C APTULO 4. M TODOS DE S OLUCIN PARA EL PDPT

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

nmero total de clientes n.

Acotamiento de las Inserciones


Al ver la complejidad de Heuristica1 en la seccin anterior puede verse que lo que ms molesta
es el orden exponencial del trmino

 n m
m

(4.72)

Para mejorar esto se proponen ciertas mejoras en la definicin del conjunto P .


La incorporacin de un trasbordo en la ruta de un cliente produce un malestar en el individuo por el solo hecho de tener que esperar a que otro vehculo lo tome. Para acotar los tiempos
de espera en los trasbordos, se propone lo siguiente: si dos o ms vehculos pasan al trasbordo
deben hacerlo en un tiempo cercano.
Ms precisamente, sea un parmetro de tolerancia al tiempo en que dos ms vehculos
pasan a un trasbordo para intercambiar pasajeros.
El tiempo en que un vehculo pasa al trasbordo depende exclusivamente de cul sea el nodo
anterior al trasbordo. Supongamos que al incorporar el trasbordo en la ruta del vehculo k en la
posicin pk su ruta queda as

(k+ , . . . , n(pk ), e, s, . . . , k )

(4.73)

Entonces el tiempo en que el vehculo llega al trasbordo viene dado por

Dn(pk ) + t(n(pk ), e)
Definamos a esta cantidad como Tpkk

(4.74)

C APTULO 4. M TODOS DE S OLUCIN PARA EL PDPT

67

Entonces el conjunto P queda como

P = {(p1 , . . . , pm ) : 0 6 pi < L(Ri )i, max{Tpkk Tpll : pk , pl > 0} < }

(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.

CortarRutas hacia adelante y hacia atrs


As como se usa un mtodo CortarRutas para cortar las rutas desde el trasbordo hacia adelante, tambin se puede hacer algo anlogo para cortar las rutas desde el trasbordo hacia atrs. Es
decir, se guardan los nodos borrados tanto en origen como destino en una lista V1 , y aquellos
que tengan solo su nodo origen antes del trasbordo en una lista V2 . As, el procedimiento sera
Procedure CortarRutas2

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

else if i+ Rij and i R j then


V2 V2 {i}
Borrar i+ de Rij

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

C APTULO 4. M TODOS DE S OLUCIN PARA EL PDPT

68

3. Aplicar rutina CortarRutas2. Input: S1 , . . . , Sl , Output: S1 0 , . . . , Sl 0 .


4. Optimizar el uso del trasbordo hacia atrs. Input: S1 0 , . . . , Sl 0 , Output: T1 , . . . , Tl
Notar que al aplicar el algoritmo de CortarRutas2 se deben cambiar las lneas 4.52 y 4.53
por

zkie = zkis
kM

i C\V2

(4.76)

i V2

(4.77)

kM

zkis > 1
kM

y en la definicin de f se debe usar

f =

Di+ + (Di Di+ ) + (Di Dks 1iRk ) + 0 i + 0 i

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.

Paralelizaciones del Algoritmo


En la misma ptica de intentar bajar la complejidad del trmino 4.71 se propone una paralelizacin que necesita O( mn ) CPUs, y que consiste en paralelizar Heuristica1 en la lnea 4.7.4.
Para fijar ideas, digamos que se pibotea en la primera coordenada de 4.7.4, y a cada CPU
se le asigna la tarea de resuelver el problema

C APTULO 4. M TODOS DE S OLUCIN PARA EL PDPT

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

if w Valor del nuevo set de rutas <v then


vw
Sij T j , j

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

Distancia Recorrida por los Vehculos

Cuando la funcin objetivo considerada es la distancia recorrida por los vehculos

(i, j)E

ti j xikj

(4.81)

C APTULO 4. M TODOS DE S OLUCIN PARA EL PDPT

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
(

P = (P1 , . . . , pm ) : pk {0, 1}k {1, . . . , m}, pk 6= 1

)
(4.82)

k=1

Notar que el conjunto P incluye la insercin sin trasbordos.


La heurstica que se propone entonces es la siguiente:
Function Heuristica2(n, m)

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

if w Valor del nuevo set de rutas <v then


vw
S j Tj , j

4.10.11
4.10.12
4.10.13

return S1 , . . . , Sm

4.10.14
4.10.15

end

Complejidad del Algoritmo


Esta vez el peso de la complejidad se lo lleva el ciclo for de la lnea 4.10.4. La complejidad
de lo que hay dentro de tal ciclo es igual que en la subseccin anterior, y por lo tanto la
complejidad del algoritmo es
O 2m n3
que es exponencial en el nmero de vehculos m.

(4.83)

C APTULO 4. M TODOS DE S OLUCIN PARA EL PDPT

71

Paralelizacin del Algoritmo


Al igual que en la subseccin anterior, este algoritmo es paralelizable en la lnea 4.10.4. Si se
tienen 2l CPUs se pueden fijar las primeras l componentes de los elementos de P con lo cual
se reduce la complejidad a


O 2ml n3

4.2.3

(4.84)

Complementacin con Otros Mtodos

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

C APTULO 4. M TODOS DE S OLUCIN PARA EL PDPT

72

la calidad de la solucin empeore y era necesario desarrollar rutinas de mejoramiento de rutas


como las propuestas en los algoritmos de tipo Tabu Search.

Captulo 5
Resultados

73

C APTULO 5. R ESULTADOS

74

Sealemos que todas las pruebas fueron hechas utilizando el siguiente equipo:
Procesador

AMD Barton 2.0 GHz (2900+)

Memoria RAM

Buffalo 512MB DDR PC3200

Disco Duro

Western Digital Caviar 60GB 7200RPM ATA100

Sistema Operativo Windows XP Professional + SP2


Compilador

Visual C++ 6.0 + SP6

Los algoritmos considerados son:


Ramificacin y Acotamiento (R&A)
Cortes Combinatoriales de Benders (CCB)
Programacin Dinmica (PD)
Heursticas de Insercin Heuristica1 y Heuristica2 (HI1, HI2)
Las funciones objetivo consideradas son dos:
1. Distancia recorrida por los vehculos DRV
2.

1
2 Tiempos

de Espera + 12 Tiempos de Viaje

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

definicin e interpretacin de estas cantidades se encuentran en la pgina 34

C APTULO 5. R ESULTADOS

75

entre 3 y 6 clientes. Las instancias medianas corresponden a redes de 12 a 21 clientes, con 3


vehculos y 1 trasbordo. En total, se hicieron 10 corridas para cada instancia.
En cada instancia las posiciones de los nodos {(i+ , i ) : i C} son aleatorias en un cuadrado
de 1000x1000 [UD2 ], as como tambin las posiciones de los depots {(ki+ , ki ) : i {1, 2}}. La
ubicacin del trasbordo se elige en el centro de masa de los nodos {(i+ , i ) : i C}.

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

(a) Tiempo de CPU promedio para ob j = DRV

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

(b) Tiempo de CPU promedio para ob j = 12 T EC + 21 TVC

Tabla 5.1: Tiempos de CPU promedios para instancias pequeas


Para tener una idea respecto a lo ineficiente que resulta ser la implementacin del algoritmo
de PD, las nicas corridas que lograron terminar con xito fueron para instancias de 3 clientes o
menos, en un tiempo de 4 horas (15 mil segundos ms o menos) para 3 clientes. Al querer saltar
a 4 clientes, el algoritmo estuvo ms de 24 horas corriendo debiendo terminarlo forzosamente.

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.

Clientes [#] v/s Tiempo [s]


F.O.: 0.5 TE + 0.5 TV

Clientes [#] v/s. Tiempo [s]


F.O.: Distancia Total Recorrida
10000

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

(b) Tiempo de CPU para la F.O.: 21 T EC + 21 TVC

(a) Tiempo de CPU para la F.O.: DRV

Figura 5.1: Tiempos de CPU para instancias pequeas

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

(a) G(A) para ob j = DRV

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

(b) G(A) para ob j = 12 T EC + 12 TVC

Tabla 5.2: Gap Promedios de CCB y HI


De estos resultados se puede concluir que los mtodos CCB, HI1 y HI2 para instancias
de ms de 4 clientes toman una ventaja significativa con respecto a R&A, al menos cuando la
funcin objetivo considerada es DRV . Si la funcin objetivo es 12 T EC + 12 TVC entonces CCB
se comporta peor que R&A, mientras que la heurstica de insercin resulta ser dramticamente
ms rpida.

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

Tabla 5.3: Comparativa de la calidad de las soluciones


Hasta ahora, nada se ha dicho acerca de la conveniencia real de incorporar trasbordos en la
formulacin. Las pruebas realizadas para pocos clientes muestran que para demandas pequeas
el uso de trasbordo no ayuda a encontrar soluciones mejores que sin el uso de ellos. Para
validar la necesidad de incorporar trasbordos en la formulacin del Problema de Recoger y
Dejar Pasajeros con Trasbordos es necesario revisar los resultados de las corridas hechas para
las instancias medianas.
Para hacer la comparacin, se us como prueba una heurstica de insercin para el Problema de Recoger y Dejar Pasajeros, complementada con la misma heurstica de intercambio
de clientes hecha para los mtodos Heuristica1 y Heuristica2, efectuada una vez terminado el
procedimiento. Al final del captulo se presenta el detalle de este algoritmo.
La tabla 5.4 entrega los costos promedio de los mtodos heursticos propuestos en esta
memoria en comparacin con los entregados por la heurstica de prueba, donde se ve una
real ganancia en la incorporacin de trasbordos a la formulacin del Problema de Recoger y
Dejar Pasajeros. Si bien hay algunos casos en que los mtodos ac propuestos no encuentran
una solucin mejor que el mtodo de prueba, esto ocurre con una frecuencia menor al 40 %,
teniendo en el otro 60 % que la incorporacin de trasbordos produce soluciones mejores que
sin trasbordo.
En cuanto a velocidad de los mtodos, la caracterstica exponencial de los mtodos ac
propuestos hace que los tiempos crezcan muy rpidamente. Por ejemplo, las instancias de 21
clientes demoran cerca de 3 horas en promedio, versus 20-30 minutos que demora el mtodo
de prueba.

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

Tabla 5.4: Costos promedio entregados por los mtodos HI y Prueba

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

Actualizar la ruta Rkmin con la insercin de imin


U U\{imin }

5.1.15
5.1.16

return R1 , . . . , Rm

5.1.17
5.1.18

end

Captulo 6
Conclusiones e Investigacin Futura

80

C APTULO 6. C ONCLUSIONES E I NVESTIGACIN F UTURA

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

C APTULO 6. C ONCLUSIONES E I NVESTIGACIN F UTURA

82

futuras posibles implementaciones de esta metodologa.


Finalmente, se proponen mtodos aproximados de solucin que muestran resultados muy
buenos respecto a los mtodos exactos en la mayora de las pruebas realizadas. Adicionalmente
cabe sealar que en cuanto a velocidad, en el equipo de prueba estos algoritmos fueron capaces
de correr hasta para 21 clientes con 3 vehculos y 1 trasbordo en un tiempo de 3 horas aproximadamente, lo cual es imposible para cualquiera de los mtodos exactos aqu presentados
que explotan de manera exponencial obtenindose tiempos mucho mayores a 3 horas para 7
clientes o ms.
Para instancias de tamao mediano, los mtodos heursticos propuestos muestran que la
incorporacin de trasbordos posibilita encontrar soluciones mejores que las obtenidas sin trasbordos, en cerca de un 60 % de los casos. Esto permite validar la incorporacin de trasbordos
al problema, pudiendo decirse que se ha formulado un problema ms general que el Problema
de Recoger y Dejar Pasajeros y que permite encontrar soluciones de mejor calidad.
A pesar de los intentos que se hicieron por presentar la mayor cantidad y calidad de algoritmos de solucin, lo que se ha hecho corresponde una parte muy mnima de lo que uno puede
encontrar en la literatura para sistemas sin trasbordo. Estudios Poliedrales del Problema de Recoger y Dejar Pasajeros con Trasbordos (y su implementacin en algoritmos de Ramificacin
y Corte), metaheursticas, algoritmos del tipo Tabu Search Generacin de Columnas son solo
algunas de las posibilidades que debieran ser estudiadas y que en esta memoria no han sido
incluidas.
De la misma manera, la paralelizacin de los algoritmos heursticos ac propuestos es algo
que debiera presentar una gran ganancia en los tiempos de uso de CPU pudiendo alcanzarse
instancias de solucin muchsimo ms grandes que las presentadas en este estudio.
Finalmente, se han trazado algunos lineamientos de cmo se puede introducir demanda
dinmica en algunos de los algoritmos y como adaptar la formulacin para que capte ese fenmeno. Aquellos algoritmos y la formulacin misma tienen la flexibilidad de poder incorporar
demanda dinmica de manera simple.

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

Codato, Gianni y Fischetti, Matteo. Combinatorial Benders Cuts. En George L. Nemhauser


y Daniel Bienstock (Editores), IPCO, tomo 3064 de Lecture Notes in Computer Science,
178195. Springer (2004). ISBN 3-540-22113-1.
Cornujols, G., Fonlupt, J. y Naddef, Denis. The traveling salesman problem on a graph and
some related integer polyhedra. Mathematical Programming 33:127 (1985).
Corts, Cristin E. y Jayakrishnan, R. Efficient strategies for passenger assignment and terminal operations in real-time routed transit with transfers. Networks and Spatial Economics
(2005). Artculo submitido.
Crainic, T. G., Malucelli, F. y Nonato, M. Flexible many-to-few + few-to-many = an almost
personalized transit system. En TRISTAN IV, 435440. Islas So Miguel Azores (2001).
Cullen, Frank H., Jarvis, John J. y Ratliff, H. Donald. Set partitioning based heuristics for
interactive routing. Networks 11:125143 (1981).
Dantzig, George B. y Wolfe, Phil. Decomposition principle for linear programs. Operations
Research 8:101111 (1960).
Desrochers, Martin, Desrosiers, Jacques y Solomon, Marius M. A new optimization algorithm for the vehicle routing problem with time windows. Operations Research 40:342354
(1992).
Desrochers, Martin y Verhoog, T. W. A matching based savings algorithm for the vehicle
routing problem. Technical Report Cahiers du GERAD G-89-04, cole des Hautes tudes
Commerciales de Montral, Canada (1989).
Desrosiers, Jacques, Dumas, Yvan y Soumis, Franois. A dynamic programming solution of
the large-scale single-vehicle dial-a-ride problem with time windows. American Journal of
Mathematical AND Management Sciences 6(3, 4):301325 (1986).
Diestel, Reinhard. Graph Theory, captulo 1, 1920. Springer-Verlag, 2nd edicin (2000).

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

Schneider, J. B. y Smith, S. P. Redesigning Urban Transit Systems: A Transit-Center-Based


Approach. Transportation Research Record 798:5665 (1981).
Sexton, Thomas R. y Bodin, Lawrence D. Optimizing Single Vehicle Many-to-Many Operations with Desired Delivery Times: I. Scheduling. Transportation Science 19:378410
(1985a).
Sexton, Thomas R. y Bodin, Lawrence D. Optimizing Single Vehicle Many-to-Many Operations with Desired Delivery Times: II. Routing. Transportation Science 19:411435
(1985b).
Solomon, Marius M. Algorithms for the vehicle routing and scheduling problems with time
window constraints. Operations Research 35(2) (1987).
Toth, Paolo y Vigo, Daniele. The Vehicle Routing Problem. Society of Industrial and Applied
Mathematics (SIAM) (2002).
Wark, P. y Holt, J. A repeated matching heuristic for the vehicle routing problem. Journal of
Operations Research Society 45:11561167 (1994).

Apndice A
Consideraciones sobre Teora de Grafos

88

A PNDICE A. C ONSIDERACIONES SOBRE T EORA DE G RAFOS

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.

A PNDICE A. C ONSIDERACIONES SOBRE T EORA DE G RAFOS

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

Proposicin A.2.1. Sea G = (V, E) un grafo, con V = M + N M tal que


dG (v) = 0

dG+ (v) > 0

v M +

(A.2)

dG (v) > 0

dG+ (v) = 0

v M

(A.3)

v N

(A.4)

dG+ (v) = dG (v)

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.

A PNDICE A. C ONSIDERACIONES SOBRE T EORA DE G RAFOS

91

Demostracin. Sea P = (v1 , . . . , vn ) un camino maximal abierto de largo > 2 en G, es decir


que v1 6= vn y P no puede ser extendido por sus extremos por arcos que no estn ya en P.
Veamos que v1 M + . Suponga que v1
/ M + . Note en primer lugar que v1
/ M pues en
tal caso, como P es de largo al menos 2, se tendra que (v1 , v2 ) E(G) lo que es imposible
pues dG (v1 ) = 0. Si ocurriera que v1 N, entonces dG+ (v1 ) = dG (v1 ) por hiptesis. Pero por
la observacin anterior tenemos que en un camino abierto dP (v1 ) dP+ (v1 ) = 1 y por lo tanto
/ E(P), con lo que agregando v0 por la izquierda de P la nueva
v0 NG (v1 ) tal que (v0 , v1 )
secuencia seguira siendo un camino, contradiciendo la maximalidad de P.
Para ver que vn M note en primer lugar que I (G) satisface las hiptesis de la proposicin,
definiendo MI+(G) = M , MI(G) = M + , y en segundo lugar que un camino P es maximal abierto
en G ssi. I (P) es maximal abierto en I (G).
Proposicin A.2.2. Sea G = (V, E) un grafo que satisface (A.2)-(A.4). Entonces v M + , Pv
camino simple que parte en v y termina en M . De igual modo w M , Pw camino simple
que parte en M + y termina en w
Demostracin. Probemos que para cada v M + , Pv camino simple que parte en v y termina
en M . La recproca se obtiene a partir de I (G) tal cual como en la demostracin anterior.
Sea v M + . Como dG+ (v) > 0, existe v2 V (G) tal que (v, v2 ) E. Considere un camino
maximal Q a (v, v2 ). Tal camino necesariamente es abierto pues dG (v) = 0, y por lo tanto por
la Proposicin (A.2.1) Q termina en M . Para ser ms precisos digamos que Q = (v1 , . . . , vn ).
Por la Proposicin (A.2.1) existe un camino simple que conecta v1 y vn , y por construccin tal
camino es maximal simple.
Proposicin A.2.3. Sea G = (V, E) un grafo, con V = M + N M , y satisfaciendo (A.2),
(A.3) y
dG+ (v) = dG (v) = 1
Entonces
1. Todo camino de M + a M es simple.

v N

(A.5)

A PNDICE A. C ONSIDERACIONES SOBRE T EORA DE G RAFOS

92

2. Todo nodo que no est en algn camino de M + a M pertenece a un ciclo simple.


3. Todo camino de M + a M no admite bifurcaciones.
Demostracin. Veamos primeramente que todo camino de M + a M es simple. Sea P =
(v1 , . . . , vn ) un camino de M + a M , y suponga que vl = v j = v para 2 6 l, j 6 n 1, l 6= j. Entonces (vl1 , v), (v, vl+1 ), (v j1 , v), (v, v j+1 ) E(G) y por lo tanto dG+ (v) = dG (v) > 2. Luego
por las ecuaciones (A.2)-(A.4) se tiene v N, lo que no puede ser por la ecuacin (A.5).
Veamos ahora que todo v V (G) que no est en algn camino de M + a M est en un ciclo
simple. Sea P = {G(P) : P es un camino de M + a M } el grafo de todos los caminos de M +
a M . Por la Proposicin (A.2.2) el grafo G P no contiene a ningn nodo ni en M + ni en

+
M , y todos sus nodos son tales que dG
P = dGP = 1. Por el Teorema de Euler (Diestel 2000)

concluimos que las componentes conexas de G P son ciclos simples.


La tercera propiedad es directa del hecho de que todo nodo intermedio tiene grado mximo 1,
y por lo tanto no puede tener ms de un arco saliente y entrante a l.

Apndice B
Descomposicin de Benders

93

A PNDICE B. D ESCOMPOSICIN DE B ENDERS

94

Considere del siguiente problema de optimizacin semi-entera


mn
x,y

ct x + d t y

s.a. Ax 6 b
(P)

Bx +Cy 6 e
x {0, 1}n
y>0

Notemos que (P) puede escribirse de manera equivalente como

(P0 )

mn{ct x + mn{d t y : Cy 6 e Bx, y > 0} : Ax 6 b, x {0, 1}n }


x

Luego para x conocido, podemos definir (Px ) como el siguiente problema

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

Notemos que el poliedro H = {u > 0 : Ct u + d > 0} es independiente de x, y por lo tanto


podemos probar lo siguiente
Proposicin B.0.4. Si H = ocurre una y solo una de las siguientes
1. (Px ) es infactible x {0, 1}n , Ax 6 b
2. x0 {0, 1}n , Ax 6 b tal que (Px0 ) es no acotado (= ) en cuyo caso (P) es no acotado

A PNDICE B. D ESCOMPOSICIN DE B ENDERS

95

Demostracin. Conclusin directa del Teorema de Dualidad Dbil (Bertsimas y Tsitsiklis


1997)
Luego si logramos probar que (P) es factible y admite un ptimo (acotado), entonces H 6= .
Ms adelante veremos que en el caso de nuestro problema lo anterior se tiene bajo ciertas
condiciones.
Sea H 6= . Notemos que

C
d
H = u : u >

I
0
donde

 t
C
I

(B.1)

tiene rango completo. Por el Teorema de Minkowski Nemhauser y Wolsey

(1988) se tiene que


(
H=

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

k utk (Bx e) + j utj (Bx e)

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

si j J, utj (Bx e) 6 0, el problema anterior alcanza su mximo en = ek0 , = 0 , donde


k0 = arg max{k K : utk (Bx e)}.
Entonces (P0 ) es equivalente a

mn{ct x + max{utk (Bx e) : k K} : x {0, 1}n , Ax 6 b, u j (Bx e) 6 0 j J}


x

(B.4)

A PNDICE B. D ESCOMPOSICIN DE B ENDERS

96

que puede reescribirse de manera equivalente como

mn

,x

s.a. > ct x + utk (Bx e) k K


(P00 )

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

s.a. > ct x + utk (Bx e) k K0


(PR00 )

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

donde zA es el valor ptimo del problema A.


La primera desigualdad se alcanza con igualdad (de manera suficiente) cuando K0 = K, J0 =
J, y la segunda cuando x = arg mn(P0 ), lo cual motiva a definir un proceso iterativo para
resolver (P) que haga mejorar las cotas zPR00 , zDx .

A PNDICE B. D ESCOMPOSICIN DE B ENDERS

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

Sea , x la solucin de (PR00 ). Hacer xi+1 = x , LB = .


Paso 3: Test de Convergencia
Si UB LB < parar. Resolver (Pxopt ) y devolver xopt , yopt
Si no, hacer i i + 1 y volver a Paso 1.

S-ar putea să vă placă și