Solución de problemas de enrutamiento de vehı́culos para el
transporte de bienes considerando restricciones multidrop e
impacto ambiental
Presentado por:
Luis Miguel Escobar Falcón
Presentado como requisito
parcial para optar al tı́tulo de
Ph.D. en Ingenierı́a
Director:
Ph.D. Mauricio Granada Echeverri
Universidad Tecnológica de Pereira
Co-director:
Ph.D. John Willmer Escobar Velásquez
Pontificia Universidad Javeriana Cali
Programa de Doctorado en Ingenierı́a
Lı́nea de Producción
UNIVERSIDAD TECNOLÓGICA DE PEREIRA
Pereira, Julio de 2019
Universidad Tecnológica de Pereira (UTP)
Documento Confidencial
Ni la totalidad ni parte de este documento puede reproducirse, almacenarse o transmitirse por
algún procedimiento electrónico o mecánico, incluyendo fotocopias, grabación magnética o
electrónica o cualquier medio de almacenamiento de información y sistemas de recuperación,
sin permiso escrito de la UNIVERSIDAD TECNOLÓGICA DE PEREIRA (UTP).
Este es un documento interno de la UTP. Al recibirlo no podrá pasarlo a persona
alguna excepto las que se le indiquen en la lista de distribución autorizada por la UTP.
Cualquier persona externa a la UTP que utilice la información en este documento asume la
responsabilidad por su empleo.
Universidad Tecnológica de Pereira (UTP) - 2019
DEDICATORIA
A mi abuelo Jesús y a mi tı́o José Luis
Luis Miguel Escobar Falcón
ii
Agradecimientos
A mi hermana Ana Marı́a, y a mis padres Marı́a del Carmen y Francisco, por el apoyo
incondicional y el ejemplo que siempre me han brindado.
A mi mujer Catalina por su apoyo y comprensión.
A mi amigo David Álvarez, por compartir sus conocimientos y facilitar el avance por el
largo camino recorrido desde la maestrı́a hasta el doctorado.
A mi profesor y amigo John W. Escobar por su guı́a y apoyo para culminar este proceso.
A mi profesor y amigo Rodrigo Linfati por su guı́a, y a su esposa Carolina por su aliento
a culminar este proceso.
A mi amigo Carlos Contreras y al Grupo de Investigación de Operaciones de la
Universidad de Boloña, donde realicé la pasantı́a, en la cual se generaron importantes
resultados para esta tesis.
A mis amigos César Augusto Marı́n y Rubén Iván Bolaños por tanto apoyo en la
fase final de la investigación, brindándome además todo lo necesario para reingresar al
mercado laboral antes incluso de completar el ciclo doctoral.
A mi orientador Mauricio Granada Echeverri por todo el acompañamiento y confianza
depositada al aceptar el reto del proceso doctoral.
A mi profesor y amigo Anand Subramanian, por su dedicación y consejos para completar
el proceso.
A mi amigo Carlos Adrián Correa, que siempre me apoyó desde la distancia.
A mis amigos Andrés Domı́nguez, Andrés Arias, Camilo Acosta, David Escobar y Carlos
Saldarriaga, compañeros del programa, por toda la ayuda prestada durante el doctorado.
Al Profesor Ramón Gallego, por sus consejos, y por haber gestado la maestrı́a y el
doctorado que tantas puertas me han abierto.
iii
A los Profesores Antonio Escobar y Eliana Toro, por todas sus recomendaciones para
el desarrollo de la investigación.
Al Profesor José Germán López Quintero por brindarme su apoyo como Vicerrector de
Investigaciones de la Universidad Tecnológica de Pereira, ayudándome en la consecución
de la beca doctoral.
A Marisol Agudelo, amiga y compañera de oficina, quien siempre me ayudó con todas
las tareas administrativas del programa.
A Kenny Cárdenas Parra, amigo, compañero de batallas deportivas, y colega
investigador; apoyo vital en la recta final de la tesis y de los retos investigativos en
el área de I+D+i de Integra S.A.
A COLCIENCIAS por la beca proporcionada para realizar el doctorado.
A Integra S.A. por brindar el espacio ideal para la conclusión de esta investigación y la
generación de nuevos proyectos.
A los profesores miembros del jurado calificador de esta tesis por su atención y
disposición a este llamado.
iv
Índice general
Índice general
V
Índice de figuras
X
Índice de tablas
XII
1. Introducción
1
1.1. Planteamiento del problema . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.2. Motivación y Justificación del Problema . . . . . . . . . . . . . . . . . . . .
3
1.3. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
1.3.1. Objetivo General . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
1.3.2. Objetivos Especı́ficos . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
1.4. Estructura del documento . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
2. Marco Referencial
10
2.1. Marco referencial enrutamiento de vehı́culos y carga de contenedores . . . . .
10
2.1.1. Enrutamiento de vehı́culos . . . . . . . . . . . . . . . . . . . . . . . .
10
v
2.1.2. Carga de contenedores . . . . . . . . . . . . . . . . . . . . . . . . . .
13
2.1.3. Problema integrado de enrutamiento de vehı́culos y carga de contenedores 14
2.2. Marco referencial Green Vehicle Routing . . . . . . . . . . . . . . . . . . . .
19
2.2.1. Consumo de combustible y modelos de emisión para transporte de
bienes por carretera . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
2.3. Marco teórico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
2.3.1. Definición del problema integrado de enruteamiento de vehı́culos y
carga de contenedores . . . . . . . . . . . . . . . . . . . . . . . . . .
24
2.3.2. Definición del problema de enrutamiento de vehı́culos considerando
impacto ambiental . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
3. Algoritmo mateheurı́stico para el problema de enrutamiento de vehı́culos
con flota homogénea y restricciones de empaquetamiento tridimensionales
3L-CVRP
30
3.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
3.2. Modelamiento del 3L-CVRP . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
3.2.1. Problema de Enrutamiento de Vehı́culos Capacitado CVRP . . . . .
31
3.2.2. Problema de Carga y Empaquetamiento . . . . . . . . . . . . . . . .
34
3.3. Definición del Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
3.4. Enfoque Mateheurı́stico
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
3.4.1. Método exacto para el Problema de Enrutamiento de Vehı́culos . . .
38
3.4.2. GRASP para validación de empaquetamiento . . . . . . . . . . . . .
41
3.5. Resultados Computacionales . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
vi
3.6. Conclusiones y trabajos futuros . . . . . . . . . . . . . . . . . . . . . . . . .
48
4. Metaheurı́stica hı́brida de Búsqueda Tabú Granular y GRASP para el
3L-CVRP
50
4.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
4.2. Estructura del Algoritmo Propuesto . . . . . . . . . . . . . . . . . . . . . . .
50
4.2.1. Solución Inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
4.2.2. Algoritmo GRASP . . . . . . . . . . . . . . . . . . . . . . . . . . . .
52
4.2.3. Búsqueda Tabú en Espacio Granular & Algoritmo de Validación 3L
tipo GRASP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
4.3. Experimentos Computacionales . . . . . . . . . . . . . . . . . . . . . . . . .
63
4.3.1. Parametrización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
63
4.3.2. Análisis Comparativo . . . . . . . . . . . . . . . . . . . . . . . . . . .
65
4.4. Conclusiones e investigaciones futuras . . . . . . . . . . . . . . . . . . . . . .
67
5. Algoritmos Mateheurı́sticos para el Problema del Agente Viajero
Considerando Polución
70
5.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
70
5.2. Descripción y Formulación del Problema . . . . . . . . . . . . . . . . . . . .
72
5.3. Algoritmo de Búsqueda Local Iterativa . . . . . . . . . . . . . . . . . . . . .
75
5.4. Algoritmo Genético Multi-operador y Algoritmo Hı́brido . . . . . . . . . . .
79
5.4.1. Representación y función fitness . . . . . . . . . . . . . . . . . . . . .
81
5.4.2. Población inicial
81
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
vii
5.4.3. Operadores de cruzamiento . . . . . . . . . . . . . . . . . . . . . . .
83
5.4.4. Operadores de mutación . . . . . . . . . . . . . . . . . . . . . . . . .
84
5.4.5. Parámetros del algoritmo genético . . . . . . . . . . . . . . . . . . . .
84
5.4.6. Algoritmo Hı́brido . . . . . . . . . . . . . . . . . . . . . . . . . . . .
85
5.5. Experimentos Computacionales . . . . . . . . . . . . . . . . . . . . . . . . .
85
5.6. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
91
6. Algoritmo genético especializado para el problema de enrutamiento de
vehı́culos con flota heterogénea y restricciones de empaquetamiento
bidimensional minimizando el consumo de combustible 2L-FHFVRP
92
6.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
92
6.2. Marco Referencial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
94
6.3. Descripción del Problema
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
97
6.4. Estado del Arte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
99
6.5. Metodologı́a de Solución . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
101
6.5.1. Algoritmo GRASP de empaquetamiento bidimensional . . . . . . . .
104
6.5.2. Algoritmo GA-GRASP . . . . . . . . . . . . . . . . . . . . . . . . . .
109
6.6. Experimentos computacionales y análisis de resultados . . . . . . . . . . . .
112
6.7. Conclusiones y trabajos futuros . . . . . . . . . . . . . . . . . . . . . . . . .
117
7. Conclusiones, trabajos futuros y producción
119
7.1. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
119
7.2. Trabajos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
121
viii
7.3. Producción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bibliografı́a
122
124
ix
Índice de figuras
3.1. Solución obtenida con el modelo relajado . . . . . . . . . . . . . . . . . . . .
40
3.2. Ubicación de una caja en un subespacio maximal, generando nuevos
subespacios maximales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
3.3. Enrutamiento para la Instancia 1 (empaquetamiento factible) . . . . . . . . .
45
3.4. Orden de atención para la primera ruta (vehı́culo 1): 3-8-7-6 . . . . . . . . .
46
3.5. Orden de atención para la segunda ruta (vehı́culo 2): 4-13-14 . . . . . . . . .
46
3.6. Orden de atención para la tercera ruta (vehı́culo 3): 9-10-15-5-12 . . . . . . .
47
3.7. Orden de atención para la cuarta ruta (vehı́culo 4): 11-2-1 . . . . . . . . . .
47
4.1. Perturbación de la mejor solución encontrada hasta alguna iteración de la
′
metodologı́a Sbest , para obtener Sbest
como nuevo punto de búsqueda Si . . .
62
4.2. Patrón de enrutamiento obtenido por el algoritmo GTS-GRASP para la
instancia 1. BKS = 302.02, GTS-GRASP = 300.67 . . . . . . . . . . . . . .
66
4.3. Patrón de empaquetamiento para la ruta: 3-8-7-6 . . . . . . . . . . . . . . .
66
4.4. Patrón de empaquetamiento para la ruta: 4-13-14 . . . . . . . . . . . . . . .
66
4.5. Patrón de empaquetamiento para la ruta: 11-9-2-1 . . . . . . . . . . . . . . .
67
4.6. Patrón de empaquetamiento para la ruta: 5-10-15-12 . . . . . . . . . . . . .
67
x
4.7. Patrón de enrutamiento obtenido por el Algoritmo GTS-GRASP para la
instance 23. BKS = 1130.54, GTS-GRASP = 1122.48 . . . . . . . . . . . .
68
4.8. Patrones de empaquetamiento para cada una de las rutas del BKS encontrado
para la instance 23. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.1. Incidencia del impacto ambiental, del 2L-HFVRP al 2L-FHFVRP.
. . . . .
69
101
6.2. Codificación y decodificación de solución. a. Conjunto de ubicaciones y piezas
demandadas de los clientes. b. Ejemplo de orden de atención. c. Grafo auxiliar
del ejemplo y ruta más corta. d. Conjunto de rutas y empaquetamiento dentro
de estas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
103
6.3. Evolución de los espacios máximos en tres iteraciones de la fase constructiva.
Adaptado de Parreno et al. (2010) . . . . . . . . . . . . . . . . . . . . . . . .
xi
108
Índice de tablas
2.1. Estado del arte Green Vehicle Routing Problem . . . . . . . . . . . . . . . .
24
3.1. Comparación con los mejores resultados de la literatura . . . . . . . . . . . .
44
4.1. Parametrización para el Algoritmo GTS-GRASP . . . . . . . . . . . . . . . .
63
4.2. Comportamiento del algoritmo y comparación con los mejores algoritmos
publicados hasta el momento del estudio . . . . . . . . . . . . . . . . . . . .
64
5.1. Parámetros utilizados en el modelo PTSP. . . . . . . . . . . . . . . . . . . .
73
5.2. Resultados obtenidos por el Algoritmo Cut-and-Branch y por el Algoritmo ILS 89
5.3. Resultados obtenidos por el Algoritmo Genético Multi-operador (MGA) y por
el Algoritmo Hı́brido HA . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
90
6.1. Valores seleccionados para los parámetros. * Siendo n el número de clientes a
rutear y m el número de cajas a ser empacadas en la ruta. . . . . . . . . . .
113
6.2. Resultados obtenidos por el GA-GRASP . . . . . . . . . . . . . . . . . . . .
114
6.3. Resultados obtenidos por el GA-GRASP y comparación con las mejores
soluciones publicadas en la literatura (BKS) . . . . . . . . . . . . . . . . . .
xii
116
Resumen
Esta investigación doctoral propone diferentes metodologı́as de solución para problemas de
enrutamiento de vehı́culos considerando aspectos de carga de la vida real, permitiendo
abordar adecuadamente algunas de las tareas relacionadas a la distribución de carga y
logı́stica de transporte. Dichos aspectos también tienen en cuenta el impacto ambiental,
buscando minimizar la emisión de gases de efecto invernadero o el consumo de combustible.
La integración de problemas de enrutamiento de vehı́culos y problemas de carga
de contenedores, ambos pertenecientes a la clase de problemas NP-duros, ha sido
estudiada durante alrededor de una década. De hecho, se identificó que algunas variantes
importantes no han sido examinadas con rigor, motivando ası́ el desarrollo de esta
investigación. De manera más precisa, se orientaron los siguientes problemas: el problema
de enrutamiento-empaquetamiento con carga tridimensional (carga apilable) y el problema
de enrutamiento-empaquetamiento con flota heterogénea con carga bidimensional (carga no
apilable) con y sin consumo de combustible.
xiii
Abstract
This doctoral research proposes different solution methodologies for vehicle routing problems
considering real-life loading aspects, which in turn may enable one to properly tackle some of
the tasks related to load distribution and transportation logistics. Such aspects also take into
account the environmental impact, where one intends to minimize the emission of greenhouse
gases or fuel consumption.
The integration of vehicle routing and container loading problems, both belonging to the
class of NP-hard problems, has been studied for just about a decade. In fact, it was identified
that some important variants have not been thoroughly examined, thus motivating the
development of this research. More precisely, the following problems were addressed: the
routing-packing problem with three-dimensional load (stackable cargo) and the heterogeneous
fleet routing-packing problem with two-dimensional load (non-stackable cargo) with and
without fuel consumption.
xiv
Capı́tulo 1
Introducción
1.1.
Planteamiento del problema
El problema de enrutamiento vehı́culos VRP (por sus siglas en inglés de Vehicle Routing
Problem) es un problema clásico de la optimización combinatorial de gran interés en el
campo de la investigación de operaciones debido a su influencia económica y dificultad
para ser resuelto; la solución de este problema juega un papel importante en la cadena de
suministros de las empresas cuyas actividades involucran transporte de bienes o personas,
movimiento eficiente y efectivo de materias primas desde sus fuentes hasta las plantas de
producción, productos terminados a centros de distribución y movilizaciones desde puntos
minoristas hasta clientes finales. La correcta gestión de todas estas actividades es decisiva en
un entorno competitivo como el que se plantea actualmente en las cadenas de abastecimiento
de empresas dedicadas a la producción de bienes o a la atención de servicios.
Un mal planeamiento de las rutas de distribución puede impactar considerablemente los
costos operacionales de las empresas pertenecientes a la cadena de la logı́stica; este mal
planteamiento incluso puede llegar al 50 % de sobrecostos producto de inventarios en
stock (Toth and Vigo, 2013), el incumplimiento, retrasos de entregas de pedidos a los clientes,
entre otros.
1
En este sentido, durante las últimas 5 décadas, desde la primera formulación del VRP
en 1959 por George Dantzig y John Ramser (Dantzig and Ramser, 1959), diferentes
investigadores internacionales, han realizado un gran esfuerzo en el desarrollo de trabajos
de investigación básica y aplicada donde se proponen nuevas formulaciones que permiten
resolver diferentes variantes del problema de enrutamiento de vehı́culos, incorporando en
cada modelo caracterı́sticas que describen de una forma más precisa los problemas de la
vida real. Dantzig y Ramser modelaron una aplicación real del problema de enrutamiento
de camiones de reparto de gasolina desde un único punto de abastecimiento a un gran
número de estaciones de servicio. En éste, la capacidad del camión de despacho se considera
explı́citamente, es decir, existen K camiones idénticos de una capacidad Q y la suma de las
demandas de clientes asignados a una ruta nunca puede exceder Q, el anterior problema
es denominado en la literatura especializada como CVRP (por sus siglas en inglés de
Capacitated Vehicle Routing Problem). Este tipo de formulaciones han experimentado una
evolución exitosa de la mano del desarrollo de los sistemas informáticos, con los cuales, se ha
logrado un gran avance en la implementación de algoritmos cada vez más potentes, precisos
y rápidos, para la resolución de un mayor espectro de problemas.
Las situaciones reales presentes en la logı́stica, han sido las principales fuentes de motivación
para el estudio de nuevas variantes del VRP, las cuales se ajustan en diferentes grados a
las necesidades de los clientes, como son las ventanas de tiempo de disponibilidad de los
clientes, servicios tanto de entrega como de recogida, restricciones de duración de ruta,
múltiples depósitos o puntos de atención, flota heterogénea, costos fijos, entre muchos otros;
sin embargo, independientemente de cuál sea la variante del problema, el objetivo principal
siempre estará enmarcado en la optimización de los recursos de transporte, la satisfacción
de la demanda de los clientes, y en las últimas dos décadas, ha surgido también la necesidad
de disminuir de manera simultánea el impacto ambiental asociado al transporte, bien sea
por tierra, por mar o por aire.
2
Una de las principales iniciativas de esta investigación es, enfocar los esfuerzos hacia la
solución de variantes del VRP donde se consideren restricciones propias de los problemas
reales de la logı́stica de las industrias, tal como el empaquetamiento de la demanda de los
clientes, que puede estar compuesta por piezas de dos dimensiones (2D) cuando se trata
de elementos que no pueden ser apilables, y tres dimensiones (3D) cuando son cajas de
embalaje, recogida y descarga de bienes y consideraciones de impacto ambiental del entorno
donde se realiza la distribución de las mercancı́as; este último enfoque tiene en consideración
objetivos más amplios y restricciones operativas que se ocupan de cuestiones de logı́stica
sostenible, planteando nuevos modelos de enrutamiento de vehı́culos y nuevos escenarios de
aplicación, lo que sin duda alguna, conduce a problemas más complejos de optimización
combinatoria que se ocupa de las actividades de medición de los efectos ambientales de las
diferentes estrategias de enrutamiento de vehı́culos, reducción del consumo de energı́a y
combustibles, administración del reciclaje y eliminación de residuos contaminantes.
1.2.
Motivación y Justificación del Problema
Desplazar personas y mercancı́as de manera rápida, eficaz y económica es un elemento central
del objetivo de una economı́a dinámica y una sociedad con más cohesión, las cifras de los
últimos años muestran que el sector de transporte genera entre el 3 y el 10 % del Producto
Interior Bruto (PIB) (Brandao, 2009). Los costos de transporte en ciudades con una densidad
poblacional alta, donde la mitad de los viajes urbanos se efectúan en transporte público, en
bicicleta o a pie, representan un 6 % del PIB. En contraste, las ciudades extensas alcanza
hasta un 15 % del PIB, y en los paı́ses en desarrollo, donde la densidad urbana es baja, puede
superar un 25 % del PIB (Ballou, 2004).
Uno de los problemas que más ha interesado a la logı́stica urbana, ha sido el problema
de enrutamiento de vehı́culos, por su gran número de aplicaciones dentro del diseño y
administración de sistemas de distribución, como por ejemplo en el transporte de insumos y de
mercancı́as, entregas a domicilio, rutas de autobuses públicos o escolares. Otra de las razones
3
por las cuales el estudio de este problema ha despertado un gran interés es su complejidad
computacional a la hora de ser resuelto, ya que debido a su naturaleza, encontrar una solución
óptima requiere de tiempos computacionales prohibitivos, lo cual es una de las principales
razones de la existencia del número elevado de técnicas de solución implementadas hoy en
dı́a. Sin embargo, junto con la complejidad y eficiencia de dichos métodos, el problema ha
involucrado cada vez más variantes que lo hacen computacionalmente más difı́cil de resolver,
como por ejemplo, ventanas de tiempo de servicio, distribuciones de probabilidad que simulen
las condiciones viales, vehı́culos de distintas capacidades, entre otras, dichas variantes han
ido apareciendo con la necesidad de analizar y tratar de resolver problemas prácticos de la
industria.
Ahora bien, de manera general el transporte de mercancı́as involucra dos tópicos básicos de
optimización que han sido estudiados intensamente en las últimas décadas de manera aislada;
las cuales consisten en encontrar las rutas óptimas para entregar los bienes, y determinar la
mejor manera de cargar dichos bienes en los vehı́culos empleados para el transporte. La
gran mayorı́a de los problemas que surgen en esas dos áreas pertenecen a la clase de los
problemas denominados como NP-duros, y en la práctica son realmente desafiantes, lo que
significa que no existe un único método de solución capaz de resolverlo en tiempo de cómputo
razonable. La complejidad del VRP requiere entonces de estrategias que aporten a la eficiencia
computacional.
Tradicionalmente, las decisiones de distribución de mercancı́a se han modelado
matemáticamente usando el problema de VRP, el cual es considerado un problema de
optimización combinatoria de difı́cil solución (Brandao, 2009), sin embargo, cuando se desean
abordar situaciones prácticas, el VRP por si sólo no representa en detalle el problema real
que se desea solucionar, por lo que es preciso, mejorar el modelo idealizado por medio de la
incorporación de un conjunto de restricciones y caracterı́sticas adicionales tales como, número
de depósitos de abastecimiento, ventanas de tiempo, capacidad de los vehı́culos, demanda de
los clientes, ubicación de los clientes, tamaño de la flota de vehı́culos que puede ser homogénea
o heterogénea, entregas y recogidas en la misma ruta, componentes estocásticos y dinámicos,
rutas periódicas, pedidos mı́nimos, duración total del recorrido, entre muchas otras, que
4
incrementan la complejidad de los modelos matemáticos e incrementa el nivel de dificultad
a la hora de diseñar métodos solución apropiados.
Es evidente que ajustar los diferentes modelos matemáticos del problema clásico de VRP
para aplicaciones reales de la industria, requiere la adición de nuevas restricciones técnicas
propias del problema a resolver. La variante denominada enrutamiento-empaquetamiento,
en la cual, las demandas se componen de ı́tems discretos, tales como: cajas rectangulares,
equipos de limpieza, pallets y otros vehı́culos de menor tamaño. Esta consideración, introduce
restricciones de empaquetamiento que no pueden ser descritas como un problema de una sola
dimensión, donde se asuma implı́citamente que cada demanda ocupa una determinada sección
del objeto y este se ajusta a la forma del contenedor, es decir, como si se tratase de un lı́quido,
sino que por el contrario, requiere de ciertas caracterı́sticas espaciales y dimensionales. La
representación realista de este aspecto del problema, ha despertado el interés por nuevas
variantes del problema que combina enrutamiento y empaquetamiento; denominadas en la
literatura especializada como 2L-CVRP, 2L-HFVRP, 3L-CVRP y 3L-HFVRP.
Consecuentemente, los problemas de transporte que involucran enrutamiento y carga de
manera simultánea, son actualmente de gran interés en optimización combinatorial, lo cual
radica en la dificultad intrı́nseca de esta área de investigación que combina dos problemas
computacionales de difı́cil solución con una gran relevancia práctica en aplicaciones reales,
además, considera la ubicación factible de los ı́tems demandados en el espacio de carga,
donde se presentan restricciones relevantes y frecuentes, que consisten en que la ubicación
de las cargas permita realizar las operaciones de entrega sin redistribuir los ı́tems dentro del
contenedor en que se están transportando, lo que evita el desperdicio de tiempo cuando el
vehı́culo visita un cliente (menor tiempo de servicio).
Es evidente entonces, que los servicios de transporte en general facilitan el crecimiento
económico y social de las ciudades, sin embargo, son los medios de transporte los que generan
mayores impactos ambientales negativos, como la utilización de terrenos, Emisiones de Gas
de Efecto Invernadero GHG (del inglés, Greenhouse Gas), polución, ruido, niebla de verano
y efectos tóxicos en el ecosistema como la lluvia ácida, lo cual se evidencia en el estudio
5
publicado por la Agencia Ambiental Europea donde se establece que el transporte (incluyendo
transporte internacional marı́timo) aportó el 24 % del total de emisiones GHG en los paı́ses
del (EU-27-European-Union, 2013) en el año 2013, teniendo el transporte de carreteras una
cuota del 17 % del total de las emisiones GHG (Vicente, 2011)
Ante este panorama, las diferentes polı́ticas públicas de cada paı́s han involucrado un
elemento adicional en el quehacer diario de las empresas, las cuales deben integrar a
sus planes estratégicos, la responsabilidad ambiental en el desempeño de sus actividades;
especialmente, el sector transporte, responsable de producir el mayor porcentaje de emisiones
generadas a partir de combustibles fósiles cercanas al 30 %
(US-EPA), evidenciándose
en recientes investigaciones que el CO2 es el principal causante de Emisiones de Gases
de Efecto Invernadero (GHG) en la actividad del transporte urbano de mercancı́as, y es
emitido en proporción directa al consumo y tipo de combustible (Grant et al., 2008). Para la
mayorı́a de vehı́culos, el consumo de combustible y la tasa de emisión de CO2 por kilómetro
recorrido disminuye cuando la velocidad operativa del vehı́culo aumenta entre 80 y 100 km/h
aproximadamente, y luego comienza a incrementar de nuevo para velocidades superiores
(Grant et al., 2008), esto indica una relación no lineal entre la tasa de emisiones y la velocidad
del recorrido del vehı́culo.
Ante la situación descrita anteriormente, se propuso un trabajo de investigación donde se
busca optimizar el plan de entrega de productos a un conjunto de clientes demandantes, cuyo
diseño de rutas considere la carga de los bienes a los vehı́culos, la fragilidad de los mismos,
la estabilidad de carga y la descarga de los bienes de los vehı́culos al visitar los clientes, lo
anterior, repercute en restricciones de empaquetamiento bidimensional y tridimensional que
surgen para la distribución de las demandas en la flota y representan una mayor dificultad
para su verificación y agregan una complejidad alta a los mecanismos de solución, dado
que se resuelven de manera simultánea dos problemas NP-duros que conforman uno solo
enrutamiento-empaquetamiento (Gendreau et al., 2006), que pueden ser representados y
aplicados en la industria de la cadena de abastecimiento de madera, cadena de distribución de
supermercados, distribución de paquetes postales, entre otras; estos y muchos otros ejemplos
requieren de planeación de rutas que tengan en cuenta detalles reales para ubicar la carga,
6
prevenir su deterioro mientras se transporta, se acomoda o se extrae del contenedor.
Cabe destacar que los problemas abordados en esta propuesta, son variantes del VRP
que han sido poco explorados, como es el caso del problema que considera restricciones
de dos dimensiones en el empaquetamiento (carga no apilable) y flota heterogénea en
el enrutamiento el que se denomina preciso de 2L-HFVRP (del inglés Two-Dimensional
Container Loading Problem With Heterogeneous Fleet Vehicle Routing Problem), para lo
cual se propone como método de solución, la implementación de una metaheurı́stica hı́brida,
basada en dos algoritmos poblacionales, un segundo problema a abordar es la varibale
denominada 3L-CVRP (del inglés Three-Dimensional Container Loading Problem With
Capacitated Vehicle Routing Problem), el cual considera restricciones tridimensionales en el
empaquetamiento (carga apilable, fragilidad de la carga y rotación) y capacidad de la flota en
el enrutamiento, para este caso se propone desarrollar un método de solución matheurı́stico,
que combina el algoritmo de Branch-and-Cut para solucionar el problema de enrutamiento
y un algoritimo GRASP para el empaquetemiento, para lo cual se proponen modificaciones
al modelo tradicional de CVRP de dos ı́ndices.
Por otro lado, esta investigación propone el planteamiento de un nuevo modelo del problema
de Pollution Routing Problem, el cual no ha sido estudiado actualmente, para lo cual se
propone un nuevo modelo matemático y un método de solución especializado exacto, que
combina el método de Cut and Branch con el algoritmo de separación diseñado por (Padberg
and Rinaldi, 1990).
Finalmente, en este trabajo se integran el empaquetamiento, el enrutamiento, y el impacto
ambiental, en una nueva variante de esta familia de problemas, denominada 2L-FHVRP
(del inglés Two-Dimensional Container Loading Problem With Heterogeneous Fleet Vehicle
Routing Problem Considering Fuel Consumption), y será abordada en el capı́tulo final de
este documento.
7
1.3.
Objetivos
1.3.1.
Objetivo General
Plantear
modelos
y
técnicas
de
solución
adecuadas
para
problemas
de
enrutamiento-empaquetamiento considerando restricciones multidrop e impacto ambiental.
1.3.2.
Objetivos Especı́ficos
Identificar
frentes
de
investigación
para
los
problemas
de
enrutamiento-empaquetamiendo considerando restricciones multidrop.
Proponer metodologı́as de solución adecuadas para el problema 2L-HFVRP.
Proponer metodologı́as de solución adecuadas para el problema 3L-CVRP.
Validar metodologı́as de solución propuestas con casos de la literatura especializada
para las variantes CLP-VRP abordadas.
Proponer metodologı́as de solución para problemas de enrutamiento que consideran
impacto ambiental.
Proponer metodologı́as de solución para el problema 2L-FHFVRP.
1.4.
Estructura del documento
El documento está organizado de la siguiente manera: el Capı́tulo 2, ofrece el marco referencial
y teórico para los subproblemas y problemas tratados en esta investigación. Luego, en
los Capı́tulos 3 y 4 se aborda el primer problema combinado de subproblemas NP-Duros
(enrutamiento y empaquetamiento) sin consideraciones ambientales. Posteriormente, en el
Capı́tulo 5, se presenta un estudio dedicado a problemas de enrutamiento de vehı́culos con
impacto ambiental, y se propone un problema nuevo en este frente, junto con dos propuestas
de solución diferentes. Finalmente, en el Capı́tulo 6, se aborda una variante no estudiada
8
de problemas de enrutamiento y empaquetamiento combinados, considerando su impacto
ambiental por medio de la minimización del consumo de combustible.
Al tratarse de un estudio de variedad de problemas de enrutamiento-empaquetamiento, cada
capı́tulo presenta su estudio computacional y conclusiones correspondientes, sin embargo, en
el Capı́tulo 7 se presentan las conclusiones generales de todo el proceso, junto con trabajos
futuros relevantes que aportarı́an directamente sobre el estado del arte de este estudio. En
este mismo capı́tulo se presenta la producción más importante obtenida durante el ejercicio
de esta investigación.
9
Capı́tulo 2
Marco Referencial
En este capı́tulo se presentan los marcos referenciales de las variantes de enrutamiento
estudiadas en este trabajo, con el fin de contextualizar los estudios comprendidos en esta
investigación.
2.1.
Marco referencial enrutamiento de vehı́culos y carga de
contenedores
2.1.1.
Enrutamiento de vehı́culos
El problema de enrutamiento de vehı́culos, se ha estudiado por más de 50 años (Laporte,
2009) y se ha resuelto usando técnicas exactas y técnicas aproximadas tales como, las
heurı́sticas y metaheurı́sticas, sin embargo, durante los últimos cinco años se pueden encontrar
soluciones hı́bridas entre diferentes técnicas que han mostrado resultados de muy buena
calidad ((Brandao, 2009), (Prins, 2009), (Subramanian et al., 2011), (Liu et al., 2009)), ası́
como, investigaciones direccionadas en nuevas variantes de problema clásico, que se ajustan
en mayor medida a la realidad de los problemas de las industrias, tal como los que se describen
a continuación.
10
Los problemas de transporte involucrando enrutamiento y carga de manera simultánea, son
actualmente de gran interés en optimización combinatorial. El interés de los investigadores
y profesionales está motivado por la dificultad intrı́nseca de esta área de investigación que
combina dos problemas computacionales difı́ciles, y por su relevancia práctica en aplicaciones
reales.
Las raı́ces de los problemas de enrutamiento datan del siglo XIX, cuando el matemático
irlandés William Rowan Hamilton, definió el Problema del Circuito Hamiltoniano: decidir si
existe una secuencia consecutiva de arcos del grafo visitando cada uno de los vértices una
sola vez. Su extensión al caso con pesos dio origen al famoso problema del Agente Viajero
TSP (del inglés Traveling Salesman Problem) definido en la década de los treinta por Karl
Manger, problema sobre el que se iniciaron estudios intensivos en la década de los cincuenta
(con Dantzig y Fulkerson, entre otros). Dado un grafo G = (V, E), con un conjunto de
vértices V = {0, 1, . . . , n}, conjunto de aristas E = {(i, j) : i, j ∈ V, i 6= j} y costo cij para
viajar a través de la arista (i, j) (en cualquier dirección), el problema del Agente Viajero
Simétrico STSP(del inglés Symmetric Traveling Salesman Problem) consiste en encontrar
una secuencia de aristas consecutivas (circuito) que visite todos los vértices del conjunto V
a un costo mı́nimo total. Su contraparte asimétrica ATSP (del inglés Asymmetric Traveling
Salesman Problem) es modelada de manera similar en un dı́grafo G = (V, A) teniendo un
conjunto de arcos A = {(i, j) : i, j ∈ V, i 6= j} y cij como el costo de viajar desde i hasta
j. La literatura para el TSP incluye cientos de publicaciones, recopilaciones y libros. En
(D’Ambrosio et al., 2011) y (Letchford and Lodi, 2011) son presentadas dos publicaciones
enciclopédicas que tratan ampliamente este problema clásico de investigación de operaciones.
En los problemas de transporte reales, el TSP es generalizado como Problema Capacitado
de Enrutamiento de Vehı́culos, en el cual se busca, en lugar de un solo circuito, un conjunto
de circuitos (llamados rutas) iniciando y terminando en el depósito central ubicado en el
vértice 0. Una formulación completa del problema presentada en (Toth and Vigo, 2013),
comúnmente conocida como formulación de dos ı́ndices para el problema de enrutamiento de
vehı́culos capacitado es la siguiente:
11
Min
XX
cij xij
(2.1)
i∈V j∈V
s.a.
X
xij = 1, ∀j ∈ V \ {0} = 1
(2.2)
X
xij = 1, ∀i ∈ V \ {0} = 1
(2.3)
X
x0j = k
(2.4)
X
xi0 = k
(2.5)
i∈V
j∈V
j∈V
i∈V
d (S)
xij ≤ |S| − r (S) , r (S) =
C
j∈S
XX
i∈S
(2.6)
Los conjuntos de restricciones del modelo controlan los siguientes aspectos:
Las ecuaciones (2.2) y (2.3) representan los conjuntos de restricciones para controlar el
grado de entrada y de salida a los puntos donde se encuentran ubicados los clientes.
En otras palabras, se garantiza que a cada cliente llegue un solo vehı́culo e igualmente
salga un solo vehı́culo.
Los conjuntos (2.4) y (2.5) controlan que el mismo número de rutas salgan y entren del
depósito (nodo 0).
El conjunto de restricciones (2.6) valida a través de la diferencia entre la cardinalidad de
cualquiera de los posibles subconjuntos de clientes S y el número requerido de vehı́culos
para atender la demanda de los clientes pertenecientes a este subconjunto denotada por
l
m
r (S) = d(S)
, donde d (S) es la demanda total del subconjunto S de clientes y C es la
C
capacidad de los vehı́culos. En este caso C es igual al volumen de cada vehı́culo. Con
esta diferencia, se garantiza que no se formen subtours y que no se exceda la demanda
en las rutas de manera simultánea.
12
Debido a la explosión exponencial de subconjuntos posibles de clientes que son controlados
por la ecuación (2.6), la solución de este modelo se dificulta cuando el número de nodos
se incrementa. La alta complejidad de este problema ha favorecido a que tanto áreas de la
optimización clásica como aproximada se interesen en la resolución de este. El problema ha
sido investigado profundamente desde la década de los cincuenta. Compilaciones de gran
interés que abordan el tema son presentadas por Toth and Vigo (2013), Golden et al.
(2008) y Baldacci et al. (2010). Mientras que Schmid et al. (2013) hace una compilación
extendida sobre una variante del problema, en la cual la capacidad de la flota de vehı́culos
es heterogénea.
A continuación una revisión de la literatura relevante sobre el problema de empaquetamiento
tridimensional.
2.1.2.
Carga de contenedores
En problemas reales de empaquetamiento, la carga de los clientes no solo está caracterizada
por un valor (como en el caso del CVRP), sino también, por su forma y ubicación en el espacio.
Es necesario asegurarse de que los ı́tems transportados puedan ser ubicados de manera factible
dentro del espacio de carga que ofrece el vehı́culo, estas especificaciones de empaquetado se
relacionan con los problemas de empaquetamiento rectangular multidimensional, los cuales
surgen como una extensión del problema clásico de bin-packing unidimensional, el cual puede
ser descrito como el problema de ubicación, sin traslape, de un conjunto de segmentos,
cada uno teniendo un ancho, para un número mı́nimo de segmentos grandes idénticos. Las
principales extensiones para dimensiones superiores son:
Problema Bin Packing Bidimensional (2BPP): Empacar un conjunto de
rectángulos dentro de un número mı́nimo de rectángulos grandes (contenedores)
idénticos (bins).
Problema Strip Packing Bidimensional (2SPP): Empacar un conjunto de
rectángulos en una tira (strip) con final abierto y ancho dado, con una altura infinita
13
buscando minimizar la altura total empleada.
Problema Bin Packing Tridimensional (3BPP): Empacar un conjunto de cajas
rectangulares dentro de un número mı́nimo de contenedores idénticos mayores a las
cajas.
Problema Strip Packing Tridimensional (3SPP): Empacar un conjunto de cajas
rectangulares dentro de una tira tridimensional con final abierto con ancho y alto dados
y una longitud infinita, buscando minimizar la longitud total de uso de la tira.
Problema Knapsack Tridimensional (3SKP): Empacar de un conjunto de cajas
rectangulares dentro de un contenedor buscando maximizar el volumen ocupado por la
carga empacada.
De manera similar al problema clásico de VRP, el problema de empaquetamiento en sus
diferente variantes ha sido estudiado ampliamente, una introducción general al área de
empaquetamiento rectangular es presentada por (Lodi et al., 2002), (Lodi et al., 2010),
(Wascher et al., 2007) y (E.G. Coffman et al., 2013).
En esta tesis se resuelve el problema integrado. En la literatura, los primeros acercamientos
para solucionar el problema de forma integrada consideran la relajación del problema de
empaquetamiento tridimensional al considerar la carga como elementos bidimensionales.
2.1.3.
Problema integrado de enrutamiento de vehı́culos y carga de contenedores
En este trabajo se aborda el problema de empaquetamiento descrito, junto con el problema
de enrutamiento de vehı́culos. En la literatura, los primeros acercamientos para solucionar
el problema de forma integrada, efectuaron la relajación del problema de empaquetamiento
tridimensional al considerar la carga como elementos bidimensionales y se han empleado
diferentes metodologı́as de solución, la mayorı́a de estas presentan algoritmos aproximados
debido a la complejidad de generar un procedimiento exacto eficiente para resolver este
problema integrado.
14
En (Iori, 2005) se presenta un resumen general de algoritmos heurı́sticos para el 2L-CVRP
y el primer algoritmo exacto para la variante secuencial 2L-CVRP con aristas de costo
entero es presentado en (Iori et al., 2007), en donde se manejan dos restricciones adicionales
que en ocasiones aparecen en la literatura del CVRP: (i) Todos los K vehı́culos deben
ser utilizados, y (ii) no se permiten rutas de un solo cliente. El algoritmo se basa en una
aproximación Branch-and-Cut que utiliza desigualdades válidas para remover secuencias de
empaquetamiento infactibles, la factibilidad del patrón de carga es evaluada a través de
heurı́sticas y procedimientos Branch-and-Bound anidados.
Luego, en (Gendrau et al., 2007) se presenta el primer algoritmo metaheurı́stico, basado
en búsqueda tabú para el 2L-CVRP, en esta metodologı́a, se maneja tanto la versión de
empaquetamiento secuencial como la irrestricta; el algoritmo puede aceptar movimientos que
producen rutas infactibles tanto por exceso de peso como por patrones de empaquetamiento
que excedan la altura de la superficie de carga.
En (Fuellerer et al., 2009), los autores presentan un algoritmo de optimización de colonia
de hormigas ACO (del inglés Ant Colony Optimization) en donde cada hormiga busca una
solución factible de bajo costo a través de la generalización del algoritmo clásico de ahorros,
la factibilidad de carga es revisada a través de lı́mites inferiores (lower bounds), heurı́sticas
y un algoritmo de Branch-and-Bound truncado.
Un algoritmo metaheurı́stico de Búsqueda Tabú es presentado en (Zachariadis et al., 2009), el
cual utiliza un mecanismo de guı́a que dirige la búsqueda hacia áreas de solución altamente
diversas, la información en las rutas generadas es almacenada en tablas hash para evitar
ejecuciones redundantes.
De manera similar, un algoritmo de búsqueda de vecindario variable VNS (del inglés Variable
Neighborhood Search) en el que un intercambio de parámetros de vecindario es utilizado para
perturbar la solución sobre la que se está iterando y una búsqueda local de 2-opt convencional
determina un óptimo local, es presentado en (Strodl et al., 2010).
Dos algoritmos metaheurı́sticos presentados en (Leung et al., 2010) y (Leung et al., 2011)
utilizan una heurı́stica basada en ajuste para producir patrones de empaquetamiento factibles.
15
El primero explora la solución espacial a través de tres vecindarios diferentes, mientras que
el segundo está basado en una búsqueda local guiada.
En (Duhamel et al., 2011) el autor presenta una heurı́stica que comienza con un algoritmo
de procedimiento de búsqueda golosa adaptativa y aleatorizada GRASP (del inglés Greedy
Randomized Adative Search Procedure) que genera una solución de un solo tour y la divide
en rutas separadas. Las rutas resultantes son optimizadas a través de una combinación de
herramientas genéticas (mutaciones) y búsquedas locales, finalmente, un algoritmo genético
para el problema 2L-CVRP es presentado en (Shen and Murata, 2012.), este trabajo no ofrece
comparaciones con algoritmos previos.
Problema de enrutamiento de vehı́culos capacitado con carga bidimensional y flota
heterogénea (2L-HFVRP)
La variante 2L-HFVRP es uno de los problemas que presenta gran interés en aplicaciones
prácticas, sin embargo, ha sido poco explorado en la literatura especializada, el primero de
los trabajo publicados, se presenta en (Leung et al., 2013), los autores consideran diferentes
tipos de vehı́culos, con diferente capacidad en las dimensiones de ancho y largo. De acuerdo
a la aplicación especı́fica, el costo asociado al uso del vehı́culo puede ser fijo o variable, el
método de solución propuesto corresponde a un algoritmo de recocido simulado que emplea
una heurı́stica de búsqueda local para mejorar la solución encontrada, además un número de
algoritmos heurı́sticos de empaquetamiento son utilizados para manejar las restricciones de
carga.
Finalmente, el mismo autor presenta en (Dominguez et al., 2016) un estudio de las
caracterı́sticas del problema, y propone un algoritmo multi-arranque basado en aleatorización
parcial de heurı́sticas para enrutamiento y empaquetamiento, y una continuanción del
trabajo anterior, es presentada en (Rivero et al., 2016), donde utiliza un framework ILS
(del inglés Iterated Local Search) parcialmente aleatorizado para heurı́sticas de enrutamiento
y empaquetamiento.
16
Problema de enrutamiento de vehı́culos capacitado con carga tridimensional y flota
homogénea 3L-CVRP
Otra de las variantes del problema de enrutamiento - empaquetamiento, es presentada en
(Gendreau et al., 2006), donde se formula el problema conocido como 3L-CVRP y se presenta
un algoritmo que se encuentra basado en un marco de trabajo externo de búsqueda Tabú,
por cada solución vecina generada, las cargas de los vehı́culos son obtenidas invocando una
búsqueda Tabú interna en un 3SPP (del inglés Three-Dimensional Strip Packing Problem),
si la carga resultante excede la longitud del vehı́culo, la solución retornada a la búsqueda
externa es aceptada, pero con su penalización correspondiente. El algoritmo es probado tanto
en instancias generadas aleatoriamente como en instancias reales de 3L-CVRP ofrecidas por
una compañı́a de muebles.
En (Tarantilis et al., 2009), los autores proponen una adaptación al caso tridimensional de su
búsqueda Tabú guiada para el caso bidimensional y en (Fuellerer et al., 2010) presenta una
generalización al caso tridimensional del ACO de los autores para la variante bidimensional
presentada previamente.
El núcleo del enfoque presentado en (Tao and Wang, 2010), es una heurı́stica de mı́nimo
desperdicio para la solución del subproblema de carga iterativamente invocado por un
algoritmo de búsqueda Tabú externo.
Aproximaciones heurı́sticas en las cuales el subproblema de enrutamiento es resuelto por un
algoritmo metaheurı́stico (apareamiento de abejas para el primero, algoritmos genéticos en el
segundo) son presentadas en (Ruan et al., 2013) y (Miao et al., 2012), en estas, el subproblema
de carga es resuelto a través de una búsqueda Tabú o de heurı́sticas constructivas,
respectivamente, los experimentos computacionales muestran que la metodologı́a presentada
en (Miao et al., 2012) es más eficiente.
En (Zhu et al., 2012) dos heurı́sticas de empaquetamiento de la literatura son mejoradas y
embebidas en un algoritmo de búsqueda Tabú. Experimentos computacionales muestran la
eficiencia del enfoque propuesto, ası́ como, un modelo integrado multi-dı́a para el problema
17
de transporte tridimensional de fletes es considerado en (Attanasio et al., 2007), los autores
proponen un modelo de Programación Lineal Entera ILP (del inglés Integer Lineal Problem),
adoptando una técnica rollinghorizon, y un algoritmo heurı́stico para las restricciones de
empaquetamiento; el método es validado con datos reales provenientes de una compañı́a de
quı́micos.
Un problema de enrutamiento de vehı́culos con restricciones de carga tridimensional, pero
sin restricciones de capacidad es presentado en (Koloch and Kaminski, 2010), en el cual, se
proponen dos enfoques cuyos resultados son comparados entre si, sin embargo, los autores no
mencionan resultados previos de la combinación del enrutamiento y del empaquetamiento.
En (Bortfeldt and Homberger, 2013), se desarrolla una heurı́stica de dos etapas para el
problema considerado por (Moura and Oliveira, 2009), en la primera etapa se optimiza
el empaquetamiento, mientras que la segunda, se encarga del aspecto de las rutas. Los
experimentos computacionales muestran la alta eficiencia del método.
En el trabajo realizado en (Bortfeldt, 2012), el autor presenta una aproximación hı́brida
eficiente, basada en un algoritmo de búsqueda Tabú para el subproblema de enrutamiento,
en cada una de las iteraciones de la búsqueda Tabú, las rutas generadas son ordenadas en una
lista, la cual está ordenada de manera creciente según el costo de la ruta y por cada solución en
la secuencia resultante, un algoritmo de búsqueda en árbol soluciona el subproblema de carga.
Los experimentos computacionales muestran la efectividad de la metodologı́a propuesta.
Todos los trabajos presentados anteriormente, proponen como método de solución una
estrategia heurı́stica o metaheurı́stica, siendo el único trabajo que emplea un método exacto
de solución en su estructura, la investigación presentada en (Escobar-Falcón et al., 2016). Un
procedimiento basado en cortes obtiene soluciones del problema de enrutamiento que luego
son validadas a través de un GRASP, el cual revisa las restricciones de empaquetamiento de
cada una de las rutas encontradas o sugeridas por la solución del modelo creciente. Para el
algoritmo hı́brido se utiliza la relajación del modelo clásico de CVRP de dos subı́ndices (Toth
and Vigo, 2013), y diferentes tipos de cortes son adicionados: eliminación de subtours, cortes
debido a las restricciones de capacidad y cortes para restricciones de empaquetamiento.
18
Otras variantes de enrutamiento-empaquetamiento
Para un número relevante de variantes clásicas del CVRP (ventanas de tiempo, flota
heterogénea, etc.), la adición de variantes de restricciones de carga ha sido considerada en la
literatura reciente.
En (Moura and Oliveira, 2009) se aborda la dificultad de integrar el CVRP con ventanas de
tiempo y la carga de contenedores tridimensional, proponiendo un número de heurı́sticas
constructivas. El siguiente estudio (Moura, 2008), extiende los resultados a un caso
multiobjetivo, cuya función objetivo considera el número de vehı́culos, la distancia total
viajada, y el volumen utilizado y para resolver el problema se presenta la implementación de
un algoritmo genético.
En la variante considerada en (Khebbache-Hadji et al., 2013), cada cliente i (i = 1, 2, . . . , n)
tiene una ventana de tiempo [ai , bi ] el vehı́culo asignado al cliente debe entregar los bienes
ni más temprano que ai ni más tarde que bi . Este trabajo provee algunas heurı́sticas
constructivas y un algoritmo genético.
Una nueva restricción del problema son introducidas en (Hamdi-Dhaoui et al., 2012), en
donde algunas parejas de ı́tems no pueden ser transportados por el mismo vehı́culo, lo cual
es tı́pico en el transporte de materiales peligrosos. Los autores utilizan un algoritmo genético
para resolver esta variante del problema.
La variante principal considerada en (Martı́nez and Amaya, 2013) consiste en que los ı́tems
transportados presentan forma circular. Los autores presentan una heurı́stica constructiva
y una búsqueda Tabú para mejorar la calidad de la solución, siendo una aplicación real de
ı́tems circulares el transporte de paellas.
2.2.
Marco referencial Green Vehicle Routing
El daño ambiental causado por las actividades de transporte ha sido reconocido desde la
década del 50 (McKinnon, 2010), aunque no se realizó un trabajo realmente significativo hasta
19
comienzos del 2000, los impactos ambientales más destacados en el transporte de mercancı́a
son los siguientes:
Emisiones atmosféricas:
Estas se deben a la combustión de motores utilizados en
vehı́culos para el transporte de carga, los cuales, al convertir el combustible en
energı́a, emiten contaminantes como CO, CO2 , N OX y partı́culas en suspensión, dichos
contaminantes, tienen efectos nocivos en los humanos (problemas respiratorios y asma)
y en el medio ambiente (lluvia ácida y niebla de verano) (Cullinane and Edwards, 2010)
Noise pollution: Las tres fuentes generadoras de ruido son la propulsión, el contacto
entre ruedas/carretera y la aceleración (Cullinane and Edwards, 2010), el ruido generado
por la unidad de poder de un vehı́culo, comprendido por el motor, la toma de aire y
el exosto se vuelven dominantes a velocidades bajas entre 15 a 20 mph y en tazas
de alta aceleración de 2 m / s2 (Knight, 2004), destacando molestia, dificultades de
comunicación y pérdida de sueño como consecuencias en la vida humana, aunque
también, la vibración de la carretera causada por vehı́culos muy pesados puede dañar
las edificaciones próximas a la misma con el paso del tiempo.
En (McKinnon, 2010) son identificados nueve factores que son crı́ticos para la reducción de
externalidades de las actividades de logı́stica, estas son: número de pasajeros por vehı́culo,
tonelaje o peso de la carga transportada, utilización del vehı́culo (promedio del vehı́culo
funcionando vacı́o y con carga), eficiencia energética, emisiones y otras externalidades que
no pueden ser medidas a través del consumo energético (ruido y accidentes), y la valoración
monetaria de las externalidades. De manera general, es difı́cil calcular los costos causados por
las externalidades asociadas al transporte, existen estimaciones para camiones inter-ciudad de
transporte de carga, tal como se se presenta en (Forkenbrock, 1999), donde se proponen cuatro
tipos generales de costos: accidentes, emisiones, ruido y aquellos asociados al suministro,
operación y mantenimiento de instalaciones públicas. En (Forkenbrock, 2001) se presenta un
análisis similar para trenes de carga y se comparan sus costos externos con los asociados al
transporte de mercancı́a con camiones, donde la conclusión general de dicha comparación,
es que las externalidades asociadas al transporte con camiones es de más de tres veces las
20
generadas por trenes de carga.
De los diferentes tipos de externalidades mencionadas, una revisión de la literatura emergente
de Green Vehicle Routing muestra una creciente tendencia estudiando las emisiones y el
consumo de combustible, especı́ficamente, la minimización en la planeación de rutas de
operación (Eglese and Black, 2012). Las consecuencias perjudiciales de las emisiones de
GHG, subproducto generado por la utilización de combustibles fósiles, y su relevancia en
las economı́as, lo convierten en un foco de investigación lógico para aminorar el impacto
ambiental de las actividades de transporte.
2.2.1.
Consumo de combustible y modelos de emisión para transporte de bienes
por carretera
La cantidad de CO2 emitido por un vehı́culo es directamente proporcional al consumo de
combustible. En la literatura se sugieren dos maneras de estimar el consumo de combustible
de los vehı́culos: medidas en carretera, que se basa en la recolección en tiempo real de los datos
correspondientes a las emisiones producidas por el vehı́culo funcionando, y el modelo análitico
de consumo de combustible o emisiones, los cuales estiman el consumo de combustible basados
en una serie de parámetros del vehı́culo, del medio ambiente y concernientes al tráfico de las
vı́as como la velocidad del vehı́culo, carga y aceleración del mismo. En (Ardekani et al., 1992),
(Esteves-Booth et al., 2002) y (Boulter et al., 2007) se encuentran revisiones detalladas de
modelos de emisiones producidas por vehı́culos.
Los modelos analı́ticos para el consumo de combustible pueden ser clasificados de manera muy
general en tres clases: (i) modelos con factor de emisiones, (ii) modelos basados en velocidad
promedio y (iii) modelos instantáneos (Esteves-Booth et al., 2002). Los modelos con factor
de emisiones son los más simples en forma y son utilizados a gran escala (estimaciones
de emisiones a nivel regional o nacional), particularmente cuando los datos relacionados a
las jornadas de los vehı́culos son limitados. Estos modelos normalmente utilizan un factor
de emisiones frecuentemente expresados por unidad de distancia. Los modelos basados en
velocidad promedio utilizan funciones que relacionan velocidad para estimar emisiones al
21
nivel de redes de carreteras y no incluyen parámetros detallados para realizar un análisis
microescala. Finalmente los modelos modales o instantáneos operan a un nivel de complejidad
más alto, especificidad suficiente para ser utilizados a un nivel microescala y utilizan entradas
detalladas como aceleración, gradiente de la carretera, los cuales son obtenidos del motor de
vehı́culo en funcionamiento incluso con una toma segundo a segundo de esta información.
Dado que los modelos basados en factor de emisiones son bastante simplistas y presentan
desventajas por su incapacidad para representar ciclos de conducción con buena exactitud,
centraremos nuestra atención principalmente en los modelos (ii) y (iii). Para más detalles de
los modelos con factor de emisiones (Esteves-Booth et al., 2002).
Modelos basados en velocidad promedio
A continuación se describen brevemente dos modelos para la estimación de emisiones basados
principalmente en velocidad y se obtienen utilizando técnicas de regresión. El primero de esos
se debe al reporte MEET publicado por la Comisión Europea (Hickman et al., 1999), donde
los autores presentan la siguiente expresión general para calcular la tasa de emisiones E (v)
(g/km) para un vehı́culo vacı́o de transporte de carga en una carretera de gradiente cero en
función de la velocidad promedio v del vehı́culo (km/h):
E (v) = ζ0 + ζ1 v + ζ2 v 2 + ζ3 v 3 + ζ4 /v + ζ5 /v 2 + ζ6 /v 3
(2.7)
Donde ζ0 − ζ6 son coeficientes predefinidos para diferentes tipos de vehı́culos clasificados
por su peso o tonelaje. El reporte MEET describe funciones similares para corrección de
factores para aspectos adicionales, como el gradiente y la carga, para ser aplicados a E (v).
Por ejemplo la tasa de emisiones de acuerdo al reporte MEET para un vehı́culo de menos
de 3.5 toneladas de peso está dado por E (v) = 0,0617v 2 − 7,8227v + 429,51. Otro modelo o
aproximación relevante basado en velocidad promedio denominado COPERT es descrito en
(Ntziachristos et al., 2000).
22
Modelos instantáneos
Los modelos de esta categorı́a manejan solamente emisiones ën caliente,̈ es decir, emisiones
exhaustivas del motor del vehı́culo en funcionamiento, y apuntan a la estimación de las
tazas de emisión de un vehı́culo operando durante intervalos cortos de tiempo de su ciclo de
conducción, con una frecuencia por ejemplo de segundo a segundo. Dado que estos modelos
requieren medidas detalladas y precisas del vehı́culo en operación, las cuales suelen ser difı́ciles
y costosas de recolectar, estos modelos se recomienda sean utilizados para investigación
solamente (Boulter et al., 2007).
Minimizando Emisiones en VRP
Las primeras investigaciones que contabilizan las
emisiones o el consumo de combustible en el VRP inicialmente se concentraron en el peso del
vehı́culo vacı́o como el factor determinante de las emisiones y por ende el elemento principal
a optimizar. Trabajos posteriores se centraron en la optimización de la velocidad, combinada
también con el peso del vehı́culo y algunos trabajos incluyeron otros factores adicionales.
Algunos trabajos analizaron el efecto de la dependencia del tiempo de viaje.
La independencia del tiempo en el contexto del VRP implica la suposición de que los
datos del problema, en particular los tiempos de viaje entre los nodos o clientes, no cambia
con el tiempo.
La dependencia del tiempo por el contrario, permite que los datos del problema cambien
con el tiempo. Los cambios en el tiempo de viaje a través de una sección de la carretera
pueden ser atribuı́dos a eventos esperados como la congestión producida en la hora pico, o
eventos inesperados como accidentes de tránsito o cambios bruscos en el clima.
En este estudio nos centraremos en modelos donde no hay dependencia del tiempo, pero las
velocidades son variables y por tanto son variables de decisión del problema. Este enfoque
en particular es apropiado para este estudio porque tiene un alcance suficiente de análisis al
asumir las velocidades de manera variable, sin dificultar el desarrollo del estudio estableciendo
dependencia del tiempo que requiere un insumo de datos costosos y difı́ciles de obtener. En
la Tabla 2.1 se presenta el estado del arte de la variante de interés, contextualizada con el
23
Tabla 2.1: Estado del arte Green Vehicle Routing Problem
Velocidad Fija
Velocidad Variable
Independientes del Tiempo
Dependientes del Tiempo
Kara et al. (2007)
Kuo (2010)
Palmer (2007)
Eglese et al. (2006)
Ruzinski et al. (2008)
Maden et al. (2010)
Suzuki (2011)
Conrad and Figliozzi (2010)
Ubeda et al. (2011)
Figliozzi (2010)
Xiao et al. (2012)
Figliozzi (2011)
Bektaş and Laporte (2011)
Franceschetti et al. (2013)
Demir et al. (2012)
Jabali et al. (2012)
Kramer et al. (2015)
Qian and Eglese (2016)
estado del arte de las variantes que pertenecen al Green VRP.
2.3.
2.3.1.
Marco teórico
Definición del problema integrado de enruteamiento de vehı́culos y carga
de contenedores
Carga bidimensional en los vehı́culos
En este tipo de problema tradicionalmente se parte del CVRP, en donde, para la demanda
de un cliente i (i = 1, 2, . . . , n), el peso total di es determinado por mi ı́tems. Cada ı́tem
Iil (l = 1, 2, . . . , m) tiene ancho wil y alto hil , mientras la superficie de carga de cada vehı́culo
tiene ancho W y alto H. Sea S (k) ⊆ {1, 2, . . . , n} el conjunto de clientes visitados por
el vehı́culo k. Adicionalmente a la restricción de capacidad clásica del CVRP (2.6), una
solución requiere una carga factible, que para este caso consiste en un patrón de ubicación
donde no exista traslape entre ninguno de los ı́tems rectangulares requeridos por los clientes
pertenecientes a S (k) dentro del área de carga W × H.
24
El problema resultante, denominado Problema de Ruteo de Vehı́culos Capacitado con
Restricciones de Carga Bidimensional y denotado 2L-CVRP (del inglés Two-Dimensional
Container Loading Problem With Capacitated Vehicle Routing ProblemProblema de Ruteo
de Vehı́culos Capacitado con nde los ı́tems que se requiere cargar no pueden sstricciones de
Carga Bidimensionaie) sea por su fragilidad o por su peso.
Un número de variantes de 2L-CVRP ha sido considerado en la literatura, básicamente con
dos criterios adicionales:
Orientación: Los ı́tems pueden tener orientaciones fijas, es decir, deben ser empacados
con su arista w y h paralelas a la arista W y H del de la superficie del contenedor, o
pueden ser rotados 90 ◦ .
Carga secuencial: Se puede imponer que el patrón de carga de cada vehı́culo permita
que la demanda de ı́tems de cada cliente pueda ser descargada a través de una secuencia
de un movimiento directo por ı́tem paralelo al eje H de la carga de área. Esta versión
es denotada como carga secuencial, donde los ı́tems pueden ser retirados al visitar cada
cliente sin requerir la reubicación del resto de la carga, mientras que la versión en la
que no está impuesta la restricción de carga secuencial donde el patrón de carga puede
requerir modificaciones cada vez que se visita un cliente, es comúnmente conocida como
irrestricta.
Nótese que la restricción de carga secuencial impone que el corredor que va desde la arista
w de cualquier ı́tem demandado por un cliente, hasta la parte trasera del vehı́culo, no puede
contener ninguna porción o ı́tem demandado por los clientes que son visitados posteriormente
en la misma ruta.
Carga tridimensional en los vehı́culos 3L-CVRP
Muchas actividades en el transporte de mercancı́as involucran dos tópicos básicos de
optimización que han sido estudiados intensamente en las últimas décadas. El primero,
25
denominado ruteo óptimo, consiste en encontrar las rutas que conectan la secuencia de
clientes a ser visitados para entregar los bienes a mı́nimo costo, y el segundo, determinar
la mejor manera de acomodar dichos bienes en los vehı́culos empleados para el transporte.
La gran mayorı́a de los problemas que surgen en esas dos áreas pertenecen a la clase de los
problemas NP-duros, y en la práctica su solución es realmente desafiante.
El problema de enrutamiento de vehı́culos surge cuando es necesario repartir un conjunto
de bienes a una serie de clientes que se encuentran geográficamente dispersos, el objetivo
consiste en minimizar los costos de la distribución o maximizar las ganancias asociadas al
transporte de las demandas que se deben atender. Por otra parte, el problema de carga de
contenedores o empaquetamiento es un problema de optimización tridimensional en donde se
debe acomodar un conjunto de elementos dentro de una caja rectangular de gran tamaño, de
forma tal que se optimice alguna o varias funciones objetivo, satisfaciendo ciertas restricciones
de empaquetamiento.
Aplicaciones reales de este problema ocurren en muchos contextos industriales, tales como:
el transporte de aglomerados de madera para muebles, empresas de envı́o de paquetes,
transporte de vehı́culos y transporte de mercancı́a en pallets, entre otros. El enrutamiento y
el empaquetamiento óptimo no solo es un requisito económico, sino que también se refiere
a la realización de una distribución más eficiente que disminuya el tamaño de las rutas,
reduciendo el impacto ambiental asociado a los vehı́culos que utilizan los planes de entrega.
La variante de enrutamiento CVRP busca un conjunto de circuitos o llamados rutas iniciando
y terminando en el depósito central. El CVRP se define como K vehı́culos idénticos de
capacidad D que deben atender n clientes diferentes, en donde cada vehı́culo es asignado
por lo menos a una ruta, cada cliente es visitado por un vehı́culo, la suma de los volúmenes
de las cajas demandadas de cada ruta no es mayor a la capacidad D del vehı́culo y el costo
general de todas las rutas debe ser la mı́nima para satisfacer las condiciones anteriores. Por
otro lado, el problema de empaquetamiento que se debe resolver para cada ruta propuesta,
consiste en cargar dentro de un contenedor pequeños paralelepı́pedos o cajas, de tamaños
diferentes y cantidades limitadas, de forma tal que se maximiza el espacio ocupado por la
26
carga. Este problema en la literatura es clasificado como el problema de emplazamiento
tridimensional en un único gran objeto rectangular (3D-SLOPP o CLP, por sus acrónimos en
inglés Three-dimensional Rectangular Single Large Object Placement Problem y Container
Loading Problem, respectivamente).
La integración del problema de enrutamiento de vehı́culos capacitado CVRP y la carga de
piezas tridimensionales en un único gran objeto rectangular 3D-SLOPP da origen al problema
conocido como 3L-CVRP, es decir, problema de enrutamiento de vehı́culos capacitado con
restricciones de carga de contenedores.
Además de esto, dentro de la validación del montaje de la carga en el vehı́culo, pueden ser
también consideradas las restricciones de: orientación y fragilidad de las cajas, estabilidad
de la carga, y secuenciamiento de la carga. Dependiendo de las diferentes restricciones de
empaquetamiento requeridas por el contexto, se obtienen diferentes variantes del problema
integrado. En este trabajo es desarrollado un algoritmo de solución para la variante donde
la capacidad D del vehı́culo es igual a su volumen, ya que en la práctica los vehı́culos están
limitados únicamente por sus dimensiones. La metodologı́a propuesta obtiene unos resultados
aceptables para la versión 3L-CVRP.
El 3L-CVRP considera que el peso total di de demanda del cliente i (i = 1, 2, . . . , n) es
producido por mi ı́tems tridimensionales. Cada ı́tem Iil (l = 1, 2, . . . , m), tiene ancho wil ,
alto hil y largo lil . La superficie de carga de cada vehı́culo tiene ancho W , alto H y largo
L. Sea S (k) ⊆ {1, 2, . . . , n} el conjunto de clientes visitados por el vehı́culo k. Además
de la restricción estándar de capacidad, una restricción de carga impone que existe un
empaquetamiento factible sin ningún tipo de traslape de todos los ı́tems tridimensionales
solicitados por cada uno de los clientes de S (k) dentro del espacio de carga de dimensiones
W × H × L. Ası́ como para el caso bidimensional, un número adicional de restricciones
prácticas o reales, aparecen en la literatura:
Orientación: los ı́tems pueden tener orientación fija, o (con mucha más frecuencia)
pueden ser rotados 90 ◦ en el plano horizontal (mientras que la rotación de orientación
vertical usualmente no se permite).
27
Fragilidad: cada ı́tem Iil puede presentar una bandera de fragilidad fil , tomando valor
1 si Iil es frágil, y valor 0 de lo contrario. En este caso, una restricción adicional impone
que los ı́tems que no son frágiles no pueden ser ubicados sobre ı́tems frágiles.
Área de soporte: Cada ı́tem Iil puede ser empacado sobre otros ı́tems. Sea Ā el área del
fondo del ı́tem o producto Iil . El empaquetamiento es factible sı́ y solo sı́, Ā ≥ a · wil · lil ,
donde a es un umbral dado (0 ≤ a ≤ 1) y representa la porción mı́nima del área de la
caja que tiene contacto con la caja de posible soporte del ı́tem Iil .
Carga secuencial: cuando un cliente i es visitado, debe existir una secuencia de
movimientos rectos (uno por cada ı́tem Iil ) en la dirección de la parte trasera del
vehı́culo, que permite la descarga del ı́tem sin mover ningún otro ı́tem. En otras palabras,
ningún ı́tem demandado por un cliente que sea visitado después puede ser ubicado sobre
Iil o entre Iil y la parte trasera del vehı́culo.
Este conjunto de restricciones de empaquetamiento son modeladas y enlazadas con el
modelo de transporte en (Junqueira et al., 2013). En este trabajo, estas restricciones no son
adicionadas al modelo debido a que serán garantizadas a través de un algoritmo heurı́stico.
2.3.2.
Definición del problema de enrutamiento de vehı́culos considerando
impacto ambiental
Se han planteado diferentes maneras de involucrar el impacto ambiental en los modelos
matemáticos de enruteamiento de vehı́culos, de manera general se presentan a continuación:
Modelos con factor de contaminación: La carga (demanda) como factor del costo de los
trayectos que debe viajar el vehı́culo con los bienes.
Modelos de velocidad promedio: Velocidad promedio de viaje del vehı́culo entre clientes
o puntos de atención como parte del conjunto de variables de decisión para medir la
contaminación, no solo basándose en la carga que lleva el vehı́culo, si no también la
velocidad a la que la transporta.
28
Modelos instantáneos: Velocidad instantánea y aceleración entre los puntos de atención,
considerando elementos externos al viaje del vehı́culo, tales como, congestión en las vı́as
asociada a horas pico, accidentes y obstáculos en el trayecto para entregar la demanda
transportada.
Cada uno de estos enfoques es incremental, y son enumerados desde el más sencillo hasta
el que presenta más elementos para modelar la participación del transporte de bienes en el
deterioro del medio ambiente. Por lo tanto, todos se basan en la carga o demanda acumulada
que transportan de los clientes mientras se desplazan entre los puntos geográficamente
dispersos que deben visitar, adicionando elementos como la velocidad a la que viajan o
los cambios de la misma dependiendo del entorno (congestión vehicular, accidentes). Estos
elementos adicionales requieren de una toma exhaustiva de información durante el trayecto,
necesitando equipos muy costosos y limitando el análisis a trayectos más cortos y áreas
más reducidas por el volumen de información que podrı́a requerirse, esto serı́a más cercano
a estudios de simulación que a optimización y análisis de este subgrupo de problemas de
enrutamiento de vehı́culos.
29
Capı́tulo 3
Algoritmo mateheurı́stico para el
problema de enrutamiento de
vehı́culos con flota homogénea y
restricciones de empaquetamiento
tridimensionales 3L-CVRP
3.1.
Introducción
En este capı́tulo se presenta un algoritmo hı́brido para resolver el problema de ruteo
de vehı́culos con restricciones de capacidad y restricciones prácticas de empaquetamiento
tridimensional 3L-CVRP. La metodologı́a de solución propuesta en este trabajo consiste
de dos fases; la primera utiliza un procedimiento de optimización basado en cortes para el
CVRP, la segunda valida las soluciones de la fase anterior a través de un algoritmo GRASP,
que evalúa las restricciones de empaquetamiento de cada una de las rutas. Para el algoritmo
hı́brido se utiliza la relajación del modelo clásico de dos subı́ndices para el problema de
30
ruteo de vehiculos. En particular diferentes tipos de cortes son adicionados: eliminacion
de subtours, cortes debido a las restricciones de capacidad y cortes para restricciones de
empaquetamiento. El algoritmo propuesto ha sido comparado con los algoritmos mas eficaces
para el 3L-CVRP en el conjunto clasico de instancias presentadas en la literatura. Los
resultados computacionales muestran que el metodo propuesto es capaz de obtener buenos
resultados perfeccionando algunas de las mejores soluciones conocidas propuestas en la
literatura.
3.2.
3.2.1.
Modelamiento del 3L-CVRP
Problema de Enrutamiento de Vehı́culos Capacitado CVRP
En el CVRP se busca obtener un número especı́fico de ciclos (rutas) que satisfagan la demanda
de un conjunto de vértices (clientes) iniciando y terminando en un depósito central ubicado
en el vértice 0. La formulación completa del CVRP propuesta en (Toth and Vigo, 2002), la
cual es ampliamente conocida como formulación de dos ı́ndices es presentada de la siguiente
manera. Sea G = (V, A) un grafo completo, donde V = 0, 1, 2, . . . , n es el conjunto de
vértices y A el conjunto de arcos. Los vértices V = 0, 1, 2, . . . , n corresponden a los clientes,
donde el vértice 0 corresponde al depósito. Un costo no-negativo de viaje cij es asociado
con cada arco (i, j) ∈ A. El costo de viaje entre (i, i) no es permitido. Por lo tanto, el
costo cii = +∞∀i ∈ V . Especı́ficamente, este trabajo considera la versión simétrica del
CVRP. Por tal razón, cij = cji ∀(i, j) ∈ A, y el conjunto de arcos puede ser reemplazado por
un conjunto de aristas no dirigidas E. Cada vértice i ∈ V es asociado con una demanda
no-negativa conocida di que debe ser entregada. Nótese que el depósito tiene una demanda
ficticia d0 = 0. Dada una arista e ∈ E, sea α(e) y β(e) sus vértices terminales. Dado un
conjunto de vértices S ⊆ V , sea δ(S) y E(S) el conjunto de aristas e ∈ E que tienen uno o
P
ambos puntos terminales en S respectivamente. Adicionalmente, se denota d(S) = i∈S di
como la demanda total del conjunto S.
Un conjunto K de vehı́culos idénticos, cada uno con capacidad Q, están disponibles en el
31
depósito. Para asegurar la factibilidad se asume que di ≤ Q para cada i = 1, . . . , n. Cada
vehı́culo realiza exactamente una ruta. Para un conjunto S ⊆ V \ 0, denotado por r(S) el
número mı́nimo de vehı́culos necesario para servir a todos los clientes en S. Comúnmente,
r(S) es reemplazado por el lı́mite inferior obtenido por el Problema de Empaquetamiento
de Contenedores (BPP por sus siglas en inglés Bin Packing Problem) trivial asociado al
m
l
d(S)
problema: Q . El BPP permite determinar el número mı́nimo de contenedores (vehı́culos),
cada uno con capacidad Q, requeridos para cargar los n ı́tems, cada uno con un peso
no-negativo di (i = 1, 2, . . . , n) siendo NP-duro estrictamente.
El CVRP consiste en encontrar un conjunto K de rutas con costo mı́nimo, definido como la
suma de los costos de los arcos que pertenecen a las rutas que deben realizarse. El CVRP
está sujeto a las siguientes restricciones:
1. Cada ruta termina e inicia en el vértice correspondiente al depósito.
2. Cada vértice cliente es visitado exactamente una vez
3. La suma de las demandas asociadas a los vértices visitados en una ruta no puede exceder
la capacidad Q de los vehı́culos.
El modelo utilizado en este capı́tulo, es una formulación de flujo de dos ı́ndices que utiliza
variables binarias x para indicar su un vehı́culo viaja a través de un arco (i, j) en la solución
óptima (Paschos, 2013). En otras palabras, la variable xij toma el valor de 1 si el arco
(i, j) ∈ E pertenece a la solución óptima y toma el valor de 0 de lo contrario. La función
objetivo consiste en minimizar el costo de los arcos a través de los que se viaja, como se
presenta en la Ecuación 3.1. Las Ecuaciones ( 3.2 - 3.6 ) controlan las visitas a los clientes y
la eliminación de subtours.
32
Min
XX
cij xij ;
(3.1)
xij = 1, ∀j ∈ V \ {0}
(3.2)
X
xij = 1, ∀i ∈ V \ {0}
(3.3)
X
x0j = K
(3.4)
X
xi0 = K
(3.5)
i∈V j∈V
s.a.
X
i∈V
j∈V
j∈V
i∈V
XX
xij ≥ r(S), ∀S ⊆ V \ {0}, S 6= ∅
(3.6)
i∈S
/ j∈S
xij ∈ {0, 1}, ∀i, j ∈ V
(3.7)
Las restricciones 3.2 y 3.3 corresponden a las restricciones de flujo del conjunto V (clientes);
estas restricciones garantizan que cada cliente deba ser visitado por un vehı́culo una única
vez. Las restricciones 3.4 y 3.5 aseguran que el mismo número de rutas lleguen y partan del
depósito 0. El conjunto 3.6 considera las restricciones de eliminación de subtours. De acuerdo
a (Toth and Vigo, 2002), este conjunto de restricciones puede ser representado de la siguiente
manera en la Ecuación 3.8:
XX
xij ≤ |S| − r(S)
(3.8)
i∈S j∈S
Sin embargo, el conjunto de restricciones encargadas de la eliminación de subtours requiere
consideraciones especiales debido a su complejidad combinatorial cuando el número de
clientes se incrementa. Por lo tanto, se ha considerado el conjunto de restricciones 3.8 para el
algoritmo propuesto. En particular, se añaden los cortes requeridos para eliminar los subtours,
hasta que una solución factible es encontrada durante el procedimiento Branch-and-Bound.
Nótese que el modelo considerado es capaz de representar solamente el CVRP. Para
33
obtener una representación global del problema 3L-CVRP, se ha considerado el conjunto
de restricciones 3.9, las cuales son adicionadas de manera iterativa al mismo tiempo que
las restricciones de eliminación de subtours. Este conjunto de restricciones garantiza la
factibilidad de los requerimientos de empaquetamiento (como las restricciones de carga
secuencial o multidrop, entre otras). Sea U ⊆ V \ {0} un subconjunto de clientes con una
demanda acumulada, la cual no puede ser empacada en los contenedores de los vehı́culos
considerando restricciones de empaquetamiento multidrop. Todos los posibles subconjuntos
de clientes que no pueden ser empacados serán entonces controlados por la restricción 3.9:
XX
xij ≤ |U | − 2
(3.9)
i∈U j∈U
Adicionando este conjunto de restricciones, el modelo matemático puede representar
apropiadamente el problema 3L-CVRP. El nivel de dificultad de solución del modelo
presentado en (3.1 - 3.9), se incrementa cuando el número de nodos es mayor, debido a
la explosión combinatorial que surge de los posibles subconjuntos de clientes controlado por
3.8. La alta complejidad del CVRP ha llevado al desarrollo de varios algoritmos basados tanto
en métodos exactos como aproximados. El CVRP ha sido investigado desde la década del
50. Artı́culos de revisión del CVRP pueden encontrarse en (Toth and Vigo, 2002), (Golden
et al., 2008) y (Baldacci et al., 2010). En (Schmid et al., 2013), un problema de enrutamiento
de vehı́culos que surge en la gestión de cadena de suministros es propuesto, incluyendo el
3L-CVRP.
3.2.2.
Problema de Carga y Empaquetamiento
En situaciones realistas de carga y empaquetamiento, la demanda de los clientes no puede ser
caracterizada simplemente como una cantidad (como el caso del CVRP), si no que también
es determinada por su forma y su ubicación espacial. En este caso, es necesario asegurar que
debe ser entregado, debe ser ubicado dentro del contenedor del vehı́culo. Estas restricciones
conciernen a los problemas de empaquetamiento multidimensional rectangular, los cuales se
originan como una extensión del problema de carga de contenedores unidimensional BPP. El
34
BPP puede ser descrito como el problema de ubicar un conjunto de segmentos sin que estos
se traslapen. Una introducción general a los trabajos correspondientes al empaquetamiento
rectangular puede encontrarse en los trabajos: (Lodi et al., 2002), (Paschos, 2013), (Wascher
et al., 2007) y (E.G. Coffman et al., 2013).
3.3.
Definición del Problema
El 3L-CVRP considera que ı́tems tridimensionales generan el peso total de la demanda de
un cliente i(i = 1, 2, . . . , n). Cada ı́tem Iil (l = 1, 2, . . . , m) tiene un ancho wil , un alto hil y
un largo lil . El área de carga de cada vehı́culo tiene un ancho W , un alto H y una longitud
L. Sea S(k) ⊆ {1, 2, . . . , n} el conjunto de clientes visitados por el vehı́culo k. El 3L-CVRP
impone las restricciones de empaquetamiento mencionadas en la Sección 2.3.1.
Este trabajo considera todas las restricciones de empaquetamiento, caracterizándolas como
se presentan en 2.3.1. Es importante notar que esta caracterización presenta suposiciones
que limitan su funcionalidad y aplicabilidad en contextos reales. Por ejemplo, la restricción
de fragilidad podrı́a ser formulada como una expresión binaria dependiendo de la fuerza de
soporte de carga y la orientación de las cajas (Alonso et al., 2014).
Los trabajos publicados previos a este estudio para el 3L-CVRP han intentado eliminar
algunas restricciones de empaquetamiento, con el fin de aislar las más crı́ticas. En (Martı́nez
et al., 2015), los autores indican que la secuencia de carga normalmente es la restricción
dominante. En este trabajo, otros aspectos del problema son estudiados; particularmente, el
hecho de que la capacidad Q del vehı́culo es normalmente especificada como parámetro sin que
presente ninguna relación con el tipo de carga. Esto implicarı́a que el valor de d(i) (demanda
de cada cliente) asume que todas las cajas del cliente i, e incluso para el conjunto total
de clientes, presentan la misma densidad de material, es decir, todos los clientes, teniendo
diferentes tipos de cajas, supuestamente tendrı́an la misma densidad de material, situación
que es muy poco probable que se presente en la práctica.
Hay dos tipos de suposiciones acerca de las restricciones de capacidad del vehı́culo:
35
Transporte de todo tipo de densidades de material para las cajas de cada uno de los
clientes.
Transporte de un tipo de densidad de material de las cajas (el cual se asume como 1,
siendo el peso de cada caja igual a su volumen).
Los trabajos publicados previamente solamente consideran la primera suposición. Se han
considerado ambas suposiciones (mirar resultados de la columna correspondiente a la
Mateheurı́stica y la columna de la Mateheurı́stica 3L-VRP presentes en la Tabla 3.1).
De hecho, una contribución de este trabajo es examinar el efecto de tener una densidad
igual a 1. Consecuentemente, para la segunda suposición, el nuevo valor de d(S) serı́a
P
d(S) = i∈S wil · lil · hil y la nueva capacidad del vehı́culo corresponderı́a a Q = W × L × H.
Todos los conjuntos de restricciones de empaquetamiento son integradas y enlazadas con
el modelo de transporte presentado en (Junqueira et al., 2013), pero debido a la alta
complejidad del modelo, la metodologı́a propuesta es inadecuada para resolver problemas de
mediano y gran tamaño. En este trabajo se utiliza un algoritmo GRASP dentro del modelo
matemático, garantizando dichas restricciones, y permitiendo solucionar problemas realistas
que se presentan en empresas dedicadas a estas actividades. Muchos algoritmos aproximados
han sido propuestos para resolver el 3L-CVRP.
Nótese que todos los enfoques propuestos para el 3L-CVRP están basados en esquemas
heurı́sticos, exceptuando (Bortfeldt, 2012). En este estudio se propone un algoritmo
mateheurı́stico, el cual difiere de (Bortfeldt, 2012), porque el problema de enrutamiento
es resuelto por un método exacto y el problema de empaquetamiento por un algoritmo
aproximado. El algoritmo propuesto es ampliado en las siguientes secciones.
3.4.
Enfoque Mateheurı́stico
La estrategia de solución general propuesta, resuelve ambos problemas de manera separada: el
Problema Capacitado de Enrutamiento de Vehı́culos (CVRP), y el Problema Tridimensional
36
de Carga de Contenedores Secuencial (3D-SLOPP, por sus siglas en inglés: Sequential Loading
Packing Problem). Para cada solución del CVRP, una validación de las restricciones de
empaquetamiento de la carga del contenedor para cada ruta es realizada. La principal
fortaleza del abordaje propuesto, es que el esfuerzo computacional está principalmente
enfocado en la solución exacta del CVRP, mientras que el problema de carga es resuelto
con un GRASP de alto rendimiento. El GRASP es calibrado de acuerdo a las caracterı́sticas
de los ı́tems que se entregarán, es decir, la demanda acumulada de los clientes cubiertos en
cada ruta.
El modelo matemático de dos ı́ndices (3.1 - 3.9) es relajado eliminando las restricciones
de empacabilidad y control de subtours. El enfoque propuesto gradualmente inserta esas
restricciones durante el esquema Branch-and-Cut, con el fin de obtener soluciones factibles.
De hecho, el algoritmo propuesto, empieza con una solución inicial generada por el conocido
algoritmo de ahorros (Clarke and Wright, 1964) y validado por el algoritmo GRASP. El valor
de la función objetivo de la solución inicial es utilizado como lı́mite superior (upper bound )
de la metodologı́a propuesta.
El algoritmo permite soluciones infactibles para el 3L-CVRP debido a que la primera solución
factible encontrada durante la búsqueda corresponde al óptimo del problema. Cuando una
solución factible es encontrada para el problema de enrutamiento, esta provee un lı́mite
inferior (lower bound ) para el problema original. Por esta razón, se puede utilizar como
inicialización del 3L-CVRP durante la búsqueda. El lı́mite superior está dado por la demanda
cargada correspondiente para las K rutas que se deben realizar para la distribución de
la carga (desde esta perspectiva el problema es visto como un problema de bin-packing).
Sin embargo, el esfuerzo del algoritmo propuesto está totalmente orientado a encontrar una
solución factible para el problema de enrutamiento de vehı́culos, guiado por la minimización
de los costos totales de viaje. Aunque el modelo de dos ı́ndices (3.1 - 3.9) requiere un esfuerzo
computacional notable, permite articular adecuadamente las restricciones correspondientes
al manejo de la carga de las cajas en el contenedor.
El 3L-CVRP ha sido direccionado aplicando un método exacto (Branch-and-Cut) para el
37
problema de enrutamiento de vehı́culos, resuelto a través de ILOG Concert Technology
y CPLEX bajo C++. El problema de empaquetamiento es resuelto con un GRASP.
Inicialmente, la versión relajada del modelo (3.1 - 3.9) es resuelto sin las restricciones de
capacidad y eliminación de subtours. Luego, esas restricciones son adicionadas de manera
iterativa durante el proceso. El algoritmo termina cuando una solución es encontrada para
el modelo, involucrando todas la restricciones. El algoritmo mateheurı́stico es descrito a
continuación.
3.4.1.
Método exacto para el Problema de Enrutamiento de Vehı́culos
En el algoritmo propuesto, se ha considerado el modelo de dos ı́ndices (3.1 - 3.9) para resolver
el subproblema de CVRP. Esta formulación está basada en subconjuntos de S clientes para
controlar la aparición de subtours y las restricciones de capacidad de los vehı́culos. Las
restricciones (3.6) y (3.8) son eliminadas obteniendo un modelo relajado que se denotará
MCV RP .
La metodologı́a propuesta inicia resolviendo el MCV RP y guardando su solución óptima
en S. Luego, la solución óptima actual para el MCV RP es revisada para encontrar
las violaciones sobre las restricciones de capacidad Lu o la presencia de subtours
LS . Si la solución es infactible, los cortes correspondientes son añadidos por la
función AddCutsT oT heM odel(MCV RP , LS , Le , Ri ) para evitar estas infactibilidades en las
siguientes iteraciones. Si la solución es factible, entonces el procedimiento debe revisar el
empaquetamiento correspondiente a la demanda acumulada en cada ruta a través del GRASP,
el cual determina si es posible o no empacar las cajas en los contenedores de los vehı́culos
con un patrón de carga que no requiera reorganización de las mismas en cada visita a los
clientes. Además, si la ruta inversa (posición inversa de los clientes) es imposible de empacar,
las rutas consideradas deben ser prohibidas (Lu ). En el Algoritmo 1 se detalla el proceso.
Con el fin de evitar la aparición de rutas violando los conjuntos de restricciones, los cortes
P P
i∈U
j∈U xij ≤ |U | − 2 (3.9) son añadidos al modelo MCV RP . Las aristas de las rutas
con clientes perteneciendo a U (subconjunto de clientes que juntos configuran una ruta
38
Algorithm 1 Matheuristic Branch&Cut-GRASP
Data: CVRP Mathematical Model MCV RP , Initial solution with a modified Clarke&Wright Savings
(packing feasible) R0 , 3L-CVRP Solution Rs , Subtours List Ls , List of routes with unfeasible
packing Lu , Time of execution for the incremental model in seconds Te
Result: Optimal and feasible solution Rs for the 3L-CVRP
1
R0 ← ModifiedSavings;
Initialize mathematical model MCV RP without the constraints with combinatorial explosion;
Start timer Te ;
while (Ls 6= ∅ or Lu 6= ∅) and Te < 3600 do
2
Ls ← ∅, Lu ← ∅;
Rs ← Solve(MCV RP , Starting point R0 );
Ls ← GetSubtours(Rs );
if Ls = ∅ then
for Each Route r of Rs do
3
Lu ← GRASP(r);
4
end
5
6
end
7
AddCutsToTheModel(MCV RP ,Ls ,Lu );
8
end
9
return Rs ;
infactible en términos de empaquetamiento) en una determinada secuencia serán restringidas.
Sin embargo, muchas secuencias de clientes serán evaluadas para una ruta dada, intentando
encontrar soluciones factibles considerando las restricciones de empaquetamiento. La Figura
3.1 ilustra los cortes de empaquetamiento realizados.
Una solución relajada para el MCV RP relajado, considera subtours y también rutas que son
infactibles con respecto a las restricciones de empaquetamiento (ver Ruta a en la Figura
3.1). Los clientes que pertenecen a la Ruta a no pueden ser empacados porque se viola la
restricción de carga secuencial, es decir, la ruta 0 − 1 − 5 − 8 − 11 − 7 − 0 debe ser eliminada.
Sin embargo, una gran cantidad de permutaciones de la Ruta a (0 − 7 − 11 − 8 − 5 − 1 − 0
39
Figura 3.1: Solución obtenida con el modelo relajado
40
por ejemplo) requieren ser examinadas en iteraciones posteriores, porque podrı́an brindar
soluciones factibles en términos de empaquetamiento. Por lo tanto, los clientes perteneciendo
a la Ruta a infactible, configuran el conjunto U = {1, 5, 8, 11, 7}, U ⊆ V \ {0} y |U | = 5.
Luego, a partir de la Ecuación 3.9, el corte expresado en la Ecuación 3.10 es aplicado.
x1 5 + x5 8 + x8
11
x1 5 + x5 8 + x8
+ x11
11
7
+ x11
≤5−2
7
≤3
(3.10)
Consecuentemente, cualquier conjunto de las aristas involucradas en la Ecuación 3.10 es
permitido, pero la secuencia completa de la ruta en el orden inicial, es restringida con la
introducción del corte 3.10 en el modelo MCV RP para las siguientes iteraciones. El proceso
continúa iterando en soluciones factibles para el problema de enrutamiento de vehı́culos, pero
infactible para el problema de carga secuencial de contenedores tridimensional. La solución
óptima es encontrada cuando la carga completa de las rutas de la solución óptima para el
MCV RP , sea también factible para el 3D-SLOPP.
3.4.2.
GRASP para validación de empaquetamiento
En este trabajo, se utiliza el algoritmo GRASP, por sus siglas en inglés Greedy Randomized
Adaptive Search Procedure, presentado en (Feo and Resende, 1989). El enfoque trabajado
en este estudio está basado en espacios maximales, en este caso tridimensionales como se
presenta en la Figura 3.2.
Más adelante, en la Sección 4.2.2 se detalla el algoritmo aproximado de empaquetamiento
tridimensional utilizado en este trabajo.
41
Figura 3.2: Ubicación de una caja en un subespacio maximal, generando nuevos subespacios maximales
3.5.
Resultados Computacionales
Se han considerado el conjunto de instancias clásicas (27) instancias para validar el desempeño
de la metodologı́a propuesta. La mateheurı́stica presentada ha sido comparada con (Gendreau
et al., 2006), (Tarantilis et al., 2009), (Fuellerer et al., 2010), (Ruan et al., 2013), (Bortfeldt,
2012) y (Tao and Wang, 2015). Varias mejores soluciones conocidas han sido mejoradas.
Los tiempos computacionales de la metodologı́a propuesta son altos comparados con los
abordajes publicados. El conjunto de instancias de prueba para el 3L-CVRP han sido
adquiridas de la librerı́a publicada en http://or.dei.unibo.it/sites/or.dei.unibo.it/
files/instances/3l_cvrp.zip. La Tabla 3.1 muestra el costo total de las rutas realizadas
para entregar todas las cajas a los clientes (función objetivo del 3L-CVRP). La Figura 3.3
muestra las rutas obtenidas para el algoritmo propuesto. Las Figuras 3.4-3.7 muestran los
patrones de empaquetamiento correspondientes a las rutas solución de la Instancia 1. Como se
observa, los patrones de empaquetamiento satisfacen las restricciones de estabilidad estática
42
de la carga, fragilidad de las cajas y descarga sin reacomodar la carga (polı́tica multi-drop o
LIFO).
43
Tabla 3.1: Comparación con los mejores resultados de la literatura
44
Gendreau et al. (2006)
Tarantilis et al. (2009)
Solución
Tiempo
Solución
Tiempo
Mejor
Promedio
Tiempo
Mejor
Promedio
Tiempo
Solución
Tiempo
Mejor
Promedio
Tiempo
Solución
Tiempo
Solución
Tiempo
302,02
316,32
1800
321,47
13,2
304,13
305,35
12
302,02
302,02
72,3
303,21
98,85
302,02
302,02
53,5
300,69
492,9
296,03
107
5
334,96
350,58
1800
334,96
11,5
334,96
334,96
0,6
334,96
334,96
0,9
334,96
4,55
334,96
334,96
6,3
359,78
941,1
292,17
7
37
4
381,37
447,73
1800
430,95
540,6
399,68
409,79
121,8
392,63
401,44
182
398,05
93,86
381,37
381,37
116,2
374,81
228,7
347,69
154
20
36
6
437,19
448,48
1800
458,04
323,5
440,68
440,68
5,4
437,19
437,54
16,1
440,68
46,75
437,19
437,19
14
430,88
492,9
360,91
8
21
45
6
436,48
464,24
1800
465,79
99,6
450,93
453,19
30,9
443,61
451,03
183
452,56
63,98
436,48
436,79
149,3
495,32
495,3
495,32
3600
6
21
40
6
498,16
504,46
1800
507,96
1212
498,32
501,47
18,4
498,16
498,38
23,6
498,56
196,9
498,32
498,32
31,6
498,31
425,7
416,15
17
7
22
46
6
767,46
831,66
1800
796,61
364,8
792,13
797,47
67,4
769,68
772,49
133
790,23
317,02
767,46
768,94
84,9
845,51
3600
740,15
335
8
22
43
6
804,75
871,77
1800
880,93
230
820,67
820,67
78,6
810,89
821,35
139
820,67
98,9
804,75
805,77
120,4
942,57
3600
752,37
496
9
25
50
8
630,13
666,1
1800
642,22
982,2
635,5
635,5
16,3
630,13
645,81
24,3
635,5
353,07
630,13
631,68
13,7
639,25
3600
547,28
78
10
29
62
8
820,35
911,16
3600
884,74
1308
840,75
841,12
246,7
820,35
827,29
175
836,21
410,9
822,86
828,99
258,6
906,2
3600
906,2
3600
11
29
58
8
772,85
819,36
3600
873,43
522,5
818,87
821,04
199,8
803,61
815,62
136
825,75
197,76
772,85
780,61
278,9
840,44
3600
840,44
3600
12
30
63
9
614,59
651,58
3600
624,24
294,6
626,37
629,07
48,2
614,59
630,46
14
626,59
89,47
614,59
614,6
145,8
641,3
3600
641,3
3600
13
32
61
8
2608,7
2928,34
3600
2799,74
2193
2739,8
2739,8
308,8
2646
2694,81
268
2739,8
319,78
2608,7
2636,85
369,4
2894,33
3600
2894,33
3600
14
32
72
9
1368,4
1559,64
3600
1504,44
4581
1466,8
1472,26
642,8
1368,4
1413,59
312
1469,38
268,39
1391,6
1398,77
588,1
1673,19
3600
1673,19
3600
15
32
68
9
1341,1
1452,34
3600
1415,42
2528
1367,6
1405,48
656,8
1341,1
1355,5
312
1369,69
356,55
1345,7
1352,76
615,9
1498,51
3600
1498,51
3600
16
35
63
11
698,61
707,85
3600
698,61
4257
698,92
698,92
14,8
698,61
705,05
3,4
703,15
431,74
698,92
698,92
4
731,46
3600
731,46
3600
17
40
79
14
866,4
920,87
3600
872,79
2096
868,59
870,33
14,9
866,4
917,96
2,5
872,05
374,84
866,4
866,4
9,5
881,53
3600
881,53
3600
18
44
94
11
1207,7
1400,52
3600
1296,59
2275
1255,6
1261,07
2209,8
1207,7
1228,98
310
1250,86
325,74
1220,3
1228,47
1634
1415,46
3600
1415,46
3600
19
50
99
12
741,74
871,29
7200
818,68
2509
777,18
781,29
623,6
741,74
753,87
417
780,37
1374,8
760,97
763,09
718,4
843,4
3600
843,4
3600
20
71
147
18
587,95
732,12
7200
641,57
1941
604,28
611,26
3901
587,95
596,42
427
605,59
1337
589,66
590,99
2942
659,84
3600
659,84
3600
21
75
155
17
1086,2
1275,2
7200
1159,72
2823
1110,1
1124,55
5180,6
1090,2
1107
443
1119,45
1247,9
1086,2
1096,53
2301
1181,55
3600
1181,55
3600
22
75
146
18
1147,8
1277,94
7200
1245,35
2686
1194,2
1197,43
2290,3
1147,8
1171,49
424
1167,28
1294,6
1150,6
1155,81
1242
1242,84
3600
1242,84
3600
23
75
150
17
1127,9
1258,16
7200
1231,92
4659
1158,5
1171,77
3727,6
1130,5
1135,46
426
1171,77
1105,7
1127,9
1130,08
1925
1159,44
3600
1159,44
3600
24
75
143
16
1114,1
1307,09
7200
1201,96
4854
1136,8
1148,7
1791,5
1116,1
1128,82
411
1136,27
2001,1
1114,1
1122,8
2527
1222,98
3600
1222,98
3600
25
100
193
22
1407,4
1570,72
7200
1457,46
5726
1429,6
1436,32
8817,1
1407,4
1428,8
453
1426,34
1458,8
1415,8
1417,09
4536
1507,89
3600
1507,89
3600
26
100
199
26
1585,5
1847,95
7200
1711,93
6283
1611,8
1616,99
6904,3
1600,4
1625,31
431
1585,46
3354,7
1602,1
1605,11
3018
1832,86
3600
1832,86
3600
27
100
198
23
1529,9
1747,52
7200
1646,44
9916
1560,7
1573,5
10484
1529,9
1550,85
435
1562,18
3140,2
1535,8
1538,1
6026
1647,88
3600
1647,88
Instancia
Nodos
Ítems
Vehı́culos
BKS
1
15
32
4
2
15
26
3
20
4
5
Promedio (Distancia Total)
934,06
Fuellerer et al. (2010)
Bortfeldt (2012)
Ruan et al. (2013)
Tao and Wang (2015)
Mateheurı́stica
Mateheurı́stica (3L-VRP)
3600
1042,26
997,18
966,67
953,79
960,1
941,59
1024,75
1001,08
-
GAP Relativo % (3L-VRP)
-1,68
2,76
6,01
7,44
6,73
8,83
-
GAP Relativo % (3L-CVRP)
-3,95
0,39
3,56
4,96
4,27
6,32
-
-
Tiempo Promedio (s)
4200
2416
1793
229
754
1101
2913
2577
CPU
Pent. IV 3.0 GHz
Pent. IV 2.8 GHz
Pentium IV 3.2 GHz
Core2Duo E8500 3.16GHz
Pentium IV 2.3 GHz
Pentium IV 2.67 GHz
i7-2600S 2.8GHz
i7-2600S 2.8GHz
Single Thread Rating
653
635
699
1321
564
608
1797
1797
Figura 3.3: Enrutamiento para la Instancia 1 (empaquetamiento factible)
La metodologı́a propuesta mejora la calidad de la solución encontrada por algoritmos previos
publicados en la literatura. Los tiempos computacionales son altos debido al uso de una
metodologı́a exacta para el problema de enrutamiento de vehı́culos asociado. Las soluciones
obtenidas para el problema integrado 3L-CVRP incluyendo restricciones de empaquetamiento
secuencial, dificultan la generación de rutas solución para la distribución de los productos
a los clientes. La Figura 3.3 muestra las rutas producidas para la Instancia 1. Nótese que
algunas rutas no son envolventes convexas como suelen producirse en soluciones del CVRP
tradicional. Además, las rutas generadas muestran con claridad un empeoramiento de la
función objetivo para el CVRP, por ejemplo, el traslape de las envolventes que describen el
recorrido de los vehı́culos, dejan en evidencia que las rutas no han sido trazadas con clientes
que se encuentran próximos geométricamente causando un empeoramiento de la minimización
de costos de transporte.
45
Figura 3.4: Orden de atención para la primera ruta (vehı́culo 1): 3-8-7-6
Figura 3.5: Orden de atención para la segunda ruta (vehı́culo 2): 4-13-14
46
Figura 3.6: Orden de atención para la tercera ruta (vehı́culo 3): 9-10-15-5-12
Figura 3.7: Orden de atención para la cuarta ruta (vehı́culo 4): 11-2-1
47
El algoritmo propuesto siempre se movió en la infactibilidad, empeorando iterativamente los
costos de transporte hasta alcanzar una solución factible y de mı́nimo costo. En efecto, el
CVRP puede considerarse como un lı́mite inferior (lejano) para el problema 3L-CVRP.
Las columnas Metaheurı́stica y Metaheurı́stica (3L-VRP) de la Tabla 3.1 abren una
discusión en torno a las limitantes que tienen las instancias de la literatura especializada
para el 3L-CVRP, las cuales, al corresponder a una extensión de las instancias del CVRP,
las piezas demandadas presentan una densidad de carga que no tiene sentido en aplicaciones
reales. Dado que la demanda de los clientes del CVRP se convierte en el peso de las piezas
requeridas por cada cliente en el 3L-CVRP, las dimensiones de las cajas demandadas por
un solo cliente pueden variar mucho, y la densidad de estas no tiene sentido en un contexto
práctico. Se sugiere entonces observar también el comportamiento ignorando este peso y
dejando en manos del volumen ocupado por las cajas el tope de carga que puede recibir cada
uno de los vehı́culos, adicional al enfoque que trae la literatura desde que el problema fue
propuesto en (Gendreau et al., 2006).
Para el caso del transporte de un tipo de estructura de las cajas, los resultados obtenidos
del enfoque propuesto respecto a las restricciones de empaquetamiento (ver columna
Mateheurı́stica (3L-VRP) en la Tabla 3.1) están alineados con las conclusiones de Alonso
et al. (2014). Efectivamente, las soluciones obtenidas para el conjunto de instancias de pruebas
son como mı́nimo, de la misma calidad que el caso donde todos los tipos de densidad de las
cajas para cada cliente son considerados (ver columna Mateheurı́stica en la Tabla 3.1).
3.6.
Conclusiones y trabajos futuros
Se realizó una revisión de los diferentes trabajos en la literatura que resuelven el problema
integrado de enrutamiento de vehı́culos con restricciones carga de contenedores. La mayorı́a
de trabajos presentan algoritmos aproximados.
En este trabajo, un algoritmo mateheurı́stico exitoso ha sido propuesto para resolver
el 3L-CVRP. La metodologı́a hı́brida descompone el 3L-CVRP en dos subproblemas: el
48
Problema Capacitado de Enrutamiento de Vehı́culos (CVRP) y el Problema de Carga de
Contenedores Tridimensional Secuencial (3D-SLOPP). El algoritmo propuesto combina un
algoritmo de Branch-and-Cut para resolver el CVRP con un esquema GRASP para encontrar
soluciones factibles para el 3D-SLOPP. El algoritmo propuesto ha sido comparado con
(Gendreau et al., 2006), (Tarantilis et al., 2009), (Fuellerer et al., 2010), (Ruan et al., 2013),
(Bortfeldt, 2012) y (Tao and Wang, 2015) en la librerı́a clásica de instancias propuesta para
el 3L-CVRP. Los resultados muestran la efectividad del enfoque propuesto (algunas mejores
soluciones son encontradas).
Para trabajos futuros, se consideran otras formulaciones matemáticas (por ejemplo la
formulación matemática de tres ı́ndices), que puede ser descompuesta explotando los
beneficios de la técnica del Branch-and-Cut o la generación de columnas. Esta consideración
tiene ventajas para resolver el CVRP debido a que provee control de las rutas de manera
individual. Adicional a esto, es posible remover fácilmente las restricciones de capacidad y
subtour. Sin embargo, es necesario realizar un tratamiento cuidadoso de este modelo, porque
implica un crecimiento importante del número de variables frente al modelo empleado en este
estudio.
49
Capı́tulo 4
Metaheurı́stica hı́brida de Búsqueda
Tabú Granular y GRASP para el
3L-CVRP
4.1.
Introducción
En este capı́tulo se ofrece una metodologı́a metaheurı́stica hı́brida para el 3L-CVRP. El
algoritmo utiliza una solución inicial obtenida por un algoritmo Clarke & Wright considerando
restricciones de empaquetamiento, controladas por un esquema GRASP, durante el proceso
de búsqueda.
4.2.
Estructura del Algoritmo Propuesto
El algoritmo hı́brido propuesto consta de tres partes: 1) construcción de una solución inicial
aplicando un procedimiento modificado propuesto por Clarke and Wright (1964) (Algoritmo
2), 2) un Algoritmo de Búsqueda Tabú Granular GTS (por sus siglas en inglés Granular Tabu
Search) para mejorar las distancias recorridas en las rutas durante el proceso de búsqueda
50
(Algoritmo 4) y 3) un algoritmo GRASP para ubicar la demanda acumulada de cada una de
las rutas construidas (Algoritmo 3). En las siguientes subsecciones, se detallan las partes de
la metodologı́a.
4.2.1.
Solución Inicial
La solución inicial S0 es construida utilizando un procedimiento Clarke & Wright modificado
introducido en Clarke and Wright (1964). Esta estrategia es aplicada para obtener soluciones
iniciales de buena calidad en tiempos computacionales cortos. esta variación del Clarke
& Wright permite considerar las restricciones de carga tridimensionales. El procedimiento
considera la reasignación de los vehı́culos a grupos de clientes, de acuerdo a la redistribución
de la demanda total. Cuando un grupo de clientes (ruta) es generado, la factibilidad por
empaquetamiento es determinada por el Algoritmo 3. El Algoritmo 2 presenta el pseudocódigo
del proceso descrito en esta subsección.
Algorithm 2 Modified Savings Algorithm
Data: Customers, Distances, Vehicles
Result: Initial solution S0
1
Calculate savings list;
2
Sort decreasingly the savings list;
3
for all saving in savings list do
4
Calculate demand weight and three-dimensional packing feasibility for the customers group
demand (Algorithm 3);
5
if packing constraint is fulfilled then
Apply saving;
6
7
else
Ignore saving;
8
9
end
10
end
11
return Initial solution S0 , considering fulfilling packing constraints but allowing capacity
unfeasibility, which will be repaired in the main algorithm
51
Esta forma de obtener la solución inicial se puede clasificar como golosa, porque todas las
rutas son construidas a través de una búsqueda continua de una solución local mı́nima. Esta
estrategia permite obtener más rutas que vehı́culos disponibles en el depósito, es decir, la
restricción que controla el número máximo de rutas es relajada durante el procedimiento.
Las rutas excedentes son eliminadas durante la fase de la Búsqueda Tabú Granular.
4.2.2.
Algoritmo GRASP
El algoritmo GRASP ha sido propuesto por Feo and Resende (1989) para resolver problemas
combinatoriales duros. El GRASP es un proceso iterativo que combina una fase constructiva
con una fase de mejora. En la fase constructiva, una solución es generada paso a paso,
agregando elementos a una solución parcial. La fase constructiva es iterativa, golosa,
aleatorizada y adaptativa, mientras que en la fase de mejora, algunos movimientos son
incluı́dos en la estructura iterativa con el fin de intensificar y diversificar la búsqueda de la
solución. Diferentes estudios demuestran su calidad y robustez, para una mejor comprensión,
el lector es invitado a revisar Resende and Ribeiro (2003).
Algoritmo Constructivo
El algoritmo constructivo está inspirado en el procedimiento propuesto por Parreno et al.
(2010) para el problema de carga de contenedores. El algoritmo está basado en espacios
maximales. En la medida en la que una caja seleccionada es empacada en un nuevo espacio,
tres nuevos espacios maximales son producidos. El algoritmo constructivo utiliza una lista
actualizada de espacios maximales, y una lista de cajas para el cliente actual, las cuales
están en proceso de ser empacadas. La parte más difı́cil para este caso, es la gestión de
los espacios vacı́os cuando todas las cajas han sido empacadas para cierto cliente. En dicho
caso, antes de empezar a empacar las cajas para el siguiente cliente, algunos espacios tienen
que ser removidos de la lista y otros tienen que ser actualizados, con el fin de satisfacer las
restricciones multi-drop o de carga secuencial. Esta idea ha sido introducida por Parreno
et al. (2010) para el problema de empaquetamiento tridimensional.
52
Paso 0: Inicialización
F S = lista de espacios maximales vacı́os creada cuando se empacan las cajas.
Inicialmente, F S es simplemente el contenedor vacı́o.
B = {B1 , B2 , ..., Bn } el conjunto de cajas pendientes para empacar, ordenadas por
cliente.
Paso 1: Eligiendo el espacio maximal de S
Se considera el listado F S de espacios maximales, los cuales son los paralelepı́pedos
vacı́os más grandes disponibles para ser llenados con cajas. Se utilizan dos estrategias
alternativas para seleccionar el espacio maximal. Se alterna entre seleccionar el espacio
maximal con la distancia mı́nima al respaldo del contenedor, y seleccionar el espacio
maximal con la coordenada z mayor. En efecto, esta estrategia intenta llenar el fondo
del contenedor primero o acomodar las cajas formando pilas.
Paso 2: Seleccionando las cajas que serán empacadas
Una vez que un espacio maximal F S ha sido seleccionado, consideramos las cajas
restantes del cliente actual que ajustan en F S con el fin de seleccionar la caja que
debe ser empacada. Si hay muchas cajas con las mismas dimensiones, se estudia la
posibilidad de empacarlas como un bloque, es decir, empacar muchas de esas cajas
dispuestas en un arreglo rectangular con muchas filas y columnas. Dos criterios han sido
considerados para seleccionar la configuración de las cajas: Mejor-Volumen Best-Volume
y Mejor-Ajuste Best-Fit. En el primero, la caja o el bloque de cajas produciendo el mayor
incremento en el volumen ocupado por las mismas es seleccionado. En el segundo, la caja
o bloque de cajas que presentan el mejor ajuste en el espacio maximal es considerada.
Se computan las distancias desde cada lado de la caja o bloque a cada lado del espacio
maximal, y se ponen esos espacios en un vector en orden no-decreciente. La caja o
bloque de cajas es seleccionado utilizando orden lexicográfico.
Si el criterio de visibilidad es utilizado, la esquina, dentro de la cual la caja o el bloque
es empacado, es el espacio maximal con la distancia más corta al origen del contenedor.
En los otros dos casos, el algoritmo revisa la posición y la ubicación de la caja o bloque
53
de cajas con el fin de hacerla alcanzable, siempre intentando ponerla tan cerca del fondo
como sea posible, buscando maximizar el espacio restante utilizable del contenedor.
Paso 3: Actualizando la lista F S para el cliente actual
A menos que la caja o bloque de cajas ajuste exactamente dentro del espacio F S,
empacarlo produce nuevos espacios maximales vacı́os que son reemplazados en la lista
F S. Además, mientras los espacios maximales son no disjuntos, la caja o bloque de
cajas que están siendo empacadas pueden ser intersectadas por otro espacio maximal,
el cual tendrá que reducirse. Una vez los nuevos espacios han sido añadidos y algunos de
los existentes modificados, se revisa la lista y se eliminan posibles inclusiones. El listado
B también es actualizado y los espacios maximales que no pueden recibir ninguna de
las cajas pendiente por ser empacadas son eliminados de F S. Si F S = ∅ o B = ∅, el
procedimiento termina. De lo contrario, si no se ha completado el empaquetado de las
cajas para el cliente actual, se retorna al Paso 1.
Paso 4: Actualizando el listado F S para un nuevo cliente
Se tiene que actualizar el listado de espacios maximales para el siguiente cliente. Para
eso, el enfoque propuesto elimina del listado todos los espacios maximales que no son
completamente visibles desde el frente del contenedor. Luego, los espacios maximales
que tienen algunas secciones visibles y otras no visibles son actualizados.
Búsqueda Local (Mejoras)
El enfoque propuesto considera dos tipos de mejora o procedimientos de búsqueda local.
El primero intenta mejorar el patrón de empaquetamiento final, mientras que el segundo
concentra su esfuerzo computacional en obtener un mejor patrón de empaquetamiento para
cada cliente.
La primera mejora consiste en la eliminación del último (k % ) de cajas empacadas
en el patrón final de empaquetamiento. (Por ejemplo el 50 % final). El valor k es
seleccionado aleatoriamente en el intervalo [30, 90]. Las cajas removidas, más las cajas
54
que se encuentran por fuera de la solución, son empacadas nuevamente utilizando
un procedimiento constructivo determinı́stico. Las funciones objetivo del algoritmo
constructivo son Mejor-Volumen y Mejor-Ajuste. Esta nueva solución es considerada
solamente si el volumen total de las cajas empacadas aumenta.
En la segunda mejora, la metodologı́a aplica el procedimiento previamente descrito
a la solución parcial obtenida después de realizar el empaquetamiento de un cliente.
Especı́ficamente,esta nueva solución es considerada solamente si el área ocupada es
reducida.
En este estudio se ha desarrollado un algoritmo constructivo aleatorizado, basado en espacios
maximales que construye soluciones totalmente factibles. Adicionalmente, se propone una
fase de búsqueda local con varios movimientos de mejora como: construcción de columnas,
bloques y filas, y compresión de soluciones por clientes. Las dos fases son combinadas en un
esquema metaheurı́stico reactivo tipo GRASP. El algoritmo 3 muestra cómo el GRASP valida
las restricciones de empaquetamiento y produce patrones de empaquetamiento multi-drop si
los ı́tems pueden ser cargados dentro del vehı́culo.
4.2.3.
Búsqueda Tabú en Espacio Granular & Algoritmo de Validación 3L tipo
GRASP
El abordaje propuesto (GTS-GRASP) utiliza el concepto de espacio de búsqueda granular
propuesto por Toth and Vigo. (2003), el cual está basado en la utilización de un grafo disperso
conteniendo las aristas incidentes a los depósitos, las aristas perteneciendo a la mejor solución
encontrada hasta el momento, y las aristas cuyo costo es menor al umbral de granularidad
ϑ = βz, donde z es el costo promedio de las aristas en la mejor solución encontrada, y β es un
factor de dispersión que es actualizado dinámicamente durante la búsqueda. La modificación
del valor de β permite al algoritmo alternar entre etapas de intensificación (valores pequeños
de β) y diversificación (valores grandes de β). La meta principal del Búsqueda Tabú Granular
es obtener soluciones de alta calidad manteniendo las principales caracterı́sticas del Búsqueda
Tabú en cortos tiempos computacionales (Escobar et al. (2013), Escobar et al. (2014b),
55
Algorithm 3 GRASP 3L Validation
Data: Lists of Spaces F S, List of Boxes Bc of each Customer c and List of Packing Patterns P
Result: Feasible or Unfeasible packing.
1
Initialize F S = OriginalContainerSize, B = ListOf BoxesOf EachCustomer, P = ∅
2
for l ← 1...IterationsN umber do
3
while F S 6= ∅ do
while Bc 6= ∅ do
4
5
Space F Si = SelectSpaceByCriteria(FS);
6
List CS = GenerateBlockList(F Si ,B);
7
List RCL = BuildRCL(CS ,δ);
8
Layer C = SelectBlockRandomly(RCL);
9
Packing Pattern P = LocateBlock-Space(C,F Si ,P );
10
List F S = UpdateListOfMaximalSpaces(C,F S);
11
List B = UpdateListOfRemainingBoxes(C,B);
12
end
13
List F S = UpdateListOfSpacesByCostumerChanging(F S,M ulti − dropT ype);
14
end
15
end
16
if B 6= ∅ then
17
return F easible;
18
end
19
return U nf easible;
56
Escobar et al. (2014a)).
El Algorithm GTS-GRASP permite soluciones infactibles con respecto a la capacidad de los
vehı́culos. Dada una solución S compuesta por un conjunto de z rutas (r1 , ..., rz ), y cada
ruta rl , donde l ∈ {1, ..., z}, es denotada por (v0 , v1 , v2 , ..., v0 ). Adicionalmente, denotando
v ∈ rl como un cliente v perteneciendo a la ruta rl , y (u, v) ∈ rl siendo una arista donde
u y v son dos vértices consecutivos de la ruta rl . Se asigna a la solución S un valor de la
función objetivo F1 (S) = Σzl=1 Σ(u,v)∈rl cuv . Si la solución S es infactible, se le asigna a S un
valor de función objetivo F2 (S) = F1 (S) + Pq (S), donde Pq (S) es un término de penalidad
obtenido multiplicando el global sobre la capacidad de vehı́culos de la solución S, por un
factor de penalidad actualizado dinámicamente αq . En particular αq = ρq × F1 (S0 ), donde ρq
es un parámetro calculado durante la búsqueda. Nótese que si la solución actual S es factible,
F1 (S) = F2 (S).
Si durante la búsqueda, se encuentran soluciones infactibles con respecto a la capacidad de
vehı́culos para un número dado Nf act de iteraciones, el valor de ρq es fijado en min{ρmax , ρq ×
δinc }, donde δinc > 1. De lo contrario, si cualquier solución factible ha sido encontrada para
un número dado Nf act de iteraciones, el valor de ρq es establecido en max{ρmin , ρq × δred },
donde δred < 1. Nf act , ρmin , ρmax , δinc , and δred son parámetros dados.
El algoritmo explora el espacio de soluciones moviéndose en cada iteración, desde la solución
Si hasta la mejor solución en el vecindario Nk (Si ), incluso si esta es infactible. El movimiento
seleccionado es declarado como tabu. El tabu tenure es especificado como un valor entero
aleatorio en el rango [tmin , tmax ], donde tmin y tmax son parámetros dados. La estrategia
de diversificación está basada en la idea granular propuesta por Toth and Vigo. (2003).
Inicialmente, el factor de dispersión β es establecido en un valor pequeño β0 . Si Si es infactible
después de Nβ iteraciones, el factor de dispersión β es aumentado a un valor βd . Luego, un
nuevo grafo es calculado, y Nchange iteraciones son realizadas desde la mejor solución factible
encontrada (Sbest ). Finalmente, si Si es factible después de Nchange iteraciones, el factor de
dispersión es reiniciado a su valor original β0 y la búsqueda continua. β0 , βd , Nβ y Nchange
son parámetros dados.
57
El algoritmo metaheurı́stico hı́brido propuesto (GTS-GRASP) utiliza movimientos intra-ruta
e inter-ruta correspondientes a los siguientes vecindarios:
Swap: Dos clientes (en la misma ruta o en rutas diferentes) intercambian sus posiciones.
Double-Swap: Este movimiento es una extensión del movimiento Swap obtenido al
considerar dos pares compuestos de clientes consecutivos. La arista conectando cada
par de clientes es conservada.
Two-Opt: La estrategia 2-opt ampliamente utilizada, es empleado en este estudio para
movimientos tanto intra-ruta como inter-ruta.
Shift(1,0): Este operador es realmente útil para reparar el número de rutas de
la solución inicial S0 . En efecto, este operador permite reparar la infactibilidad S0
respecto al número de rutas (solución producida por el algoritmo constructivo de
ahorros modificado propuesto en este trabajo) decrementando el número de rutas
al reubicar algunos clientes (transfiriendo algunos blientes entre rutas). El Shift(1,0)
siempre reubica un cliente de una ruta i a otra ruta j.
58
Algorithm 4 GTS-GRASP Algorithm
Data: Lists C (Customers), D (Demand of Customers)
Result: Routes and packing patterns
1
S0 ← Clark&Wright-GRASP(C, D)
2
Start GTS parameters
3
Sbest ← S0
4
for i ← 1...GT S N umber of Iterations do
5
if i == 1 then
6
S i ← S0
7
end
8
listOf M oves ← ∅
9
listOf M oves ← listOf M oves ∪ 2opt (Si ) ∪
10
insertion (Si ) ∪ doubleInsertion (Si ) ∪
11
swap (Si ) ∪ doubleSwap (Si ) ∪ shif t (Si )
12
listOf M oves.ascendingSort (M ovementCost)
13
for j ← 1...listOf M oves.size do
if GRASP 3L V alidation (movementj ) then
14
Si′ ← applyM ovement (movementj )
15
16
end
17
break
18
end
19
if f (Si ) > f (Si′ ) then
20
Si ← Si′
21
Sbest ← Si
22
end
23
if Nshake is reached then
24
Perturbation Function(Sbest , Si , Seed P aram)
25
Seed P aram + +
26
Number of iterations without updating Sbest = 0
27
end
28
Update GTS parameters
29
end
30
return Sbest
59
La metodologı́a desarrollada es presentada en el Algoritmo 4. El algoritmo es repetido hasta
que Niterations son realizadas. El GRASP 3L V alidation sera aplicado exclusivamente a los
movimientos más promisorios del listado de movimientos listOf M oves (prioridad por menor
costo) obtenido por los operadores, pero la revisión de factibilidad de empaquetamiento es
realizada hasta que un movimiento 3L factible es encontrado en listOf M oves.
Los movimientos más promisorios realizados por los operadores, presentes en listOf M oves,
son considerados teniendo en cuenta solamente las restricciones correspondientes al problema
de enrutamiento de vehı́culos asociado. Es por esto que algunas soluciones pueden ser
infactibles en términos de restricciones de empaquetamiento tridimensional. Esta situación
causa que buenas soluciones de enrutamiento puedan ser ignoradas del listado de movimientos
listOf M oves a causa de su infactibilidad en términos de empaquetamiento tridimensional.
Adicionalmente, la primera solución 3L y multi-drop factible, usualmente tiene peor
calidad con respecto a la mejor solución encontrada hasta el momento Sbest para el
problema considerado, llevando a un considerable desperdicio de iteraciones y de esfuerzo
computacional.
Con el fin de evitar óptimos locales, un procedimiento de perturbación es aplicado
para producir soluciones a partir del mejor patrón de enrutamiento encontrado hasta el
momento, teniendo una mayor probabilidad de obtener soluciones para el problema completo
(3L-CVRP). El esquema de perturbación es aplicado después de completar un número Nshake
de iteraciones sin actualizar la mejor solución Sbest encontrada hasta el momento. En la
etapa de parametrización, se encontró que el número apropiado de iteraciones permitido sin
actualizaciones de Sbest es 50.
El procedimiento de perturbación, a diferencia del procedimiento de reparación de la solución
actual Si , permite explorar muchas soluciones obtenidas de la mejor solución encontrada
Sbest controlada aleatoriamente. Este procedimiento permite explorar nuevas y diversas
′
áreas promisorias de búsqueda. Sbest
es obtenida inicialmente a partir de la mejor solución
encontrada hasta el momento, la cual es modificada aleatoriamente de la siguiente manera:
1) dos rutas son seleccionadas aleatoriamente (routes rl y tl ); 2) selección aleatoria de un
60
cliente (p) de la ruta rl y un cliente (q) de la ruta tl ; 3) el cliente p es removido de la ruta rl
e insertado dentro de la ruta tl en la posición de q; 4) el cliente q es removido de la ruta tl
e insertada en una ruta ul seleccionada aleatoriamente, donde rl 6= ul . Nótese que el cliente
n es insertado en el mejor lugar (mejor función objetivo) de la ruta ul . El procedimiento de
perturbación es presentado en la Figura 4.1, donde (a) muestra la selección de las rutas y los
clientes, y (b) muestra el movimiento realizado. Para el procedimiento de perturbación, las
restricciones de empaquetamiento son también validadas. Por lo tanto, el procedimiento es
′
repetido hasta que una nueva solución factible Sbest
, derivada de la solución Sbest es obtenida,
′
es decir, Si ← Sbest
. En el Algoritmo 5, el procedimiento de perturbación es detallado.
Algorithm 5 Perturbation Function
Data: Sbest , Si , Seed P arameter
Result: Perturbed Si
1
P erturbation F lag ← f alse;
2
′
Sbest
← Sbest ;
3
while ¬P erturbation F lag do
4
′
Select randomly two different routes rl and tl from Sbest
;
5
Select a random customer p from route rl ;
6
Select a random customer q from route tl ;
7
Move customer p from route rl to route tl replacing the position of customer q;
8
Move customer q to a route ul with rl 6= ul ;
9
if packing constraints are fulfilled then
10
P erturbation F lag ← true;
11
′
Si ← Sbest
;
12
else
′
Sbest
← Sbest ;
13
14
end
15
end
16
return Si
61
Figura 4.1: Perturbación de la mejor solución encontrada hasta alguna iteración de la metodologı́a Sbest , para obtener
′
Sbest
como nuevo punto de búsqueda Si
62
Tabla 4.1: Parametrización para el Algoritmo GTS-GRASP
Parámetro
Descripción
Valor
β0
Valor inicial del factor de dispersión
2
ρmin , ρmax
Mı́nimo y máximo valor para penalidad por capacidad
[8, 8 × F1 (S)]
βd
Delta del factor de dispersión
4
δinc , δred
Factores de incremento y reducción para la, penalidad por capacidad
1,1,
Nshake
Número de iteraciones permitidas sin actualización de Sbest
50
Niterations
Número total de iteraciones para el Algoritmo GTS-GRASP
100 × n
T enure
Tabu Tenure
50
4.3.
1
1,1
Experimentos Computacionales
El algoritmo propuesto (GTS-GRASP) ha sido implementado en C++ y los experimentos
han sido desarrollados con un procesador Intel (R) Core(TM) i7 2.93 GHz, 16 Gb RAM, bajo
sistema operativo Ubuntu 14.04 de 64 bits. La efectividad del algoritmo propuesto ha sido
verificada con el conjunto de instancias de prueba propuestas por Gendreau et al. (2006). Este
conjunto consiste en 27 instancias, cuyo número de clientes n varı́a entre 15 y 100 clientes.
4.3.1.
Parametrización
Un gran número de pruebas se realizaron con el fin de obtener un conjunto de parámetros para
ser utilizados en el conjunto completo de instancias de prueba. En la Tabla 4.1 se muestra el
mejor conjunto de parámetros obtenido para todas las instancias.
En la Tabla 4.2 los resultados obtenidos por la metodologı́a propuesta son presentados. De
manera complementaria, en esta misma Tabla, se presenta información de las publicaciones
previas a este trabajo, para realizar una comparación completa del Algoritmo GTS-GRASP
con los mejores resultados computacionales disponibles en la literatura.
63
Tabla 4.2: Comportamiento del algoritmo y comparación con los mejores algoritmos publicados hasta el momento del estudio
Gendreau
Tarantilis
Fuellerer
et
et
et
al.
(2006)
(2009)
al.
Bortfeldt
Ruan
and
al.
et
Homberger
(2010)
Tao
al.
(2013)
(2013)
and
Wang
GTS-GRASP
(2015)
Instancia
Nodos
Ítems
Vehı́culos
Solución Tiempo
Solución
Tiempo
Mejor
Promedio
Tiempo
Mejor
Promedio
Tiempo
Solución
Tiempo
Mejor
Promedio
Tiempo
Solución
1
15
32
4
316.32
1800
321.47
13.2
304.13
305.35
12
302.02
302.02
72.3
303.21
98.85
302.02
302.02
53.5
300.7
Tiempo Total
107
2
15
26
5
350.58
1800
334.96
11.5
334.96
334.96
0.6
334.96
334.96
0.9
334.96
4.55
334.96
334.96
6.3
340.55
7
154
3
20
37
4
447.73
1800
430.95
540.6
399.68
409.79
121.8
392.63
401.44
182
398.05
93.86
381.37
381.37
116.2
404.03
4
20
36
6
448.48
1800
458.04
323.5
440.68
440.68
5.4
437.19
437.54
16.1
440.68
46.75
437.19
437.19
14
430.89
8
5
21
45
6
464.24
1800
465.79
99.6
450.93
453.19
30.9
443.61
451.03
182.6
452.56
63.98
436.48
436.79
149.3
492.24
456
17
6
21
40
6
504.46
1800
507.96
1212.4
498.32
501.47
18.4
498.16
498.38
23.6
498.56
196.9
498.32
498.32
31.6
498.32
7
22
46
6
831.66
1800
796.61
364.8
792.13
797.47
67.4
769.68
772.49
133.1
790.23
317.02
767.46
768.94
84.9
789.78
335
8
22
43
6
871.77
1800
880.93
230
820.67
820.67
78.6
810.89
821.35
139.1
820.67
98.9
804.75
805.77
120.4
875.08
496
9
25
50
8
666.1
1800
642.22
982.2
635.5
635.5
16.3
630.13
645.81
24.3
635.5
353.07
630.13
631.68
13.7
639.26
78
10
29
62
8
911.16
3600
884.74
1308.4
840.75
841.12
246.7
820.35
827.29
175.1
836.21
410.9
822.86
828.99
258.6
829.23
2063
11
29
58
8
819.36
3600
873.43
522.5
818.87
821.04
199.8
803.61
815.62
136.4
825.75
197.76
772.85
780.61
278.9
762.51
1370
12
30
63
9
651.58
3600
624.24
294.6
626.37
629.07
48.2
614.59
630.46
14
626.59
89.47
614.59
614.6
145.8
641.3
62
64
13
32
61
8
2928.34
3600
2799.74
2193.1
2739.8
2739.8
308.8
2645.95
2694.81
268.4
2739.8
319.78
2608.68
2636.85
369.4
2759.12
2017
14
32
72
9
1559.64
3600
1504.44
4581.3
1466.84
1472.26
642.8
1368.42
1413.59
311.6
1469.38
268.39
1391.56
1398.77
588.1
1482.88
2000
2000
15
32
68
9
1452.34
3600
1415.42
2528.3
1367.58
1405.48
656.8
1341.14
1355.5
311.5
1369.69
356.55
1345.72
1352.76
615.9
1374.22
16
35
63
11
707.85
3600
698.61
4256.5
698.92
698.92
14.8
698.61
705.05
3.4
703.15
431.74
698.92
698.92
4
703.38
11
17
40
79
14
920.87
3600
872.79
2096
868.59
870.33
14.9
866.4
917.96
2.5
872.05
374.84
866.4
866.4
9.5
871.63
23
18
44
94
11
1400.52
3600
1296.59
2275.2
1255.64
1261.07
2209.8
1207.72
1228.98
309.5
1250.86
325.74
1220.3
1228.47
1634.1
1415.46
2000
19
50
99
12
871.29
7200
818.68
2509
777.18
781.29
623.6
741.74
753.87
416.5
780.37
1374.84
760.97
763.09
718.4
838.45
2000
20
71
147
18
732.12
7200
641.57
1940.9
604.28
611.26
3901
587.95
596.42
427
605.59
1336.97
589.66
590.99
2941.8
634.27
2000
21
75
155
17
1275.2
7200
1159.72
2823.4
1110.09
1124.55
5180.6
1090.22
1107
443.4
1119.45
1247.86
1086.17
1096.53
2301.4
1147.64
2000
2000
22
75
146
18
1277.94
7200
1245.35
2685.6
1194.18
1197.43
2290.3
1147.8
1171.49
423.5
1167.28
1294.57
1150.55
1155.81
1241.8
1218.54
23
75
150
17
1258.16
7200
1231.92
4659.1
1158.51
1171.77
3727.6
1130.54
1135.46
425.8
1171.77
1105.74
1127.92
1130.08
1924.9
1133.71
2000
24
75
143
16
1307.09
7200
1201.96
4854.1
1136.8
1148.7
1791.5
1116.13
1128.82
411.1
1136.27
2001.05
1114.1
1122.8
2526.8
1189.25
2000
2000
25
100
193
22
1570.72
7200
1457.46
5725.8
1429.64
1436.32
8817.1
1407.36
1428.8
453
1426.34
1458.8
1415.75
1417.09
4536.2
1464.03
26
100
199
26
1847.95
7200
1711.93
6283.1
1611.78
1616.99
6904.3
1600.35
1625.31
430.6
1585.46
3354.72
1602.06
1605.11
3017.7
1664.84
2000
27
100
198
23
1747.52
7200
1646.44
9915.7
1560.7
1573.5
10483.9
1529.86
1550.85
435
1562.18
3140.18
1535.83
1538.1
6025.7
1647.88
2000
Promedio
(Total
Distancia)
1042.26
997.18
966.67
953.79
960.10
941.59
Relativo
GAP %
-5.7
-1.4
1.7
3.1
2.4
4.4
Promedio
Tiempo (s)
CPU
Single
Thread
Rating
4200
Pentium
IV
653
3.0 GHz
2416
Pentium IV
635
2.8 GHz
1793
Pentium IV
699
3.2 GHz
229
Core2Duo
1321
E8500
3.16GHz
754
Pentium IV
564
2.3 GHz
983.30
1101
Pentium IV
608
2.67 GHz
i7-2600S
1797
1156
2.8GHz
4.3.2.
Análisis Comparativo
El algoritmo propuesto ha sido comparado con los algoritmos más efectivos propuestos para
el 3L-CVRP hasta el momento del estudio: TSTS12 Bortfeldt (2012), ACO10 Fuellerer et al.
(2010), TSA06 Gendreau et al. (2006) y TSGLS09 Tarantilis et al. (2009) en el conjunto de
instancias de benchmarking propuestas en Gendreau et al. (2006).
Para cada instancia, el algoritmo propuesto GTS-GRASP ha sido ejecutado una sola vez,
de esta forma, la mejor solución encontrada en cada instancia es reportada. Los resultados
reportados para los algoritmos TSA06 y TSGL09 corresponden a una sola ejecución de los
mismos. Los resultados reportados para los algoritmo ACO10 y TSTS12 corresponden, para
cada instancia, al costo promedio encontrado y el mejor costo encontrado considerando 10
ejecuciones de cada algoritmo. Los resultados son reportados tal y como aparecen en las
publicaciones consideradas.
Nótese que el enfoque propuesto tiene la capacidad de obtener resultados de buena calidad.
De hecho, el GAP promedio de 4.24 % respecto a la mejor solución conocida BKS (por las
siglas en inglés de Best Known Solution) reportada en la literatura, es alcanzada. Adicional
al comportamiento para todas las instancias, cuatro nuevos BKS han sido alcanzados, tres
de ellos son resaltados en la Tabla 4.2 obtenidos con los parámetros presentados en las
subsección previa (4.3.1). El cuarto BKS fue encontrado durante la etapa de parametrización
para la instancia número 23. Los patrones de enrutamiento y empaquetamiento para el BKS
correspondiente a la instancia número 1 son presentados en las Figuras 4.2, 4.3, 4.4, 4.5 y
4.6.
Durante la etapa de parametrización, el rendimiento del algoritmo fue notorio para algunas
instancias. En efecto, el enfoque propuesto es capaz de obtener la mejor solución conocida
para la instancia 23, la cual considera 75 nodos, 150 ı́tems (cajas) y 17 vehı́culos. El mejor
patrón de enrutamiento es presentado en la Figura 4.7, ası́ como en la Figura 4.8 se presenta la
visualización de los patrones de empaquetamiento correspondientes a las rutas que componen
el BKS de la instancia 23.
65
Figura 4.2: Patrón de enrutamiento obtenido por el algoritmo GTS-GRASP para la instancia 1. BKS = 302.02,
GTS-GRASP = 300.67
Figura 4.3: Patrón de empaquetamiento para la ruta: 3-8-7-6
Figura 4.4: Patrón de empaquetamiento para la ruta: 4-13-14
66
Figura 4.5: Patrón de empaquetamiento para la ruta: 11-9-2-1
Figura 4.6: Patrón de empaquetamiento para la ruta: 5-10-15-12
4.4.
Conclusiones e investigaciones futuras
Se propuso una metodologı́a metaheurı́stica hı́brida para el 3L-CVRP denominada
GTS-GRASP en este documento. Especı́ficamente, un enfoque tipo Búsqueda Tabú Granular
es utilizado para resolver el Problema de Enrutamiento de Vehı́culos, mientras que un
esquema tipo GRASP resuelve el Problema de Carga de Contenedores correspondiente para
cada una de las rutas. El enfoque propuesto produce un algoritmo muy competitivo que
alcanza la mejora de cuatro de las mejores soluciones conocidas, para instancias de pequeño,
mediano y gran porte.
Para trabajos futuros, una buena forma de decrementar los tiempos computacionales de
la metodologı́a propuesta, es mejorar el procesamiento de la lista de movimientos utilizando
estrategias computacionales especializadas (como paralelización), con el fin de aliviar el cuello
de botella que se presenta en las validaciones de empaquetamiento sobre las rutas que se van
generando en el proceso. Por otro lado, la calidad del algoritmo también podrı́a mejorarse
pasando el GTS a una arquitectura paralela que tenga la capacidad de correr de manera
67
Figura 4.7: Patrón de enrutamiento obtenido por el Algoritmo GTS-GRASP para la instance 23. BKS = 1130.54,
GTS-GRASP = 1122.48
simultánea varias trayectorias tabú con diferentes conjuntos de parámetros.
68
Figura 4.8: Patrones de empaquetamiento para cada una de las rutas del BKS encontrado para la instance 23.
69
Capı́tulo 5
Algoritmos Mateheurı́sticos para el
Problema del Agente Viajero
Considerando Polución
5.1.
Introducción
La contaminación se está expandiendo de manera creciente en nuestras ciudades, y una de
sus principales causas son las emisiones provenientes de los vehı́culos que transitan por las
carreteras. Por lo tanto, reducir las emisiones de carbono es una meta fundamental que
debe buscar alcanzarse en los problemas de enrutamiento de vehı́culos (Bektaş and Laporte
(2011), Lin et al. (2014)). En Bektaş and Laporte (2011), fue introducido el Problema
de Enrutamiento Considerando Polución PRP (por sus siglas en inglés Pollution Routing
Problem); y se trata de una variante del VRP, en la cual la meta no es solamente minimizar
la distancia de los viajes, si no también, minimizar la emisión de gases de efecto invernadero,
consumo de combustible, tiempos de viaje y los costos asociados a los mismos. Se propone
en este capı́tulo, un modelo de Programación Lineal Entero Mixto MILP (por sus siglas en
inglés Mixed Integer Linear Programming), junto con un análisis de la forma como se afectan
las diferentes medidas de rendimiento del enrutamiento de vehı́culos de esta variante, como
70
son: la distancia, la carga, las emisiones de gas y los costos de operación. En Demir et al.
(2012) el modelo MILP fue extendido para permitir viajes de baja velocidad, y se propone
una efectiva heurı́stica de búsqueda adaptativa de vecindario amplia para el PRP. Un enfoque
mateheurı́stico combina una búsqueda local, junto con el MILP para el PRP; obteniendo un
mejor rendimiento que los algoritmos anteriormente propuestos.
Motivados por los estudios recientes de PRP, en Cacchiani et al. (2018) se propone el
Problema del Agente Viajero Considerando Polución PTSP (por sus siglas en inglés Pollution
Traveling Salesman Problem), en el cual se busca obtener un Tour Hamiltoniano que minimice
una función de consumo de combustible (dependiente de la velocidad del vehı́culo y la carga
que transporta), y los costos asociados al conductor. De manera más puntual, el PTSP
corresponde a la versión de una sola ruta o tour del PRP como se modela en Demir et al.
(2012). El PTSP es descrito formalmente en la Sección 5.2, donde también se presenta
el modelo MILP correspondiente, mejorado con restricciones de eliminación de subtour
explı́citas. En Cacchiani et al. (2018), se propone un Algoritmo de Búsqueda Local Iterativa
ILS (por sus siglas en inglés Iterated Local Search Algorithm) (Lourenço et al. (2010)), y
se reportaron experimentos computacionales en instancias hasta con 50 clientes. El ILS es
presentado en la Sección 5.3. La principal contribución de este trabajo son dos algoritmos
mateheurı́sticos: (i) Un Algoritmo Genético Multi-operador MGA (por sus siglas en inglés
Multi-operator Genetic Algorithm) y (ii) Un Algoritmo Hı́brido HA (por sus siglas en inglés
Hybrid Algorithm), basado en la combinación del ILS y el MGA, presentados en la Sección
5.4. Los algoritmos propuestos tienen la capacidad de encontrar soluciones de buena calidad
en tiempos computacionales muy cortos. En la Sección 5.5, se reportan los experimentos
computacionales realizados sobre las instancias de hasta 200 clientes, propuestas en Demir
et al. (2012) y adaptadas en este estudio para el caso de un solo vehı́culo: en particular, acá
se comparan los resultados obtenidos por el ILS, el MGA y el HA con aquellos encontrados
por el algoritmo de Cut-and-Branch, basado en el modelo MILP mejorado presentado en la
Sección 5.2. Finalmente, se plantean algunas conclusiones en la Sección 5.6.
71
5.2.
Descripción y Formulación del Problema
El PTSP es definido como un grafo completo y dirigido G = (N , A), donde N = {0, . . . , n}
es el conjunto de nodos, 0 es el depósito y A es el conjunto de arcos. La distancia del nodo
i al nodo j, se denota como dij . El conjunto N0 = N \ {0} es el conjunto de clientes. Cada
cliente i ∈ N0 tiene una demanda no negativa qi , y un tiempo de servicio ti . Se define en
P
este trabajo D =
i∈N0 qi como la capacidad del vehı́culo, y ud el salario del conductor
por unidad de tiempo. Considerando una función de velocidad discretizada definida por |R|
con niveles de velocidad no decrecientes v̄ r (r ∈ R), donde cada r ∈ R, corresponde a un
intervalo de velocidad en el rango [v l , v u ] (donde v l y v u corresponden a los lı́mites inferior y
superior de velocidad de viaje del vehı́culo).
Se adopta la expresión de consumo de combustible propuesta en Demir et al. (2012), la cual
extiende la expresión que se presenta en Bektaş and Laporte (2011), permitiendo velocidades
inferiores a 40 km/hora. Para un mayor detalle, se recomienda al lector explorar estos
documentos para conocer la forma como esta expresión es derivada. Para un arco dado
(i, j) ∈ A de longitud dij , atravesado a una velocidad v por un vehı́culo transportando una
carga M = w + fij , donde w es el peso del vehı́culo vacı́o (peso neto) y fij es la carga
transportada por el vehı́culo en este arco; el consumo de combustible entonces puede ser
expresado como:
F (v) = λkN V dij /v + λβγdij + λwγαij dij + λγαij fij dij
(5.1)
Donde λ = ξ/κψ y γ = 1/1000ηtf η son constantes, β = 0,5Cd ρA es una constante especı́fica
del vehı́culo, αij = τ + g sen θij + gCr cos θij es una constante especı́fica del arco dependiendo
del ángulo de inclinación o pendiente de la carretera θij del arco (i, j), y la aceleración τ
(m/s 2 ). Todos los parámetros y valores han sido tomados de Demir et al. (2012), y se
presentan en la Tabla 5.1. En particular, los primeros dos términos de (5.1) representan los
requerimientos de energı́a que surgen con la velocidad inducida, mientras que los dos últimos
términos representan los requerimientos energéticos inducidos por la carga transportada.
72
Tabla 5.1: Parámetros utilizados en el modelo PTSP.
Notación
Descripción Tı́pica
Valores
w
Peso del vehı́culo vacı́o (kilogramos)
6350
ξ
Relación combustible-aire por unidad de masa
1
k
Factor de fricción del motor (kilojoule/rev/litro)
0.2
N
Velocidad del motor (rev/segundo)
33
V
Desplazamiento del motor (litros)
5
(metros/segundo2 )
g
Constante gravitacional
9.81
Cd
Coeficiente de arrastre aerodinámico
0.7
ρ
Densidad del aire (kilogramo/metro3 )
1.2041
A
Área de superficie frontal (metro2 )
3.912
Cr
Coeficiente de resistencia a la rodadura
0.01
ηtf
Eficiencia de la caja de cambios del vehı́culo
0.4
η
Parámetro de eficiencia de los motores diesel
0.9
fd
Salario de conductor por unidad de tiempo (£/segundo)
0.0022
κ
Valor tipico de calor para combustible diesel (kilojoule/gramo)
44
ψ
Factor de conversión (gramo/segundo a litro/segundo)
737
vl
Lı́mite inferior de velocidad (metro/segundo)
5.5 (o 20 kilómetros/hora)
vu
Lı́mite superior de velocidad (metro/segundo)
25 (o 90 kilómetros/hora)
El PTSP busca determinar el Tour Hamiltoniano de mı́nimo costo que inicia desde el depósito
y visita cada cliente exactamente una vez atendiendo su demanda, donde el costo está dado
por la suma del consumo de combustible y el salario del conductor. Se introducen en este
trabajo las siguientes variables de decisión: (i) variables binarias xij asumiendo valor 1 si el
arco (i, j) ∈ A es recorrido; las variables no negativas fij representan la cantidad de flujo (es
decir, la carga presente en el vehı́culo) viajando por el arco (i, j) ∈ A; (iii) variables binarias
zijr asumiendo el valor 1 si el arco (i, j) ∈ A es atravesado a la velocidad r ∈ R. El modelo
MILP para el PTSP se presenta a continuación:
73
Min
P
λkN V dij
r∈R
(i,j)∈A
+
P
P
zijr /v̄ r +
P
λβγdij
r∈R
(i,j)∈A
λwγαij dij xij +
P
P
λγαij dij fij
zijr (v̄ r )2
(5.2)
(5.3)
(i,j)∈A
(i,j)∈A
+ fd (
P P
(i,j)∈A r∈R
sujeto a
(dij /v̄ r )zijr +
P
ti )
(5.4)
i∈N0
P
f0j = D
(5.5)
P
fj0 = 0
(5.6)
P
xij = 1, ∀i ∈ N
(5.7)
P
xij = 1, ∀j ∈ N
(5.8)
j∈N0
j∈N0
j∈N
i∈N
P
fji −
j∈N
P
fij = qi , ∀i ∈ N0
(5.9)
j∈N
qj xij ≤ fij ≤ (D − qi ) xij , ∀ (i, j) ∈ A
P r
zij = xij , ∀ (i, j) ∈ A
(5.10)
(5.11)
r∈R
xij ∈ {0, 1}, ∀ (i, j) ∈ A
(5.12)
fij ≥ 0, ∀ (i, j) ∈ A
(5.13)
zijr ∈ {0, 1}, ∀ (i, j) ∈ A, ∀r ∈ R
(5.14)
La función objetivo consiste en tres componentes principales para minimizar: (5.2) y (5.3)
representan el consumo de combustible, como se define en (5.1), teniendo en cuenta,
respectivamente, la energı́a requerida por las variaciones de velocidad y la energı́a utilizada
para llevar el vehı́culo vacı́o y la carga presente en el vehı́culo, mientras que (5.4) corresponde
al salario del conductor, donde el término que está por fuera de los paréntesis corresponde
a la duración total del tour, la cual depende de la velocidad a la que se viaja por los
arcos y en los tiempos de servicio en cada uno de los clientes. Las restricciones (5.5) y
(5.6) aseguran, respectivamente, que el vehı́culo sale completamente lleno y retorna vacı́o al
depósito. Las restricciones (5.7) y (5.8) garantizan que cada nodo es visitado exactamente una
vez. Las restricciones (5.9) y (5.10) definen la carga presente en el vehı́culo durante cada arco
74
visitado (e implı́citamente prohı́be subtours). Finalmente, las restricciones de (5.11) enlazan
las variables x y z imponiendo que un solo nivel de velocidad es seleccionado para cada arco
utilizado (i, j) ∈ A, y las restricciones (5.12)-(5.14) definen los dominios de las variables.
En este trabajo se adicionan al modelo presentado entre (5.2)-(5.14), la eliminación explı́cita
de subtours SECs (por sus siglas en inglés de Explicit Subtour Elimination Constraints),
como se propone en Dantzig et al. (1954) para el TSP Asimétrico:
X X
xij ≥ 1,
S ⊆ N,
{0} ∈ S,
|S| ≥ 2.
(5.15)
i∈S j∈N \S
La solución óptima de la relajación LP del modelo (5.2)-(5.15) es utilizada para
obtener buenas soluciones factibles para lo tres algoritmos metaheurı́sticos propuestos.
Adicionalmente, el modelo (5.2)-(5.15) es utilizado como punto de referencia en los
experimentos computacionales, para evaluar el comportamiento de los algoritmos propuesto.
Puntualmente, se resuelve en este estudio el modelo (5.2)-(5.15) con un algoritmo
Cut-and-Branch, en el cual las SECs son separadas, en el nodo raı́z, utilizando el
procedimiento de separación propuesto en Padberg and Rinaldi (1990), y el solver CPLEX
es utilizado para obtener soluciones enteras del MILP.
Es importante anotar, que los algoritmos metaheurı́sticos determinan solamente la secuencia
de clientes de una solución factible del PTSP, es decir, los valores de las variables
correspondientes xij del modelo (5.2)-(5.15). El valor de la función objetivo asociada
(5.2)-(5.4) puede ser fácilmente computado definiendo, para cada arco utilizado (i, j), los
valores correspondientes de la carga fij y el intervalo de velocidad r que produce el mı́nimo
consumo de combustible.
5.3.
Algoritmo de Búsqueda Local Iterativa
El pseudocódigo del ILS se presenta en el Algoritmo 6. El primer paso (lı́neas 1–8) consiste
en resolver iterativamente el modelo de Programación Lineal (LP, por sus siglas en inglés
75
Linear Programming), resultante de la relajación del modelo (5.2)-(5.15); aplicando el proceso
de separación propuesto en Padberg and Rinaldi (1990) para detectar el conjunto S que
contiene los subtours (es decir, un subconjunto de nodos S para el cual el SEC (5.15))
correspondiente es violado): si existe uno, entonces el corte correspondiente SEC (5.15) es
añadido al modelo y la relajación LP es resuelta nuevamente. Una vez la solución óptima x
de la relajación LP ha sido obtenida, es utilizada en la lı́nea (9) para construir un subtour
como se describe a continuación. Inicialmente, se define el depósito 0 como el nodo inicial h.
Luego, iterativamente, se selecciona un nodo j que aún no ha sido visitado, donde xhj + xjh
tiene el valor más alto: el arco (h, j) es añadido al tour, y j se convierte en el nuevo nodo
inicial h. Si, para todos los nodos sin visitar i, se tiene xhi + xih = 0, luego se selecciona el
nodo sin visitar j con el valor más pequeño de la distancia original dhj . El procedimiento
se repite hasta que se obtiene un tour completo y factible. Se le denomina entonces s∗ la
solución óptima localmente y s∗∗ la mejor solución actual. El siguiente ciclo (lı́neas 10–33)
contienen tres fases: perturbación, búsqueda local y criterio de aceptación.
Para perturbar la mejor solución actual s∗∗ (lı́neas 11–16) se aplica, con una probabilidad
del 80 % un movimiento de doble-puente, o un movimiento de mezcla de subtours en caso
contrario. El movimiento de doble-puente consiste en remover aleatoriamente cuatro aristas
que presenten nodos disjuntos (A,B), (C,D), (E,F), (G,H), y reconectarlos como (A,F), (G,D),
(E,B), (C,H). El movimiento de mezcla de subtours selecciona aleatoriamente un camino del
tour y cambiar aleatoriamente el orden de sus nodos. Después de realizar la perturbación, se
obtiene la solución s′ .
La siguiente fase (lı́neas 17–27) es un procedimiento de búsqueda local que es aplicado
a la solución óptima s∗ ; con probabilidad del 80 % se aplica el movimiento 2-opt, de lo
contrario, se realiza una intercambio de mejora. El primer movimiento consiste entonces
en la ejecución del procedimiento 2-opt utilizando como costo de cada arco (i, j) ∈ A la
distancia original dij y deteniendo el procedimiento cuando sucede la primera mejora. El
segundo movimiento requiere del intercambio de dos nodos seleccionados aleatoriamente en
el tour: si se obtiene una mejora del valor de la función objetivo PTSP (5.2)-(5.4), entonces
se realiza el intercambio, de lo contrario, se mantiene el tour original. Este procedimiento es
76
ejecutado |N | veces. Después de aplicar el procedimiento de búsqueda local, se obtiene una
nueva solución s′′ , considerando la función φ que genera el valor de la función objetivo PTSP
(5.2)-(5.4).
La última etapa (lı́neas 28–30) consiste en el criterio de aceptación (revisión del histórico):
si s∗∗ no ha sido mejorado durante 10 iteraciones, entonces se aplica un paso adicional de
búsqueda local sobre s∗∗ ejecutando el procedimiento 2-opt. Este utiliza como costos de los
arcos las distancias originales dij (i, j) ∈ A, pero cada vez que una mejora es posible, se revisa
si el valor de la función objetivo PTSP (5.2)-(5.4) es también mejorado, y se acepta el cambio
solamente en este caso.
Finalmente, la mejor solución entre s∗ y s∗∗ es almacenada en s∗∗ . La condición de
terminación es alcanzada cuando I iteraciones son realizadas (I = 5000 en los experimentos
computacionales realizados en este estudio).
77
Algorithm 6 Iterated Local Search
Data: Instance Parameters
Result: Feasible Tour
1
F ← empty cut family
2
repeat
3
x ← solution of the LP-relaxation of (5.2)-(5.15) with respect to the cut family F
4
S ← violated cut found by the separation-procedure(x)
5
if S =
6 ∅ then
6
7
add cut S to the family F
end
8
until S = ∅;
9
s∗ , s∗∗ ← build-feasible-tour(x)
10
repeat
11
r′ ← rnd(0, 1)
12
if r′ < 0,8 then
13
14
15
s′ ← double-bridge-move(s∗∗ )
else
s′ ← scramble-subtour(s∗∗ )
16
end
17
r′′ ← rnd(0, 1)
18
if r′′ < 0,8 then
19
20
21
s′′ ← 2-opt-move(s∗ )
else
s′′ ← exchange-improvement(s∗ )
22
end
23
if φ(s′ ) < φ(s′′ ) then
24
25
26
s∗ ← s′
else
s∗ ← s′′
27
end
28
if check-history(φ(s∗∗ )) then
29
s∗ ← 2-opt-improvement(s∗∗ )
30
end
31
if φ(s∗ ) < φ(s∗∗ ) then
32
s∗∗ ← s∗
end
33
until termination condition;
78
5.4.
Algoritmo Genético Multi-operador y Algoritmo Hı́brido
Los Algoritmos Genéticos son metaheurı́sticas efectivas, y han sido exitosamente aplicadas
para resolver el ATSP y en muchas de sus variantes (Potvin (1996), Larranaga et al. (1999),
Moon et al. (2002), Snyder and Daskin (2006), Yuan et al. (2013), Groba et al. (2015)).
Generalmente, estos algoritmos utilizan solamente operadores individuales de cruzamiento y
mutación, sin tener en cuenta el potencial que presenta la sinergia de los multi-operadores. Sin
embargo, los operadores de cruzamiento y mutación se pueden complementar mutuamente,
generando la mencionada sinergia que brinda mejores resultados que los que se alcanzan
con operadores individuales. (Li et al. (2014), Contreras-Bolton and Parada (2015)).
Aprovechando las ventajas de los multi-operadores, se propone un enfoque basado en un
MGA.
En la primera parte de esta sección, se describe el MGA (ver Algoritmo 7) y sus componentes:
representación, generación de la población inicial, la función de evaluación, los operadores
de cruzamiento y mutación y los parámetros genéticos presentados en las subsecciones
5.4.1, 5.4.2, 5.4.3, 5.4.4 y 5.4.5. El Algoritmo Hı́brido (HA, por sus siglas en inglés Hybrid
Algorithm), resultande de la combinación del MGA con el ILS, se presenta en la subsección
5.4.
79
Algorithm 7 Multi-operator Genetic Algorithm
Data: Instance Parameters
Result: Best Individual
1
F ← empty cut family; l = 1
2
repeat
3
x ← solution of the LP-relaxation of (5.2)-(5.15) with respect to the cut family F
4
if l = k 1 then
5
x1 ← x
6
else if l = k 2 then
x2 ← x
7
8
else if l = k 3 then
x3 ← x
9
10
end
11
S ← violated cut found by the separation-procedure(x)
12
if S =
6 ∅ then
add cut S to the family F
13
14
end
15
until S = ∅ or l = k 3 ;
16
for t ← 1 to numbers of individuals do
17
r ← rnd(0, 1)
18
if r < 0,2 then
I0,t ← random-heuristic()
19
20
else if 0,2 ≤ r < 0,4 then
I0,t ← nearest-neighbor-heuristic()
21
22
else if 0,4 ≤ r < 0,6 then
I0,t ← LP-based-heuristic( x1 )
23
24
else if 0,6 ≤ r < 0,8 then
I0,t ← LP-based-heuristic( x2 )
25
26
else if 0,8 ≤ r then
I0,t ← LP-based-heuristic( x3 )
27
28
end
29
I0,t ← 2-opt-improvement( I0,t )
30
evaluation of individual I0,t
31
end
32
for g ← 1 to maximum number of generations do
33
for t ← 1 to numbers of individuals - 1 do
34
(j, k) ← selection()
35
(Ig,t , Ig,t+1 ) ← crossover(Ig−1,j , Ig−1,k , OX2 or DPX or HX or UNN)
36
Ig,t
← mutation(Ig,t , EM or GSTM or 2opt or 3opt)
37
Ig,t+1 ← mutation(Ig,t+1 , EM or GSTM or 2opt or 3opt)
38
evaluation of individual Ig,t and Ig,t+1
39
end
40
elitism(Ig , Ig−1 )
41
end
80
En la etapa inicial (lı́neas 1–15), la solución de la relajación LP del modelo (5.2)-(5.15) es
obtenida mediante un procedimiento similar al descrito en las lı́neas 1–8 del Algoritmo 6,
con la diferencia de que como máximo se ejecutarán k 3 iteraciones del ciclo haga-mientras.
Adicionalmente, después de k 1 , k 2 y k 3 iteraciones, la solución x del LP, encontrada en la
lı́nea 3 es almacenada, respectivamente, en las soluciones x1 , x2 y x3 . Los valores de k 1 , k 2 y
k 3 son parámetros dados. Luego, una población de individuos es generada (aplicando cinco
procedimientos basados en tres métodos diferentes) y evaluados utilizando las instrucciones
reportadas en las lı́neas 16–31 (nótese que cada procedimiento de inicialización tiene la misma
probabilidad de ocurrir). Posteriormente, el ciclo principal del algoritmo, presentado en las
lı́neas 32–41, es responsable de generar una nueva población a partir de la actual, a través
de múltiples operadores de cruzamiento y mutación, como se describe en las lı́neas 34–37. La
selección es realizada en un torneo de tres individuos (Eiben and Smith (2015)). También se
aplica elitismo, donde los mejores padres de la anterior población, reemplazan el 10 % de los
peores individuos generados en la población actual (lı́nea 40). El individuo que presenta el
valor mı́nimo de la función objetivo (5.2)-(5.4) es almacenado como el ✭✭mejor individuo✮✮.
5.4.1.
Representación y función fitness
Una representación tipo permutación es utilizada, donde cada individuo corresponde a un
tour Hamiltoniano. La función objetivo (5.2)-(5.4) es utilizada como función fitness, pero se
computa la función objetivo para cada nivel de velocidad r ∈ R tomando como valor fitness,
el valor más pequeño de los valores que fueron computados.
5.4.2.
Población inicial
La población inicial es calculada utilizando cinco procedimientos basados en tres métodos
heurı́sticos que serán descritos a continuación. Cada procedimiento tiene la misma
probabilidad de ocurrencia. Luego se aplica el procedimiento 2-opt (descrito en la Sección 5.3)
para generar individuos e intentar mejorarlos. Las heurı́sticas consideradas son las siguientes:
81
Heurı́stica-Aleatoria: El tour es generado aleatoriamente.
Heurı́stica-Vecino-Más-Cercano: El tour es generado aplicando la heurı́stica del vecino
más cercano (NNH, por sus siglas en inglés Nearest Neighbor Heuristic) (Flood (1956)),
que inicia aleatoriamente de uno de los nodos presentes en N .
Heurı́stica-LP: La heurı́stica, descrita en el Algoritmo 8, genera una solución factible
utilizando un NNH aleatorizado, basado en la solución del modelo LP relajado (xij ),
correspondiendo a una de las tres soluciones x1 , x2 y x3 obtenidas en el paso inicial
(lı́neas 1–15) del Algoritmo 7. La aleatorización ocurre en la lı́nea 7.
Algorithm 8 LP-based-heuristic
Data: Instance Parameters
Result: Complete tour T
1
h=0
2
T ← {h}
3
repeat
4
max ← 0
5
for k ∈ N \ T do
6
r ← rnd(0, 1)
7
if xhk + xkh > max and r < 0,5 then
8
max ← xhk + xkh
9
j←k
10
end
11
end
12
if max = 0 then
13
j ← node corresponding to the smallest dhj (with j ∈ N \ T ).
14
end
15
T ← T ∪ {j}
16
h←j
17
until a complete tour T is obtained ;
82
5.4.3.
Operadores de cruzamiento
Cuatro operadores de cruzamiento son utilizados: Order Based Crossover (OX2) (Syswerda
(1991)), Distance Preserving Crossover (DPX) (Reisleben et al. (1996)), Heuristic Crossover
(HX) (Grefenstette et al. (1985)) y Uniform Nearest Neighbor (UNN) (Buriol et al. (2004)),
con probabilidades de 10 %, 45 %, 20 % y 25 % respectivamente.
OX2: Selecciona aleatoriamente un subconjunto de posiciones consecutivas del primer
padre, de acuerdo al orden de los nodos en las posiciones seleccionadas de este padre,
impone dicho conjunto de nodos en el segundo padre.
DPX: Los nodos contenidos en el primer padre, son copiados en la descendencia, y todos
los arcos que no son comunes con el segundo padre se eliminan, generando a un conjunto
de caminos desconectados (nótese que algunos de los caminos pueden consistir de un
solo nodo). Estos caminos son reconectados sin utilizar los arcos contenidos solamente
en uno de los padres. Puntualmente, dado un camino que termina en el nodo i, el nodo
vecino disponible más cercano k entre los nodos iniciales de los caminos restantes, es
tomado y el arco (i, k) es añadido al tour, a menos que (i, k) está contenido en uno
de los dos padres. El procedimiento es repetido hasta que todos los caminos han sido
reconectados en un tour.
HX: inicialmente, un nodo es seleccionado aleatoriamente para establecerse como el
nodo actual de la descendencia. Luego, se selecciona la arista (sin dirección) más barata
(entre un grupo no mayor a 4) que conecta el nodo seleccionado,con un nodo que no
haya sido visitado y que pertenezca al tour de los padres. Si ninguna de las aristas
parentales lleva a un nodo sin visitar, se selecciona una arista de manera aleatoria. Esto
se repite hasta que se construya un tour completo.
UNN: Al iniciar, todos los arcos en común entre ambos padres son copiados dentro de la
descendencia, obteniendo un conjunto de caminos desconectados. Los arcas restantes son
insertados de la siguiente manera: para cada nodo i que sea nodo final de un camino,
un valor verdadero o falso es generado aleatoriamente con la misma probabilidad de
83
ocurrencia. Si el valor generado es verdadero (respectivamente en caso de que el valor
sea falso), luego, si no se han violado restricciones, el arco que enlaza el nodo i con
el siguiente nodo en el padre A (respectivamente con el padre B), es copiado en la
descendencia. Si una violación ocurre en cualquiera de los dos casos, entonces el arco del
otro padre es considerado. Los fragmentos de tour resultantes son reparados utilizando
el algoritmo NNH.
5.4.4.
Operadores de mutación
Cuatro operadores de mutación fueron utilizados: exchange mutation (EM), Greedy Sub
Tour Mutation (GSTM), 2-opt y 3-opt, con probabilidades del 10 %, 35 %, 20 % y 35 %,
respectivamente. EM está basada en el operador propuesto en Banzhaf (1990). GSTM
combina operadores clásicos (como ✭✭mutación de inversión simple✮✮ y ✭✭mutación por mezcla✮✮)
y técnicas voraces utilizando diferentes parámetros. La estructura paramétrica del operador
previene atascos en óptimos locales, y alcanza soluciones de buena calidad en cortos
tiempos computacionales utilizando métodos de búsqueda golosos, realizando perturbaciones
aleatorias en esas soluciones (de la misma forma que los operadores de mutación clásicos), y
luego aplicándoles nuevamente un método voraz, se detalla en (Albayrak and Allahverdi
(2011)). El operador 3-opt se implementó considerando todos los pares de aristas, y
seleccionando, por cada par, una tercera arista de manera aleatoria en solamente diez intentos,
en lugar de considerar todas las aristas faltantes.
5.4.5.
Parámetros del algoritmo genético
Los parámetros involucrados en el MGA son: el tamaño de la población, máximo número
de ejecuciones generacionales, y las probabilidades de mutación y cruzamiento. La definición
adecuada de los parámetros está directamente relacionada con el rendimiento computacional
de los algoritmos evolutivos. Basado en la literatura existente (Eiben et al. (1999), Eiben
et al. (2007)), se establecen los siguientes parámetros: el tamaño de la población en 150
individuos, la probabilidad de cruzamiento en 0,9, y la probabilidad de mutación en 0,2.
84
Las probabilidades de los operadores de cruzamiento y mutación se basaron en experimentos
computacionales preliminares.
5.4.6.
Algoritmo Hı́brido
El tercer algoritmo mateheurı́stico que se propone en este trabajo es el Algoritmo Hı́brido
HA, obtenido por la combinación entre el MGA y el ILS. En este, se aplica el MGA (descrito
en el Algoritmo 7), y define s∗ y s∗∗ como la mejor solución encontrada. Luego se aplican
tres fases de mejora del ILS: perturbación, búsqueda local y criterio de aceptación (como se
especifica en las lı́neas 10–33 del Algoritmo 6).
5.5.
Experimentos Computacionales
En este trabajo se utilizaron conjuntos de instancias de prueba con 10, 15, 20, 25, 50, 75,
100, 150 y 200 clientes, propuestas en Demir et al. (2012) para el PRP, y se adaptaron al
PTSP. Concretamente, para hacer las instancias factibles para un sólo vehı́culo, se eliminaron
las restricciones correspondientes a las ventanas de tiempo para cada cliente, y se emplea
P
qi . Adicionalmente, se consideran las instancias
un vehı́culo con una capacidad D =
i∈N0
generadas en Cacchiani et al. (2018), con 30, 35, 40 y 45 clientes, obtenidas de las instancias
de prueba con 50 clientes, considerando, respectivamente, los primeros 30, 35, 40 y 45 clientes.
Cada conjunto de instancias contiene 20 instancias. Los algoritmos fueron implementados en
C++, y todos los experimentos fueron ejecutados en un Intel Core i7-6900K con 16-Núcleos
de 3.20GHz y 66 GB RAM (mono hilo). Se utilizó CPLEX 12.7.1 como solver para el LP
y el MILP, y se estableció un tiempo lı́mite, para el algoritmo Cut-and-Branch; dos horas
para instancias hasta 50 clientes, y 5 horas para las instancias más grandes. Se fijó k 1 = 10,
k 2 = 30 y k 3 = 50 para instancias hasta 100 clientes, y k 1 = 20, k 2 = 60 y k 3 = 100 para las
demás instancias.
Los resultados obtenidos por el algoritmo Cut-and-Branch (C&B) y por el ILS son reportados
en la Tabla 5.2, mientras que los resultados obtenidos por el MGA y el HA se muestran en
85
la Tabla 5.3. También se resolvió el modelo (5.2)-(5.14) aplicando directamente el solver
CPLEX al MILP, pero el algoritmo C&B consigue encontrar un número mayor de soluciones
óptimas y tiene gaps y tiempos computacionales promedio menores. Por lo tanto, se reportan
solamente los resultados obtenidos por el algoritmo C&B.
Cada fila en las Tablas 5.2 y 5.3 corresponden a un conjunto de instancias y muestran
resultados promedio sobre las 20 instancias en el conjunto. En ambas tablas, para cada fila,
primero se reporta el número de clientes (#Cust) en el conjunto correspondiente, y el valor
promedio (Best) de las mejores soluciones conocidas, es decir, el promedio de los valores de
la mejor solución encontrada por cualquiera de los métodos considerados (C&B, ILS, MGA
y HA) en cada una de las 20 instancias en el conjunto. En el caso del algoritmo C&B, se
reporta, para cada fila, el promedio de los valores de las soluciones enteras finales (UB ),
el promedio de los gaps porcentuales (GapLB % ) entre el valor de la solución entera y el
lower-bound correspondiente obtenido, para cada instancia del conjunto, al final del proceso
de solución C&B, el número de mejores soluciones (#B) encontradas, el promedio de los
porcentajes de Gap (Gap % ) entre los valores de las soluciones enteras finales y las mejores
soluciones conocidas correspondientes, y el tiempo de cómputo promedio (Tiempo) expresado
en segundos. Para el ILS, el MGA y el HA, se realizaron diez corridas para cada instancia
en cada uno de los conjuntos, y se reportan el promedio y el mı́nimo resultado obtenido
sobre las 10 corridas realizadas. Se especifica el promedio de los valores de las soluciones
(Val ), el promedio de los gaps porcentuales (Gap % ) con respecto a los valores de las mejores
soluciones conocidas, el número de las mejores soluciones (#B ) encontradas, y los tiempos
computacionales (Time) en segundos. Nótese que el tiempo computacional obtenido, para
cada instancia, el ✭✭mı́nimo✮✮ resultado sobre las 10 corridas,es diez veces el valor reportado en
la columna de tiempo para el resultado ✭✭promedio✮✮ correspondiente. Finalmente, la última
fila reporta, para cada columna, el valor promedio sobre todos los conjuntos de instancias.
Nótese también que en algunos casos, incluso cuando el valor Val es el mismo que el promedio
del valor de la mejor solución conocida Mejor, el número de mejores soluciones encontradas
es menor que 20, dado que se reportan los resultados promedio con dos dı́gitos decimales.
Se observa que el algoritmo C&B es capaz de probar la optimalidad de la solución encontrada
86
por todas las instancias hasta 25 clientes, como se indica en los valores GapLB % iguales
a 0.00, en tiempos computacionales cortos (en promedio como máximo 22 segundos de
cómputo). Para instancias de mayor tamaño, el gap porcentual con respecto al lı́mite inferior
se incrementa significativamente, alcanzando en promedio 15.40 % para las instancias con 200
clientes. Adicionalmente, los tiempos computacionales también se incrementan y el tiempo
lı́mite es alcanzado por todas las instancias con al menos 45 clientes. Observando las columnas
#B y Gap %, se aprecia que la mejor solución es encontrada por el algoritmo C&B para
todas las instancias hasta 35 clientes, y para la mayorı́a de las instncias hasta 50 clientes.
Sin embargo, en instancias de mayor tamaño, sólo unas pocas BKS son obtenidas por el
algoritmo C&B, y no se encuentra ninguna solución de buena calidad para instancias con
200 clientes.
El algoritmo ILS obtiene buenos resultados particularmente cuando se consideran los valores
mı́nimos de las soluciones alcanzadas a través de las 10 corridas realizadas para cada instancia:
de hecho, obtiene todos excepto una de las mejores soluciones conocidas para instancias
hasta 50 clientes. Para instancias con más de 100 clientes, incluso considerando el valor de la
solución mı́nima sobre las diez corridas, se observa que sólo unas pocas BKS son encontradas
(4 como máximo). De los resultados obtenidos por el ILS en los promedios sobre las 20
corridas, se observa que el número de mejores soluciones conocidas encontrados es cercano
a solamente 20 instancias hasta 20 clientes. Sin embargo, también se aprecia que los gaps
porcentuales, tanto para el promedio y los resultados mı́nimos, son pequeños (a lo sumo
1.25 %), mostrando que, aunque la mejor solución conocida no es encontrada, el resultado
arrojado presenta buena calidad. Adicionalmente, se aprecia que los tiempos computacionales
son muy cortos, arrojando en promedio 13.83 segundos.
Los valores mı́nimos de las soluciones alcanzadas a través de las 10 corridas, el rendimiento
del MGA es similar al del ILS. No obstante, se aprecia en los resultados promedio alcanzados
sobre las 10 ejecuciones, que el MGA obtiene una mayor cantidad de BKS con respecto al
ILS. Además, el gap porcentual (a lo sumo 0.93 % y 0.23 % en promedio) es más pequeño
que el que presenta el ILS. El tiempo computacional del MGA es similar al del ILS, siendo
14.49 segundos en promedio.
87
Los mejores rendimientos son alcanzados por el HA. En efecto, HA es capaz de encontrar la
mejor solución conocida para todas las instancias de hasta 75 clientes, cuando se consideran
los resultados mı́nimos alcanzados en las 10 corridas. Además, para las instancias más
grandes, se aprecia que el rendimiento del HA es claramente mejor que el de los otros
algoritmos, dado que el HA obtiene las BKS para 19 instancias con 100 clientes, 14 instancias
con 150 clientes, y 18 instancias con 200 clientes. El gap porcentual con respecto al valor de la
mejor solución conocida es muy pequeño (0.01 % en promedio). Por lo tanto, este algoritmo
mateheurı́stico es más estable que los otros presentados. Observando los resultados promedio
alcanzados sobre las 10 ejecuciones, se aprecia que el número de BKS encontrados es el
mayor entre todos los algoritmos mateheurı́sticos (11.8 en promedio) y el gap porcentual es
el más pequeño (0.14 % en promedio). Finalmente, se aprecia un incremento leve en el tiempo
computacional, que de todas formas sigue siendo muy corto (15.47 segundos en promedio)
comparado al del algoritmo C&B. En resumen, se puede concluir que el HA combina
exitosamente los algoritmos MGA e ILS, y tiene la capacidad de mejorar notablemente los
resultados obtenidos por los algoritmos C&B e ILS.
88
ILS
C&B
Promedio
Mı́nimo
89
#Clientes
Mejor
UB
GapLB %
#B
Gap %
Tiempo
Val
Gap %
#B
Tiempo
Val
Gap %
#B
10
150.64
150.64
0.00
20
0.00
0.29
150.64
0.00
19
0.02
150.64
0.00
20
15
215.69
215.69
0.00
20
0.00
0.58
215.69
0.00
18
0.06
215.69
0.00
20
20
288.56
288.56
0.00
20
0.00
2.61
288.60
0.02
17
0.11
288.56
0.00
20
25
311.45
311.45
0.00
20
0.00
22.19
311.92
0.13
14
0.21
311.45
0.00
20
30
417.52
417.52
0.05
20
0.00
911.08
417.85
0.08
10
0.42
417.52
0.00
20
35
493.21
493.21
1.00
20
0.00
4226.34
493.76
0.11
10
0.58
493.31
0.02
19
40
563.01
563.13
2.67
19
0.02
6495.88
563.48
0.08
5
0.79
563.01
0.00
20
45
643.86
644.22
4.40
16
0.05
7200.00
645.47
0.24
5
0.99
644.05
0.03
19
50
719.77
720.66
5.55
17
0.12
7200.00
721.05
0.18
4
1.28
719.77
0.00
20
75
1266.29
1268.85
9.02
13
0.19
18000.00
1271.15
0.38
3
3.74
1266.68
0.03
16
100
1802.50
1808.41
11.06
5
0.32
18000.00
1816.43
0.78
0
10.11
1804.87
0.13
7
150
3148.28
3166.51
13.51
2
0.59
18000.00
3184.43
1.15
0
37.99
3161.98
0.44
4
200
4461.07
4538.99
15.40
0
1.75
18000.00
4516.84
1.25
0
123.50
4478.46
0.39
2
Promedio
1113.99
1122.14
4.82
14.8
0.23
7543.00
1122.87
0.34
8.1
13.83
1116.61
0.08
15.9
Tabla 5.2: Resultados obtenidos por el Algoritmo Cut-and-Branch y por el Algoritmo ILS
MGA
HA
Promedio
Mı́nimo
Promedio
Mı́nimo
90
#Clientes
Mejor
Val
Gap %
#B
Tiempo
Val
Gap %
#B
Val
Gap %
#B
Tiempo
Val
Gap %
#B
10
150.64
150.65
0.00
19
0.06
150.64
0.00
20
150.64
0.00
20
0.08
150.64
0.00
20
15
215.69
215.69
0.00
19
0.11
215.69
0.00
20
215.69
0.00
20
0.15
215.69
0.00
20
20
288.56
288.56
0.00
20
0.19
288.56
0.00
20
288.56
0.00
20
0.26
288.56
0.00
20
25
311.45
311.54
0.03
17
0.32
311.45
0.00
20
311.45
0.00
20
0.39
311.45
0.00
20
30
417.52
417.61
0.03
17
0.57
417.52
0.00
20
417.57
0.02
17
0.66
417.52
0.00
20
35
493.21
493.48
0.05
13
0.81
493.30
0.02
19
493.29
0.01
15
0.92
493.21
0.00
20
40
563.01
563.20
0.03
12
1.08
563.01
0.00
20
563.10
0.02
15
1.17
563.01
0.00
20
45
643.86
644.44
0.09
7
1.36
644.09
0.04
17
644.24
0.06
9
1.53
643.86
0.00
20
50
719.77
720.51
0.10
10
1.80
719.77
0.00
19
720.19
0.06
12
1.98
719.77
0.00
20
75
1266.29
1269.63
0.26
3
5.03
1267.58
0.10
16
1267.61
0.10
6
5.32
1266.29
0.00
20
100
1802.50
1811.92
0.52
0
11.06
1805.24
0.15
7
1808.70
0.34
0
11.49
1802.81
0.02
19
150
3148.28
3177.14
0.93
0
39.67
3154.96
0.21
3
3167.29
0.61
0
44.26
3149.76
0.05
14
200
4461.07
4501.52
0.91
0
126.38
4468.83
0.17
3
4489.70
0.64
0
132.94
4461.18
0.00
18
Promedio
1113.99
1120.45
0.23
10.5
14.49
1115.43
0.05
15.7
1118.31
0.14
11.8
15.47
1114.13
0.01
19.3
Tabla 5.3: Resultados obtenidos por el Algoritmo Genético Multi-operador (MGA) y por el Algoritmo Hı́brido HA
5.6.
Conclusiones
En este trabajo se proponen dos algoritmos mateheurı́sticos para resolver el PTSP: un
Algoritmo Genético MGA y un Algoritmo Hı́brido HA, el cual combina el MGA con un
ILS propuesto en un trabajo previo. El MGA presenta cuatro operadores de cruzamiento
y cuatro operadores de mutación, los cuales permiten la generación de soluciones de buena
calidad en tiempos de cómputo cortos. El HA aprovecha la combinación del MGA con el
ILS, el cual aplica de manera iterativa perturbación y procedimientos de búsqueda local
para posiblemente mejorar la incumbente del MGA. Ambos, el MGA y el HA, utilizan
efectivamente la solución LP (Linear Programming) del modelo MILP (por sus siglas en
inglés de Mized Integer Linear Programming) para generar la población inicial.
Se probaron los dos algoritmos mateheurı́sticos propuestos en instancias hasta de 200 clientes,
adaptadas de las propuestas en Demir et al. (2012) para el Problema de Enrutamiento
considerando Polución (PRP). Para evaluar sus rendimientos, se compararon los resultados
obtenidos con los cómputos de los algoritmos ILS y C&B, en el cual, las restricciones de
eliminación de subtour son agregadas en el nodo raı́z. Los resultados obtenidos muestran que
el algoritmo C&B tiene la capacidad de probar la optimalidad de la solución encontrada por
las instancias hasta 25 clientes, y alcanza la mejor solución conocida para todas las instancias
hasta 35 clientes. Sin embargo, el número de BKS encontradas para instancias de mayor
tamaño decrece significativamente, y el tiempo lı́mite (de dos a cinco horas) es alcanzado por
todas las instancias con al menos 45 clientes. Los algoritmos MGA e ILS son más eficientes,
dado que tienen la capacidad de obtener la mejor solución, respectivamente, para 15.9 y 15.7
de 20 instancias en promedio. Por lo tanto, el mejor comportamiento es alcanzado por el HA,
el cual obtiene la mejor solución para 10.3 instancias de 20 en promedio. Adicionalmente el HA
resulta ser el algoritmo más estable, en la medida en la que obtiene los mejores resultados
considerando los valores promedio alcanzados a través de las 10 corridas ejecutadas para
las instancias consideradas en este estudio. El trabajo futuro estará orientado a desarrollar
métodos exactos que tengan el HA embebido en un algoritmo de Branch-and-Cut con el fin
de resolver hasta optimalidad probada las instancias con un número mayor de clientes.
91
Capı́tulo 6
Algoritmo genético especializado para
el problema de enrutamiento de
vehı́culos con flota heterogénea y
restricciones de empaquetamiento
bidimensional minimizando el
consumo de combustible 2L-FHFVRP
6.1.
Introducción
El problema integrado de enrutamiento de vehı́culos y carga de mercancı́as considerando
reducir el consumo de combustible, busca encontrar el conjunto de rutas de atención de la
demanda de los clientes, argumentando que el consumo de combustible está directamente
relacionado con el peso de la carga durante los trayectos que componen las rutas. En este
estudio se integra el problema de enrutamiento de vehı́culos con flota heterogénea y el
92
problema de carga bidimensional, teniendo como objetivo reducir el consumo de combustible
con base en el peso de la carga para cada trayecto 2L-FHFVRP.
Reducir el consumo de combustible pensando en el impacto ambiental asociado, es una
variante del VRP clásico que ha ganado bastante atención en la última década, el objetivo de
este problema es diseñar las rutas de entrega para satisfacer las demandas de los clientes con
el menor consumo de combustible posible, el cual depende de las distancias de los trayectos,
los vehı́culos asignados, el patrón de carga/descarga y el peso de la carga.
En la literatura del problema de ruteo de vehı́culos, los algoritmos aproximados han tenido un
gran éxito, se resaltan los algoritmos evolutivos, los cuales aparecen en trabajos previos con
una estructura bastante sofisticada obteniendo excelentes resultados, pero que son difı́ciles de
implementar y adaptar a otras variantes como la aquı́ propuesta. En este estudio se presenta
un algoritmo genético especializado para resolver el diseño de rutas, conservando su principal
caracterı́stica, su fácil implementación. Mientras que, la restricción de carga de mercancı́as es
validada a través de un algoritmo GRASP, el cual ha tenido gran acogida para los problemas
de empaquetamiento. Con el fin de validar el desempeño de la metodologı́a propuesta, se
presenta un estudio computacional que utiliza los diferentes casos de prueba de la literatura
especializada, permitiendo ilustrar las economı́as alcanzadas en consumo de combustible.
La metodologı́a sugerida se adapta a la versión de minimizar únicamente la distancia total
recorrida para el atendimiento de los clientes (sin consumo de combustible) y se compara con
los mejores trabajos presentados en la literatura, los resultados computacionales muestran
que la metodologı́a logra adaptarse suficientemente a esta versión, y en algunos casos de
prueba logra encontrar mejores soluciones. Como trabajos futuros, se propone adaptar la
metodologı́a para considerar el problema de carga de mercancı́a tridimensional de forma tal
que se adapte a condiciones más reales de la industria.
Principales Contribuciones
1. Se propone un algoritmo genético elitista de fácil implementación que resuelve de forma
eficiente el problema enrutamiento de vehı́culos con flota heterogénea y restricciones de
carga bidimensional buscando minimizar el consumo de combustible.
93
2. Se extiende la codificación propuesta por Liu et al. (2009) para representar las
caracterı́sticas de la carga y descarga secuencial de la mercancı́a, manteniendo las
bondades de la codificación a la hora de cálculos y búsquedas de rutas.
3. Se adapta el concepto de espacios máximos para resolver los problemas de
empaquetamiento bidimensionales con restricciones de carga y descarga secuencial.
6.2.
Marco Referencial
La entrega de mercancı́as a clientes geográficamente dispersos juega un papel crucial en la
gestión de la distribución y la logı́stica, ya que representa una proporción considerable de
los gastos de funcionamiento de las empresas, principalmente debido al alto consumo y costo
de combustibles para soportar toda la operación. El problema de entregas al cual se ha
puesto mayor atención se conoce como el problema de enrutamiento de vehı́culos (VRP),
que describe la distribución de las mercancı́as desde un depósito principal a un conjunto de
clientes a través de vehı́culos. El VRP se introdujo por primera vez por Dantzig and Ramser
(1959), el problema trabajado por estos abordaba el envı́o de los camiones de reparto de
gasolina entre un terminal de gráneles y un gran número de estaciones de servicio, desde la
publicación de este trabajo un gran número de consideraciones han sido tomadas en cuenta
para representar otros problemas de la industria. Originalmente el problema ha considerado
minimizar únicamente las distancias totales recorridas, pero este objetivo ha sido demostrado
por diferentes estudios que no está alineado a las preocupaciones de las empresas en la
actualidad. Una de las variantes más estudiada en la última década es la de reducir el consumo
de combustible, dado que este representa una disminución de costos importantes para la
empresa y además comienza a resolver las preocupaciones de tener una operación más limpia,
es decir, generar el menor impacto ambiental posible Toth and Vigo (2014). Es sabido que el
consumo de combustible está directamente relacionado con las emisiones de gases de efecto
invernadero (GHG), en especial las emisiones de CO2 Demir et al. (2014). Por otro lado,
debido a los avances en sistemas de cómputo más sofisticados y el desarrollo de técnicas de
optimización más potentes se ha conseguido resolver problemas mucho más cercanos a las
94
condiciones reales de la industria, un ejemplo, es la solución del problema integrado de carga
de mercancı́as y enrutamiento de vehı́culos, los cuales habı́an sido tratados por separado por
más de 50 años. En la mayorı́a de estos trabajos, la carga de las mercancı́as era simplificada
de manera que la forma geométrica de la carga era ignorada y sólo se consideraba una
dimensión (volumétrica por lo general). En la práctica, los administradores logı́sticos deben
solucionar problemas de transporte y carga de mercancı́as al mismo tiempo, sobre todo si la
carga no es trivial (un solo tipo de producto, por lo general granel o lı́quido). Por ejemplo,
cuando un elemento se apila en otros artı́culos, la estabilidad del apilamiento, la fragilidad
y la facilidad de descarga para los operarios deben ser consideradas cuidadosamente. Por lo
tanto, las soluciones de estos problemas sin integración resultan ser poco prácticas debido a
las operaciones reales de carga y descarga de las mercancı́as.
Problemas integrados de ruteo y carga de vehı́culos como el 2L-CVRP y el 3L-CVRP han
sido estudiados y resueltos de manera satisfactoria Iori et al. (2007) y Gendreau et al. (2006).
La mayorı́a de los trabajos previos no consideran una flota heterogénea de vehı́culos, una
flota homogénea de vehı́culos en la práctica es poco común. Una flota mixta de vehı́culos
ofrece la flexibilidad para diseñar un plan de distribución más rentable Subramanian et al.
(2013) y obedece a las actualizaciones del parque automotor en el tiempo.
Este estudio se realiza sobre una extensión práctica del VRP, en este problema, el depósito
tiene una flota de vehı́culos heterogénea, las demandas de los clientes están conformadas por
un conjunto de piezas rectangulares que representan objetos no apilables en la práctica, con
largos, anchos y pesos conocidos. Se busca entonces seleccionar un conjunto de vehı́culos y
determinar la ruta de cada vehı́culo para servir a todos los clientes, teniendo como objetivo
minimizar el consumo de combustible de las rutas sumado a los costos fijos y variables de los
vehı́culos seleccionados.
El consumo de combustible surge como un factor sobre la suma de las aristas que conforman
un viaje realizado por el vehı́culo, relacionando en cada arista la carga con la que el vehı́culo
viaja a través de ella y la capacidad de carga del vehı́culo. Mientras que los costos fijos se
asocian a la selección de los vehı́culos y los costos variables dependen de las aristas recorridas
95
(distancia entre los clientes) para cubrir la ruta con el tipo de vehı́culo seleccionado. Los
tipos de vehı́culos son heterogéneos en cuanto a su capacidad de carga, espacio de carga,
costos fijos y costos variables. El número de ejemplares de cada tipo de vehı́culo es ilimitado.
Una ruta se considera factible sólo si hay un plan de carga (descarga) viable para las piezas
exigidas por los clientes en esta ruta, es decir, la descarga de mercancı́a de un cliente al llegar
a su destino debe hacerse sin realizar operaciones de reordenamiento de las cajas restantes,
esto en la literatura se llama restricción de carga secuencial, LIFO o multi-drop.
El 2L-FHFVRP también es de gran interés en la investigación teórica. Dado que es una
combinación de dos problemas NP-duros bien conocidos, el problema de ruteo de vehı́culos
con flota vehı́culos heterogénea (HFVRP) y el problema de empaquetamiento bidimensional
2D-BPP (por sus siglas en inglés Two-dimensional Bin Packing Problem). Iori et al. (2007)
muestra que el problema integrado es por lo menos igual de complejo que uno de estos por
separado, es decir, el 2L-FHFVRP también es NP-duro.
Para resolver este problema, se presenta un algoritmo genético especializado tipo elitista Chu
and Beasley (1997). La representación de un cromosoma (solución) se adaptó y extendió de
la estructura de datos propuesta por Liu et al. (2009). La estructura de datos consiste en
el uso de un arreglo para registrar el orden de atención de los clientes y utilizar un grafo
dirigido para fabricar el conjunto de posibles rutas dado un orden de atención.
La población inicial utiliza la solución heurı́stica asociada al problema TSP de los nodos
cliente originales. La selección se realiza por torneo, los dos cromosomas ganadores son
recombinados a través de cinco operadores clásicos. Posteriormente, a cada uno de estos
elementos se les calcula su función de adaptación la cual incluye la validación de las
restricciones de empaquetamiento bidimensional, que penaliza los descendientes que no
cumplen con estas. Por último, se presentan los nuevos individuos a la población y se regresa
de nuevo a etapa de selección a no ser que el criterio de máximo número de generaciones sea
ya alcanzado. La estructura elitista del algoritmo exige mantener dos poblaciones durante el
proceso de optimización.
En particular, el validador de las restricciones de empaquetamiento bidimensional es un
96
algoritmo con una estructura tipo GRASP, que en su fase de construcción utiliza los espacios
máximos para representar las piezas empacadas y los mayores espacios libres restantes, escoge
pseudo-aleatoriamente entre criterios como agrupar las piezas por clientes o llevar todas
las piezas hacia la parte posterior del vehı́culo. Por último, en su fase de mejorı́a, realiza
movimientos de vaciado de piezas y llenado mediante criterios como la pieza que mejor
encaja. La metodologı́a propuesta, al permitir soluciones infactibles, logra diferenciarse entre
los trabajos previos que sólo navegan en espacios de búsqueda factibles.
La codificación propuesta permite encapsular las asignaciones de los tipos de vehı́culos
requeridos por el cromosoma dentro del grafo dirigido y desacopla la metaheurı́stica de
empaquetamiento llamándola únicamente cuando se tiene una solución del problema de ruta
más corta (el cual define las secuencias de clientes a visitar). Para demostrar la eficacia
de la metodologı́a propuesta, se resolvieron todas las instancias de prueba presentadas en
la literatura, logrando alcanzar soluciones en tiempos de cómputo razonables. Además,
el algoritmo genético fue comparado con trabajos previos publicados para el problema
2L-HFVRP, los resultados demuestran que el algoritmo propuesto tiene un comportamiento
aceptable, con relación a los mejores trabajos publicados en la literatura.
El resto de este capı́tulo está organizado de la siguiente manera. En la Sección 6.3 se describe
formalmente el problema. La Sección 6.4 proporciona una visión general de la literatura del
problema. En la Sección 6.5 la metodologı́a propuesta es presentada detallando la estructura
de datos y los algoritmos de optimización. El estudio computacional realizado es presentado en
la Sección 6.6. Finalmente, la Sección 6.7 ofrece las conclusiones y trabajos futuros alrededor
de este estudio.
6.3.
Descripción del Problema
El problema de enrutamiento de vehı́culos con flota heterogénea y restricciones de
empaquetamiento bidimensional minimizando el consumo de combustible, consiste en
distribuir desde un depósito, la demanda de varios clientes que se encuentran geográficamente
97
dispersos, buscando minimizar el consumo de combustible sumado a los costos fijos y
variables. Considerando la capacidad de carga o peso máximo que soporta cada uno de
los vehı́culos que se empleen, y ubicando la demanda (ı́tems) de tal manera que, al visitar
los clientes, no sea necesario reacomodar la carga correspondiente a los clientes posteriores.
Formalmente, este problema puede ser descrito de la siguiente manera. El 2L-FHFVRP es
definido como un grafo completo G = (V, E) donde V = {0, 1, 2, . . . , n} es un conjunto de
vértices (siendo 0 el depósito y los vértices 1, 2, . . . , n los clientes) y E = {eij : i, j ∈ V } el
conjunto de aristas. Para cada eij ∈ E, una distancia dij (dij = 0) es asociada. Una flota de M
diferentes tipos de vehı́culos es ubicada en el depósito y un número muy grande de ejemplares
por cada tipo es asumido. Cada vehı́culo t tiene asociada una capacidad Qt , un costo fijo Ft ,
un costo variable Vt , una longitud Lt , un ancho At y un peso Wt (donde t = 1, 2, . . . , M ). Se
asume que un vehı́culo con mayor capacidad tiene mayores costos, y presenta mayor consumo
de combustible, de esta forma si Q1 ≤ Q2 ≤ · · · ≤ QM , entonces F1 ≤ F2 ≤ · · · ≤ FM y
V1 ≤ V2 ≤ · · · ≤ VM . Los costos variables de transporte por cada arista eij ∈ E para el
vehı́culo t son Cijt = Vt · dij . Por lo tanto, los costos de transporte (fijos más variables) de
P
una ruta r para el vehı́culo tipo t son Cr = Ft + (i,j)∈R Cijt , donde R representa el conjunto
de aristas que conforman la ruta r (R = {(0, i), (i, j), . . . , (k, 0)}). El costo de consumo de
combustible para cada arco (i, j) incurrido por un vehı́culo tipo t transportando una carga
con peso q es Cf c = f c(q) · Cijt . Es importante anotar que, para el mismo arco, el consumo
de combustible difiere dependiendo de la cantidad de carga transportada y el vehı́culo que la
transporta. Como en Zhang et al. (2015) f c(q) es definido como
q
Qt
, siendo q la sumatoria
de los pesos de las demandas de los clientes que están siendo transportadas. De esta forma,
en la Ecuación 6.1 se presenta la función objetivo del problema, la cual consiste en los costos
de transporte más los costos de consumo de combustible.
Z = Cr + Cf c
(6.1)
Por otro lado, cada cliente c (donde, c = 1, 2, . . . , n) requiere un conjunto de Bc piezas
rectangulares con un peso total wc , denotadas como Ic y su peso total es igual a Dc . Cada ı́tem
98
Icb ∈ Bc (b = 1, 2, . . . , |Bc |) tiene un largo especı́fico lcb y un ancho wcb . En el 2L-FHFVRP, las
rutas de los vehı́culos y el empaquetamiento de las mercancı́as deben satisfacer las siguientes
restricciones:
Todas las rutas deben comenzar y terminar en el depósito.
Todas las piezas de un cliente deben estar empacadas en el mismo vehı́culo, es decir,
los clientes deben ser atendidos una única vez.
Todas las piezas deben ser cargadas con sus lados paralelos a las paredes del vehı́culo.
La capacidad, el largo y el ancho del vehı́culo no pueden ser excedidos por la carga.
La carga no puede traslaparse entre sı́.
Cada ı́tem debe ser posicionado dentro del vehı́culo, de forma tal que, al arribar a su
destino, este podrá ser descargado sin la necesidad de reorganizar los ı́tems de otros
clientes.
De esta forma, el 2L-FHFVRP busca seleccionar un conjunto de vehı́culos para realizar las
rutas dada la asignación de clientes a estas, con el fin de minimizar la Ecuación 6.1, sujeto
al conjunto de restricciones anteriormente enunciado.
6.4.
Estado del Arte
Un punto de partida del problema de rutas de vehı́culos considerando restricciones de
empaquetamiento, es la revisión del estado del arte realizada por Iori (2013), la cual es
mejorada por Pollaris et al. (2015). Luego de estudiar los trabajos previos, es necesario
resaltar la relevancia de resolver el problema de rutas de vehı́culos integrado con la carga
de mercancı́as, buscando optimizar objetivos reales de la industria, para esto, los autores
recomiendan leer Côté et al. (2017).
Hasta la fecha de publicación de este trabajo, se desconocen estudios previos en el
2L-FHFVRP, por esto, la revisión bibliográfica se enfocó en el 2L-HFVRP, el cual sólo difiere
99
en la función objetivo a tratar. El primer trabajo reportado en la literatura presenta un
algoritmo de recocido simulado, el cual obtiene resultados razonables, y es propuesto por
Leung et al. (2013). En este trabajo se resuelven también el 2L-CVRP y el HFVRP de
manera satisfactoria. Por otro lado, los trabajos propuestos por Dominguez et al. (2016)
y Domı́nguez Rivero et al. (2016), son algoritmos tipo ILS que logran superar los mejores
resultados reportados en la literatura. Estos trabajos son relevantes, dado que resaltan la
importancia de considerar condiciones reales de la operación de transporte de mercancı́as,
para esto, los autores realizan un estudio sobre diferentes escenarios evaluando caracterı́sticas
como: la rotación de ı́tems, carga/descarga secuencial, y el uso de una flota heterogénea de
vehı́culos.
Considerar el consumo de combustible dentro de la función objetivo permite generar un
conjunto de rutas en las cuales, se realizan largos trayectos con los vehı́culos menos cargados
(ver Figura 6.1). Esta práctica en la literatura se conoce como problemas de rutas de vehı́culos
con impacto ambiental, este es formalizado en Suzuki (2011) y Bektaş and Laporte (2011).
Es Xiao et al. (2012) quienes por primera vez relacionan el peso de la carga y la distancia
recorrida, con el consumo de combustible dentro de la función de costos. Luego de esto,
Zhang et al. (2015) simplifican esta relación, estableciendo ası́ una función objetivo que
busca minimizar los costos de transporte sumado a los costos de consumo de combustible.
Revisando trabajos que integren rutas de vehı́culos y empaquetamiento de mercancı́as bajo
condiciones prácticas, se puede encontrar que asumir una demanda o tiempos de viaje
determinı́sticos son suposiciones fuertes que afectan el desempeño de las soluciones en
aplicaciones reales. Cabe resaltar entonces los trabajos propuestos por Guimarans et al. (2016)
y Guimarans et al. (2018), los cuales incorporan caracterı́sticas de incertidumbre dentro de su
análisis, acercándolos aún más, a problemas reales de rutas de vehı́culos. Estudios recientes
vinculan las caracterı́sticas de incertidumbre en tiempos de viaje y demanda de la carga,
para combinarlas con las distintas capacidades de la flota, y establecer una función objetivo
cercana a las preocupaciones actuales de los transportistas, como en el trabajo de Micheli
and Mantella (2018).
100
Figura 6.1: Incidencia del impacto ambiental, del 2L-HFVRP al 2L-FHFVRP.
La variante ambiental de este estudio es conocida como Problema de Enrutamiento
de Vehı́culos Minimizando Consumo de Combustible, la cual busca reducir los costos
fijos y variables asociados a las rutas, sumado a los generados por el consumo de
combustible, esta versión se alinea con las preocupaciones de las empresas actuales. Por
otro lado, en la literatura se encuentran estudios del problema considerando restricciones de
empaquetamiento tridimensionales, el trabajo más relevante en esta dirección es el algoritmo
de búsqueda local evolutiva presentado por Zhang et al. (2015), el cual logra resolver de forma
satisfactoria el problema combinado de rutas y empaquetamiento minimizando el consumo
de combustible. Este estudio busca ampliar el trabajo propuesto por Zhang et al. (2015) al
considerar la presencia de una flota mixta de vehı́culos en contextos de carga no apilable.
6.5.
Metodologı́a de Solución
En este estudio se propone un algoritmo metaheurı́stico, intentando explotar la facilidad de
implementación de estas metodologı́as. Se adapta la estructura de un GA presentado en Chu
and Beasley (1997), y se incorpora un algoritmo GRASP basado en diferentes trabajados
101
publicados en el área de corte y empaquetamiento. Cabe resaltar que, la base de ambos
algoritmos es la codificación utilizada, para el GA se adaptó el procedimiento de split,
mientras que para el GRASP se adecuó el concepto de espacio residuales máximos.
Codificación
La codificación planteada por Prins (2004) consiste en un vector que representa el orden
de atención de todos los clientes, esta se ayuda de un grafo dirigido auxiliar, que propone
crear todos los posibles viajes siguiendo el orden establecido, garantizando la restricción de
capacidad del vehı́culo disponible. Dado que este grafo comprende todas las rutas factibles
dado un orden, se debe entonces seleccionar el mejor conjunto de rutas que visiten todos los
clientes a menor costo, para esto es necesario resolver un problema de ruta más corta. Esta
codificación es extendida por Liu et al. (2009) permitiendo considerar una flota heterogénea
de vehı́culos. En este trabajo, se adapta para representar también las restricciones de
empaquetamiento, buscando en la creación y actualización del dı́grafo, realizar el filtrado
de los viajes que no son viables por empaquetamiento secuencial en los diferentes vehı́culos
presentes en la flota.
De esta forma entonces, la construcción del dı́grafo consistirá en la creación de los arcos
correspondientes a los viajes que se podrı́an realizar considerando únicamente la restricción
de capacidad (peso soportado) de los distintos vehı́culos. Dado que los costos fijos y variables
de transporte se relacionan directamente con la capacidad del vehı́culo, no es necesario crear
los mismos viajes (arcos) para vehı́culos de mayor porte si ya un vehı́culo menor puede
realizar este viaje. Por lo tanto, no considerar las restricciones de empaquetamiento en la
creación, requiere entonces verificar si la solución del problema de ruta más corta no contiene
viajes infactibles. Para esto, se utilizará un algoritmo GRASP, el cual será descrito más
adelante. Ası́, cada uno de los arcos de la solución deberá ser validado, en caso de no ser
empaquetable, se prueban vehı́culos de mayor tamaño hasta agotar la flota disponible, si no
es posible encontrar un vehı́culo para transportar la mercancı́a, este arco debe ser eliminado
del dı́grafo, y se debe resolver de nuevo un problema de ruta más corta.
102
Es importante resaltar que el grafo auxiliar resultante es un grafo dirigido acı́clico (ADG),
esto permite utilizar la versión del algoritmo de Bellman-Ford para ADG Ahuja et al.
(1988), para calcular la ruta más corta de manera eficiente. De esta forma, se actualizan
primero todos los arcos infactibles por empaquetamiento y con el grafo actualizado se llama
al algoritmo de Bellman-Ford. Este esquema de codificación ofrece gran flexibilidad para
tratar múltiples variantes del problema, la selección de arcos que constituirán el dı́grafo y
la información que se asociará a cada uno de estos, brinda la posibilidad de representar
variantes que permitan apilamiento (empaquetamiento tridimensional), múltiples depósitos,
flota homogénea o heterogénea, ventanas de tiempo, entre otras.
B
C
0
(b)
D
A
B
C
E
(a)
0
B
C
A
E
D
D
A
E
(c)
(d)
Figura 6.2: Codificación y decodificación de solución. a. Conjunto de ubicaciones y piezas demandadas de los clientes. b.
Ejemplo de orden de atención. c. Grafo auxiliar del ejemplo y ruta más corta. d. Conjunto de rutas y empaquetamiento
dentro de estas.
El objetivo principal de este trabajo es enriquecer los problemas de rutas de vehı́culos y
empaquetamiento de mercancı́as, incluyendo la minimización del consumo de combustible.
103
En términos de codificación, el impacto ambiental se verá reflejado en el costo de los arcos
del grafo auxiliar. La Figura 6.2.a ilustra un caso de prueba con cinco clientes dispersos, la
codificación propuesta requiere entonces almacenar en un arreglo el orden de atención de
estos, la Figura 6.2.b muestra un ejemplo de atención de estos cinco clientes. Para encontrar
el conjunto de rutas factibles es necesario crear el grafo auxiliar, usando los distintos vehı́culos
disponibles, la Figura 6.2.c ilustra un ejemplo de grafo para dos tipos de vehı́culo (V1 y V2),
un arco punteado representa un viaje realizado por un vehı́culo tipo V1, mientras los arcos
azules continuos representan los viajes realizados en vehı́culos tipo V2. Por otro lado, en
la Figura 6.2.c, el camino punteado verde corresponde a la ruta más corta, resultante de
ejecutar el algoritmo de Bellman-Ford utilizando como costo de los arcos, el costo de cada
viaje dado por la Ecuación 6.1. Esta solución verde punteada, es la que entrará al esquema
iterativo de verificación de la restricción de empaquetamiento para cada viaje. Cuando todos
los arcos resultantes sean válidos, finalmente se obtendrá una solución factible dado el orden
de atención, ası́ como se muestra en la Figura 6.2.d, donde se realizan dos viajes, el primero en
el vehı́culo V1 atendiendo los clientes B y C, mientras el segundo en el vehı́culo V2 visitando
a los clientes A, E y D.
6.5.1.
Algoritmo GRASP de empaquetamiento bidimensional
En este trabajo se adaptada un algoritmo GRASP presentado en Martı́nez et al. (2015), el
cual en la fase de construcción permite obtener soluciones factibles a través del control del
posicionamiento de las piezas dentro del vehı́culo, satisfaciendo ası́ la restricción de carga
secuencial. El algoritmo GRASP fue desarrollado por Feo and Resende (1989) para resolver
problemas de optimización combinatoria difı́ciles. El GRASP es un procedimiento iterativo
que combina una fase constructiva y una fase de mejora. En la fase constructiva una solución
es construida paso a paso, agregando elementos a la solución. La fase debe ser iterativa, golosa,
aleatoria y adaptativa. La estrategia de búsqueda propuesta en este algoritmo permite en la
etapa de construcción aleatorizar la elección de las piezas a ubicar en cada espacio vacı́o.
Mientras que en la fase de búsqueda local se realizan movimientos de vaciado y rellenado.
104
′
El Algoritmo 9 propuesto comienza por seleccionar uno de los espacios libres (s ), seguido
′
de esto se genera la lista de capas de piezas (L) que caben en el espacio s . Luego esta lista
L es reducida a la Lista Restricta de Candidatos (RCL), dentro de esta lista reducida es
seleccionada aleatoriamente uno de sus elementos (C). Esta capa C es ubicada generando ası́
el patrón P y obligando a actualizar las listas de espacios vacı́os y la lista de piezas restantes
(S, Bj , y B, respectivamente). Si al terminar de empacar las piezas de un cliente existen
espacios libres restantes y aún hay clientes por empacar, entonces la lista de espacios vacı́os
debe ser actualizada por cambio de cliente, en esta se deben eliminar los espacios que violen
las restricciones de carga secuencial. Cuando hemos terminado el intento de asignar todas las
piezas demandadas por los clientes de la ruta, analizamos si la función objetivo del patrón
obtenido es de buena calidad, es decir, si esta solución construida es promisoria. Utilizando la
función M ejorarP atrónConstruido(P ), se removerán aleatoriamente piezas y se intentará
llenar de nuevo el vehı́culo eliminando del esquema de búsqueda las elecciones aleatorias. Por
último, se verifica si todas las piezas demandadas han sido empacadas, retornando verdadero
si es factible. En caso de que se agoten las iteraciones y en ninguno intento se ha conseguido
empacar la totalidad de piezas, el algoritmo retornará infactible.
Los detalles de la fase de construcción y aleatorización del algoritmo de empaquetamiento,
se encuentran en (Martı́nez et al., 2015). El algoritmo constructivo de este trabajo es basado
en la fase constructiva propuesta por Escobar et al. (2015). Dado que ambos trabajos
comparten la caracterı́stica de carga divida en clientes, la cual requiere un tratamiento
especial a las estructuras de actualización de los espacios restantes y utilizables (vacı́os).
Esta parte es laboriosa dado que los espacios vacı́os deben ser verificados para garantizar la
carga secuencial, esto implica que algunos deban ser eliminados o recortados. El método
constructivo utiliza los espacios máximos vacı́os para representar el área utilizable del
vehı́culo. En este caso, cada pieza seleccionada es empacada en un espacio vacı́o y esto
genera a lo sumo dos nuevos espacios máximos (ver Figura 3). El algoritmo constructivo usa
una lista S de los espacios máximos y una lista Bj de las cajas del cliente j que aún deben
ser empacadas. Los pasos 0 – 4 resumen el algoritmo constructivo.
Paso 0: Inicialización. Es creada una lista S de los espacios máximos vacı́os e iniciada con
105
Algorithm 9 Validador de Empaquetamiento Tipo GRASP
Data: Route, Vehicle, Customers, Max Iterations
Result: feasible or unfeasible
1
for i ← 1...M ax Iterations do
2
Lista S = V ehicle.Dimensions
3
Lista B = Customers.P ieces
4
for i ← 1...M ax Iterations do
5
Lista Bj = Customers(j).P ieces
6
while Bj 6= ∅ and S 6= ∅ do
7
Espacio s′ = SeleccionarEspacio(S)
8
Lista L = GenerarListaCapas(s′ , Bj )
9
Lista RCL = ConstruirRCL(L, δ)
10
Capa C = SeleccionarCapaAleatoriamente(RCL)
11
Patrón P = LocalizarCapa(C, s′ , P )
12
Lista S = ActualizarListaEspaciosM áximos(C, S)
13
Listas Bj , B = ActualizarListaCajasRestantes(C, Bj , B)
14
end
15
Lista S = ActualizarListaEspaciosCambioCliente(S)
16
if EsP romisorio(P ) then
Patrón P = M ejorarP atrónConstruı́do(P )
17
18
end
19
if B = ∅ then
return true
20
end
21
22
end
23
end
24
return f alse
106
el espacio (área) del vehı́culo a realizar la ruta. Sean las listas B1, B2, . . . , Bn, los conjuntos
de ı́tems de cada cliente a ser atendido en la ruta y la lista B el conjunto de todas las piezas
demandadas.
Paso 1: Escoger un espacio máximo de S. Dado que la lista S contiene los rectángulos
vacı́os más grandes disponibles y que existen varios candidatos (piezas a empacar), se debe
determinar un mecanismo de selección con base en algún criterio de calidad o estrategia de
empaquetamiento, en este trabajo se proponen dos criterios de selección: escoger el espacio
máximo con mı́nima distancia al fondo del vehı́culo y escoger el espacio máximo con mayor
área. Además de esto, del espacio elegido es seleccionada la esquina trasera más cercana a
una de las esquinas traseras del vehı́culo, como punto de anclaje (o referencia) a la hora de
ubicar las piezas en el espacio vacı́o.
′
Paso 2: Escoger las piezas a empacar. Una vez que el espacio máximo s ha sido seleccionado,
se debe tomar de la lista ordenada Bi (siendo i el cliente actual a empacar) cada caja k que
′
quepa dentro de s . Si existen varios ejemplares de la caja k, se debe generar cada una de las
posibles capas. Esto consiste en empacar las piezas en arreglos de columnas o filas combinando
los diferentes ejes. Como en Escobar-Falcón et al. (2016), dos criterios son considerados para
seleccionar una de las configuraciones de piezas. Escoger la capa de piezas que produce el
mayor incremento en la función objetivo (área máxima) o escoger la capa de piezas que
mejor encajan en el espacio máximo (mejor ajuste). Este último es un criterio en el cual
se computan las distancias entre las caras de la capa de piezas y el espacio máximo, para
luego ordenar las distancias de cada configuración en orden no-decreciente y seleccionar la
configuración con menor distancia (la que mejor se ajusta al espacio).
Paso 3: Actualizar la lista S. A menos que la pieza (o la capa) quepa exactamente en el
′
′
espacio s , el empacar producirá nuevos espacios máximos vacı́os que reemplazarán a s en
la lista S. Por otra parte, como los espacios máximos no son disjuntos, las piezas empacadas
pueden interceptarse con otros espacios máximos los cuales pueden ser reducidos o eliminados.
La lista B es también actualizada y los espacios máximos que no puedan ubicar ninguna de
las piezas que aún restan por empacar deberán ser eliminados de S. Si aún restan piezas de
107
Iteración
Espacios Máximos
Solución
1
2
3
Figura 5.4. Subespacios maximales tomado de (Parreño et al., 2008
Figura 6.3: Evolución de los espacios máximos en tres iteraciones de la fase constructiva. Adaptado de Parreno et al.
(2010)
108
un cliente por ser empacadas se debe volver al Paso 1.
Paso 4: Actualizar la lista S para el siguiente cliente en la ruta. Cuando el cliente actual ha
sido empacado, los espacios máximos deben ser actualizados para garantizar las restricciones
de carga secuencial, es decir, serán removidos de la lista todos los espacios máximos que
son completamente invisibles desde la puerta del vehı́culo. También deben ser actualizados
(modificados) los espacios máximos que tienen una parte visible y otra invisible. Si S o B
son vacı́os se da por terminada esta fase.
Debido a que una construcción voraz no permitirı́a una buena exploración sobre el espacio
de búsqueda, un alto grado de aleatorización es introducido en el Paso 2. Por lo que, para
cada tipo de pieza es construida una capa, de acuerdo con el criterio de selección (área
máxima o mejor ajuste). Cada una de estas es llamada como: configuración o candidato.
Con todo el conjunto de posibles capas es construida una lista restricta de candidatos y
es seleccionado uno de estos al azar. El parámetro α ∈ [0, 1] controla el tamaño de la
lista de candidatos. El desempeño del algoritmo constructivo depende principalmente de
este parámetro, por eso, en este trabajo se calibró de manera reactiva como lo propone
Camacho et al. (2018), permitiendo ası́ diferentes tamaños de lista que se ajusten de acuerdo
con su desempeño histórico. La fase de mejora consiste en realizar el proceso constructivo
anteriormente enunciado, eliminando todas las caracterı́sticas aleatorias, luego de haber
eliminado K % de las cajas empaquetadas. El porcentaje de cajas y las cajas para retirar de
la solución se realiza como se recomienda en Escobar et al. (2015).
6.5.2.
Algoritmo GA-GRASP
La metodologı́a de solución de este estudio adaptó un Algoritmo Genético tipo Chu-Beasley,
donde se utilizan operadores de recombinación sobre vectores de orden de atención de clientes,
sobre los cuales se aplica el procedimiento de split, el cual ayuda a determinar la función
objetivo, la adaptación del split a problema de este trabajo fue descrito en la Sección 4.1.
El Algoritmo 10 ilustra el esquema de optimización propuesto. En este la población inicial es
parcialmente generada de forma aleatoria (Lı́neas 1-3), pero la mayor parte es construida por
109
las soluciones encontradas por el algoritmo basado en Simulated Annealing, en este utiliza
como solución inicial el TSP obtenido por la heurı́stica de Christofides (1976), aplicada
l m
únicamente a los clientes (Lı́neas 4-7). En total son generados n2 individuos, siendo n el
número de clientes que deben ser atendidos en cada caso.
Por otro lado, el esquema generacional del genético propuesto consiste en selección,
recombinación y mutación. La selección se realiza por torneo (Lı́nea 9), en este, se selecciona
un par de padres. En la recombinación se emplean cinco operadores clásicos de la literatura
(PMX, SJX, OX, CX y OBX), generando un hijo por cada operador (Lı́nea 10).
Después de esto, comienza entonces la fase crı́tica del algoritmo, la cual requiere del cálculo
de la función de adaptación (fitness) para cada hijo creado. Para esto, se adapta el split
de forma tal que, se encuentre de forma eficiente el conjunto de rutas, para el orden de
atendimiento dado en el cromosoma. De esta manera, el primer paso consiste en crear el
grafo dirigido (Lı́nea 12), considerando los distintos vehı́culos disponibles en la flota y los
pesos de los ı́tems, y teniendo como costo de los arcos la función objetivo (Ecuación 6.1) de
los arcos que componen la ruta.
Luego de la creación del grafo, se debe resolver el problema de camino más corto sobre este,
para identificar el conjunto de rutas que visitan todos los nodos de forma más económica,
dado que el grafo resultante es un grafo dirigido acı́clico (ADG), podemos utilizar la versión
del algoritmo de Bellman-Ford para este tipo de grafos (Lı́nea 14). Las rutas seleccionadas
(arcos que componen el camino más corto) tienen la oportunidad de ser mutadas (Lı́nea 16),
la mutación de las rutas consiste encontrar la primera mejora a través del operador 2-opt
clásico del TSP (Lı́nea 17), las rutas mutadas afectan directamente el cromosoma, de esta
forma, el orden de atendimiento es corregido para que el individuo pueda transmitir esta
información en las siguientes generaciones. Las rutas mutadas o no, pueden ser infactibles
desde el punto de vista de empaquetamiento, por lo que es necesario validarlas con el GRASP
(Lı́nea 19). Cada vez que existe una infactibilidad esta es corregida en el grafo, eliminando el
arco correspondiente (Lı́nea 21), mientras existan infactibilidades, se debe seguir ejecutando
el split.
110
Algorithm 10 Algoritmo Hı́brido GA GRASP
Data: depot, vehicles, customers, items, max iterations, mutation rate, diversity and seed
2
Result: Solution Routes
for i = 1 . . . n6 do
3
end
4
6
constructive solution = ChristofidesTSP(customers)
for i = n6 . . . n2 do
7
end
8
for k = 1 . . . M ax Iterations do
1
population[i] = CreateRandomSolution(seed)
5
population[i] = SimulatedAnnealing(constructive solution)
parents = Tournament(population)
9
10
offspring = CrossoverPMX-SJX-OX-CX-OBX(parents)
11
for i = 1 . . . offspring.Size() do
12
graph = CreateDigraph(offspring[i], depot, vehicles, customers, items)
13
while f lag SP == f alse do
14
shortest path = Bellman-FordADG(graph)
15
for each route in shortest path do
if mutation rate > Rnd() then
16
route = Mutate2OPT(route)
17
18
end
19
flag = GRASP(route, items)
20
if flag == false then
21
graph = DeleteUnfeasibleArc(route)
22
flag SP = true
end
23
end
24
25
end
26
if AcceptanceCriteria(population, diversity, Decode(shortest path)) then
UpdatePopulation(Decode(shortest path))
27
end
28
29
end
30
end
31
return BestSolution(population)
Por último, cada individuo factible se presenta a la población actual, si este cumple el grado
111
de diversidad y su función objetivo es mejor que al menos el peor individuo de la población,
este entrará a reemplazarlo (Lı́nea 25 y 26). Además de esto, se implementó el criterio de
aspiración, esto significa que, aunque el individuo no sea diverso, si este tiene mejor función
objetivo que el peor individuo del “grupo élite” de la población, este deberá ingresar al
grupo élite, desplazando ası́ al peor individuo de la población Chu and Beasley (1997). De
esta forma, la estructura básica de un algoritmo elitista es conservada.
Dado que validar la restricción de empaquetamiento es un problema NP-Hard, es importante
definir un esquema de factibilización de rutas rápido y eficiente. Para esto, como estrategias
de aceleración se implementó un almacenamiento de los resultados ofrecidos por el GRASP,
de esta manera, se consulta primero la tabla hash que guarda las validaciones ya hechas.
Buscando eliminar el número de veces que el GRASP es llamado.
6.6.
Experimentos computacionales y análisis de resultados
En esta sección se presentan los resultados alcanzados por la metodologı́a propuesta, para
esto se utilizó el conjunto de instancias clásicos publicados en la literatura. La baterı́a de
casos está dividida en cinco clases, cada una compuesta por 36 instancias. Debido a que no
existen trabajos previos que aborden el problema de minimización de combustible, se analizó
el empeoramiento en distancia de las rutas obtenidas, teniendo como objetivo minimizar el
consumo de combustible, para esto se ejecutó la metodologı́a propuesta sobre los casos y de
igual manera se evaluó el comportamiento al eliminar el consumo de combustible. Siguiendo
esta idea, se utilizaron los resultados obtenidos sin considerar el combustible para compararlos
con trabajos previos de forma justa. De esta forma, se compara el desempeño la metodologı́a
y se demuestra que logra alcanzar mejores resultados para algunas instancias, lo que valida
el correcto desarrollo del algoritmo. Todos los experimentos realizados en este estudio fueron
ejecutados sobre una máquina con las siguientes especificaciones, un procesador Intel
TM
R
Core
i5-4570 CPU de 3.20 GHz, una memoria RAM de 8GB y un sistema operativo Ubuntu
Linux 16.04.03 de 64-bits. Todos algoritmos fueron implementaron en C++ R .
112
Algoritmo
Parámetro
Número de generaciones
GA
n
2 log n
Número de individuos
n
2
Número de individuos generados aleatorios
n
6
Tasa de mutación ( %)
GRASP
Valor*
n
log n
Diversidad (genes)
n
2 log n
Número de iteraciones de empaquetamiento
m
2 log m
Porcentaje de cajas retiradas ( %)
30
Tabla 6.1: Valores seleccionados para los parámetros. * Siendo n el número de clientes a rutear y m el número de
cajas a ser empacadas en la ruta.
La Tabla 6.1 muestra que los valores de los parámetros del algoritmo propuesto están en
su mayorı́a calibrados con relación a la información del problema, para esto se realizó un
ajuste experimental de las relaciones para cada parámetro, utilizando los intervalos de valores
recomendados en la literatura. El algoritmo genético requiere de cinco parámetros, cada
uno de estos se logró calibrar con respecto al número de clientes a rutear. Por otro lado,
el algoritmo GRASP solo requiere de dos parámetros debido a su naturaleza reactiva, que
consigue calibrar su parámetro principal α, basado en el desempeño histórico para un número
reducido de valores.
La Tabla 6.2 muestra los resultados computacionales obtenidos por la metodologı́a propuesta,
donde la columna Costo, es la función objetivo alcanzada por la mejor solución encontrada,
la columna Tiempo de cómputo, es el tiempo computacional en segundos, requerido para
alcanzar esta solución. Distancia es la suma de distancias de los arcos que conforman la
solución. Mientras que, la columna GAP es la diferencia porcentual entre las distancias de
la solución minimizando costos de combustible y la solución minimizando únicamente las
distancias.
113
Clase 1
Clase 2
Clase 3
Clase 4
Clase 5
114
Id
Costo
Tiempo de Cómputo
Distancia
GAP ( %)
Costo
Tiempo de Cómputo
Distancia
GAP ( %)
Costo
Tiempo de Cómputo
Distancia
GAP ( %)
Costo
Tiempo de Cómputo
Distancia
GAP ( %)
Costo
Tiempo de Cómputo
Distancia
1
780
<1
604
0
804
<1
647
3,7
824
<1
668
1,2
829
<1
666
0
780
<1
635
0
2
887
<1
698
0,5
975
<1
771
2,3
1043
<1
846
0,1
937
<1
735
0
887
<1
727
1,9
3
1034
<1
810
0,4
1082
<1
865
0
1070
<1
871
0
1022
<1
822
0
1034
<1
855
1
4
1007
<1
799
3,6
981
<1
755
0,4
981
<1
755
0,4
1000
<1
776
1,6
1007
<1
838
3,7
5
1086
<1
843
0,7
1182
<1
940
0
1165
<1
919
1,4
1142
<1
924
3
1086
<1
894
5,2
6
1145
<1
853
0
1215
<1
931
0
1215
<1
931
2,5
1298
<1
1012
0
1145
<1
886
0
7
4414
<1
3509
0
8851
<1
7587
2,3
7301
1
6052
0
7679
2
6641
1,5
4414
2
5945
0,9
8
4413
<1
3441
0
7431
<1
6096
0
8585
1
7426
0
8679
<1
7451
0
4413
4
4336
0,8
9
1498
<1
1116
1,7
1500
<1
1182
0,4
1490
<1
1174
0,4
1501
<1
1182
0,4
1498
<1
1192
1,7
10
7176
<1
5591
4
11261
1
9350
0
10376
2
8646
0
11485
3,7
10042
1,4
7176
9
7091
4,1
11
7136
<1
5351
0,9
11379
1
9355
0
11924
2
10092
0
12572
5,4
10703
1,1
7136
13
7038
0
12
2244
<1
1764
0,8
2296
<1
1823
0,3
2292
<1
1841
0,9
2287
<1
1816
0,5
2244
<1
1802
0,3
13
22251
<1
16692
0,9
37425
2
31794
2,2
36753
3
30907
4,7
38896
2,3
32619
2
22251
9
26745
2,4
14
13100
<1
10124
0,2
15085
<1
12032
0
16082
1
13336
0
15682
<1
12894
0
13100
1
12102
0
15
12920
<1
9988
0,9
15107
<1
12381
0
14938
<1
11989
0
17062
1,2
14248
0
12920
3
13351
0
16
1749
<1
1343
0,4
1806
<1
1400
0
1824
<1
1424
0,7
1801
<1
1382
0
1749
<1
1343
0,2
17
2379
<1
1827
0,1
2452
<1
1925
0
2418
<1
1837
0
2429
<1
1878
0
2379
<1
1894
0
18
4594
<1
3521
2,6
7260
3
6437
0,5
6991
4
6083
0
8187
16,6
7354
0,3
4594
14
5117
0
19
2137
<1
1637
1,3
6109
3
5312
1
6048
5
5412
1,3
6504
10,6
5727
0,6
2137
17
4077
2
20
2446
<1
1945
0
7097
26
6538
0,2
6747
60
6217
0,7
7459
97,1
6904
0
2446
178
5195
0,5
21
3539
<1
2713
0,7
11245
5
9914
0,5
12090
11
10687
0,4
11042
15,1
9613
0,8
3539
25
7736
1,2
22
3582
<1
2765
1,3
11247
5
10002
0,2
12283
11
10887
1,1
11504
20
10102
0,4
3582
40
8137
0,3
23
3539
<1
2713
0,7
11782
5
10342
0,8
10964
11
9719
0,2
11444
18,5
10157
0,6
3539
31
7589
0,8
24
3523
<1
2705
0,8
6819
1
5432
0,1
6303
1
5120
2,4
6288
2,3
4997
1,8
3523
2
4307
2,3
25
3958
<1
2972
0,4
15831
14
14196
0,2
14211
27
12659
0,2
15797
47,3
14271
0,8
3958
101
9097
1,2
26
5058
<1
3741
0,3
15762
6
13667
1,2
15565
15
13354
0,7
16367
27,2
14164
0,7
5058
52
9304
1
27
4039
<1
3034
0,2
7825
2
6210
0,3
8002
3
6482
0,8
7851
6,3
6396
1,4
4039
11
5691
1,2
28
6114
<1
4446
0,9
27734
31
24970
0
26203
58
23560
0
28516
102,6
25668
0,4
6114
228
18350
0,2
29
14545
<1
10957
1,4
28022
55
24182
0,1
25478
116
22077
0
27280
244,1
23534
0,6
14545
307
21425
0,1
30
5633
<1
4311
0,6
21571
17
19004
0,4
21301
34
18902
0,6
22363
69,4
19933
0,1
5633
113
13314
0,8
31
7722
<1
5924
0,5
26599
16
23530
0,5
27467
31
24099
0,3
28355
84,4
25150
0,2
7722
133
17463
0,3
32
7677
<1
5846
0,2
27738
20
24606
0,4
24942
44
22031
0,8
28337
81,9
24816
0,5
7677
123
16280
0,3
33
7805
<1
5952
0,1
26983
20
23770
0,2
26428
44
23364
0,5
28718
79,2
25457
0,7
7805
134
17357
1,3
34
5744
<1
4589
0,3
18066
14
16046
0,2
17228
40
15294
0,5
19662
74
17476
0,2
5744
104
11708
0,5
35
5372
<1
4164
0,1
11259
19
9851
0
11397
36
10025
0,1
12025
72,4
10637
0,1
5372
184
8574
0,2
36
3765
<1
3011
0
5806
20
5124
0
5802
37
5120
0
5543
61
4861
0
3765
141
4288
0
Promedio
<1
0,8
7,9
0,5
16,6
0,6
Tabla 6.2: Resultados obtenidos por el GA-GRASP
31,9
0,6
55
GAP ( %)
1
En la Tabla 6.2 se ilustra que la metodologı́a propuesta logra resolver todas las instancias
de la literatura, tardando menos de un segundo en los casos de la Clase 1 (donde los ı́tems
son homogéneos) y menos de un minuto en los casos de la Clase 5 (donde los ı́tems son
altamente heterogéneos). La diferencia entre las distancias alcanzadas es bastante pequeña,
esto significa que la estructura de costos de la función objetivo incorporada en este trabajo,
fuerza al algoritmo a balancear el peso de la carga con que atraviesa los arcos, cómo se ilustra
en la Figura 1, gran parte de las aristas de una solución se conserva en la otra, modificando
únicamente su sentido.
Por otro lado, en la Tabla 6.3 se presentan los resultados obtenidos al modificar la metodologı́a
para que busque minimizar la distancia total recorrida de las rutas. Estos resultados se
comparan de forma justa con las mejores soluciones reportadas por los trabajos previos en
la literatura Leung et al. (2013), Dominguez et al. (2016) y Domı́nguez Rivero et al. (2016).
En especial, la columna BKS es la mejor solución conocida para cada instancia y la columna
GAP es la diferencia porcentual entre las distancias del BKS y la obtenida en este trabajo.
Cabe resaltar que se utilizaron los mismos parámetros establecidos para el 2L-FHFVRP. Los
tiempos de cómputo alcanzados son similares a los obtenidos en la versión con combustible,
no se reportan debido a que la comparación uno a uno no serı́a justa, debido a las diferencias
entre arquitecturas de cómputo y desarrollo.
115
Clase 1
Clase 2
Clase 3
Clase 4
Clase 5
Id
BKS
Solución
GAP ( %)
BKS
Solución
GAP ( %)
BKS
Solución
GAP ( %)
BKS
Solución
GAP ( %)
BKS
Solución
GAP ( %)
1
596,07
596,07
0
602,88
610,37
1,2
597,04
597,04
0
596,07
596,07
0
596,07
597,04
0,2
2
670,3
679,18
1,3
700,94
707,08
0,9
728,24
733,47
0,7
684,99
717,48
4,5
670,3
679,18
1,3
3
745,51
757,18
1,5
765,8
801,62
4,5
777,6
788,53
1,4
754,87
765,8
1,4
754,87
770,17
2
4
694,33
694,33
0
697,06
715,75
2,6
697,06
698,3
0,2
703,76
703,76
0
694,87
710,19
2,2
5
758,47
758,47
0
762,92
804,14
5,1
772,53
779,91
0,9
768,74
798,12
3,7
758,47
758,47
0
6
809,56
809,56
0
824,6
830,56
0,7
827,6
857,22
3,5
836,22
882,99
5,3
822,69
829,3
0,8
7
3211,53
3213,88
0,1
5952,09
6089,29
2,3
5135,66
5415,49
5,2
5466,9
5710,76
4,3
4723,64
4939,01
4,4
8
3184,45
3201,1
0,5
4804,14
4814
0,2
6400,11
6717,82
4,7
6290,15
6304,94
0,2
3864,97
3830,33
-0,9
116
9
1029,95
1031,55
0,2
1029,95
1089,67
5,5
1029,95
1037,79
0,8
1052,62
1084,6
2,9
1029,95
1029,95
0
10
4932,34
5082,18
2,9
7439,25
7888,78
5,7
6173,72
6360,87
2,9
7977,48
7879,66
-1,2
6065
6179,08
1,8
11
4932,34
5020,19
1,7
8007,51
8545,93
6,3
8289,87
8667,75
4,4
8820,13
8886,6
0,7
6053,52
6177,61
2
12
1655,73
1655,73
0
1674,56
1683,15
0,5
1681,51
1702,72
1,2
1680,01
1686,77
0,4
1677,52
1702,99
1,5
13
14579,87
14902,5
2,2
26318,79
27766
5,2
24598,85
25713,3
4,3
26103,64
27078,9
3,6
22808,22
23527,2
3,1
14
9097,52
9227,83
1,4
10389,98
10833,3
4,1
11345,99
11438,7
0,8
10233,7
10601,4
3,5
10005,07
10364,1
3,5
15
9097,52
9245,66
1,6
10780,29
10958,9
1,6
10753,2
11108,8
3,2
11449,4
12263,2
6,6
11527,11
12172,3
5,3
16
1276,22
1297,13
1,6
1280,9
1290,63
0,8
1288,07
1309,27
1,6
1290
1330,26
3
1280,9
1296,03
1,2
17
1764,32
1783,97
1,1
1756,5
1860,38
5,6
1766,5
1816,89
2,8
1766,5
1836,54
3,8
1768,57
1753,96
-0,8
18
3140,55
3203,28
2
5862,61
5882,47
0,3
5197,55
5479,62
5,1
6084,39
7334,08
17
4435,96
5416,18
18,1
19
1490,28
1566,72
4,9
3955,68
4797,48
17,5
3907,65
5209,65
25
4641,27
6027,38
23
3284,6
3775,79
13
20
1776,44
1870,38
5
5354,01
6547,4
18,2
5468,92
6194,45
11,7
5689,54
6894,8
17,5
4133,83
5103,29
19
21
2470,47
2576,9
4,1
6858,61
9597,62
28,5
8228,34
10261,5
19,8
7840,41
9592,66
18,3
5437,85
7768,4
30
22
2470,47
2566,33
3,7
7166,96
9463,43
24,3
8117,96
10259,2
20,9
8107,14
10217,6
20,7
5899,7
7229,97
18,4
23
2470,47
2600,85
5
7984,9
10190
21,6
7555,01
9747,97
22,5
8230,75
10190
19,2
5504,2
7503,28
26,6
24
2470,47
2580,33
4,3
4584,58
5561,92
17,6
4271,53
4800,68
11
4520,48
5050,71
10,5
3805,04
4243,31
10,3
25
2728,4
2961,77
7,9
10679,78
14814,3
27,9
10049,97
12714,1
21
11558,3
13917,1
16,9
7227,21
9408,58
23,2
26
3477,26
3587,97
3,1
10595,48
13400,8
20,9
10700,47
12833
16,6
11725,4
14424,9
18,7
8185,74
9234,58
11,4
27
2728,4
2958,89
7,8
5373,07
6536,98
17,8
5735,3
6326,48
9,3
5497,14
6202,87
11,4
5101,17
5640,89
9,6
28
4065,7
4281,62
5
19433,58
24899,1
22
20023,42
23315,4
14,1
21579,76
25619,3
15,8
16097,78
18793,9
14,3
29
9105,07
9897,04
8
20379,1
24508,5
16,8
20343,62
22334,8
8,9
21568,48
24508,5
12
20143,84
21399,6
5,9
30
3946,79
4289,22
8
14900,24
18742
20,5
15222,37
18742
18,8
16450,52
20148,9
18,4
10388,77
13369
22,3
31
5370,31
5836,01
8
18282,14
23119,8
20,9
20243,98
23516,9
13,9
21480,92
24618,5
12,7
14853,19
18341,8
19
32
5370,34
5860,83
8,4
18935,52
24364,8
22,3
17921,4
21408,4
16,3
20308,82
24038,8
15,5
13644,69
17064,7
20
33
5377,08
8,4
18846,63
24566,5
23,3
20344,29
23102,4
11,9
21899,41
24670,6
11,2
13648,79
16183,3
15,7
34
4263,78
4493,55
5,1
13606,24
15922,4
14,5
14185,86
15938,9
11
15326,26
16858,9
9,1
10480,51
11227,4
6,7
35
3911,17
4139,41
5,5
8340,24
9859,26
15,4
8876,94
10169,6
12,7
9226,53
10635,9
13,3
7776,65
8608,66
9,7
36
2847,02
3010,48
5,4
4290,8
5093,51
15,8
4524,41
5093,51
11,2
4280,03
4931,87
13,2
3883,48
4279,52
Promedio
3,49
11,64
8,9
9,37
9,3
9,16
Tabla 6.3: Resultados obtenidos por el GA-GRASP y comparación con las mejores soluciones publicadas en la literatura (BKS)
En la Tabla 6.3 se muestra que la metodologı́a propuesta logra resolver todas las instancias
de la literatura, alcanzado varias de las mejores soluciones reportadas y mejorando algunas.
La diferencia entre las distancias alcanzadas es de 8,5 % en promedio. Cabe resaltar que,
los algoritmos contra los que se compara buscan mejorar su función objetivo (minimizar las
distancias totales) a través de operadores de búsqueda especializados. El algoritmo propuesto
fue fácilmente adaptado para esta versión del problema de carga y empaquetamiento,
conservando su estructura original.
6.7.
Conclusiones y trabajos futuros
Se resolvió el problema integrado de enrutamiento de vehı́culos y carga de mercancı́as
considerando reducir el consumo de combustible, a través de un algoritmo genético elitista,
de fácil implementación, una caracterı́stica básica de las metodologı́as aproximadas. Se
obtuvieron resultados satisfactorios en tiempos de cómputo razonables (menos de 30 segundos
en promedio). Su comportamiento fue validado comparando su desempeño con los mejores
trabajos previos publicados, para una variante del problema que no considera el consumo de
combustible, se alcanzaron varias de las mejores soluciones conocidas, se mejoraron algunas
instancias y se mantuvo una brecha no muy lejana a los mejores resultados reportados.
Se presentó una adaptación eficiente y rápida de la codificación split, que permite incorporar
fácilmente las restricciones de empaquetamiento, evitando aumentar los tiempos de cómputo
vertiginosamente. El uso de esta representación permite introducir restricciones reales del
problema sin modificar la estructura principal del algoritmo, dado que las consideraciones
prácticas se validan en la creación del grafo auxiliar, restricciones como ventanas de tiempo,
duración de las rutas, entre otros, se limitan a crear o no los arcos de las rutas válidas.
Se adaptó el algoritmo GRASP reactivo para la validación de rutas factibles por
empaquetamiento, se utilizó la codificación de espacios residuales máximos para considerar
la restricción de carga secuencial, de forma tal que, entre clientes se conservan únicamente
los espacios factibles a la hora del cargue. Además de esto, su estructura ligera hace que no
117
dependa de un gran número de parámetros y se ajuste a la complejidad del surtido de los
ı́tems.
Como trabajo futuro se propone comparar el estudio aquı́ presentado, contra metodologı́as
que alcanzan buenos resultados, para otras variantes del problema de rutas de vehı́culos
y empaquetamiento de mercancı́as, en especial, se sugiere implementar el algoritmo de
trayectoria tipo ILS, el cual en la literatura aparece con mejor desempeño. Además de
esto, se recomienda utilizar y adaptar la metodologı́a propuesta a problemas que consideren
restricciones reales de la industria, incorporando condiciones como: ventanas de tiempo,
duración máxima de viaje, vehı́culos eléctricos, mercancı́a apilable, entre otros.
118
Capı́tulo 7
Conclusiones, trabajos futuros y
producción
7.1.
Conclusiones
Al final del desarrollo de este trabajo, se aporta al estado del arte el estudio de dos problemas
nuevos, un modelo matemático y metodologı́as computacionales adecuadas para abordar
variantes de enrutamiento que analizan de manera realista la carga asociada a las demandas
de los clientes.
Se contribuyen dos metodologı́as nuevas para el problema 3L-CVRP; ambas utilizan
hibridación tanto metaheurı́stica como matheurı́stica, explorando abordajes desde diferentes
perspectivas para sumar en el estudio de este problema compuesto por dos problemas
NP-duros articulados.
Adicionalmente, para fortalecer un enfoque más realista de los problemas de enrutamiento de
vehı́culos, se hace un estudio especı́fico para el enrutamiento de vehı́culos con consideraciones
verdes o ambientales. Al realizar este estudio, se propone un nuevo problema, el cual, en
efecto, fue formalizado a través de un nuevo modelo matemático que se aporta al estado del
arte correspondiente.
119
La inmersión en problemas de enrutamiento de vehı́culos con consideraciones ambientales,
muestra que medir el impacto ecológico, no sólo aporta en la disminución de las consecuencias
de las actividades de transporte realizadas por la industria, si no que también genera un
desarrollo importante en la forma de modelar y resolver los problemas de enrutamiento
de vehı́culos por todos los elementos realistas que hay que agregar a las representaciones
computacionales; sumando en la articulación de la investigación con las aplicaciones en el
sector productivo.
La claridad adquirida en el estudio presentado de enrutamiento verde, al involucrar elementos
como especificaciones técnicas del vehı́culo como su peso, resistencia al viento, consumo
energético relacionado con su velocidad de desplazamiento y tiempo de ruta costeado con
la mano de obra del conductor encargado de la distribución de los bienes; sentó las bases
para encontrar la forma adecuada de involucrar impacto ambiental en una variante de
enrutamiento empaquetamiento realista.
Se presenta entonces un problema no estudiado, insinuado como posible variante en la
literatura especializada previa, que integra todos los estudios realizados en el desarrollo de la
investigación. El problema del 2L-FHFVRP, es decir, demandas no apilables suplidas con una
flota de vehı́culos heterogénea y considerando impacto ambiental minimizando el consumo
de combustible de las rutas que realizan la distribución de los bienes, fue resuelto además
con la extensión de una codificación clásica para problemas de enrutamiento de vehı́culos,
brindando una forma de representar este problema realista para futuras investigaciones.
Durante esta investigación, fueron seguidas dos tendencias importantes identificadas en
el estado del arte: (i) aunque sumar variantes al problema de enrutamiento de vehı́culos
es muy valioso para este campo de estudio, hay un interés creciente en resolver
eficientemente los problemas de agente viajero y cartero chino especı́ficos embebidos en los
problemas de enrutamiento complejos, dado que resolverlos de la mejor manera posible en
términos computacionales, mejora directamente la solución de problemas de enrutamiento
correspondientes, y de porte cercano a los que se presentan en la práctica. Y (ii) en la misma
lı́nea de resolver el TSP que sigue las reglas del problema de enrutamiento correspondiente,
120
junto con el notable avance de los recursos computacionales como el hardware y librerı́as
especializadas de alto rendimiento, tornan de gran interés los algoritmos clásicos que afrontan
la manipulación y toma de decisiones sobre los grafos que surgen en el proceso de solución;
en este trabajo se utilizaron algoritmos propuestos hace varias décadas para el core de
las implementaciones (especialmente la variante con impacto ambiental), y su eficiencia
computacional es notable, dado que fueron propuestos en tiempos donde las plataformas
de cómputo eran muy limitadas.
7.2.
Trabajos Futuros
A continuación se enumeran algunos de los posibles trabajos futuros que se podrı́an
desprender de esta tesis doctoral:
1. Dado que se realizó el estudio para 2L-HFVRP y 3L-CVRP, se podrı́a abordar
la variante 3L-HFVRP, la cual se encuentra poco estudiada. La adaptación de los
algoritmos desarrollados en esta investigación a este nuevo contexto, serı́a un aporte
importante en esta familia de problemas.
2. Proponer un modelo matemático para el 3L-HFVRP.
3. Proponer nuevas metodologı́as de solución para el 3L-HFVRP.
4. En este trabajo se propuso el 2L-FHFVRP, una variante nueva (detallada en el
documento). Se observó que las únicas instancias disponibles, diseñadas para el mismo
problema sin incluir el consumo de combustible, pueden ser mejoradas para que exista
una diferenciación mayor entre los pesos de las demandas de los clientes, y de esta
manera, tener algunos casos dentro de la librerı́a que presenten una correlación mayor
entre el consumo de combustible y los bienes transportados.
5. Proponer el problema 3L-FHFVRP que aún no ha sido estudiado y aportar: instancias
apropiadas, modelo o modelos matemáticos y metodologı́as de solución.
121
6. Proponer y estudiar nuevas variantes de enrutamiento-empaquetamiento que incluyan
otras variables que no hayan sido tenidas en cuenta en los estudios previos y que estén
presentes en las aplicaciones reales.
El desarrollo de los trabajos enumerados pueden ser realizados en investigaciones de maestrı́a
y doctorado, generando aportes a la comunidad académica.
7.3.
Producción
Las publicaciones alcanzadas durante esta investigación se listan a continuación:
Memorias de Congreso IEEE: Escobar, L. M., Martı́nez, D. Á., Escobar, J. W.,
Linfati, R., Mauricio, G. E. (2015, October). A hybrid metaheuristic approach for
the capacitated vehicle routing problem with container loading constraints. In 2015
International Conference on Industrial Engineering and Systems Management (IESM)
(pp. 1374-1382). IEEE.
Publicación en Revista Especializada A1(Publindex): Escobar-Falcón, L. M.,
Álvarez-Martı́nez, D., Granada-Echeverri, M., Escobar, J. W., Romero-Lázaro, R. A.
(2016). A matheuristic algorithm for the three-dimensional loading capacitated vehicle
routing problem (3L-CVRP). Revista Facultad de Ingenierı́a Universidad de Antioquia,
(78), 09-20.
Capı́tulo
de
Libro: Cacchiani, V., Contreras-Bolton, C., Escobar, J. W.,
Escobar-Falcon, L. M., Linfati, R., Toth, P. (2018). An Iterated Local Search Algorithm
for the Pollution Traveling Salesman Problem. In New Trends in Emerging Complex Real
Life Problems (pp. 83-91). Springer, Cham.
Publicación en Revista Especializada Q1: Moreno, C., Falcón, L., Bolaños, R.,
Subramanian, A., Zuluaga, A.,
Echeverri, M. (2019). A hybrid algorithm for the
multi-depot vehicle scheduling problem arising in public transportation. International
Journal of Industrial Engineering Computations, 10(3), 361-374.
122
Publicación en Revista Especializada Q3: Moreno, C., Falcón, L., Escobar, J.,
Zuluaga, A.,
Echeverri, E. (2019). Heuristic constructive algorithm for work-shift
scheduling in bus rapid transit systems. Decision Science Letters, 8(4), 519-530.
Las publicaciones presentadas corresponden tanto a los trabajos realizados dentro de esta
investigación, junto con productos que se generaron al realizar experimentos con las técnicas
aquı́ desarrolladas en el contexto de scheduling o asignación de tareas.
Adicionalmente, se tienen dos trabajos en revisión al momento del cierre de esta tesis:
Revista Especializada Optimization Letters Q2: Matheuristic Algorithms for the
Pollution Traveling Salesman Problem.
Corrección de Estilo Idioma Inglés: Algoritmo genético especializado para el
problema de enrutamiento de vehı́culos con flota heterogénea y restricciones de
empaquetamiento bidimensional minimizando el consumo de combustible
123
Bibliografı́a
Ravindra K Ahuja, Thomas L Magnanti, and James B Orlin. Network flows. 1988.
Murat Albayrak and Novruz Allahverdi. Development a new mutation operator to solve
the Traveling Salesman Problem by aid of Genetic Algorithms. Expert Systems with
Applications, 38(3):1313–1320, 2011. ISSN 09574174.
Maria Teresa Alonso, Ramon Alvarez-Valdes, Jose Manuel Tamarit, and Francisco Parreño.
A reactive grasp algorithm for the container loading problem with load-bearing constraints.
European Journal of Industrial Engineering, 8(5):669–694, 2014.
Sia Ardekani, Ezra Hauer, and Bahram Jamei. Traffic impact models. Chapter 7 in Traffic
Flow Theory, Oak Bridge National Laboratory Report, 1992.
A. Attanasio, A. Fuduli, G. Ghiani, and C. Triki. Integrated shipment dispatching and
packing problems: a case study. Journal of Mathematical Modelling and Algorithms, 6:
77–85, 2007.
R. Baldacci, P. Toth, and D. Vigo. Exact algorithms for routing problems under vehicle
capacity constraints, volume 175. Annals of Operations Research, Springer US, 2010.
Ronald H. Ballou. Bussines Logistics/Supply Chain Management. 2004.
W Banzhaf. The “molecular” traveling salesman. Biological Cybernetics, 64(1):7–14, 1990.
ISSN 0340-1200.
Tolga Bektaş and Gilbert Laporte. The pollution-routing problem. Transportation Research
Part B: Methodological, 45(8):1232–1250, 2011.
124
A. Bortfeldt.
A hybrid algorithm for the capacitated vehicle routing problem with
threedimensional loading constraints. Computers & Operations Research, 39:2248–2257,
2012.
A. Bortfeldt and J. Homberger. Packing first, routing second - a heuristic for the vehicle
routing and loading problem. Computers & Operations Research, 40:873–885, 2013.
PG Boulter, Ian S McCrae, and Tim J Barlow. A review of instantaneous emission models
for road vehicles. TRL Limited, 2007.
J. Brandao. A deterministic tabu search algorithm for the fleet size and mix vehicle routing
problem. European Journal of Operation Research, 195:716–728, 2009.
Luciana Buriol, Paulo M. França, and Pablo Moscato. A new memetic algorithm for the
asymmetric traveling salesman problem. Journal of Heuristics, 10(5):483–506, September
2004. ISSN 1381-1231.
Valentina Cacchiani, Carlos Contreras-Bolton, John W Escobar, Luis M Escobar-Falcon,
Rodrigo Linfati, and Paolo Toth. An iterated local search algorithm for the pollution
traveling salesman problem. In New Trends in Emerging Complex Real Life Problems,
pages 83–91. Springer, 2018.
Guillermo Alberto Camacho, David Alvarez, and Daniel Cuellar. Heuristic approach for the
multiple bin-size bin packing problem. IEEE Latin America Transactions, 16(2):620–626,
2018.
Nicos Christofides. Worst-case analysis of a new heuristic for the travelling salesman problem.
Technical report, Carnegie-Mellon Univ Pittsburgh Pa Management Sciences Research
Group, 1976.
Paul C Chu and John E Beasley. A genetic algorithm for the generalised assignment problem.
Computers & Operations Research, 24(1):17–23, 1997.
Geoff Clarke and John W Wright. Scheduling of vehicles from a central depot to a number
of delivery points. Operations research, 12(4):568–581, 1964.
125
Ryan Conrad and Miguel Figliozzi.
Algorithms to quantify impact of congestion on
time-dependent real-world urban freight distribution networks. Transportation Research
Record: Journal of the Transportation Research Board, (2168):104–113, 2010.
Carlos Contreras-Bolton and Victor Parada. Automatic combination of operators in a genetic
algorithm to solve the traveling salesman problem. PloS one, 10(9):e0137724, 2015.
Jean-François Côté, Gianfranco Guastaroba, and Maria Grazia Speranza. The value of
integrating loading and routing. European Journal of Operational Research, 257(1):89–105,
2017.
S. Cullinane and J. Edwards. Assessing the environmental impacts of freight transport.
In A. McKinnon, S. Cullinane, Browne M, and A. Whiteing, editors, Green Logistics,
chapter 2, pages 31–48. Kogan Page, London, 2010.
C. D’Ambrosio, A. Lodi, and S. Martello.
Combinatorial traveling salesman problem
algorithms. Wiley Encyclopedia of Operations Research and Management Science, 2011.
George Dantzig, Ray Fulkerson, and Selmer Johnson.
Solution of a large-scale
traveling-salesman problem. Journal of the operations research society of America, 2(4):
393–410, 1954.
George B Dantzig and John H Ramser. The truck dispatching problem. Management science,
6(1):80–91, 1959.
Emrah Demir, Tolga Bektaş, and Gilbert Laporte. An adaptive large neighborhood search
heuristic for the pollution-routing problem. European Journal of Operational Research, 223
(2):346–359, 2012.
Emrah Demir, Tolga Bektaş, and Gilbert Laporte. A review of recent research on green road
freight transportation. European Journal of Operational Research, 237(3):775–793, 2014.
Oscar Dominguez, Angel A Juan, Barry Barrios, Javier Faulin, and Alba Agustin. Using
biased randomization for solving the two-dimensional loading vehicle routing problem with
heterogeneous fleet. Annals of Operations Research, 236(2):383–404, 2016.
126
Oscar L Domı́nguez Rivero, Angel A Juan Pérez, Ignacio A de la Nuez Pestana, and Djamila
Ouelhadj. An ils-biased randomization algorithm for the two-dimensional loading hfvrp
with sequential loading and items rotation. Journal of the Operational Research Society,
67(1):37–53, 2016.
C. Duhamel, P. Lacomme, A. Quilliot, and H. Toussaint. A multi-start evolutionary local
search for the two-dimensional loading capacitated vehicle routing problem. Computers &
Operations Research, 38:617–640, 2011.
Jr E.G. Coffman, J. Csirik, G. Galambos, S. Martello, and D. Vigo.
Handbook of
Combinatorial Optimization, chapter Bin Packing Approximation Algorithms: Survey and
Classification. Springer, segunda edition, 2013.
Richard Eglese and Daniel Black. Optimizing the routeing of vehicles. In A. McKinnon,
S. Cullinane, Browne M, and A. Whiteing, editors, Green Logistics, chapter 10, pages
223–235. Kogan Page, London, 2 edition, 2012.
Richard Eglese, Will Maden, and Alan Slater. A road timetableTM to aid vehicle routing
and scheduling. Computers & operations research, 33(12):3508–3519, 2006.
A. E. Eiben and James E. Smith.
Introduction to Evolutionary Computing.
Springer
Publishing Company, Incorporated, 2nd edition, 2015. ISBN 3662448734, 9783662448731.
Ágoston Endre Eiben, R. Hinterding, and Zbigniew Michalewicz. Parameter control in
evolutionary algorithms. IEEE Transactions on Evolutionary Computation, 3(2):124–141,
July 1999. ISSN 1089778X.
Ágoston Endre Eiben, Zbigniew Michalewicz, M Schoenauer, and Jim E Smith. Parameter
Control in Evolutionary Algorithms. In FernandoG. Lobo, CláudioF. Lima, and Zbigniew
Michalewicz, editors, Parameter Setting in Evolutionary Algorithms, volume 54 of Studies
in Computational Intelligence, pages 19–46. Springer Berlin Heidelberg, 2007.
ISBN
978-3-540-69431-1.
John Willmer Escobar, Rodrigo Linfati, and Paolo Toth. A two-phase hybrid heuristic
127
algorithm for the capacitated location-routing problem. Computers & Operations Research,
40(1):70–79, 2013.
John Willmer Escobar, Rodrigo Linfati, Maria G Baldoquin, and Paolo Toth.
A
granular variable tabu neighborhood search for the capacitated location-routing problem.
Transportation Research Part B: Methodological, 67:344–356, 2014a.
John Willmer Escobar, Rodrigo Linfati, Paolo Toth, and Maria G Baldoquin. A hybrid
granular tabu search algorithm for the multi-depot vehicle routing problem. Journal of
Heuristics, 20(5):483–509, 2014b.
Luis Miguel Escobar, David Álvarez Martı́nez, John Willmer Escobar, Rodrigo Linfati, and
Granada E Mauricio. A hybrid metaheuristic approach for the capacitated vehicle routing
problem with container loading constraints. In 2015 International Conference on Industrial
Engineering and Systems Management (IESM), pages 1374–1382. IEEE, 2015.
Luis Miguel Escobar-Falcón, David Álvarez-Martı́nez, Mauricio Granada-Echeverri,
John Willmer Escobar, and Rubén Augusto Romero-Lázaro. A matheuristic algorithm
for the three-dimensional loading capacitated vehicle routing problem (3l-cvrp). Revista
Facultad de Ingenierı́a Universidad de Antioquia, (78):09–20, 2016.
A Esteves-Booth, T Muneer, J Kubie, and H Kirby. A review of vehicular emission models
and driving cycles. Proceedings of the Institution of Mechanical Engineers, Part C: Journal
of Mechanical Engineering Science, 216(8):777–797, 2002.
EU-27-European-Union. Member countries of the eu (year of entry), 2013. URL https:
//europa.eu/european-union/about-eu/countries_en.
T. Feo and M. G. C. Resende. A probabilistic heuristic for a computationally difficult set
covering problem. Operations Research Letters, 8:67–71, 1989.
Miguel Figliozzi.
Vehicle routing problem for emissions minimization.
Transportation
Research Record: Journal of the Transportation Research Board, (2197):1–7, 2010.
128
Miguel Andres Figliozzi.
The impacts of congestion on time-definitive urban freight
distribution networks co 2 emission levels: Results from a case study in portland, oregon.
Transportation Research Part C: Emerging Technologies, 19(5):766–778, 2011.
Merrill M Flood. The traveling-salesman problem. Operations research, 4(1):61–75, 1956.
David J. Forkenbrock. External costs of intercity truck freight transportation. Transportation
Research Part A: Policy and Practice, 33(7–8):505 – 526, 1999. ISSN 0965-8564. doi: http://
dx.doi.org/10.1016/S0965-8564(98)00068-8. URL //www.sciencedirect.com/science/
article/pii/S0965856498000688.
David J. Forkenbrock. Comparison of external costs of rail and truck freight transportation.
Transportation Research Part A: Policy and Practice, 35(4):321 – 337, 2001.
0965-8564.
doi: http://dx.doi.org/10.1016/S0965-8564(99)00061-0.
ISSN
URL //www.
sciencedirect.com/science/article/pii/S0965856499000610.
Anna Franceschetti, Dorothée Honhon, Tom Van Woensel, Tolga Bektaş, and Gilbert
Laporte. The time-dependent pollution-routing problem. Transportation Research Part
B: Methodological, 56:265–293, 2013.
G. Fuellerer, K. F. Doerner, R. Hartl, and M. Iori.
Ant colony optimization for the
two-dimensional loading vehicle routing problem. Computers & Operations Research, 36:
655–673, 2009.
G. Fuellerer, K.F. Doerner, R. Hartl, and M. Iori. Metaheuristics for vehicle routing problems
with three-dimensional loading constraints. European Journal of Operational Research, 201:
751–759, 2010.
M. Gendrau, M. Iori, G. Laporte, and S. Martello. A tabu search heuristic for the vehicle
routing problem with two-dimensional loading constraints. Networks, 51:4–18, 2007.
M. Gendreau, M. Iori, G. Laporte, and S. Martello. A tabu search algorithm for a routing
and container loading problem. Transportation Science, 40:342–350, 2006.
129
B. Golden, S. Raghavan, and E. Wasil. The Vehicle Routing Problem: Latest Advances and
New Challenges., volume 43. Operations Research/Computer Science Interfaces Series,
2008.
Michael D Grant, Anne Choate, and Lauren Pederson. Assessment of greenhouse gas analysis
techniques for transportation projects. Technical report, 2008.
John J. Grefenstette, Rajeev Gopal, Brian J. Rosmaita, and Dirk Van Gucht. Genetic
algorithms for the traveling salesman problem. In Proceedings of the 1st International
Conference on Genetic Algorithms, pages 160–168, Hillsdale, NJ, USA, 1985. L. Erlbaum
Associates Inc. ISBN 0-8058-0426-9.
Carlos Groba, Antonio Sartal, and Xosé H Vázquez. Solving the dynamic traveling salesman
problem using a genetic algorithm with trajectory prediction: An application to fish
aggregating devices. Computers & Operations Research, 56:22–32, 2015.
Daniel Guimarans, Oscar Dominguez, Angel A Juan, and Enoc Martinez. A multi-start
simheuristic for the stochastic two-dimensional vehicle routing problem. In 2016 Winter
simulation conference (Wsc), pages 2326–2334. IEEE, 2016.
Daniel Guimarans, Oscar Dominguez, Javier Panadero, and Angel A Juan. A simheuristic
approach for the two-dimensional vehicle routing problem with stochastic travel times.
Simulation Modelling Practice and Theory, 89:1–14, 2018.
K. Hamdi-Dhaoui, N. Labadie, and A. Yalaoui.
IJCCI 2012 - Proceedings of the 4th
International Joint Conference on Computational Intelligence, chapter Memetic algorithm
with population management for the two-dimensional loading vehicle routing problem with
partial conflicts, pages 189–195. SciTePress, 2012.
John Hickman, Dieter Hassel, Robert Joumard, Zissis Samaras, and S Sorenson. Methodology
for calculating transport emissions and energy consumption. 1999.
M. Iori. Metaheuristic algorithms for combinatorial optimization problems. 4OR, 3:163–166,
2005.
130
M. Iori, J.J. Salazar González, and D. Vigo. An exact approach for the vehicle routing
problem with two-dimensional loading constraints. Transportation Science, 41:253–264,
2007.
Manuel Iori. An annotated bibliography of combined routing and loading problems. Yugoslav
Journal of Operations Research, 23(3), 2013.
O Jabali, T Woensel, and AG de Kok.
Analysis of travel times and co2 emissions in
time-dependent vehicle routing. Production and Operations Management, 21(6):1060–1074,
2012.
L. Junqueira, J.F. Oliveira, M.A. Carravilla, and R. Morabito. An optimization model for the
vehicle routing problem with practical three-dimensional loading constraints. International
Transactions in Operational Research, 20:645–666, 2013.
Imdat Kara, Bahar Y Kara, and M Kadri Yetis. Energy minimizing vehicle routing problem.
In International Conference on Combinatorial Optimization and Applications, pages 62–71.
Springer, 2007.
S. Khebbache-Hadji, C. Prins, A. Yalaoui, and M. Reghioui.
Heuristics and memetic
algorithm for the two-dimensional loading capacitated vehicle routing problem with time
windows. Central European Journal of Operations Research, 21:307–336, 2013.
R.
Knight.
Technical
Mobility
report,
Hertfordshire,
2030:
University
London,
2004.
Meeting
the
challenges
Department
to
sustainability.
of
Zurich,
of
Informatics,
URL
http://wbcsdpublications.org/project/
mobility-2030-meeting-the-challenges-to-sustainability-executive-summary-2004/.
G. Koloch and B. Kaminski. Nested vs. joint optimization of vehicle routing problems with
three-dimensional loading constraints. Engineering Letters, 18:193–198, 2010.
Raphael Kramer, Anand Subramanian, Thibaut Vidal, and F Cabral Lucı́dio dos Anjos. A
matheuristic approach for the pollution-routing problem. European Journal of Operational
Research, 243(2):523–539, 2015.
131
Yiyo Kuo. Using simulated annealing to minimize fuel consumption for the time-dependent
vehicle routing problem. Computers & Industrial Engineering, 59(1):157–165, 2010.
Gilbert Laporte. Fifty years of vehicle routing. Transportation Science, 43(4):408–416, 2009.
doi: 10.1287/trsc.1090.0301. URL http://dx.doi.org/10.1287/trsc.1090.0301.
Pedro Larranaga, Cindy M. H. Kuijpers, Roberto H. Murga, Inaki Inza, and Sejla Dizdarevic.
Genetic algorithms for the travelling salesman problem: A review of representations and
operators. Artificial Intelligence Review, 13(2):129–170, 1999.
A.N. Letchford and A. Lodi. Mathematical programming approaches to the traveling salesman
problem. Wiley Encyclopedia of Operations Research and Management Science, 2011.
S.C.H. Leung, J. Zheng, D. Zhang, and X. Zhou. Simulated annealing for the vehicle routing
problem with two-dimensional loading constraints. Flexible Services and Manufacturing
Journal, 22:61–82, 2010.
S.C.H. Leung, X. Zhou, D. Zhang, and J. Zheng. Extended guided tabu search and a new
packing algorithm for the two-dimensional loading vehicle routing problem. Computers &
Operations Research, 38:205–215, 2011.
S.C.H. Leung, Z. Zhang, D. Zhang, X. Hua, and M.K. Lim. A meta-heuristic algorithm
for heterogeneous fleet vehicle routing problems with two-dimensional loading constraints.
European Journal of Operational Research, 225:199–210, 2013.
Ke Li, Alvaro Fialho, Sam Kwong, and Qingfu Zhang. Adaptive operator selection with
bandits for a multiobjective evolutionary algorithm based on decomposition.
IEEE
Transactions on Evolutionary Computation, 18(1):114–130, 2014.
Canhong Lin, King Lun Choy, George TS Ho, Sai Ho Chung, and HY Lam. Survey of green
vehicle routing problem: past and future trends. Expert Systems with Applications, 41(4):
1118–1138, 2014.
Shuguang Liu, Weilai Huang, and Huiming Ma. An effective genetic algorithm for the fleet
size and mix vehicle routing problems. Transportation Research Part E: Logistics and
Transportation Review, 45(3):434–445, 2009.
132
A. Lodi, S. Martello, and M. Monaci. Two-dimensional packing problems: A survey. European
Journal of Operational Research, 141:3–13, 2002.
A. Lodi, S. Martello, M. Monaci, and D. Vigo. Paradigms of Combinatorial Optimization:
Problems and New Approaches, chapter Two-dimensional bin packing problems, pages
107–129. ISTE and John Wiley & Sons, 2010.
Helena R Lourenço, Olivier C Martin, and Thomas Stützle. Iterated local search: Framework
and applications. In Handbook of metaheuristics, pages 363–397. Springer, 2010.
Will Maden, Richard Eglese, and Dan Black.
Vehicle routing and scheduling with
time-varying data: A case study. Journal of the Operational Research Society, 61(3):
515–522, 2010.
D Alvarez Martı́nez, R Alvarez-Valdes, and F Parreño. A grasp algorithm for the container
loading problem with multi-drop constraints. Pesquisa Operacional, 35(1):1–24, 2015.
L. Martı́nez and C.A. Amaya. A vehicle routing problem with multi-trips and time windows
for circular items. Journal of the Operational Research Society, 2013.
A. McKinnon. Environmental sustainability: A new priority for logistics managers. In
A. McKinnon, S. Cullinane, Browne M, and A. Whiteing, editors, Green Logistics,
chapter 1, pages 3–30. Kogan Page, London, 2010.
L. Miao, Q. Ruan, K. Woghiren, and Q. Ruo. A hybrid genetic algorithm for the vehicle
routing problem with three-dimensional loading constraints. RAIRO - Operations Research,
46:63–82, 2012.
Guido JL Micheli and Fabio Mantella. Modelling an environmentally-extended inventory
routing problem with demand uncertainty and a heterogeneous fleet under carbon control
policies. International Journal of Production Economics, 204:316–327, 2018.
Chiung Moon, Jongsoo Kim, Gyunghyun Choi, and Yoonho Seo.
An efficient genetic
algorithm for the traveling salesman problem with precedence constraints.
Journal of Operational Research, 140(3):606–617, 2002.
133
European
A. Moura. Intelligent Decision Support, chapter A multi-objective genetic algorithm for the
vehicle routing with time windows and loading, pages 187–201. 2008.
A. Moura and J. F. Oliveira. An integrated approach to vehicle routing and container loading
problems. OR Spectrum, 31:775–800, 2009.
Leonidas Ntziachristos, Zissis Samaras, S Eggleston, N Gorissen, D Hassel, AJ Hickman, et al.
Copert iii. Computer Programme to calculate emissions from road transport, methodology
and emission factors (version 2.1), European Energy Agency (EEA), Copenhagen, 2000.
Manfred Padberg and Giovanni Rinaldi. An efficient algorithm for the minimum capacity
cut problem. Mathematical Programming, 47(1):19–36, 1990.
Andrew Palmer. The development of an integrated routing and carbon dioxide emissions
model for goods vehicles. 2007.
F. Parreno, R. Alvarez-Valdés, J. M. Tamarit, and J. F. Oliveira. Neighborhood structures
for the container loading problem: A vns implementation. Journal of Heuristics, 161:1–22,
2010.
Vangelis Th Paschos. Paradigms of combinatorial optimization: problems and new approaches,
volume 2. John Wiley & Sons, 2013.
Hanne Pollaris, Kris Braekers, An Caris, Gerrit K Janssens, and Sabine Limbourg. Vehicle
routing problems with loading constraints: state-of-the-art and future directions. OR
Spectrum, 37(2):297–330, 2015.
Jean-Yves Potvin.
Genetic algorithms for the traveling salesman problem.
Annals of
Operations Research, 63(3):337–370, 1996.
C. Prins. Two memetic algorithms for heterogeneous fleet vrp. Enieneering Applications of
Artificial Intelligence, 22:916–928, 2009.
Christian Prins.
A simple and effective evolutionary algorithm for the vehicle routing
problem. Computers Operations Research, 31(12):1985 – 2002, 2004. ISSN 0305-0548.
134
doi: http://dx.doi.org/10.1016/S0305-0548(03)00158-8. URL //www.sciencedirect.com/
science/article/pii/S0305054803001588.
Jiani Qian and Richard Eglese. Fuel emissions optimization in vehicle routing problems with
time-varying speeds. European Journal of Operational Research, 248(3):840–848, 2016.
Bernd Reisleben, Peter Merz, and B Freisleben. A genetic local search algorithm for solving
symmetric and asymmetric traveling salesman problems. In Evolutionary Computation,
1996., Proceedings of IEEE International Conference on, pages 616–621, May 1996. ISBN
0780329023.
M.G.C. Resende and C.C. Ribeiro. Handbook of Metaheuristics, chapter Greedy Randomized
Adaptive Search Procedures, pages 219–249. Kluwer, 2003.
Oscar L Domı́nguez Rivero, Angel A Juan Pérez, Ignacio A de la Nuez Pestana, and Djamila
Ouelhadj. An ils-biased randomization algorithm for the two-dimensional loading hfvrp
with sequential loading and items rotation. Journal of the Operational Research Society,
67(1):37–53, 2016.
Q. Ruan, Z. Zhang, L. Miao, and H. Shen. A hybrid approach for the vehicle routing
problem with three-dimensional loading constraints. Computers & Operations Research,
40:1579–1589, 2013.
Nikola Ruzinski, Natalija Koprivanac, Slaven Dobrovic, Gordana Stefanovic, Gilberto
Tavares, Zdena Zsigraiova, Viriato Semiao, and Maria da Graça Carvalho. A case study
of fuel savings through optimisation of MSW transportation routes.
Management of
Environmental Quality: An International Journal, 19(4):444–454, 2008.
V. Schmid, K.F. Doerner, and G. Laporte. Rich routing problems arising in supply chain
management. European Journal of Operational Research, 224:435–448, 2013.
Y. Shen and T. Murata. Pick-up scheduling of two-dimensional loading in vehicle routing
problem by using ga. In In Proceedings of the International MultiConference of Engineers
and Computer Scientists, IMECS 2012, volume 2, pages 1532–1537, 2012.
135
Lawrence V Snyder and Mark S Daskin. A random-key genetic algorithm for the generalized
traveling salesman problem. European journal of operational research, 174(1):38–53, 2006.
J. Strodl, K.F. Doerner, F. Tricoire, and R.F. Hartl. Hybrid Metaheuristics, Lecture Notes in
Computer Science, volume 6373, chapter On index structures in hybrid metaheuristics for
routing problems with hard feasibility checks: An application to the 2-dimensional loading
vehicle routing problem, pages 160–173. Springer Berlin Heidelberg, 2010.
Anand Subramanian, P Penna, Eduardo Uchoa, and Luiz Satoru Ochi. A hybrid algorithm
for the fleet size and mix vehicle routing problem. In International Conference on Industrial
Engineering and Systems Management, pages 414–427, 2011.
Anand Subramanian, Eduardo Uchoa, and Luiz Satoru Ochi. A hybrid algorithm for a class
of vehicle routing problems. Computers & Operations Research, 40(10):2519–2531, 2013.
Yoshinori Suzuki. A new truck-routing approach for reducing fuel consumption and pollutants
emission. Transportation Research Part D: Transport and Environment, 16(1):73–77, 2011.
Gilbert Syswerda. Schedule optimization using genetic algorithms. In Lawrence Davis, editor,
Handbook of Genetic Algorithms, pages 332–349, New York, 1991. Van Nostrand Reinhold.
Y. Tao and F. Wang. A new packing heuristic based algorithm for vehicle routing problem
with three-dimensional loading constraints. In Conference on Automation Science and
Engineering In 2010 IEEE International, 2010.
Yi Tao and Fan Wang. An effective tabu search approach with improved loading algorithms
for the 3l-cvrp. Computers Operations Research, 55:127 – 140, 2015. ISSN 0305-0548.
doi: http://dx.doi.org/10.1016/j.cor.2013.10.017. URL http://www.sciencedirect.com/
science/article/pii/S0305054813003122.
C. D. Tarantilis, E. E. Zachariadis, and C. T. Kiranoudis. A hybrid metaheuristic algorithm
for the integrated vehicle routing and three-dimensional container-loading problem. IEEE
Transactions on Intelligent Transportation Systems, 10:255–271, 2009.
P. Toth and D. Vigo. The granular tabu search and its application to the vehicle-routing
problem. INFORMS Journal on Computing, 15:333–346, 2003.
136
P. Toth and D. Vigo.
The Vehicle Routing Problem.
SIAM Monographs on Discrete
Mathematics and Applications, 2013.
Paolo Toth and Daniele Vigo. The vehicle routing problem. SIAM, 2002.
Paolo Toth and Daniele Vigo. Vehicle routing: problems, methods, and applications. SIAM,
2014.
S Ubeda, FJ Arcelus, and J Faulin. Green logistics at eroski: A case study. International
Journal of Production Economics, 131(1):44–51, 2011.
US Environmental Protection Agency (US-EPA). Inventory of us greenhouse gas emissions
and sinks: 1990–2008, 2010.
A. S. Vicente.
Laying the foundations for greener transport — TERM 2011: transport
indicators tracking progress towards environmental targets in Europe.
European
Environment Agency, Copenhagen, Denmark, 2011, 2011. ISBN 978-92-9213-230-9. doi:
10.2800/82592.
G. Wascher, H. Haubner, and H. Shchumann. A typology and classification of the 0most
important packing problems in one and higher dimensions. European Journal of Operational
Research, 183:1109–1130, 2007.
Yiyong Xiao, Qiuhong Zhao, Ikou Kaku, and Yuchun Xu. Development of a fuel consumption
optimization model for the capacitated vehicle routing problem. Computers & Operations
Research, 39(7):1419–1431, 2012.
Shuai Yuan, Bradley Skinner, Shoudong Huang, and Dikai Liu. A new crossover approach
for solving the multiple travelling salesmen problem using genetic algorithms. European
Journal of Operational Research, 228(1):72–82, 2013.
E. E. Zachariadis, C. D. Tarantillis, and C. T. Kiranoudis. A guided tabu search for the
vehicle routing problema with two dimensional loading constraints. European Journal of
Operational Research, 195:729–743, 2009.
137
Zhenzhen Zhang, Lijun Wei, and Andrew Lim.
An evolutionary local search for the
capacitated vehicle routing problem minimizing fuel consumption under three-dimensional
loading constraints. Transportation Research Part B: Methodological, 82:20–35, 2015.
W. Zhu, H. Qin, A. Lim, and L. Wang. A two-stage tabu search algorithm with enhanced
packing heuristics for the 3l-cvrp and m3l-cvrp. Computers & Operations Research, 39:
2178–2195, 2012.
138