1. Aplicación de metaheurı́sticas para el diseño y
planificación de rutas turı́sticas en destino
usando Python
Oriol Moner Lasheras
15 de septiembre de 2023
Trabajo de fin de grado de Matemáticas
Director del trabajo: Ricardo López Ruiz
2. 1
Índice
1 Introducción
Planteamiento
Modelos previos
Formulación
2 Metaheurı́sticas
Introducción a las metaheurı́sticas
VNS
GRASP
3 Aplicación y resultados
Aplicación en Python
Resultados
Conclusiones
Oriol Moner Lasheras (UNIZAR) Trabajo de Fin de Grado 15 de septiembre de 2023 1 / 43
5. 4
Introducción
Planteamiento
Bases del problema
Puntos de interés
Distancias entre los PDIs
Tiempo de visita
Ponderaciones
Tiempo limitado en varios dı́as
Horarios
Categorización
Oriol Moner Lasheras (UNIZAR) Trabajo de Fin de Grado 15 de septiembre de 2023 4 / 43
6. 5
Introducción
Modelos previos
Travel Salesman Problem
Formulado por Karl Menger en 1930
Vehicle Routing Problem
Oriol Moner Lasheras (UNIZAR) Trabajo de Fin de Grado 15 de septiembre de 2023 5 / 43
8. 7
Introducción
Formulación OP
Variables y Parámetros
N, número de PDIs.
pi , beneficio de visitar el PDI i.
cij , tiempo gastado en viajar del PDI i al j.
vi , tiempo gastado en visitar el PDI i.
Tmax , tiempo máximo a gastar en todo el dı́a.
Diremos que xij = 1 si se recorre la distancia de i a j y 0 en caso
contrario.
ui valdrá el puesto que ocupa el PDI i en la ruta, ui = 0 si no es
visitado.
Oriol Moner Lasheras (UNIZAR) Trabajo de Fin de Grado 15 de septiembre de 2023 7 / 43
9. 8
Introducción
Formulación OP
max f (x) =
N−1
X
i=2
N
X
j=2
pi xij (1)
t.q.
N
X
j=2
x1j =
N−1
X
i=1
xiN = 1, (2)
N−1
X
i=1
x1r =
N
X
j=2
xrj ≤ 1, ∀r = 2, ..., N − 1, (3)
Oriol Moner Lasheras (UNIZAR) Trabajo de Fin de Grado 15 de septiembre de 2023 8 / 43
10. 9
Introducción
Formulación OP
N−1
X
i=1
N
X
j=2
(cij + vi ) ∗ xij ≤ Tmax , (4)
1 ≤ ui ≤ N, ∀i = 1, 2, ..., N, (5)
ui − uj + 1 ≤ (N − 1)(1 − xij ), ∀i, j = 2, ..., N, (6)
xij ∈ {0, 1}, ∀i, j = 1, ..., N. (7)
Oriol Moner Lasheras (UNIZAR) Trabajo de Fin de Grado 15 de septiembre de 2023 9 / 43
11. 10
Introducción
Formulación TOP
Variables y Parámetros
N, pi , cij , vi y Tmax representan el mismo valor.
k, número de rutas.
Diremos que xijm = 1 si se ha ido del PDI i al j en la ruta m y 0
en el caso contrario.
Diremos que yim = 1 si se ha visitado el PDI i en la ruta m y 0
en el caso contrario.
Denotamos por uim al puesto que ocupa el PDI i en la ruta m, si
este no ocupa puesto uim = 0.
Oriol Moner Lasheras (UNIZAR) Trabajo de Fin de Grado 15 de septiembre de 2023 10 / 43
12. 11
Introducción
Formulación TOP
max
k
X
m=1
N−1
X
i=2
pi yim (8)
t.q.
k
X
m=1
N
X
j=2
x1jm =
N−1
X
m=1
N−1
X
i=1
xiNm = k, (9)
k
X
m=1
yrm =≤ 1, ∀r = 2, ..., N − 1, (10)
Oriol Moner Lasheras (UNIZAR) Trabajo de Fin de Grado 15 de septiembre de 2023 11 / 43
13. 12
Introducción
Formulación TOP
N−1
X
i=1
xirm =
N
X
j=2
xirj = yrm, ∀r = 2, ..., N, ∀m = 1, ..., k (11)
N−1
X
i=1
N
X
j=2
(cij + vi xij )xijm ≤ Tmax , ∀m = 1, .., k, (12)
2 ≤ uim ≤ N, ∀i = 1, 2, ..., N, ∀m = 1, ..., k, (13)
uim − ujm + 1 ≤ (N − 1)(1 − xijm), ∀i, j = 2, ..., N, ∀m = 1, ..., k,
(14)
xijm, yim ∈ {0, 1}, ∀i, j = 1, ..., N, ∀m = 1, ..., k (15)
Oriol Moner Lasheras (UNIZAR) Trabajo de Fin de Grado 15 de septiembre de 2023 12 / 43
14. 13
Introducción
Formulación TTDP
Variables y Parámetros
Conservamos las variables y parametros anteriores.
Sea ai ∈ [0, Tmax ] el tiempo de llegada al PDI i.
bi , hora de apertura de la ventana de tiempo del PDI i.
ei , hora de cierre de la ventana de tiempo del PDI i.
G, número de categorı́as a las que los PDIs pueden pertenecer.
Sea gh el conjunto de los PDIs que pertenecen a la categorı́a h.
kh, número mı́nimo de PDIs de la categorı́a h visitados por dı́a.
lh, número máximo de PDIs de la categorı́a h visitados por dı́a.
M un número suficientemente grande.
Oriol Moner Lasheras (UNIZAR) Trabajo de Fin de Grado 15 de septiembre de 2023 13 / 43
15. 14
Introducción
Formulación TTDP
bi Yim ≤ ai , ∀i = 1, ..., N, ∀m = 1, ..., k, (16)
ai ≤ ei (Yim + ((1 − Yim)M)), ∀i, j ∈= 1, ..., N, ∀m = 1, ..., k,
(17)
ai +cij +vi ≤ aj +M(1−Xim), ∀i, j = 1, ..., N, i ̸= j, ∀m = 1, ..., k,
(18)
aj ≤ ai +eij +vi +M(1−Xim), ∀i, j = 1, ..., N, i ̸= j, ∀m = 1, ..., k,
(19)
Oriol Moner Lasheras (UNIZAR) Trabajo de Fin de Grado 15 de septiembre de 2023 14 / 43
16. 15
Introducción
Formulación TTDP
kh ≤
X
i∈gh
Yim ∀h, = 1, ..., G, ∀m = 1, ..., k, (20)
X
i∈gh
Yim ≤ lh ∀i, j = 1, ..., N, ∀m = 1, ..., k, (21)
Oriol Moner Lasheras (UNIZAR) Trabajo de Fin de Grado 15 de septiembre de 2023 15 / 43
18. 17
Metaheurı́sticas
Introducción
Definición
Las metaheurı́sticas son estrategias generales de diseño de
procedimientos heurı́sticos para la resolución de problemas con un
alto rendimiento.
Proposito: Resolver problemas carentes de un método exacto o
aportar una solución de calidad cuando la óptima no es
necesaria.
Oriol Moner Lasheras (UNIZAR) Trabajo de Fin de Grado 15 de septiembre de 2023 17 / 43
19. 18
Metaheurı́sticas
Introducción
Una buena metaheurı́stica tiene un balance entre:
Intensificación, es la cantidad de esfuerzo empleado en la
búsqueda de la región actual (explotación del espacio).
Diversificación es la cantidad de esfuerzo empleado en la
búsqueda de regiones distantes del espacio (exploración).
Oriol Moner Lasheras (UNIZAR) Trabajo de Fin de Grado 15 de septiembre de 2023 18 / 43
20. 19
Metaheurı́sticas
Introducción
Clasificación de las Metaheurı́sticas
Basadas en métodos constructivos, parten de una solución vacı́a
y van añadiendo componentes hasta obtener una solución de
calidad. Ej: GRASP
Basadas en trayectorias, parten de una solución inicial y
aplicando un algoritmo de búsqueda local, van aplicando cambios
a la solución de partida. Ej: Búsqueda Local o Búsqueda TABU.
Basadas en poblaciones, el proceso considera múltiples puntos
de búsqueda en el espacio que evolucionan en paralelo. Ej:
Algoritmos Genéticos.
Basadas en métodos de relajación, utilizan relajaciones del
modelo original cuya solución facilita la solución del problema
original.
Oriol Moner Lasheras (UNIZAR) Trabajo de Fin de Grado 15 de septiembre de 2023 19 / 43
21. 20
Metaheurı́sticas
VNS
Definición
Variable Neighborhood Search (VNS) está basado en la idea de un
cambio sistemático de vecindario, con una fase de descenso para
encontrar un óptimo y con una fase de perturbación para salir del
correspondiente valle.
Planteamos el problema de optimización:
min{f (x)|x ∈ X, X ⊂ S}, (22)
donde S, X, x, y f son el espacio de solución, el conjunto de las
soluciones posibles, una posible solución y una función objetivo de
variable real, respectivamente.
Oriol Moner Lasheras (UNIZAR) Trabajo de Fin de Grado 15 de septiembre de 2023 20 / 43
22. 21
Metaheurı́sticas
VNS
Una solución x∗
∈ X es óptima si
f (x∗
) ≤ f (x), ∀x ∈ X.
Sea Nk con k = 1, ..., kmax un conjunto finito de estructuras de
vecindarios preseleccionados, y Nk(x) el conjunto de soluciones en el
k-esimo vecindario de x.
Llamamos x′
∈ X a un mı́nimo local de (22) con respecto a Nk (c.r.a
Nk para abreviar), si no existe una solución x ∈ Nk(x′
) ⊂ X tal que
f (x) < f (x′
).
Oriol Moner Lasheras (UNIZAR) Trabajo de Fin de Grado 15 de septiembre de 2023 21 / 43
23. 22
Metaheurı́sticas
VNS
Las metaheurı́sticas de búsqueda local intentan continuar la búsqueda
por otros medios una vez han alcanzado un mı́nimo local.
Oriol Moner Lasheras (UNIZAR) Trabajo de Fin de Grado 15 de septiembre de 2023 22 / 43
24. 23
Metaheurı́sticas
VNS
El método Variable Neighborhood Descent realiza un cambio de
vecindario en un sentido determinı́stico, ya que no tiene
componente aleatorizado.
Oriol Moner Lasheras (UNIZAR) Trabajo de Fin de Grado 15 de septiembre de 2023 23 / 43
25. 24
Metaheurı́sticas
VNS
El método Reduced VNS (RVNS) no tiene ninguna búsqueda de
mejora, tiene un caracter estocástico debido a la función agitar.
Oriol Moner Lasheras (UNIZAR) Trabajo de Fin de Grado 15 de septiembre de 2023 24 / 43
26. 25
Metaheurı́sticas
VNS
La función agitar selecciona un punto x′
aleatoriamente de el k-ésimo
vecindario de x, i.e., x′
∈ Nk(x).
Oriol Moner Lasheras (UNIZAR) Trabajo de Fin de Grado 15 de septiembre de 2023 25 / 43
27. 26
Metaheurı́sticas
VNS
El método Basic VNS combina cambios determinı́sticos y
estocásticos en el cambio de vecindario.
Oriol Moner Lasheras (UNIZAR) Trabajo de Fin de Grado 15 de septiembre de 2023 26 / 43
28. 27
Metaheurı́sticas
VNS
El método General VNS sale de contemplar la posibilidad de usar
el VND en el paso de la búsqueda local del BVNS.
Oriol Moner Lasheras (UNIZAR) Trabajo de Fin de Grado 15 de septiembre de 2023 27 / 43
29. 28
Metaheurı́sticas
GRASP
Definición
El Greedy Randomized Algorithm Search Procedure (GRASP) es una
metaheurı́stica de multiarranque para problemas de optimización
combinatoria, donde cada iteración consiste en dos fases, una de
construcción y otra de búsqueda local.
Oriol Moner Lasheras (UNIZAR) Trabajo de Fin de Grado 15 de septiembre de 2023 28 / 43
33. 32
Índice
3 Aplicación y resultados
Aplicación en Python
Resultados
Conclusiones
Oriol Moner Lasheras (UNIZAR) Trabajo de Fin de Grado 15 de septiembre de 2023 32 / 43
35. 34
Aplicación y resultados
Generación de datos
Valores de tiempo de desplazamiento, distancia euclı́dea en un
plano 100x100.
Ponderaciones de visitar cada PDI, aleatorio entre (1,25).
Tiempo de visita de cada PDI, aleatorio entre (1,50).
Número de categorı́as es 4.
Número mı́nimo de PDIs por dı́a según la categorı́a, aleatorio
entre (0,1). Para el máximo entre (2,4).
Hora de apertura, aleatorio entre (8,18). La hora de cierre será
entre la hora de apertura + 3 horas y las 22.
Número de PDIs, número de dı́as y tiempo máximo
Fijaciones.
Oriol Moner Lasheras (UNIZAR) Trabajo de Fin de Grado 15 de septiembre de 2023 34 / 43
36. 35
Aplicación y resultados
Fase de construcción
Desarrollo progresivo del programa.
Función objetivo.
Ajuste de horarios de la ruta.
Cumplimiento de los mı́nimos de las categorı́as.
Oriol Moner Lasheras (UNIZAR) Trabajo de Fin de Grado 15 de septiembre de 2023 35 / 43
37. 36
Aplicación y resultados
Fase de optimización
El movimiento por el vecindario consta de borrar PDIs y añadir
nuevos.
Oriol Moner Lasheras (UNIZAR) Trabajo de Fin de Grado 15 de septiembre de 2023 36 / 43
38. 37
Aplicación y resultados
Resultados
Iteraciones máximas, 400 para el conjunto de datos pequeño y
en 200 para el grande.
Tamaño máximo de las estructuras de vecindario, kmax = 2.
Tamaño de la RCL, probaremos los valores más comunes como
son 3, 5, 7 y 10.
Función objetivo, tres modelos.
Número de dı́as, 2 para el conjunto pequeño y 3 para el grande.
Número de PDIs, 16 para el conjunto pequeño y 31 para el
grande.
Tiempo máximo a consumir, 300 por dı́a para el conjunto
pequeño y 400 por dı́a para el grande.
Oriol Moner Lasheras (UNIZAR) Trabajo de Fin de Grado 15 de septiembre de 2023 37 / 43
40. 39
Aplicación y resultados
Resultados conjunto
Cuadro 2: Beneficios conjunto menor
Tamaño RCL
Función objetivo 3 5 7 10
Modelo 1 120 134 134 125
Modelo 2 135 134 125 126
Modelo 3 117 130 107 130
Oriol Moner Lasheras (UNIZAR) Trabajo de Fin de Grado 15 de septiembre de 2023 39 / 43
42. 41
Aplicación y resultados
Resultados
Cuadro 4: Beneficios conjunto mayor
Tamaño RCL
Función objetivo 3 5 7 10
Modelo 1 279 284 286 283
Modelo 2 273 279 282 283
Modelo 3 280 275 279 284
Oriol Moner Lasheras (UNIZAR) Trabajo de Fin de Grado 15 de septiembre de 2023 41 / 43
43. 42
Aplicación y resultados
Conclusiones
Mejoras futuras:
Aplicar variantes del GRASP, como el Fuzzy GRASP, o
alternativas al VND como el GVND.
Analisis mas exhaustivo de los parametros del algoritmo.
Aplicación de tiempos de espera en la ruta.
Oriol Moner Lasheras (UNIZAR) Trabajo de Fin de Grado 15 de septiembre de 2023 42 / 43