You are on page 1of 110

Universidad de Buenos Aires

Facultad de Ciencias Exactas y Naturales
´n
Departamento de Computacio

Ruteo de veh´ıculos y asignaci´
on de conductores:
un enfoque combinado

Tesis de Licenciatura

Dami´
an Bakarcic y Gabriela Di Piazza

Directores de tesis: Dra. Isabel M´endez D´ıaz
Dra. Paula Zabala

Buenos Aires, septiembre de 2012

Resumen
El problema de planificar rutas para veh´ıculos y sus correspondientes conductores se
presenta en la pr´
actica en ´
areas de log´ıstica como transporte de pasajeros y distribuci´on de
mercader´ıa. En la actualidad, dada la complejidad y variedad de los sistemas de transporte
y distribuci´
on, se hace imperativo el uso de herramientas de optimizaci´on para resolver
esta clase de problemas.
En este trabajo se aborda un problema surgido de la pr´actica que consiste en planificar el retiro y entrega de un conjunto de pedidos de mercader´ıa, cumpliendo con ciertas
restricciones horarias, en funci´
on de un conjunto de veh´ıculos disponibles. Asimismo, se
debe planificar la asignaci´
on de los conductores a los veh´ıculos que realizar´an cada tarea.
El problema conjuga caracter´ısticas de tres problemas estudiados en la literatura como
son: el Vehicle Routing Problem, el Crew Scheduling Problem y el Pick-up and Delivery
Problem with Time Windows.
Para resolver este problema proponemos un modelo de programaci´on lineal entera binaria que contempla en forma integrada la planificaci´on de rutas de veh´ıculos y la asignaci´on
de los correspondientes conductores. Debido a que el modelo resultante cuenta con una
gran cantidad de variables, utilizamos la t´ecnica de generaci´on de columnas para generar
los posibles recorridos a realizar por los veh´ıculos.
El esquema de resoluci´
on propuesto particiona al problema en dos: el problema maestro y el subproblema de generaci´
on de columnas. Para el primero utilizamos un algoritmo Branch and Cut. Para el u
´ltimo desarrollamos un algoritmo basado en programaci´on
din´amica que busca el camino ´
optimo sobre una red con recursos y restricciones. Los
caminos sobre dicha red representan las posibles rutas que pueden transitar los veh´ıculos.
Adem´
as de la implementaci´
on original propuesta para el algoritmo de generaci´on de
columnas, desarrollamos optimizaciones sobre el mismo y realizamos pruebas para verificar
los resultados de dichas optimizaciones. Finalmente, presentamos un conjunto de pruebas
que eval´
ua el comportamiento del esquema de resoluci´on general implementado.

i

Abstract
The problem of vehicle routing planning combined with crew scheduling arise in areas
of logistics such as passenger transport and merchandise distribution. At present, given
the complexity and variety of transport and distribution systems, it is imperative to use
optimization tools to solve such problems.
This work addresses a real life problem involving the planning of the pick-up and
delivery of a set of orders, according to certain time restrictions, based on a set of available
vehicles. In addition, the allocation of crews to the vehicles which perform each task must
also be scheduled. This problem combines features present in three well studied problems:
the Vehicle Routing Problem, the Crew Scheduling Problem and the Pick-up and Delivery
Problem with Time Windows.
To solve this problem we propose a binary integer linear programming model that
provides integrated planning of vehicle routing and crew scheduling. Due to the large
number of variables of the resulting model, we use column generation in order to generate
the possible routes to be taken by the vehicles.
The proposed resolution framework gives rise to two problems: the master problem
and the subproblem of column generation. To solve the first we use a Branch and Cut
algorithm. For the latter we develop a dynamic programming algorithm that seeks the
optimal path over a resource constrained network. The paths on this network represent
the possible routes that can be taken by the vehicles.
In addition to the original implementation, we develop optimizations over the column
generation algorithm and perform tests to verify the results of these optimizations. Finally,
we present a set of tests to analyze the performance of the implemented algorithms.

ii

Agradecimientos
Nos gustar´ıa agradecer en primer lugar a Isabel y Paula, nuestras directoras, por la
dedicaci´on, la paciencia y el apoyo que nos brindaron a lo largo de todo el trabajo.
A todos nuestros compa˜
neros de la carrera que terminaron convirti´endose en grandes
amigos: Ale, Alex, Cele, Flor, Jona, Juli, Mati, Maxi, Nati, Pablo, Tom y todos aquellos
que nos acompa˜
naron en esta etapa. Con ellos compartimos cursadas, incontables horas de
estudio, trabajos pr´
acticos y, por sobre todo, muy buenos momentos. Gracias a su apoyo,
todos estos a˜
nos de estudio se hicieron mucho m´as agradables.
A los compa˜
neros del Ministerio de Econom´ıa, Bruno, Caro, Cele, Fer, Flor, Mati y
Tom, que nos aguantaron durante casi toda la carrera y nos ayudaron a crecer profesionalmente.
A los profesores y ayudantes del Departamento de Computaci´on, por estar siempre
dispuestos a transmitirnos su conocimiento y responder nuestras dudas. A la Universidad
de Buenos Aires, por habernos recibido y brindado educaci´on de excelencia.
Agradecimientos de Dami´
an
Quer´ıa agradecer en primer lugar a mis viejos, Darko y Neris, que desde chiquito me
motivaron y me dieron la oportunidad de aspirar a una carrera profesional, banc´andome
durante todos estos a˜
nos de carrera. Espero poder devolverles alg´
un d´ıa todo lo que me
dieron. A mi hermano Mirko, por colaborar conmigo en las peque˜
nas cosas que hicieron
que todo sea m´
as f´
acil cuando el tiempo apremiaba.
A Mica, mi novia, que me banc´
o desde el primer d´ıa, soportando mis ma˜
nas, entendiendo el tiempo que demandaba una carrera universitaria como ´esta y aguant´andome en
todos los momentos dif´ıciles. Gracias por estar ah´ı y acompa˜
narme en este momento tan
importante.
A la familia de mi novia, en especial a Coco y Bochi, que siempre me empujaron para
adelante y me hicieron sentir como uno m´as de la familia.
Por u
´ltimo, a mis amigos de la vida: Diego, Pablo, Mat´ıas, Dami´an y muchos otros
que, con salidas y vacaciones, me sacaron de la rutina e hicieron toda esta etapa mucho
m´as descontracturada.
Agradecimientos de Gabriela
Quiero agradecerle m´
as que nada a toda mi familia. A mi mam´a Diana y a mi pap´a
Juan Carlos, que me incentivaron para que estudie una carrera universitaria, y me apoyaron
durante todos estos a˜
nos. A mi hermana Valeria, que estuvo al lado m´ıo d´andome fuerzas
todo este tiempo.
Quiero agradecerle tambi´en a todas las personas especiales que estuvieron en mi vida a
iii

lo largo de estos a˜
nos de facultad, alent´andome y acompa˜
n´andome cada uno a su manera.
A mis amigas del colegio, que me bancaron en los momentos lindos, y en aquellos no tan
lindos tambi´en. A esos amigos que me esperaban para jugar al TEG cuando terminaba la
´epoca de parciales. A los chicos de teatro que se sumaron a mi familia, e hicieron que estos
u
´ltimos a˜
nos fueran mucho m´
as divertidos. Y gracias tambi´en a todos los que no forman
parte de ninguno de esos grupos y me apoyaron durante esta etapa.

.3. 10 2. . . . . . . . . . . . . . . . 11 2. . 20 3. . . 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1. . . . .2. . . . . . . . . 4 1. . . . . . . . . .2. . . . . 13 2. . . . . . . . . . . Formulaci´ on del modelo . . . . . . . . . . . .1. . . . . . . . . .1. . . . . . . . . . . . . . . 21 3. . .2. . Preliminares 5 7 2. . . 21 v . . . Algoritmos para Problemas de Programaci´on Lineal Entera . . . . . 3 1. . . 2 1. . . . .5. . . . . .2. . . Pedidos . . . . . . . . . . . . . . . . . . .4. . .1. . . . . . . . . . . . . . . . . . .´Indice general ´ Indice general V 1. . . . . . . . . . . . Programaci´ on Lineal . . . . . .4. . . . . . . . Camioneros . . . . .4. . . . . . . Camiones . . . . . Definiciones preliminares . . . . .2. . . . . . . .2. . . . Camino m´ınimo con restricciones sobre recursos . . . . . . . . . . . . . . . . . . . . . . .3. . .3. . . . . . . . . .2. . . . . . . . . . . . . . . . .3. . . . . 10 2. . . . . . . . . . . . Costo . . . . . . . . . . . . . . . . . . . .2. . . . . . Algoritmos Branch and Bound . 19 3. Modelo 19 3.2. . 5 1. Nuestro problema: Vehicle and Crew Scheduling for Pickup and Delivery Problem with Time Windows (VCSPDPTW) . . .2. . . . . . . . . . . . . . . . . .1. . . Redes .4. . . . . . . Teor´ıa de Grafos . . . . . . . . . . . . . . 7 2. . . . . . . . . . . Algoritmos Branch and Cut . .3. . . . . . . . . Introducci´ on 1 1. 2 1. . . . . . . Programaci´ on lineal entera 8 . Restricciones . . . . . . . . . . . . .2. . .3. 17 3. . . . .1. . . . . . . . . . . Generaci´ on de columnas y algoritmos Branch and Price .1. . . . . . . . . . . . . . . . .2. . .3. . . . . . . . . . . . . M´etodos de Planos de Corte .2. . . . . . 21 3. Resumen de la tesis . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1. . . . .2. . . . . . . . . . . . 14 2.4. . . . . . . . . . . . . . . . . . . . .1. . . . . . . . . . . . Variables . . Problemas de la literatura . . . . . . . . . . . . . . . . . . . . 16 2. . . . . . . . . . . 2. . . . . . . . . . . . . . Funci´ on objetivo . . . . 15 2. .3. . . . . . . . . . . . . . .3. . . . . . . Mapa de ciudades . .2. . .

1.1. . . . . . . . .1. .4. . . . . . . . . . . Par´ ametros . . . . . . . . . . . . . . . . . . . . .1. . . . . . . . . . . . . . . . . Ejes . 51 5.1. . Informaci´ on de una ruta . . . . . . . .6. . . . . . . .4. . . . .1. . . . . . . . . . . . 67 7. . . . . . . .1. . . . . . . . . .2. Pruebas preliminares . . Relajaci´ on de la relaci´on de dominancia . . . . . . . . . . . . . . . . . . . . . 39 5. . . . . . Resultados computacionales . . . . . .3. . . . . . . . . . . . . Nodos . . . . . . . . . . . . . . .1. Rutas . . . . Par´ ametros .2. . . . . . . . . . . . 59 7. . . . . . . . Experimentos computacionales . . . . . . .2. . 45 5. . Algoritmo para el VCSPDPTW . . Generaci´ on de columnas . . . . . . . 51 6. .1. . Instancias del problema . . Variantes para la generaci´on de rutas . . . .2. . . . . . .4. . . . . . .1. . . . . . . . . . . . . . . . . . 29 4. . . . . . 38 4. . . . . . . . . .2. . . . 61 7. . . . . . . 27 4.1. Definiciones preliminares sobre el input del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conclusiones . . . . . . . . . . . . Columnas complementarias . . . . . . . . . . . . . . . . . . . . . . . . . . .3. El problema de complementar rutas . . .3. . . Resultados 59 7.3. . . . .1. . . . . Rutas potencialmente beneficiosas . . 49 5. . . . . . . .3. . . . . . . . . . . . . . . . .2. . . . 24 4. . .3. . . . . . . . . .1. Definici´ on del grafo . . . . . . . . . . . . . . . Grafo de Rutas 23 4. . . . . . . .2. . . . . . . . . . . . . . . . . . . . . . Algoritmo para generaci´ on de columnas . . . . . . . . . .2. . . . . 43 5. . . . . . Introducci´ on de los valores de las variables duales en el grafo de rutas 42 5. . . . . . . . . . 37 4. . . . . . . . . . . 23 4. . . . . . . . . . . . . . . 54 6. . . . . . . . . . . . . . . . . . . . . . . . . . .2. . . . . Funciones asociadas a recursos y restricciones . . . . . . .2. . 40 5. . . . . . . . . . 66 7. . . . . 48 5. . . . . Estructura del grafo . . . . . . . . .2. . . . . . . . . . . . . . . Resoluci´ on del problema de complementar rutas . . . . . . . . Algoritmo de resoluci´ on general 54 6. . . . 68 . . . . . . . . . . . . . .5. . . . . . . . . . . . . 47 5. . . . . . . .3. . . . . . . . . . . . . . .2. . . . . . . . . . . . . . . . . . . . . . 48 5. . .3. . . . . 60 7. . .2. . . . . . .2. . . . . . . . . . . Algoritmo para el RCSPP . . . . .2. . 46 5. . . . . . .3. . . . .3.4. 26 4. . . . . . . . . . . Subgrafo de eventos . . Restricciones sobre rutas . . . . . . Camino v´ alido . . . . . . . . 55 7. . .3. . . . . . . . . . . . . 60 7. . . . . . . Subgrafo de ciudades .1. .4. . 31 4. . 36 4. Pruebas finales . . . . . . . . . . . 29 4. . . . . . . . . . . . . . . . . . .2.1. . . . . . . . . . . . . . .2. 66 7. . . . . . . . . . . .1. Generaci´ on de columnas 40 5. . . . . . . . . . .1. . . . .2. . . . Columnas iniciales . . . . . .

. . . . . . . . .2. 98 A. .7. . . . . . . . . . .2. . . 94 A. . . . . . . Definici´ on de la instancia . . . . . . . . . . . .2. . . . . . Resultados . . . . . . 92 A. . Definici´ on de la instancia . . . . . . . . . . 83 A. . . . . . . .1. . . . . . . .7. . . . . . . . . . . . . . . . . . . . . . . 81 A. . . . . . 83 A. . . . . . .5. . . . . Instancia 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1. . . . . 92 A. . . . . . . . . . .Instancia 11 . . . . Definici´ on de la instancia . . Resultados . . . . . . . . . . . . . . . . . . . . . . . . . .3. .1. . . . . . . . . . . . . . . . . . . . 87 A. . . . . . . . . . . . . . . . . . . .2. . . . . . . . . . . . . 76 A. . . . . . . .1. Instancia 5 . . . . . . . . . Instancia 3 . . . . . . . . . . . . . . . . . .2. . . . . . . . . . . Definici´ on de la instancia . . . . . .3.2. . . . . . . . . . . . . . . . . . . . . . 80 A. 89 A. . . . . . . . . . . . . . . . . .10.1. . 85 A. . .1. Resultados . . . . . . . 96 A. . . . . Resultados . . . . .6. . 78 A. . . . . . . . . . . . . . .9. . . . . . . . . . . . . . Instancias de pruebas 76 A. . . . . . . . . . . . . . . . . .2. . . . . . . . . . . . . . . . . . . . . . 96 A. . . 98 A. . . . . . . . . . . . . . . . . . . . . . . . . . . 89 A. . . . . . . 87 A. . . .1. . . . . . . Definici´ on de la instancia . . . . . . . . . . . . . . . . . . . . Resultados . . . . . . Instancia 8 . . . . . . . . . . . . . . . 92 A. . . Resultados . . . Definici´ on de la instancia . . . . 94 A. .10. . . . . . . . . . . . . . . . . . 79 A. . . .1. . . . . .11. .3. . . . . . . . . . . . . . . . . . 94 A.7. 89 A. . . . . .1. . . . . . . . . . . . . . . 76 A. . . . . . . . . . . Resultados . . Definici´ on de la instancia . . 98 . . . . . .2. . . . . . . . . Resultados . . . . .2. . . . . . . . 84 A. . . .2. . Conclusiones . . Instancia 2 . . . . . . . . . . . . . . .4. Instancia 6 . . . . . . . . . . . . . . . . . . Definici´ on de la instancia . . .11. . . . . . . . . . . . . 79 A. .3. .8. . . . . . . . . . . . .8. . . . .Instancia 10 . . . . . . . . . . . . . . . . . . . . .4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1. . . . . . . . . . . . . . . . . . . . . . . 96 A. . . . . Instancia 1 . . . . . . . . . . . . . . . . Definici´ on de la instancia . . . . .2.6. Definici´ on de la instancia . . . . . . . 70 8.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Resultados . . . . . .9. . . . . . . . . . . 82 A. . . . . . . . . . . . . . . .3. . . .5. .9. Resultados . . . . . . . . Definici´ on de la instancia . .1. . . .1. . . . Instancia 4 . . . . . . . . Instancia 9 . . . . . . . 86 A. .1. . . Conclusiones 71 Bibliograf´ıa 74 A. . . . . . . .6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 A. . . . . . . . . . . .7. . . . . . . . . . . . . .4. . . . . . . . . .5. . . . . . . . . .1. . . . . . . . . .2. . . . . . . . . . . . . . . . .8. . . . 81 A. . . .10. . . . . .

.A. . . . . . .2. . . . . . . . . . . 100 . . . . . . . . . . . . . Resultados .11. . .

como casi todos los problemas que trata este ´area. etc. Estas tareas pueden consistir en transportar pasajeros a lo largo de un segmento entre dos estaciones. Se entiende como schedule a la planificaci´ on de la jornada laboral para cada uno de los conductores. Vehicle Routing Problem)[TV02][Ge08] consiste en distribuir un conjunto de tareas entre un conjunto de veh´ıculos disponibles. En general. 1 . distribuci´on y log´ıstica. A su vez. cuando se debe resolver un problema de ruteo de veh´ıculos. • Las redes de transporte han crecido mucho en tama˜ no y cada vez es m´as dif´ıcil realizar una planificaci´ on razonablemente eficiente en forma manual. llevar una carga de mercader´ıa de un dep´osito a otro. etc. muchas empresas a nivel mundial han adoptado paquetes de software comerciales para asistir en la log´ıstica de transporte. de forma de maximizar ganancias o minimizar costos de operaci´on.Cap´ıtulo 1 Introducci´ on Los problemas de ruteo de veh´ıculos y asignaci´ on de conductores son dos de los principales problemas que surgen en las ´areas de transporte. ha habido un esfuerzo importante en mejorar los procesos de optimizaci´on para obtener soluciones cada vez m´ as eficientes. la diversificaci´on en el ´area de transporte ha hecho surgir nuevos problemas con caracter´ısticas muy particulares. Este problema se conoce en la literatura como el problema de asignaci´on de conductores o Crew Scheduling Problem[Ste07][Hui04]. que usualmente est´a sujeta a regulaciones laborales. surge tambi´en la necesidad de asignar conductores a cada una de las tareas que llevar´an a cabo los veh´ıculos. un d´ıa de descanso cada tantos trabajados. ya sea de mercader´ıa como de pasajeros. A pesar de esto. El problema de ruteo de veh´ıculos (VRP por su nombre en ingl´es. Esto hace que cada problema deba ser estudiado en forma independiente y requiera de una soluci´on “a medida”. etc. El VRP y el CSP son problemas cl´asicos en el ´area de Investigaci´on Operativa y. Algunos ejemplos de regulaciones son: la duraci´on m´axima de un turno de trabajo (horas consecutivas trabajadas). transporte a´ereo de pasajeros. transporte de mercader´ıa. • Las regulaciones laborales son complejas y muy dependientes de cada ´area particular: transporte urbano de pasajeros. Esto se debe principalmente a que: • La desregulaci´ on del mercado incrementa la competencia entre las empresas por lo que optimizar el uso de cada recurso disponible es cada vez m´as importante. son computacionalmente dif´ıciles de resolver. En la actualidad.

no considera a los conductores. se deben tener en cuenta caracter´ısticas muy particulares. y qu´e chofer lo conducir´a en cada segmento del mismo. A continuaci´on presentamos una descripci´on del problema que trateremos. y despu´es se distribuye la tripulaci´on entre los veh´ıculos. Introducci´on Problemas de la literatura En la literatura. Para que un schedule sea soluci´on factible del VCSP. El VCSP es utilizado principalmente para modelar el sistema de transporte p´ ublico urbano. Cuando en lugar de horarios fijos se establecen ventanas de tiempo para realizar los pick-ups y drop-offs. el problema se denomina PDPTW (Pick-up and Delivery Problem with Time Windows).1. como por ejemplo Friberg y Haase [FH96].2. En muchos casos. dicha formulaci´ on general no siempre es aplicable en la pr´actica. definiendo un nuevo problema denominado VCSP (Vehicle and Crew Scheduling Problem). se debe planificar qu´e colectivo realizar´a cada viaje. Huisman y Wagelmans [FHW03] proponen modelos que tratan ambos problemas de forma simult´anea. Es decir. Sin embargo. Tanto el VRP como el VRPTW y el VCSP consideran que para satisfacer los pedidos de los clientes se debe transportar cierta mercader´ıa desde un dep´osito u ´nico hasta la ubicaci´on de cada cliente. Es por esto que muchos autores. Este enfoque puede resultar u ´til para obtener soluciones factibles al problema. dado un conjunto de viajes. la soluci´on provista por el enfoque secuencial puede estar lejos del ´ optimo de una soluci´on integrada [Ste07][Hui04]. Los datos que se conocen de cada viaje son el lugar y horario de partida. a nuestro conocimiento. Nuestro problema: Vehicle and Crew Scheduling for Pickup and Delivery Problem with Time Windows (VCSPDPTW) Si bien la forma general del problema de distribuci´on de mercader´ıa est´a muy estudiada. o Freling. en algunos contextos. Esas situaciones generalmente no se dan cuando se planifican sistemas de transporte de pasajeros. En esos casos. 1. Un ejemplo de esto es que las restricciones que provienen 2 . pero tiene adem´ as algunas caracter´ısticas particulares que. A este problema se lo conoce como PDP (Pickup and Delivery Problem). y si bien resuelve la organizaci´ on de los veh´ıculos. Es decir. existen situaciones en las cuales se desea que los horarios sean flexibles dentro de cierto rango. no tienen antecedente de haber sido estudiadas. no hay forma de garantizar que la soluci´ on obtenida sea ´ optima. 1. y d´onde debe entregarse (es decir. aunque al no considerar ambos problemas en forma simult´anea. sino cuando se realiza distribuci´on de mercader´ıa. Problemas de la literatura 1. Esto se debe a que de acuerdo al contexto en el cual se plantea el problema. para cada pedido de un cliente. Esto quiere decir que primero se define qu´e veh´ıculo realizar´ a cada tarea. donde se realiza el pick-up). el enfoque cl´ asico para resolver problemas que involucran ruteo de veh´ıculos y scheduling de conductores es secuencial. se especifica d´onde debe recogerse la mercader´ıa (es decir. sino tambi´en en qu´e ubicaci´on se encuentra ´esta originalmente.1. los pedidos de los clientes no s´olo indican hacia d´ onde trasladar la mercader´ıa. es necesario que cada viaje se realice exactamente en el horario establecido. as´ı como el lugar y horario de llegada. suele ocurrir que la mercader´ıa pueda ser cargada y descargada en cualquier momento dentro de cierto rango horario o ventana de tiempo.1. donde se realiza el delivery ´o drop-off ). El problema que se aborda en esta tesis contiene elementos tanto del VCSP como del PDPTW. Sin embargo. Este problema es conocido en la literatura como VRPTW (Vehicle Routing Problem with Time Windows).

ya sea para cargar mercader´ıa de un dep´osito (realizar un pick-up). pero los cambios en la tripulaci´on s´olo pueden realizarse cuando el cami´on se detiene en una ciudad. que un camionero trabaje muchas horas consecutivas sin descanso. Se asume que los camiones viajan a una velocidad constante. El objetivo detr´ as de la resoluci´ on del problema consiste en planificar el transporte y entrega de toda la mercader´ıa de forma de minimizar los costos operativos y. A continuaci´ on presentamos las caracter´ısticas del VCSPDPTW. M´as adelante en el recorrido pueden descender ambos del cami´on para que comience a 3 . Cada ciudad representa una ubicaci´on en donde un veh´ıculo o cami´ on puede detenerse. Mapa de ciudades El problema se define sobre un mapa de ciudades donde se conoce el tiempo que demora el viaje entre cada par de ciudades. por ejemplo. realizar un intercambio de tripulaci´on. y consiste en planificar el retiro y entrega de un conjunto de pedidos. si un cami´ on recogi´ o la mercader´ıa de cierto pedido pero a´ un no la entreg´o. cualquier cami´ on puede llevar a cabo cualquier pedido. El problema est´a inspirado en un problema real de una compa˜ n´ıa colombiana productora de caf´e. Es as´ı como un camionero puede comenzar conduciendo un veh´ıculo.2. Por ejemplo. o para que alguno de sus conductores descanse. etc. cada veh´ıculo es conducido por una tripulaci´on a cargo.2. Otro factor que puede modificar notablemente el problema es el de la capacidad de los veh´ıculos a utilizar: a veces se asume que todos pueden transportar la misma cantidad de mercader´ıa. al mismo tiempo. 1.2. ya que si hubiera m´as.1. para realizar un intercambio en su tripulaci´on. Camiones Se cuenta con una cantidad fija de camiones. Sin perdida de generalidad se puede asumir que en cada ciudad hay a lo sumo un dep´osito.1. El retiro y entrega de cada pedido es realizado por alguno de los veh´ıculos de los que dispone la empresa y. pero otras veces no es posible basarse en esa hip´otesis. no puede realizar el pick-up de otro pedido. De esta manera. dos camioneros. En esta tesis se aborda un problema de planificaci´on de rutas para veh´ıculos y asignaci´on de conductores con caracter´ısticas muy particulares. 1. realizar el retiro de un pedido. Introducci´ on 1. cuya mercader´ıa debe trasladarse desde un dep´osito en una determinada ciudad a otro dep´osito en otra ciudad. La tripulaci´on de un cami´on puede estar compuesta por uno o. A su vez. descargar mercader´ıa en un dep´osito (realizar un drop-off ). el trabajo de los camioneros est´ a sujeto a un conjunto de restricciones laborales que impiden. luego bajarse de dicho veh´ıculo y subirse a otro. La misma no es fija y puede variar a lo largo del recorrido. Los camiones s´ olo pueden detenerse en las ciudades definidas en el mapa y s´olo para cargar/descargar mercader´ıa. cada carga de mercader´ıa no ocupa m´as de un cami´ on. La tripulaci´on est´a compuesta por uno o dos camioneros y puede variar a lo largo del recorrido de un veh´ıculo. y para cada uno de ellos se conoce la ciudad donde se encuentra inicialmente. garantizar que se respeten las restricciones laborales para los conductores de los veh´ıculos.2. por lo que la capacidad de los camiones no es relevante para el problema. detenerse para descansar. podr´ıa considerarse que se cuenta con varias ciudades distintas muy cercanas entre s´ı. Cada cami´ on puede transportar la carga correspondiente a un u ´nico pedido por vez. A su vez. Nuestro problema: VCSPDPTW de regulaciones laborales deben ser formuladas seg´ un las leyes de cada pa´ıs. Es decir. a su vez. un cami´on puede partir de una ciudad con un u ´nico camionero a bordo y luego llegar a otra ciudad donde asciende un segundo camionero. a lo sumo.

cumplir´ıa la limitaci´ on diaria pero habr´ıa trabajado durante 16 horas consecutivas. Tampoco es obligatorio entregar el pedido en fecha. y el cami´ on que retira la mercader´ıa llega a las 16. se considera que est´a descansando. sin variar de acuerdo al d´ıa de la semana. En el CSP un camionero puede finalizar su jornada en cierto lugar y comenzar la jornada siguiente en un lugar distinto. aunque uno s´olo sea el que conduzca el cami´ on. cada pedido tiene rangos horarios o ventanas de tiempo en las que se permite cargar y descargar mercader´ıa de los correspondientes dep´ositos. Estas ventanas de tiempo se repiten diaramente en forma fija. deber´a esperar hasta el comienzo de la ventana del siguiente d´ıa para poder realizar el pick-up. Los camioneros deben tener al menos un d´ıa franco en cualquier per´ıodo de 7 d´ıas.2. se asume que el tiempo de carga y de descarga es siempre de 1 hora. es decir. Si un cami´on lleva dos camioneros a bordo. 1 Esta restricci´ on es muy particular del VCSPDPTW. Nuestro problema: VCSPDPTW 1. Notemos que esto no es exactamente lo mismo que exigir que se trabajen a lo sumo 12 horas por d´ıa. Dado que el VCSPDPTW no considera el volumen de mercader´ıa a transportar. Adicionalmente. un camionero estar´ıa habilitado para trabajar m´ as de 12 horas consecutivas. la mercader´ıa no se encuentra inicialmente en un u ´nico dep´ osito sino que cada pedido tiene un dep´ osito de origen particular. y en qu´e ciudad se encuentra cada uno en el momento inicial. Para trasladarse entre ciudades.1 Un camionero no debe trabajar m´as de 12 horas en cualquier per´ıodo de 24 horas. una ciudad de destino y fechas con rangos horarios de retiro y entrega. Por ejemplo. pero la entrega posterior tiene una penalidad asociada por cada d´ıa de demora. los camioneros utilizan los veh´ıculos de la empresa y no pueden movilizarse utilizando otro medio de transporte. Se considera un d´ıa franco a aquel d´ıa en el que un camionero descansa durante toda la duraci´on del mismo. ya que si expres´ aramos la condici´on de esta manera.3. Se considera como tiempo de trabajo tanto al tiempo que pasa un camionero viajando en un cami´ on como al tiempo que pasa cargando o descargando mercader´ıa del mismo. Camioneros Se conoce la cantidad de camioneros disponibles.4. A su vez. Pedidos Un pedido de mercader´ıa tiene una ciudad de origen.2 Las ciudades de origen y destino indican en qu´e ciudad se debe realizar el pick-up y el drop-off de la mercader´ıa respectivamente. si un camionero trabajara las u ´ltimas 10 horas de un d´ıa y las primeras 6 horas del d´ıa siguiente. Los camioneros pueden ascender y descender de los camiones s´olo en las ciudades establecidas en el mapa. 1.30 hs.2. cada pedido especifica la fecha a partir de la cual se puede realizar el pick-up y la fecha a partir de la cual se puede realizar el drop-off.2. se computar´ a el tiempo de viaje como tiempo trabajado para ambos. Si un camionero no est´a conduciendo un cami´on o acompa˜ nando al conductor. Por ejemplo. 2 A diferencia del VRPTW. habi´endose trasladado all´ı por sus propios medios.1. Esto no implica que el pedido pueda no ser realizado: todos los pedidos deben ser completados sin importar la fecha en la que se realiza la entrega. si la ventana de tiempo para el pick-up de un pedido es de 14 a 16 hs. La mercader´ıa puede ser retirada a partir de la fecha especificada pero no es obligatorio hacerlo ese mismo d´ıa. 4 .. Introducci´on manejarlo un tercer camionero. 1.

Por otra parte. la tasa de ´exito fue menor que en las pruebas sobre instancias m´as chicas. 1. el problema maestro es resuelto mediante un algoritmo Branch and Cut. En el cap´ıtulo 2 presentamos algunos conceptos fundamentales de programaci´on lineal entera y de teor´ıa de grafos que son necesarios para comprender mejor el resto del 5 . Esta penalidad es fija por kil´ometro recorrido. por lo cual debe tenerse en cuenta la distancia recorrida por cada cami´on en el costo total. sobre las instancias de mayor tama˜ no. no es necesario realizar la entrega ese d´ıa. Sobre las instancias m´as chicas logramos obtener buenos resultados en la mayor´ıa de los casos. cuando un cami´on viaja entre ciudades sin trasladar mercader´ıa. Para modelar el subproblema de generaci´on de rutas utilizamos una red con recursos y restricciones. por lo que la cantidad de horas que trabajan no influye en el costo a minimizar. El problema maestro es formulado mediante un modelo de programaci´on lineal entera binaria en donde las columnas a generar se corresponden con los posibles recorridos o rutas que pueden realizar los veh´ıculos.2. se busca determinar qu´e cami´on estar´a a cargo de realizar cada pedido. pero cada d´ıa de demora en la entrega conlleva una penalidad que forma parte del costo total.1.3. Este enfoque particiona al problema en dos: un problema maestro. Los camioneros perciben un salario fijo. Para cada pedido la penalidad diaria puede ser distinta.3. En cambio. Para resolver esto dise˜ namos un algoritmo basado en la t´ecnica de programaci´on din´amica que construye caminos v´ alidos ´ optimos. Los drop-offs (al igual que los pick-ups) pueden ser realizados cualquier d´ıa posterior al d´ıa especificado. Resumen de la tesis La propuesta de esta tesis es resolver el VCSPDPTW utilizando un modelo de programaci´on lineal entera en conjunto con la t´ecnica de generaci´on de columnas. lo cual permite asignar prioridades entre los distintos pedidos. cuando lo realizar´a y c´omo ser´an los schedules de cada uno de los camioneros de forma de que el costo sea m´ınimo. • Penalidad por entrega fuera de fecha: si bien cada pedido tiene una fecha recomendada de entrega. y un subproblema de generaci´ on de columnas para dicho modelo.5. que consiste en el modelo propuesto. 1. en donde la soluci´ on inicial requerida es provista por un algoritmo que genera un conjunto de rutas que satisface todos los pedidos incluidos en la definici´on del problema. Resumen de la tesis Costo El costo que debe minimizarse est´a compuesto por los siguientes factores: • Distancia total: es sabido que cada kil´ometro recorrido tiene un costo dado (influenciado principalmente por el costo del combustible). Realizamos pruebas de los algoritmos implementados sobre instancias de pruebas de distintos tama˜ nos. Teniendo en cuenta todo lo descripto. • Penalidad por viajar con cami´ on sin mercader´ıa: dado que la finalidad de los camiones es transportar mercader´ıa. Introducci´ on 1. El problema de generaci´on de una ruta de costo ´optimo se traduce entonces en encontrar un camino v´alido de costo m´ınimo en esta red. Un camino dirigido en esta red representa el recorrido que puede realizar alguno de los veh´ıculos disponibles. se incrementa el costo de viaje.

integrando la resoluci´on del problema maestro con el subproblema de generaci´on de columnas. En el cap´ıtulo 5 describimos el m´etodo para generar las columnas a partir de la red definida anteriormente y de qu´e manera se introducen estas columnas en el modelo presentado en el cap´ıtulo 3. Introducci´on trabajo. El cap´ıtulo 6 presenta el esquema algor´ıtmico de resoluci´on general del problema. 6 . En el cap´ıtulo 4 definimos la red con recursos y restricciones que se utiliza para formalizar el concepto de ruta. Finalmente.3. El cap´ıtulo 3 presenta la formulaci´on del modelo de programaci´on lineal entera que utilizamos para resolver el problema. de un recorrido v´alido que puede ser realizado por un veh´ıculo. en el cap´ıtulo 8 presentamos las conclusiones del trabajo as´ı como el trabajo a futuro que podr´ıa realizarse. En el cap´ıtulo 7 se muestran las pruebas que realizamos y los resultados que obtuvimos. Resumen de la tesis 1.1. es decir.

en muchos casos. Muchos problemas de optimizaci´on combinatoria pueden ser tratados con modelos de programaci´ on lineal entera y. Generalmente un modelo de programaci´on lineal entera es f´ acil de formular y. Set Covering Problem. Algunos de los problemas cl´asicos de optimizaci´on combinatoria son los siguientes: Travelling Salesman Problem. conocida como funci´ on objetivo.1 (Problema de programaci´ on lineal) Un problema de programaci´ on lineal (PPL) se expresa en forma can´ onica como: maximizar ct x sujeto a Ax ≤ b x≥0 7 . dise˜ no de circuitos.1. Programaci´ on Lineal La programaci´ on lineal permite expresar un problema en t´erminos matem´aticos para determinar cu´ al es la mejor soluci´ on dentro de un conjunto. 2. finanzas. etc [Wol98].g. existen varias formulaciones diferentes para un mismo problema.Cap´ıtulo 2 Preliminares En un problema de optimizaci´ on combinatoria. producci´on.g. sujeto a que la soluci´on de dicha optimizaci´on satisfaga un conjunto de igualdades y desigualdades lineales. dise˜ no de redes de telecomunicaciones. se desea encontrar una soluci´on ´optima dentro de cierto conjunto finito de soluciones factibles. en particular. M´as formalmente. conocidas como restricciones lineales. binaria. log´ıstica para el transporte de energ´ıa el´ectrica. No pretende ser un compendio completo acerca del tema sino una descripci´on breve y concisa de manera que el lector pueda comprender mejor los siguientes cap´ıtulos. etc) as´ı como en muchas ´areas de ingenier´ıa (e. marketing. etc). Este tipo de problemas son de gran relevancia en la pr´actica y surgen en casi todas las ´areas de management (e. log´ıstica para el transporte de pasajeros. Usualmente este conjunto de soluciones es tan grande que no es posible realizar una b´ usqueda exhaustiva sobre el mismo de manera de encontrar la mejor soluci´on. de soluciones factibles. Definici´ on 2. generalmente grande. la programaci´on lineal es una t´ecnica para optimizar una funci´on lineal. El objetivo de este cap´ıtulo es describir los conceptos fundamentales y algoritmos de resoluci´ on para problemas de programaci´on lineal y programaci´on lineal entera. Knapsack Problem. La dificultad se presenta a la hora de la resoluci´on de dichas formulaciones.

y a pesar de existir algoritmos polinomiales para resolver PPLs (por ejemplo. Est´a demostrado que el m´etodo Simplex tiene una complejidad algor´ıtmica exponencial en el peor caso.2 (Poliedro) Dados A ∈ Rm×n y b ∈ Rm . el presentado en [Kar84]). Por ejemplo. Sin embargo. eligiendo en cada iteraci´on un punto que aumente el valor de la funci´on objetivo (en el caso de la maximizaci´on). Este proceso se realiza en forma iterativa hasta que el valor de la funci´ on objetivo no pueda aumentar m´as: esto significa que se alcanz´o el ´ optimo. De esta manera. estamos ante un Problema de Programaci´ on Lineal Entera Binario (PPLEB). etc. conocidos como puntos extremos. Simplex explora los puntos extremos del poliedro en forma inteligente. dada la naturaleza del problema a resolver. existe otro equivalente en su forma can´onica.1 se plantea un PPL en su forma est´andar. estamos ante un Problema de Programaci´ on Lineal Entera Mixto (PPLEM) y finalmente si las variables s´olo pueden tomar valores 0 o 1. • b ∈ Rm es el vector de t´erminos independientes. Este m´etodo se basa en el hecho de que la soluci´on ´optima de un PPL es alguno de los puntos que delimitan al poliedro del mismo. un subconjunto de Rn descripto por un conjunto finito de restricciones lineales P = {x ∈ Rn : Ax ≤ b} es un poliedro. 8 . Para una descripci´ on detallada del m´etodo ver [Chv83]. Preliminares Donde: • x ∈ Rn representa el vector de variables positivas cuyo valor se debe determinar. Programaci´ on lineal entera 2. plantearlo de una manera diferente. Un PPL tambi´en puede notarse como z ∗ = max {cx : Ax ≤ b.2. Por ejemplo: como un problema de minimizaci´ on en vez de uno de maximizaci´on. Lo importante es que cualquiera sea la variante del PPL. x ≥ 0}. Programaci´ on lineal entera Muchos de los problemas que se presentan en la pr´actica y que pueden ser planteados como un PPL presentan la dificultad adicional de que el dominio de las variables no es continuo sino discreto. A la regi´on definida por ellas se la conoce como poliedro. estamos ante un Problema de Programaci´ on Lineal Entera (PPLE). con igualdades como restricciones en vez de desigualdades. Los problemas en donde el dominio de las variables es continuo (variables reales) pueden ser resueltos con el m´etodo Simplex 1 . Esto lo convirti´o en uno de los m´etodos de resoluci´on de PPLs m´as utilizados en la actualidad. Definici´ on 2. donde z ∗ es el valor ´ optimo de la funci´ on objetivo. si algunas variables pueden tomar valores enteros y otras valores reales. Las soluciones factibles de un PPL est´an caracterizadas por sus restricciones lineales. Si bien en 2. si las variables s´olo pueden tomar valores enteros. • c ∈ Rn es el vector de coeficientes de la funci´ on objetivo. 2.2. Simplex demostr´o tener un muy buen desempe˜ no en la pr´ actica. puede ser necesario.2. 1 M´etodo de resoluci´ on general para problemas de programaci´ on lineal desarrollado por George Dantzig. • A ∈ Rm×n es la matriz de coeficientes de las restricciones.

La diferencia fundamental entre los problemas donde el dominio de las variables es discreto y aquellos con variables continuas es que los primeros pertenecen a la clase NPhard [Pap81]. existen algunos casos que pueden ser resueltos en forma eficiente.. . para modelar situaciones donde deben tomarse decisiones por s´ı o por no en forma ´optima.. La formulaci´on es id´entica a la presentada en 2. etc. Si P coincide con el poliedro asociado a la relajaci´ on lineal de S.2. la planificaci´on en la generaci´on de electricidad. Al no contar con un m´etodo general que pueda tratar con estos problemas en forma eficiente. Programaci´on lineal entera Un problema de programaci´ on lineal entera binario sirve. En estos casos. 1}n : Ax ≤ b} y P a la c´apsula convexa de S (menor poliedro que contiene a S). A pesar de la dificultad que presenta la resoluci´on en forma general de PPLEs.. Si bien esto parece una buena heur´ıstica que se podr´ıa aplicar en forma general.1 Si una relajaci´ on de un PPLE es un problema infactible (i. Esto consiste en reemplazar el problema original por uno similar que contemple todas las soluciones del anterior y que. Esta relajaci´on es conocida como Relajaci´ on Lineal y el problema relajado termina siendo un PPL. 0 ≤ x ≤ 1 : Ax ≤ b}. Llamemos S al conjunto de soluciones factibles binarias del problema. pueda resolverse m´as f´acilmente. Preliminares 2. un problema de programaci´on lineal entera binaria busca el ´optimo de una funci´ on lineal entre los vectores binarios que se encuentran dentro del poliedro caracterizado por las inecuaciones y ecuaciones lineales definidas por A. 1}n . en general. por lo que si mencionamos propiedades sobre estos u ´ltimos se debe entender que tambi´en son aplicables a los primeros. la relajaci´on lineal no resuelve el problema en forma completa pero puede brindarnos cierta informaci´on u ´til. y • f (x) ≥ c(x) para todo x ∈ X. Una manera bastante sencilla de relajar un PPLE es eliminar la condici´on de que las variables tomen valores enteros y permitir que tomen valores reales. Lamentablemente. la planificaci´on de vuelos para una flota de l´ınea a´erea. Un enfoque naive para obtener una soluci´on de un PPLE podr´ıa ser resolver la relajaci´on lineal y luego redondear la soluci´ on obtenida de manera que termine siendo una soluci´on factible de problema original.3 (Relajaci´ on de un PPL) Un problema P R ≡ max {f (x) : x ∈ T ⊆ Rn } es una relajaci´on de P E max {c(x) : x ∈ X ⊆ Rn } si: ≡ • X ⊆ T. Para los PPLEB la situaci´on es inclusive peor: una soluci´ on de la relajaci´ on bien podr´ıa ser (0. no tiene soluci´ on factible) el PPLE tambi´en lo es. Un PPLEB es un caso particular de un problema de programaci´ on lineal entera. es decir S = {x ∈ {0. en cuyo caso no sabr´ıamos si redondear hacia el 0 o el 1.1 excepto que x ∈ {0.e.5.5). Observaci´ on 2. basta con resolver la relajaci´ on lineal del problema para obtener el ´optimo buscado. Resulta muy natural en estos casos asociar a cada decisi´on una variable x restringida a tomar valores 1 o 0 que representen la respuesta por s´ı o por no respectivamente. 0.2. existen muchos ejemplos en los cuales una soluci´on redondeada dista mucho de la soluci´ on ´ optima del problema original. se suele usar la idea de relajaci´ on del problema. Formalmente. Algunos ejemplos de estos problemas son: la inversi´on en un portfolio de acciones. al mismo tiempo. 9 . por lo que no se conoce un algoritmo polinomial que los resuelva en forma general. Definici´ on 2. SRL = {x ∈ Rn . para la mayor´ıa de los problemas no se conoce la caracterizaci´on de su c´apsula convexa y el esfuerzo que se requiere para caracterizarla puede resultar tan dificil como resolver el problema original.

se busca identificar una desigualdad lineal v´alida para el poliedro que separe la actual soluci´on del conjunto de soluciones factibles enteras. M´ etodos de Planos de Corte La idea fundamental de un algoritmo de planos de corte es considerar la relajaci´on lineal de un problema con soluciones factibles S e ir mejor´andola con el agregado de desigualdades lineales v´ alidas de manera que se eliminen o corten soluciones del poliedro SRL (asociado a la relajaci´ on) que no pertenezcan a S. en algunos casos. Su objetivo es ir refinando el poliedro SRL para acercarse lo m´ as posible a la c´apsula convexa de S y. Los planos de corte pueden ser generados bajo dos enfoques: con herramientas generales aplicables a cualquier PPLE o explotando las particularidades de cada problema. Algoritmos para Problemas de Programaci´ on Lineal Entera La mayor´ıa de los m´etodos de resoluci´on exacta para modelos de programaci´on lineal entera se encuadran en alguno de los siguientes esquemas: • M´etodos de Planos de corte • M´etodos Branch and Bound • M´etodos Branch and Cut • M´etodos Branch and Price 2. Muchos de los algoritmos para resolver problemas de programaci´on lineal entera se basan en estas propiedades que relacionan un PPLE y su relajaci´on lineal.3. Como no es posible conocer a priori el valor del gap se utiliza una cota superior del mismo dada por la diferencia entre el valor de una soluci´ on factible del PPLE y el valor ´optimo de la relajaci´on. Esto permite conocer la calidad de una soluci´on y. El esquema general del algoritmo comienza resolviendo la relajaci´on del problema omitiendo las condiciones de que las variables sean enteras. Algoritmos para Problemas de Programaci´on Lineal Entera 2. sobre la cual puede repetirse este procedimiento. En el algoritmo 1 presentamos el esquema b´asico de planos de corte. el valor ´ optimo de la relajaci´ on es una cota superior (caso maximizaci´ on) o inferior (caso minimizaci´ on) del valor ´ optimo del PPLE. que puedan ser agregadas a la formulaci´on para separar las soluciones que no sean enteras. La diferencia entre el valor ´ optimo del PPLE y el de su relajaci´on lineal se conoce como gap y suele usarse como medida de la calidad de la relajaci´on. 2.3 Si una relajaci´ on de un PPLE tiene una soluci´ on factible ´ optima x∗ ∈ n ∗ Z entonces x es soluci´ on ´ optima para el PPLE. 10 .3. eventualmente. llamadas planos de corte.3. certificar la optimalidad de la misma (cuando ambos valores coinciden). Observaci´ on 2. encontrar una soluci´ on entera al problema. El ´exito de la metodolog´ıa depende en gran medida de la posibilidad y la eficiencia de encontrar desigualdades violadas. Al agregar esta desigualdad a la formulaci´on se obtiene una nueva relajaci´on del problema m´as ajustada.2. Preliminares Observaci´ on 2. Si al menos una variable que debe ser entera resulta no serlo. A continuaci´on describiremos algunos de los m´ as utilizados en la pr´actica.1.2 Si una relajaci´ on de un PPLE es un problema factible.

y luego componer las soluciones de los mismos para resolver el problema original. ∪ Sq una descomposici´ on del espacio de soluciones factibles S en subespacios m´as chicos y z k = max {cx : x ∈ Sk } para k = 1. Luego. Sea x∗ su soluci´ on ´ optima ∗ 3: if x es soluci´ on entera then 4: return x∗ 5: end if 6: // Separaci´ on 7: Buscar un conjunto D de desigualdades v´ alidas violadas por x∗ 8: if D 6= ∅ then 9: Agregar las desigualdades de D a SRL 10: Volver al paso 2 11: else 12: return No se pudo encontrar soluci´on 13: end if El primer enfoque fue desarrollado a comienzos de los a˜ nos 60 por Gomory [Gom58] y permite generar desigualdades v´ alidas que cortan la soluci´on de la relajaci´on. 2. que consiste en tratar de describir la c´apsula convexa de las soluciones factibles del mismo.2. Algoritmos para Problemas de Programaci´on Lineal Entera Algoritmo 1 Planos de corte Input: P E ≡ max {f (x) : x ∈ S} Output: x∗ soluci´ on ´ optima. bajo ciertas condiciones. Para generar este tipo de desigualdades es necesario realizar un estudio poliedral del problema. o informa que no pudo encontrarla 1: // Resolver relajaci´ on lineal 2: Resolver P R ≡ max {f (x) : x ∈ SRL } la relajaci´ on lineal del problema. El segundo enfoque se basa en explotar la informaci´on particular del problema a resolver para identificar planos de corte que permitan separar la mayor cantidad de soluciones no enteras. . . Algoritmos Branch and Bound El m´etodo Branch and Bound se enmarca en la t´ecnica algor´ıtmica de Divide and Conquer. por ende m´ as f´ aciles de resolver. Los primeros estudios poliedrales fueron realizados a principios de la d´ecada de los 70. Sq resultantes de la descomposici´on. .3. q.3. . Este tipo de cortes est´an R implementados en la mayor´ıa de los paquetes de optimizaci´on como CPLEX [IBM10]. . es decir. Este proceso de divisi´on se conoce como branching y permite generar un ´ arbol cuya ra´ız corresponde al conjunto S original. . . es convergente. cada subconjunto Sk es nuevamente particionado en otros subconjuntos aplicando el branching en forma recursiva. lo que establece c´omo componer las soluciones de los subproblemas para obtener una soluci´on del problema original. Consideremos el problema z ∗ = max {cx : x ∈ S}. Sea S = S1 ∪ . . Esta t´ecnica consiste en dividir un problema en una serie de problemas m´as chicos. De esta manera. Preliminares 2. La forma t´ıpica de descomposici´ on es dividir el espacio de soluciones factibles en subconjuntos en forma recursiva. la resoluci´on de los subproblemas asociados a los nodos del ´arbol contribuir´ an a la resoluci´ on del problema asociado al nodo ra´ız. . Se verifica entonces que z ∗ = maxk z k . 11 .2. La ventaja de este m´etodo es que es de aplicaci´on general. . no utiliza informaci´on espec´ıfica acerca del problema y. para el Maximum Set Packing Problem [Pad73] y el Travelling Salesman Problem [GP79] y resultaron un gran avance en la resoluci´on de este tipo de problemas. y sus nodos corresponden a los diferentes subconjuntos S1 .

Si el subproblema relajado no tiene soluci´on o su valor ´optimo (cota superior para el ´optimo entero) es peor que la mejor soluci´on entera conocida hasta el momento (mejor cota inferior). Algoritmos para Problemas de Programaci´on Lineal Entera 2. quitarla de L y resolverla 8: if R no resulta factible then 9: Volver al paso 4 10: end if 11: // Bound 12: Sean x∗ la soluci´ on ´ optima de R y z ∗ el valor de la funci´on objetivo ∗ 13: if x es soluci´ on entera then 14: z ← max(z. z ∗ ) 15: Actualizar x con x∗ si corresponde 16: else if z ∗ > z then 17: // Branch 18: Generar subproblemas de R y agregarlos a la lista L 19: end if 20: Volver al paso 4 12 . en cualquiera de los casos mencionados la rama del ´ arbol que se genera a partir del nodo puede ser podada. Por lo tanto. depende de las cotas (bounds) inferiores y superiores para el valor ´optimo z ∗ que son obtenidas de dichos subproblemas. Algoritmo 2 Branch and Bound Input: P E ≡ max {f (x) : x ∈ S} Output: x soluci´ on ´ optima 1: // Inicializaci´ on 2: Sean L ≡ {P R} donde P R es la r.2. Respecto a la elecci´on de un nodo. BFS (Breadth First Search. Este mecanismo de poda se basa en informaci´on parcial provista por la resoluci´on de los subproblemas. La implementaci´ on m´ as difundida y utilizada en la mayor´ıa de los paquetes comerciales de optimizaci´ on utiliza la relajaci´ on lineal para el proceso de branching y fundamentalmente para obtener las cotas que permiten podar el ´arbol. Preliminares Debido al tama˜ no que puede alcanzar el ´arbol. es decir. disponer de alg´ un mecanismo de poda.l. no hay raz´on para detener la b´ usqueda en esa regi´on del espacio. A cada nodo del ´arbol se le asocia la relajaci´ on lineal del problema en el subespacio de b´ usqueda correspondiente a ese nodo. ´esta es la soluci´on buscada en esa regi´ on del espacio. entera encontrada hasta el momento 3: // Elecci´ on de nodo 4: if L = ∅ then 5: return z 6: end if 7: Elegir una r. R ∈ L. z = −∞ una cota inferior y x la mejor sol. M´ as especificamente. no hay necesidad de seguir explorando y dividiendo el subconjunto de soluciones asociado al nodo. En el algoritmo 2 presentamos el esquema b´asico del Branch and Bound. primer nodo de la lista) o BeFS (Best First Search nodo con mejor valor ´optimo de la relajaci´ on). En este esquema no est´ a especificada la regla a seguir para la elecci´on de un nodo de la lista ni el proceso de generaci´ on de los subproblemas. de P E. si al menos una variable de la soluci´on del problema relajado no es entera y el valor ´optimo de la relajaci´ on es mejor que la mejor soluci´on entera que se dispone.l. las opciones m´as usuales son: DFS (Depth First Search. En el caso de que la soluci´on del problema relajado sea entera.3. u ´ltimo nodo de la lista). En cambio. es esencial disponer de alguna forma de evitar explorar ramas completas. En este caso se debe realizar un nuevo branching para generar nuevos nodos y as´ı continuar con la exploraci´on.

xi cumpla alguna propiedad espec´ıfica del problema. no es posible determinar si es mejor aplicar una regla u otra.3. reducir considerablemente el tama˜ no del ´arbol.l. Algoritmos para Problemas de Programaci´on Lineal Entera Para generar los subproblemas suele usarse la cl´asica dicotom´ıa en una variable xi . Preliminares 2. Los dos nuevos nodos que se generan tienen asociada la regi´on del espacio del nodo padre con el agregado de las restricciones xi ≤ bx∗i c y xi ≥ dx∗i e respectivamente. El objetivo de la aplicaci´ on de cortes es obtener mejores cotas en las relajaciones lineales de cada nodo y. La idea del m´etodo sigue los lineamientos generales de un algoritmo de Branch and Bound con la diferencia de que se aplican algoritmos de planos de corte sobre las relajaciones lineales asociadas a los nodos del ´arbol. R ∈ L y quitarla de L 8: Resolver R 9: if R no resulta factible then 10: Volver al paso 4 11: end if 12: // Bound 13: Sean x∗ la soluci´ on ´ optima de R y z ∗ el valor de la funci´on objetivo 14: if x∗ es soluci´ on entera then 15: z ← max(z. en general. Algoritmo 3 Branch and Cut Input: P E ≡ max {f (x) : x ∈ S} Output: x soluci´ on ´ optima 1: // Inicializaci´ on 2: Sean L ≡ {P R} donde P R es la r. etc. i sea el menor ´ındice de variable. se puede elegir xi como la variable tal que: x∗i sea el valor m´as cercano a un n´ umero entero.3. z = −∞ una cota inferior y x la mejor sol. de esta forma. de P E. Del conjunto de variables no enteras de la soluci´on ´optima de la relajaci´on. Algoritmos Branch and Cut El m´etodo de Branch and Cut surge a comienzos de los a˜ nos 80 como un h´ıbrido entre los algoritmos de Branch and Bound y planos de corte. 2.l.3. entera encontrada hasta el momento 3: // Elecci´ on de nodo 4: if L = ∅ then 5: return z 6: end if 7: Elegir una r.2. Cualquier combinaci´on de estas reglas da origen a un ´ arbol distinto y. z ∗ ) 16: Actualizar x con x∗ si corresponde 17: else if z ∗ > z then 18: // Branch vs Cut 19: if Corresponde agregar cortes then 20: Buscar un conjunto D de desigualdades v´alidas violadas por x∗ 21: if D 6= ∅ then 22: Agregar las desigualdades de D a la formulaci´on 23: Volver al paso 8 24: end if 25: end if 26: Generar subproblemas de R y agregarlos a la lista L 27: end if 28: Volver al paso 4 13 .

En t´erminos matem´aticos esto significa que: ci − y ∗ Ai < 0 donde Ai es la columna i de la matriz A. El subproblema se encargar´ a entonces. de ser incluida en la base. Puede ocurrir que sean los u ´nicos modelos conocidos para un determinado problema y no exista un modelo alternativo. se agregar´a al subconjunto de variables y se reoptimizar´a el problema maestro para luego repetir el proceso. 2. la t´ecnica de generaci´on de columnas separa al problema original en dos: un problema maestro y un subproblema de generaci´ on de columnas. ponderan la decisi´on de qu´e variable debe ingresar a la base en la correspondiente iteraci´ on. en un modelo que uti14 . Este tipo de formulaciones no son una rareza y son usadas en la pr´actica por diversas razones. Esto se basa en el hecho de que la mayor´ıa de las variables no ser´an parte de la soluci´ on ´ optima.2. es f´ acil obtener una soluci´on factible inicial. Preliminares En el algoritmo 3 presentamos el esquema b´asico de un Branch and Cut. no ser´a posible mejorar el valor de la funci´ on objetivo. lograr un equilibrio entre ellos no es una tarea f´acil y depende en gran medida del problema particular que se quiere resolver. ¿cu´antos cortes agregar?. Al no considerar todas las variables. la columna buscada no existe. en estos casos. donde se cuenta con todas las variables en forma expl´ıcita. la soluci´on obtenida ser´ a factible pero no hay garant´ıa de que sea ´optima. Por ejemplo. En este caso. El subproblema de generaci´on de columnas consiste en identificar una nueva variable (o columna) para agregar al subconjunto mencionado antes. por lo que en teor´ıa s´olo es necesario un subconjunto chico de todas ellas para resolver el problema. Si por el contrario. En cambio.4. Si dicha columna existe. El problema maestro es el problema original pero s´olo considerando un subconjunto de todas las variables. M´as especificamente. En el caso de una minimizaci´ on. Tambi´en puede suceder que modelos alternativos con menor cantidad de variables tengan relajaciones m´as d´ebiles y no resulten buenos para ser utilizados con los algoritmos conocidos. Este proceso se denomina generaci´ on de columnas. En las formulaciones tradicionales. La nueva columna a ingresar debe ser generada de tal manera que. ¿se deben aplicar cortes globales (v´ alidos para cualquier subproblema) o cortes locales (v´alidos s´olo en el subproblema actual)? La eficiencia del algoritmo depende de estos factores y de muchos otros. Usualmente este n´ umero es tan grande que no es posible considerar todas las variables en forma expl´ıcita. La estrategia. Algoritmos para Problemas de Programaci´on Lineal Entera 2.3. de buscar una columna Ai que verifique la anterior inecuaci´on. Para cerciorarse de esto es necesario buscar entre las variables no consideradas si existe alguna candidata que pueda mejorar el valor de la funci´on objetivo. ci es el coeficiente de costo de la variable correspondiente a la columna i y y ∗ es el vector soluci´on del problema dual asociado al problema original restringido. en cada iteraci´on del problema maestro. En la descripci´on del algoritmo quedan muchos puntos sin especificar. mejore el valor de la funci´ on objetivo. de cierta manera. Generaci´ on de columnas y algoritmos Branch and Price Muchas formulaciones de PPLs tienen la caracter´ıstica de contar con un gran n´ umero de variables. ¿con qu´e criterio decidir si se deben agregar cortes o no?.3. En la pr´actica. es resolver la relajaci´on lineal restringi´endose s´olo a un subconjunto de variables. Los valores de dicho vector se conocen como prices de las columnas de A y. se puede concluir que se alcanz´o el ´optimo del problema maestro. Simplex establece que para mejorar la funci´on objetivo en una iteraci´ on dada. la nueva columna debe tener un costo reducido negativo.

Cuando el problema a resolver es un PPLE. supongamos que tenemos un PPLEB y decidimos realizar un branching por una determinada variable fraccionaria xi . Otros se presentan en forma menos tangible. Por supuesto que al realizar esto se est´ a sacrificando la garant´ıa de optimalidad de la soluci´on obteni´endose como resultado un algoritmo heur´ıstico. Estas ayudar´an a comprender mejor el modelo utilizado en este trabajo para resolver el subproblema de 15 . no es raro que el subproblema termine siendo igual de dif´ıcil de resolver. Algunos ejemplos de conexiones que tienen una representaci´ on f´ısica son los circuitos el´ectricos. Cuando ocurre esto puede utilizarse un algoritmo exacto o simplemente finalizar la etapa de generaci´ on de columnas. En estos casos se suelen utilizar heur´ısticas que permitan obtener una columna con costo reducido negativo pero sin la garant´ıa de que dicho costo sea el m´ınimo. El principal problema que se genera al combinar los m´etodos de Branch and Bound y generaci´on de columnas es que la estrategia de branching impacta directamente sobre la resoluci´on del subproblema. mapas de rutas y modelos moleculares. que el problema original. no siempre es posible contar con un algoritmo eficiente para resolver el subproblema en forma exacta. En el contexto de un algoritmo de Branch and Price es muy importante contar con un buen algoritmo de generaci´ on de columnas que permita resolver las relajaciones sin consumir mucho tiempo. al no obtener una columna con costo reducido negativo. ´ A continuaci´ on presentamos algunas nociones sobre teor´ıa de grafos. Dependiendo del problema. El impacto de la modificaci´on depende fuertemente de la estructura del subproblema y a veces puede resultar muy dif´ıcil de implementar. es necesario proveer un subconjunto inicial de variables que conformen una soluci´ on factible para el problema maestro. El algoritmo de generaci´on de columnas deber´ a tener en cuenta la informaci´on de que la variable xi no estar´a incluida en la soluci´ on o s´ı lo estar´a respectivamente. con la diferencia de que la resoluci´ on de la relajaci´ on lineal asociada a cada nodo del ´arbol se realiza con un m´etodo de generaci´ on de columnas. parar el proceso de generaci´on seg´ un alg´ un criterio y luego continuar con un Branch and Bound o Branch and Cut. Teor´ıa de Grafos liza generaci´ on de columnas. como pueden ser las relaciones sociales. Esto podr´ıa modificar el subproblema de generaci´ on en cada nodo del ´arbol. Si bien esta condici´on es deseable. Branch and Price La t´ecnica de generaci´ on de columnas tal como la describimos hasta ahora es aplicable a la resoluci´ on de problemas de programaci´on lineal por el m´etodo Simplex. Sin esta garant´ıa ya no se puede asegurar. En estos casos se suele utilizar una soluci´on de compromiso que consiste en generar columnas u ´nicamente en el nodo ra´ız.4. esto puede resultar trivial o puede requerir de un algoritmo complejo de generaci´on de columnas iniciales. 2. El esquema general del m´etodo es id´entico al del Branch and Bound original. En una de las ramas resultantes tendremos la restricci´ on extra xi = 0 y en la otra xi = 1. Por ejemplo. De hecho. un modelo de base de datos o el flujo de ejecuci´on de un programa. Teor´ıa de Grafos Las estructuras representadas por nodos y sus conexiones se presentan en una gran variedad de aplicaciones en la vida real.2. en t´erminos de complejidad algor´ıtmica.4. que se ha alcanzado el ´optimo de la relajaci´on. Preliminares 2. se combinan los m´etodos de generaci´on de columnas con un esquema de Branch and Bound para dar lugar al m´etodo de Branch and Price.

Ei.4 (Grafo) Un grafo G = hN. donde Ci es un conjunto cualquiera. f1 . 2.1. Este es un problema cl´asico de la teor´ıa de grafos y se conoce como problema de camino m´ınimo (SPP por su nombre en ingl´es Shortest Path Problem). En el ejemplo anterior. b) ∈ E representa la relaci´on entre dos nodos a. Este tipo de grafos son muy utilizados en problemas de optimizaci´on combinatoria.7 (Grafo con atributos) Un grafo con atributos es una tupla G = hN.. (vn−1 .2. el costo sobre una arista podr´ıa representar tiempo de viaje o costo de transporte. Ei es un grafo cuyas aristas son dirigidas. A continuaci´ on definimos formalmente el concepto de red. Uno de los atributos m´ as utilizados sobre aristas es el de costo o peso. donde N y E son los conjuntos de v´ertices y aristas respectivamente y las fi son funciones con dominio N o E y codominio Ci . b ∈ N y se dice que dichos nodos son vecinos. como modelo de generaci´on de rutas de veh´ıculos que deben ir de un lugar determinado a otro. σi donde σ : E → R y representa el costo de cada arista. Definici´ on 2. en donde generalmente se busca un camino entre dos v´ertices tal que el costo de dicho camino.5 (Grafo dirigido) Un grafo dirigido o digrafo G = hN. un grafo con costo en sus aristas se podr´ıa definir como G = hN. Por ejemplo.. En principio una arista (a. E. fn i.4. 16 .4.6 (Camino) Dado un grafo o digrafo G = hN. (v1 .. por ejemplo. Tambi´en se pueden definir atributos sobre las aristas y v´ertices de un grafo. Las aristas pueden tambi´en tener una direcci´on en cuyo caso el conjunto E pasa a ser un conjunto de pares ordenados y cada arista tendr´a un nodo de origen y un nodo de destino. lo llamaremos camino dirigido. Definici´ on 2. es decir. vn )] Si el grafo es dirigido. Puede ser resuelto en forma eficiente con algoritmos como el de Dijkstra [Dij59] o el de Floyd [Flo62]. Muchas aplicaciones que se pueden modelar utilizando grafos necesitan expresar la noci´on de camino entre dos v´ertices. sea m´ınimo. . Redes Una red es un tipo particular de grafo dirigido... v1 ). v2 ). . vn ∈ N es una secuencia de aristas con la siguiente forma C = [(v0 . En general son utilizadas para modelar redes f´ısicas como pueden ser redes de comunicaci´on u oleoductos pero tambi´en se utilizan. f2 . Definici´ on 2. tienen un nodo origen y un nodo destino. E. Preliminares generaci´on de columnas. Este u ´ltimo caso es el que resulta de particular inter´es para nuestro trabajo. es decir la suma de los costos de sus aristas. Teor´ıa de Grafos 2. Ei es una dupla donde N es un conjunto de v´ertices (o nodos) y E ⊆ N × N es un conjunto de aristas (o ejes) que representan la relaci´ on entre los elementos de N .. un camino C entre los v´ertices v0 . Definici´ on 2.

4. con la propiedad de que s es v´ertice origen de al menos una arista y t es destino de al menos una arista. llamados fuente o source y sumidero o sink respectivamente. Por ejemplo.4. A diferencia del problema de camino m´ınimo original. Camino m´ınimo con restricciones sobre recursos El problema de camino m´ınimo con restricciones sobre recursos (SPPRC por su nombre en ingl´es Shortest Path Problem with Resource Constraints) fue presentado por primera vez por Desrochers [Des86] para resolver un problema de scheduling de camioneros. el peso de la carga que lleva un veh´ıculo o la duraci´on de un descanso en un per´ıodo de trabajo. en el SPPRC dos caminos pueden ser incomparables. como por ejemplo el tiempo. a una red con restricciones sobre recursos[FH96] [MP08]. si consideramos el costo y el tiempo de un camino como recursos. bi ] la ventana de tiempo asociada al nodo i. En muchos de los problemas relacionados con la generaci´on de rutas de veh´ıculos y/o schedules de conductores se presenta. En este caso no podemos decidir. t} . La condici´ on de que t ≥ ai es opcional de acuerdo al problema que se est´e tratando. donde s y t son dos v´ertices distinguidos. El SPPRC se presenta como un mecanismo para generar columnas en muchos de los problemas de ruteo de veh´ıculos y scheduling para conductores. sea [ai . Un recurso corresponde a una cantidad. tal que dicho camino satisfaga un conjunto de restricciones definidas sobre recursos. puede suceder que un camino parcial C1 tenga costo menor a otro camino C2 . Ei. Un ejemplo de restricci´on podr´ıa ser la condici´on de que el tiempo acumulado por un camino est´e comprendido dentro de cierto intervalo o ventana. La particularidad de que los caminos se tengan que comparar en base a varios criterios hace que el SPPRC no pueda ser resuelto con algoritmos cl´asicos como el de Dijkstra.8 (Red) Una red es un grafo dirigido G = hN ∪ {s. La idea b´asica es que un camino entre los nodos s y t represente una ruta o schedule (dependiendo del problema) que sea factible o v´alido. y expresa cierta condici´on que debe cumplirse con respecto a la acumulaci´on de un recurso por un camino hasta dicho nodo o arista.2. como modelo de generaci´on subyacente. Una restricci´ on sobre un recurso est´a dada por una condici´on que debe verificar el recurso acumulado a lo largo del camino. Remiti´endonos al ejemplo anterior. Teor´ıa de Grafos Definici´ on 2. est´ a demostrado que el SPPRC que busca caminos elementales (i. sin v´ertices repetidos) es NP-hard [ENS08]. pero que C2 tenga menor tiempo que C1 . Preliminares 2. Un camino m´ınimo repre17 .e. La factibilidad del camino va a estar dada por los recursos y las restricciones que se aplicar´ an sobre ellos. a priori. y la variante que permite caminos con v´ertices repetidos puede ser resuelta en tiempo pseudo-polinomial [ID04]. Una restricci´ on puede ser aplicada sobre un nodo o una arista. Las restricciones sobre los recursos fuerzan a que se consideren todos los caminos incomparables que alcanzan un determinado nodo. un camino ser´a factible si el tiempo t en que visita dicho nodo verifica que t ≤ bi . cu´al de los caminos conviene tomar. Esto sucede cuando un camino es mejor que otro de acuerdo a un criterio y peor de acuerdo a otro. Esta cantidad es acumulada a lo largo de un camino de acuerdo a lo que indique cada funci´on asociada al recurso. Esto es as´ı dado que las restricciones podr´ıan no permitir extensiones factibles de algunos de estos caminos pero s´ı de otros. Consiste en encontrar un camino m´ınimo entre los nodos s y t de una red. 2. De hecho. Un recurso puede ser visto entonces como un atributo de la red en el sentido que las funciones que los caracterizan se definen sobre nodos o aristas y asignan un valor a cada uno de ellos.2.

lo que garantizar´a una mejora en el valor de la funci´on objetivo en la iteraci´ on correspondiente. Esto puede implicar que la generaci´ on de columnas mediante un algoritmo exacto resulte prohibitiva. El hecho de que en cada iteraci´on se genere una columna por medio del SPPRC da la pauta de que el algoritmo que lo resuelva debe ser eficiente. Sin embargo. En estos casos se pueden relajar los criterios de comparaci´on y en lugar de tener un algoritmo exacto tendremos una heur´ıstica. puede suceder que la red sobre la cual se busca el camino sea muy grande y/o que la comparaci´on de criterios sea muy costosa. Teor´ıa de Grafos 2. 18 . Preliminares sentar´a entonces una ruta o schedule ´optimo.2.4.

Cap´ıtulo 3 Modelo Resolver los problemas de VRP y CSP mediante m´etodos de programaci´on lineal es de por s´ı una tarea dif´ıcil. sin independizar la planificaci´on de los veh´ıculos de la de sus conductores. Las definiciones se agrupan por tema. • LCI : conjunto de ciudades que inicialmente tienen disponible al menos un cami´on. La gran cantidad de variables que se requieren puede verse claramente cuando consideramos al tiempo como una de ellas. LDI = d∈D LCDd . Si bien el tiempo puede discretizarse de varias maneras (d´ıas. A continuaci´ on se presentan los detalles del modelo propuesto para el problema maestro. se debe optar por una discretizaci´ on que sirva a los fines de la resoluci´on pr´actica del problema. En nuestro problema es preciso conocer el instante de tiempo en que se realizan ciertas acciones. El enfoque de esta tesis es resolver estos problema en forma conjunta. de manera de presentarlas en una forma m´as ordenada. minutos. 19 . En el cap´ıtulo 5 se presentar´a el modelo para el subproblema de generaci´on de columnas. horas. el pick-up de un pedido. • LDI : conjunto de ciudades que inicialmente tienen disponible al menos un camionero. como ser: el ascenso y descenso de camioneros. S • LCDd : ciudad donde comienza el camionero d. LDI ⊆ L. segundos). Esto sumado a las particularidades del problema tratado hizo que los modelos de programaci´on lineal que analizamos tuvieran demasiadas variables para considerarlos en forma expl´ıcita. por ejemplo ´ se puede dividir el d´ıa en 24 horas. el comienzo del descanso de un camionero. Por esta raz´ on es que optamos por un modelo de generaci´on de columnas para resolver el problema. etc). etc. Ciudades • L : conjunto de ciudades o localidades. para de esta manera complementar el esquema general de resoluci´on. 3.1. LCI ⊆ L. necesitamos presentar algunas definiciones. Esta y cualquier discretizaci´on m´as granular hace que el n´ umero de variables crezca enormemente al combinarse con los otros aspectos del problema que debe tener en cuenta el modelo (ciudades. Definiciones preliminares Antes de definir formalmente el modelo. camioneros.

. C = k∈L CCLk . • K : cantidad de momentos en los que se divide un d´ıa. . 1. Es decir. 3. . Pedidos • P : conjunto de pedidos. Por ejemplo. Camiones • C : conjunto de camiones. K × T − 1}. • cr : costo de la ruta r ∈ R. es decir M = {0. 20 . aquellas rutas en las que sube un camionero en esa ciudad y en ese momento. . • R2ki : conjunto de rutas que requieren dos camioneros en la ciudad k en el momento i. • DCLS k : conjunto de camioneros que comienzan su itinerario en la ciudad k. si K = 24. Formulaci´ on del modelo 3. Si se considera un horizonte de T d´ıas. Rutas • R : conjunto de rutas.3. el cardinal de M es K × T momentos. aquellas rutas en las que baja un camionero en esa ciudad y en ese momento. • CCLS k : conjunto de los camiones disponibles en el momento inicial en la ciudad k. • D2ki : conjunto de rutas que dejan a dos camioneros en la ciudad k en el momento i. Es decir. D = k∈L DCLk . • R1ki : conjunto de rutas que requieren un camionero en la ciudad k en el momento i. Tiempo • T : cantidad de d´ıas en el horizonte de planificaci´on. • RPp : conjunto de rutas que satisfacen el pedido p.2. Formulaci´ on del modelo A continuaci´ on presentamos la formulaci´on del modelo para el problema. • D1ki : conjunto de rutas que dejan a un camionero en la ciudad k en el momento i. Modelo Camioneros • D : conjunto de camioneros. • M : conjunto de momentos. • RCLk : conjunto de rutas que comienzan en ciudad k. cada momento representa una hora.2.

• Ydki con d ∈ D.2. X yr ≤ |CCLk | ∀k ∈ LCI r∈RCLk 4. • Wdki con d ∈ D. Ydki = Ydk(i−1) − Xdki + Wdki ∀d ∈ D. X yr ≤ |C| r∈R 3.2.3. estas variables s´ olo est´ an definidas para i ≥ 1. • Zdj con d ∈ D. 1 ≤ i < K × T 21 . 3. 3. Dado que en el momento inicial los camioneros no pueden bajarse de los camiones. las variables Ydk0 s´olo existen si k = LCDd . i ∈ M Indica si el camionero d se sube a un cami´on en la ciudad k en el momento i. No se utilizan m´ as camiones de los que hay disponibles. Todas ellas son binarias. Funci´ on objetivo m´ın X cr yr r∈R 3. por lo tanto s´olo existen las variables Xdk0 si k = LCDd . Formulaci´on del modelo Variables Las siguientes son las variables definidas para el modelo. j ∈ T Indica si el camionero d tiene franco el d´ıa j.2. En el momento inicial un camionero s´olo puede subirse a un cami´on en la ciudad en la que se encuentra inicialmente. Un camionero se encuentra descansando en un momento y en una ciudad si en el momento anterior ya se encontraba descansando en esa ciudad. En ninguna ciudad comienzan m´as rutas que la cantidad de camiones que hay inicialmente en dicha ciudad. o si en el momento actual es dejado en esa ciudad y no sube a ning´ un cami´on. Modelo 3. • yr con r ∈ R Indica si una ruta r es parte de la soluci´on. k ∈ L. i ∈ M Indica si el camionero d descansa en la ciudad k en el momento i.2. k ∈ L. Dado que en el momento inicial un camionero s´olo puede descansar en la ciudad en la que se encuentra inicialmente. X ∀p ∈ P yr = 1 r∈RPp 2. k ∈ L.3. Restricciones 1. i ∈ M \ {0} Indica si el camionero d baja de un cami´on en la ciudad k en el momento i. • Xdki con d ∈ D. Todos los pedidos son satisfechos por exactamente una ruta.2.1. k ∈ L.

X X yr + 2 r∈R1ki yr = r∈R2ki X Xdki ∀k ∈ L. En el momento inicial. La cantidad de camioneros que las rutas requieren en una ciudad y en un momento es igual a la cantidad de camioneros que suben a alg´ un cami´on en esa ciudad y en ese momento. o se suben a un cami´on. descansa todos los momentos correspondientes a ese d´ıa: KZdj ≤ X X K×j+K−1 k∈L Ydki ∀d ∈ D. 0 ≤ i < K × T d∈D 9. por lo que no ser´ an generadas. consideraremos a las variables yr en forma impl´ıcita. En particular cada variable yr se corresponde con una posible ruta del conjunto R.3. los camioneros descansan al menos 12 horas. Los camioneros no pueden estar subiendo a un cami´on y descansando en el mismo momento. Debido a esto. por ende. La cantidad de camioneros que las rutas dejan en una ciudad y en un momento se corresponde con la cantidad de camioneros que bajan de los camiones en esa ciudad y en ese momento. 0 ≤ i < K × T − (K − 1) j=i 10. Si un camionero est´ a descansando un d´ıa. Modelo 5.2. los camioneros descansan en la ciudad en la que se encuentran originalmente. X (Ydki + Xdki ) ≤ 1 ∀d ∈ D. Wdki y Zdj . correspondientes al scheduling de camioneros. X i+K−1 X k∈L Ydkj ≥ K/2 ∀d ∈ D. son consideradas en forma expl´ıcita en el modelo. 0 ≤ j < T i=K×j Como se puede ver. 0 ≤ j ≤ T − 7 i=j 11. Ydk0 = 1 − Xdk0 ∀d ∈ D. los camioneros descansan al menos un d´ıa: j+6 X Zdi ≥ 1 ∀d ∈ D. Formulaci´ on del modelo 3. 22 . k = LCDd 6. El resto de las variables Xdki . que se transcurren en el tiempo desde el instante inicial hasta el horizonte de planificaci´on. 1 ≤ i < K × T d∈D 8. Esto hace que el n´ umero de formas de combinar estos eventos en el tiempo sea muy grande y. resulta imposible definir por extensi´ on al conjunto de rutas. En cualquier per´ıodo de 24 horas. y trataremos modelo con el m´etodo de generaci´on de columnas que se presenta en el cap´ıtulo 5. Cada ruta es un secuencia de eventos. Ydki . 1 ≤ i < K × T k∈L 7. la formulaci´on cuenta con una gran cantidad de variables. llevados a cabo por un cami´on. En cualquier per´ıodo de 7 d´ıas. X X yr + 2 r∈D1ki yr = r∈D2ki X Wdki ∀k ∈ L.

• diaP kp : P → {0. necesitamos las siguientes definiciones relacionadas con la informaci´ on del input del problema. Un evento puede corresponderse con un viaje entre ciudades. Estas rutas son las que luego utilizaremos para construir las columnas asociadas a las variables yr de la formulaci´on del problema.Cap´ıtulo 4 Grafo de Rutas El modelo de programaci´ on lineal entera que presentamos en el cap´ıtulo 3 incluye las denominadas variables de ruta. . • vf p : P → {0. K − 1} Toma un pedido y devuelve el comienzo de la ventana de pick-up. . 23 . T − 1} Toma un pedido p y devuelve el d´ıa a partir del cual se puede realizar el pick-up de la mercader´ıa de p. En este cap´ıtulo presentaremos el grafo de rutas. 1. 4. K − 1} Toma un pedido y devuelve el fin de la ventana de pick-up. • vcp : P → {0. Recordemos que una ruta representa una secuencia de eventos que se suceden en el tiempo y que son llevados a cabo por un cami´on. . • ciudadP kp : P → L Toma un pedido p y devuelve la ciudad en la que debe realizarse el pick-up de p.1. el ascenso o descenso de camioneros del cami´on en alguna ciudad o la realizaci´ on del pick-up o drop-off de un pedido. T es la cantidad de d´ıas en el horizonte de planificaci´on. a partir de qu´e momento del d´ıa se puede retirar la mercader´ıa de p. 1. . . . lo que implica que s´olo son v´alidas las ventanas cuyo momento de finalizaci´on es posterior al momento de inicio: vf p(p) > vcp(p) ∀p ∈ P . . Esta secuencia de eventos define un schedule para un cami´on. . . Definiciones preliminares sobre el input del problema Para definir formalmente el grafo de rutas. hasta qu´e momento del d´ıa se puede retirar la mercader´ıa de p. es decir. Cada variable yr corresponde a una de las posibles rutas que pueden ser generadas. K es la cantidad de momentos en los que se divide un d´ıa. es decir. . . Asumimos que la ventana horaria de pick-up est´ a comprendida en un u ´nico d´ıa. una red con recursos y restricciones que permite generar secuencias de eventos realizados por un cami´on tales que verifican las restricciones propias del problema. . 1. Este modelo de generaci´on nos permitir´a formalizar la noci´on de ruta para el problema.

. y para generarlas utilizaremos el denominado grafo de rutas. realizarlo 3 d´ıas despu´es tiene costo 3c. . • vcd : P → {0. es decir. pero por ahora basta con saber que es un camino dirigido que verifica las restricciones asociadas a los recursos. T − 1} Toma un pedido p y devuelve el d´ıa a partir del cual se puede realizar el drop-off de la mercader´ıa de p. Sin embargo. • diaDpf : P → {0. . a medida que va atravesando el grafo. • vf d : P → {0. Grafo de Rutas • ciudadDpf : P → L Toma un pedido p y devuelve la ciudad en la que debe realizarse el drop-off de p. K − 1} Toma un pedido y devuelve el comienzo de la ventana de drop-off. A continuaci´ on se presenta una figura que brinda una noci´on de la estructura del grafo de rutas. • β Es el factor que indica la penalidad. Estructura del grafo Previamente describimos una ruta como una secuencia de eventos que define un schedule para un cami´ on.2. a partir de qu´e momento del d´ıa se puede entregar la mercader´ıa de p. Verifica que tiempo(k. • α Es el factor que indica el costo del viaje de un cami´on por unidad de tiempo. 24 . . . asociada a que el cami´on viaje sin mercader´ıa. una secuencia en la que un cami´on realiza el drop-off de un pedido sin antes haber realizado el correspondiente pick-up no es v´alida para nuestro problema. . acumula el tiempo de viaje del cami´on y los pedidos que el mismo va realizando. . 1. es decir. Asumimos que la ventana horaria de drop-off est´ a comprendida en un u ´nico d´ıa. . El grafo de rutas es una red dirigida con recursos y restricciones. . . M´as adelante definiremos con precisi´ on la noci´ on de camino v´alido. 1. .2. Un camino. lo que implica que s´olo son v´alidas las ventanas cuyo momento de finalizaci´on es posterior al momento de inicio: vf d(p) > vcd(p) ∀p ∈ P . es decir que si realizar el drop-off al d´ıa siguiente del esperado tiene costo c. De aqu´ı en adelante llamaremos rutas a aquellas secuencias de eventos o schedules que pueden ser realizados por un cami´on. • tiempo : L × L → N0 Toma dos ciudades y devuelve el tiempo que insume el viaje entre las mismas. en donde un camino v´ alido desde el nodo source al nodo sink representa una posible ruta. k) = 0 ∀k ∈ L. hasta qu´e momento del d´ıa se puede entregar la mercader´ıa de p. no cualquier secuencia de eventos va a resultar v´alida para el problema. • penalidad : P → R Toma un pedido p y devuelve la penalidad asociada a realizar el drop-off de p en d´ıas posteriores al d´ıa especificado. Estructura del grafo 4. 4. 1. Los recursos que se tienen en cuenta en el grafo son dos: el tiempo y los pedidos.4. Por ejemplo. Esta penalidad es por d´ıa de demora. por unidad de tiempo. . K − 1} Toma un pedido y devuelve el fin de la ventana de drop-off.

4. y los pedidos que el cami´on llevar´a a cabo durante su recorrido. Los nodos distinguidos s y t representan el source y el sink del grafo de rutas. Seg´ un el grafo de rutas. Se acumular´a adem´as el costo del viaje representado por el camino. Es as´ı como un camino en el grafo de rutas ir´ a acumulando el tiempo del viaje que realiza el cami´on. Despu´es de realizar el drop-off de la mercader´ıa puede ir a realizar un nuevo pickup o bien comenzar nuevamente el viaje entre ciudades para repetir el proceso original. 25 . • Pick-ups: agrupa los nodos que representan los pick-ups.2. Una vez cargado con la mercader´ıa puede ir directamente a realizar el drop-off del pedido o bien seguir viajando entre las diferentes ciudades pre drop-off. • Ciudades Pre drop-off: agrupa los nodos de las ciudades que son visitadas antes de realizar el drop-off de un pedido.1: Estructura del grafo de rutas. Los ejes del grafo tienen como atributo al tiempo. un cami´ on comienza viajando entre las ciudades del mapa y luego procede a realizar el pick-up de un pedido. Esta estructura restringe los posibles recorridos que puede realizar un cami´on. Las diferentes nubes que muestra el gr´ afico representan subgrafos que tienen cierta estructura en com´ un. Grafo de Rutas 4. Es as´ı como: • Ciudades Pre pick-up: agrupa los nodos de las ciudades que son visitadas antes de realizar el pick-up de un pedido. • Drop-offs: agrupa los nodos que representan los drop-offs. Estructura del grafo Figura 4.

2.2. donde uno de ellos ascendi´o en la partida. En este caso. De la misma manera. el cami´ on no podr´ıa realizar ninguna acci´on en la ciudad.2 muestra la estructura del subgrafo de ciudades con dos ciudades a modo de ejemplo.1. Cada nodo del conjunto de llegada se conecta con aquellos nodos del conjunto de 26 . De la misma forma que en el conjunto de llegada. 4.2: Estructura del subgrafo de ciudades. al tratarse de una situaci´ on que no puede darse bajo las condiciones impuestas por el modelo. La figura 4. por lo que su paso por all´ı no tiene sentido.4. el nodo cplb21 representa la situaci´on de un cami´ on que llega a la ciudad con dos camioneros. Es importante notar que no incluimos el nodo que representa la situaci´on en que llegan dos camioneros y ninguno desciende. Cuando un camionero desciende del cami´on puede iniciar su descanso o ascender a otro cami´on que se encuentre en la ciudad. y el otro la partida. Si sucediera esto. Es as´ı como el nodo cpsp12 representa la situaci´on de un cami´on que parte de la ciudad con dos camioneros. Estructura del grafo 4. De esta forma. Grafo de Rutas Subgrafo de ciudades Figura 4. entonces el cami´on no podr´ıa detenerse y tampoco podr´ıan ascender m´ as camioneros dado que la capacidad del cami´on ya estar´ıa completa. Cada ciudad se representa con un grafo bipartito en donde uno de los conjuntos de nodos representa la llegada del cami´on a la ciudad. uno de los cuales desciende. cada nodo del conjunto de partida representa una de las posibles combinaciones de cantidad de camioneros que ascienden y cu´antos de ellos parten de la ciudad en el cami´ on. Cada nodo del conjunto de llegada representa una de las posibles combinaciones de cantidad de camioneros que llegan en el cami´on y cu´antos de ellos se bajan del mismo. el nodo cpsp02 no es parte del conjunto de partida.

2. . Es as´ı como en la figura. cada 27 . su fin. sumados a los que ascienden debe ser igual a los que parten. se produce alg´ un ascenso o descenso de camioneros. por un cami´on con una flota de dos camioneros. Es decir. el subgrafo de ciudades modela el intercambio de flotas en los camiones que circulan a trav´es del mapa. . El tiempo 0 representa que el cami´ on no se detiene entre la llegada y la partida. A su vez.3 se muestra la estructura del subgrafo de eventos con un pedido a modo ilustrativo. M 0 expresa que un cami´ on puede estar detenido entre 0 y M 0 momentos. En el caso del pre pick-up. sino que pasa por la ciudad a realizar un intercambio de flota y sigue su camino. Para simplificar los t´erminos utilizados llamaremos evento tanto al pick-up como al drop-off de un pedido. por ende.2. En la figura se muestran. Esto asegura que se cumpla la condici´on de preservaci´on de camioneros anteriormente mencionada. sobre cada uno de estos ejes. Es as´ı como los nodos cplb11 y cpsp11 est´an conectados por los M 0 + 1 ejes posibles. Subgrafo de eventos En la figura 4. La notaci´on 0 . • Se realiza alg´ un intercambio de flota. M 0 . menos los que descienden. Las ciudades en este subgrafo est´an conectadas por ejes que representan el viaje de un cami´on entre ciudades y. 4. Es decir que la cantidad de camioneros que llegan. Esto se debe a que el modelo considera que si un cami´on se detiene en una ciudad todos sus camioneros deben descender del mismo. los diferentes tiempos que puede estar detenido el cami´on. el cami´on circula sin mercader´ıa por lo que el costo de los ejes tiene la penalidad asociada a circular con el cami´on vac´ıo. Los descensos y ascensos de camioneros en el grafo de rutas s´olo se realizan en los nodos de llegada y partida de ciudad respectivamente. Sin embargo. Los ejes que conectan ambos conjuntos de nodos tienen el tiempo que puede transcurrir entre que el cami´ on llega a la ciudad y parte de la misma.2. . los nodos cplb10 y cpsp12 s´olo est´an conectados por el eje con tiempo 0. el nodo pc102 corresponde al comienzo del pick-up del pedido 1. por lo que entre los nodos correspondientes no existe uno sino m´ ultiples ejes. • No se excede el l´ımite de dos camioneros por flota. d´ıa y cantidad de camioneros determinados. Grafo de Rutas 4. ya que el cami´on puede quedar detenido porque no tiene camioneros a bordo. En el subgrafo de eventos cada pedido es un grafo bipartito donde el primer conjunto de nodos representa el comienzo del evento y el segundo. De esta manera. En el caso del pre drop-off. Entre un nodo de llegada y uno de partida puede existir el u ´nico eje con tiempo 0 o los m´ ultiples ejes con valores de tiempo 0 . Estructura del grafo partida para los cuales se verifican las siguientes condiciones: • Se preserva la cantidad de camioneros. cada uno correspondiente a las diferentes duraciones de la parada del cami´on.4. tienen el tiempo que toma llegar de una a otra. Estos ejes unen los nodos de partida de una ciudad con los de llegada de la siguiente. Los nodos pertenecientes al primer conjunto representan la acci´on del comienzo de un pick-up o drop-off para un pedido. realiz´andose en el d´ıa 0. . siempre que se verifique que la cantidad de camioneros que parten es igual a la cantidad de camioneros que llegan. Los subgrafos de ciudades pre pick-up y pre drop-off son estructuralmente id´enticos aunque se diferencian en el costo de sus ejes. el cami´ on va cargado con la mercader´ıa que retir´o al realizar el pick-up. por lo que los ejes no tienen costo extra. siendo M 0 el l´ımite m´ aximo de tiempo que un cami´on puede estar detenido en una ciudad. dado que en ese caso el camionero no descendi´o del cami´on.

En el caso del pick-up.4. Las notaciones vc y vf representan el comienzo y fin de la ventana asociada al evento para un determinado pedido y est´an expresadas en valor relativo al d´ıa del evento. en este caso. Los subgrafos de pick-ups y drop-offs son estructuralmente id´enticos pero sus ejes tienen costos diferentes. por lo que [24 + vc(1). d´ıa y cantidad de camioneros que realizan el evento. 24 + vf (2)] representa la ventana correspondiente al d´ıa 1 expresada. 28 .2. Los nodos de comienzo deben tener su ventana definida en t´erminos absolutos al comienzo del horizonte de planificaci´on. uno de estos nodos tiene asociada una ventana de tiempo que indica la franja horaria en la que puede llevarse a cabo el evento en cuesti´on. Cada nodo de comienzo est´ a conectado con un s´ olo nodo de fin correspondiente al mismo pedido. no tienen costo alguno. los ejes de realizaci´ on de drop-off tienen asociado el costo de realizar el pedido fuera de fecha. Este tiempo forma parte de la definici´ on del problema y fue fijado en 1 hora. Grafo de Rutas Figura 4. El subgrafo de eventos modela la realizaci´on de los pick-ups y drop-offs estableciendo las restricciones de ventanas de tiempo dentro de las cuales estos eventos pueden ser llevados a cabo. Estructura del grafo 4. en horas absolutas. Los nodos de comienzo de evento est´an conectados a los nodos de fin de evento por medio de ejes que tienen el tiempo que toma la realizaci´on del evento en cuesti´on.3: Estructura del subgrafo de los eventos de pedidos. En cambio.

El conjunto se define como: N CP P = {cpspk01 .3. donde: • N es el conjunto de nodos • E es el conjunto de ejes • ρ es la funci´ on asociada al recurso de los pedidos • ν es la funci´ on asociada a las ventanas de tiempo tanto de pick-up como de drop-off • τ es la funci´ on asociada al recurso del tiempo • σ es la funci´ on asociada al costo A continuaci´ on presentamos en detalle los conjuntos de nodos y ejes. ρ. ν. τ y σ. σi. N y E.3. La cantidad de camioneros que descienden debe ser menor o igual que la cantidad de camioneros que llegan. y Nodos llegada ciudad pre pick-up (NCPL ) Es el conjunto de nodos que representan la llegada a una ciudad previa a realizar un pick-up. pues en ese caso no se deber´ıa pasar por la ciudad. 4. No se define un nodo que represente la situaci´ on en la que llegan dos camioneros pero no desciende ninguno ya que en ese caso no tiene sentido que el cami´on pase por la ciudad. t es el nodo sumidero o sink. El conjunto se define como: N CP L = {cplbk10 .1 (Grafo de rutas) El grafo de rutas es una red con recuros y restricciones definida como GR = hN. τ. b de los cuales descender´ an del cami´on. Nodos El conjunto de nodos del grafo de rutas se define como la siguiente uni´on: N = {s. ν. cpspk11 . Grafo de Rutas 4. cplbk22 | k ∈ L} Nodos partida ciudad pre pick-up (NCPP ) Es el conjunto de nodos que representan la partida de una ciudad previa a realizar un pick-up. cpspk12 . Cada nodo cplbklb representa la situaci´on en la que llegan l camioneros a la ciudad k. cplbk21 .3. t} ∪ N CP L ∪ N CP P ∪ N CDL ∪ N CDP ∪ N PC ∪ N PF ∪ N DC ∪ N DF Donde s es el nodo fuente o source.1. cplbk11 . Definici´on del grafo Definici´ on del grafo Definici´ on 4. 4. cpspk22 | k ∈ L} 29 . E. Cada nodo cpspksp representa la situaci´on en la que ascienden s camioneros y la flota resultante al momento de partir de la ciudad k es de p camioneros. y definimos las funciones asociadas a los recursos y restricciones de la red.4. ρ. La cantidad de camioneros que parten de la ciudad debe ser mayor o igual que la cantidad de camioneros que ascienden al cami´ on. No se define un nodo que represente la situaci´on en la que no ascienden camioneros y parten dos.

2}} Nodos comienzo drop-off (NDC ) Es el conjunto de nodos que representan el comienzo de un drop-off. diaDpf (p) ≤ d < T. Es an´alogo al conjunto N DC . Se define como: N CDP = {cdspk01 . cdspk22 | k ∈ L} Nodos comienzo pick-up (NPC ) Es el conjunto de nodos que representan el comienzo de un pick-up. Definici´ on del grafo 4. Cada nodo pcpdc representa la situaci´ on en la que un cami´on con c camioneros comienza el pick-up del pedido p en el d´ıa d.4. diaP kp(p) ≤ d < T. c ∈ {1. cdlbk22 | k ∈ L} Nodos partida ciudad pre drop-off (NCDP ) Es el conjunto de nodos que representan la partida de una ciudad previa a realizar un drop-off. cdlbk21 . Es an´alogo al conjunto N PC . 2}} Cardinal del conjunto de nodos El cardinal del conjunto de nodos es el siguiente: |N | = 2 + 16 × |L| + 4 × X p∈P T − diaP kp(p) + 4 × X T − diaDpf (p) p∈P donde las sumatorias representan la cantidad de d´ıas que es posible realizar un pick-up o un drop-off para un determinado pedido. Grafo de Rutas Nodos llegada ciudad pre drop-off (NCDL ) Es el conjunto de nodos que representan la llegada a una ciudad previa a realizar un drop-off. 30 . Se define como: N PF = {pfpdc | p ∈ P. Se define como: N CDL = {cdlbk10 . diaDpf (p) ≤ d < T. Cada nodo dcpdc representa la situaci´ on en la que un cami´on con c camioneros comienza el drop-off del pedido p en el d´ıa d. Se define como: N DF = {dfpdc | p ∈ P. cdspk12 . Se define como: N PC = {pcpdc | p ∈ P.3. c ∈ {1. cdlbk11 . diaP kp(p) ≤ d < T. c ∈ {1. 2}} Nodos fin pick-up (NPF ) Es el conjunto de nodos que representan el fin de un pick-up. 2}} Nodos fin drop-off (NDF ) Es el conjunto de nodos que representan el fin de un drop-off. Se define como: N DC = {dcpdc | p ∈ P. Es an´ alogo al conjunto N CP L . Es an´ alogo al conjunto N CP P . c ∈ {1. cdspk11 .

M 0 } si l = 1. p = 2 (1)   {0}  0  {0. p = 2 (3)     {0} si l = 2. 1. . la transici´ on es instant´ anea) ya que para que el cami´ on quede detenido en la ciudad todos los camioneros que llegan deben descender del mismo. el cami´ on puede parar sin restricciones (8) El cami´ on no puede pasar por una ciudad si no se presenta alguno de los casos anteriores Vale aclarar que si l 6= b. b = 2. b = 1. p = 2 (5)    0 } si l = 2. . s. . p = 1 (6)   {0. .3.2 (Funci´ on de tiempos ejes intra-ciudad) La funci´ on eic : {0. b = 1. los camioneros no descansan (i. bajan. 1. p) = {0} si l = 2. Grafo de Rutas 4. b = 1. s = 2. 2}4 → P(M ) especifica el conjunto de momentos correspondiente a cada situaci´ on de camioneros que llegan. el cami´ on puede parar sin restricciones (4) Si llegan dos camioneros y s´ olo uno desciende. b = 2. . M     {0. s = 2. el cami´ on puede parar sin restricciones (7) Si descienden los dos camioneros que llegan. p = 1 (4) eic(l. La siguiente funci´on define los tiempos que se corresponden con cada situaci´on que puede darse entre los nodos de llegada y partida para cualquier ciudad k ∈ L. . s. 1. (1) Si llega un camionero y no desciende. p = 1 (2)    {0.2. s = 1. cplbklb ∈ N CP L . Definici´on del grafo Ejes Se define el conjunto de ejes E del grafo de rutas como la siguiente uni´on: E = EICP ∪ EECP ∪ EICD ∪ EECD ∪ EHP ∪ EDP ∪ EP D ∪ EDP ∪ ERP ∪ EHD ∪ EDD ∪ ERD ∪ ES ∪ ET Donde: Ejes intra-ciudad pre pick-up (EICP ) Es el conjunto de ejes que unen los nodos de llegada de una ciudad previa a realizar un pick-up con los nodos de partida de la misma.3. M } si l = 1. cpspksp )q | q ∈ eic(l. . . p). b = 0. . . . b = 1. cpspksp ∈ N CP P } k∈L 31 . . . Se define entonces el conjunto de ejes intra-ciudad pre pick-up de la siguiente manera: EICP = [ {(cplbklb . b. p = 2 (7)   ∅ en cualquier otro caso (8) Donde P(M ) denota el conjunto de partes de M . s = 1. s = 1. . el cami´ on puede parar sin restricciones (3) Si el u ´nico camionero que llega desciende. 1. Definici´ on 4. M 0 } si l = 2. el cami´ on no puede detenerse (2) Si el u ´nico camionero que llega desciende. s = 0. s = 1. dependiendo de la situaci´on que represente la transici´ on entre dichos nodos. suben y parten en una ciudad. Entre cada par de nodos de llegada y partida de una ciudad (cplbklb . .4. 4. . el cami´ on no puede detenerse (6) Si descienden los dos camioneros que llegan. cpspksp ) pueden existir m´ ultiples ejes.  si l = 1.e. 1. el cami´ on no puede detenerse (5) Si llegan dos camioneros y s´ olo uno desciende. b.

cdspksp )q | q ∈ eic(l. S´olo existe un eje entre dos de estos nodos si la cantidad de camioneros que parten de una ciudad es igual a la cantidad de camioneros que llegan a la otra. b. el conjunto s´ olo incluye los ejes que conectan nodos en los que parten los mismos camioneros que llegan. Utilizando entonces la funci´on definida en 4. cplbmpb ∈ N CP L .3. Se define como el siguiente conjunto: EECP = {(cpspksp . k 6= m} y su cardinal es: |EECP | = (|L| − 1) × 8 × |L| Ejes intra-ciudad pre drop-off (EICD ) Es el conjunto de ejes que unen los nodos de llegada a una ciudad previa a realizar un drop-off con los nodos de partida de la misma ciudad. Definici´ on del grafo 4. cada par de nodos de llegada y partida de ciudad pre drop-off pueden estar conectados por m´ as de un eje. Se define de la siguiente manera: EECD = {(cdspksp . cplbmpb ) | cpspksp ∈ N CP P . Grafo de Rutas y su cardinal es: |EICP | = (4 × (M 0 + 1) + 3) × |L| = (4 × M 0 + 7) × |L| Ejes inter-ciudad pre pick-up (EECP ) Es el conjunto de ejes que unen los nodos de partida de una ciudad previa a realizar un pick-up con los de llegada de otra.4. se define el conjunto EICD como: EICD = [ {(cdlbklb . Al igual que con los ejes inter-ciudad pre pick-up. cdlbmpb ∈ N CDL .2. cdspksp ∈ N CDP } k∈L su cardinal es: |EICD | = (4 × M 0 + 7) × |L| Ejes inter-ciudad pre drop-off (EECD ) Es el conjunto de ejes que unen los nodos de partida de una ciudad previa a realizar un drop-off con los nodos de llegada de otra. s. cdlbmpb ) | cdspksp ∈ N CDP . cdlbklb ∈ N CDL . p). Al igual que sucede con los ejes intra-ciudad pre pick-up. k 6= m} y su cardinal es: |EECD | = (|L| − 1) × 8 × |L| 32 .

sin pasar por ninguna ciudad para hacer un intercambio en su flota.3. Se define como: EHP = {(cpspksp . d) p∈P d=diaP kp(p) Ejes drop-off a pick-up (EDP) Es el conjunto de ejes que unen los fines de drop-off con los comienzos de pick-up. Definici´on del grafo Ejes hacia ciudad pick-up (EHP ) Este conjunto contiene los ejes que unen los nodos de partida de ciudades pre pick-up con los nodos de comienzo de pick-up. d) ≤ e < min(d + 2. Se define como: EDP = {(pfpdl . max(diaDpf (p). EP D = {(pfpdc . dcpec ∈ N DC . dcpec ) | pfpdc ∈ N PF . T )} y su cardinal es: |EP D| = 2 X T −1 X min(d + 2. Debido a que en este caso el cami´on no se detiene. pcodp ) | cpspksp ∈ N CP P . Grafo de Rutas 4. cdlbklb ∈ N CDL } y su cardinal es: |EDP | = 4 × |L| × X T − diaP kp(p) p∈P Ejes pick-up a drop-off (EPD) Es el conjunto de ejes que unen los fines de pick-up con los comienzos de drop-off. Representan la situaci´ on en la que un cami´on decide realizar la descarga de la mercader´ıa inmediatamente despu´es de haberla retirado.4. Esto es as´ı pues la definici´on del problema permite un m´aximo de 12 hs consecutivas de trabajo. S´olo incluye aquellos ejes que conectan nodos en los que parten los mismos camioneros que llegan. S´olo incluye aquellos ejes que conectan nodos en los que parten los mismos camioneros que llegan. a lo sumo. al d´ıa siguiente. T ) − max(diaDpf (p). Representan la situaci´ on en la que un cami´on decide realizar un nuevo retiro de mercader´ıa 33 . el drop-off debe realizarse obligatoriamente el mismo d´ıa en que se realiz´o el pick-up o. pcodp ∈ N PC } y su cardinal es: |EHP | = 4 × |L| × X T − diaP kp(p) p∈P Ejes desde ciudad pick-up (EDP ) Este conjunto contiene los ejes que unen los nodos de fin de un pick-up con los nodos de llegada a una ciudad pre drop-off. El conjunto s´ olo incluye los ejes que conectan nodos asociados a eventos del mismo d´ıa o d´ıas consecutivos en los que parten tantos camioneros como los que llegan. cdlbklb ) | pfpdl ∈ N PF .

T )} y su cardinal es: |EDP | = 2 X T −1 X X min(d + 2. dcodp ∈ N DC } y su cardinal es: |EHD | = 4 × |L| × X T − diaDpf (p) p∈P Ejes desde ciudad drop-off (EDD ) Este conjunto contiene los ejes que unen los nodos de fin de un drop-off con los nodos de llegada a una ciudad pre pick-up. T ) − max(diaDpf (q). Es an´alogo al conjunto de ejes anterior.4. Se define como: EHD = {(cdspksp . Se define como: EDD = {(dfpdl . pcqec ) | dfpdc ∈ N DF . pcqec ∈ N PC . cplbklb ∈ N CP L } y su cardinal es: |EDD | = 4 × |L| × X p∈P 34 T − diaDpf (p) . Definici´ on del grafo 4. dcodp ) | cdspksp ∈ N CDP . Es an´alogo al conjunto de ejes hacia ciudad pick-up. q6=p Ejes realizaci´ on de pick-up (ERP ) Es el conjunto de ejes que unen los nodos de comienzo de pick-up con los correspondientes nodos de fin de pick-up. pfpdc ) |pcpdc ∈ N PC . pfpdc ∈ N PF } su cardinal es: |ERP | = 2 × X T − diaP kp(p) p∈P Ejes hacia ciudad drop-off (EHD ) Este conjunto contiene los ejes que unen los nodos de partida de ciudades predrop-off con los nodos de comienzo de drop-off. cplbklb ) | dfpdl ∈ N DF . Es an´alogo al conjunto de ejes desde ciudad pick-up. p 6= q. d) ≤ e < min(d + 2. Grafo de Rutas inmediatamente despu´es de haber descargado el u ´ltimo pedido. Se define de la siguiente manera: ERP = {(pcpdc .3. EDP = {(dfpdc . max(diaP kp(q). sin pasar por ninguna ciudad para hacer un intercambio en su flota. d) p∈P d=diaP kp(p) q∈P.

Se define de la siguiente manera: ERD = {(dcpdc .3. q ∈ M } y su cardinal es: |ES| = 2 × |LCI| × K × T Ejes sink (ET) Este conjunto contiene los ejes que llegan al nodo sink. Entre el nodo source y cada nodo de partida de ciudad existen tantos ejes como momentos en el horizonte de planificaci´on. Recordemos que LCI representa el conjunto de ciudades en las cuales hay alg´ un cami´on en el momento inicial. Grafo de Rutas 4. cpspkcc )q | k ∈ LCI. dfpdc ∈ N DF } su cardinal es: |ERD | = 2 × X T − diaDpf (p) p∈P Ejes source (ES) Este conjunto contiene los ejes que parten del nodo source. ES = {(s. S´olo se puede alcanzar el nodo t desde la llegada a una ciudad pre pick-up en donde desciendan todos los camioneros que llegan. cpspkcc ∈ N CP P . Conectan el nodo s con los nodos de partida de ciudades pre pick-up que sean ubicaci´on inicial de alg´ un cami´on y en las que asciendan los mismos camioneros que parten. Cada uno de estos ejes tiene la duraci´on de un momento espec´ıfico en el horizonte. es necesario que desciendan todos sus camioneros. Definici´on del grafo Ejes realizaci´ on de drop-off (ERD ) Es el conjunto de ejes que unen los nodos de comienzo de drop-off con los correspondientes nodos de fin de drop-off. t) | cplbkll ∈ N CP L } y su cardinal es: |ET | = 2 × |L| 35 .4. Se define de la siguiente manera: ET = {(cplbkll . Esto es as´ı pues para que el cami´on termine su recorrido. lo que permite que una ruta comience en cualquier instante de tiempo. dfpdc ) | dcpdc ∈ N DC .

Definici´ on 4. Definici´ on del grafo 4.4. por lo cual es necesario sumarle d × N para calcular el momento en el cual comienza la ventana de un d´ıa d en t´erminos absolutos. t2 ] | t1 . Funciones asociadas a recursos y restricciones A continuaci´ on se definen las funciones asociadas a los recursos y restricciones del grafo de rutas.3. d) +2 × |LCI| × K × T 4. 0 ≤ t1 < t2 < K × T } ( [d × K + vcp(p). Grafo de Rutas Cardinal del conjunto de ejes El cardinal del conjunto de ejes es el siguiente: |E| = 2 × |L| × (4 × M 0 + 8 × |L|) P +(2 × p∈P T − diaP kp(p)) × (4 × |L| + 1) P +(2 × p∈P T − diaDpf (p)) × (4 × |L| + 1) P PT −1 +2 p∈P d=diaP kp(p) min(d + 2.4 (Funci´ on ventana de tiempo para realizaci´ on de evento) La funci´ on ventana de tiempo para realizaci´on de evento se define sobre los nodos de comienzo de pick-up y drop-off. q6=p min(d + 2. Devuelve el intervalo de tiempo en que se puede visitar un determinado nodo de comienzo de evento. Estas funciones nos permir´an definir la noci´on de validez de un camino. d) P PT −1 P +2 p∈P d=diaDpf (p) q∈P. es decir. Definici´ on 4. d × K + vf d(p)] si ecpdc ∈ N DC vcp representa el momento del comienzo de una ventana relativo a un d´ıa. K/24 momentos. ν : N Pc ∪ N Dc → {[t1 . T ) − max(diaDpf (q).5 (Funci´ on tiempo) La funci´ on tiempo se define sobre el conjunto de ejes E y devuelve el tiempo que toma 36 . t2 ∈ M.3. d × K + vf p(p)] si ecpdc ∈ N PC ν(ecpdc ) = [d × K + vcd(p).3 (Funci´ on pick-up realizado) La funci´ on pick-up realizado se define sobre los nodos de fin de pick-up y devuelve el pedido correspondiente a dicho pick-up. T ) − max(diaDpf (p). ρ : N PF → P ρ(pfpdc ) = p Definici´ on 4. y que la carga y descarga de mercader´ıa toma una hora.3. Recordemos que K representa la cantidad de momentos en los que se divide un d´ıa.

la penalidad asociada a realizar un drop-off en alg´ un d´ıa posterior al primer d´ıa habilitado. Un camino en GR se representa como una secuencia de ejes de la siguiente manera: C = [(n1 .2). representa el tiempo que toma la transici´ on entre aquellos nodos que pueden tener m´ ultiples ejes entre s´ı (ver definici´ on 4. cdlbklb ) ∈ EDP e = (ecpdc .6 (Funci´ on costo) La funci´ on costo se define sobre el conjunto de ejes E y devuelve el costo que insume transitar un determinado eje del grafo de rutas. cplbklb ) ∈ EDD si e = (cdspksp . ciudadP kp(q)) (α + β) × tiempo(ciudadDpf (p). dcpec ) ∈ EP D si e = (cdspksp . pcodp ) ∈ EHP si e = (dfpdc . n2 ). (nm−1 . nm )] 37 . ciudadP kp(o)) q 0 si si si si si si si si si si si e = (celklb . cplbmpb ) ∈ EECP si e = (cpspksp . m) (α + β) × tiempo(k. . cdlbklb ) ∈ EDP si e = (pfpdc . ciudadP kp(p)) (α + β) × tiempo(ciudadDpf (p). k) K/24 tiempo(k. cepksp )q ∈ EICP ∪ EICD e = (cepksp . . Rutas transitar un determinado eje del grafo de rutas. k) β × tiempo(ciudadP kp(p). Grafo de Rutas 4. Para esto utilizaremos el concepto de camino v´alido en GR. como sub´ındice de un eje. Definici´ on 4. celmpb ) ∈ EECP ∪ EECD e = (cpspksp . τ : E → N0 τ (e) =                                      q tiempo(k. Los ejes pueden tener tres tipos de costos: el costo del viaje. . 4. k) tiempo(ciudadP kp(p). (n2 . t) ∈ ET Donde q. El segundo est´a incluido en aquellos ejes que representan la realizaci´ on de un drop-off. El u ´ltimo tipo de costo est´a incluido en los ejes que representen viajes entre ciudades donde el cami´on no lleva mercader´ıa. cplbksp ) ∈ EDD e = (pfpdc . σ : E → N0 σ(e) =                                (d − diaDpf (p)) × penalidad(p) (α + β) × tiempo(k. Rutas Una vez definido formalmente el grafo de rutas GR estamos en condiciones de definir el concepto de ruta. m) tiempo(k. dcpec ) ∈ EP D e = (dfpdc . pcoec ) ∈ EDP e = (s. cpspkcc )q ∈ ES e = (cplbkll . cdlbmpb ) ∈ EECD si e = (pfpdl . . n3 ). m) β × tiempo(ciudadP kp(p). ciudadDpf (p)) 0 si e = (dcpdc . pcodp ) ∈ EHP e = (pfpdc . dcodp ) ∈ EHD en otro caso Donde α indica el costo de que un cami´ on circule sin mercader´ıa y β indica el costo de viaje por unidad de tiempo. El primero est´a incluido sobre todos los ejes que representan un viaje entre dos ciudades. pcqec ) ∈ EDP si e = (dfpdl . ciudadP kp(p)) tiempo(ciudadP kp(p). k) β × tiempo(k. y la penalidad correspondiente a viajar con el cami´ on sin mercader´ıa.4. dcodp ) ∈ EHD e = (dfodc .4. efpdc ) ∈ ERP ∪ ERD e = (cdspksp . dfpdc ) ∈ ERD si e = (cpspksp . ciudadDpf (p)) tiempo(ciudadDpf (p).4. ciudadDpf (p)) β × tiempo(k. ciudadDpf (p)) tiempo(ciudadDpf (p).

Es importante notar que la funci´on de tiempo acumulado de un camino no se define simplemente como la suma de los tiempos de sus ejes. t2 ] • Respeta la secuencia de pick-ups y drop-offs Para cada nodo de comienzo de drop-off. ec) ∈ EHP ∪ EHD ∪ EP D ∪ EDP. n))    max(T (C) + τ ((n. si C[i] = (n. se debe verificar que el tiempo acumulado desde el comienzo del camino hasta dicho nodo no supere la cota superior de la ventana de tiempo del nodo. . Definici´ on 4. i])) 38 . i]) ≤ t2 .8 (Funci´ on pick-ups realizados) La funci´ on de pick-ups realizados toma un camino y devuelve la secuencia de pedidos cuyos pick-ups fueron realizados por el camino.1. Rutas 4. Esto es as´ı pues es necesario tener en cuenta los tiempos de espera que pueden producirse en los nodos que tienen una ventana de tiempo (nodos de comienzo de evento). Un camino C es v´ alido si comienza en el nodo s.4. finaliza en el nodo t y cumple las siguientes propiedades: • Respeta todas las ventanas de tiempo de sus nodos Para cada nodo de comienzo de pick-up o de drop-off en el camino. ef ) = (pcpdc . . . el u ´ltimo pick-up realizado corresponde al mismo pedido y no a otro. Notar que el caso base est´ a definido en base al camino con un solo eje perteneciente al conjunto ES dado que todos los caminos en GR deben comenzar en el nodo source. siendo [t1 . n)]) = [ ]  P (C) ⊕ p si (ec. t2 ] = ν(ec) T (C ⊕ (n. ∀ i tal que 1 ≤ i ≤ |C|. si C[i] = (n. n)]) = τ ((s. ef )) = P (C) si no 4. Esto impide que se realice un evento fuera de la ventana de tiempo correspondiente. ec)) si no Donde ⊕ representa el operador que agrega un eje al final de un camino. Grafo de Rutas Para formalizar la idea de camino v´alido precisamos definir las funciones de tiempo acumulado de un camino y pick-ups realizados por un camino. Camino v´ alido Representaremos el concepto de ruta como un camino v´ alido en el grafo de rutas. t1 ) si (n. Se define recursivamente como: P ([(s. . . . dcpdc ) ∈ EHD ∪ EP D ⇒ p = ultimo(P (C[1.7 (Funci´ on tiempo acumulado) La funci´ on de tiempo acumulado toma un camino y devuelve el tiempo que acumula el mismo.4. ec) ∈ EHP ∪ EHD ∪ EP D ∪ EDP ⇒ t1 ≤ T (C[1. pfpdc ) ∈ ERP P (C ⊕ (ec. Definici´ on 4. ∀ i tal que 1 ≤ i ≤ |C|. . Se define recursivamente como: T ([(s. siendo ν(ec) = [t1 .4. ec)) =   T (C) + τ ((n. . ec)).

2.9 (Costo de un camino v´ alido) Se define la funci´ on de costo de un camino v´alido como la suma de los costos de los ejes que lo conforman. A continuaci´on definimos algunas funciones que nos permiten obtener esta informaci´on de una ruta. • camDesc : R × L × M → {0.4. ∀ i tal que 1 ≤ i ≤ |C|. i])) • El tiempo acumulado por el camino no supera el horizonte de tiempo T (C) < K × T Definici´ on 4. • cr : R → R Toma una ruta r y devuelve su costo. • camAsc : R × L × M → {0. una ciudad c y un momento m. 2} Toma una ruta r. Grafo de Rutas 4. y devuelve la cantidad de camioneros que descienden del cami´on en c en el instante m. 2} Toma una ruta r. 1. Informaci´ on de una ruta Una ruta debe brindar la informaci´on de los pedidos que realiza y de cu´ando y en qu´e ciudad se detiene para que asciendan y desciendan camioneros. una ciudad c y un momento m. . . X Σ(C) = σ(e) e∈C 4.4. si C[i] = (n. • No realiza el pick-up de un pedido que ya realiz´ o previamente Para cada nodo de comienzo de pick-up se debe verificar que el pedido correspondiente al nodo no haya sido realizado en el camino. Rutas Donde ultimo devuelve el u ´ltimo pedido en la secuencia de pedidos realizados por el camino. • momDpf : R × P → M Toma una ruta r y un pedido p realizado por r y devuelve el momento en que se lleva a cabo el drop-off de p.4. 1. 39 . • momP kp : R × P → M Toma una ruta r y un pedido p realizado por r y devuelve el momento en que se lleva a cabo el pick-up de p. y devuelve la cantidad de camioneros que ascienden al cami´on en c en el instante m. Este costo corresponde al costo Σ del camino v´alido que representa la ruta. . • pedidos : R → P(P ) Toma una ruta r y devuelve el conjunto de pedidos que son satisfechos por r. . pcpdc ) ∈ EHP ∪ EDP ⇒ p∈ / P (C[1.

0. 2]. 0.. 5. [0. Wdki .. 0) | {z } | {z } | {z } | {z } 8 donde: 40 9 10 11 7 .. 0.. 1. . Por esto decidimos utilizar la t´ecnica de generaci´on de columnas para generar las columnas asociadas a las variables yr . Una columna Ayr es un vector que contiene ceros. [0.. 0. 1. pero precisamos de un algoritmo que nos permita obtener rutas tales que sus columnas asociadas. por ende. Dicha formulaci´on incluye una variable yr por cada posible ruta incluida en el conjunto R. unos o dos seg´ un el coeficiente que acompa˜ ne a la variable yr en la correspondiente restricci´on... 0. 2]. . 1. . ... En las siguientes secciones presentaremos la descripci´on del algoritmo que utilizamos para generar las rutas y c´ omo la informaci´on de estas rutas se transformar´a en columnas de la matriz de restricciones A. | {z } | {z } | {z } | {z } | {z } | {z } 1 2 4 3 5 6 [0. contribuyan a disminuir el valor de la funci´on objetivo de la relajaci´on del problema maestro.. [0.. 0.. 0... Como consecuencia.. [0.. . correspondiente a la ruta yr .. 2]. Zdj y yr . [0. 0. El vector columna Ayr . 1]. Recordemos que una ruta representa una secuencia de eventos llevados a cabo por un cami´ on en el transcurso del tiempo y contiene la informaci´on del momento en el que se produce cada evento... Es importante aclarar que el proceso de generaci´on de columnas se realiza u ´nicamente para la resoluci´ on de la relajaci´on del nodo ra´ız del esquema Branch and Cut. la cantidad de rutas posibles es muy grande. 1]. 0.. de ser incluidas en la base... 1].Cap´ıtulo 5 Generaci´ on de columnas En el cap´ıtulo 3 introdujimos la formulaci´on del modelo de programaci´on lineal entera para resolver el VCSPDPTW.. Son estas u ´ltimas variables binarias las que indican qu´e rutas est´ an incluidas en la soluci´on y.. . tiene la siguiente forma: Atyr = ([0.... Generaci´ on de columnas La matriz de restricciones A est´ a compuesta por columnas asociadas a las variables de la formulaci´ on del modelo: Xdki . ser´a necesario generar las columnas Ayr asociadas a dichas variables. El grafo de rutas presentado en el cap´ıtulo anterior nos brinda la estructura para generar rutas. |{z} 1 . lo cual en t´erminos pr´acticos hace imposible generar la matriz A completa. [0. . 1.. . 0. 0. .. Para generar cada una de estas columnas es necesario construir previamente la ruta que la variable representa. 2]. Ydki .1. 1]. ..

5. Se corresponden con las restricciones de tipo 6 del modelo.1) donde cr es el costo de la ruta r e y ∗ es el vector con los valores de las variables duales (asociadas a las restricciones del problema) de la u ´ltima iteraci´on del m´etodo Simplex. la ruta correspondiente al camino verificar´ıa la condici´on (5. 2.1. de ser inclu´ıda en el problema. La columna que representa a la ruta debe ser generada de tal manera de garantizar que su inclusi´ on en la base mejore la funci´on objetivo. Si este costo resultara ser positivo. de las que tienen al menos un cami´on en el instante inicial. Se corresponden con las restricciones de tipo 5 del modelo. Se corresponden con restricciones de tipo 3 del modelo. |LCI| filas que indican en qu´e ciudad. Generaci´ on de columnas 5. se busca generar una ruta Ayr que verifique lo siguiente: cr − y ∗ Ayr < 0 (5. Una forma de encarar la resoluci´on de este problema consiste en buscar el camino de costo m´ınimo en el grafo de rutas. Generaci´on de columnas 1. donde la fila i indica si la ruta realiza (1) o no (0) el pedido n´ umero i. 7. |D| × |L| × K × (T − 1) filas que indican la relaci´on entre ascensos y descensos de camioneros. |L| × K × (T − 1) filas que contienen un 0. 6.1) necesaria para ingresar a la base. sabr´ıamos que no existe ninguna ruta que.5. por lo que las rutas no influyen en estas filas. |D| filas que establecen las condiciones iniciales sobre los camioneros por lo que las rutas no influyen en estas filas. mejorar´ıa el valor de la funci´on objetivo (i. Indica que la ruta es llevada a cabo por un cami´on. Para poder generar rutas candidatas a ingresar a la base es necesario que la eficiencia de un camino v´ alido pueda medirse en t´erminos de la informaci´on que nos brinda Simplex luego de resolver cada relajaci´on.1). Estas filas corresponden a las restricciones de tipo 9. Tampoco son afectadas por las rutas.e. Si en cambio. Si el costo de un camino v´alido en el grafo de rutas resultara ser exactamente cr − y ∗ Ayr y dicho costo fuera negativo. un camino v´alido en el grafo de rutas representa una ruta. |D|×K ×(T −1) filas que establecen que los camioneros no pueden estar descansando y trabajando al mismo tiempo. no existe columna Ayr tal que verifica la condici´on 5. 10 y 11. Siguiendo la notaci´on del m´etodo Simplex Revisado y dado que se trata de un problema de minimizaci´on. 8. 4. 3. |L| × K × T filas que contienen un 0. 1 ´o 2 seg´ un cu´antos camioneros descienden de un cami´ on (son dejados por la ruta) en una ciudad y un momento determinados. 10 y 11 del modelo y establecen las condiciones de descanso de los camioneros. Se corresponden con las restricciones de tipo 8 del modelo. 1 ´o 2 seg´ un cu´antos camioneros ascienden a un cami´ on (son requeridos por la ruta) en una ciudad y momento determinado. el 41 . 9. Como mencionamos en el cap´ıtulo anterior. Se corresponden con las restricciones tipo 1 del modelo. Siempre est´a en 1 y se corresponde con la restricci´ on tipo 2 del modelo. comienza la ruta. De esta manera el problema de generar una ruta que sea candidata a ingresar a la base se transforma en el problema de encontrar caminos v´alidos de costo negativo en el grafo de rutas. |P | filas. Se corresponden a las restricciones de tipo 4 del modelo. No son afectadas por las rutas. Se corresponden con las restricciones de tipo 7 en el modelo.

el conjunto 42 . Para resolverlo desarrollamos un algoritmo similar al propuesto por Dijkstra para el SPP pero que considera las propiedades que deben cumplir los caminos en relaci´on a los recursos. El costo de un camino v´ alido est´a dado por la suma del costo de los ejes que lo componen.1. LCI el conjunto de ciudades con al menos un cami´ on en el instante inicial y M el conjunto de momentos. • cdf ComRuta : Rn × LCI → R. Sin embargo. Con los conceptos de costos duales fijos y variables ya introducidos. Para definir el costo real de un eje fue necesario introducir el concepto de costo dual fijo y costo dual variable. Se definen entonces las siguientes funciones donde n representa el n´ umero de restricciones del problema.1. P el conjunto de pedidos. podemos definir lo que denominaremos el costo real de un eje. una ciudad k y un momento m. tendr´ıamos la garant´ıa de que la columna resultante es candidata a ingresar a la base en la siguiente relajaci´on. Devuelve el costo dual variable asociado a que asciendan camioneros en la ciudad k y en el momento m.5.1. Toma el vector de valores duales y ∗ . cada eje tiene un costo diferente dependiendo de la acci´ on que el mismo represente. una ciudad k y un momento m. El segundo hace referencia a los costos que var´ıan seg´ un el tiempo en que sus acciones asociadas se realizan: los ascensos y descensos de los camioneros. Toma el vector de valores duales y ∗ junto con un pedido p. Toma el vector de valores duales y ∗ junto con una ciudad k. Generaci´on de columnas costo del camino fuese negativo. Introducci´ on de los valores de las variables duales en el grafo de rutas Para que el costo de un camino v´alido en el grafo de rutas sea cr − y ∗ Ayr debemos introducir en el grafo los valores de las variables duales correspondientes a la relajaci´on resuelta mediante Simplex. El primero hace referencia a los costos de acciones que no var´ıan seg´ un el tiempo en que se realizan: comenzar una ruta en una ciudad determinada o realizar un pedido. 5. Devuelve el costo dual fijo asociado a que una ruta comience en la ciudad k. estos algoritmos no son aplicables al problema de encontrar un camino de costo m´ınimo en el grafo de rutas.1 (Funci´ on costo real) La funci´ on de costo real se define sobre el conjunto de ejes E del grafo de rutas. un camino v´alido debe cumplir ciertas propiedades asociadas a los recursos del grafo. A su vez. • cdvAscCam : Rn × L × M → R. Generaci´ on de columnas 5. Esto transforma al SPP sobre el grafo de rutas en el problema de camino m´ınimo con restricciones sobre recursos (SPPRC). El Shortest Path Problem (SPP) o problema de camino m´ınimo en un grafo puede resolverse en tiempo polinomial utilizando algoritmos conocidos. • cdvDescCam : Rn × L × M → R. Devuelve el costo dual variable asociado a que desciendan camioneros en la ciudad k y en el momento m. L el conjunto de ciudades. Toma el vector de valores duales y ∗ . Definici´ on 5. • cdf P edido : Rn × P → R. En el grafo de rutas. Devuelve el costo dual fijo asociado a que una ruta realice el pedido p.

1. Generaci´ on de columnas 5. X Σ∗ (C) = σ ∗ (e) e∈C 5.2. m. Estos ejes representan la realizaci´ on de un pedido por parte de la ruta y su costo va a depender del costo dual fijo de realizar el correspondiente pedido. clhlb ) ∈ EECP ∪ EECD si e = (fpdl . k)+      c × cdvAscCam(y. y los ejes que representan esta acci´on en el grafo son los de intra-ciudad. por lo que su costo va a estar dado por la resta entre el costo original del eje y los costos duales asociados a comenzar la ruta en la correspondiente ciudad y a los camioneros que ascienden al cami´on.5. k. se define la funci´ on de costo real acumulado como la suma de los costos reales de los ejes que lo conforman. tanto desde nodos de partida de ciudad como de fin de evento. k. cppkcc ) ∈ ES si e = (dcpdc . Estos ejes representan los comienzos de las rutas en las diferentes ciudades. k. Su costo est´a dado por la resta entre el costo original del eje y el costo dual variable del ascenso de camioneros en la partida de la ciudad. El segundo caso trata sobre los ejes de realizaci´on de drop-off. h. o sea. Definici´ on 5. m + τ (e))     σ(e) si e = (s. Nemhauser y Savelsbergh en [ENS08]. m + τ (e))      σ(e) − b × cdvDescCam(y. cpksp ) ∈ EICP ∪ EICD si e = (cpksp . Es por esto que dependen del costo dual variable de descenso de camioneros.1. clklb ) ∈ EDP ∪ EDD en otro caso Donde: • e es un eje del grafo de rutas • m es el momento en que se comienza a transitar el eje • y es el vector de valores duales • σ es la funci´ on original de costo para un eje • τ es la funci´ on de tiempo para un eje El primer caso trata sobre los ejes que salen del nodo source. y) = σ(e) − s × cdvAscCam(y. dfpdc ) ∈ ERD si e = (clklb . Se trata de un algoritmo basado en la t´ecnica de programaci´on 43 .2 (Funci´ on costo real acumulado) Dado un camino C en el grafo de rutas. Es importante notar que el ascenso de camioneros se produce en el fin de la transici´on del eje. Es por esto que se toma el momento de la partida (momento en que se comienza a transitar el eje sumado al tiempo que toma la transici´on) para determinar el costo del ascenso. m))      σ(e) − cdf P edido(y. Algoritmo para el RCSPP El algoritmo que desarrollamos est´a basado en el presentado por Faramroze. El tercer caso contempla las partidas de las ciudades. m + τ (e))    σ(e) − b × cdvDescCam(y. Los casos cuatro y cinco son an´ alogos al tercero excepto que tratan sobre las llegadas a las ciudades. p) ∗ σ (e. Generaci´on de columnas de momentos M y el vector de valores duales. en el nodo de partida de ciudad. Se define como la siguiente funci´ on partida: σ ∗ : E × M × Rn → R   σ(e) − (cdf ComRuta(y.

Pseudoc´ odigo A continuaci´ on se presenta el pseudoc´odigo del algoritmo para resolver el RCSPP sobre el grafo de rutas. de extensiones de cada uno de ellos.1 del cap´ıtulo anterior. Esto se traduce en que el algoritmo debe analizar un n´ umero muy grande. por lo que cada secuencia de acciones que pueda continuar realizando el camino C2 tambi´en podr´a ser realizada por C1 . La noci´on de validez de un camino en el grafo de rutas ya fue presentada en la secci´on 4. En esto radica la complejidad del problema de buscar un camino m´ınimo dominante de mejor costo: en todo momento la cantidad de caminos no dominados por ning´ un otro puede ser muy grande. Definici´ on 5. Adem´as. el camino C1 tiene un costo menor al de C2 . por lo que gran parte de los caminos del grafo de rutas no van a dominar ni ser dominados por otros y. como es el grafo de rutas.4. por lo que asumiremos que los caminos con los que tratamos ahora son v´alidos seg´ un esta definici´on. que obtiene el camino v´alido de costo m´ınimo en el grafo de rutas. en consecuencia. en un grafo con recursos y restricciones. Recordemos que E es el conjunto de ejes del grafo de rutas y ES el conjunto de ejes que parten del nodo source. Generaci´ on de columnas 5. C1 domina a C2 (C1 4 C2 ) sii se cumplen las siguientes condiciones: • C1 y C2 finalizan en el mismo nodo • El costo real de C1 es menor o igual al de C2 : Σ∗ (C1 ) ≤ Σ∗ (C2 ) • El tiempo de C1 es igual al de C2 : T (C1 ) = T (C2 ) • Si ambos caminos tienen pendiente el drop-off del u ´ltimo pedido:  ultimo(P (C1 )) = ultimo(P (C2 )) Si no  Tanto C1 como C2 no deben tener pendiente el drop-off del u ´ltimo pedido realizado • Los pedidos realizados por C1 est´ an incluidos en los de C2 : P (C1 ) ⊆ P (C2 ) Estas condiciones garantizan que cada extensi´on v´alida de un camino C2 tambi´en resulte una extensi´ on v´ alida de C1 . La relaci´ on de dominancia sirve para que el algoritmo descarte un camino C2 si es que existe otro camino C1 tal que C1 4 C2 . Generaci´on de columnas din´amica que resuelve el RCSPP en forma exacta. Para comprender la descripci´ on del algoritmo es preciso que establezcamos primero cu´ando consideramos que un camino es mejor que otro. 44 . posiblemente exponencial. en el cual la relaci´ on de dominancia est´a dada por el costo de los caminos. por lo que se puede afirmar que C1 es un mejor camino que C2 en cuanto a su costo real acumulado. la relaci´on de dominancia resulta m´ as compleja. no podr´an ser descartados. A diferencia de un algoritmo de camino m´ınimo com´ un y ordinario. La dominancia es una relaci´ on definida entre caminos y sirve para determinar si un camino es mejor que otro.5.3 (Relaci´ on de dominancia) Sean C1 y C2 dos caminos en el grafo de rutas GR.1. Por supuesto que esta relaci´on no es de orden total. es decir.

Esto se debe principalmente a 45 . que contiene los caminos triviales conformados por los ejes que salen del nodo source. El algoritmo devuelve el camino no dominado con costo m´ınimo entre aquellos que finalizan en el nodo sink.5. las extensiones que conservan la propiedad de validez del camino. el algoritmo verifica si en el conjunto de caminos no dominados existe alg´ un camino que la domine. eliminar los caminos a los que ´el domina 10: Eliminar C 0 ∈ CAP ∪ CN D tal que [C. en muchos casos el algoritmo demora mucho tiempo en terminar. Si es as´ı. e] no es dominado. De esta manera. 5. ya se cuenta con un mejor camino que finaliza en el mismo nodo que dicha extensi´on. es decir. un camino de costo negativo. Variantes para la generaci´ on de rutas Si bien el algoritmo propuesto genera. y por otro lado.3. e] then 9: // Si [C.1. Si una extensi´on de C no resulta factible. Es importante aclarar que aqu´ı s´ olo se tienen en cuenta aquellas extensiones factibles. En caso contrario. elimina todos aquellos caminos que son dominados por la extensi´ on de C y la agrega al conjunto de caminos a procesar para que contin´ ue extendi´endose. Para cada extensi´ on factible de C. muchas veces la columna asociada a la ruta generada no forma parte de una soluci´on factible entera. en caso de que exista. e]} 13: end if 14: end for 15: // Agregar el camino procesado a los caminos no dominados 16: CN D ← CN D ∪ {C} 17: end while 18: return C ∗ = arg min {costo(C) : C ∈ CN D y finaliza en el sink } El algoritmo comienza inicializando un conjunto de caminos a procesar. El principal motivo por el cual el algoritmo demora mucho en obtener el resultado es la gran cantidad de caminos que deben ser analizados. El ciclo principal se repite hasta que ya no existan caminos que puedan ser procesados. por lo que no vale la pena seguir explor´ andola. Generaci´on de columnas Algoritmo 4 RCSPP para el grafo de rutas Input: GR grafo de rutas Output: C ∗ el camino m´ınimo en GR 1: // Inicializar el conjunto de caminos a procesar con los ejes salientes del source 2: CAP ← ES 3: // Inicializar el conjunto de caminos no dominados como vac´ıo 4: CN D ← ∅ 5: while CAP 6= ∅ do 6: Elegir camino C ∈ CAP y eliminarlo de CAP 7: for all eje e ∈ E que extienda en forma factible a C do 8: if 6 ∃ C 0 ∈ CAP ∪ CN D tal que C 0 4 [C. Generaci´ on de columnas 5. y un conjunto vac´ıo de caminos no dominados. e] 4 C 0 11: // Agregar el camino extendido a los caminos a procesar 12: CAP ← CAP ∪ {[C.1. Luego selecciona un camino C del conjunto de caminos a procesar y lo extiende con cada eje saliente del u ´ltimo nodo de C. el algoritmo va construyendo extensiones factibles de caminos que parten del nodo source. Por un lado. en la pr´ actica presenta dos tipos de problemas. descartando aquellos caminos que resultan in´ utiles. es descartada en este momento.

reduciendo de esta forma el espacio de rutas a generar. que para muchos pares de caminos C1 y C2 . La modificaci´ on concerniente con aumentar la cantidad de soluciones factibles. Para aumentar la cantidad de soluciones factibles enteras que incluyan rutas generadas por el algoritmo de camino m´ınimo implementamos otras dos modificaciones. La primera consiste en limitar la cantidad de rutas a analizar. el grafo de rutas generado a partir del mapa de ciudades y el conjunto de pedidos cuenta con una gran cantidad de nodos y ejes. Con respecto a las ciudades visitadas entre eventos. La primera consiste en limitar la cantidad de ciudades por las que un cami´on puede pasar entre dos eventos. 3 pedidos y un horizonte de planificaci´on de 2 d´ıas. Esto se debe a que. a pesar de que el algoritmo descarta aquellos caminos que son dominados.4. Esta u ´ltima variante pretende contribuir a la satisfacibilidad de la ruta de costo ´optimo mejorando la disponibilidad de camioneros en los lugares y momentos en que ´esta los precise. para cada ruta de costo m´ınimo. ya que requiere varias definiciones y una descripci´on m´as extensa que el resto de las modificaciones implementadas. el tama˜ no del grafo es de casi 100 nodos y m´ as de 1000 ejes. Es importante aclarar que. y al tiempo que el cami´on permanece detenido en una ciudad. por como definimos la relaci´on de dominancia. en consecuencia. La primera consiste en agregar a la matriz A m´ as de una columna por iteraci´on. Estas restricciones est´an asociadas a las ciudades visitadas entre cualquier par de eventos consecutivos. consideramos dos restricciones. a la que llamaremos generaci´ on de rutas complementarias. agregamos restricciones sobre los caminos. no puede afirmarse que C1 domine a C2 ni que C2 domine a C1 . si la cantidad de ciudades a visitar se restringe a dos. es decir. La segunda modificaci´ on consiste en generar. de forma que la ruta de costo m´ınimo cuente con camioneros disponibles en las ciudades y en los momentos en los que los requiere.1. 5. se detallar´a en la pr´oxima secci´on.1. De hecho. Generaci´on de columnas dos factores: por un lado. si bien al imponer estas restricciones se limita la cantidad de rutas a analizar y se reduce el tiempo de ejecuci´on del algoritmo. Generaci´ on de columnas 5. tambi´en se reduce la cantidad de soluciones factibles. volvemos a aplicar el algoritmo utilizando la definici´on original de dominancia. existen muchos caminos v´alidos entre el nodo source y el sink que deber´ıan ser considerados por el algoritmo. generando s´olo el subconjunto de las rutas que verifique determinadas restricciones. de forma que el m´etodo Simplex cuente con m´ as columnas al momento de seleccionar una candidata a ingresar a la base. De esta forma buscamos aumentar la cantidad de caminos dominados. para un problema de 3 ciudades. Restricciones sobre rutas La primer modificaci´ on que implementamos consiste en reducir la cantidad de rutas que el algoritmo debe considerar. un conjunto de rutas que la complemente. un 46 . En consecuencia. En los casos en los que el camino ´optimo resultante no tiene costo negativo. acelera su tiempo de ejecuci´ on. ya que eso disminuye el espacio de caminos a analizar por el algoritmo y.5. son muchos los caminos que no son dominados por ning´ un otro y no pueden ser descartados ya que son potenciales caminos ´ optimos. La segunda modificaci´ on consiste en redefinir la relaci´on de dominancia haci´endola menos estricta. A continuaci´ on detallamos las modificaciones implementadas para reducir el tiempo de ejecuci´on. Con el objetivo de reducir el tiempo que toma encontrar el camino de costo m´ınimo en el grafo implementamos dos modificaciones en el algoritmo. muchos pares de caminos no son comparables entre s´ı. Por otro lado. Para ello. Por ejemplo.

1. Esto restringe la optimalidad del problema de acuerdo a su definici´ on original. entonces la relaci´ on de dominancia relajada es igual a la relaci´ on de dominancia original. ambos deben haber consumido el mismo tiempo.3) reemplazando la condici´ on con respecto al tiempo de los caminos por la siguiente: 0 ≤ T (C2 ) − T (C1 ) ≤ c Notar que si c = 0. Dicho de otra manera. Generaci´on de columnas camino que recorre tres ciudades entre el pick-up de un pedido y el drop-off del mismo no ser´a considerado como un camino v´ alido. no es necesario que ambos caminos consuman la misma cantidad de tiempo. se define la relaci´on de dominancia relajada 4∗c para la cota c de la misma forma que la definici´ on original (definici´ on 5. Adem´ as. y por ese motivo ser´ıa conveniente contar con una definici´on de dominancia menos estricta. La segunda restricci´on asociada a las ciudades visitadas entre eventos consiste en impedir que un cami´ on pase por una misma ciudad m´as de una vez entre dos eventos consecutivos. 47 .5. Definici´ on 5. El otro tipo de restricci´ on tiene en cuenta el tiempo que el cami´on asociado a la ruta pasa detenido en una ciudad. Esto se debe a que el costo real de un camino es funci´on no s´olo de los ejes que lo componen. Recordemos que s´olo aquellos caminos dominados por otros pueden ser descartados por el algoritmo de camino m´ınimo. Relajaci´ on de la relaci´ on de dominancia Como mencionamos en la definici´on 5. Seg´ un esta nueva definici´on. sino tambi´en del momento en que dichos ejes son transitados (ver definici´on 5. En la nueva definici´on de dominancia relajada se conserva la primera de estas propiedades pero no la segunda. Esta restricci´on hace que la cantidad de caminos no comparables entre s´ı sea muy grande.1.5. Con este objetivo definimos una nueva relaci´on de dominancia modificando la condici´on respecto al tiempo de la definici´ on original. el cami´ on puede seguir su recorrido con otra tripulaci´on a bordo. en cada nodo del camino. el porcentaje de tiempo que el cami´on estuvo detenido en alguna ciudad no supere cierto l´ımite. si un conductor lleg´ o al l´ımite de las horas permitidas de trabajo y necesita descansar. o si realizara el pick-up de un mismo pedido m´as de una vez.3. dado que C1 tiene menor costo. para que un camino C1 domine a otro camino C2 . Generaci´ on de columnas 5. Dado que cada cami´on no est´a asociado a un u ´nico camionero. por lo que podr´ıa ocurrir que ciertas rutas que pod´ıan llegar a ser ´ optimas ya no sean consideradas v´alidas. cualquier extensi´on de C1 tiene menor costo que la misma extensi´ on aplicada sobre C2 . Esto permite que los camiones est´en en actividad muchas horas consecutivas.1). cualquier extensi´ on v´alida de C2 resulta tambi´en una extensi´on v´alida de C1 . y que de esa manera sean utilizados para llevar a cabo la mayor cantidad posible de pedidos. Recordemos que la definici´ on de dominancia garantizaba que si un camino C1 domina a otro camino C2 . Es decir. Es importante aclarar que las restricciones sobre la generaci´on de rutas reducen el espacio de b´ usqueda del algoritmo. para que un camino C1 domine a otro C2 . sino que basta con que la diferencia entre el tiempo consumido por C2 y el tiempo consumido por C1 sea menor que cierta cota. Agregamos entonces la restricci´on de que. se fuerza a que la secuencia de ciudades visitadas entre eventos no contenga ciudades repetidas. 5. el algoritmo lo descartar´a.4 (Relaci´ on de dominancia relajada) Sea c ∈ N0 una cota. de la misma forma que descartar´ıa al camino si el tiempo consumido por el mismo fuera mayor que el establecido por el horizonte de planificaci´on.

Llamamos rutas potencialmente beneficiosas a todas estas rutas de costo negativo.6. A pesar de que el costo de C1 es menor o igual al costo de C2 .2. seg´ un la nueva definici´on. En caso contrario. y dicho requerimiento podr´ıa estar satisfecho en la relajaci´on pero no as´ı en el problema restringido a que las variables sean enteras. 5. ya que este par´ametro regula.2. el algoritmo modificado deja de ser un algoritmo exacto y se transforma en una heur´ıstica.2 busca las mejores rutas en t´erminos de su costo reducido. En los casos en los cuales el algoritmo heur´ıstico nos devuelva un camino de costo negativo. C1 finalizara con costo real positivo. no puedan ser parte de la soluci´ on entera. ya no podemos garantizar que si el camino v´alido obtenido tiene costo positivo no existan caminos v´alidos de costo negativo. podremos utilizar la ruta generada aunque no tengamos la certeza que es la de costo menor. pero consideramos que una de las m´as relevantes es la descoordinaci´on entre los descensos y ascensos de camioneros. se agregara a la matriz A de restricciones una columna asociada a una variable de costo reducido negativo. modificamos el algoritmo para que devuelva no s´olo la ruta de menor costo. Al finalizar como resultado que no existe un camino de costo Si bien la definici´ on de dominancia relajada permite que el algoritmo descarte muchos caminos y finalice m´ as r´ apido. Cuando se aplican las restricciones que fuerzan a que las variables tomen valores enteros.5. dicho eje podr´ıa no ser transitado en el mismo momento por la extensi´on de C1 que por la extensi´ on de C2 . Es decir. Columnas complementarias 5. Generaci´on de columnas Dado que. podr´ıa ocurrir que alguna extensi´on del camino en el nodo sink y tuviera un costo real negativo. que antes pod´ıan ser incluidas en la soluci´on de la relajaci´on. el tiempo consumido por C2 debe ser mayor o igual que el tiempo consumido por C1 . si considerar´amos una extensi´on de ambos caminos que incluya a un eje e. Con esto queremos decir que una ruta puede requerir un camionero en cierta ciudad y momento. 5. Es importante notar que el comportamiento de la heur´ıstica depende fuertemente de la cota que se utilice en la relaci´ on de dominancia relajada. sino todas aquellas rutas de costo negativo. lo que permite que el m´etodo Simplex tenga m´as opciones para elegir la columna a ingresar a la base. De esta manera. Siguiendo el anterior razonamiento descartado C2 eventualmente finalizara mientras que la misma extensi´ on sobre la ejecuci´ on del algoritmo. puede suceder que muchas de estas columnas. qu´e caminos ser´ an descartados por el algoritmo. Columnas complementarias El m´etodo principal de generaci´on de columnas presentado en la secci´on 5. Recordemos que originalmente obten´ıamos la ruta de costo m´ınimo s´ olo para garantizar que. al resolver cada nueva relajaci´on. Rutas potencialmente beneficiosas Con el objetivo de incrementar la cantidad de soluciones factibles enteras. se obtendr´ıa negativo. Esto podr´ıa tener m´ ultiples causas. En el cap´ıtulo 7 se presentan los resultados obtenidos por la heur´ıstica para distintos valores de esta cota. agregamos m´as de una columna.1. Sin embargo. no podemos determinar si el costo de la extensi´on de C1 ser´a menor que el costo de la misma extensi´ on sobre C2 . ya que cualquiera de ellas podr´ıa ser elegida por Simplex para formar parte de la soluci´on de la iteraci´on correspondiente. de cierta manera. de existir. 48 .1. sucede que C1 4∗c C2 por lo que la variante del algoritmo descartar´ a al camino C2 para optar por C1 . utilizaremos el algoritmo exacto para verificar si existe alg´ un camino v´alido de costo negativo.

Los ascensos de los camioneros del conjunto de rutas definen los requerimientos de camioneros que tienen estas rutas en una determinada ciudad y momento. Definici´ on 5.5. Estos requerimientos de camioneros pueden estar satisfechos o insatisfechos dependiendo de si en esa ciudad hay camioneros disponibles o no. creemos que es m´as probable que las rutas con costo reducido negativo puedan ser incluidas en la soluci´on del problema entero. k. El objetivo de una ruta complementaria es hacer descender camioneros de manera que los mismos est´en disponibles en las ciudades y momentos en los que las rutas del conjunto original los requieran. 5. camAsc∗ : P(R) × L × M → N0 X camAsc∗ (S.1. k. 49 . m) = dispCam(S. 0) dispCam(S. m) − reqSat(S. De esta manera. k.2. Definici´ on 5. k.6 (Funci´ on de descenso de camioneros) Dado un conjunto de rutas S ⊆ R. Columnas complementarias Para intentar solucionar este problema desarrollamos la idea de generar rutas que complementen a un conjunto de rutas obtenidas por el m´etodo principal de generaci´on. una ciudad k y un momento m. camDesc∗ : P(R) × L × M → N0 X camDesc∗ (S.7 (Funci´ on de disponibilidad de camioneros) Dado un conjunto de rutas S ⊆ R. M´as adelante definiremos la noci´on de disponibilidad de camioneros que nos ayudar´a a formalizar esta idea. m) r∈S Definici´ on 5. una ciudad k y un momento m. k. k. m − 1) + camDesc∗ (S.5 (Funci´ on de ascenso de camioneros) Dado un conjunto de rutas S ⊆ R.2. k. c. m) = camDesc(r. k. m) r∈S donde P(R) denota el conjunto de partes de R. una ciudad k y un momento m se define la funci´on de disponibilidad de camioneros como: dispCam : P(R) × L × M → N0 ( |DCLk | − camAsc∗ (S. m) si m = 0 si m > 0 donde DCLk es el conjunto de camioneros que comienzan su itinerario en la ciudad k y reqSat es la funci´ on de requerimientos satisfechos de camioneros que se definir´ a a continuaci´ on. Generaci´ on de columnas 5. la funci´on de descensos de camioneros suma todos los descensos de camioneros en dicha ciudad y momento para el conjunto de rutas S. la funci´on de ascensos de camioneros suma todos los ascensos de camioneros en dicha ciudad y momento para el conjunto de rutas S. El problema de complementar rutas Antes de presentar el problema de complementar un conjunto de rutas debemos introducir algunas definiciones. m) = camAsc(r.

m − 1) + camDesc∗ (S. m) = min(camAsc∗ (S. se produce el ascenso de un camionero). c. Por otro lado.2. Definici´ on 5. reqInsat : P(R) × L × M → N0 reqInsat(S. Puede suceder que. k. para un conjunto dado de rutas S. Si un camionero desciende en una ciudad queda disponible en la misma hasta que ascienda a un cami´ on en alg´ un momento posterior.10 (Funci´ on de mejora de insat. De esta manera. y as´ı sucesivamente.9 (Funci´ on de requerimientos insatisfechos de camioneros) Dado un conjunto de rutas S ⊆ R. m). luego complementar el nuevo conjunto. la disponibilidad de camioneros para una determinada ciudad y momento depende de la disponibilidad en dicha ciudad en el momento anterior y de los descensos y ascensos de camioneros en ese momento. k. k. r) produzca que el valor de dicha funci´on no sea positivo (i. m) En base a estas definiciones podemos construir una funci´on δ que nos permite medir cu´anto mejora la insatisfacibilidad de requerimientos de camioneros de un conjunto de rutas al agregar una nueva ruta a dicho conjunto. Generaci´on de columnas En un comienzo. m) − reqSat(S. Esto quiere 50 . obtener la mejor ruta complementaria para un conjunto de rutas. una ciudad k y un momento m. A continuaci´on definimos dicha funci´on. c. r) ≤ 0). m) − reqInsat(S ∪ {r} . k.e. r). Definimos entonces las nociones de requerimientos de camioneros satisfechos e insatisfechos para terminar de formalizar el problema. se define la funci´on de requerimientos satisfechos de camioneros como: reqSat : P(R) × L × M → N0 reqSat(S. A partir de conocer la disponibilidad de camioneros en una ciudad y momento determinados. de requerimientos) Dado un conjunto de rutas S ⊆ R y una ruta r ∈ R tal que r ∈ / S. k. δ(S.5. dispCam(S. r) = X X c∈L m∈M δ : P(R) × R → Z X X reqInsat(S. Luego. m) = camAsc∗ (S. la disponibilidad aumenta cuando se produce el descenso de un camionero. podemos saber cu´ antos requerimientos (o ascensos) de camioneros pueden ser satisfechos y cu´ antos no. Definici´ on 5. es decir. agregarla a dicho conjunto. de manera que el conjunto de rutas resultante (S ∪ {r}) tenga la menor cantidad posible de requerimientos insatisfechos. definimos la funci´on de mejora de insatisfacibilidad de requerimientos de camioneros como: δ(S. la ruta r que maximice δ(S. Columnas complementarias 5. la disponibilidad disminuye cuando una ruta requiere de un camionero (i. m) c∈L m∈M El problema de complementar un conjunto de rutas S consiste en encontrar aquella ruta r que maximice la funci´ on δ(S. k.8 (Funci´ on de requerimientos satisfechos de camioneros) Dado un conjunto de rutas S ⊆ R.e. definimos la funci´on de requerimientos insatisfechos en base a los ascensos de camioneros y cu´ antos de ellos fueron satisfechos. Esta manera de definir el problema nos permite ir complementando conjuntos en forma iterativa. m)) Definici´ on 5. una ciudad k y un momento m. la disponibilidad de camioneros en una ciudad est´a dada por la cantidad de camioneros que se encuentran all´ı inicialmente descontando aquellos que ascienden a alg´ un cami´ on. k.

C2 del grafo GR asociados a rutas r1 . mejora la cantidad de requerimientos insatisfechos. sino que ocurre lo contrario. el conjunto de rutas quede m´as equilibrado en t´erminos de la coordinaci´on entre los ascensos y descensos de camioneros. 5. Columnas iniciales decir que la mejor ruta que se pudo generar no contribuye a mejorar los requerimientos insatisfechos de camioneros de S. mejorando en cada iteraci´on el valor de la funci´on objetivo. Resoluci´ on del problema de complementar rutas Dado un conjunto de rutas S.3. r2 respectivamente. La idea es que al agregar la ruta asociada al camino resultante al conjunto S. Al utilizar la t´ecnica de generaci´ on de columnas. Generaci´ on de columnas 5.3.1. cada camino contaba con su costo acumulado y dicho costo se utilizaba como criterio en la relaci´on de dominancia para establecer si un camino era mejor que otro.2. C1 domina por mejora de insatisfacibilidad de requerimientos a C2 (C1 S C2 ) sii • C1 y C2 finalizan en el mismo nodo • La mejora en los requerimientos insatisfechos de camioneros (con respecto a S) producida por C1 es mayor o igual a la producida por C2 : δ(S. Columnas iniciales Como mencionamos en el cap´ıtulo 2. Definici´ on 5. En este caso no tiene sentido que se la considere para ser agregada al problema. el algoritmo nos devolver´a un camino cuya ruta asociada. En el cap´ıtulo 6 veremos c´ omo se introduce la generaci´on de rutas complementarias en el algoritmo de resoluci´ on general y en el cap´ıtulo 7 analizaremos si la generaci´on de estas rutas contribuye a mejorar la soluci´ on obtenida. En la versi´ on original del algoritmo.2. r1 ) ≥ δ(S.2. de ser incluida en el conjunto actual S. de dominancia por mejora de insat. en la primera iteraci´on no se 51 . La variante consiste en utilizar como criterio de decisi´on la mejora acumulada de requerimientos insatisfechos de un camino. 5. Para esto definimos una nueva relaci´ on de dominancia que considera la mejora en los requerimientos insatisfechos de camioneros para el conjunto S. r2 ) • El tiempo de C1 es menor o igual al de C2 : T (C1 ) ≤ T (C2 ) • Si ambos caminos tienen pendiente el drop-off del u ´ltimo pedido:  ultimo(P (C1 )) = ultimo(P (C2 )) Si no  Tanto C1 como C2 no deben tener pendiente el drop-off del u ´ltimo pedido realizado • Los pedidos realizados por C1 est´ an incluidos en los de C2 : P (C1 ) ⊆ P (C2 ) Utilizando esta nueva definici´ on de dominancia.11 (Rel. el m´etodo Simplex explora distintas soluciones factibles del problema. no contamos en todas las iteraciones de Simplex con la totalidad de las variables del problema. para encontrar la ruta r que maximice la funci´on δ utilizamos una variante del algoritmo para resolver el RCSPP descripto en la secci´on 5.5. de requerimientos) Dado un conjunto de rutas S ⊆ R y dos caminos C1 . En particular.

un pedido y un evento (pick-up o drop-off ). |DCLk |) 4: Agregar a RI cant comienzos de ruta a partir de la ciudad k 5: end for 6: // Para cada pedido. utilizamos el algoritmo 6. Para calcular el tiempo de finalizaci´ on de un evento. la cantidad de horas de trabajo consecutivo que acumula el camionero que lo llevar´ a a cabo y si llega a la ciudad de destino dentro de la correspondiente ventana de tiempo. debemos definir qu´e pedidos realizar´ a cada una de ellas. Generaci´on de columnas cuenta con ninguna variable correspondiente a rutas (yr ) de manera que Simplex encuentre una soluci´ on factible para comenzar. Para determinar qu´e ruta del conjunto realizar´a el pedido en forma completa en el menor tiempo calculamos cu´ anto demora cada una de ellas en realizar el pick-up del pedido y luego su correspondiente drop-off.5. ya sea pick-up o drop-off. Para esto. A continuaci´ on presentamos el pseudoc´odigo del algoritmo implementado para obtener un conjunto de rutas iniciales. Una vez que determinamos con cu´antas rutas vamos a contar. Es por esto que la cantidad de rutas que pueden comenzar en cada ciudad queda determinada por la cantidad de camiones y camioneros que se encuentran en esa ciudad en el momento inicial. Algoritmo 5 Generaci´ on de conjunto de rutas iniciales Input: CCLk camiones que comienzan en ciudad k ∀k ∈ L. Para que un camionero pueda comenzar una ruta en un cami´on. el algoritmo calcula el momento m´ as temprano en el que dicha ruta puede realizar el evento asociado a ese pedido. debe considerar cu´ anto demora el cami´on en llegar a la ciudad donde debe realizar el evento. Una vez calculado el tiempo de finalizaci´on de drop-off para cada ruta. Dados una ruta. 52 . 7: for all pedido p ∈ P do 8: Buscar ruta r ∈ RI que mejor realice el pedido p 9: Extender ruta r para que realice el pedido p 10: end for 11: return RI Las rutas generadas por este algoritmo tendr´an la particularidad de que cada cami´on ser´a manejado por un u ´nico camionero a lo largo de todo el recorrido. DCLk camioneros que comienzan en ciudad k ∀k ∈ L. Es por esto que es necesario generar un conjunto de rutas iniciales que verifiquen todas las restricciones asociadas a variables de ruta antes de comenzar el proceso de generaci´ on de columnas. • momentoU ltimoEvento(r) : indica en qu´e momento se realiz´o el u ´ltimo evento (pickup o drop-off ) asociado a la ruta en cuesti´on. la ruta que mejor realiza un pedido es aquella que puede realizar su correspondiente drop-off lo antes posible. revisar a qu´ e ruta conviene asign´ arselo. como puede verse en los pasos 3 y 4. ambos deben encontrarse en la misma ciudad en el momento inicial. le asignamos a cada pedido aquella ruta que mejor lo realiza. P conjunto de pedidos. Todas estas condiciones son necesarias para que se cumplan las restricciones del problema.3. Columnas iniciales 5. Para esto. En este contexto. nos quedamos con aquella que lo finaliz´o antes. A continuaci´ on describimos brevemente las funciones utilizadas en el pseudoc´odigo del algoritmo 6. L conjunto de ciudades Output: RI el conjunto de rutas iniciales 1: RI ← ∅ 2: for all ciudad k ∈ L do 3: cant ← min(|CCLk |.

el conjunto de rutas generado en ese caso no formar´ıa parte de una soluci´on factible. e)) 11: end if 12: if m no est´ a dentro de la ventana de tiempo diaria de p then 13: Calcular tiempo de espera te hasta que pueda realizar el evento e 14: m ← m + te 15: end if 16: // Realizar el evento. Como todos los pedidos deben ser realizados por alg´ un cami´on. en qu´e ciudad se encuentra actualmente el cami´on asociado a la ruta analizada. Es decir. e) : indica la ciudad donde debe realizarse el evento correspondiente al pedido. asigna a cada pedido la ruta que antes lo pueda llevar a cabo. incluso aunque existiera una soluci´on factible al problema. e) then 4: // Verificar si debe tomarse franco o descansar 5: if necesitaDescansoOF ranco(r. alg´ un pedido no pueda ser realizado por ninguna de las rutas disponibles dentro del horizonte de tiempo establecido. ya que al recorrerlos en otro orden se podr´ıa encontrar un conjunto de rutas que los satisfaga a todos. de manera golosa. teniendo en cuenta las restricciones respecto de la cantidad de horas consecutivas de trabajo y de la cantidad de d´ıas de franco. Generaci´ on de columnas 5. Estos casos pueden salvarse ejecutando el algoritmo nuevamente. despu´es de definir qu´e rutas realizar´an los primeros pedidos. p) then 6: Calcular el m´ınimo tiempo td que necesita descansar 7: m ← m + td 8: end if 9: // Viajar hasta la ciudad del evento 10: m ← m + tiempo(ciudadActual(r). Columnas iniciales Algoritmo 6 C´ alculo del momento en que una ruta finaliza un evento Input: Ruta r. 53 . sino que. En nuestra implementaci´on. • tiempo(c1 . lo que demora K/24 momentos 17: m ← m + K/24 18: return m • ciudadActual(r) : indica cu´ al fue la u ´ltima ciudad visitada por la ruta. modificando el orden en el que se iteran los pedidos. la limitaci´ on de considerar s´olo aquellas rutas en las que cada cami´on sea manejado por un u ´nico camionero podr´ıa llevar a que no se puedan satisfacer todas las restricciones. este algoritmo se ejecuta dos veces: la primera recorriendo los pedidos en orden ascendente y la segunda en el orden inverso. El algoritmo 5 tiene como desventaja que no contempla el conjunto de pedidos en su totalidad. ciudadEvento(p. • ciudadEvento(p. c2 ) : devuelve el tiempo que demanda el viaje entre dos ciudades. el algoritmo propuesto encontr´o un conjunto de rutas que verifican todas las condiciones en la mayor´ıa de los casos. sin embargo. A pesar de esto. Esto podr´ıa traer como consecuencia que.3.5. debe viajar 3: if ciudadActual(r) 6= ciudadEvento(p. evento e (pick-up o drop-off ) Output: El momento m en el cual la ruta r finaliza el evento e del pedido p 1: m ← momentoU ltimoEvento(r) 2: // Si no est´ a en la ciudad donde debe realizar el evento. p) : indica si el camionero asociado a la ruta en cuesti´ on puede llevar a cabo el viaje necesario para realizar cierto evento. En la pr´actica. • necesitaDescansoOF ranco(r. pedido p.

Ydki . decidimos utilizar la t´ecnica de generaci´on de columnas para resolver el problema. El algoritmo comienza armando un conjunto de columnas iniciales para que el m´etodo Simplex cuente con una soluci´ on factible inicial con la que pueda comenzar.2. y las variaciones que desarrollamos para limitar la cantidad de soluciones a explorar. En este cap´ıtulo describiremos c´omo se relacionan todos estos algoritmos para resolver el VCSPDPTW. El siguiente paso consiste en construir la formulaci´on del modelo cuya matriz de restricciones contiene u ´nicamente las columnas asociadas a las variables expl´ıcitas en el modelo (Xdki . Es importante aclarar que esta formulaci´ on representa la relajaci´on lineal de la presentada en la secci´on 3.Cap´ıtulo 6 Algoritmo de resoluci´ on general En los cap´ıtulos anteriores describimos tanto el grafo de rutas como el algoritmo que utilizamos para encontrar un camino de costo m´ınimo dentro del mismo.2. Zdj ) y aquellas columnas iniciales reci´en generadas. el modelo propuesto cuenta con una gran cantidad de variables de ruta (yr ). Este procedimiento. es un procedimiento iterativo que consiste en aplicar el m´etodo Simplex para encontrar el ´optimo de la relajaci´on del problema con las columnas con las que se cuenta hasta el momento. y luego generar una o m´ as columnas para agregar a la formulaci´on y reoptimizar. en donde las variables de ruta ser´ an generadas en cada iteraci´on del problema maestro.1. 6. Este conjunto de columnas iniciales es el generado por el algoritmo 5 presentado en el cap´ıtulo anterior. Una vez hecho esto se procede a generar y agregar nuevas columnas a la formulaci´on relajada. pero con la restricci´ on de que las variables sean binarias. Este proceso se repite hasta que se alcanza cierta cantidad de iteraciones o se alcanza cierta cota de tiempo. Este esquema de resoluci´on plantea dividir al problema en un problema maestro y un subproblema de generaci´on de columnas. Esta es la formulaci´on original del modelo que presentamos en la secci´ on 3. se construye una nueva formulaci´ on en base a la resultante del proceso de generaci´on de columnas. Describimos tambi´en los algoritmos para generar un conjunto inicial de rutas que satisfagan todos los pedidos a realizar. En el algoritmo 7 se muestra el esquema de resoluci´on general para el VCSPDPTW. con la diferencia de que en vez de considerar las 54 . que ser´a detallado en la siguiente secci´on. Dado que en la pr´actica es imposible considerar todas estas variables en forma expl´ıcita. Algoritmo para el VCSPDPTW Como mencionamos en el cap´ıtulo 5. y mostraremos el pseudoc´odigo del algoritmo de resoluci´on general implementado. Wdki . Cuando concluye la etapa de generaci´on de columnas sobre la relajaci´on.

se actualizan los costos de los ejes en el grafo de rutas como describimos en la secci´on 5. La diferencia radica en que un m´etodo de Branch and Price utiliza la t´ecnica de generaci´ on de columnas para resolver las relajaciones lineales asociadas a cada uno de los nodos resultantes del proceso de branching. crc. es decir. Aqu´ı se resuelve la relajaci´on del problema utilizando la implementaci´on de R Simplex provista en el paquete CPLEX .1.l.3) sobre la formulaci´ on resultante para obtener una soluci´on entera. cmi la cantidad m´axima de iteraciones. Luego se aplica Branch and Cut (ver secci´on 2. 6. ya que el alcance del trabajo no inclu´ıa analizar el impacto que ten´ıan las estrategias de branching en el. la del nodo ra´ız del ´ arbol. rpb si se deben considerar rutas potencialmente beneficiosas. tme el tiempo m´aximo de ejecuci´ on. crcg) 6: Sea P P LB la formulaci´ on asociada a P P L restringida a variables binarias 7: Resolver P P LB utilizando Branch and Cut variables correspondientes a todas las posibles rutas. cmi. Esto fue hecho en forma deliberada. s´olo estar´an presentes las que fueron generadas en la etapa anterior. Algoritmo para generaci´ on de columnas El algoritmo 8 muestra el procedimiento de generaci´on de columnas y agregado de las mismas a la formulaci´ on relajada. GUB (Generalized Upper R Bound ). Para generar rutas de costo reducido negativo utilizamos el algoritmo para el RCSPP descripto en 5.2 as´ı como las variantes presentadas. es posible que demore mucho tiempo en encontrar el camino de menor costo. Una vez resuelta dicha relajaci´on se obtienen los valores de la soluci´ on al problema dual asociado y. R Utilizamos la implementaci´ on de Branch and Cut provista por el paquete CPLEX . Algoritmo de resoluci´ on general 6. dp. m´etodo de generaci´ on de columnas. la cual genera cortes de uso general como los de Gomory. crc la cantidad de rutas a complementar.4). 55 . el algoritmo presentado resulta ser una heur´ıstica y no un algoritmo exacto. Este algoritmo es exacto y analiza una cantidad muy grande de caminos.6. Clique. con los mismos. De esta manera.2. por lo que si el problema cuenta con muchas ciudades y pedidos. rpb. El algoritmo propuesto para la resoluci´on del VCSPDPTW se asemeja a un esquema de Branch and Price (ver secci´ on 2.2. Comienza construyendo el grafo de rutas a partir de los datos de entrada del problema y luego ingresa en el ciclo principal de generaci´on de columnas.1. mientras que nuestro algoritmo s´ olo la utiliza al momento de resolver la relajaci´on inicial. Algoritmo para generaci´on de columnas Algoritmo 7 Resoluci´ on general de VCSPDPTW Input: Datos del problema dp.3. ya de por s´ı complicado. tme. crcg la cantidad de rutas complementarias a generar Output: x∗ soluci´ on ´ optima 1: RI ← generarRutasIniciales(dp) 2: // Construir la formulaci´ on s´ olo con las columnas iniciales 3: Sea P P L la r. de formulaci´ on del VCSPDPTW considerando s´olo las rutas r ∈ RI 4: // Generar columnas para PPL 5: generarY AgregarColumnas(P P L.1. Esto es as´ı dado que el criterio de parada de un algoritmo exacto de estas caracter´ısticas depende de poder aseverar que no existan m´as columnas que puedan mejorar el valor de la funci´ on objetivo.3. etc [IBM10]. El paquete CPLEX permite configurar muchos de los par´ametros del algoritmo de Branch and Cut aunque nosotros decidimos utilizar los valores por defecto. Para poder asegurar esto es necesario realizar el proceso de generaci´on de columnas en cada uno de los nodos del ´arbol y no s´olamente en el nodo ra´ız.

El hecho de tener o no en cuenta estas columnas est´a parametrizado ya que. de forma que se reduce considerablemente el tiempo de ejecuci´ on del algoritmo. En un esquema de generaci´on de columnas t´ıpico. En las l´ıneas 23 a 26 del pseudoc´odigo puede verse que. las mismas se agregan al problema y se vac´ıa el conjunto de rutas a complementar. ya sea mediante la heur´ıstica o mediante el algoritmo exacto. Sin embargo.3). Algoritmo de resoluci´on general Es por esto que inicialmente invocamos la variante del algoritmo que utiliza la relaci´on de dominancia relajada (ver definici´ on 5. no queda claro que se obtengan mejores resultados si se las utiliza. En los casos en los que ocurre esto.6. se agregan las columnas potencialmente beneficiosas de la misma forma en que se agrega la columna de costo m´ınimo. De esta forma. esta modificaci´on permite descartar muchos caminos al momento de buscar el camino ´ optimo.4). Como ya mencionamos. Algoritmo para generaci´ on de columnas 6. invocamos al algoritmo utilizando la definici´on original de dominancia (ver definici´on 5. Una vez generadas las rutas complementarias. Cuando el tama˜ no del conjunto alcanza cierto valor determinado por medio de un par´ ametro. debe ocurrir que tanto la cantidad de rutas a complementar como la cantidad de rutas complementarias a generar sean positivas. En dicho conjunto se incluyen tanto las rutas de costo m´ınimo como las rutas potencialmente beneficiosas que van a ser agregadas a la formulaci´ on del problema (estas u ´ltimas s´olo en el caso de estar habilitada la generaci´on de las mismas). Esto quiere decir que el hecho de que el algoritmo no encuentre un camino de costo negativo no implica que dicho camino no exista. pero si el camino resultante tiene costo positivo se tiene la certeza de que no existe ning´ un camino de costo negativo y puede finalizarse el proceso de generaci´on de columnas. implementamos dos variantes que permiten agregar m´as de una columna por iteraci´ on. en caso de que el par´ ametro correspondiente as´ı lo indique.2. Recordemos que llamamos a estas columnas potencialmente beneficiosas. realizamos pruebas en las que se agregan las columnas potencialmente beneficiosas. La cantidad de rutas complementarias que se generan tambi´en est´a dada por un par´ametro. A medida que se van agregando rutas al problema.2. Dado que no sab´ıamos si las rutas complementarias mejorar´ıan los resultados obtenidos. Por este motivo. La primera de estas variantes consiste en agregar todas las columnas de costo reducido negativo en lugar de agregar s´ olo aquella de menor costo. El segundo mecanismo que implementamos para no agregar una u ´nica columna por iteraci´on es la generaci´ on de rutas complementarias descripta en la secci´on 5. las mismas se van almacenando en un conjunto que llamaremos conjunto de rutas a complementar. se generan las rutas que complementan a las del conjunto. Las columnas de costo m´ınimo y potencialmente beneficiosas que se agregan en iteraciones posteriores van conformando el nuevo conjunto de rutas a complementar. En el pr´oximo cap´ıtulo presentaremos las pruebas realizadas y los resultados obtenidos. ya que cualquiera de las mismas podr´ıa formar parte de la soluci´ on en la siguiente iteraci´ on.3. debemos construir la columna asociada a dicho camino e incluirla en la matriz de restricciones de la formulaci´on. la utilizaci´ on de las mismas est´ a sujeta a un par´ametro. La desventaja de esta modificaci´on es que el algoritmo deja de ser exacto y se transforma en una heur´ıstica. y otras pruebas en las que en cada iteraci´ on agregamos u ´nicamente la columna correspondiente al camino de costo m´ınimo. como mencionamos en la secci´ on 5. una vez hecho esto se proceder´ıa a la siguiente iteraci´on. a priori. En estos casos el algoritmo demora m´as tiempo en devolver la soluci´ on.1. y una vez que dicho conjunto alcanza el tama˜ no indicado se repite este proceso. Esto puede verse en la l´ınea 9 del pseudoc´odigo. 56 . Si se encuentra un camino de costo negativo.

rpb si se deben considerar rutas potencialmente beneficiosas.2. y ∗ ) 10: Obtener el camino m´ınimo C ∗ en GR y el conjunto RP B de todos los caminos v´ alidos de costo negativo utilizando el algoritmo heur´ıstico 11: // Si el costo del camino m´ınimo es positivo 12: if Σ(C ∗ ) ≥ 0 ∧ tiempo < tme then 13: Obtener el camino m´ınimo C ∗ en GR y el conjunto RP B de todos los caminos v´ alidos de costo negativo utilizando el algoritmo exacto 14: // Si no hay caminos de costo negativo. Algoritmo para generaci´on de columnas Algoritmo 8 Generaci´ on de columnas Input: La formulaci´ on del modelo P P L. crcg la cantidad de rutas complementarias a generar Output: Agrega a P P L las columnas correspondientes seg´ un los par´ametros de entrada 1: GR ← construirGraf oRutas(dp) 2: // El conjunto de rutas a complementar 3: RAC ← ∅ 4: tiempo ← 0. terminar 15: if Σ(C ∗ ) ≥ 0 then 16: break 17: end if 18: end if 19: Construir columna Ayc∗ correspondiente C ∗ 20: Agregar Ayc∗ a P P L 21: // Agregar el camino al conjunto de rutas a complementar 22: RAC ← RAC ∪ {C ∗ } 23: // Si corresponde. agregar todas las columnas de costo reducido negativo 24: if rpb then 25: Construir columnas Ayr correspondientes a los caminos en RP B 26: Agregar columnas Ayr a P P L 27: end if 28: // Si corresponde. tme el tiempo m´aximo de ejecuci´on. la cantidad m´axima de iteraciones cmi. crc la cantidad de rutas a complementar. generar rutas complementarias y agregarlas a la formulaci´ on 29: if crc > 0 ∧ |RAC| = crc ∧ crcg > 0 then 30: Generar CRC conjunto de crcg rutas complementarias para RAC 31: Construir columnas Ayr correspondientes a los caminos en CRC 32: Agregar columnas Ayr a P P L 33: end if 34: cantIteraciones ← cantIteraciones + 1 35: actualizarT iempo(tiempo) 36: end while 57 .6. Algoritmo de resoluci´ on general 6. cantIteraciones ← 0 5: // Mientras se deba seguir iterando y el tiempo transcurrido no alcance el l´ımite 6: while cantIteraciones < cmi ∧ tiempo < tme do 7: Resolver P P L utilizando Simplex 8: Sea y ∗ el vector soluci´ on del problema dual asociado a P P L 9: actualizarCostosEjes(GR. los datos del problema dp.

58 .2. Algoritmo para generaci´ on de columnas 6. ambos especificados por sus correspondientes par´ametros. el algoritmo termina y concluye la etapa de generaci´on de columnas. Si la cantidad de iteraciones realizadas o el tiempo transcurrido superan los l´ımites establecidos.6. Algoritmo de resoluci´on general El criterio de parada del ciclo principal est´a dado por la cantidad de iteraciones y el tiempo m´ aximo de ejecuci´ on.

Con respecto al horizonte de planificaci´on. el tama˜ no del grafo depende mayormente de la cantidad de ciudades y de pedidos. por lo que tuvimos que crear nuestras propias instancias del problema en forma manual. fueron configuradas en forma arbitraria. utilizando la API de C del paquete R optimizador CPLEX versi´ on 12. Las cantidades de camiones y camioneros en cada instancia fueron fijadas en funci´ on a la cantidad de ciudades: aproximadamente un cami´on por ciudad y dos camioneros por cada cami´ on. Los algoritmos fueron implementados en C++.1. penalidad asociada a la entrega fuera de fecha de los pedidos y costo de viaje por unidad de tiempo. utilizamos las estimaciones de tiempo de viaje provistas por Google Maps.2. ventanas de tiempo. utilizamos el menor valor posible para cada instancia. ya que el mismo impacta directamente sobre el desempe˜ no del algoritmo utilizado para la generaci´on de columnas. Dado que el algoritmo de resoluci´on general es parametrizable con un amplio n´ umero de opciones.google. Instancias del problema Si bien este trabajo trata sobre un problema real de una compa˜ n´ıa productora de caf´e.com 59 . Este par´ametro tambi´en influye sobre el tama˜ no del grafo de rutas. El l´ımite para el ajuste de este par´ametro est´a dado por el 1 http://maps. y con cu´antos camiones y camioneros se cuenta. basadas en los l´ımites de velocidad de cada segmento de ruta. 7. Para esto utilizamos informaci´ on geogr´ afica real de ciudades obteniendo las distancias que las separan por medio de Google Maps 1 . como la distribuci´on inicial de camiones y camioneros en el mapa. decidimos realizar algunas pruebas preliminares de forma de poder acotar el espectro de opciones para luego realizar las pruebas finales. Antes de determinar esta informaci´on es preciso decidir la cantidad de ciudades y de pedidos de la instancia del problema. por lo que acotarlo lo m´ as posible tambi´en resulta beneficioso para la etapa de generaci´ on de columnas. medido en d´ıas. no cont´abamos con datos reales con los que poder construir instancias de prueba. Como mostramos en el cap´ıtulo 4. El resto de la informaci´ on de cada instancia del problema. el aspecto que consideramos cr´ıtico con respecto a la performance es el tama˜ no del grafo de rutas. Dado que las distancias entre ciudades deben estar expresadas en unidad de tiempo.Cap´ıtulo 7 Resultados En este cap´ıtulo presentamos los resultados obtenidos utilizando el algoritmo introducido en el cap´ıtulo anterior. En la soluci´on propuesta. Es por esto que decidimos medir el tama˜ no de una instancia del problema en funci´on de dichas cantidades.

Par´ ametros Para organizar las pruebas. Para este par´ametro tuvimos en cuenta las siguientes opciones: • Muy poco relajada: Cota = 1 • Poco relajada: Cota = 3 • Relajada: Cota = 5 • Totalmente relajada: Cota = ∞ 60 . Si el horizonte de planificaci´ on no es lo suficientemente grande. CVR: s´ı. MPCD: 50 % • Muy restringida: MCCV: 1. y una cantidad de pedidos variando entre 6 y 12.2. lo cual no permitir´a obtener una soluci´on al problema.1.7. MPCD: 100 % • Medianamente restringida: MCCV: 3. Realizamos estas pruebas preliminares en una PC TM R con procesador Intel Core i3 2. Resultados algoritmo de generaci´ on de rutas iniciales. que pueden ser resueltas en un tiempo razonable. Decidimos utilizar instancias de este tama˜ no. 7. que es la cota que indica cu´ anta diferencia puede haber entre los tiempos acumulados por dos caminos para que uno de ellos pueda dominar al otro. Para esta categor´ıa consideramos las siguientes tres alternativas: • Sin restricci´ on: MCCV: Sin l´ımite (∞). ciudades visitadas entre eventos repetidas (CVR) y m´ aximo porcentaje cami´ on detenido en ciudad (MPCD).2. para poder fijar algunos de los par´ametros del algoritmo y luego realizar pruebas sobre instancias m´ as grandes. CVR: s´ı. CVR: no. Pruebas preliminares Las pruebas preliminares se realizaron sobre seis instancias del problema.3.13 GHz y 4 GB de RAM. Las categor´ıas son las siguientes: • Restricciones sobre la generaci´on de rutas • Cota superior para dominancia relajada • Rutas potencialmente beneficiosas • Rutas complementarias En la categor´ıa de restricciones sobre la generaci´on de rutas agrupamos a los par´ametros m´ axima cantidad de ciudades visitadas entre eventos (MCCV). Pruebas preliminares 7.1. el algoritmo podr´ıa no encontrar una soluci´ on inicial. dado que el hecho de que el mismo encuentre un conjunto de rutas que satisfagan todos los pedidos depende del horizonte establecido. 7. MPCD: 20 % La categor´ıa de cota superior para dominancia relajada cuenta con un u ´nico par´ametro.2. agrupamos los par´ametros del algoritmo de resoluci´on general en 4 categor´ıas correspondientes a las variaciones implementadas sobre el algoritmo de generaci´ on de columnas descriptas en la secci´on 5. con una cantidad de ciudades variando entre 6 y 7.

Pruebas preliminares La categor´ıa de rutas potencialmente beneficiosas tambi´en est´a compuesta por un u ´nico par´ ametro.2. observamos que con un valor de 5 para la cota ya se obtienen mejoras e inclusive hay casos en donde la soluci´on mejora con un valor de 5 o de 3. 19. Dicho par´ ametro (RPB) indica si deben tenerse en cuenta o no las rutas potencialmente beneficiosas descriptas en la secci´on 5. correspondientes a las 48 diferentes configuraciones de par´ametros. En esta instancia se obtuvieron mejoras de la soluci´on inicial en 22 de las 48 configuraciones. Las descripciones detalladas de cada instancia. s´olo en 5 de los 22 casos de mejora la cota es infinito. 24 y 42 a 48).2. 21. 21.4 se muestran los resultados para las corridas. as´ı como las tablas con todos los resultados que obtuvimos. Tambi´en observamos que la mejor soluci´on encontrada. Es decir. Los detalles de los pedidos. 21 y 23 respectivamente). Resultados 7.1. En la tabla A. 13 y 33 a 38) o fuerte (configuraciones 17 a 19. En 12 casos de mejora no se tuvieron en cuenta las rutas potencialmente beneficiosas mientras que en los 10 restantes s´ı fueron utilizadas. 24. En general se mejor´ o la soluci´ on en aquellos casos donde se restringi´o la generaci´on de rutas. En los 17 casos restantes la cota estaba ajustada a 5. Para esta categor´ıa consideramos las siguientes alternativas: • No se consideran rutas complementarias: CRC: 0.1 se pueden ver todas las combinaciones de par´ametros utilizadas. 7. con valor 107. los posibles valores para este par´ ametro son verdadero (si se deben considerar las rutas potencialmente beneficionsas) y falso (si no deben ser consideradas). cantidad de rutas a complementar (CRC) y cantidad de rutas complementarias a generar (CRCG). se encuentran en el ap´endice A. CRCG: 0 • Se consideran rutas complementarias: CRC: 5. 12. es decir. CRCG: 10 A cada opci´ on de los par´ ametros de una categor´ıa la combinamos con todas las opciones de las otras categor´ıas. el tiempo para la etapa de resoluci´on a 5 minutos y la cantidad de iteraciones del algoritmo de resoluci´ on general a 50 para todas las instancias. por lo que parecer´ıa que poner un valor para la cota da buenos resultados.1. 3 o 1 (configuraciones 5. Si comparamos los pares de config61 . Solamente uno de los 22 casos de mejora se presenta en una configuraci´on en la cual no se restringi´ o la generaci´on de rutas. pero no con un valor de 1 (por ejemplo como ocurre con las configuraciones 19. ya sea en forma moderada (configuraciones 12. 10 pedidos. En la u ´ltima categor´ıa de par´ ametros agrupamos a los par´ametros relativos a las rutas complementarias.7. 7 camiones y 13 camioneros. Instancia 1 La instancia 1 consiste de 6 ciudades. En la tabla 7.2. Por otro lado. lo que result´o en 48 posibles combinaciones para cada una de las instancias de prueba. 22. 13.6. 35 a 38 y 43 a 48). En estas pruebas preliminares limitamos el tiempo para la etapa de generaci´on de columnas a 10 minutos. 22. En cuanto a la cota superior para dominancia relajada. las cuales se encuentran resaltadas en la tabla.1. se encuentra siempre dentro de alguna configuraci´on con generaci´on de rutas muy restringidas. as´ı como las distancias entre las ciudades y la ubicaci´on inicial de los camiones y los camioneros pueden verse en la secci´on A. Experimentos computacionales A continuaci´ on presentamos un resumen de los resultados correspondientes a las corridas de las pruebas preliminares.

7. Resultados Cota ∞ ∞ 5 5 3 3 1 1 ∞ ∞ 5 5 3 3 1 1 ∞ ∞ 5 5 3 3 1 1 ∞ ∞ 5 5 3 3 1 1 ∞ ∞ 5 5 3 3 1 1 ∞ ∞ 5 5 3 3 1 1 RPB NO NO SI SI SI SI SI SI NO NO SI SI SI SI SI SI NO NO SI SI SI SI SI SI SI SI NO NO NO NO NO NO SI SI NO NO NO NO NO NO SI SI NO NO NO NO NO NO Rutas complementarias CRC CRCG 0 0 5 10 0 0 5 10 0 0 5 10 0 0 5 10 0 0 5 10 0 0 5 10 0 0 5 10 0 0 5 10 0 0 5 10 0 0 5 10 0 0 5 10 0 0 5 10 0 0 5 10 0 0 5 10 0 0 5 10 0 0 5 10 0 0 5 10 0 0 5 10 0 0 5 10 0 0 5 10 0 0 5 10 0 0 5 10 0 0 5 10 0 0 5 10 Tabla 7.1: Combinaciones de par´ametros para pruebas preliminares 62 . Pruebas preliminares Configuraci´ on 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 Restricciones rutas MCCV CVR MPCD ∞ SI 100 % ∞ SI 100 % ∞ SI 100 % ∞ SI 100 % ∞ SI 100 % ∞ SI 100 % ∞ SI 100 % ∞ SI 100 % 3 SI 50 % 3 SI 50 % 3 SI 50 % 3 SI 50 % 3 SI 50 % 3 SI 50 % 3 SI 50 % 3 SI 50 % 1 NO 20 % 1 NO 20 % 1 NO 20 % 1 NO 20 % 1 NO 20 % 1 NO 20 % 1 NO 20 % 1 NO 20 % ∞ SI 100 % ∞ SI 100 % ∞ SI 100 % ∞ SI 100 % ∞ SI 100 % ∞ SI 100 % ∞ SI 100 % ∞ SI 100 % 3 SI 50 % 3 SI 50 % 3 SI 50 % 3 SI 50 % 3 SI 50 % 3 SI 50 % 3 SI 50 % 3 SI 50 % 1 NO 20 % 1 NO 20 % 1 NO 20 % 1 NO 20 % 1 NO 20 % 1 NO 20 % 1 NO 20 % 1 NO 20 % 7.2.

Los resultados muestran que en 3 de estos casos la soluci´on mejora si se utilizan rutas complementarias y no mejora en caso contrario (configuraciones 11 vs 12. Con respecto a las rutas complementarias. 9 vs 33 y 10 vs 34) ocurre lo contrario y en los casos restantes resulta indistinto. Pruebas preliminares uraciones que difieren en el uso de estas rutas. en 3 casos (configuraciones 5 vs 29. en 9 de los 13 casos de mejora dicho par´ ametro es infinito (configuraciones 1. Instancia 2 La instancia 2 consiste de 6 ciudades. 4 camiones y 11 camioneros. se dio en configuraciones con generaci´ on muy restringida de rutas. Instancia 3 La instancia 3 consiste de 6 ciudades. 14 vs 38. tenemos que en 4 casos (configuraciones 19 vs 43. 9. 43 a 46 y 48). La mejor soluci´on se obtuvo en una configuraci´on en la cual la generaci´on de rutas estaba fuertemente restringida (configuraci´ on 45). 3 vs 4.7.2. la generaci´on de rutas fue muy restringida. De las 11 configuraciones de par´ametros que permitieron mejorar la soluci´on inicial. La mayor´ıa de los casos de mejora de la soluci´on inicial se dieron en configuraciones con generaci´ on de rutas muy restringida (configuraciones 17 y 41 a 46). 34. 17. En 6 de dichas configuraciones (configuraciones 24. 6 pedidos. En esta instancia. En esta instancia se obtuvieron mejoras de la soluci´on inicial en 13 de las 48 configuraciones. 26. etc). 9 de ellas corresponden a configuraciones que restringen la generaci´on de rutas. Si bien con 2 configuraciones que no restringen la generaci´on 63 . 33 y 34) fue medianamente restringida. 41 y 42). Los casos en los que se obtuvo la mejor soluci´on corresponden a configuraciones que utilizan rutas potencialmente beneficiosas.8 muestra los resultados para las 48 corridas correspondientes a las diferentes configuraciones de par´ ametros. observamos que en 3 casos se obtienen mejores resultados sin utilizar dichas rutas con respecto a la misma configuraci´on que s´ı las utiliza (configuraciones 1 vs 2. Los resultados obtenidos para las 48 combinaciones de par´ametros para esta instancia pueden encontrarse en la tabla A. con 11 de las 48 combinaciones de par´ametros utilizadas se obtuvieron soluciones de menor costo que la soluci´on inicial. con valor 78. 8 pedidos. Los 6 casos de mejoras restantes se distribuyen equitativamente entre configuraciones correspondientes a generaci´ on poco restringida e irrestricta. 23 vs 24 y 41 vs 42) y en otros tres casos ocurre lo contrario (configuraciones 5 vs 5. 20 vs 44 y 23 vs 47) la mejora se da cuando no se utilizan. 11 vs 35. comparamos las configuraciones que difieren u ´nicamente en el uso de dichas rutas (configuraciones 1 vs 2. 6 camiones y 12 camioneros. Si realizamos la comparaci´on de los pares de configuraciones que difieren en el uso de estas rutas. En el resto de los casos la utilizaci´ on de las rutas complementarias no influy´o en la mejora de la soluci´on. La mejor soluci´on. en 3 casos (configuraciones 2 vs 26. La tabla A. 21 vs 45 y 22 vs 46) la mejora se da cuando no se utilizan. 25. Resultados 7. En 7 casos de mejora no se utilizaron las rutas potencialmente beneficiosas y en los 6 restantes s´ı. En el resto el hecho de utilizar rutas complementarias fue indistinto. 20 vs 44. 13 vs 14 y 19 vs 20). Dentro de ´estos est´a tambi´en la mejor soluci´ on encontrada. Con respecto a la cota superior para dominancia relajada. tenemos que en 5 casos (configuraciones 17 vs 41. 33. y en las restantes (13. 10 vs 34 y 18 vs 42) cuando s´ı se utilizan y en los casos restantes resulta indistinto.12. En cuanto a las rutas complementarias. 9 vs 10 y 17 vs 18).

16 muestra los resultados obtenidos para esta instancia con cada una de las 48 combinaciones de par´ ametros. tenemos que en 6 casos (configuraciones 1 vs 25. 19 vs 43. En otro de los casos. 21 vs 45 y 22 vs 46) la mejora se da cuando no se utilizan. agregar rutas complementarias mejora la soluci´on con respecto a no agregarlas. En 2 de los 4 casos en los que se mejor´o la soluci´on inicial. Pruebas preliminares 7. En cuanto a las rutas complementarias. la soluci´on no mejora. 2 de los casos en los que se mejor´o la soluci´on corresponden a una configuraci´ on id´entica de los par´ametros. En el u ´ltimo caso de mejora no se utilizan rutas complementarias. en 4 casos (configuraciones 13 vs 37. result´o ser la que menos mejor´o de las 4. Instancia 4 La instancia 4 consiste de 6 ciudades. En la comparaci´ on entre pares de configuraciones que difieren u ´nicamente en el uso de las rutas potencialmente beneficiosas. en 4 casos se mejor´o la soluci´on inicial tanto si se agregaban rutas complementarias como si no. 17 vs 41 y 18 vs 42) la mejora se da cuando no se utilizan rutas potencialmente beneficiosas. Con respecto a las rutas complementarias. y a pesar de que la soluci´on en este caso es mejor que la soluci´on inicial. en uno la cota era 5 y en el otro 3. salvo porque en uno de ellos se utilizan rutas complementarias (configuraci´on 17) y en el otro no (configuraci´on 18).2. En 3 de esos casos (configuraciones 17. 20 vs 44. la generaci´on de rutas estaba restringida. Con respecto a las rutas potencialmente beneficiosas. El otro caso correspond´ıa a una configuraci´on en la cual la generaci´on de rutas estaba medianamente restringida (configuraci´on 35). Resultados de rutas se logr´ o mejorar la soluci´ on inicial. pero haciendo uso de rutas complementarias. De los otros 2 casos de mejora. la mejora en esos casos fue notablemente menor que en el resto de los casos. 8 de los casos de mejora corresponden a 4 pares de configuraciones que difieren u ´nicamente en el uso de rutas complementarias. Los dem´as casos de mejora se distribuyen casi uniformemente entre los restantes valores posibles para dicha cota (2 casos con cota 5. 9 vs 33 y 10 vs 34) la mejora se da cuando s´ı se utilizan y en el resto resulta indistinto. y en las otras 4 las rutas potencialmente beneficiosas s´ı eran tenidas en cuenta. En todos los casos en los que la soluci´on inicial se mejor´o. Para esta instancia. Es decir. 6 camiones y 12 camioneros. en 3 casos de mejora no se utilizaron y en el caso restante s´ı. 24 vs 48. en un caso (configuraciones 22 vs 46) ocurre lo contrario y en el resto de los casos resulta indistinto. 10 pedidos. la cota para el rango de dominancia relajada era infinito. En la comparaci´on entre pares de configuraciones que difieren en el uso de este par´ ametro.7. en 7 de las configuraciones de par´ametros que brindaron una soluci´on mejor que la inicial dichas rutas no se utilizaban. Esto indica que en ese caso particular las rutas complementarias empeoraban el rendimiento del algoritmo. 2 vs 26. 2 casos con cota 1). tenemos que en 3 casos (configuraciones 11 vs 35. 18 y 22) la generaci´on de rutas estaba fuertemente restringida. 3 casos con cota 3. En 4 de los 11 casos de mejora la cota superior para dominancia relajada era infinito. Con respecto al uso de rutas potencialmente beneficiosas. y para igual configuraci´ on de los dem´ as par´ ametros. 64 . La tabla A. s´olo con 4 de las 48 combinaciones de par´ametros se logr´ o mejorar la soluci´on inicial.

las rutas complementarias representan un beneficio con respecto a la no utilizaci´on de las mismas. Uno de los casos tiene el valor 3 (configuraci´ on 22). aunque la soluci´ on mejor´ o considerablemente m´as en el caso en que no se consideraron estas rutas. y el otro ten´ıa el valor infinito (configuraci´on 17). se encuentra en los casos de configuraciones con rutas muy restringidas. En esta instancia se logr´o mejorar la soluci´on inicial en 8 configuraciones. Se logr´o mejorar la soluci´on inicial en 6 de las 48 configuraciones.24 se muestran los resultados obtenidos para esta instancia con cada una de las 48 combinaciones de par´ ametros. en 4 de los 6 casos de mejora se tiene como valor al 5 (configuraciones 11.20 muestra los resultados obtenidos para esta instancia con cada una de las 48 combinaciones de par´ ametros. en la comparaci´ on de pares de configuraciones que s´olo difieren en este par´ametro y que resultaron en una mejora (configuraciones 4 vs 28. Si comparamos los pares de configuraciones que difieren u ´nicamente en este par´ ametro se observa que en 2 casos (configuraciones 11 vs 35 y 22 vs 46) fue beneficioso utilizar la generaci´ on de estas rutas. En los otros 2 casos (configuraciones 4 y 6). No hay ning´ un caso de mejora en el que la cota para dominancia relajada sea infinito. por lo tanto. 7 camiones y 13 camioneros. 14 vs 38. ya que para grupos de configuraciones similares (configuraciones 9 a 16) si la cota tiene un valor de 5 o de 3.7. 12 vs 36. con valor 190. no sucede esto. En 3 pares de casos con similar configuraci´on en donde se logr´o mejorar la soluci´on inicial (configuraciones 11 vs 12. como medianamente restringidas (configuraciones 11 a 14) y nada restringidas (configuraciones 4 y 6). 23 vs 47 y 24 vs 48) observamos que es beneficioso utilizar estas rutas frente a no utilizarlas. Pruebas preliminares Instancia 5 La instancia 5 consiste de 6 ciudades. se logra mejorar la soluci´on inicial y. dado que la soluci´on mejor´o modificando ese u ´nico par´ ametro. 43 y 44). 6 vs 30. 22. Se obtuvieron mejoras en la soluci´on inicial tanto en casos con rutas muy restringidas (configuraciones 23 y 24). 43 y 44) se restringi´o mucho la generaci´on de rutas. 11 vs 35. 13 vs 14 y 23 vs 24) el hecho de utilizar rutas complementarias fue irrelevante para la mejora: las soluciones alcanzadas son iguales tanto si se utilizan como si no. 13 vs 37. En 5 de los 6 casos de mejora (configuraciones 17. con valor 124. la generaci´on de rutas fue restringida. En esta instancia pareciera que los valores de 5 y 3 para la cota funcionan de la misma forma. La mejor soluci´on obtenida. 19. En cuanto al valor de la cota para dominancia relajada. 12 pedidos. Instancia 6 La instancia 6 consiste de 7 ciudades. En todos los casos de mejora de la soluci´on inicial. 8 camiones y 15 camioneros. si toma otro valor. de nuevo se encuentra dentro del caso correspondiente a una configuraci´on con generaci´on muy restringida de rutas. 19. La tabla A. La mejor soluci´on fue obtenida con esta u ´ltima configuraci´on. Resultados 7. En la tabla A. 10 pedidos. Hay 3 casos de mejora en los que se utilizaron rutas potencialmente beneficiosas y 3 casos en donde no. La mejor soluci´on.2. En otros 2 casos (configuraciones 17 vs 41 y 20 vs 44) ocurre lo contrario y en un caso (configuraciones 19 vs 43) result´o indistinto con respecto a la mejora. 65 . En todos los casos de mejora fueron utilizadas las rutas potencialmente beneficiosas.

3. Conclusiones En todas las instancias se obtuvieron buenos resultados al restringir la generaci´on de rutas. el hecho de utilizar o no las rutas complementarias no influy´o en la mejora de la soluci´on.3. aunque en la mayor´ıa de las instancias el hecho de poner un valor para la cota mejor´o la soluci´on en una mayor cantidad de veces que cuando no se estableci´o un l´ımite para la misma. en 3 casos (configuraciones 11 vs 12. se perjudica su performance. Estos resultados parecen indicar que el hecho de restringir las rutas a generar permite reducir el espacio de b´ usqueda del algoritmo de generaci´on sin quitarle la posibilidad de que encuentre rutas con costo reducido negativo para mejorar la soluci´on. es decir. no pudimos observar que alguno de los valores utilizados sea claramente mejor que los otros. sin embargo. Con respecto a las rutas complementarias. por ende. De esto podemos concluir que conviene fijarle un valor a la cota sin ajustarla demasiado. En todos los casos. 7. dado que a medida que se ajusta la cota se ampl´ıa el espacio de b´ usqueda del algoritmo de generaci´ on y. Hay configuraciones en las cuales el uso de las rutas complementarias mejor´ o la soluci´ on. se obtuvieron diversos resultados. y hay otras en las que se di´o el caso contrario. result´ o indistinto el uso de este tipo de rutas. los mejores resultados se dieron en configuraciones con la mayor restricci´on. 7. 66 . en la instancia 5 resulta evidente que los resultados son mejores al considerarlas. aunque tambi´en se obtuvieron mejoras para las configuraciones de restricci´on moderada. si comparamos los pares de configuraciones que difieren en el par´ ametro de uso de rutas complementarias y en donde hubo alguna mejora de la soluci´ on inicial. Pruebas finales En esta secci´ on presentaremos los resultados obtenidos para las pruebas sobre instancias de mayor tama˜ no que las utilizadas en las pruebas preliminares. Asimismo.2. Esto significa que una cota m´as ajustada no necesariamente permite obtener mejores resultados que una menos ajustada. En cuanto a la cota superior para dominancia relajada. y resultaron ser las instancias de mayor tama˜ no que pudimos procesar en el tiempo estipulado (12 hs. Resultados Con respecto a las rutas complementarias. En la mayor´ıa.40 GHz y 16 GB de RAM. 17 vs 18 y 19 vs 20) la mejora se da cuando no se utilizan rutas complementarias. por configuraci´on). no pudimos observar que una opci´on sea claramente mejor que la otra. Para el par´ ametro que indica la utilizaci´on de rutas potencialmente beneficiosas no pudimos establecer ninguna conclusi´on determinante. En la mayor´ıa de las instancias se obtuvieron resultados levemente mejores cuando no se consideraba el uso de estas rutas.7. Estas instancias cuentan con 10 ciudades y 16 pedidos. la aplicaci´ on de estas restricciones sobre la generaci´on de rutas tiene sentido desde el punto de vista pr´ actico. Pruebas finales 7. Con respecto al valor que toma la cota.3. Sin embargo. En la mayor´ıa. dado que se obtienen rutas que se concentran m´as en la realizaci´on de pedidos que en el traslado de camioneros entre ciudades sin un fin espec´ıfico. Realizamos estas TM R pruebas en una PC con procesador Intel Core i7 3. S´olo en un caso (configuraci´on 21 vs 22) la mejora se da cuando s´ı se utilizan rutas complementarias y en el u ´ltimo caso (configuraci´ on 43 vs 44) resulta indistinto. la mejor soluci´on se obtuvo con alguna de las configuraciones m´as restringidas.

decidimos tener tres alternativas de restricci´ on y combinarlas con todo el resto de los par´ametros. debido a que en algunos casos result´ o mejor utilizarlas frente a no hacerlo y en otros se dio lo contrario. decidimos utilizar las siguientes opciones de par´ ametros presentadas en la tabla 7. MPCD: 20 % • Medianamente restringida: MCCV: 2.2: Combinaciones de par´ametros para pruebas definitivas Para la categor´ıa de restricciones sobre la generaci´on de rutas decidimos utilizar tres alternativas de par´ ametros: • Muy restringida: MMCV: 1. En base a las conclusiones obtenidas en las pruebas preliminares. Configuraci´ on 1 2 3 4 5 6 7 8 9 10 11 12 Restricciones rutas MCCV CVR MPCD 1 NO 20 % 1 NO 20 % 1 NO 20 % 1 NO 20 % 2 NO 50 % 2 NO 50 % 2 NO 50 % 2 NO 50 % 4 NO 70 % 4 NO 70 % 4 NO 70 % 4 NO 70 % Cota 5 5 20 20 5 5 20 20 5 5 20 20 RPB NO SI NO SI NO SI NO SI NO SI NO SI Tabla 7. descartamos utilizar la opci´ on de infinito ya que observamos que en las pruebas preliminares no se obtuvieron buenos resultados. 5 y 20.7. Sobre las rutas complementarias observamos que en la mayor´ıa de los casos su utilizaci´on no influ´ıa en la mejora de las soluciones por lo que. 67 . con el resto de los par´ametros de forma de tener una opci´on de cota ajustada y otra menos ajustada seg´ un el tama˜ no de las instancias. En cuanto al par´ ametro de cota superior para dominancia relajada. fue necesario reducir la cantidad de configuraciones de par´ ametros para realizar las corridas. CVR: no. CVR: no.2. Decidimos combinar dos valores. Pruebas finales Par´ ametros Dado que las instancias consideradas en las pruebas finales son de mayor tama˜ no y requieren de mucho m´ as tiempo de procesamiento. MPCD: 50 % • Poco restringida: MMCV: 4. MPCD: 70 % Dado que seg´ un los resultados de las pruebas preliminares pudimos concluir que el hecho de restringir la generaci´ on de rutas daba buenos resultados. decidimos considerar ambas alternativas y combinarlas con todo el resto de los par´ametros. Resultados 7.3. en pos de reducir la cantidad de configuraciones.1. Con respecto a la utilizaci´ on de rutas potencialmente beneficiosas. decidimos descartar la utilizaci´on de las mismas para estas pruebas.3. 7. CVR: no.

Esto no se observa en el resto de las instancias.28 se muestran los resultados obtenidos para cada una de las 12 configuraciones de par´ametros. pas´o de un valor de 262. Instancia 8 La instancia 8 consiste de 10 ciudades. y sirve como medida de cu´ anto puede llegar a mejorar la soluci´on entera con respecto a la mejor que se tiene hasta ahora. que tiene un valor de 0 para el gap.32 se muestran los resultados obtenidos para las 12 configuraciones de par´ametros. En la tabla A. En estos casos se alcanzaron a generar m´as de 20. Esto nos lleva a pensar que la raz´on por la cual esto sucede no radica en el algoritmo sino en alguna caracter´ıstica particular de esta instancia. Esta configuraci´on concluy´o con un valor de 0 para el gap. Al igual que en el caso anterior la mejora se dio en una configuraci´on que hac´ıa uso de las rutas potencialmente beneficiosas. En las configuraciones 2. 3 y 9. 16 pedidos. Resultados Resultados computacionales A continuaci´ on presentamos los resultados de las corridas sobre las instancias de prueba finales. En este caso la mejora de la soluci´ on fue sustancial. 7. que consideran el uso de rutas potencialmente beneficiosas. en donde siempre se pudieron generar al menos dos rutas. as´ı como las tablas con los datos resultantes de las corridas pueden encontrarse en el ap´endice A. en las configuraciones 1.3. de la etapa de resoluci´on a 4 horas y la cantidad de iteraciones del algoritmo de resoluci´ on general a 200 para todas las instancias. 2. En la tabla A. el n´ umero de rutas generadas es 68 . En estas configuraciones. que son aquellas con mayor restricci´on en la generaci´ on. 3 y 4 se obtuvo un valor positivo para el gap. Las descripciones de cada instancia.3. 16 pedidos. donde mse es la mejor soluci´on entera encontrada hasta el momento y msr es la mejor soluci´ on de la relajaci´on lineal del problema.2. la soluci´ on obtenida ser´ıa mucho mejor que la de la configuraci´on 10. 10 camiones y 18 camioneros. El gap var´ıa entre 0 y 1. En esta configuraci´ on se hace uso de las rutas potencialmente beneficiosas logrando mejorar la soluci´on habiendo realizado una sola iteraci´on de la heur´ıstica. Asimismo. Se logr´ o mejorar la soluci´ on inicial en una u ´nica configuraci´on: la n´ umero 8. En esta instancia se logr´ o mejorar la soluci´on inicial en la configuraci´on n´ umero 10. La excepci´ on a la poca generaci´ on de rutas se da en la configuraci´on que logr´o mejorar la soluci´on inicial y en las configuraciones 1 a 4.000 rutas. 4 y 10. Estas pruebas fueron realizadas limitando el tiempo de la etapa de generaci´on de columnas a 8 horas. 8 camiones y 14 camioneros. 6. Este valor se computa como |mse − msr| / |mse|. se hubiera obtenido una soluci´on mejor que la obtenida con la configuraci´on n´ umero 8. Instancia 7 La instancia 7 consiste de 10 ciudades. en las configuraciones 1. Pruebas finales 7. 4 y 9). si la soluci´on mejorara tanto como lo indica el gap. si la soluci´ on hubiera mejorado tanto como indica el gap. dado que la misma se encuentra acotada por la mejor soluci´on de la relajaci´ on. En esta instancia tambi´en observamos que hay varias configuraciones que quedaron con un gap positivo. 7 a 167. Sin embargo. En muchas de las configuraciones (6 de 12) no se lleg´o a obtener ninguna ruta con costo reducido negativo.7. el hecho de que el valor del gap sea positivo puede deberse al gran n´ umero de rutas generadas. En las cuatro configuraciones con mayor valor de gap (configuraciones 1.

correspondientes a la mayor restricci´on sobre la generaci´on de rutas. se obtiene un valor positivo para el gap no pudiendo mejorar la soluci´on inicial. en algunos casos. que hacen uso de las rutas potencialmente beneficiosas. 69 . 8. Esto puede deberse a que estas dos u ´ltimas configuraciones hacen uso de las rutas potencialmente beneficiosas. en algunos se generaron muchas rutas (configuraciones 2.7. En ninguna de las dos se logr´o mejorar la soluci´ on inicial para ninguna de las configuraciones. 8. Esto tambi´en ocurri´o las configuraciones 1 y 3 las cuales no tienen en cuenta las rutas potencialmente beneficiosas. entonces la soluci´on ´optima hubiese resultado mejor que la obtenida con la configuraci´ on n´ umero 6 que concluy´o con un valor de 0 para el gap. Las primeras cuatro configuraciones. Esto se observa particularmente en las configuraciones 1 y 3. 3 y 4) se alcanz´o el l´ımite de las 200 iteraciones. 10 y 12) mientras que en otros no (configuraciones 1. concluyeron la etapa de generaci´on sin alcanzar el l´ımite de tiempo. En la tabla A. 16 pedidos. En ambas instancias se obtuvieron resultados muy similares. 10 y 12. En las configuraciones 2. En muchos de los casos el valor del gap result´o positivo y.44 se pueden ver los resultados de las corridas para cada una de las 12 configuraciones de par´ ametros de cada instancia respectivamente. si la soluci´on hubiera mejorado tanto como indica el gap. 3 y 7). Pruebas finales considerablemente menor y. Instancia 9 Esta instancia consiste de 10 ciudades. 16 pedidos. Instancias 10 y 11 La instancia 10 consiste de 10 ciudades. contribuyendo a que el mismo obtenga una soluci´ on en un menor tiempo. En tres de ellas (configuraciones 1. 6.3. lo cual permite obtener una cantidad mucho mayor de rutas y produce que la resoluci´on de la relajaci´ on lineal del problema en cada iteraci´on demore m´as. En todos los casos donde el valor del gap result´o positivo. 16 pedidos. la etapa de generaci´ on finaliz´ o realizando menos de 30 iteraciones. En esta instancia se logr´ o mejorar la soluci´on inicial en una u ´nica configuraci´on: la n´ umero 6. En las tablas A. 9 camiones y 16 camioneros. al igual que en el caso anterior. 4. En estos casos. en donde se llegaron a completar 26 y 30 iteraciones del algoritmo de generaci´ on exacto respectivamente. Esta configuraci´ on hace uso de las rutas potencialmente beneficiosas al igual que los casos de mejora en las instancias anteriores. Este resultado muestra c´ omo una fuerte restricci´on sobre la generaci´on de rutas reduce considerablemente el espacio de b´ usqueda para el algoritmo de generaci´on. 4. En las configuraciones donde la restricci´on de generaci´on es m´as estricta se observa que en dos de los casos (configuraciones 1 y 3) la etapa de generaci´on finaliz´o al alcanzarse el l´ımite de las 200 iteraciones mientras que en las restantes (configuraciones 2 y 4). ocurri´ o lo mismo que en las instancias anteriores: con s´olo 200 rutas generadas. 9 camiones y 16 camioneros. Resultados 7. 8 camiones y 18 camioneros.40 y A.36 se pueden ver los resultados de las corridas para cada una de las 12 configuraciones de par´ ametros. La instancia 11 consiste de 10 ciudades. se gener´o una gran cantidad de rutas y el valor del gap result´o positivo para todas ellas. el valor del gap result´o incluso mayor que en las otras.

Si bien creemos que el hecho de contar con m´as rutas generadas tiene un mayor potencial de mejorar la soluci´on inicial. hubo casos con pocas rutas generadas en donde el gap fue considerablemente grande. Es por esto que ser´ıa necesario realizar m´as pruebas para encontrar el equilibrio entre los tiempos de generaci´on y resoluci´on con el objetivo de encontrar soluciones factibles mejores a la inicial en un mayor n´ umero de casos. el hecho de generar m´as rutas hace necesario aumentar el tiempo dedicado a la etapa de resoluci´ on. De esta forma se pueden obtener una mayor cantidad de rutas lo que permite que en la etapa de resoluci´on se cuenten con m´as alternativas para mejorar la soluci´ on inicial. Pruebas finales 7. tambi´en produce que la etapa de resoluci´ on demore m´as. Las configuraciones con generaci´on de rutas m´as restringidas son las que lograron producir el mayor n´ umero de rutas y. en las configuraciones 1 y 3 de todas las instancias. podemos concluir que el l´ımite de tiempo que establecimos para la etapa de resoluci´on no fue suficiente. Esto se debi´ o a que dichas configuraciones hac´ıan uso de las rutas potencialmente beneficiosas.3.3. se generaron varias rutas de costo reducido negativo. Esto ocurre.3. 7. 5859 en la instancia 8 y 4636 en la instancia 9.7. Esto refuerza un poco la idea de que restringir fuertemente la generaci´on de rutas agiliza cada iteraci´on de la etapa de generaci´ on de columnas. Es importante aclarar que esto no sucede en todos los casos y. Resultados Conclusiones Todas las configuraciones que lograron mejorar la soluci´on inicial contaron con un n´ umero importante de rutas generadas: 874 en la instancia 7. por ejemplo. en la mayor´ıa de los casos. se completaron las 200 iteraciones establecidas. pareciera que a mayor cantidad de rutas. de hecho. en aquellos casos en donde no se utilizaron las rutas potencialmente beneficiosas. En general. Esto se puede observar en que. Dada la cantidad de configuraciones que terminaron con un valor de gap positivo. En relaci´ on a esto es importante rescatar que en base a lo mencionado anteriormente. por lo que en cada iteraci´on. m´as tiempo se requiere para la etapa de resoluci´ on. en donde se alcanzaron a realizar las 200 iteraciones generando de esta manera un total de 200 rutas. a mayor cantidad de rutas se obtiene un valor m´as grande para el gap. 70 . al punto de que ninguna de estas configuraciones logr´o finalizar con un valor de 0 para el gap. De esto podemos concluir que es importante buscar una combinaci´on de par´ametros que permita que se generen suficientes rutas como para que en la etapa de resoluci´on se tenga m´ as chance de conseguir una soluci´on factible mejor que la inicial.

Para esto desarrollamos un modelo de generaci´on basado en una red dirigida con recursos y restricciones que denominamos grafo de rutas. Sin embargo. Con el objetivo de mejorar el tiempo de ejecuci´on ideamos dos modificaciones que permiten reducir el espacio de b´ usqueda del algoritmo: restringir la estructura de las rutas a generar y relajar la relaci´ on de dominancia entre caminos. el problema de generar una columna de costo reducido negativo se tradujo a encontrar un camino de costo m´ınimo en el grafo de rutas. Como resultado. no pudo ser considerado en forma expl´ıcita con todas sus variables. no pudimos utilizar los algoritmos conocidos debido a que nuestro grafo considera recursos y restricciones sobre los mismos. El problema abordado conjuga varios aspectos de problemas conocidos como el Vehicle and Crew Scheduling Problem y el Pick-up and Delivery Problem with Time Windows.Cap´ıtulo 8 Conclusiones En este trabajo hemos propuesto un modelo de programaci´on lineal entera binaria junto con un m´etodo de generaci´ on de columnas para resolver un problema combinado de ruteo de veh´ıculos y scheduling de camioneros inspirado en un problema real. en muchos casos. Ambas modificaciones cumplieron el objetivo permitiendo mejorar el tiempo de ejecuci´on del algoritmo implementado. a´ un trat´ andolos en forma independiente. El objetivo de este modelo era llevar el problema de generaci´on de rutas a un problema conocido de forma de contar con recursos te´ oricos para poder resolverlo. Otro problema que present´ o la generaci´on de rutas fue que. no encontramos ning´ un problema en la literatura cuya definici´on agrupara las mismas caracter´ısticas que el tratado en este trabajo. Al no considerar el modelo en su totalidad. lo cual aumenta considerablemente la dificultad. Tanto el problema de ruteo de veh´ıculos como el de scheduling de conductores son dif´ıciles de resolver computacionalmente. Por este motivo implementamos la generaci´on de dos tipos de rutas: poten71 . El problema que surgi´o al implementarlo fue que no era lo suficientemente eficiente en t´erminos de tiempo de ejecuci´ on para utilizarlo en todas las iteraciones del algoritmo de resoluci´on general. las columnas generadas mediante este m´etodo no conformaban una soluci´on factible entera para el problema. en contraposici´on a resolverlos de manera secuencial. Como consecuencia de esto tuvimos que plantear un modelo de programaci´on lineal original. Por este motivo desarrollamos un algoritmo basado en la t´ecnica de programaci´ on din´ amica que nos permite obtener un camino de costo ´optimo que verifique las restricciones sobre los recursos que considera el grafo de rutas. El objetivo de este trabajo fue resolver ambos problemas con un enfoque integrado. decidimos utilizar la t´ecnica de generaci´on de columnas para generar aquellas variables que representan los posibles recorridos que puede realizar un veh´ıculo. Si bien el problema de camino m´ınimo sobre un grafo est´a bien resuelto. el cual. dada la gran cantidad de caracter´ısticas que tiene el problema.

Como mencionamos en el cap´ıtulo 7. Las variantes implementadas sobre el algoritmo de generaci´ on de columnas constituyen un conjunto de par´ametros que nos permite considerar una amplia gama de opciones al momento de resolver el problema. Conclusiones cialmente beneficiosas y complementarias. Ser´ıa interesante analizar qu´e impacto tienen estas restricciones en el m´etodo de generaci´on que desarrollamos y. el estudio exhaustivo de las combinaciones de par´ametros es muy costoso y. no permite garantizar que en el resto de los nodos del ´arbol no se den las condiciones para que esto s´ı suceda. Sin embargo. a nuestro conocimiento. ser´ıa interesante analizar optimizaciones sobre esta etapa con el objetivo de mejorar estos resultados. resulta dif´ıcil juzgar la calidad de los mismos dado que. En las instancias de mayor tama˜ no tambi´en se logr´o mejorar la soluci´on con algunas combinaciones de par´ ametros. Como conclusi´ on de los resultados obtenidos en las instancias de mayor tama˜ no consideramos que necesitamos incrementar el l´ımite de tiempo de ejecuci´on. por lo tanto. aunque la mejora fue menor con respecto a las instancias m´as chicas. de ser posible. aunque consideramos que fue interesante la implementaci´on de estas ideas como alternativa a la generaci´on de columnas tradicional. no pudimos obtener una conclusi´ on s´olida acerca de la utilizaci´on de estas rutas.8. El hecho de que el algoritmo de generaci´ on no sea capaz de encontrar nuevas columnas de costo reducido negativo para este nodo. De la misma forma que redefinimos la relaci´on de dominancia con el objetivo de reducir el espacio de b´ usqueda del algoritmo. resulta dif´ıcil determinar que combinaciones conducen a buenos resultados. la soluci´on inicial pudo mejorarse con varias de las combinaciones de par´ametros utilizadas. 72 . no contamos con resultados previos con los cuales poder realizar una comparaci´on. El algoritmo de resoluci´ on general propuesto en este trabajo contempla la generaci´on de columnas u ´nicamente en el nodo ra´ız del ´arbol de Branch and Cut. en particular para la etapa de resoluci´ on. al tratarse de un problema sin antecedente en la literatura. Como contrapartida. Este m´etodo es conocido como Branch and Price e implicar´ıa que el m´etodo de generaci´on de columnas sea capaz de considerar las restricciones locales de branching para cada nodo. implementarlo. se podr´ıan analizar otras posibles formas de relajaci´on de esta relaci´ on de manera de reducir el tiempo de ejecuci´on del mismo. Otro aspecto sobre el que ser´ıa atractivo profundizar ser´ıa considerar optimizaciones para el algoritmo de camino ´ optimo utilizado en la etapa de generaci´on de columnas. Con respecto a los resultados obtenidos. Estas alternativas al mecanismo tradicional de generaci´on de columnas son un aporte original de este trabajo y. no analizamos optimizaciones sobre el algoritmo de Branch and Cut utilizado para resolver el problema principal. Dado que en muchas de las pruebas que realizamos no se alcanz´o el ´optimo dadas las columnas consideradas. Algunas de estas optimizaciones podr´ıan ser la aplicaci´on de cortes espec´ıficos o generales y la utilizaci´ on de distintas estrategias de branching. En este trabajo se hizo hincapi´e en implementar optimizaciones para el subproblema de generaci´ on de columnas. Trabajo a futuro La necesidad de acotar el alcance del trabajo nos condujo a relegar ciertos aspectos que consideramos hubieran sido interesantes de explorar. En todas las instancias relativamente chicas sobre las que se realizaron pruebas. no tienen antecedente de haber sido implementadas. para ver si se logra mejorar la soluci´on inicial en un mayor n´ umero de casos.

Ser´ıa interesante analizar si existe alguna relaci´on entre estas caracter´ısticas estructurales de las instancias y la combinaci´on de par´ametros que mejor resultado obtiene para cada una de ellas. Si bien por el momento las instancias de prueba tratadas no son de un gran tama˜ no. 73 . y la distribuci´on tanto temporal como espacial de los pedidos.8. en forma conjunta. la ubicaci´ on inicial de los camiones y camioneros. Conclusiones Otro aspecto que no estudiamos fue el impacto que tiene la estructura de una instancia del problema en el comportamiento del algoritmo de resoluci´on general. confiamos en haber sembrado una semilla para el tratamiento de este problema con mayor profundidad. que combina caracter´ısticas de varios problemas ya conocidos. Hasta donde llega nuestro conocimiento. un problema de ruteo de veh´ıculos y scheduling de conductores surgido de la pr´ actica. la innovaci´on de nuestro trabajo consiste en haber considerado. Algunas caracter´ısticas que se podr´ıan considerar son: la distribuci´on de las ciudades en el mapa.

Nemhauser. Erasmus Universiteit Rotterdam. May 2008.Bibliograf´ıa [Chv83] Vaˇsek Chv´ atal. Irnich and G. Golden and S. 1958. 2004. Freeman and Company. Numerische Mathematik. Desaulniers. Outline of an algorithm for integer solutions to linear programs. 35(5):1562–1575. 2003. [Ge08] Bruce L. La Fabrication d’ Horaires de Travail pour les Conducteurs d’ Autobus par une M´ethode de G´en´eration de Colonnes. [Kar84] Narenda Karmankar. Technical Report G-2004-11. Gomory. Res. Rotterdam. Freling. [Hui04] Dennis Huisman. Combinatorica. E. 16:265–280. An exact algorithm for the vehicle and crew scheduling problem. Nederland. Algorithm 97: Shortest path. H.. 2008. Quebec. D. 1962. 1986. [ID04] S. A note on two problems in connexion with graphs. and A. [Dij59] Edsger W. IBM. Comput. 5(6):345.P. Set partitioning/covering-based approaches for the integrated vehicle and crew scheduling problem. (4):373–395. [Flo62] Robert W. 10. Canada. Linear Programming. [GP79] Martin Gr¨ otschel and Manfred W.1007/BF01582116. Canada. [Gom58] R. Universit´e de Montr´eal. PhD thesis. Springer. Models and algorithms for integration of vehicle and crew scheduling. [MP08] Marta Mesquita and Ana Paias. PhD thesis. HEC Montr´eal. Commun.M Wagelmans. Oper. 1959. 1996. and Martin W. R R [IBM10] IBM . Shortest path based column generation on large networks with many resource constraints. 1979. Shortest Path Problems with Resource Constraints. 1983. [ENS08] Faramroze G. [Des86] Martin Desrochers. The Vehicle Routing Problem: Latest Advances and New Challenges (Operations Research/Computer Science Interfaces Series). Mathematical Programming. George L. 1984. A New Polynomial Time Algorithm for Lineal Programming. Dijkstra. ACM. 2004. [FH96] Christian Friberg and Knut Haase. 64:275–278. Huisman. On the Symmetric Travelling Salesman Problem I: Inequalities. Padberg. User’s Manual for CPLEX . 2010. Raghavan editors. Floyd. Montr´eal. 1:269–271. Les Cahiers du GERAD. Centre de recherche sur les Transports. 2008. W. Montr´eal. Bulletin of the American Society. P. 74 . Integrated and Dynamic Vehicle and Crew Scheduling. [FHW03] R. Savelsbergh. Engineer.

Mathematical Programming. 5:199–215. editors. Padberg.BIBLIOGRAF´IA BIBLIOGRAF´IA [Pad73] M. October 1981. On the Facial Structure of Set Packing Polyhedra. SIAM. Inc. W. John Wiley & Sons. 28(4):765–768. [Wol98] Laurence A. [Pap81] Christos H. Papadimitriou. Paderborn. Fakult¨at f¨ ur Wirtschaftswissenschaften der Universit¨at Paderborn. Topics in Integrated Vehicle and Crew Scheduling in Public Transport. 2007. On the complexity of integer programming. 2002. J. Deutschland. [TV02] Paolo Toth and Daniele Vigo. ACM. Integer Programming. PhD thesis. 75 . Wolsey. The Vehicle Routing Problem. [Ste07] Ingmar Steinzen.. Monographs on Discrete Mathematics and Applications. 1973. 1998.

0 7.5 4.0 9.0 9.1.5 4.5 3.5 9.0 0. camiones 1 0 2 1 1 2 Cant.1.1: Cantidad de camiones y camioneros por ciudad en el momento inicial 0.0 7.0 4.0 5. Instancia 1 A.5 9.5 4.5 7. camioneros 2 1 3 2 3 2 Verona Bologna Genova Venecia Florencia Milan Verona Bologna Genova Venecia Florencia Milan Tabla A.5 0.5 10.5 5.5 6.5 6.0 10.0 9.5 7.0 4.5 7.5 7.25 9. Definici´ on de la instancia Ciudad Milan Verona Bologna Genova Venecia Florencia Cant.5 0.0 4.1.5 7.25 7.0 Tabla A.0 4.Ap´ endice A Instancias de pruebas A.0 3.0 0.2: Tiempo de viaje entre ciudades (en horas) • Horizonte de planificaci´ on: T = 6 • Cantidad de momentos diarios: K = 24 • Penalidad por viaje sin mercader´ıa. por unidad de tiempo: β = 4 • Costo de viaje por unidad de tiempo: α = 1 • M´axima cantidad de momentos que un cami´on puede estar detenido: M 0 = 12 76 .0 4.5 0.

5 8 9 7 15 11.5 12 7. 7] [10. 9] [1. 21] [15. 18] [14. 4] [6. 20] Penalidad diaria 10 13. 12] [4. 7] [5. 13] [16. 13] [19. Instancias de pruebas A. 17] [10. 3] [10. 18] [9. 8] Ciudad Verona Genova Venecia Florencia Venecia Milan Verona Verona Milan Verona D´ıa Ventana 0 1 2 3 1 1 3 1 0 2 [5. 11] [10. 20] [4.1. 8] [3. 7] [18. 8] [3. Instancia 1 Pick-up Pedido 1 2 3 4 5 6 7 8 9 10 Ciudad Milan Verona Bologna Genova Florencia Genova Bologna Venecia Florencia Genova Drop-off D´ıa Ventana 0 1 2 2 0 1 2 1 0 2 [2.5 Tabla A.3: Pedidos 77 . 13] [16.5 9.A.

36 0 0 0.03 0 0 0 0 0 0 0 0 0 0 0 0 0 0. Instancia 1 Resultados Heur´ıstica Exacto RPB RC Total # Rutas Resoluci´on # Iteraciones Generaci´on Tiempos Sol.2.4: Instancia 1 .36 0 0 0 0.resultados 78 . Instancias de pruebas 167 167 167 167 127 167 167 167 167 167 167 132 159. inicial 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 Soluci´on Gap Configuraci´on Mejor sol.1.5 167 167 167 107 107 107 167 107 107 167 112 167 167 167 167 167 167 167 167 132 132 157 157 163 163 167 167 167 107 107 107 107 107 107 107 0 0 0 0 0 0 0 0 0 0 0.A.36 0 0 0 0 0 0 0 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 601 601 601 601 601 602 601 604 601 601 601 601 601 602 601 605 75 73 74 464 159 424 580 610 601 601 601 601 601 601 601 601 601 601 601 601 601 601 601 601 109 118 56 59 25 33 32 60 6 7 7 6 25 7 2 3 7 7 300 36 15 3 3 3 13 12 99 300 8 97 300 21 11 9 300 46 7 7 7 8 20 19 15 20 20 17 7 7 300 41 23 7 83 18 11 101 7 7 6 5 5 2 2 2 8 8 6 3 5 1 1 1 20 20 14 11 18 16 20 2 4 4 30 8 4 4 1 1 10 13 5 5 7 7 1 1 12 19 22 24 17 19 18 30 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 11 11 5 4 3 5 1 0 1 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 4 5 7 5 4 6 0 1 0 0 455 283 1524 426 893 893 0 0 1147 567 1351 652 1330 1330 0 0 1291 1369 1423 1003 4531 646 197 197 0 0 0 0 0 0 259 254 0 0 0 0 0 0 1418 1431 0 0 0 0 0 0 0 0 0 64 0 70 0 8 0 0 0 166 0 110 0 8 0 0 0 676 0 518 0 295 0 0 0 2 0 2 0 0 0 4 0 2 0 3 0 0 0 2 0 5 0 4 0 3 6 6 460 351 1528 497 894 902 7 7 1152 735 1356 763 1331 1339 31 31 1310 2060 1444 1542 4552 943 202 202 30 10 5 7 1 1 270 272 6 8 7 10 1 1 1434 1457 29 34 21 29 18 34 Tabla A. A.1.05 0 0 0 0 0 0 0 0 0. A.

0 5.0 8.0 11.0 2.0 7. [0. [0. Instancia 2 A.0 0.2.1 11.0 4.0 4. 23] 23] 23] 23] 23] 23] Ciudad Madrid Barcelona Paris Lyon Paris Malaga D´ıa 0 0 0 0 0 0 Ventana [0.5: Cantidad de camiones y camioneros por ciudad en el momento inicial 0.0 8.0 7.0 10.0 2. Definici´ on de la instancia Ciudad Paris Barcelona Malaga Madrid Lisboa Lyon Cant.0 0.6: Tiempo de viaje entre ciudades (en horas) Pick-up Pedido Ciudad D´ıa 1 2 3 4 5 6 Malaga Madrid Malaga Lisboa Lyon Lisboa 0 0 0 0 0 0 Drop-off Ventana [0.0 5. Instancias de pruebas A.0 3.0 0. [0.2.0 5.0 0. 23] 23] 23] 23] 23] 23] Penalidad diaria 15 26 8 14 3. [0. [0. [0.0 5. camioneros 2 2 3 3 0 1 Barcelona Malaga Madrid Lisboa Lyon Paris Barcelona Malaga Madrid Lisboa Lyon Paris Tabla A. [0.3 Tabla A. Instancia 2 A.0 0.0 10.0 6.A. camiones 1 0 1 1 0 1 Cant.0 3.0 3.0 4.0 3. [0.0 7.7: Pedidos • Horizonte de planificaci´ on: T = 10 • Cantidad de momentos diarios: K = 24 • Penalidad por viaje sin mercader´ıa. [0.0 7. [0.0 4.0 Tabla A.0 4.0 3.0 6.0 4.1.0 3. por unidad de tiempo: β = 4 • Costo de viaje por unidad de tiempo: α = 1 • M´axima cantidad de momentos que un cami´on puede estar detenido: M 0 = 12 79 .2.0 11.

37 0.3 145.3 145. Instancia 2 A.09 0 0 0 0 145. A.3 145.3 145.2.3 145.2.3 145.3 145.resultados 80 .3 145.3 145.3 145.3 145.3 145.3 145.3 145.3 145.3 145.3 145.3 145.3 145.3 145.3 97.3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 145.3 145.27 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 145.3 145. Instancias de pruebas Resultados Resoluci´on Heur´ıstica Exacto RPB RC Total # Rutas Generaci´on # Iteraciones Sol. Configuraci´on 125.3 145.46 0.3 145.3 145.3 145.27 0.3 145.3 145.3 145.3 145.3 145.3 145.3 145.3 145.3 145.2 145.3 145.3 144.3 145.09 0.3 145.3 145.3 125.8: Instancia 2 .28 0.3 601 601 601 601 601 601 601 601 601 1880 601 601 601 601 601 601 143 231 601 631 601 645 601 601 601 601 601 601 601 601 601 601 601 601 601 601 601 601 601 601 79 601 469 601 601 601 601 601 62 27 22 22 23 22 22 22 50 100 22 22 21 22 23 23 300 301 300 301 300 301 21 21 19 21 19 20 20 19 19 19 53 21 20 20 18 18 19 18 61 121 300 300 27 23 19 19 4 2 0 0 0 0 0 0 4 5 0 0 0 0 0 0 30 33 1 1 1 1 0 0 1 1 0 0 0 0 0 0 2 1 1 1 0 0 0 0 5 14 36 12 26 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 3 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 728 728 1164 1164 0 0 51 51 0 0 0 0 0 0 121 54 0 0 0 0 0 0 313 1757 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 2 0 51 0 11 0 0 0 44 0 0 0 0 0 0 0 46 0 0 0 0 0 0 0 511 0 1 0 2 0 0 4 4 0 0 0 0 0 0 4 8 0 0 0 0 0 0 31 37 729 780 1165 1176 0 0 52 96 0 0 0 0 0 0 123 101 1 1 0 0 0 0 319 2282 39 13 27 13 0 0 Tabla A.3 145.3 145.3 145.3 145.3 96 140.3 145.3 145.1 145.3 145.3 145.3 145.3 140.3 145. inicial Tiempos Gap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 Soluci´on Mejor sol.A.2.3 78 78 124 142 124.3 145.3 145.27 0.3 145.3 145.3 145.3 145.3 140.3 145.3 145.3 145.3 145.3 145.3 145.3 95 145.3 145.3 145.3 145.3 145.3 145.3 145.3 145.3 145.3 145.3 145.3 145.3 145.3 145.3 145.3 145.

19] Penalidad diaria 15 26 8 14 3. 23] [5.9 7.9 2.1 Tabla A. Definici´ on de la instancia Ciudad Tucson Phoenix Los Angeles Las Vegas San Diego Albuquerque Cant.0 12.0 12.3 5. 7] [2.0 0.0 7. 18] [9.25 2. Instancia 3 A.8 5.3.3 5.75 7.9: Cantidad de camiones y camioneros por ciudad en el momento inicial 0.0 9.8 7. 5] [18. 12] [9.75 6.75 6.3 7.10: Tiempo de viaje entre ciudades (en horas) Pick-up Pedido 1 2 3 4 5 6 7 8 Ciudad Tucson San Diego Los Angeles Las Vegas Albuquerque San Diego Phoenix Los Angeles Drop-off D´ıa Ventana 1 1 0 0 0 0 0 0 [0.0 4.0 5.0 5. 5] [10.0 Tabla A. camiones 1 0 1 1 2 1 Cant. Instancia 3 A.75 0.0 6.25 0.A. 12] [19.0 7. Instancias de pruebas A. 23] [15. 8] [9.0 7.0 6.45 9. 23] [14.9 12.0 6.11: Pedidos • Horizonte de planificaci´ on: T = 8 • Cantidad de momentos diarios: K = 24 • Penalidad por viaje sin mercader´ıa. por unidad de tiempo: β = 4 • Costo de viaje por unidad de tiempo: α = 1 • M´axima cantidad de momentos que un cami´on puede estar detenido: M 0 = 12 81 .1 11. 18] [0.3. 14] [0.8 6. camioneros 2 2 3 1 2 2 Phoenix Los Angeles Las Vegas San Diego Albuquerque Tucson Phoenix Los Angeles Las Vegas San Diego Albuquerque Tucson Tabla A.3 4.1.3.0 12.0 12.45 0.0 1.0 5.0 1. 23] Ciudad Phoenix Las Vegas Las Vegas Albuquerque Tucson Albuquerque Albuquerque Phoenix D´ıa Ventana 2 1 0 0 0 1 1 0 [3.0 0. 13] [13. 14] [0.

8 159.2.8 215.8 215.8 215.8 215.3.8 215.8 215.8 215.8 215.8 141.12: Instancia 3 .8 215.8 215.8 215.8 215.7 215.A.54 0 0.8 215.8 601 601 601 616 601 604 601 601 601 601 601 623 601 605 601 601 132 112 641 610 610 643 593 615 601 606 601 601 601 601 601 601 601 601 601 601 601 601 601 601 612 603 320 368 270 232 601 601 41 42 300 20 13 12 15 16 300 300 23 117 285 12 15 15 301 301 300 302 301 300 301 53 300 18 15 14 12 13 15 15 147 15 15 15 15 15 15 15 300 300 301 60 23 19 300 115 7 6 3 1 1 1 0 0 25 9 1 1 2 1 0 0 45 46 12 6 6 2 16 1 4 2 5 5 2 2 0 0 6 4 4 4 3 3 0 0 39 20 42 46 36 47 13 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 4 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 1 8 4 6 3 0 3 0 0 1226 307 561 561 0 0 0 0 501 501 921 566 0 0 0 0 5084 785 4466 1394 3706 358 239 244 0 0 0 0 0 0 180 35 0 0 0 0 0 0 2079 2119 0 0 0 0 0 0 0 1 0 49 0 21 0 0 0 1 0 40 0 18 0 0 0 4 0 422 0 177 0 57 0 71 0 1 0 0 0 0 0 3 0 0 0 0 0 0 0 313 0 17 0 8 0 9 7 7 1229 357 562 583 0 0 25 10 502 542 923 585 0 0 50 54 5096 1213 4472 1573 3723 416 243 317 5 6 2 2 0 0 186 42 4 4 3 3 0 0 2123 2453 50 67 42 58 13 57 Tabla A.8 215.8 215.8 215.8 215.26 0 215.32 0.8 124.8 215.8 215.8 215.8 215.8 215.8 215.8 215. Configuraci´on 190.7 215.8 215.8 215.8 165.8 215.8 215.8 215.1 144.8 215.8 215.8 215. Instancia 3 A.41 0.7 215.8 215.8 215.8 215.8 215.8 215.8 215. inicial Tiempos Gap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 Soluci´on Mejor sol.34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.8 215.01 0 0 0 0 0 0 0. Instancias de pruebas Resultados Resoluci´on Heur´ıstica Exacto RPB RC Total # Rutas Generaci´on # Iteraciones Sol.8 215.3.46 0.8 215.8 215.8 215.26 0.1 105 107.8 215.51 0.17 0 0 0 0.7 190.8 215.8 215.8 215.8 215.8 215.8 215.8 215.8 215.8 215.8 215.6 107.8 215.8 215.49 0.8 116 0 0 0.8 215.8 215.resultados 82 .8 215.8 215.8 215.8 215.8 215.8 215.8 215.8 215.52 0.8 215.8 215.8 215.32 0.1 215.8 215.8 215.8 215.8 215.7 215.34 0 0 0 0 0 0.8 215.8 215.8 215.8 215.8 215.42 0.8 215. A.

5 8.75 6.15 5. 22] [14.8 8. 4] Ciudad Washington Cleveland Washington Cincinnati Cleveland Cleveland Cincinnati Chicago Chicago Indianapolis D´ıa Ventana 1 2 2 2 2 1 0 1 0 0 [9.0 0.0 Tabla A.3 2.0 7. 17] [16.15 2. 13] [17.4. 16] [13.4 0.7 11.13: Cantidad de camiones y camioneros por ciudad en el momento inicial 0.0 8. 23] [12.0 5. Instancia 4 A. Instancia 4 A.14: Tiempo de viaje entre ciudades (en horas) Pick-up Pedido 1 2 3 4 5 6 7 8 9 10 Ciudad Indianapolis Cincinnati Atlanta Chicago Chicago Atlanta Cleveland Atlanta Cincinnati Atlanta Drop-off D´ıa Ventana 0 1 0 0 0 0 0 1 0 0 [2.0 5.9 5 Tabla A.4.A.4 6 4.1.25 10. 22] [19. 8] [8.0 3. 20] [11. 13] [12.5 5.5 3. camiones 2 1 0 1 1 1 Cant. 8] [13.0 0.25 9. Instancias de pruebas A. 14] [13.5 10. 18] [2.4.0 5. 7] [14. 8] Penalidad diaria 3.0 0.2 3.75 2.9 7. 22] [18. 18] [0.4 7.5 11. por unidad de tiempo: β = 1.5 6.0 6.6 • Costo de viaje por unidad de tiempo: α = 1 • M´axima cantidad de momentos que un cami´on puede estar detenido: M 0 = 12 83 .75 4.1 3. 16] [3. 14] [1.75 12.6 1.0 12.8 4.5 9. Definici´ on de la instancia Ciudad Atlanta Cincinnati Chicago Washington Cleveland Indianapolis Cant.0 8.3 1. camioneros 2 2 1 2 2 3 Cincinnati Chicago Washington Cleveland Indianapolis Atlanta Cincinnati Chicago Washington Cleveland Indianapolis Atlanta Tabla A.7 5. 9] [4.15: Pedidos • Horizonte de planificaci´ on: T = 8 • Cantidad de momentos diarios: K = 24 • Penalidad por viaje sin mercader´ıa.0 6.5 0.

1 212.3 601 601 601 601 601 601 601 601 601 601 601 617 601 601 601 601 381 379 601 642 601 601 601 616 601 601 601 601 608 608 248 392 610 610 601 601 601 601 601 601 601 601 601 601 601 601 601 601 11 12 14 14 14 15 15 14 11 11 300 300 14 14 15 14 85 84 300 300 302 33 23 115 15 15 14 14 301 300 300 300 304 300 300 300 15 15 19 19 19 19 14 14 11 11 9 20 2 2 0 0 0 0 0 0 2 2 1 1 0 0 0 0 23 23 16 4 4 1 1 1 0 0 0 0 22 25 44 46 41 27 15 5 2 2 0 0 0 0 0 0 2 2 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 27 27 0 0 0 0 0 0 0 0 0 0 2 2 6 4 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 546 546 0 0 0 0 0 0 3888 1634 3254 203 444 444 0 0 0 0 2191 1968 0 0 0 0 0 0 3 3 0 0 0 0 0 0 3 3 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 540 0 70 0 9 0 0 0 0 0 35 0 11 0 6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 2 2 0 0 0 0 0 0 2 2 547 548 0 0 0 0 50 50 3904 2178 3258 274 445 454 0 0 0 0 2215 2030 50 61 46 33 15 6 5 5 0 0 0 0 0 0 5 5 3 0 Tabla A.3 212.3 212.3 212.03 0.3 212.3 212.3 212.3 212.7 212.3 212.3 212.3 212.3 212.3 212. Configuraci´on 212.2.3 212.3 212.3 212.3 212.3 212.3 212.3 212.2 0.3 212.23 0.3 212.3 212. A.1 165.3 212.3 212.3 212.16 0 0 0 0 0 0 0.3 212.16 0.3 212.3 212.3 0.3 212.3 212.3 212.3 212.3 212.26 0.3 212.3 212.3 212.3 212.3 212.3 212.3 212.3 212.3 212.3 212.3 212. inicial Tiempos Gap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 Soluci´on Mejor sol.3 212.3 212.3 212.3 212.3 212.3 212.3 212.3 212.02 0 0 0 0 0 0 0 0 0 0 0 0 212.3 212. Instancia 4 A.3 212.21 0 0 0 0 0 0 0 0.3 212.3 212.3 212.16 0.3 212.3 212.3 212.26 0.3 212.3 212.3 208.3 212.3 212.A.4.3 0 0 0 0 0 0 0 0 0 0 0.3 212.resultados 84 .3 212.3 212.16: Instancia 4 .3 212.3 212.3 212.3 212.3 212.3 212.3 212.4.3 212.3 212.3 212.3 212.22 0.3 212.3 212.3 165.3 212.3 212.3 185.3 212.3 212.3 212.3 212.14 0.3 212.3 212. Instancias de pruebas Resultados Resoluci´on Heur´ıstica Exacto RPB RC Total # Rutas Generaci´on # Iteraciones Sol.

6] [16.5 Tabla A.25 3.0 4. [9.8 2.3 8. [19. [14.0 Tabla A.25 0.8 5. 11] [4.7 0.7 8. Instancias de pruebas A. camiones 2 1 1 2 0 1 Cant.2 3. 10] Ciudad Bilbao Zaragoza C´ordoba Zaragoza Barcelona Madrid C´ordoba Barcelona C´ordoba Barcelona D´ıa 0 2 2 3 1 1 3 1 0 2 Ventana [8.6 0. [16.0 3. Definici´ on de la instancia Ciudad Madrid C´ ordoba Valencia Barcelona Bilbao Zaragoza Cant.2 6.5 8 9 7 15 11.19: Pedidos • Horizonte de planificaci´ on: T = 6 • Cantidad de momentos diarios: K = 24 • Penalidad por viaje sin mercader´ıa.0 5. 7] [5.1. Instancia 5 A.0 2. por unidad de tiempo: β = 6 • Costo de viaje por unidad de tiempo: α = 1 • M´axima cantidad de momentos que un cami´on puede estar detenido: M 0 = 12 85 . 10] 16] 21] 21] 13] 14] 11] 21] 18] 20] Penalidad diaria 10 13.5. [16. 8] [4. 3] [9.7 3.45 7.0 2.0 5. 10] [3.2 3.5. [10.2 5.0 7.7 0.18: Tiempo de viaje entre ciudades (en horas) Pick-up Pedido 1 2 3 4 5 6 7 8 9 10 Ciudad Madrid Barcelona Bilbao Valencia Madrid Zaragoza Bilbao Valencia Madrid Valencia Drop-off D´ıa Ventana 0 1 2 2 0 1 2 1 0 2 [3. camioneros 3 2 0 4 2 2 C´ordoba Valencia Barcelona Bilbao Zaragoza Madrid C´ ordoba Valencia Barcelona Bilbao Zaragoza Madrid Tabla A.5 9.5. [19.45 4.5 12 7.3 3.0 8. [10. 18] [6.0 4.2 4.A.6 5.0 8. Instancia 5 A.17: Cantidad de camiones y camioneros por ciudad en el momento inicial 0.25 5. [14.8 6.0 3. 7] [7.2 2.25 0. 8v [1.8 3.

Instancias de pruebas Resultados Resoluci´on Heur´ıstica Exacto RPB RC Total # Rutas Generaci´on # Iteraciones Sol.5.14 0 0 0 0 0 0 0 0 0 0. inicial Tiempos Gap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 Soluci´on Mejor sol. A.resultados 86 .17 0 0 0.44 0.A.2.43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0.35 0.51 312 312 312 312 312 312 312 312 312 312 312 312 312 312 312 312 312 312 312 312 312 312 312 312 312 312 312 312 312 312 312 312 312 312 312 312 312 312 312 312 312 312 312 312 312 312 312 312 601 601 601 611 601 615 601 601 601 601 601 612 601 613 601 621 127 166 490 613 602 601 601 610 134 586 601 290 217 601 601 601 601 601 601 601 601 601 601 601 601 601 601 601 601 601 601 163 7 7 300 219 300 197 9 7 7 7 274 162 142 271 300 300 300 300 301 301 300 300 172 109 301 300 300 300 301 8 7 7 7 9 8 7 7 8 8 7 7 8 12 19 9 8 8 301 2 2 1 1 1 1 0 0 2 2 1 1 1 1 1 1 45 44 17 2 14 1 1 1 8 42 21 43 49 2 2 1 1 3 3 2 2 0 0 1 1 5 3 0 3 0 0 19 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 6 1 0 0 0 0 0 3 8 3 7 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 0 0 343 343 511 511 0 0 0 0 374 374 538 538 1477 1477 0 0 7480 1652 8603 128 577 577 577 0 0 0 0 0 0 5 5 0 0 0 0 0 0 5 5 0 0 0 0 0 0 1004 0 0 0 62 0 27 0 0 0 0 0 76 0 28 0 0 0 13 0 271 0 67 0 5 363 0 5 0 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 344 406 512 539 0 0 2 2 375 451 539 567 1478 1478 50 63 7498 1925 8617 196 578 583 951 50 29 50 59 2 2 6 6 3 3 2 2 0 0 6 6 5 3 0 3 0 0 1028 Tabla A.5.2 0.18 0.20: Instancia 5 .47 0.15 0 0.5 0.41 0.46 0.09 0.52 0. Configuraci´on 312 312 312 264 312 267 312 312 312 312 256 256 267 267 312 312 312 312 312 312 312 312 190 190 312 312 312 312 312 312 312 312 312 312 312 312 312 312 312 312 312 312 312 312 312 312 312 312 0 0 0. Instancia 5 A.

camiones 2 1 1 1 2 0 1 Cant.75 2.6.75 2.25 5.1 3. Definici´ on de la instancia Ciudad Berlin Hannover Hamburg Koln Frankfurt Stuttgart Munchen Cant.4 3.5 5.6.0 1.0 6. por unidad de tiempo: β = 6 • Costo de viaje por unidad de tiempo: α = 1 • M´axima cantidad de momentos que un cami´on puede estar detenido: M 0 = 12 87 .75 2.1 6.6 2.85 0. Instancia 6 A.75 6.25 5.22: Tiempo de viaje entre ciudades (en horas) • Horizonte de planificaci´ on: T = 6 • Cantidad de momentos diarios: K = 24 • Penalidad por viaje sin mercader´ıa.15 7.9 0.5 1.0 3.0 7.21: Cantidad de camiones y camioneros por ciudad en el momento inicial 0.6 0.A.75 6.8 5.8 1.0 6.5 2.25 5.15 3. camioneros 3 2 2 0 4 2 2 Hannover Hamburg Koln Frankfurt Stuttgart Munchen Berlin Hannover Hamburg Koln Frankfurt Stuttgart Munchen Berlin Tabla A. Instancia 6 A.0 2.25 4.2 0.0 5.0 Tabla A.75 0.5 6.4 5.85 4.0 5.4 2.0 2.0 2.2 5.0 2.85 3.85 3.0 0.1.0 3.9 3.6. Instancias de pruebas A.0 1.4 5.

5 12 7. 8] [7.A. [9. 10] [5. Instancias de pruebas Pick-up Pedido 1 2 3 4 5 6 7 8 9 10 11 12 Ciudad Berlin Hamburg Munchen Koln Hannover Stuttgart Hamburg Berlin Frankfurt Munchen Hamburg Koln Drop-off D´ıa Ventana 0 1 2 2 0 1 2 1 0 2 2 2 [4. 10] 16] 21] 21] 13] 18] 11] 21] 18] 20] 23] 18] Penalidad diaria 10 13. 9] [1.6. 17] [4.5 11.5 8 9 7 15 11.5 9. 10] [3. 8] [7. 3] [15. [21. 8] [9. [16. Instancia 6 A. [14. 18] [6. [14. 10] [16.5 8 . 13] Ciudad Hannover Koln Frankfurt Stuttgart Hamburg Berlin Munchen Koln Hannover Berlin Stuttgart Berlin Tabla A. [13. [19.23: Pedidos 88 D´ıa 0 2 2 3 1 1 3 1 0 2 3 3 Ventana [8. 7] [7. [16. [15. [19. [10.

A.6.A.54 0.07 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.7.2 89 . Instancia 7 A.1 0.54 0 0 0 0 0 0 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 601 601 601 605 601 605 601 601 601 601 601 605 601 605 601 601 220 319 601 623 601 624 601 601 601 601 601 601 601 601 601 601 601 601 601 601 601 601 601 601 73 91 570 601 601 601 601 601 11 11 300 18 19 19 12 12 10 10 50 14 19 17 12 14 12 301 109 300 301 250 13 13 12 11 13 13 14 14 14 14 12 12 13 13 13 12 14 14 300 300 17 50 17 17 14 15 4 4 2 1 1 1 0 0 7 7 2 1 1 1 0 0 36 46 1 1 2 1 0 0 2 2 1 1 0 0 0 0 2 2 1 1 1 1 0 0 13 11 38 15 9 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 14 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 3 12 4 0 0 0 0 0 0 1181 752 763 763 0 0 0 0 1170 907 845 845 0 0 0 0 2212 2212 3633 2862 0 0 84 86 0 0 0 0 0 0 69 69 0 0 0 0 0 0 737 490 0 0 0 0 0 0 0 2 0 32 0 4 0 0 0 4 0 49 0 10 0 0 0 8 0 24 0 22 0 0 0 88 0 0 0 0 0 0 0 66 0 0 0 0 0 0 0 132 0 4 0 2 0 0 4 6 1183 785 764 768 0 0 7 11 1172 957 846 856 0 0 50 58 2213 2237 3635 2885 0 0 86 176 1 1 0 0 0 0 71 137 1 1 1 1 0 0 754 636 50 23 9 8 0 0 Tabla A.1.7.7.49 0 0. Instancia 7 270 270 270 270 270 270 270 270 270 270 248.5 270 270 270 270 270 124 270 242 270 270 252 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 126 252 270 270 270 270 0 0 0.2. por unidad de tiempo: β = 2.12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0. inicial 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 Soluci´on Gap Configuraci´on Mejor sol. A.24: Instancia 6 . Instancias de pruebas Resultados Heur´ıstica Exacto RPB RC Total # Rutas Resoluci´on # Iteraciones Generaci´on Tiempos Sol.resultados A. Definici´ on de la instancia • Horizonte de planificaci´ on: T = 6 • Cantidad de momentos diarios: K = 24 • Penalidad por viaje sin mercader´ıa.

6 2.25 1.2 2.0 4.9 4.5 2.1 2.6 1.7 4.25 4.9 3.6 4. Instancias de pruebas Ciudad London Brighton Southampton Bristol Plymouth Birmingham Sheffield Liverpool Manchester Leeds Cant.0 3.5 3.2 2.A.75 1.6 1.9 4.25 3.8 2.0 2.6 2.5 0.0 1.0 1.0 2.5 0.7 3.9 3.2 1.0 0.0 2.25 1.3 1.9 4.7.9 3.9 4.0 0.25 0.4 2.5 2.5 0.5 4.8 3.5 3.5 4.0 2.2 2.8 0.0 Tabla A.3 4.9 3.0 0.4 4.75 1.25: Cantidad de camiones y camioneros por ciudad en el momento inicial 0.5 2. camiones 2 0 1 0 1 1 1 1 1 2 Cant.75 4.0 0.5 1.5 1.0 1.4 2.5 4.4 3.6 1.0 0.2 4.25 0.4 5.7 3.5 0.1 4.0 1. Instancia 7 A.0 3.0 4.0 3.26: Tiempo de viaje entre ciudades (en horas) • Costo de viaje por unidad de tiempo: α = 1 • M´axima cantidad de momentos que un cami´on puede estar detenido: M 0 = 12 90 .75 4.9 1.5 3.2 2.8 3.6 0.8 0. camioneros 4 1 2 1 2 1 2 1 1 3 Brighton Southampton Bristol Plymouth Birmingham Sheffield Liverpool Manchester Leeds London Brighton Southampton Bristol Plymouth Birmingham Sheffield Liverpool Manchester Leeds London Tabla A.4 2.5 4.2 3.9 1.6 1.2 4.8 3.5 1.0 2.3 0.3 3.7 1.0 2.0 1.5 1.75 5.75 3.

21] Ciudad Brighton Bristol Sheffield London Plymouth Birmingham Birmingham Bristol Sheffield Liverpool London Liverpool Brighton Leeds Liverpool Southampton D´ıa Ventana 0 1 0 1 2 1 1 2 1 3 3 2 1 2 0 4 [7. 6] [13.7 2. 4] [18.9 2.8 5.8 1.8 Tabla A. 18] [12.A.2 2. 9] [3. 14] [2.7.27: Pedidos 91 . 23] Penalidad diaria 3.8 1. 23] [20. 19] [4. 23] [13.1 2 0. 16] [8. 6] [13. 21] [12. 18] [17.3 2. 15] [4. 20] [3. 14] [21. 17] [14. 17] [15.6 1. 6] [22. 21] [6. Instancias de pruebas A.7 4. 20] [13.3 3. 5] [19. Instancia 7 Pick-up Pedido 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Ciudad London Southampton Liverpool Leeds Southampton London Liverpool London Birmingham Manchester Sheffield Leeds Southampton London Sheffield Plymouth Drop-off D´ıa Ventana 0 0 0 0 0 1 1 0 0 2 1 2 0 1 0 3 [2. 16] [2. 9] [19. 13] [14. 4] [2. 14] [13. 4] [17. 23] [12. 15] [22. 16] [13.1 2.5 4 2.

2 195. A.2 195.2 195. Configuraci´on 195.29: Cantidad de camiones y camioneros por ciudad en el momento inicial • Horizonte de planificaci´ on: T = 5 • Cantidad de momentos diarios: K = 24 • Penalidad por viaje sin mercader´ıa.2 195.1.2 195.2 195.2 195.587602 0.409205 0 0. camiones 2 0 1 1 0 1 1 0 1 1 Cant.8. Instancias de pruebas Resultados Resoluci´on Heur´ıstica Exacto RPB Total # Rutas Generaci´on # Iteraciones Sol. inicial Tiempos (seg.2 195.2 195. Definici´ on de la instancia Ciudad Paris Reims Nancy Dijon Orleans Nantes Bordeaux Tolouse Marseille Lyon Cant.2 • Costo de viaje por unidad de tiempo: α = 1 • M´axima cantidad de momentos que un cami´on puede estar detenido: M 0 = 12 92 .) Gap 1 2 3 4 5 6 7 8 9 10 11 12 Soluci´on Mejor sol.2 195. Instancia 8 A.2. camioneros 3 1 2 1 1 1 1 1 2 1 Tabla A.2 195.2 195.2 195. por unidad de tiempo: β = 2.8.2 23446 28801 28802 28003 28802 28802 28802 28802 28801 28802 28802 28802 14402 14406 224 14405 1 1 1 1 2 268 1 1 167 2 12 19 0 0 0 0 4 1 0 0 33 1 4 1 0 0 0 0 0 0 0 0 0 21550 0 23927 0 0 0 0 0 873 0 0 200 21553 16 23947 0 0 0 0 4 874 0 0 Tabla A.2 195.A.2 192 195.28: Instancia 7 .2 195.resultados A.2 195.2 195.8.2 195.572234 0 0 0 0 0 0 0 0 195.2 195.2 195. Instancia 8 A.7.2 0.

Reims

Nancy

Dijon

Orleans

Nantes

Bordeaux

Tolouse

Marseille

Lyon

Paris
Reims
Nancy
Dijon
Orleans
Nantes
Bordeaux
Tolouse
Marseille
Lyon

A.8. Instancia 8

Paris

A. Instancias de pruebas

0.0
1.7
3.8
3.1
1.5
3.9
5.9
6.3
7.3
4.25

1.7
0.0
2.5
3.0
2.7
5.0
7.0
7.5
7.8
4.75

3.8
2.5
0.0
2.25
4.1
7.25
8.7
8.9
7.0
4.0

3.1
3.0
2.25
0.0
3.0
6.0
6.8
6.6
4.8
1.75

1.5
2.7
4.1
3.0
0.0
3.2
4.6
4.9
7.25
4.1

3.9
5.0
7.25
6.0
3.2
0.0
3.7
5.75
9.4
6.75

5.9
7.0
8.7
6.8
4.6
3.7
0.0
2.3
6.0
5.7

6.3
7.5
8.9
6.6
4.9
5.75
2.3
0.0
3.75
5.0

7.3
7.8
7.0
4.8
7.25
9.4
6.0
3.75
0.0
3.1

4.25
4.75
4.0
1.75
4.1
6.75
5.7
5.0
3.1
0.0

Tabla A.30: Tiempo de viaje entre ciudades (en horas)

Pick-up
Pedido
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

Ciudad
Paris
Reims
Nancy
Dijon
Orleans
Bordeaux
Tolouse
Marseille
Lyon
Paris
Orleans
Nantes
Tolouse
Paris
Lyon
Orleans

Drop-off

D´ıa

Ventana

0
0
0
0
0
1
1
0
0
2
1
2
0
1
0
3

[2, 4]
[2, 6]
[13, 18]
[12, 14]
[13, 16]
[2, 4]
[17, 19]
[4, 5]
[19, 21]
[12, 14]
[2, 4]
[18, 20]
[13, 16]
[13, 15]
[4, 9]
[19, 21]

Ciudad
Marseille
Dijon
Lyon
Tolouse
Nantes
Paris
Lyon
Reims
Dijon
Bordeaux
Marseille
Tolouse
Reims
Lyon
Nancy
Bordeaux

D´ıa

Ventana

0
1
0
1
2
1
1
2
1
3
3
2
1
2
0
4

[7, 13]
[14, 18]
[17, 20]
[3, 6]
[13, 16]
[8, 14]
[21, 23]
[12, 15]
[22, 23]
[20, 23]
[13, 17]
[14, 17]
[15, 21]
[6, 9]
[3, 6]
[22, 23]

Penalidad
diaria
3.1
2.7
2.8
1.5
4
2.2
2.7
4.9
2.3
2.8
1.6
1.8
5.3
3.1
2
0.8

Tabla A.31: Pedidos

93

A.9. Instancia 9

A.8.2.

A. Instancias de pruebas

Resultados
Resoluci´on

Heur´ıstica

Exacto

RPB

Total

# Rutas

Generaci´on

# Iteraciones

Sol. inicial

Tiempos (seg.)

Gap

1
2
3
4
5
6
7
8
9
10
11
12

Soluci´on
Mejor sol.

Configuraci´on

262,7
262,7
262,7
262,7
262,7
262,7
262,7
167,6
262,7
262,7
262,7
262,7

0,387134
0,399907
0,240513
0,405405
0
0
0
0
0,452227
0,121067
0
0

262,7
262,7
262,7
262,7
262,7
262,7
262,7
262,7
262,7
262,7
262,7
262,7

1965
2844
3018
26214
28801
28802
28801
28801
27285
28801
28802
28802

14400
14400
14400
14401
1
1
1
1107
14400
14400
1
1

174
45
170
199
6
1
4
1
192
8
2
1

26
5
30
1
1
0
1
1
8
0
0
0

0
8114
0
13955
0
758
0
5857
0
11102
0
47

200
8164
200
14155
7
759
5
5859
200
11110
2
48

Tabla A.32: Instancia 8 - resultados

A.9.

Instancia 9

A.9.1.

Definici´
on de la instancia
Ciudad
Mexico DF
Guadalajara
San Luis Potosi
Chilpancingo
Tampico
Toluca
Veracruz
Oaxaca
Morelia
Colima

Cant. camiones
2
0
1
1
0
1
1
1
1
1

Cant. camioneros
4
1
2
2
1
2
1
1
1
1

Tabla A.33: Cantidad de camiones y camioneros por ciudad en el momento inicial

• Horizonte de planificaci´
on: T = 6
• Cantidad de momentos diarios: K = 24
• Penalidad por viaje sin mercader´ıa, por unidad de tiempo: β = 2,2
• Costo de viaje por unidad de tiempo: α = 1
• M´axima cantidad de momentos que un cami´on puede estar detenido: M 0 = 12

94

Guadalajara

San Luis Potosi

Chilpancingo

Tampico

Toluca

Veracruz

Oaxaca

Morelia

Colima

Mexico DF
Guadalajara
San Luis Potosi
Chilpancingo
Tampico
Toluca
Veracruz
Oaxaca
Morelia
Colima

A.9. Instancia 9

Mexico DF

A. Instancias de pruebas

0.0
5.4
4.4
2.75
5.8
0.75
4.0
5.6
3.1
7.3

5.4
0.0
4.0
8.0
8.75
4.9
9.3
10.9
2.9
2.3

4.4
4.0
0.0
6.9
4.8
4.5
8.1
9.5
4.6
6.6

2.75
8.0
6.9
0.0
8.6
3.25
6.6
6.8
5.7
10.0

5.8
8.75
4.8
8.6
0.0
6.5
5.9
10.1
8.0
11.3

0.75
4.9
4.5
3.25
6.5
0.0
4.6
6.2
2.5
6.8

4.0
9.3
8.1
6.6
5.9
4.6
0.0
4.4
6.9
11.5

5.6
10.9
9.5
6.8
10.1
6.2
4.4
0.0
8.4
12.0

3.1
2.9
4.6
5.7
8.0
2.5
6.9
8.4
0.0
5.0

7.3
2.3
6.6
10.0
11.3
6.8
11.5
12.0
5.0
0.0

Tabla A.34: Tiempo de viaje entre ciudades (en horas)

Pick-up
Pedido
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

Ciudad
Mexico DF
Guadalajara
San Luis Potosi
Colima
Tampico
Toluca
Oaxaca
Veracruz
Toluca
Tampico
Mexico DF
Mexico DF
San Luis Potosi
Chilpancingo
Guadalajara
Colima

Drop-off

D´ıa

Ventana

0
0
0
0
0
1
1
0
0
2
1
2
0
1
0
1

[7, 10]
[6, 10]
[13, 18]
[10, 14]
[11, 16]
[2, 7]
[17, 22]
[7, 17]
[17, 21]
[8, 14]
[6, 12]
[17, 23]
[11, 16]
[10, 17]
[4, 9]
[6, 11]

Ciudad
San Luis Potosi
Chilpancingo
Morelia
Toluca
Veracruz
Oaxaca
Mexico DF
Guadalajara
San Luis Potosi
Chilpancingo
Colima
Toluca
Veracruz
Oaxaca
San Luis Potosi
Morelia

D´ıa

Ventana

0
1
0
1
2
1
1
0
1
2
2
2
1
2
0
1

[20, 23]
[15, 21]
[17, 20]
[4, 10]
[11, 16]
[8, 16]
[19, 23]
[12, 19]
[19, 23]
[15, 23]
[13, 20]
[13, 17]
[13, 21]
[6, 18]
[3, 6]
[14, 20]

Penalidad
diaria
4.5
3.2
2
2.5
4
2.2
2.7
4.8
2.8
4.5
2.3
1.8
5.3
3.1
2
2.8

Tabla A.35: Pedidos

95

camiones 1 1 1 1 1 1 1 0 1 0 Cant.7 253.10. A.7 253.7 253.7 253.37: Cantidad de camiones y camioneros por ciudad en el momento inicial • Horizonte de planificaci´ on: T = 5 • Cantidad de momentos diarios: K = 24 • Penalidad por viaje sin mercader´ıa.32637 0 0 0.269216 0.7 253.7 232.36: Instancia 9 .7 253.7 253.2.7 253.7 253.329874 0.9.) Gap 1 2 3 4 5 6 7 8 9 10 11 12 Soluci´on Mejor sol.10.10.1.301537 0.216397 0.156484 253.7 5475 28801 11510 28801 28801 28802 28801 28802 28801 28801 28801 28801 14401 14401 14400 14401 4 4 14400 14400 187 14400 14400 14400 187 29 178 26 12 2 104 3 13 3 186 4 13 0 22 1 0 0 2 0 0 0 1 0 0 39757 0 33278 0 4634 0 4274 0 7498 0 7104 200 39786 200 33305 12 4636 106 4277 13 7501 187 7108 Tabla A.7 253.7 253. Instancia 10 A. 5 • Costo de viaje por unidad de tiempo: α = 2 • M´axima cantidad de momentos que un cami´on puede estar detenido: M 0 = 12 96 .182893 0 0.290037 0.A.7 253.7 253. Instancia 10 A. por unidad de tiempo: β = 4.5 253. Instancias de pruebas Resultados Resoluci´on Heur´ıstica Exacto RPB Total # Rutas Generaci´on # Iteraciones Sol.7 253. inicial Tiempos (seg.7 253.resultados A. camioneros 3 1 2 2 2 2 2 1 2 1 Tabla A.7 253.7 253.7 253. Configuraci´on 253.7 253.221127 0.7 0. Definici´ on de la instancia Ciudad Warsaw Lodz Poznan Wroclaw Krakow Rzeszow Bialystok Olsztyn Gdansk Szczecin Cant.7 253.

0 2.75 4.5 0.4 0. [6. 7] [17.6 9. 12] [17. 15] [17.5 2.25 3 4.0 2.5 5.0 5.6 3. 22] [9.5 3. 21] [8.25 7.3 3. [9. 11] Ciudad Krakow Szczecin Olsztyn Rzeszow Gdansk Poznan Warsaw Krakow Wroclaw Warsaw Szczecin Poznan Rzeszow Bialystok Wroclaw Warsaw D´ıa 2 1 1 0 2 0 0 1 1 2 0 2 1 2 0 1 Ventana [15.2 9.4 9.0 Tabla A.3 4.75 7.0 4.4 7.5 2.6 0. [15. Instancias de pruebas 0.4 7.25 2. [8. [13.5 7.9 8. 16] [10.9 2. [19.75 0.4 4.25 3. 18] [9.7 5.3 4.0 5.25 6.0 4.0 3.25 6. 23] [12.4 4.2 4.25 6.2 4.0 6.5 3. 10] [8.6 3.7 8.4 3.3 7. [17. [9.4 6.2 5.6 7.0 4.25 3.0 2.9 2. [13. [14.8 5. [18.75 4.5 5.0 7.4 6.0 6. Instancia 10 Warsaw A.75 3.3 9.6 6.0 4.4 0.3 3.8 2.25 3.75 5.Lodz Poznan Wroclaw Krakow Rzeszow Bialystok Olsztyn Gdansk Szczecin Warsaw Lodz Poznan Wroclaw Krakow Rzeszow Bialystok Olsztyn Gdansk Szczecin A.7 8.1 9. [12.38: Tiempo de viaje entre ciudades (en horas) Pick-up Pedido 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Ciudad Warsaw Lodz Poznan Wroclaw Rzeszow Bialystok Olsztyn Gdansk Szczecin Krakow Gdansk Olsztyn Bialystok Lodz Warsaw Lodz Drop-off D´ıa Ventana 1 0 1 0 0 0 0 0 0 2 0 2 0 1 0 1 [7.5 2.3 9.9 5.0 0.5 4. [6.25 7.9 4.0 2.5 5.4 3.25 4.4 7. 20] 23] 20] 11] 16] 16] 23] 20] 23] 19] 20] 17] 18] 18] 22] 20] Penalidad diaria 7.0 5.5 6 3.3 4.0 3.5 4.39: Pedidos 97 .8 1.0 2.5 9.0 5.4 8.8 Tabla A.5 3.25 0.4 3.0 7. 17] [4.5 0.8 4. 12] [6.0 3.0 6.2 5. [19. 16] [2.4 3.5 7.5 8.2 2.0 5.10. 14] [9.4 0. [19.9 6. 10] [6.8 7.8 4.5 7. 10] [13.

1.40: Instancia 10 .) Gap 1 2 3 4 5 6 7 8 9 10 11 12 Soluci´on Mejor sol.6 579.6 579. inicial Tiempos (seg.420031 579.6 579.458592 0.41: Cantidad de camiones y camioneros por ciudad en el momento inicial • Horizonte de planificaci´ on: T = 5 • Cantidad de momentos diarios: K = 24 • Penalidad por viaje sin mercader´ıa.6 579.11.11. Instancias de pruebas Resultados Resoluci´on Heur´ıstica Exacto RPB Total # Rutas Generaci´on # Iteraciones Sol.11.6 579.6 579.6 579.6 579. Instancia 11 A.resultados A.6 579.5 • Costo de viaje por unidad de tiempo: α = 2 • M´axima cantidad de momentos que un cami´on puede estar detenido: M 0 = 12 98 . Configuraci´on 579.238095 0 0.6 579.6 579.6 579.484645 0.6 579. camioneros 2 1 1 0 2 2 3 2 2 1 Tabla A.107833 0 0. Instancia 11 A.6 0.2.10. por unidad de tiempo: β = 4. Definici´ on de la instancia Ciudad Berlin Hamburg Bremen Cologne Frankfurt Stuttgart Munich Nuremberg Leipzig Dresden Cant.6 579.486025 0 0. camiones 2 0 1 0 1 1 2 1 1 0 Cant.424776 0 0.6 579.6 3979 28005 10935 28001 28801 28802 28802 28801 28801 28801 28801 28801 14400 14401 14401 14401 52 14400 46 14400 2 14400 177 14400 194 39 176 146 10 1 10 10 7 2 17 9 6 0 24 0 0 0 0 0 0 0 1 0 0 37469 0 12925 0 732 0 13189 0 5792 0 11426 200 37508 200 13071 10 733 10 13199 7 5794 18 11435 Tabla A.6 579.A.6 579.6 579.6 579.6 579. A.6 579.486006 0.6 579.

43: Pedidos 99 .2 4.3 4. [19.6 4.6 4.4 3.8 2. Instancia 11 Berlin A.4 5.6 4.9 2.75 3.25 5. 22] [9.25 6. [12.9 4.8 1.4 2. Instancias de pruebas 0.0 2.8 Tabla A.7 3.25 1.9 1. [6.8 1.75 4.2 2. 17] [4.6 4.9 5.9 0.75 2.5 5.0 0.0 0.9 4.1 4.4 3. 20] 23] 20] 11] 16] 16] 23] 20] 23] 19] 20] 17] 18] 18] 22] 20] Penalidad diaria 7.5 5. 11] Ciudad Stuttgart Cologne Nuremberg Hamburg Dresden Bremen Hamburg Berlin Dresden Leipzig Nuremberg Munich Stuttgart Frankfurt Cologne Munich D´ıa 1 1 1 0 0 2 2 2 0 2 1 3 1 0 0 1 Ventana [15.8 7.5 4.25 7.3 6. [19.9 3. 23] [12.1 7. 21] [8.1 4. 14] [9.0 3. 15] [17.75 4.0 1. [13.9 5.4 3.25 3 4.42: Tiempo de viaje entre ciudades (en horas) Pick-up Pedido 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Ciudad Frankfurt Munich Bremen Leipzig Berlin Stuttgart Frankfurt Cologne Bremen Hamburg Berlin Dresden Leipzig Nuremberg Munich Berlin Drop-off D´ıa Ventana 1 0 0 0 0 2 1 1 0 2 0 2 0 0 0 1 [7. [9.Hamburg Bremen Cologne Frankfurt Stuttgart Munich Nuremberg Leipzig Dresden Berlin Hamburg Bremen Cologne Frankfurt Stuttgart Munich Nuremberg Leipzig Dresden A.3 2. [13.75 3.0 1. 16] [10.25 4.0 1. 12] [6.75 5.25 6.25 4.6 3.25 0. 7] [17.0 5.0 2. [14.75 4.75 4.2 0. 12] [17.3 3.0 Tabla A. 18] [9. [8.75 3.0 2.7 6.6 4. [17.0 2. 10] [8.0 2.3 7.5 3. [15.11.5 5.25 1. 10] [6.9 3.3 4.75 3. [18.25 3.75 4.9 4.8 2.25 5.1 3.0 1.6 0.4 3.25 6.0 3.4 3. 16] [2.5 3.5 5.6 4.8 4.0 1.6 0.5 2.0 1.0 3.4 3.9 0. [9.5 2.4 5.0 4.0 0.5 4.25 6.7 5.1 1.0 3.9 3. [6.6 6.5 2.75 5.0 5.2 2. [19. 10] [13.

54199 0 0.321748 541. Configuraci´on .8 541.8 541.8 541.618125 0.8 541.44: Instancia 11 .8 541. Instancia 11 A.443245 0 0.A.8 541.8 541.8 0.8 541.8 541.2.11.651486 0 0.339248 0 0.8 541.8 541.8 541.8 541.629845 0.8 541.8 541. A. inicial Tiempos (seg.8 13464 28801 11887 20008 28801 28801 28802 28801 28801 28801 28801 28801 14401 14401 14400 14404 41 14400 38 14401 2 14400 196 14400 195 15 176 46 10 2 10 6 2 2 17 6 5 0 24 1 0 0 0 0 0 0 0 0 0 45439 0 43471 0 6777 0 9404 0 5192 0 8019 200 45454 200 43518 10 6779 10 9410 2 5194 17 8025 Tabla A.8 541.8 541.8 541.8 541.8 541.8 541.) Gap 1 2 3 4 5 6 7 8 9 10 11 12 Soluci´on Mejor sol.resultados 100 # Rutas Generaci´on # Iteraciones Sol.8 541.11. Instancias de pruebas Resultados Resoluci´on Heur´ıstica Exacto RPB Total 541.647195 0.