Universidad Autónoma de Nuevo León: Facultad de Ingeniería Mecánica y Eléctrica Subdirección de Estudios de Posgrado
Universidad Autónoma de Nuevo León: Facultad de Ingeniería Mecánica y Eléctrica Subdirección de Estudios de Posgrado
Universidad Autónoma de Nuevo León: Facultad de Ingeniería Mecánica y Eléctrica Subdirección de Estudios de Posgrado
Por
en opción al grado de
Por
en opción al grado de
Agradecimientos xiii
Resumen xvi
1. Introducción 1
1.2. Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4. Hipótesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2. Revisión de literatura 9
v
Índice general vi
4. Metodología de solución 27
5. Experimentación y resultados 41
6.1. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
A. Tablas de resultados 81
A.3. Comparación del ALNS con los algoritmos heurísticos propuestos por
Amiri y Salari (2019) . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Índice de figuras
viii
Índice de figuras ix
5.7. Resultados reportados por CPLEX para el modelo propuesto por Ami-
ri y Salari (2019). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
x
Índice de tablas xi
5.9. Resultados del ALNS versus CPLEX para el modelo propuesto por
Amiri y Salari (2019). . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.10. Porcentajes de mejora de las soluciones obtenidas por ALNS con res-
pecto al constructivo. . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.12. Resultados del ALNS versus MIPStart para el modelo propuesto por
Amiri y Salari (2019). . . . . . . . . . . . . . . . . . . . . . . . . . . 69
5.14. Comparación del rendimiento del ALNS versus ILS, TS y VNS para
el conjunto de instancias grandes. . . . . . . . . . . . . . . . . . . . . 74
A.1. Continuación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
A.1. Continuación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
A.2. Continuación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
A.3. Continuación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
A.3. Continuación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Índice de tablas xii
A.3. Continuación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
A.6. Continuación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
A.6. Continuación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
A.7. Continuación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Doy gracias al Dr. Vincent Boyer y la Dra. Jania Saucedo, por formar parte
del comité de revisión de esta tesis y haber dedicado parte de su tiempo a la lectura
xiii
Agradecimientos xiv
Quiero agradecer a mis compañeros de generación por todas las veces que recibí
ayuda de parte de ellos, por su paciencia y consejos, por todas las experiencias que
compartimos y por la amistad que forjamos. También agradezco a mis amigos, que
a pesar de no vernos seguido, me mostraron siempre su apoyo.
Doy gracias a Mario Gutiérrez por convertirse en mi mejor amigo desde que lo
conocí en la licenciatura y recibir desde entonces su apoyo y consejos, por escuchar
mis presentaciones antes de cada congreso, seminario o clase y ayudarme a calmar
mis nervios, por prestarme atención cada vez que me emociono por algo nuevo que
aprendí o entendí, por estar presente con su apoyo, ánimos, felicitaciones y abrazos
cuando logro superar algunos de mis miedos o retos que se me presentan y las cosas
Agradecimientos xv
salen mejor de lo que esperaba, y cuando no, por motivarme a levantarme para no
rendirme y seguir intentándolo, por ayudarme a resolver mis problemas técnicos y
dudas y, sobre todo, por amarme. Por todo eso y más, gracias.
Resumen
xvi
Capítulo 1
Introducción
1
Capítulo 1. Introducción 2
límite.
visitado exactamente una vez por un solo vehículo para satisfacer su demanda y la
carga de cada vehículo no debe exceder su capacidad. El objetivo clásico es minimizar
el costo total de transportación.
Debido a que el problema que se estudia en esta tesis es clasificado como NP-
difícil (Amiri y Salari, 2019), este trabajo se dedica al desarrollo de un algoritmo
metaheurístico capaz de ofrecer soluciones de calidad en un tiempo razonable de
cómputo.
1.2 Objetivo
1.4 Hipótesis
Validación del modelo propuesto por Amiri y Salari (2018). Solución de las
instancias pequeñas, medianas y grandes proporcionadas por Amiri y Salari
(2019), haciendo uso del optimizador CPLEX 12.9, con la finalidad de revisar
el alcance del modelo matemático.
Revisión de literatura
En este capítulo se presenta el estado del arte del TCMCRP y otros trabajos
existentes en la literatura que comparten características con el problema de estu-
dio, comenzando con el clásico problema del agente viajero (TSP), sus variantes y
generalizaciones.
El problema del agente viajero, conocido también por sus siglas en inglés como
TSP (Flood, 1956), dispone de un conjunto de nodos (ciudades, clientes, localidades,
etc.) de los que se conoce la distancia entre cada par de ellos, de tal forma que un
9
Capítulo 2. Revisión de literatura 10
solo agente o vehículo debe visitarlos a todos en una ruta. El objetivo es encontrar
la ruta de menor costo que visite cada nodo exactamente una vez y regrese al nodo
origen. Este problema pertenece a la clase de problemas NP-difícil (Woeginger, 2003)
y es uno de los más clásicos y estudiados dentro de los problemas de optimización
combinatoria.
Hasta el día de hoy, el TSP ha sido utilizado para representar una gran variedad
de problemas dentro de los campos de la logística, industria, organización de datos,
robótica, entre otros. Algunos ejemplos de estas aplicaciones son las siguientes:
Planificación de rutas laborales y/o escolares. Determinar una ruta escolar óp-
tima, fue una de las primeras aplicaciones del TSP (Applegate et al., 2006). Actual-
mente existen empresas encargadas del transporte de personas, que hacen uso de
algún software que resuelve el problema del agente viajero con el objetivo de reducir
sus gastos de manera significativa.
Así como estas aplicaciones, existen muchas más, tales como el envío de pos-
tales, reparto de bienes o servicios, perforación de placas de los circuitos impresos
(Grötschel y Holland, 1991), etc. Además, el TSP ha aparecido en muchos otros
escenarios, como por ejemplo, en un problema de programación de una máquina
(Gilmore y Gomory, 1964), en un modelo para minimizar el desperdicio de un papel
tapiz (Garfinkel, 1977), problema de recolección de artículos en un almacén rectan-
gular (Ratliff y Rosenthal, 1983), planificación de la producción en la industria del
Capítulo 2. Revisión de literatura 12
Existen varias variantes del TSP, a continuación se presentan las más relevan-
tes:
TSP con múltiples visitas (Travelling Salesman Problem with Multiple visits,
TSPM). De la misma forma que el TSP clásico, este problema consiste en visitar
cada nodo al menos una vez, partiendo y regresando al nodo inicial, de tal manera
que se minimice la distancia total recorrida (Gutin y Punnen, 2007).
TSP con ventanas de tiempo (Traveling Salesman Problem with Time Win-
dows, TSPTW). Consiste en buscar la ruta que minimice costos, empezando y ter-
minando en el nodo origen y visitando a todos los clientes una sola vez, de acuerdo
Capítulo 2. Revisión de literatura 13
con un rango de tiempo predefinido que estos hayan establecido, conocida como ven-
tana de tiempo. No se permite visitar al cliente después de este intervalo de tiempo,
pero es posible llegar antes y esperar hasta poder empezar el servicio.
et al. (2011).
Como se ha visto, las aplicaciones del TSP y sus variantes van mucho más allá
de resolver un problema de planificación de rutas para un vendedor ambulante y
abarcan varias áreas de conocimiento como las matemáticas, ciencias de la compu-
tación, investigación de operaciones, ingeniería y electrónica (Gutin y Punnen, 2007).
El problema de ruteo de vehículos conocido como VRP por sus siglas en in-
glés es una generalización del TSP que surge por primera vez en 1959, por Dantzig
y Ramser (1959) quienes representaron una aplicación real relacionada con el pro-
blema de distribución de combustible a las estaciones de servicio y propusieron la
formulación matemática a este problema. En 1964 Clarke y Wright propusieron el
primer algoritmo que dio solución a este problema, conocido como el algoritmo de
los ahorros. Desde entonces es motivo de considerables investigaciones que han dado
lugar a diversos modelos y búsqueda de métodos de solución que sean cada vez más
eficientes.
Las variantes del VRP se clasifican en base a las características de los clientes,
depósitos, vehículos y de las restricciones operativas. Algunas de estas se explican a
continuación (Luna López, 2015; Recio Hernández, 2014):
VRP con ventanas de tiempo (Vehicle Routing Problem with Time Windows,
VRPTW). Cada cliente debe ser visitado dentro de un cierto rango de tiempo
predefinido, con el objetivo de minimizar la cantidad de vehículos utilizados,
el tiempo total de viaje y el tiempo de espera necesario para abastecer a todos
los clientes en sus respectivos horarios. Entre sus aplicaciones se encuentran la
entrega de comida, recolección de residuos y problema de ruteo del transporte
escolar.
VRP con recogida y entrega (Vehicle Routing Problem with Pick-up and Deli-
vering, VRPPD). Se incluye la recolección y entrega de mercancía en lugar de
solo entrega. Se contempla además, la posibilidad de que los clientes puedan
hacer devolución de la mercancía y por tal razón es necesario tomar en cuenta
Capítulo 2. Revisión de literatura 16
que el vehículo tenga espacio suficiente para los productos a entregar o las
devoluciones. El objetivo es encontrar rutas óptimas de visita a los lugares de
entrega y recolección para una flota de vehículos.
VRP con entregas divididas por diferentes vehículos (Split Delivery Vehicle
Routing Problem, SDVRP). Los clientes pueden ser abastecidos por distintos
vehículos, solamente si esto ayuda a reducir los costos totales de la ruta. El
objetivo es el diseño de rutas tal que se minimice la distancia total recorrida.
retornos (Vehicle Routing Problem with Backhauls, VRPB), VRP con entre-
gas divididas y ventanas de tiempo (Split Delivery Vehicle Routing Problem
with Time Windows, SDVRP), VRP con flota heterogénea (Vehicle Routing
Problem Heterogeneous Fleet, VRPHF), VRP con recogida y entrega con ven-
tanas de tiempo (Vehicle Routing Problem with Pick-up and Delivering and
Time Windows, VRPPDTW), VRP con tamaño de flota (Vehicle Routing Pro-
blem with Fleet Size, FSVRP), VRP con múltiples capacidades (Multi Capacity
Vehicle Routing Problem, MCVRP), entre otros.
En un marco de enrutamiento, puede no ser viable visitar a cada cliente por separado
debido a limitaciones de recursos o problemas de eficiencia. En tales casos, utilizando
la noción de cobertura; es decir, satisfacer la demanda de múltiples clientes visitando
una ubicación de un solo cliente, puede ser ventajoso.
Con respecto a la historia, Hakimi (1965) introduce por primera vez la noción
de cobertura en los modelos de ubicación de instalaciones. El objetivo era determinar
el mínimo número de policías necesarios para cubrir n nodos en una red de autopistas.
Este ha sido uno de los problemas más populares debido a su aplicación en la vida
real, especialmente en instalaciones de servicio y emergencia.
En el 2012, Golden et al. proponen una versión generalizada del CSP cuyo
objetivo es encontrar una ruta de costo mínimo sobre un subconjunto de vértices
de tal manera que cada vértice deber ser cubierto o visitado al menos k veces. Una
de sus aplicaciones está en los equipos de atención de salud en zonas rurales donde
los equipos solo pueden atender un número limitado de personas y por ello algunos
puntos deben ser visitados más de una vez.
dor con cobertura. En este problema se tienen tres tipos de vértices: obligatorios,
opcionales e inalcanzables (es decir, están dentro de una distancia específica de un
vértice visitado). El objetivo es construir una ruta de costo mínimo que debe visi-
tar cada vértice obligatorio y un subconjunto de vértices opcionales para cubrir los
vértices inalcanzables.
Por otra parte, Current y Schilling (1994) introducen dos problemas bi-objetivo
conocidos como problema del recorrido medio (Median Tour Problem, MTP) y el pro-
blema del recorrido de máxima cobertura (Maximal Covering Tour Problem, MCTP).
En ambos problemas el recorrido debe visitar solo i de los n nodos en la red. Además,
ambos tienen como primer objetivo minimizar de la duración total del recorrido. El
segundo objetivo es maximizar el acceso de las rutas a los nodos que no fueron visi-
tados. Este objetivo en el MTP, se realiza minimizando la distancia total recorrida
desde los nodos no incluidos directamente en la ruta hasta la parada más cercana
a la ruta, mientras que en el MCTP el objetivo se logra maximizando la demanda
total dentro de una distancia máxima de viaje preespecificada desde una parada de
la ruta. Estos dos problemas tienen aplicación en la prestación de asistencia sanitaria
rural, el diseño de redes informáticas distribuidas y el diseño sistemas que prestan
servicios móviles.
En sus orígenes, el TCMCRP fue estudiado por primera vez en el 2019 por
Amiri y Salari, como la generalización del TCMCSP, en el que se consideran varios
vehículos en lugar de uno solo, debido a que en la práctica se suele contar con
varios vehículos. Propusieron un modelo de programación lineal entera mixta y tres
algoritmos heurísticos, búsqueda local iterada (Iterated Local Search, ILS), búsqueda
tabú (Tabu Search, TS) y búsqueda de vecindad variable (Variable Neighborhood
Search, VNS), para resolver el problema.
22
Capítulo 3. Descripción y modelación del problema 23
Conjuntos
T : Conjunto de instalaciones.
W : Conjunto de clientes.
P : Conjunto de vehículos homogéneos.
Capítulo 3. Descripción y modelación del problema 24
Parámetros
Variables de decisión
1 si se visita la instalación j después de la i
xijk = por el vehı́culo k ∀i, j ∈ {0} ∪ T, k ∈ P
0 en otro caso;
1 si el cliente i es asignado a la instalación j
zijk = cuando es visitada por el vehı́culo k ∀i ∈ W, j ∈ T, k ∈ P
0 en otro caso;
1 si la instalación j es visitada por el vehı́culo k ∀j ∈ T, k ∈ P
yjk =
0 en otro caso;
Función objetivo
XXX
Max dij zijk (3.1)
i∈W j∈T k∈P
sujeto a:
X X
tij xijk 6 Lk ∀k ∈ P (3.2)
i∈T ∪{0} j∈T ∪{0}
Capítulo 3. Descripción y modelación del problema 25
X X
xijk = xjik = yjk ∀j ∈ T, ∀k ∈ P (3.3)
i∈T ∪{0} i∈T ∪{0}
X
xj0k = 1 ∀k ∈ P (3.4)
j∈T ∪{0}
X
x0jk = 1 ∀k ∈ P (3.5)
j∈T ∪{0}
conjunto de restricciones (3.9) - (3.13) prohíben los subtours. Las restricciones (3.9)
indican la conservación de flujo. Las restricciones (3.10) - (3.15) son desigualdades
válidas. Las restricciones (3.10) indican que el tiempo total acumulado desde el de-
pósito a cualquier instalación i ∈ T , es igual al tiempo de traslado del depósito a
i. Las restricciones (3.11) representan que el tiempo acumulado desde el depósito
central a la instalación i ∈ T cuando es utilizado el vehículo k ∈ P no puede exceder
de Lk . El conjunto de restricciones (3.12) establecen un límite superior para fijk que
asegura que la última instalación en la ruta k pueda regresar al depósito, mientras
que las restricciones (3.13) establecen un límite inferior para fijk que muestra que
el tiempo total acumulado hasta j debe ser mayor o igual a la suma del tiempo
desde el depósito hasta i y el tiempo entre i y j. Las restricciones (3.14) no permi-
ten subtours entre dos instalaciones. Las restricciones (3.15) aseguran que se debe
visitar la instalación j si la instalación j es visitada por el vehículo k. Finalmente,
las restricciones (3.16) - (3.19) especifican el tipo de variables de decisión.
Capítulo 4
Metodología de solución
27
Capítulo 4. Metodología de solución 28
Paso 1. Se comienza con una solución inicial que puede provenir de alguna
heurística constructiva o metaheurística. Posteriormente, la solución inicial
pasa a ser solución actual. Además, se define n como el número de iteraciones
para la actualización de las probabilidades de elección de los operadores.
Paso 2. Se establece el criterio de paro para el ALNS, este puede ser un nú-
mero de iteraciones, tiempo límite o un número de iteraciones consecutivas sin
mejora.
Capítulo 4. Metodología de solución 30
Paso 4. Una vez que se hace la selección de operadores en base a sus proba-
bilidades, se procede a aplicarlos para destruir la solución actual, generar una
solución parcial y repararla, dando origen a una solución nueva. Cabe destacar
que, las probabilidades de selección de cada uno de los operadores de destruc-
ción y reparación dependen del desempeño obtenido en las iteraciones previas
del ALNS.
tar una unidad si hay un empate entre estos dos valores y como penalidad
aumentar cero unidades si el valor de la función objetivo de solución nue-
va es menor que el valor de solución actual. Esto tiene como finalidad ir
sumándole más peso a los operadores que van teniendo un buen desem-
peño en cada iteración y de esta manera, aumentar la probabilidad de ser
elegidos.
En el primer paso del ALNS se obtiene una solución inicial del problema ha-
ciendo uso de una heurística constructiva, es decir, se obtiene la solución de forma
gradual incorporando en cada iteración el elemento con mejor contribución local a la
calidad de la misma. Dicha contribución se mide mediante una función de evaluación.
Algoritmo 1 Constructivo
Entrada: Instancia
Salida: Solución factible X
1: X←∅
2: tij ←Tiempo de traslado de la instalación i a la instalación j
3: Sea T ak el tiempo acumulado utilizando el vehículo k
4: T ak ← 0
5: Sea N el conjunto de instalaciones no visitadas
6: Sea i0 el depósito inicial
7: Sea if el depósito final
8: Para cada vehículo k hacer
9: Mientras T ak < Lk y |N | =
6 0 hacer
10: Vecindario← N
11: Buscar ← True
12: Mientras Buscar y |Vecindario|6= 0 hacer
13: Elegir j ∗ tal que j ∗ = argmaxj∈V ecindario f (j)
14: Si hay empate de j ∗ , tomar la de menor distancia a la última instalación
visitada
15: Si ti0 j ∗ + tj ∗ if 6 Lk entonces
X ← X {j ∗ }
S
16:
17: T ak ← T ak + ti0 j ∗
18: N ← N \ {j ∗ }
19: i0 ← j ∗
20: Actualizar f (j) eliminando los clientes que ya han sido cubiertos por
la instalación j ∗
21: Buscar ← False
22: Si no
23: Vecindario ← Vecindario\{j ∗ }
24: Fin Si
25: Fin Mientras
26: Fin Mientras
27: Fin Para
Capítulo 4. Metodología de solución 34
Coj : Conjunto de clientes que son cubiertos por la instalación j cuando aún
no se han insertado instalaciones a las rutas (cobertura original). Por ejemplo,
en la Figura 4.3 se tiene que Co1 = {9, 10, 11, 12, 13}.
2. Eliminar instalaciones con menor cobertura por tiempo. Este destructor asigna
|Cj |
un coeficiente a cada instalación visitada j, dado por αj = , donde i y
tij + tjk
k son instalaciones que fueron visitadas antes y después de j, respectivamente.
Se elimina el 50 % de las instalaciones con menor cociente.
4. Eliminar instalaciones con menor cobertura única. Dado que más de una ins-
|Cuj |
talación puede visitar a un mismo cliente, se define βj = para cada
|Coj |
instalación visitada j, como el porcentaje de clientes únicos. Se elimina el 50 %
de las instalaciones visitadas con menor cociente.
5. Eliminar la instalación con mayor tiempo de visita. Para cada ruta, se determi-
na cuál es la instalación j que tiene mayor tiempo de visita, es decir, el tiempo
Capítulo 4. Metodología de solución 38
8. Eliminar las k instalaciones con peor cobertura. Para cada ruta, se eliminan
las dos instalaciones con menor cobertura actualizada |Cj |.
9. Eliminar la localidad con mayor cobertura. Para cada ruta, con la finalidad de
hacer una pequeña perturbación, se elimina la instalación j que tiene mayor
cobertura actualizada |Cj |.
3. Mejor inserción con menor incremento en tiempo. Para las instalaciones que
aún no han sido visitadas, se verifica qué instalación insertar en qué ruta y
posición, de tal manera que dicha inserción tenga el menor incremento en
tiempo entre todas aquellas posibles inserciones.
4. Mejor inserción con mayor incremento en cobertura por tiempo. Para las ins-
talaciones que aún no han sido visitadas, se verifica qué instalación insertar
en qué ruta y posición, de tal manera que dicha inserción tenga el mayor in-
|Ck |
cremento en cobertura por unidad de tiempo, dado por θk,i,j = ,
tik + tkj − tij
entre todas aquellas posibles inserciones.
Solución Peso
Mejor +4
Alcance (igual) +1
Peor +0
Capítulo 5
Experimentación y resultados
41
Capítulo 5. Experimentación y resultados 42
Vehículos
Instancias Nodos Instalaciones Total
2 3 4
52 15, 20 y 25 8 9 9
Pequeñas 76 22, 30 y 37 9 9 9 80
100 29, 39 y 49 9 9 9
150 44, 59 y 74 9 9 9
Medianas 53
200 59, 79 y 99 9 9 8
318 95, 127 y 158 9 9 9
417 125, 166 y 208 9 9 9
Grandes 135
575 172, 229 y 287 9 9 9
657 197, 262 y 328 9 9 9
724 217, 289 y 361 9 9 9
En las Figuras 5.1, 5.2 y 5.3 se visualiza la dispersión geográfica del depósito,
instalaciones y clientes de una instancia con 100, 200 y 724 nodos, respectivamente.
2000 Depósito
Instalaciones
1750 Clientes
1500
1250
1000
750
500
250
0
0 500 1000 1500 2000 2500 3000 3500 4000
2000 Depósito
Instalaciones
1750 Clientes
1500
1250
1000
750
500
250
0
0 500 1000 1500 2000 2500 3000 3500 4000
Figura 5.2: Ejemplo de topografía de una instancia con 99 instalaciones y 100 clientes.
Depósito
2200 Instalaciones
Clientes
2000
1800
1600
1400
1200
1000
800
Figura 5.3: Ejemplo de topografía de una instancia con 217 instalaciones y 506
clientes.
Capítulo 5. Experimentación y resultados 45
ción de las probabilidades, se realizaron tres diseños factoriales con dos factores para
las instancias pequeñas, medianas y grandes, con el objetivo de analizar como la
variabilidad de estos factores afecta la calidad de las soluciones y el tiempo compu-
tacional requerido por el ALNS. El primer factor es el criterio de paro, consideramos
500, 1000, 1500, 2000 y 2500 iteraciones; el segundo factor es el período utilizado
para la actualización de las probabilidades, en el cual se consideraron periodos de 50
y 100 iteraciones. Para cada conjunto de instancias (pequeñas, medianas y grandes),
con cada configuración, se realizaron diez réplicas y se calculó el número de veces
que se alcanzó o superó el mejor valor de la función objetivo encontrado por CPLEX
(ver Sección 5.4) para cada una de las instancias del conjunto, el tiempo de ejecución
y el máximo GapA,C ( %) por réplica, donde el GapA,C ( %) se calcula de acuerdo a
la ecuación (5.1). Debido a las inconsistencias que presentan algunas instancias y las
tablas de resultados reportadas en el trabajo de Amiri y Salari (2019) se trabajó con
los resultados obtenidos al validar el modelo con el optimizador CPLEX. Sin embar-
go, CPLEX no logra alcanzar una solución factible para varias instancias grandes,
por lo que solo se han utilizado las instancias para las cuales CPLEX reporta una
solución.
ZC − ZA
GapA,C ( %) = 100 × , (5.1)
ZC
Número de iteraciones
Niveles
para el criterio de paro
1 500
2 1000
3 1500
4 2000
5 2500
1 50 iteraciones
2 100 iteraciones
Por otra parte, para cada nivel del factor 1 se observa un comportamiento
creciente en el número de veces que se alcanza o supera la mejor solución varian-
do los períodos de actualización en las instancias pequeñas, mientras que para las
Capítulo 5. Experimentación y resultados 48
instancias medianas en cada una de las iteraciones del criterio de paro no se tiene
necesariamente que a mayor número de iteraciones en los períodos de actualización,
mayor número de soluciones alcanzadas, esto se puede observar en la configuración
con 1500 iteraciones para el criterio de paro con períodos de actualizacion de 50 y
100 iteraciones. Para las instancias grandes se alcanza o supera el mismo número de
soluciones para las distintas configuraciones.
Aunado a este análisis, se tiene que para cada conjunto de instancias el máximo
GapA,C ( %) es el mismo o presenta pequeñas variaciones en cada una de las posibles
configuraciones.
79
120
78
conocidas alcanzadas
100
Num. Soluciones
Tiempo (seg)
77
Iteraciones Iteraciones
500 500
80
1000 1000
76
1500 1500
2000 2000
2500 60 2500
75
74 40
73
20
50 100 50 100
Actualización Actualización
7
Máximo GapA C (%)
Iteraciones
6
,
500
1000
5 1500
2000
2500
50 100
Actualización
51
400
50
350
conocidas alcanzadas
Num. Soluciones
Tiempo (seg)
49 300
Iteraciones Iteraciones
500 500
1000 1000
250
48
1500 1500
2000 2000
150
46
100
45
50 100 50 100
Actualización Actualización
6
Máximo GapA C (%)
Iteraciones
,
5
500
1000
1500
2000
4
2500
50 100
Actualización
92.15
3500
92.10
3000
conocidas alcanzadas
Num. Soluciones
Tiempo (seg)
92.05
Iteraciones 2500 Iteraciones
500 500
1000 1000
92.00
1500 1500
2000
2000 2000
2500 2500
91.95
1500
91.90
1000
91.85
500
50 100 50 100
Actualización Actualización
0.0015
0.0010
Máximo GapA C (%)
0.0005
Iteraciones
,
500
1000
0.0000
1500
2000
2500
−0.0005
−0.0010
−0.0015
50 100
Actualización
Medidas de desempeño
Medidas de desempeño
Medidas de desempeño
La Tabla 5.4 muestra las mejores configuraciones para las tres medidas de
desempeño del conjunto de instancias pequeñas, resultando aquella con 2000 itera-
ciones ALNS y períodos de actualización de 100 iteraciones, en cada una de estas
medidas.
Para llevar a cabo la validación del modelo, las instancias son resueltas me-
diante el optimizador CPLEX versión 12.8 usando un solo hilo. Son considerados
dos criterios de paro para cada una de las instancias: el tiempo de cómputo (7200 s)
o la calidad de la solución (Gap de 0.5 %).
Tabla 5.7: Resultados reportados por CPLEX para el modelo propuesto por Amiri
y Salari (2019).
medianas. En el caso de las instancias grandes, a pesar de que se tenga un gap pro-
medio del 0.11 % y un gap máximo de 6.40 %, CPLEX encontró optimalidad para el
65.93 %, sin embargo, para el 31.85 % (43 instancias), este no fue capaz de encontrar
una solución entera al problema dentro del tiempo límite y, en consecuencia, no es
posible calcular un gap.
El gap, en porcentaje, que existe entre la mejor solución reportada por CPLEX
y la encontrada con el ALNS, es decir, GapA,C ( %), se mide de acuerdo a la ecuación
(5.1).
De esta forma, dado que la función objetivo del modelo es maximizar, un gap
negativo indica que el valor de la función objetivo obtenido por la metaheurística es
más alto que el de la mejor solución encontrada por CPLEX en 7200 segundos, en tal
caso la solución reportada por el optimizador no sería óptima, sino entera factible.
Para un análisis más detallado se han incluido en el Apéndice A.1 los resultados
de la experimentación realizada con el optimizador CPLEX y la metaheurística tipo
ALNS, de cada una de las 268 instancias proporcionadas por Amiri y Salari (2019).
Capítulo 5. Experimentación y resultados 58
Tabla 5.9: Resultados del ALNS versus CPLEX para el modelo propuesto por Amiri
y Salari (2019).
De la tabla anterior se puede notar que, en promedio, los resultados del al-
goritmo para las instancias pequeñas se muestran competitivos con los resultados
obtenidos por CPLEX. Sin embargo, en los tiempos de ejecución de este conjun-
to se tiene un ahorro considerable, el ALNS utiliza aproximadamente 0.35 % del
tiempo total que el optimizador emplea para obtener las soluciones del conjunto de
instancias pequeñas.
Ahora bien, cabe destacar que de un total de 203 óptimos reportados por
CPLEX, el método propuesto logró alcanzar 198, es decir, aproximadamente 2 %
menos que el optimizador. Además, logró mejorar los valores de la función objetivo
de 56 instancias, alcanzando un máximo de 7.14 % de mejora. En los tiempos de
Capítulo 5. Experimentación y resultados 59
ZV − ZA
ImpV,A ( %) = 100 × , (5.2)
ZA
De esta manera, una mejora negativa indica que el valor de la función objetivo
obtenido por el ALNS es mayor que el valor obtenido por el constructivo.
Tabla 5.10: Porcentajes de mejora de las soluciones obtenidas por ALNS con respecto
al constructivo.
ImpV,A ( %)
Instancias
Min Prom Max
Pequeñas -23.91 -3.41 0.00
Medianas -31.00 -9.97 0.00
Grandes 0.00 0.00 0.00
Para evaluar el rendimiento que tuvo cada uno de los operadores de destrucción
y reparación implementados para el algoritmo ALNS, para cada uno de los conjuntos
de instancias, se calculó el total de veces que fue utilizado cada operador y las
veces que este alcanzó (igual) o mejoró (estrictamente mayor) el valor de la función
objetivo de la solución actual. De esta manera, en las Figuras 5.7, 5.8 y 5.9 se
presentan los porcentajes de mejora, alcance y uso total, en color amarillo, verde y
azul, respectivamente. Además, el valor de n significa el total de veces que se usó
dicho operador.
De la Figura 5.7 se resalta que los operadores que tuvieron mayor porcentaje de
mejora en el conjunto de instancias pequeñas fueron el destructor 2, utilizado 11572
veces y el reparador 1 con 33647 veces, ambos con un porcentaje de mejora del
0.14 % y 0.04 % con un porcentaje de alcance del 81 % y 98 %, respectivamente. Así
Capítulo 5. Experimentación y resultados 61
mismo, para las instancias medianas los operadores con mayor desempeño fueron el
destructor 3 y reparador 2 con un porcentaje de mejora del 0.35 % y del 0.17 %, esto
se puede observar en la Figura 5.8. Sin embargo, en la Figura 5.9 es evidente que para
las instancias grandes no se reportaron mejoras de la solución actual, por ejemplo,
de las 60314 veces que se utilizó el reparador 4, se tuvó un alcance del 99 %, esto
quiere decir que, el 99 % de las veces, el valor objetivo de la solución resultante del
ALNS fue igual al valor obtenido con la solución actual, que en este caso, dado que
no hubo mejoras, corresponden a los valores obtenidos con el algoritmo constructivo,
mientras que el 1 % restante, la solución tuvo un valor objetivo menor con respecto
a la solución actual. De la misma manera, se realiza un análisis similar para el resto
de los operadores.
0% 100% 0% 100%
Porcentaje Porcentaje
Reparador
D3 0.35% 72% n=4603 R3 0.11% 91% n=27060
0% 100% 0% 100%
Porcentaje Porcentaje
0% 100% 0% 100%
Porcentaje Porcentaje
Las Figuras 5.10, 5.11 y 5.12 muestran el rendimiento de las diferentes combi-
naciones de los operadores de destrucción y reparación. En el conjunto de instancias
Capítulo 5. Experimentación y resultados 63
Reparador 1 Reparador 2
D11 0.0% 95% n=2796 D11 0.0% 100%n=4797
Destructor
D7 0.0% 92% n=2736 D7 0.0% 99% n=3873
0% 100% 0% 100%
Porcentaje Porcentaje
Reparador 3 Reparador 4
D11 0.01% 90% n=2716 D11 0.0% 84% n=2354
Destructor
D7 0.0% 90% n=2734 D7 0.0% 91% n=2459
0% 100% 0% 100%
Porcentaje Porcentaje
Reparador 5
D11 0.01% 58% n=917
D3 23% n=581
D2 35% n=824
D1 71% n=1151
0% 100%
Porcentaje
Figura 5.10: Rendimiento por parejas de cada uno de los operadores en el conjunto
de instancias pequeñas.
Capítulo 5. Experimentación y resultados 65
Reparador 1 Reparador 2
D11 0.0% 96% n=3593 D11 0.0% 100%n=4900
Destructor
D7 0.01% 95% n=3524 D7 0.01% 100%n=4572
0% 100% 0% 100%
Porcentaje Porcentaje
Reparador 3 Reparador 4
D11 0.01% 95% n=3577 D11 0.01% 91% n=1543
Destructor
D7 0.0% 92% n=3352 D7 0.02% 87% n=1278
0% 100% 0% 100%
Porcentaje Porcentaje
Reparador 5
D11 0.0% 47% n=259
D3 0% n=165
D2 1% n=178
D1 2% n=202
0% 100%
Porcentaje
Figura 5.11: Rendimiento por parejas de cada uno de los operadores en el conjunto
de instancias medianas.
Capítulo 5. Experimentación y resultados 66
Reparador 1 Reparador 2
D11 0.0% 100%n=5905 D11 0.0% 100%n=5846
Destructor
D7 0.0% 100%n=6192 D7 0.0% 100%n=5869
0% 100% 0% 100%
Porcentaje Porcentaje
Reparador 3 Reparador 4
D11 0.0% 100%n=5584 D11 0.0% 99% n=5504
Destructor
D7 0.0% 100%n=5769 D7 0.0% 100%n=5949
0% 100% 0% 100%
Porcentaje Porcentaje
Reparador 5
D11 0.0% 96% n=2462
D4 0.0% 100%n=2830
D3 11% n=1885
D2 35% n=2019
D1 65% n=2365
0% 100%
Porcentaje
Figura 5.12: Rendimiento por parejas de cada uno de los operadores en el conjunto
de instancias grandes.
Capítulo 5. Experimentación y resultados 67
Cabe aclarar que para realizar esta experimentación, las soluciones iniciales
dadas a CPLEX se obtuvieron ejecutando de nuevo el algoritmo ALNS con los
parámetros ya establecidos, por lo que los resultados obtenidos por el ALNS en la
Sección 5.5 no son los mismos.
Tabla 5.11: Resultados de MIPStart versus CPLEX para el modelo propuesto por
Amiri y Salari (2019).
En total, haciendo uso de inicios MIP, el optimizador fue capaz de encontrar 258
óptimos usando el modelo, esto representa 96 % del total de instancias y 10 soluciones
enteras factibles, utilizando tan solo 14 % (1 día) del tiempo que CPLEX por sí solo
emplea para tratar de resolver las 268 instancias, de las cuales pudo encontrar 77
soluciones óptimas, 3 factibles y en 43 instancias no encontró una solución entera
dentro del tiempo límite dado.
Por otra parte, cabe resaltar que de acuerdo a los resultados obtenidos por
el ALNS en la Sección 5.5 se realiza nuevamente un análisis de estos resultados
en comparación con lo que reporta CPLEX al usar el parámetro MIPStart. En la
Capítulo 5. Experimentación y resultados 69
ZA − ZM S
GapA,M ( %) = 100 × , (5.3)
ZM S
En las dos últimas columnas de la Tabla 5.12 se muestran los óptimos obtenidos
con MIPStart y los alcanzados con el ALNS en comparación con los de MIPStart. Pa-
ra las instancias pequeñas la metaheurística alcanzó 73 óptimos de los 78 reportados
al utilizar MIPStart, 42 de los 45 óptimos reportados para las instancias medianas,
mientras que para las instancias grandes el ALNS alcanzó todos los óptimos de los
135 reportados, dando un total de 250 óptimos que el ALNS fue capaz de alcanzar
de los 258 reportados con MIPStart. En las Figuras 5.13-5.15 se muestran los valores
de la función objetivo obtenidos por CPLEX, MIPStart y ALNS, para cada una de
las instancias.
Tabla 5.12: Resultados del ALNS versus MIPStart para el modelo propuesto por
Amiri y Salari (2019).
GapA,M ( %) Óptimos
Instancias
Min Prom Max MIPStart ALNS/MIPStart
Pequeñas 0.00 0.30 7.41 78/80 73/78
Medianas 0.00 0.16 4.29 45/53 42/45
Grandes 0.00 0.00 0.00 135/135 135/135
Total 250/258
mínimo, promedio y máximo de las soluciones obtenidas por CPLEX versus las so-
luciones obtenidas haciendo uso de MIPStart para CPLEX. Para ello, los resultados
se obtuvieron con la ecuación (5.4).
ZC − ZM S
ImpM,C ( %) = 100 × , (5.4)
ZC
De esta manera, un gap negativo indica que el valor de la función objetivo ob-
tenido utilizando MIPStart es mayor (mejor) que el de la mejor solución encontrada
por CPLEX.
Tabla 5.13: Porcentajes de mejora de las soluciones obtenidas por CPLEX con res-
pecto al MIPStart.
ImpM,C ( %)
Instancias
Min Prom Max
Pequeñas 0.00 0.00 0.00
Medianas -8.16 -0.54 2.02
Grandes -6.40 -0.11 0.00
50
40
30
F.O
20
10
0
1 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80
Instancia
100
90
F.O
80
70
60
50
1 5 10 15 20 25 30 35 40 45 50 55
Instancia
200
150
F.O
100
50
0
1 10 20 30 40 50 60 70 80 90 100 110 120 130 140
Instancia
En las Tablas A.1 a A.3 del Apéndice A.1 se exponen a detalle los resultados
obtenidos para cada una de las instancias con CPLEX, ALNS y MIPStart.
función objetivo promedio obtenida al haber ejecutado cinco veces cada algoritmo
heurístico para el conjunto de instancias grandes, para el ALNS se realizó lo mismo,
tomando en cuenta las primeras cinco réplicas de la experimentación realizada en
la Sección 5.3 con la mejor configuración obtenida (criterio de paro de 2000 itera-
ciones con períodos de actualización de las probabilidades cada 100 iteraciones) y
obteniendo el promedio de las mismas.
En la Tabla 5.14 se muestran los resultados del análisis de los algoritmos, donde
en la segunda, tercera y cuarta columna se muestra para cada algoritmo el Gap
promedio ( %) mínimo, promedio y máximo, respectivamente. Dado que se conocen
los óptimos para las 106 instancias con las que se realiza la comparación, el Gap
promedio ( %) de un algoritmo x se calcula con respecto al óptimo, de acuerdo a la
ecuación (5.5).
ZM S − Z¯x
Gap ( %) = 100 × , (5.5)
ZM S
Tabla 5.14: Comparación del rendimiento del ALNS versus ILS, TS y VNS para el
conjunto de instancias grandes.
Gap ( %)
Algoritmo Óptimos
Min Prom Max
ALNS 0.00 0.00 0.00 106/106
ILS 0.00 0.43 17.31 91/106
VNS 0.00 0.44 15.38 92/106
TS 0.00 0.00 0.00 106/106
Para un análisis más detallado se han incluido en el Apéndice A.3 los resultados
de la experimentación realizada y los obtenidos por Amiri y Salari (2019) para cada
una de las 135 instancias.
Capítulo 6
En este Capítulo se presentan las conclusiones del trabajo y las posibles ex-
tensiones que podrían mejorar la calidad de los resultados obtenidos y así ampliar
el alcance de la investigación.
6.1 Conclusiones
75
Capítulo 6. Conclusiones y trabajo futuro 76
Por otra parte, para las 106 instancias grandes que son comparables con los
resultados de la literatura, el ALNS muestra resultados competitivos con el TS (al-
goritmo que tuvo el mejor rendimiento de entre los propuestos por Amiri y Salari
(2019)), ambos obteniendo un buen desempeño y alcanzando el óptimo en las cinco
ejecuciones realizadas para cada instancia.
79
120
78
conocidas alcanzadas
100
Num. Soluciones
Tiempo (seg)
77
Iteraciones Iteraciones
500 500
80
1000 1000
76
1500 1500
2000 2000
2500 60 2500
75
74 40
73
20
Actualización Actualización
7
Máximo GapA C (%)
Iteraciones
6
,
500
1000
5 1500
2000
2500
50 100 150
Actualización
52
400
51
conocidas alcanzadas
350
Num. Soluciones 50
Tiempo (seg)
Iteraciones 300 Iteraciones
500 500
49
1000 1000
48 2000 2000
2500 2500
200
47
150
46
100
45
Actualización Actualización
6
Máximo GapA C (%)
5
Iteraciones
,
500
1000
4
1500
2000
2500
50 100 150
Actualización
92.15
3500
92.10
3000
conocidas alcanzadas
Num. Soluciones
Tiempo (seg)
92.05
Iteraciones 2500 Iteraciones
500 500
1000 1000
92.00
1500 2000 1500
2000 2000
2500 2500
91.95
1500
91.90 1000
91.85 500
Actualización Actualización
0.0015
0.0010
Máximo GapA C (%)
0.0005
Iteraciones
,
500
1000
0.0000
1500
2000
2500
−0.0005
−0.0010
−0.0015
50 100 150
Actualización
Por último, dada la importancia actual del medio ambiente, se pretende exten-
der el problema de estudio diseñando un modelo matemático que logre incorporar
aspectos ambientales. De esta manera, se pretende resolver el problema mediante la
resolución secuencial de dos problemas de optimización, el primero de ellos teniendo
como objetivo cubrir la máxima cantidad de clientes, mientras que el segundo intenta
minimizar las emisiones de CO2 .
Apéndice A
Tablas de resultados
En este apéndice se presentan las tablas que contienen los resultados detallados
de los experimentos computacionales realizados en este trabajo.
81
Apéndice A. Tablas de resultados 82
Cabe recordar que un gap negativo indica que el valor de la función objetivo
obtenido por la metaheurística es más alto que el de la mejor solución encontrada
por CPLEX en 7200 segundos, en tal caso la solución reportada por el optimizador
no sería óptima, sino entera factible.
Apéndice A. Tablas de resultados 83
Tabla A.1: Resultados obtenidos por CPLEX, ALNS y MIPStart para el conjunto
de instancias pequeñas.
Tabla A.2: Resultados obtenidos por CPLEX, ALNS y MIPStart para el conjunto
de instancias medianas.
Tabla A.3: Resultados obtenidos por CPLEX, ALNS y MIPStart para el conjunto
de instancias grandes.
ZAS − ZB
Gap ( %) = 100 × , (A.1)
ZAS
ZC+ − ZB
Gap ( %) = 100 × , (A.2)
ZC+
Apéndice A. Tablas de resultados 93
ZE++ − ZB
Gap ( %) = 100 × , (A.3)
ZE++
Tabla A.6: Detalles de resultados obtenidos por Amiri y Salari (2019) y Sinnl (2019)
para el conjunto de instancias pequeñas.
Input2-0-0-1 15 15 15 15 0 0 0
Input2-0-0-2 12 12 12 12 0 0 0
Input2-0-0-4 11 11 11 11 0 0 0
Input2-0-0-5 9 9 9 9 0 0 0
Input2-0-0-6 8 8 8 8 0 0 0
Input2-0-0-7 8 8 8 8 0 0 0
Input2-0-0-8 8 8 8 8 0 0 0
Input2-0-0-9 1 1 1 1 0 0 0
Input2-1-0-1 15 15 15 15 0 0 0
Input2-1-0-2 15 15 15 15 0 0 0
Input2-1-0-3 14 14 14 14 0 0 0
Input2-1-0-4 13 13 13 13 0 0 0
Input2-1-0-5 13 13 13 13 0 0 0
Input2-1-0-6 12 12 12 12 0 0 0
Input2-1-0-7 10 10 10 10 0 0 0
Input2-1-0-8 9 9 9 9 0 0 0
Input2-1-0-9 9 9 9 9 0 0 0
Input2-2-0-1 20 20 20 20 0 0 0
Input2-2-0-2 19 19 19 19 0 0 0
Input2-2-0-3 18 18 18 18 0 0 0
Input2-2-0-4 17 17 17 17 0 0 0
Input2-2-0-5 15 15 15 15 0 0 0
Input2-2-0-6 15 15 15 15 0 0 0
Input2-2-0-7∗∗ 15 14 15 15 - 0 0
Input2-2-0-8∗∗ 14 11 14 14 - 0 0
Input2-2-0-9∗∗ 11 12 11 11 - 0 0
Input5-0-0-1 12 12 12 12 0 0 0
Input5-0-0-2 12 12 12 12 0 0 0
Input5-0-0-3 10 10 10 10 0 0 0
Input5-0-0-4 10 10 10 10 0 0 0
Input5-0-0-5 7 7 7 7 0 0 0
Input5-0-0-6 7 7 7 7 0 0 0
Input5-0-0-7 5 5 5 5 0 0 0
Apéndice A. Tablas de resultados 96
Tabla A.7: Detalles de resultados obtenidos por Amiri y Salari (2019) y Sinnl (2019)
para el conjunto de instancias medianas.
Tabla A.8: Detalles de resultados obtenidos por Amiri y Salari (2019) y Sinnl (2019)
para el conjunto de instancias grandes.
G-Input2-0-0-1 58 58 58 58 0 0 0
G-Input2-0-0-2 54 54 54 54 0 0 0
G-Input2-0-0-3 58 - 58 58 - 0 0
G-Input2-0-0-4 58 58 58 58 0 0 0
G-Input2-0-0-5 58 - 58 58 - 0 0
G-Input2-0-0-6 57 - 57 57 - 0 0
G-Input2-0-0-7 57 - 57 57 - 0 0
G-Input2-0-0-8 59 - 59 59 - 0 0
G-Input2-0-0-9 60 - 60 60 - 0 0
G-Input2-1-0-1 63 62 63 63 -1.61 0 0
G-Input2-1-0-2 64 64 64 64 0 0 0
G-Input2-1-0-3 65 - 65 65 - 0 0
G-Input2-1-0-4 63 63 63 63 0 0 0
G-Input2-1-0-5 61 - 61 61 - 0 0
G-Input2-1-0-6 65 - 65 65 - 0 0
G-Input2-1-0-7 58 - 58 58 - 0 0
G-Input2-1-0-8 62 - 62 62 - 0 0
G-Input2-1-0-9 63 - 63 63 - 0 0
G-Input2-2-0-1 75 75 75 75 0 0 0
G-Input2-2-0-2 72 72 72 72 0 0 0
G-Input2-2-0-3 75 58 75 75 -29.31 0 0
G-Input2-2-0-4 73 73 73 73 0 0 0
G-Input2-2-0-5 73 73 73 73 0 0 0
G-Input2-2-0-6 71 - 71 71 - 0 0
G-Input2-2-0-7 75 75 75 75 0 0 0
G-Input2-2-0-8 72 - 72 72 - 0 0
G-Input2-2-0-9∗ 67 - 67 67 - 0 0
G-Input5-0-0-1∗ 40 40 40 40 - 0 0
G-Input5-0-0-2∗ 37 37 37 37 - 0 0
G-Input5-0-0-3∗ 37 - 37 37 - 0 0
G-Input5-0-0-4∗ 41 41 41 41 - 0 0
G-Input5-0-0-5∗ 42 40 42 42 - 0 0
G-Input5-0-0-6∗ 39 - 39 39 - 0 0
Apéndice A. Tablas de resultados 101
G-Input5-0-0-7∗ 40 - 40 40 - 0 0
G-Input5-0-0-8∗ 39 - 39 39 - 0 0
G-Input5-0-0-9∗ 39 - 39 39 - 0 0
G-Input5-1-0-1∗ 36 36 36 36 - 0 0
G-Input5-1-0-2∗ 41 41 41 41 - 0 0
G-Input5-1-0-3∗ 37 33 37 37 - 0 0
G-Input5-1-0-4∗ 39 39 39 39 - 0 0
G-Input5-1-0-5∗ 43 43 43 43 - 0 0
G-Input5-1-0-6∗ 44 - 44 44 - 0 0
G-Input5-1-0-7∗ 40 40 40 40 - 0 0
G-Input5-1-0-8∗ 40 - 40 40 - 0 0
G-Input5-1-0-9∗ 38 - 38 38 - 0 0
G-Input5-2-0-1∗ 43 43 43 43 - 0 0
G-Input5-2-0-2∗ 43 38 43 43 - 0 0
G-Input5-2-0-3∗ 36 43 36 36 - 0 0
G-Input5-2-0-4∗ 40 41 40 40 - 0 0
G-Input5-2-0-5∗ 39 37 39 39 - 0 0
G-Input5-2-0-6∗ 40 37 40 40 - 0 0
G-Input5-2-0-7∗ 43 41 43 43 - 0 0
G-Input5-2-0-8∗ 39 40 39 39 - 0 0
G-Input5-2-0-9∗ 41 - 41 41 - 0 0
G-Input10-0-0-1 27 - 27 27 - 0 0
G-Input10-0-0-2 29 - 29 29 - 0 0
G-Input10-0-0-3 28 - 28 28 - 0 0
G-Input10-0-0-4 30 - 30 30 - 0 0
G-Input10-0-0-5 31 - 31 31 - 0 0
G-Input10-0-0-6 30 - 30 30 - 0 0
G-Input10-0-0-7 30 - 30 30 - 0 0
G-Input10-0-0-8 30 - 24 30 - -25 0
G-Input10-0-0-9 30 - 30 30 - 0 0
G-Input10-1-0-1 27 27 27 27 0 0 0
G-Input10-1-0-2 27 - 27 27 - 0 0
G-Input10-1-0-3 30 - 30 30 - 0 0
Apéndice A. Tablas de resultados 102
G-Input10-1-0-4 28 - 28 28 - 0 0
G-Input10-1-0-5 29 - 29 29 - 0 0
G-Input10-1-0-6 27 - 27 27 - 0 0
G-Input10-1-0-7 26 - 26 26 - 0 0
G-Input10-1-0-8 30 - 30 30 - 0 0
G-Input10-1-0-9 29 - 29 29 - 0 0
G-Input10-2-0-1 27 27 27 27 0 0 0
G-Input10-2-0-2 26 26 26 26 0 0 0
G-Input10-2-0-3 30 - 30 30 - 0 0
G-Input10-2-0-4 30 30 30 30 0 0 0
G-Input10-2-0-5 27 - 27 27 - 0 0
G-Input10-2-0-6 28 - 28 28 - 0 0
G-Input10-2-0-7 26 19 26 26 -36.84 0 0
G-Input10-2-0-8 29 - 29 29 - 0 0
G-Input10-2-0-9 28 - 28 28 - 0 0
G-Input14-0-0-1 83 - 83 83 - 0 0
G-Input14-0-0-2 84 - - 84 - - 0
G-Input14-0-0-3 83 - - 83 - - 0
G-Input14-0-0-4 82 - - 82 - - 0
G-Input14-0-0-5 83 - - 83 - - 0
G-Input14-0-0-6 80 - - 80 - - 0
G-Input14-0-0-7 78 - 78 78 - - 0
G-Input14-0-0-8 82 - 82 82 - - 0
G-Input14-0-0-9 81 - 81 81 - - 0
G-Input14-1-0-1 76 76 76 76 0 0 0
G-Input14-1-0-2 76 - 64 76 - - 0
G-Input14-1-0-3 78 - - 78 - - 0
G-Input14-1-0-4 77 - 77 77 - 0 0
G-Input14-1-0-5 78 - 78 78 - 0 0
G-Input14-1-0-6 77 - 63 77 - - 0
G-Input14-1-0-7 76 - 76 76 - 0 0
G-Input14-1-0-8 73 - 73 73 - 0 0
G-Input14-1-0-9 81 - 81 81 - 0 0
Apéndice A. Tablas de resultados 103
G-Input14-2-0-1 63 63 63 63 0 0 0
G-Input14-2-0-2 67 - 67 67 - 0 0
G-Input14-2-0-3 68 - - 68 - - 0
G-Input14-2-0-4 65 65 65 65 0 0 0
G-Input14-2-0-5 67 - 67 67 - 0 0
G-Input14-2-0-6 68 - 68 68 - 0 0
G-Input14-2-0-7 68 - 68 68 - 0 0
G-Input14-2-0-8 66 - 66 66 - 0 0
G-Input14-2-0-9 67 - 67 67 - 0 0
G-Input16-0-0-1 205 - - 205 - - 0
G-Input16-0-0-2 200 - - 200 - - 0
G-Input16-0-0-3 214 - - 214 - - 0
G-Input16-0-0-4 195 - - 195 - - 0
G-Input16-0-0-5 207 - - 207 - - 0
G-Input16-0-0-6 204 - - 204 - - 0
G-Input16-0-0-7∗ 208 - - 208 - - 0
G-Input16-0-0-8 206 - - 206 - - 0
G-Input16-0-0-9 216 - - 216 - - 0
G-Input16-1-0-1 187 - - 187 - - 0
G-Input16-1-0-2 183 - - 183 - - 0
G-Input16-1-0-3 175 - - 175 - - 0
G-Input16-1-0-4 184 - 145 184 - -26.90 0
G-Input16-1-0-5 176 - - 176 - - 0
G-Input16-1-0-6 183 - - 183 - - 0
G-Input16-1-0-7 177 - - 177 - - 0
G-Input16-1-0-8 182 - - 182 - - 0
G-Input16-1-0-9 174 - - 174 - - 0
G-Input16-2-0-1 176 - 90 176 - -95.56 0
G-Input16-2-0-2 187 - - 187 - - 0
G-Input16-2-0-3 187 - - 187 - - 0
G-Input16-2-0-4 179 - 154 179 - -16.23 0
G-Input16-2-0-5 179 - 133 179 - -34.59 0
G-Input16-2-0-6 184 - 122 184 - -50.82 0
G-Input16-2-0-7 180 - 178 180 - -1.12 0
G-Input16-2-0-8 183 - 165 183 - -10.91 0
G-Input16-2-0-9 176 - 97 176 - -81.44 0
Apéndice A. Tablas de resultados 104
ZM S − Z¯x
Gap ( %) = 100 × , (A.4)
ZM S
109
Bibliografía 110
Gutin, G. y A. P. Punnen (2007), The traveling salesman problem and its varia-
tions, Combinatorial Optimization, tomo 12, Springer, Boston, MA, ISBN: 978-0-
306-48213-7, https://doi.org/10.1007/b101971.
Reinelt, G. (1994), The traveling salesman: computational solutions for TSP appli-
cations, Lecture Notes in Computer Science, tomo 840, Springer-Verlag Berlin Hei-
delberg, ISBN: 978-3-540-48661-9, https://doi.org/10.1007/3-540-48661-5.
Tesis:
Problema de ruteo con máxima cobertura y tiempo límite