Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Autor
YIMY ALEXANDER HERNÁNDEZ ORTIZ
Ingeniero Industrial por la Universidad Distrital Francisco José de Caldas
Autor
YIMY ALEXANDER HERNÁNDEZ ORTIZ
Ingeniero Industrial por la Universidad Distrital Francisco José de Caldas
Directora
MBA. Ing. FLOR DE MARÍA UMAÑA VILLAMIZAR
2
NOTA DE ACEPTACIÓN
_____________________________________
MBA. Ing. Flor de María Umaña Villamizar
Directora de Tesis
_____________________________________
Jurado
_____________________________________
Jurado
3
ÍNDICE
RESUMEN ............................................................................................................... 9
INTRODUCCIÓN ................................................................................................... 10
4
2.3.2 Algoritmos de Ruteo para el MDVRP..................................................... 33
5. CONCLUSIONES .............................................................................................. 87
REFERENCIAS BIBLIOGRÁFICAS....................................................................... 89
5
INDICE DE FIGURAS
6
Figura 28. Vector inicial para el proceso de ruteo con Búsqueda Tabú ................. 70
Figura 29. Vectores generados con las estrategias de vecindad ........................... 72
Figura 30. Soluciones de la Lista Tabú .................................................................. 76
Figura 31. Generación de rutas para cada depósito con Búsqueda Tabú ............. 76
Figura 32. Reporte final de rutas para cada depósito ............................................ 77
Figura 33. Rutas finales para cada depósito .......................................................... 77
Figura 34. Rutas finales de la instancia p01 aplicando GC & TR........................... 82
7
INDICE DE TABLAS
8
RESUMEN
9
INTRODUCCIÓN
10
a entregas a tiempo y costos razonables (Odette, 2009).
11
Finalmente se presentaron los resultados de la investigación evaluando el
comportamiento de la metaheurística híbrida propuesta a partir de la comparación
con casos de prueba o instancias del MDVRP disponibles en la literatura
especializada del VRP.
12
1. DESCRIPCIÓN DE LA INVESTIGACIÓN
1.1 EL PROBLEMA
1.1.1 Descripción
13
transportada.
1.1.2 Formulación
Dado que los costos de transporte normalmente se hallan entre un tercio y dos
tercios de los costos logísticos totales (Ballou, 2004), mejorar la eficiencia
mediante la máxima utilización del equipo de transporte y de su personal es una
preocupación importante. El tiempo durante el cual los artículos están en tránsito
se refleja en el número de envíos que pueden hacerse con un vehículo en un
periodo dado, así como en los costos totales de transporte para todos los envíos.
14
Es esencial la disminución de los costos de los procesos logísticos relacionados
con el transporte. Dicha disminución puede lograrse, administrando mejor los
recursos existentes. Esta alternativa requiere procedimientos especializados como
tecnologías que permitan el seguimiento en tiempo real y software para el diseño
de rutas de distribución (Golden, Assad, & Wasil, 2002).
Una de las decisiones operativas que deben tomar continuamente las empresas
de transporte de carga, es el diseño de rutas de entrega con las cuales atender la
demanda de sus clientes (Riopel, Langevin, & Campbell, 2005). Para ello es
importante el conocimiento de las características particulares de la situación que
se afronta al momento de implementar procesos computacionales para el diseño
de rutas con el fin de ajustarlos a las características propias de las necesidades de
ruteo de cada empresa. Por lo anterior, se hace necesario generar un sistema de
ruteo que se ajuste a las necesidades específicas de las empresas distribuidoras
de carga por carretera.
1.3.1 General
1.3.2 Específicos
15
A partir del estudio, conceptualización y evaluación de los diferentes modelos de
ruteo de vehículos aplicados en organizaciones dedicadas al transporte y que han
basado su desarrollo en minimizar los costos, tiempos y distancias de la operación
para cumplir con la promesa de servicio; se obtendrán las bases teóricas y
conceptuales para diseñar, formalizar y formular un sistema de ruteo de vehículos
con múltiples depósitos en empresas de transporte de carga por carretera que
permita cumplir con las métricas de operación de este tipo de empresas.
16
describieron la esencia del problema.
La metodología propuesta fue denominada Grasp Clustering & Tabu Routing -GC
& TR-, la cual se desarrolla en un procedimiento de dos fases, clusterizar primero,
rutear después. Para este proceso, se planteó en una primera fase la asignación
de los clientes a los depósitos a partir de la metaheurística GRASP y en una
segunda fase, se generan las rutas para cada clúster a partir de la metaheurística
Búsqueda Tabú.
17
2. FUNDAMENTACIÓN TEÓRICA Y CONCEPTUAL
Dentro de la gestión del transporte, una de las decisiones operativas que debe
tomarse casi a diario es el diseño de las rutas con las cuales se atiende la
demanda de los clientes finales o intermedios de la cadena. El diseño de rutas
eficientes aparece en sectores tan diversos de la economía como, por ejemplo, la
entrega de periódicos, la recolección de residuos, el transporte escolar y la
distribución de productos de consumo masivo.
18
La red de transporte
La flota de vehículos
Los clientes y/o proveedores
El depósito central (o depósitos)
Los servicios a atender (demandas y/o consumos)
Las rutas solución
Sistema de Información Geográfica (SIG)
El origen del VRP (Vehicle Routing Problem) viene desde el año de 1959 y es
introducido por Dantzing y Ramser (Olivera, 2004), los cuales representaron una
aplicación real relacionada con la entrega de gasolina a las estaciones de servicio
y propusieron la formulación matemática a este problema, el cual surge como una
generalización del problema clásico el agente viajero (TSP) en el que un vendedor
tiene que recorrer una serie de clientes una sola vez, para luego volver al lugar de
partida.
En 1964 Clarke and Wright propusieron el algoritmo de los Ahorros, el cual fue el
primer procedimiento utilizado para resolver el VRP (Olivera, 2004). Es así como
se da comienzo a las investigaciones y trabajos en el área de ruteo de vehículos.
Algunas de estas investigaciones buscaron la solución óptima del problema y
otras, encontraron aproximaciones válidas a la solución del VRP.
19
DEPÓSITO
CLIENTES
En los problemas reales de VRP aparecen muchas restricciones, entre las que
cabe citar (Toth & Vigo, 2002):
Diversas variantes del Problema de Ruteo de Vehículos han sido propuestas por
diferentes autores con la finalidad de ajustarse a situaciones reales de transporte,
estos problemas se diferencian por la adición de variables y restricciones.
20
VRPTW (VRP con ventanas de tiempo), en este problema se relaciona a cada
cliente una restricción de intervalo de tiempo. Las ventanas de tiempo son
periodos fijos en donde se puede realizar la entrega a los clientes; este modelo ha
sido resuelto por diversos autores como Olivera (Olivera, 2004), Gendreau et al
(Bräysy & Gendreau, 2002) y Vacic (Vacic & Sobh, 2004).
MDVRP (VRP con múltiples depósitos): este problema consta de varios depósitos
con una flota de vehículos por cada depósito, los cuales deben atender la
demanda de todos los clientes. Este modelo fue resuelto por Tansini (Tansini,
Urquhart, & Viera, 2001), mediante técnicas de clusterizar primero - rutear
después.
PVRP (VRP periódico): tiene en cuenta un periodo de tiempo durante el cual los
clientes deben ser atendidos, este modelo fue propuesto por Francis (Francis,
Smilowitz, & Tzur, 2005) y resuelto mediante relajación lagrangiana.
VRPB (VRP con retornos), es aquel en el que los clientes pueden retornar algunas
mercancías, por lo tanto, se hace necesario determinar que los bienes devueltos al
vehículo puedan caber en él. El VRPB fue resuelto por Volkan (Volkan, 2003)
mediante la utilización de algoritmos genéticos.
Existen tres elementos involucrados en el VRP que son los clientes, las bodegas o
depósitos y la flota de vehículos (Toth & Vigo, 2002):
Los clientes: generan la demanda de bienes que debe ser entregada por medio
de los vehículos desde los depósitos hasta el cliente final. En una variante al caso
anterior, los clientes pueden ser proveedores, los cuales desean que su mercancía
sea recogida y transportada hacia el depósito.
Los clientes pueden tener restricciones tales como: horario de servicio, (expresado
como ventanas de tiempo), compatibilidad entre vehículos y clientes (en el caso
que determinado cliente sólo pueda ser atendido por algún tipo de vehículo),
21
devoluciones (cuando existe la posibilidad que el cliente retorne mercancía a los
depósitos), demanda (si la cantidad demandada por el cliente supera la capacidad
de los vehículos).
Las bodegas o depósitos: son los lugares en donde se encuentran ubicados los
bienes a distribuir y los vehículos de entrega. Por lo general, cada ruta comienza y
termina en el mismo depósito, pero en ciertos casos, cuando la flota no es propia,
los vehículos no regresan a la bodega de origen; esta variable del VRP se conoce
como OVRP (Open-VRP). También existen problemas con múltiples bodegas, las
cuales pueden tener asignada una flota de vehículos determinada.
Los vehículos: son los medios de transporte utilizados para distribuir los bienes
desde los depósitos a los clientes o viceversa. La capacidad de los vehículos
puede estar expresada en peso, volumen, número de clientes, entre otras. Si los
vehículos tienen las mismas características o atributos se considera flota
homogénea, de lo contrario, flota heterogénea. Los costos de los vehículos tienen
un componente fijo en el cual se incurre al momento de utilizarlos y un
componente variable proporcional a la distancia recorrida.
22
2.2.2.1 Heurísticas Aplicadas al Ruteo de Vehículos.
Algunas de las heurísticas utilizadas para resolver el VRP son las siguientes:
(Rocha, González, & Orjuela, 2011)
El Algoritmo de Ahorros
Heurísticas de Inserción
Métodos de asignación elemental
Métodos Asignar Primero – Rutear Después
Método Rutear Primero – Asignar Después
Algoritmos de Pétalos
Procedimientos de Búsqueda Local
23
2.3 RUTEO DE VEHÍCULOS CON MÚLTIPLES DEPÓSITOS
Es una variante del VRP que se caracteriza por tener más de un depósito para
atender a los clientes. Cuando los clientes están agrupados alrededor de los
depósitos, el problema de distribución puede modelarse como un sistema de ruteo
de vehículos (VRP) independiente. Sin embargo, si los clientes y los depósitos
están mezclados, el problema de ruteo debe ser resuelto como un sistema de
ruteo de vehículos con múltiples depósitos (MDVRP).
En la configuración del MDVRP, los clientes deben ser atendidos por uno de
varios depósitos. Al igual que con el VRP, cada vehículo debe salir y regresar al
mismo depósito y el tamaño de la flota en cada depósito debe oscilar entre un
mínimo y máximo especificado. El MDVRP es NP-hard, por lo tanto, los métodos
exactos no son adecuados para obtener soluciones óptimas y el desarrollo de
algoritmos metaheurísticos para esta clase de problema es primordial (Tansini,
Urquhart, & Viera, 2001)
Un MDVRP requiere la asignación de clientes a los depósitos, así como una flota
de vehículos determinada para cada depósito; cada vehículo comienza desde un
depósito, un servicio al cliente asignado a ese depósito. El objetivo del problema
es encontrar rutas para los vehículos que presten el servicio a todos los clientes a
un costo mínimo en términos de número de rutas y distancia total del viaje, sin
violar la capacidad y las limitaciones de tiempo de viaje de los vehículos.
Generalmente se utilizan dos fases para resolver el MDVRP: (Geetha, Vanathi, &
Poonthalir, 2012)
24
una ruta que visite a todos sus clientes. Las restricciones de capacidad son
consideradas en la primera etapa, asegurando que la demanda total de cada
clúster no supere la capacidad del vehículo. (Olivera, 2004)
Idealmente, es más eficiente hacer frente a los dos pasos simultáneamente. Sin
embargo, cuando se enfrenta con problemas más grandes, este enfoque no es
manejable computacionalmente. Un enfoque razonable sería dividir el problema en
tantos subproblemas como depósitos existan y resolver cada subproblema por
separado.
25
clusterización. Es la herramienta de agrupación más popular utilizada en
aplicaciones científicas e industriales. (Berkhin, 2006)
1
𝑐𝑖 = ∑ 𝑥𝑗 ; 1 ≤ 𝑖 ≤ 𝑐 [2]
𝑛𝑖
𝑥𝑗 ∈𝑐𝑖
26
Figura 2. Algoritmo K-means para encontrar tres clústeres
Fuente: (Tan, Steinbach, & Kumar, 2006)
Esta técnica fue introducida originalmente por James Bezdek en 1981 como una
mejora a los métodos de agrupamiento desarrollados anteriormente. El algoritmo
proporciona un método que muestra cómo un grupo de puntos conforman un
espacio multidimensional en un número específico de distintos clústeres. Fuzzy C-
means (FCM) se desarrolló con el fin de solucionar los inconvenientes de clasificar
un dato que está lo suficientemente cerca de dos grupos de datos de tal manera
que es difícil etiquetarlo en uno o en otro, esto se debe a la frecuencia con la cual
un objeto particular presenta características pertenecientes a grupos distintos y
como consecuencia no es fácilmente clasificado.
El algoritmo establece para cada dato un valor de pertenencia 𝜇𝑖𝑗 a cada clúster,
por lo tanto, un dato específico puede pertenecer parcialmente a más de un
27
clúster. Este procedimiento realiza una partición suave del conjunto de datos, en
tal partición los datos pertenecen en algún grado a todos los clústeres. Un tipo de
partición suave es aquella en donde la suma de los grados de pertenencia de un
punto específico en todos los clústeres es igual a 1. Una partición suave que
cumple esta condición adicional es llamada una partición suave restringida. (Rojas
D., Chavarro P., & Moreno L., 2008)
FCM produce una partición suave restringida y para hacer esto la función objetivo
J se extiende de dos maneras, por un lado, se incorporan los grados de
pertenencia difusos de cada dato en cada clúster y por otro lado se introduce un
parámetro adicional m que sirve de peso exponente en la función de pertenencia.
El parámetro m determina el grado en el cual los miembros parciales de un clúster
afectan el resultado. El procedimiento intenta encontrar una buena partición
mediante la búsqueda de los centroides 𝑣𝑖 que minimicen la función objetivo Jm.
Las particiones difusas se representan como una matriz asociando cada fila a uno
de los c grupos y cada columna a uno de los elementos de X, de forma tal que el
valor en la fila i y la columna j indique la pertenencia del elemento j al grupo i. El
conjunto de particiones difusas se puede definir como:
Cuando m tiende a 1, la partición óptima es cada vez más exclusiva, es decir, sus
elementos tienen un factor de pertenencia cercano a 1. Cuando m tiende a infinito,
la partición óptima es menos exclusiva, es decir, sus elementos tienden a
pertenecer a todos los clústeres, tomando un valor de pertenencia igual a 1/c.
Cada selección de un valor particular de m marca un algoritmo Fuzzy C-Means
específico. Por lo tanto, m determina la “borrosidad” de los clústeres resultantes.
28
Igualando a cero las derivadas parciales de J con respecto a U y v, las condiciones
necesarias para que la función objetivo alcance su mínimo son: (Díez, Navarro, &
Sala, 2001)
2 −1
𝑐
‖𝑥𝑗 − 𝑣𝑖 ‖ 𝑚−1
𝑢𝑖𝑗 = [∑ ( ) ] ; 1 ≤ 𝑖 ≤ 𝑐 ,1 ≤ 𝑗 ≤ 𝑛 [5]
‖𝑥𝑗 − 𝑣𝑘 ‖
𝑘=1
𝑚
∑𝑛𝑗=1(𝑢𝑖𝑗 ) 𝑥𝑗
𝑣𝑖 = 𝑚 ; 1≤𝑖≤𝑐 [6]
∑𝑛𝑗=1(𝑢𝑖𝑗 )
0 ≤ 𝑢𝑖𝑗 ≤ 1 [7]
𝑐
∑ 𝑢𝑖𝑗 = 1; 1 ≤ 𝑗 ≤ 𝑛 [8]
𝑖=1
Inicialización
Fijar el número de clústeres 𝑐 < 𝑛
Determinar el exponente m,
Fijar la matriz A,
Seleccionar la tolerancia para terminar la iteración
Inicializar la matriz de partición U aleatoriamente.
29
enfoca la mayor parte de su esfuerzo en construir soluciones de alta calidad que
son posteriormente procesadas para obtener otras mejores. Los algoritmos
GRASP son iterativos, en donde cada iteración contiene una fase de construcción
de la solución y otra en donde se mejora la solución generada en la primera fase.
Fase de Construcción
La función miope es una medida voraz adaptativa ya que evalúa todos los posibles
movimientos en cada paso, tomando en cuenta decisiones tomadas en pasos
anteriores, previos al momento de considerar la presente decisión. Como
algoritmo voraz se puede utilizar un procedimiento de clusterización, escogiendo
como centros de los agrupamientos a los depósitos o centros de distribución.
donde, 0 ≤ 𝛼 ≤ 1
30
Una forma de restringir la lista es eligiendo el candidato de los primeros k
elementos o tomando aquellos movimientos cuyos valores respecto a la función
voraz se encuentran dentro de un rango determinado por una fracción del valor del
mejor movimiento. La elección de los parámetros k y 𝛼 requiere un conocimiento
del problema, ya que indican la búsqueda de un equilibrio entre ser muy restrictivo
y selectivo, versus diversidad en la búsqueda. (Resende & Ribeiro, 2003)
𝑍∗ 𝛿
𝑞𝑖 = ( ) [12]
𝐴𝑖
donde,
El exponente 𝛿 puede ser usado para atenuar de manera diferente los valores
actualizados de las probabilidades 𝑝𝑖 .
31
Normalizando los valores de 𝑞𝑖 se obtienen los nuevos valores de 𝑝𝑖 :
𝑞𝑖
𝑝𝑖 = 𝑚 [13]
∑𝑗=1 𝑞𝑗
Con el enfoque reactivo, los valores de 𝛼𝑖 con los que se han obtenido mejores
soluciones tendrán mayor probabilidad de ser elegidos, y, por consiguiente, serán
usados con mayor frecuencia en la fase de construcción del procedimiento
GRASP.
Fase de Mejora
32
Seleccionar un elemento aleatoriamente de la lista restringida.
Fase de Mejora
Realizar un proceso de búsqueda local a partir de la solución construida
hasta que no se pueda mejorar más.
Actualización
Si la solución obtenida mejora a la mejor almacenada, actualizarla.
Fin mientras
33
En la historia reciente del MDVRP diferentes autores han trabajado diversos
procedimientos para dar solución a este problema:
Ho, Ho, Ji y Lau proponen un algoritmo genético híbrido para hacer frente al
MDVRP de manera eficiente, dos algoritmos genéticos híbridos (HGA) se
desarrollan en ese trabajo. La principal diferencia entre el HGA es que las
soluciones iniciales se generan aleatoriamente en HGA1. El método de ahorros de
Clarke y Wright y la heurística del vecino más cercano se incorporan en HGA2
para el procedimiento de inicialización. Se demostró que el rendimiento de HGA2
es superior al de HGA1 en términos del tiempo total de entrega. (Ho, Ho, Ji, & Lau,
2008)
Wang, Sun y Ren estudiaron un algoritmo heurístico híbrido para VRP Multi-
Depósito con estrategia de recogida-entrega. En la primera etapa se utiliza un
algoritmo genético híbrido con el fin de simplificar el problema. La mejora de los
operadores de cruce parcialmente coincidentes pueden evitar la destrucción de
34
partes buenas de genes durante el curso del cruce. El estudio adopta la estrategia
de protección de genes en su conjunto; introduce dos operadores de mutación de
cambio. En la segunda etapa, el stock de élite adopta el algoritmo genético con
algoritmo de búsqueda tabú para mejorar la velocidad de convergencia. (Wang,
Sun, & Ren, 2009)
Tang, Yin y Man trabajaron una optimización basada en genética para el VRP
Multi-depósito. Con un novedoso diseño de la estructura de los cromosomas, se
propone un algoritmo genético de objetivos múltiples para hacer frente a este
problema, de modo que las distancias totales de viaje y el tiempo total de viaje,
son minimizados. (Tang & Yin, 2010)
Liu, Jiang y Geng propusieron un algoritmo genético híbrido para VRP abierto
Multi-depósito. El MDOVRP, es una variante del VRP, en la que los vehículos
parten de varios depósitos y no están obligados a regresar a la estación. En el
enfoque propuesto, tres algoritmos heurísticos clásicos se adoptan para
proporcionar buenas soluciones iniciales. Un método de división es diseñado para
calcular la aptitud exacta de cada cromosoma. Varios métodos simples y potentes
de búsqueda local se utilizan para mejorar la descendencia generada por el
procedimiento de cruce. Desde el punto de vista metodológico, una meta es
35
acelerar la búsqueda local en el algoritmo genético propuesto para reducir su
tiempo de ejecución. (Liu, Jiang, & Geng, 2012)
He, Miao, Xie y Shi desarrollan un algoritmo de búsqueda tabú con agrupación de
clúster variable para VRP multi-depósito. En primer lugar, adoptaron la agrupación
de clúster variable para convertir un MDVRP complicado en un problema típico de
un solo depósito (SDVRP), luego aplicaron un algoritmo de búsqueda tabú para
resolver cada SDVRP. (He, Miao, Xie, & Shi, 2014)
36
las ventajas que tiene la diversificación de la búsqueda, y al mismo tiempo las
bondades en procesos de intensificación que brindan las metaheurísticas de
vecindario, se decide utilizar para esta investigación la metaheurística Búsqueda
Tabú (Tabu Search) como técnica para generar las rutas de cada clúster en la
segunda fase de la metodología propuesta.
El término Búsqueda Tabú (TS – Tabu Search) fue introducido en 1986 por Fred
Glover. Los principios fundamentales de la búsqueda fueron elaborados en una
serie de artículos de finales de los años 80 y principios de los 90, que fueron luego
unificados en el libro “Tabu Search” en 1997. (Glover & Laguna, 1997)
Estructuras de vecindad
37
Estructuras de memoria
38
soluciones visitadas durante la búsqueda. Las frecuencias de transición conservan
un registro de la asiduidad con que cambian los atributos, mientras que las
frecuencias de residencia, mantienen el registro de las duraciones de los atributos.
Intensificación y Diversificación
39
Criterio de Aspiración
El criterio de aspiración más sencillo es considerar una solución 𝑠 cuando 𝑓(𝑠0 ) <
𝑓(𝑠 ∗ ); este movimiento orienta una nueva dirección en la búsqueda y evita la
generación de ciclos. (Gendreau & Potvin, 2010)
40
3. DESARROLLO DE LA INVESTIGACIÓN
Para la segunda fase se propone el algoritmo de Búsqueda Tabú para generar las
rutas de distribución en cada uno de los clústeres formados en la primera fase. El
algoritmo se encarga de explorar mediante búsqueda local todos los vecinos de la
solución actual, realizando todos los posibles intercambios entre pares de
posiciones en el mismo clúster.
41
1. Ingreso de los parámetros de entrada
2. Asignación de clientes a depósitos con procedimiento de clusterización
GRASP.
3. Primera fase GRASP: construcción de soluciones con algoritmo voraz que
permita obtener soluciones de alta calidad, eligiendo el mejor movimiento
disponible en cada iteración.
4. Segunda fase GRASP: mejora de soluciones con procedimiento de
optimización local que permita buscar en la vecindad un candidato que
garantice una mejor solución.
5. Generación de rutas con Búsqueda Tabú para cada uno de los
agrupamientos formados.
6. Creación de soluciones iniciales que permitan desarrollar el proceso de
ruteo.
7. Búsqueda local con estrategias de vecindad para explorar el espacio de
soluciones disponible.
8. Aplicación de estrategias de intensificación con la finalidad de buscar en
regiones promisorias del espacio de soluciones.
9. Generación de informe con la mejor solución.
42
En esta etapa se asignan los clientes a los depósitos a partir de los niveles de
pertenencia y las distancias entre clientes y depósitos. Para ello se obtiene la
matriz de pertenencias a partir del algoritmo Fuzzy C-Means y se genera la matriz
de distancias utilizando distancias euclidianas.
Fase de construcción
Fase de mejora
43
Estrategias de vecindad
Una vez obtenido el ruteo inicial, se ejecutan las estrategias de vecindad en cada
clúster a partir del algoritmo de inserción sobre el vector obtenido con el
procedimiento del vecino más cercano. Las inserciones sucesivas y aleatorias
sobre el vector inicial generan 𝑛 soluciones aleatorias, las cuales pretenden
explorar el espacio de búsqueda en la vecindad.
Intensificación
44
Figura 3. Diagrama de Flujo de la metaheurística propuesta -GC & TR-
Fuente: Elaboración propia, 2016
45
3.1.2 Aplicación de la metodología GC & TR
𝑚 = 3 depósitos
𝑛 = 20 clientes
𝑄 = 15 𝑡𝑜𝑛 (carga máxima de los vehículos)
𝛼 = 0,3 parámetro de tamaño de la RCL
Parámetros de entrada:
46
Figura 4.Ubicación geográfica de clientes y depósitos
Fuente: Elaboración propia, 2016
1 0,727 0,138 0,403 0,675 0,413 0,181 0,493 0,122 0,626 0,466 0,483 0,124 0,141 0,298 0,451 0,606 0,092 0,568 0,778 0,157
2 0,095 0,137 0,393 0,065 0,432 0,347 0,172 0,828 0,211 0,319 0,191 0,809 0,153 0,539 0,433 0,074 0,083 0,190 0,087 0,136
3 0,178 0,725 0,204 0,260 0,156 0,472 0,335 0,050 0,164 0,216 0,326 0,067 0,706 0,163 0,116 0,321 0,826 0,241 0,134 0,707
47
Tabla 3. Matriz de distancias entre clientes y depósitos
Fuente: Elaboración propia, 2016
Clientes
Depósitos 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
1 3,61 9,43 13,42 2,24 8,25 8,06 9,22 5,83 5,83 12,04 10,82 8,06 6,32 12,04 5,00 3,00 6,71 8,06 3,16 10,63
2 10,00 9,49 13,60 7,21 8,06 5,83 15,62 2,24 10,05 14,56 17,20 3,16 6,08 8,94 5,10 8,60 7,07 13,93 9,43 11,40
3 7,28 4,12 18,87 3,61 13,42 5,00 11,18 9,06 11,40 17,69 13,15 11,00 2,83 16,28 9,85 4,12 2,24 12,37 7,62 5,00
Este procedimiento genera los dos primeros k-ésimos, así como las dos primeras
soluciones de cada iteración que conformarán la lista de soluciones para la RCL.
𝑉1 = {1 3 4 7 9 10 11 15 16 18 19}
𝑉2 = {5 8 12 14}
𝑉3 = {2 6 13 17 20}
48
Con la combinación aleatoria de los dos primeros k-ésimos se generan 500
soluciones en cada iteración de la etapa de construcción GRASP. Este proceso se
realiza con el fin de generar soluciones que puedan cumplir con la capacidad de
los depósitos con distancias razonables (asignando clientes al siguiente depósito
más cercano). La mejor solución obtenida en este proceso después de 20
iteraciones, genera los siguientes vectores con una distancia total de 120,69.
𝑉1 = {1 4 7 9 11 15 16 18 19}
𝑉2 = {3 5 8 10 12 14}
𝑉3 = {2 6 13 17 20}
49
Tabla 5. Lista Restringida de Candidatos -RCL-
129,11 4 4 13 2 Fuente:
8 5 11 Elaboración
2 6 15propia,
13 2016
3 3 9 5 3 2 12 3 5
Clientes Dist.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Total
Solución 1 1 3 2 1 2 3 1 2 1 2 1 2 3 2 1 1 3 1 1 3 120,69
Solución 2 1 3 2 1 1 3 1 2 1 2 1 2 3 2 1 1 3 1 1 3 120,87
Solución 3 1 3 2 1 1 3 1 2 1 1 1 2 3 2 1 1 3 3 1 3 122,66
Solución 4 1 3 1 1 1 3 1 2 1 1 3 2 3 2 1 1 3 3 1 3 124,81
Solución 5 1 3 1 1 1 3 1 2 2 2 1 2 3 2 1 1 3 1 1 3 124,91
Solución 6 1 3 2 1 1 3 3 2 1 2 3 2 3 2 1 1 3 1 1 3 125,17
Depósito
Solución 7 1 3 1 1 2 3 3 2 1 2 1 2 3 2 1 1 3 3 1 3 126,77
asignado
Solución 8 1 3 2 1 1 3 3 2 2 1 3 2 3 2 1 1 3 1 1 3 126,87
Solución 9 1 3 1 1 1 3 1 2 2 2 3 2 3 2 1 1 3 1 1 3 127,24
Solución 10 1 3 1 1 2 2 3 1 1 1 1 2 2 2 1 1 3 1 1 3 127,62
Solución 11 1 3 1 1 1 3 1 2 1 1 3 2 3 1 1 1 3 3 1 3 127,91
Solución 12 1 3 2 1 1 3 1 2 2 1 3 2 3 1 1 1 3 1 1 3 128,01
Solución 13 1 3 1 1 2 3 3 2 1 2 3 2 3 2 1 1 3 3 1 3 129,11
𝑉1 = {1 3 4 5 7 9 10 11 15 16 18 19}
𝑉2 = {8 12 14}
𝑉3 = {2 6 13 17 20}
50
Las mejores soluciones obtenidas en las etapas de construcción y mejora, junto
con las soluciones de la RCL son evaluadas con respecto a la capacidad de los
depósitos.
𝑉1 = {1 4 5 9 15 16 18 19}
𝑉2 = {3 8 10 12 14}
𝑉3 = {2 6 7 11 13 17 20}
51
En cada agrupamiento generado en la primera fase, se requiere de una solución
inicial que permita a la metaheurística encontrar las mejores rutas de atención a
los clientes.
Para crear el vector inicial se aplica la estrategia del vecino más cercano, la cual
utiliza la matriz de distancias simétrica entre clientes y depósitos para determinar
el orden de atención a clientes o la secuencia de recorrido de las rutas. Para el
ejemplo, la matriz de distancias del primer agrupamiento es la siguiente:
El algoritmo del vecino más cercano genera los siguientes vectores iniciales para
los tres depósitos del ejemplo desarrollado (0 representa el depósito en cada
clúster):
𝑇1 = {0 4 16 0 1 19 0 9 18 0 15 5 0}
𝑇2 = {0 8 12 0 14 3 10 0}
𝑇3 = {0 17 13 6 0 2 20 0 7 11 0}
52
Figura 9. Rutas generadas con el algoritmo del vecino más cercano
Fuente: Elaboración propia, 2016
𝑇1 = {0 4 16 0 19 0 9 18 1 0 15 5 0}
𝑇2 = {0 8 0 12 14 3 10 0}
𝑇3 = {0 17 0 13 6 2 20 0 7 11 0}
El proceso de inserción de la primera iteración genera rutas con una distancia total
de 136,26 y se representa a continuación:
53
Figura 10. Rutas generadas con estrategias de vecindad
Fuente: Elaboración propia, 2016
La solución final que se obtiene después de realizar las iteraciones del proceso de
intensificación se describe a continuación:
𝑇1 = {0 4 16 0 1 19 0 9 18 0 15 5 0}
𝑇2 = {0 8 12 0 14 3 10 0}
𝑇3 = {0 17 6 13 0 2 20 0 7 11 0}
54
Tabla 7. Informe final aplicación GC & TR
Fuente: Elaboración propia, 2016
Distancia Total del Problema 140,8873701 Distancia
Cluster 1:
Ruta 1 Depósito 1 4 16 Depósito 1
Distancia 6,65028154 2,236067977 1,414213562 3
Demanda 11 3 8
Ruta 2 Depósito 1 1 19 Depósito 1
Distancia 7,767828936 3,605551275 1 3,16227766
Demanda 14 8 6
Ruta 3 Depósito 1 9 18 Depósito 1
Distancia 18,89320964 5,830951895 5 8,062257748
Demanda 13 8 5
Ruta 4 Depósito 1 15 5 Depósito 1
Distancia 16,85176253 5 3,605551275 8,246211251
Demanda 11 6 5
Cluster 2:
Ruta 1 Depósito 2 8 12 Depósito 2
Distancia 7,634413615 2,236067977 2,236067977 3,16227766
Demanda 13 6 7
Ruta 2 Depósito 2 14 3 10 Depósito 2
Distancia 35,50449169 8,94427191 7 5 14,56021978
Demanda 14 3 3 8
Cluster 3:
Ruta 1 Depósito 3 17 6 13 Depósito 3
Distancia 10,1289902 2,236067977 2,828427125 2,236067977 2,828427125
Demanda 15 3 4 8
Ruta 2 Depósito 3 2 20 Depósito 3
Distancia 11,12310563 4,123105626 2 5
Demanda 11 3 8
Ruta 3 Depósito 3 7 11 Depósito 3
Distancia 26,33328633 11,18033989 2 13,15294644
Demanda 12 7 5
55
3.2 MODELO COMPUTACIONAL
Para el desarrollo del programa que resuelve el modelo propuesto en dos fases,
se utilizó Visual Basic, ya que es un lenguaje simple y es excelente para cálculos
intensivos del CPU, lo cual permite desarrollar grandes y complejas aplicaciones,
ideal para problemas NP-Hard como es el caso del MDVRP.
Visual Basic permite realizar una serie de acciones sobre las macros de Excel
para potenciarlas, brindándoles la interactividad que requieren los procedimientos
metaheurísticos.
Los requisitos funcionales del programa desarrollado para este trabajo son:
Los requisitos no funcionales son las restricciones de los servicios ofrecidos por el
sistema. Son requerimientos que surgen de las necesidades de los usuarios y se
aplican al sistema en su totalidad.
56
El programa debe ser razonablemente rápido en cuanto a su ejecución,
teniendo en cuenta que, a instancias más complejas, mayor será el tiempo
de ejecución.
En ningún caso la ejecución del programa debe suponer el agotamiento de
la memoria.
El programa debe ser de alta fiabilidad, independientemente de la instancia
que se estudie o los algoritmos que se utilicen, el programa debe ser capaz
de terminar su ejecución correctamente.
Una vez se ingresa la información de entrada, el programa crea una hoja en Excel
donde el usuario debe introducir las coordenadas X e Y de la ubicación de cada
uno de los depósitos, de la misma manera la capacidad de estos; lo propio se
hace con los clientes y las demandas de cada uno de ellos.
57
Figura 13. Información de entrada programa de ruteo
Fuente: Elaboración propia, 2016
Matriz de pertenencias
Depósito Depósito Cliente 1 Cliente 2 Cliente 3 Cliente 4 Cliente 5 Cliente 6 Cliente 7 Cliente 8 Cliente 9 Cliente 10
1 1 0,1027 0,1089 0,0655 0,0275 0,0387 0,1740 0,7317 0,0210 0,0568 0,0098
2 2 0,0760 0,0960 0,0524 0,8381 0,0340 0,1038 0,0554 0,0522 0,0465 0,0125
3 3 0,1613 0,1737 0,1279 0,0277 0,1004 0,1604 0,0252 0,7962 0,1207 0,1178
4 4 0,1244 0,2420 0,0984 0,0908 0,0605 0,1752 0,1558 0,0533 0,0844 0,0183
5 5 0,5356 0,3794 0,6557 0,0159 0,7663 0,3866 0,0318 0,0773 0,6916 0,8417
Figura 14. Matriz de pertenencias del programa de ruteo
Fuente: Elaboración propia, 2016
Matriz de distancias
Depósito Depósito Cliente 1 Cliente 2 Cliente 3 Cliente 4 Cliente 5 Cliente 6 Cliente 7 Cliente 8 Cliente 9 Cliente 10
1 1 82,7345 50,7740 66,7308 55,4437 71,3092 76,3217 14,0357 80,0562 69,8928 84,0238
2 2 96,2081 54,0833 74,6324 10,0499 76,1577 98,7927 50,9902 50,7740 77,2010 74,3303
3 3 66,0379 40,1995 47,7598 55,3173 44,2832 79,4796 75,5844 13,0000 47,9270 24,2074
4 4 75,1864 34,0588 54,4518 30,5287 57,0351 76,0592 30,4138 50,2494 57,3149 61,4654
5 5 36,2353 27,2029 21,0950 72,9932 16,0312 51,1957 67,3573 41,7253 20,0250 9,0554
Figura 15. Matriz de distancias del programa de ruteo
Fuente: Elaboración propia, 2016
58
Cells(1 + Y, 14 + x).Value = "=SQRT((R[" & x - Y & "]C10-R["
& Z & "]C3)^2+(R[" & x - Y & "]C9-R[" & Z & "]C2)^2)"
Next x
Next Y
Sub Macro_Fuzzy()
If UserForm1.TextBox2.Value = n Then
For Y = 1 To UserForm1.TextBox2.Value
For x = 1 To UserForm1.TextBox3.Value
Cells(1 + Y, 516 + x).Value = "=1/((RC[-502]/R[" & Z - Y +
1 & "]C[-502])^(2/(R2C13-1)))"
Next x
Next Y
ElseIf UserForm1.TextBox2.Value = n+1 Then
For Y = 1 To UserForm1.TextBox2.Value
For x = 1 To UserForm1.TextBox3.Value
Cells(1 + Y, 516 + x).Value = "=1/((RC[-502]/R[" & Z - Y +
1 & "]C[-502])^(2/(R2C13-1))+(RC[-502]/R[" & Z - Y + 2 &
"]C[-502])^(2/(R2C13-1)))"
Next x
Next Y
End If
End Sub
59
Por cada iteración, el programa selecciona dos soluciones de manera aleatoria,
ubicándolas en un listado de soluciones con su respectiva distancia total.
60
For x = 1 To a
Cells(53, 514 + x).Value = "=SMALL(RC[" & -499 - x & "]:RC[" & -
500 + UserForm1.TextBox3.Value - x & "]," & x & ")"
Next x
ActiveWorkbook.Save
ITERACIONES = UserForm1.TextBox6.Value
Sheets("Hoja2").Select
Cells(Application.WorksheetFunction.RandBetween(401, 500) + 58,
15).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Sheets("Hoja5").Select
Range("B65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
Selection.Paste
Application.CutCopyMode = False
Next Z
61
El programa ordena las soluciones en forma ascendente de acuerdo a la distancia
total. A partir de estas soluciones se genera la lista restringida de candidatos
(RCL) según el valor de seleccionado al ingresar los datos de entrada del
problema. La RCL estará conformada por las soluciones cuya distancia total no
supere el umbral generado por la siguiente relación:
For Y = 1 To RCL
For x = 1 To UserForm1.TextBox3.Value
Cells(1 + Y, 2 + x) =
Application.WorksheetFunction.VLookup(Cells(1 + Y, 2),
Sheets("Hoja4").Range("C2:SI1002"), 1 + x, 0)
Next x
62
Next Y
For Y = 1 To 100
For x = 1 To UserForm1.TextBox3.Value
Cells(52 + Y, 2 + x) =
Application.WorksheetFunction.VLookup(Application.WorksheetF
unction.RandBetween(-RCL, -1), Range("A2:SH51"), 2 + x, 0)
Next x
Next Y
For Y = 1 To 100
Cells(52 + Y, 2) =
Application.WorksheetFunction.Sum(Range(Cells(52 + Y, 3),
Cells(52 + Y, 502)))
Next Y
63
Figura 20. Top 3 soluciones del proceso de mejora en GRASP
Fuente: Elaboración propia, 2016
64
Cells(154, 2 + x) =
Application.WorksheetFunction.VLookup(Cells(154, 2),
Range("B52:SH152"), 1 + x, 0)
Next x
65
Sheets("Hoja9").Select
Cells(1, x + 4).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("Hoja11").Select
Range("C1").Select
ActiveSheet.Paste
Sheets("Reporte1").Select
Cells(514, 1).Value = x
Sheets("Hoja8").Select
Cells(1, 502).Value = x
End If
Next x
Else
Sheets("Hoja8").Select
Range("B2").Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Sheets("Hoja11").Select
Range("C2").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone,
SkipBlanks:= _False, Transpose:=True
Sheets("Reporte1").Select
Cells(514, 1).Value = 1
Sheets("Hoja8").Select
Cells(1, 502).Value = 1
End If
66
El código para el proceso de agrupamiento final es el siguiente:
'Agrupamiento Cluster
Sheets("Hoja11").Select
For Y = 1 To UserForm1.TextBox3.Value
For x = 1 To UserForm1.TextBox2.Value
Cells(1 + Y, 3 + x) = "=IF(R[" & 1 - Y & "]C[" & -x & "]:R["
& UserForm1.TextBox3.Value - Y & "]C[" & -x & "]=R[" & -Y + x
& "]C[" & -1 - x & "],ROW(RC[" & -2 - x & "])-1,"""")"
Next x
Next Y
Range("C65536").End(xlUp).Select
Range(ActiveCell.Offset(1, 1), Cells(800, 53)).Select
Selection.Copy
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
'Etiqueta Depósito
Range("C65536").End(xlUp).Select
For x = 0 To UserForm1.TextBox2.Value - 1
ActiveCell.Offset(1, x + 1) = "Depósito " & x + 1 & ""
Next x
67
Figura 23. Reporte del proceso de agrupamiento en GRASP
Fuente: Elaboración propia, 2016
68
Figura 25. Agrupamientos generados en la primera fase GRASP
Fuente: Elaboración propia, 2016
69
Figura 27. Matriz de distancias para el proceso de ruteo con Búsqueda Tabú
Fuente: Elaboración propia, 2016
A partir de las distancias se aplica el algoritmo del vecino más cercano con el fin
de generar la solución inicial para el proceso de ruteo.
Figura 28. Vector inicial para el proceso de ruteo con Búsqueda Tabú
Fuente: Elaboración propia, 2016
70
'Formula 1-esimo menor de cada cliente u operador logistico del cluster
en cada pag
For Z = 0 To Cells(1, 4).Value
Cells(2 + Z, 104) = "=SMALL(R[" & j & "]C107:R[" & j & "]C[" &
Cells(1, 4).Value + 2 & "],1)"
Next Z
If Z = 0 Then
'Funcion Coincidir
Cells(2 + Z, 5) =
Application.WorksheetFunction.Match(Cells(2 + Z, 104),
Range(Cells(2 + Z, 106 + Cells(1, 4).Value), Cells(2 +
Z, 106)), 0)
End If
'Funcion BuscarV
Cells(2 + Z, 6) = "=VLOOKUP(RC[-1],R2C101:R[" & Cells(1,
4).Value - Z & "]C[96],2,0)"
'Funcion Coincidir
Cells(3 + Z, 5) =
Application.WorksheetFunction.Match(Cells(Cells(2 + Z,
7).Value, 104), Range(Cells(Cells(2 + Z, 7).Value, 106),
Cells(Cells(2 + Z, 7).Value, Cells(1, 4).Value + 106)), 0)
Cells(2 + Z, 6).Select
Selection.Copy
Range(Cells(1, 106), Cells(1, 106 + Cells(1, 4))).Select
71
Selection.Find(What:=Cells(2 + Z, 6).Value,
After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _False, SearchFormat:=False).Activate
ActiveCell.Select
Range(Selection, Selection.End(xlDown)).Clear
Else
'Funcion Coincidir
Cells(2 + Z, 5) = "=MATCH(RC[99],RC[102]:RC[" & Cells(1,
4).Value + 101 & "],0)+1"
'Funcion BuscarV
Cells(2 + Z, 6) = "=VLOOKUP(RC[-1],R2C101:R[" & Cells(1,
4).Value - Z & "]C[96],2,0)"
Sub capacidad()
72
For j = 1 To UserForm1.TextBox7.Value 'Segun las repeticiones desde 1-30
Cells(1, 6).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Range("A500").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:=True
repeticiones = 200
Range(Cells(500, 1), Cells(499 + repeticiones, Cells(1, 4).Value +
2)).Select
Application.CutCopyMode = False
Selection.FillDown
For i = 1 To repeticiones
On Error Resume Next
a = Application.WorksheetFunction.RandBetween(2, Cells(1,
4).Value + 1)
b = Application.WorksheetFunction.RandBetween(2, Cells(1,
4).Value + 1)
Cells(499 + i, a).Cut
Cells(499 + i, b).Insert Shift:=xlToRight
Next i
For x = 1 To repeticiones
For Y = 1 To Cells(1, 4).Value + 2
Cells(999 + x, Y) =
Application.WorksheetFunction.VLookup(Cells(499 + x, Y),
Range("CX2:CY500"), 2, 0)
Next Y
Next x
For Y = 1 To repeticiones
For x = 1 To Cells(1, 4).Value + 1
Range(Cells(1, 106), Cells(1, 106 + Cells(1, 4))).Select
Selection.Find(What:=Cells(499 + Y, x).Value,
After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:=False).Activate
ActiveCell.Offset(Cells(999 + Y, x + 1), 0).Select
Selection.Copy
Cells(1499 + Y, x).Select
ActiveSheet.Paste
Next x
Next Y
For Y = 1 To repeticiones
For x = 1 To Cells(1, 4).Value + 1
Range(Cells(1, 106), Cells(1, 106 + Cells(1, 4))).Select
73
Selection.Find(What:=Cells(499 + Y, x).Value,
After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:=False).Activate
ActiveCell.Offset(Cells(999 + Y, x + 1), 0).Select
Selection.Copy
Cells(1499 + Y, x).Select
ActiveSheet.Paste
Next x
Next Y
For x = 1 To repeticiones
Cells(1499 + x, Cells(1, 4).Value + 2) =
Application.WorksheetFunction.Sum(Range(Cells(1499 + x, 1),
Cells(1499 + x, Cells(1, 4).Value + 1)))
Next x
For x = 1 To 5
Range(Cells(1500, Cells(1, 4).Value + 2), Cells(1499 +
repeticiones, Cells(1, 4).Value + 2)).Select
Selection.Find(What:=Cells(1498, x).Value, After:=ActiveCell,
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:=False).Activate
ActiveCell.Select
Range(Selection, Selection.End(xlToLeft)).Select
Selection.Copy
Cells(2, x * 2 + 11).Select
Cells(1, 2 * x + 11) = "Dist.Ruta"
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:=True
Range(Cells(1500, Cells(1, 4).Value + 2), Cells(1499 +
repeticiones, Cells(1, 4).Value + 2)).Select
Selection.Find(What:=Cells(1498, x).Value, After:=ActiveCell,
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:=False).Activate
ActiveCell.Offset(-1000, 0).Select
Range(Selection, Selection.End(xlToLeft)).Select
Selection.Copy
Cells(1, x * 2 + 10).Select
74
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:=True
Next x
De las 5 soluciones de la lista tabú se escoge el vector con la menor distancia total
que cumpla con la capacidad de los vehículos. Sobre este vector se aplica el
proceso de intensificación repitiendo el algoritmo de inserción e intercambio. Este
proceso se realiza el número de iteraciones indicadas en los datos de entrada.
75
Next j
Cells(1, 7).Select
End Sub
Figura 31. Generación de rutas para cada depósito con Búsqueda Tabú
Fuente: Elaboración propia, 2016
Finalmente, el programa genera un reporte en PDF y una gráfica con las rutas
para cada uno de los depósitos. En el reporte se indica la distancia recorrida y la
demanda satisfecha por cada una de las rutas.
76
REPORTE RUTAS/CLUSTER PROBLEMA RUTEO - MDVRP
Distancia Total del Problema 596,6369916 Distancia Límite de Capacidad por Vehículo 15 10/07/16 21:03
Cluster 1:
Ruta 1 Depósito 1 7 18 Depósito 1
Distancia 97,06875319 14,03566885 34,525353 48,50773134
Demanda 9 6 3
Cluster 2:
Ruta 1 Depósito 2 4 12 Depósito 2
Distancia 51,94619266 10,04987562 16,40121947 25,49509757
Demanda 11 5 6
Cluster 3:
Ruta 1 Depósito 3 13 8 11 Depósito 3
Distancia 81,17428982 13,03840481 15,26433752 21,47091055 31,40063694
Demanda 15 4 5 6
Cluster 4:
Ruta 1 Depósito 4 14 2 Depósito 4
Distancia 71,03454763 5,830951895 31,144823 34,05877273
Demanda 11 6 5
Ruta 2 Depósito 4 17 6 16 Depósito 4
Distancia 152,1642324 63,0634601 13,03840481 6,708203932 69,35416354
Demanda 13 4 5 4
Cluster 5:
Ruta 1 Depósito 5 10 Depósito 5
Distancia 18,11077028 9,055385138 9,055385138
Demanda 4 4
Ruta 2 Depósito 5 15 9 3 Depósito 5
Distancia 50,24422726 9,433981132 16,55294536 3,16227766 21,09502311
Demanda 14 3 5 6
Ruta 3 Depósito 5 5 1 Depósito 5
Distancia 74,8939784 16,03121954 22,627417 36,23534186
Demanda 10 5 5
Figura 32. Reporte final de rutas para cada depósito
Fuente: Elaboración propia, 2016
77
4. RESULTADOS DE LA INVESTIGACIÓN
Con el fin de validar la metodología propuesta Grasp Clustering & Tabu Routing
-GC & TR- se evaluaron casos de prueba de la literatura especializada, a partir de
los cuales se mide la eficiencia computacional y la precisión que tiene el algoritmo
para obtener resultados de buena calidad.
La variable que se utilizó como punto comparativo con los resultados propuestos
por diversos investigadores, es la función objetivo obtenida en las corridas del
algoritmo que busca minimizar las distancias totales recorridas por todos los
vehículos. A partir de esta comparación se obtiene el GAP, el cual es la diferencia
porcentual que existe entre el valor de la función objetivo de la mejor solución
conocida y la solución del algoritmo propuesto.
Las instancias de este grupo cuentan con su valor óptimo global encontrado, en su
mayoría, a partir de la implementación de la heurística de Búsqueda Tabú
propuesta por Cordeau, Gendreau y Laporte -CGL- para resolver tres importantes
variantes del VRP: PVRP, PTSP y MDVRP (Cordeau, Gendreau, & Laporte,
1997); otras instancias de este grupo encuentran su óptimo global con la
heurística de Búsqueda Tabú propuesta por Renaud, Laporte y Boctor -RLB- para
resolver el MDVRP (Renaud, Laporte, & Boctor, 1996) y con la heurística de Chao,
Golden y Wasil -CGW- para resolver el MDVRP (Chao, Golden, & Wasil, 1993).
La descripción de los archivos con los casos de prueba del MDVRP diseñados por
Cordeau, se puede encontrar en la página web del Grupo de Investigación NEO
(Networking and Emerging Optimization Research Group) de la Universidad de
Málaga (España), disponible en http://neo.lcc.uma.es/vrp/vrp-instances/multiple-
depot-vrp-instances/
78
En la primera fila se encuentra la siguiente información:
tipo m n t
i x y d q
79
Tabla 8. Información de entrada instancia p01
Fuente: Elaboración propia, 2016
2 4 50 4
0 80
0 80
0 80
0 80
1 37 52 0 7
2 49 49 0 30
3 52 64 0 16
4 20 26 0 9
5 40 30 0 21
6 21 47 0 15
7 17 63 0 19
8 31 62 0 23
9 52 33 0 11
10 51 21 0 5
11 42 41 0 19
12 31 32 0 29
13 5 25 0 23
14 12 42 0 21
15 36 16 0 10
16 52 41 0 15
17 27 23 0 3
18 17 33 0 41
19 13 13 0 9
20 57 58 0 28
21 62 42 0 8
22 42 57 0 8
23 16 57 0 16
24 8 52 0 10
25 7 38 0 28
26 27 68 0 7
27 30 48 0 15
28 43 67 0 14
29 58 48 0 6
30 58 27 0 19
31 37 69 0 11
32 38 46 0 12
33 46 10 0 23
34 61 33 0 26
35 62 63 0 17
36 63 69 0 6
37 32 22 0 9
38 45 35 0 15
39 59 15 0 14
40 5 6 0 7
41 10 17 0 27
42 21 10 0 13
43 5 64 0 11
44 30 15 0 16
45 39 10 0 10
46 32 39 0 5
47 25 32 0 25
48 25 55 0 17
49 48 28 0 18
50 56 37 0 10
51 20 20 0 0
52 30 40 0 0
53 50 30 0 0
54 60 50 0 0
80
Los resultados obtenidos con GC & TR son los siguientes:
81
La representación gráfica de las rutas es la siguiente:
82
La primera fila contiene la distancia total o valor de la función objetivo.
Las siguientes filas contienen, por cada ruta, la siguiente información:
l k d q list
Los resultados muestran que el algoritmo desarrollado (GC & TR) se aproxima con
un porcentaje de error del 6,3% a la mejor solución conocida, lo cual indica que la
metodología propuesta es apropiada para solucionar problemas de distribución
MDVRP propios de las empresas de transporte de carga por carretera.
83
Tabla 11. Resultados del Benchmark de Christofides y Eilon
Fuente: Elaboración propia, 2016
Mejor Solución
Número de Número de Capacidad de
Instancia Solución Metodología propuesta GAP
depósitos clientes los vehículos
Conocida GC & TR
p01 4 50 80 576,87 CGL - RLB 613,27 0,0631
p02 4 50 160 473,53 CGL 502,14 0,0604
p03 5 75 140 641,19 CGW 691,46 0,0784
p04 2 100 100 1001,59 CGL 1087,98 0,0863
p05 2 100 200 750,03 CGL 805,43 0,0739
p06 3 100 100 876,5 RLB 947,12 0,0806
p07 4 100 100 885,8 CGL 958,27 0,0818
Un total de 4 instancias del MDVRP, descritas por Guillett y Johnson para resolver
el problema de despacho de vehículos de terminales múltiples (Gillett & Johnson,
1976), fueron documentadas para este trabajo.
La mejor solución conocida para cada instancia de este grupo fue encontrada con
la metodología CGL (Cordeau, Gendreau y Laporte).
Para estos resultados se evidencian buenas soluciones que tienen un GAP por
debajo del 10%.
84
4.3 Resultados en las Instancias de Chao, et al (1993)
La mejor solución conocida para cada instancia de este grupo fue encontrada con
la metodología CGL (Cordeau, Gendreau y Laporte) o con la metodología RLB
(Renaud, Laporte y Boctor)
La mejor solución conocida para cada instancia de este grupo fue encontrada con
la metodología CGL (Cordeau, Gendreau y Laporte) propuesta por los mismos
autores
85
Tabla 14. Resultados del Benchmark de Cordeau, Gendreau y Laporte.
Fuente: Elaboración propia, 2016
Mejor Solución
Número de Número de Capacidad de
Instancia Solución Metodología propuesta GAP
depósitos clientes los vehículos
Conocida GC & TR
pr01 4 48 200 861,32 CGL 909,26 0,0557
pr02 4 96 195 1307,61 CGL 1398,85 0,0698
pr03 4 144 190 1806,6 CGL 1943,61 0,0758
pr04 4 192 185 2072,52 CGL 2230,93 0,0764
pr05 4 240 180 2385,77 CGL 2574,82 0,0792
pr06 4 288 175 2723,27 CGL 2938,07 0,0789
pr07 6 72 200 1089,56 CGL 1173,54 0,0771
pr08 6 144 190 1666,6 CGL 1797,93 0,0788
pr09 6 216 180 2153,1 CGL 2322,29 0,0786
pr10 6 288 170 2921,85 CGL 3156,05 0,0802
Estos resultados generan soluciones de buena calidad para todas las instancias
del benchmark, con diferencias inferiores al 8%.
86
5. CONCLUSIONES
El modelo propuesto de dos fases está basado en una metaheurística híbrida que
aplica el procedimiento GRASP para generar los agrupamientos de clientes en la
primera fase y el procedimiento de Búsqueda Tabú para generar las rutas de cada
clúster en la segunda fase. Esta metodología híbrida fue denominada Grasp
Clustering & Tabu Routing (GC & TR).
87
El procedimiento Grasp Clustering & Tabu Routing es susceptible de mejoras con
las cuales se logre optimizar los resultados obtenidos. Estas mejoras pueden
radicar en la intensificación y diversificación de la búsqueda sobre la solución
encontrada a partir de la asignación de clientes de un clúster a otro.
88
REFERENCIAS BIBLIOGRÁFICAS
Aguado A., A., & Jiménez de V., J. (2013). Optimización de rutas de transporte.
Universidad Complutense de Madrid. Madrid, España: E-Prints
Complutense.
Bianchi, L., Birattari, M., Chiarandini, M., Manfrin, M., Mastrolilli, M., Paquete, L., &
Rossi-Doria, O. (2004). Metaheuristics for the Vehicle Routing Problem with
Stochastic Demands. Switzerland: IDSIA, USI-SUPSI.
Bräysy, O., & Gendreau, M. (2002). Vehicle Routing Problem with Time Windows,
Part I: Route Construction and Local Search Algorithms. Norway: SINTEF
Applied Mathematics, Department of Optimization.
89
Cano, J., Cordón, O., Herrera, F., & Sánchez, L. (Noviembre de 2002). A GRASP
Algorithm for Clustering. Advances in Artificial Intelligence — IBERAMIA
2002, 2527, 214-223.
Chao, I., Golden, B., & Wasil, E. (1993). A new heuristic for the multi-depot vehicle
routing problem that improves upon best-known solutions. American Journal
of Mathematical and Management Sciences, 13(3), 371–406.
Chen, P., & Xu, X. (Octubre de 2008). A Hybrid Algorithm for Multi-depot Vehicle
Routing Problem. Service Operations and Logistics, and Informatics, 2008.
IEEE/SOLI 2008., 2, 2031-2034.
Cordeau, J. F., Gendreau, M., & Laporte, G. (1997). A tabu search heuristic for
periodic and multi-depot vehicle routing problems. Networks, 30(2), 105–
119.
Crevier, B., Cordeau, J.-F., & Laporte, G. (2007). The multi-depot vehicle routing
problem with inter-depot routes. European Journal of Operational Research,
176, 756-773.
Daza, J., Montoya, J., & Narducci, F. (Diciembre de 2009). Resolución del
problema de enrutamiento de vehículos con limitaciones de capacidad
utilizando un procedimiento metaheurístico de dos fases. EIA, 6(12), 23-38.
90
Francis, P., Smilowitz, K., & Tzur, M. (2005). The Period Vehicle Routing Problem
with Service Choice. Chicago, USA: Department of Industrial Engineering
and Management Sciences. The University of Chicago.
Geetha, S., Vanathi, P., & Poonthalir, G. (2012). Metaheuristic Approach for the
Multi-Depot Vehicle Routing Problem. Applied Artificial Intelligence: An
International Journal, 26(9), 878-901.
Gendreau, M., & Potvin, J.-Y. (2010). Tabu Search. En M. Gendreau, & J.-Y.
Potvin, Handbook of Metaheuristics (Vol. 146, págs. 41-59). New York:
Springer Science.
Glover, F., & Laguna, M. (1993). Tabu Search in Modern Heuristic Techniques for
Combinatorial Problems. Oxford: John Wiley & Sons.
Glover, F., & Laguna, M. (1997). Tabu Search. Norwell, MA, USA: Kluwer
Academic Publishers.
Glover, F., Laguna, M., & Martí, R. (2006). Principles of Tabu Search. To appear in
Approximation Algorithms and Metaheuristics. Chapman & Hall.
Golden, B. L., Assad, A. A., & Wasil, E. A. (2002). Routing Vehicles in the Real
World: Applications in the Solid Waste, Beverage, Food, Dairy, and
Newspaper Industries. The Vehicle Routing Problem, 245-286.
González V., G., & González A., F. (Abril de 2007). Metaheurísticas aplicadas al
ruteo de vehículos. Un caso de estudio. Parte 2: algoritmo genético,
comparación con una solución heurística. Revista Ingeniería e
Investigación, 27(1), 149-157.
Gulley, N. J. (2000). Fuzzy Logic Toolbox User’s Guide. Massachusetts: The Math
Works Inc.
He, Y., Miao, W., Xie, R., & Shi, Y. (2014). A Tabu Search Algorithm with Variable
Cluster Grouping for Multi-depot Vechicle Routing Problem. Proceedings of
the 2014 IEEE 18th International Conference on Computer Supported
Cooperative Work in Design, 1-6.
91
Hernández, R., Fernández, C., & Baptista, P. (2006). Metodología de la
Investigación. México: McGraw-Hill.
Ho, W., Ho, G. T., Ji, P., & Lau, H. C. (2008). A hybrid genetic algorithm for the
multi-depot vehicle routing problem. Engineering Applications of Artificial
Intelligence, 21, 548-557.
Jain, A., Murty, M., & Flynn, P. (1999). Data Clustering: A review. ACM Computer
Surveys, 31(3), 264-323.
Lee, C., Epelman, M., Chelsea, C., & Bozer, Y. (2000). A Shortest Path Approach
to the Multiple-Vehicle Routing Problem with Split Pick-Ups. Atlanta, GA:
17th International Symposium on Mathematical Programming.
Liu, R., Jiang, Z., & Geng, N. (Marzo de 2012). A hybrid genetic algorithm for the
multi-depot open vehicle routing problem. OR Spectrum, 36(2), 401-421.
Luo, J., Li, X., & Chen, M.-R. (Marzo de 2013). Multi-Phase Meta-Heuristic for
Multi-Depots Vehicle Routing Problem. Journal of Software Engineering and
Applications(6), 82-86.
Melián, B., Moreno P., J., & Moreno V., J. (2003). Metaheurísticas: una Visión
Global. San Cristóbal de La Laguna, Tenerife: Universidad de la Laguna.
Narasimha, K. S., Kivelevitch, E., & Kumar, M. (Junio de 2012). Ant Colony
Optimization Technique to Solve the Min-Max Multi Depot Vehicle Routing
Problem. American Control Conference, 1-6.
92
Olivera, A. (2004). Heurísticas para Problemas de Ruteo de Vehículos.
Montevideo, Uruguay: Instituto de Computación, Facultad de Ingeniería.
Universidad de la República.
Renaud, J., Laporte, G., & Boctor, F. F. (1996). A tabu search heuristic for the
multi-depot vehicle routing problem. Computers & Operations Research,
23(3), 229-235.
Riopel, D., Langevin, A., & Campbell, J. F. (2005). The Network of Logistics
Decisions. Logistics Systems: Design and Optimization, 1-38.
Rocha, L., González, C., & Orjuela, J. (2011). Una revisión al estado del arte del
problema de ruteo de vehículos: Evolución histórica y métodos de solución.
Ingeniería, 16(2), 35-55.
Rojas D., J., Chavarro P., J. C., & Moreno L., R. (2008). Tecnicas de lógica difusa
aplicadas a la minería de datos. Scientia Et Technica, XIV(40), 1-6.
Soeanu, A., Ray, S., & Debbabi, M. (Agosto de 2011). A Decentralized Heuristic
for Multi-Depot Split-Delivery Vehicle Routing Problem. International
Conference on Automation and Logistics, 1-6.
Tan, P.-N., Steinbach, M., & Kumar, V. (2006). Introduction to Data Mining. Boston:
Pearson Addison-Wesley.
Tang, K., & Yin, J. y. (Julio de 2010). A Genetic-Based Optimization for Multi-Depot
Vehicle Routing Problems. 2010 IEEE International Symposium on
Industrial Electronics , 1545-1549.
93
Tansini, L., Urquhart, M., & Viera, O. (2001). Comparing Assignment Algorithms for
the Multi-Depot VRP. Montevideo, Uruguay: Dpto. Investigación Operativa,
Instituto de Computación, Facultad de Ingeniería, UDELAR.
Toth, P., & Vigo, D. (2002). Vehicle Routing Problem. Philadelphia, USA: Society
for Industrial and Applied Mathematics.
Vacic, V., & Sobh, T. (2004). Vehicle Routing Problem with Time Windows.
Bridgeport, USA: Department of Computer Science and Engineering,
University of Bridgeport.
Vicente, E., Rivera, L., & Mauricio, D. (2005). GRASP en la resolución del
problema de Clustering. (U. N. Marcos, Ed.) Revista de investigación de
Sistemas e Informática, 2(2), 1-10.
Vidal, T., Crainic, T., Gendreau, M., Lahrichi, N., & Rei, W. (Enero de 2011). A
Hybrid Genetic Algorithm for Multi-depot and Periodic Vehicle Routing
Problems. CIRRELT, 5, 1-44.
Wang, X.-B., Sun, J.-Y., & Ren, C.-Y. (Julio de 2009). Study on Hybrid Heuristic
Algorithm for Multi-depot Vehicle Routing Problem with Hybrid Picking-
Delivery Strategy. Proceedings of the Eighth International Conference on
Machine Learning and Cybernetics, 1-6.
94