Está en la página 1de 94

DISEÑO DE UN SISTEMA DE RUTEO DE VEHÍCULOS CON MÚLTIPLES

DEPÓSITOS EN EMPRESAS DE TRANSPORTE DE


CARGA POR CARRETERA

Autor
YIMY ALEXANDER HERNÁNDEZ ORTIZ
Ingeniero Industrial por la Universidad Distrital Francisco José de Caldas

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS


FACULTAD DE INGENIERÍA
MAESTRÍA EN INGENIERÍA INDUSTRIAL
BOGOTÁ, D.C.
2016
DISEÑO DE UN SISTEMA DE RUTEO DE VEHÍCULOS CON MÚLTIPLES
DEPÓSITOS EN EMPRESAS DE TRANSPORTE DE
CARGA POR CARRETERA

Tesis de Maestría como prerrequisito para optar


al título de Magister en Ingeniería Industrial

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

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS


FACULTAD DE INGENIERÍA
MAESTRÍA EN INGENIERÍA INDUSTRIAL
BOGOTÁ, D.C.
2016

2
NOTA DE ACEPTACIÓN

La presente tesis de Maestría denominada Diseño


de un Sistema de Ruteo de Vehículos con Múltiples
Depósitos en Empresas de Transporte de Carga
por Carretera, se acepta según lo establecido por la
Universidad Distrital Francisco José de Caldas y la
Maestría en Ingeniería Industrial con anotación de:
___________________________________

_____________________________________
MBA. Ing. Flor de María Umaña Villamizar
Directora de Tesis

_____________________________________

Jurado

_____________________________________

Jurado

Bogotá, D.C. – Colombia; mayo de 2016

3
ÍNDICE

RESUMEN ............................................................................................................... 9

INTRODUCCIÓN ................................................................................................... 10

1. DESCRIPCIÓN DE LA INVESTIGACIÓN .......................................................... 13

1.1 EL PROBLEMA ............................................................................................ 13

1.1.1 Descripción ............................................................................................ 13

1.1.2 Formulación ........................................................................................... 14

1.2 JUSTIFICACIÓN DE LA INVESTIGACIÓN .................................................. 14

1.3 OBJETIVOS DE LA INVESTIGACIÓN ......................................................... 15

1.3.1 General .................................................................................................. 15

1.3.2 Específicos ............................................................................................ 15

1.4 HIPÓTESIS DE INVESTIGACIÓN ............................................................... 15

1.5 DISEÑO METODOLÓGICO ......................................................................... 16

2. FUNDAMENTACIÓN TEÓRICA Y CONCEPTUAL ........................................... 18

2.1 LOGÍSTICA DE DISTRIBUCIÓN .................................................................. 18

2.2 PROBLEMA DE RUTEO DE VEHÍCULOS .................................................. 19

2.2.1 Elementos del VRP ................................................................................ 21

2.2.2 Métodos de Solución. ............................................................................ 22

2.2.2.1 Heurísticas Aplicadas al Ruteo de Vehículos ..................................... 23

2.2.2.2 Metaheurísticas Aplicadas al Ruteo de Vehículos .............................. 23

2.3 RUTEO DE VEHÍCULOS CON MÚLTIPLES DEPÓSITOS.......................... 24

2.3.1 Algoritmos de Agrupamiento (Clustering) para el MDVRP .................... 25

4
2.3.2 Algoritmos de Ruteo para el MDVRP..................................................... 33

3. DESARROLLO DE LA INVESTIGACIÓN .......................................................... 41

3.1 METODOLOGÍA DEL MODELO PROPUESTO ........................................... 41

3.1.1 Desarrollo Metodológico ........................................................................ 42

3.1.1.1 GRASP Clustering .............................................................................. 42

3.1.1.2 Tabu Routing ...................................................................................... 43

3.1.2 Aplicación de la metodología GC & TR.................................................. 46

3.2 MODELO COMPUTACIONAL ...................................................................... 56

3.2.1 Herramienta utilizada ............................................................................. 56

3.2.2 Requisitos funcionales ........................................................................... 56

3.2.3 Requisitos no funcionales ...................................................................... 56

3.2.4 Descripción del programa ...................................................................... 57

4. RESULTADOS DE LA INVESTIGACIÓN .......................................................... 78

4.1 Resultados en las Instancias de Christofides y Eilon (1969) ........................ 83

4.2 Resultados en las Instancias de Guillett y Johnson (1976) .......................... 84

4.3 Resultados en las Instancias de Chao, et al (1993) ..................................... 85

4.4 Resultados en las Instancias de Cordeau, et al (1997) ................................ 85

5. CONCLUSIONES .............................................................................................. 87

REFERENCIAS BIBLIOGRÁFICAS....................................................................... 89

5
INDICE DE FIGURAS

Figura 1. Representación gráfica del VRP ............................................................. 20


Figura 2. Algoritmo K-means para encontrar tres clústeres ................................... 27
Figura 3. Diagrama de Flujo de la metaheurística propuesta -GC & TR-............... 45
Figura 4.Ubicación geográfica de clientes y depósitos .......................................... 47
Figura 5. Agrupamientos generados por el primer k-ésimo ................................... 48
Figura 6. Agrupamientos generados en el proceso de construcción GRASP ........ 49
Figura 7. Agrupamientos generados en el proceso de mejora GRASP ................. 50
Figura 8. Agrupamientos finales GRASP ............................................................... 51
Figura 9. Rutas generadas con el algoritmo del vecino más cercano .................... 53
Figura 10. Rutas generadas con estrategias de vecindad ..................................... 54
Figura 11. Rutas finales aplicación GC & TR ......................................................... 55
Figura 12. Interfaz inicial del programa de ruteo .................................................... 57
Figura 13. Información de entrada programa de ruteo........................................... 58
Figura 14. Matriz de pertenencias del programa de ruteo ..................................... 58
Figura 15. Matriz de distancias del programa de ruteo .......................................... 58
Figura 16. Soluciones del proceso constructivo de GRASP .................................. 59
Figura 17. Listado de soluciones aleatorias GRASP ............................................. 60
Figura 18. RCL del programa de ruteo .................................................................. 62
Figura 19. Soluciones del proceso de mejora en GRASP ..................................... 63
Figura 20. Top 3 soluciones del proceso de mejora en GRASP ............................ 64
Figura 21. Evaluación de capacidad y demanda para las soluciones GRASP ...... 64
Figura 22. Proceso de agrupamiento en GRASP. ................................................. 66
Figura 23. Reporte del proceso de agrupamiento en GRASP ............................... 68
Figura 24. Consolidación de los clústeres en GRASP. .......................................... 68
Figura 25. Agrupamientos generados en la primera fase GRASP ......................... 69
Figura 26. Interfaz restricción de capacidad de los vehículos. ............................... 69
Figura 27. Matriz de distancias para el proceso de ruteo con Búsqueda Tabú ..... 70

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

Tabla 1. Información de entrada ejemplo aplicación GC & TR .............................. 46


Tabla 2. Matriz de pertenencias entre clientes y depósitos ................................... 47
Tabla 3. Matriz de distancias entre clientes y depósitos ........................................ 48
Tabla 4. Dos primeros k-ésimos del espacio de soluciones .................................. 48
Tabla 5. Lista Restringida de Candidatos -RCL- .................................................... 50
Tabla 6. Matriz simétrica de distancias entre clientes y depósitos ......................... 52
Tabla 7. Informe final aplicación GC & TR ............................................................. 55
Tabla 8. Información de entrada instancia p01 ...................................................... 80
Tabla 9. Resultados del caso de prueba p01 aplicando GC & TR. ........................ 81
Tabla 10. Mejor solución conocida de la instancia p01 .......................................... 82
Tabla 11. Resultados del Benchmark de Christofides y Eilon ................................ 84
Tabla 12. Resultados del Benchmark de Gillett y Johnson .................................... 84
Tabla 13. Resultados del Benchmark de Chao, Golden y Wasil. ........................... 85
Tabla 14. Resultados del Benchmark de Cordeau, Gendreau y Laporte. .............. 86

8
RESUMEN

El sector transporte juega un papel trascendental en el fortalecimiento de los


procesos de globalización y competitividad de un país. La globalización de las
economías es un escenario que requiere de los países un esfuerzo para optimizar
sus procesos, siendo la disponibilidad y accesibilidad de los bienes, factores
necesarios para lograr mayor competitividad a nivel internacional.

La gestión de los problemas de distribución afecta directamente a la


competitividad de las empresas, especialmente a aquellas dedicadas al transporte
de carga. Así, el establecimiento de rutas y horarios para vehículos constituye un
conjunto de problemas habituales que, si no se resuelven de manera óptima,
acarrean un deterioro significativo en las utilidades de las empresas.

Este trabajo presenta el diseño de un sistema de ruteo de vehículos con múltiples


depósitos (MDVRP), utilizado para resolver el problema operacional que enfrentan
día a día las empresas de transporte de carga por carretera, las cuales distribuyen
bienes desde sus centros de distribución hasta sus clientes ubicados
geográficamente a nivel nacional.

El modelo propuesto utiliza una metaheurística híbrida denominada Grasp


Clustering & Tabu Routing, la cual fue diseñada utilizando una metodología de dos
fases: clusterizar primero, rutear después. El procedimiento híbrido propuesto
emplea en su primera fase el algoritmo GRASP (Greedy Randomized Adaptive
Search Procedures) como técnica de agrupamiento para la generación de
clústeres; luego, en la segunda fase se aplica el algoritmo de Búsqueda Tabú para
generar las rutas de distribución en cada uno de los clústeres.

Los resultados de la metodología propuesta fueron evaluados con casos de


prueba del MDVRP disponibles en librerías especializadas de investigadores
reconocidos del VRP. Al comparar los resultados del algoritmo propuesto con la
mejor solución conocida, se evidencia que la metodología GC & TR genera
soluciones con un error relativo por debajo del 8% en promedio, lo cual se
considera apropiado para solucionar el MDVRP como problema típico al que se
enfrentan las empresas distribuidoras de carga por carretera.

Palabras clave: Ruteo de vehículos con múltiples depósitos, Transporte de carga,


clustering, GRASP, Búsqueda Tabú.

9
INTRODUCCIÓN

La globalización de los mercados ha provocado una aceleración del comercio. El


transporte, que ya es una función vital, adquiere así una posición de mayor
carácter estratégico en el marco de enfoques tales como el Justo a tiempo (Just in
time – JIT), Respuesta eficiente al consumidor (Efficient consumer response –
ECR), Administración de la cadena de suministro (Supply chain management –
SCM), entre otras que consolidan la visión de cadena de valor.

La importancia de la eficiencia de los sistemas de distribución se vuelve evidente


cuando se considera el impacto de los costos asociados a las operaciones de las
empresas. La complejidad en el mundo de la distribución física, las diferentes
tecnologías aplicables, las exigencias del servicio y una legislación en constante
cambio, hace que esta función consuma en torno a un 40% de los gastos de
distribución (Anaya, 2009).

El transporte de bienes desempeña un papel importante al ser un elemento central


en el desarrollo económico de un país. Hoy en día, el transporte por carretera
(transporte terrestre) es el principal medio utilizado por las empresas. La principal
ventaja del transporte por carretera se deriva de la utilización de una
infraestructura vial universal, donde se puede acceder a cualquier punto desde el
origen de la carga sin necesidad de efectuar transbordos, lo que hace que para la
distribución nacional sea el sistema más generalizado.

El transporte de mercancías es una función muy importante dentro del mundo de


la distribución, ya que en él están involucrados tres aspectos básicos (Anaya
Tejero, 2015), tales como la calidad del servicio ofrecido a los clientes, los costos
añadidos al producto e inversiones de capital requeridas.

Un plan básico de distribución debe especificar las cantidades y la secuencia de


las entregas a realizar, teniendo en cuenta los requerimientos específicos de cada
uno de los clientes. Sin embargo, es necesario tener una adecuada planificación
de estas actividades con el fin de aumentar la eficiencia en la utilización de los
recursos de transporte, y, por tanto, generar beneficios económicos a la compañía.

El problema de ruteo de vehículos y sus variantes surgen de manera protagónica


en áreas de la logística y el transporte de bienes. Se sabe que para ciertos
productos su costo depende en gran medida a la forma en que éste se mueve a
través del canal de distribución. La optimización de la ruta logística puede
disminuir sensiblemente el costo del producto, además de proveer valores
agregados intangibles como la satisfacción del cliente y lealtad a la marca debido

10
a entregas a tiempo y costos razonables (Odette, 2009).

Las empresas prestadoras de servicios de transporte necesitan programar


entregas de mercancías a sus clientes. En este escenario el problema de diseño
de rutas para los vehículos que sirven a los clientes cobra especial interés. El
problema consiste en programar la secuencia de entregas de una flota de
vehículos con capacidad fija. La solución se puede plantear a través de una
aproximación en dos fases, donde inicialmente se generan grupos de clientes
(clústeres) mediante un algoritmo de agrupamiento, para luego construir rutas
utilizando alguna heurística o metaheurística.

En este trabajo se aborda un problema de ruteo de vehículos, en el cual se trata


de diseñar rutas óptimas para vehículos de carga que deben realizar entregas de
mercancía desde múltiples centros de distribución localizados geográficamente a
nivel nacional.

Este problema es de suma importancia en empresas de logística, o que incluyan


entre sus servicios la entrega de productos a corto plazo. La utilización de técnicas
informáticas para la resolución de estos problemas representa una reducción
importante en los costos asociados al tamaño de una flota, el combustible
requerido y el tiempo utilizado para la entrega.

Para la resolución de este problema se aplicaron diferentes procedimientos


basados en los principios de la programación matemática y procesos heurísticos y
metaheurísticos, con el fin de obtener el modelo que responda a las necesidades
planteadas en problemas complejos con gran número de parámetros y variables,
como es el caso del ruteo de vehículos.

Este trabajo de investigación se estructuró de la siguiente manera:

En un primer momento se describieron los aspectos preliminares de la


investigación, en donde se indicó el problema objeto de estudio, la justificación,
metodología y los objetivos a alcanzar con el desarrollo de la investigación.

En el segundo capítulo se presentó la fundamentación teórica y conceptual del


estado del arte relacionado con el ruteo de vehículos y especialmente el ruteo de
vehículos con múltiples depósitos, en donde se referenciaron los algoritmos y
procedimientos utilizados para resolver este tipo de problemas.

Posteriormente, en el capítulo 3, se realizó el desarrollo de la investigación


describiendo la metodología utilizada para abordar la metaheurística híbrida Grasp
Clustering y Tabu Routing -GC & TR- propuesta en este trabajo. Así mismo se
presentó el modelo computacional desarrollado en Visual Basic para la
implementación de esta metodología.

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

El mayor desafío en el campo de la gestión de la cadena de suministro y la


logística industrial es la de optimizar la entrega de productos desde los
proveedores hasta los clientes.

1.1.1 Descripción

Las redes de transporte de mercancías surgen por la necesidad de conectar y


transportar los bienes de consumo desde su punto de producción hasta el
mercado (clientes). En la fase de distribución, la mercancía puede ser
transportada con una gran variedad de modos de transporte y puede realizar
varias paradas en almacenes o puntos de cambio modal hasta llegar a su destino
final. La configuración de la red de transporte determina los costos de distribución
de la mercancía, así como la planificación y organización temporal de la cadena
de suministro de los productos al mercado (Estrada, 2007).

El sistema de transporte de bienes se ha caracterizado en los últimos años por el


surgimiento de empresas dedicadas exclusivamente a los servicios de transporte,
como es el caso de los operadores logísticos. La ineficiencia en las redes de
distribución tradicionales, en donde la empresa de producción organiza y gestiona
su propia red de transporte, ha producido la externalización de la distribución de
sus productos a terceras empresas. Estas empresas subcontratadas prestan sus
servicios de transporte y distribución a varias empresas de producción, por lo que
un mismo trayecto o ruta de transporte podrá ser compartido por varios clientes. El
efecto directo de este modo de operación y servicio es la posibilidad de consolidar
una mayor cantidad de carga en cada ruta de la red, por lo que es factible utilizar
vehículos de gran capacidad y con costos unitarios menores.

Los costos de distribución suelen representar un componente significativo del


costo total de producción de un bien de consumo, variando en función de su
naturaleza (Estrada, 2007). De este modo, se justifica la necesidad de creación de
una red de distribución de los productos de consumo eficiente para garantizar la
competitividad de las empresas de producción.

Para realizar el diseño y planificación de una red de distribución brindando un


adecuado nivel de servicio y utilizando los recursos mínimos, es necesario tener
en cuenta los elementos relacionados con los costos de distribución. Estos
elementos son los vehículos de transporte, las instalaciones y la mercancía

13
transportada.

Los problemas de rutas de vehículos (VRP) permiten realizar el diseño y la


planificación de la red de distribución en empresas dedicadas exclusivamente a
los servicios de transporte. Los VRP son un amplio conjunto de variables,
relaciones, recursos interrelacionados entre sí, cuya función es determinar el
número de rutas posibles que satisfacen una meta de distribución o cobertura al
menor costo posible (Toth & Vigo, 2002). La función objetivo de este tipo de
problemas depende de la tipología y características del sistema de distribución;
donde lo más frecuente es intentar minimizar el costo total de operación, el tiempo
total de transporte, la distancia total recorrida, el tiempo de espera, la utilización de
vehículos y a su vez maximizar el beneficio, el servicio al cliente; racionalizando
efectivamente la utilización de los recursos disponibles para la operación.

El problema de ruteo de vehículos con múltiples depósitos (MDVRP) es una


extensión del VRP clásico que tiene como objetivo la determinación de rutas
óptimas para vehículos que den servicio a todos los clientes a un costo mínimo en
términos de número de rutas y distancia total de recorridos, sin violar las
restricciones de capacidad y tiempo de viaje de los vehículos (Surekha & Sumathi,
2011). En el MDVRP existen varios depósitos, cada uno con una flota de vehículos
independiente, que sirven a un conjunto de clientes. De acuerdo a su estructura y
características principales, el MDVRP puede ser aplicado en empresas de
transporte terrestre de carga con el fin de crear una red de distribución de
mercancía eficiente que permita asegurar un nivel de servicio con la utilización de
los mínimos recursos.

1.1.2 Formulación

¿Es posible mejorar la eficiencia en el cumplimiento de las métricas de operación


de una empresa de transporte de carga por medio del diseño de un sistema de
ruteo de vehículos con múltiples depósitos?

1.2 JUSTIFICACIÓN DE LA INVESTIGACIÓ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.

Un problema frecuente en la toma de decisiones es reducir los costos de


transporte y mejorar el servicio al cliente encontrando los mejores caminos que
debería seguir un vehículo en una red de carreteras, líneas ferroviarias, de
embarque o rutas de navegación aérea que minimicen el tiempo o la distancia.

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 OBJETIVOS DE LA INVESTIGACIÓN

1.3.1 General

Diseñar un modelo de ruteo de vehículos con múltiples depósitos en empresas de


transporte de carga por carretera en Colombia que permita mejorar la eficiencia en
el cumplimiento de las métricas de operación del sistema, empleando técnicas
metaheurísticas.

1.3.2 Específicos

 Caracterizar las variables y parámetros que intervienen en el modelo de ruteo


de vehículos con múltiples depósitos mediante técnicas de recolección de
información y revisión documental del escenario objeto de estudio.
 Determinar el diagnóstico del escenario objeto de estudio empleando técnicas
de valoración y revisión estadística.
 Diseñar el sistema de ruteo de vehículos entre centros de distribución que
corresponda a los requerimientos de servicio de una empresa distribuidora de
carga.
 Validar el modelo por medio de técnicas estadísticas, comparando el
comportamiento del sistema de ruteo de vehículos propuesto con instancias de
prueba generadas por diversos investigadores.

1.4 HIPÓTESIS DE INVESTIGACIÓN

Para el desarrollo de la investigación se parte de la siguiente hipótesis general


(Hurtado de B, 2000):

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.

Del planteamiento de la hipótesis general se derivan las siguientes hipótesis


específicas (Hernández, Fernández, & Baptista, 2006):

 El sistema de ruteo de vehículos con múltiples depósitos en empresas de


transporte de carga por carretera permitirá disminuir los costos de
operación asociados a una flota de vehículos que atiende a un conjunto de
clientes.
 El sistema de ruteo de vehículos con múltiples depósitos en empresas de
transporte de carga por carretera generará tiempos mínimos de espera en
la atención de un conjunto de clientes.
 El sistema de ruteo de vehículos con múltiples depósitos en empresas de
transporte de carga por carretera determinará las menores distancias a
recorrer por una flota de vehículos que atiende a un conjunto de clientes
distribuidos geográficamente a nivel nacional.
 El sistema de ruteo de vehículos con múltiples depósitos en empresas de
transporte de carga por carretera identificará las rutas que permitan mejorar
la eficiencia en la atención de los clientes.

1.5 DISEÑO METODOLÓGICO

Para el desarrollo del trabajo de investigación se identificó el sustento teórico del


ruteo de vehículos, mediante la revisión y análisis de la información relevante
necesaria para obtener el panorama general sobre el estado del arte en el que se
encuentra la temática de investigación. Para el caso, se realizó una revisión
exhaustiva en libros y escritos de reconocidos autores en el tema de ruteo de
vehículos para identificar los estudios desarrollados con la variante de múltiples
depósitos, así como las técnicas que han sido utilizadas para la solución de este
tipo de problemas.

En la etapa de diagnóstico se obtuvieron los datos e información necesaria de las


variables y parámetros que intervienen en el modelo de ruteo de vehículos con
múltiples depósitos a partir de la estructura y funcionamiento de las empresas de
transporte de carga por carretera. Con esta información y con la definición del
problema en análisis se diseñó un sistema de ruteo que concretó todas las
relaciones que se presentaron dentro del sistema de distribución y que

16
describieron la esencia del problema.

Con el modelo que describe el problema se seleccionó la técnica de solución con


un algoritmo metaheurístico híbrido, que permitió encontrar los valores de las
diferentes variables controlables del sistema para dar solución al problema
planteado. El algoritmo propuesto resulta de una síntesis de varias
metaheurísticas aplicadas anteriormente en diferentes problemas de optimización
combinatoria.

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ú.

El procedimiento híbrido de dos fases fue validado mediante la comparación del


algoritmo con instancias o casos de prueba del problema de ruteo de vehículos
multi-depósito disponibles en las librerías de diversos investigadores, con el fin de
evaluar la efectividad del sistema de ruteo y ajustarlo a las necesidades de una
empresa dedicada al transporte terrestre de carga.

17
2. FUNDAMENTACIÓN TEÓRICA Y CONCEPTUAL

2.1 LOGÍSTICA DE DISTRIBUCIÓN

El transporte de bienes es una función importante dentro de la logística de


distribución debido a que se encarga de las actividades relacionadas con la
necesidad de situar mercancías desde los centros de producción o distribución
hasta los puntos de destino correspondientes, teniendo en cuenta unas variables
de seguridad, tiempo y costo.

La calidad del servicio de transporte está en función de los requerimientos del


mercado, tales como: (Anaya, 2009)

- Rapidez y puntualidad de la entrega.


- Fiabilidad en las fechas prometidas.
- Seguridad e higiene del transporte.
- Cumplimiento de las condiciones impuestas por el cliente.
- Información y control del transporte.

Por lo tanto, la calidad en el servicio en términos de flexibilidad y costo,


constituyen los puntos básicos de referencia para la gestión del transporte.

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.

Las decisiones de enrutamiento pueden optimizarse usando modelos matemáticos


comúnmente conocidos como problemas de enrutamiento o de diseño de rutas.
Dichos problemas tienen diferentes variantes, según se tenga limitación sobre el
número de vehículos que cubrirán las rutas, la distribución de la demanda del
servicio, la capacidad de los vehículos, la combinación con otras decisiones, etc.
Típicamente, estos problemas son difíciles de resolver exactamente, ya que, en su
mayoría, pertenecen a la clase NP-Hard (Olivera, 2004). En especial, la
complejidad y el tamaño de muchos de los problemas prácticos hacen difícil la
utilización de métodos exactos para su solución.

Los elementos principales de este conjunto de problemas son los siguientes


(Ballou, 2004):

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)

2.2 PROBLEMA DE RUTEO DE VEHÍCULOS

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.

Se considera al VRP como un problema que empieza en un almacén o bodega


central, la cual cuenta con una flota de vehículos que debe atender a un conjunto
de clientes dispersos en una zona geográfica. El objetivo del VRP es entregar
bienes a este conjunto de clientes con demandas conocidas, al mínimo costo,
encontrando las rutas óptimas que se originan y terminan en el almacén. Todos
los clientes deben ser atendidos una sola vez, para lo cual se los asigna a los
vehículos que llevarán la carga (demanda de los clientes que visitará) sin exceder
su capacidad máxima de transporte (Barán & Hermosilla, 2001)

Se puede observar gráficamente el funcionamiento del problema de ruteo de


vehículos de manera sencilla en la figura 1. Las características de los clientes,
depósitos y vehículos, así como diferentes restricciones operativas sobre las rutas,
dan lugar a diferentes variantes del problema.

19
DEPÓSITO

CLIENTES

Figura 1. Representación gráfica del VRP


Fuente: Elaboración propia, 2013

En los problemas reales de VRP aparecen muchas restricciones, entre las que
cabe citar (Toth & Vigo, 2002):

 Cada vehículo tiene una capacidad limitada.


 Cada cliente tiene que ser visitado dentro de una determinada franja
horaria (problema VRP con ventanas de tiempo)
 Varios puntos de suministro (problema VRP con múltiples depósitos)
 Los clientes pueden ser atendidos por varios vehículos (problema VRP
con suministro dividido)
 Algunas variables del problema son aleatorias, tales como el número de
clientes, sus demandas, etc. (problema VRP estocástico)
 Las entregas se deben realizar en determinados días (problema VRP
periódico)

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.

Los principales problemas de ruteo de vehículos son descritos de la siguiente


manera: (Medaglia, 2005)

CVRP (VRP capacitado): la característica principal de este problema es que los


vehículos asignados a la distribución de los bienes tienen una capacidad limitada y
determinística. Este problema ha sido resuelto a partir de diversas metaheurísticas
como búsqueda Tabú, algoritmos de colonias de hormigas y algoritmos genéticos
(Olivera, 2004).

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.

SVRP (VRP estocástico): es un VRP en donde una o varias variables son


aleatorias y cambian en el tiempo. El SVRP fue resuelto por Bianchi (Bianchi, et
al., 2004), a partir de metaheurísticas como búsqueda Tabú, recocido simulado,
colonias de hormigas y algoritmos evolutivos.

SDVRP (VRP de entrega fraccionada): en este problema se permite que el mismo


cliente pueda ser atendido por diferentes vehículos si el costo total de entrega se
reduce. Se aplica principalmente cuando la demanda de algunos clientes es mayor
que la capacidad de los vehículos de entrega. Este modelo fue resuelto por Lee et
al (Lee, Epelman, Chelsea, & Bozer, 2000) mediante programación dinámica.

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.

2.2.1 Elementos del VRP

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 depósitos también pueden tener restricciones asociadas como ventanas de


tiempo, capacidades, distancias de las rutas a recorrer, o simplemente se quiera
evitar una congestión de vehículos en la bodega.

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.

Los vehículos pueden tener restricciones relacionadas principalmente con su


capacidad, horario de servicio (cuando los vehículos de carga tienen restricciones
de movilidad por las vías en días especiales) y lugares de acceso (cuando algunos
vehículos muy pesados no pueden ingresar a ciertas localidades).

2.2.2 Métodos de Solución.

El VRP es de complejidad NP-hard, porque el número de soluciones crece


exponencialmente con el número de nodos, los cuales pueden estar
representados por depósitos o clientes. Esta situación sobrepasa las capacidades
de cálculo de los ordenadores más potentes que existen en la actualidad.

En problemas pequeños, hasta con 50 nodos, han sido propuestos métodos


exactos como los algoritmos de ramificación y acotamiento (Branch and Bound)
pertenecientes a los métodos de búsqueda directa de árbol. Otros métodos
exactos que se han propuesto para solucionar el VRP incluyen la programación
dinámica y la programación lineal y entera. (Rocha, González, & Orjuela, 2011)

Debido a la complejidad del VRP han sido propuestas diferentes heurísticas y


metaheurísticas que brindan aproximaciones de aceptable calidad a la solución
óptima.

22
2.2.2.1 Heurísticas Aplicadas al Ruteo de Vehículos.

Las heurísticas son procedimientos simples que exploran el espacio de búsqueda


de una forma limitada, generando soluciones aceptables, por lo regular en tiempos
cortos de ejecución. Las soluciones obtenidas con estos procedimientos pueden
ser mejoradas utilizando métodos de búsqueda más complejos como las
metaheurísticas, que conllevan mayores tiempos de cálculo.

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

2.2.2.2 Metaheurísticas Aplicadas al Ruteo de Vehículos.

A pesar de que se ha demostrado las ventajas de utilizar las heurísticas en


problemas relacionados con el ruteo de vehículos, en muchas ocasiones estos
procedimientos generan óptimos locales que pueden estar muy alejados de las
soluciones óptimas globales. Para resolver este inconveniente se han desarrollado
las denominadas "metaheurísticas", que son “estrategias maestras que permiten
resolver de manera inteligente un problema” (Melián, Moreno P., & Moreno V.,
2003)

Las metaheurísticas modifican a otras heurísticas combinando diferentes


conceptos para producir mejores soluciones que las encontradas por ellas. Con la
utilización de las metaheurísticas no se asegura la exploración completa del
espacio de soluciones; sin embargo, estos procedimientos exploran aquellas
regiones en las que es factible encontrar buenas soluciones. Una metaheurística
puede evitar los problemas de óptimos locales y secuencias repetitivas de
soluciones.

Las metaheurísticas incluyen métodos tan populares como optimización por


colonia de hormigas (ACO), algoritmos evolutivos (EA), donde se incluyen los
algoritmos genéticos (GA) y los algoritmos meméticos (MA), procedimientos de
búsqueda miope (constructiva, voraz o ávida), aleatorizados y adaptativos
(GRASP), búsqueda local iterativa (ILS), re-encadenamiento de trayectorias (PR),
recocido simulado (SA), búsqueda dispersa (SS) y búsqueda tabú (TS). (Rocha,
González, & Orjuela, 2011)

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)

Debido a que en el MDVRP existe un gran número de depósitos, es una tarea


difícil para los tomadores de decisiones determinar qué clientes son atendidos por
cuál depósito sin exceder las limitaciones de capacidad. Por lo tanto, la agrupación
que se realiza a los clientes del clúster debe estar basada en la distancia entre los
clientes y los depósitos.

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)

1. Fase de agrupamiento, en la cual los clientes son asignados generalmente


al depósito.
2. Fase de enrutamiento, en el que la ruta de costo mínimo debe ser
identificada dentro de los grupos formados.

De acuerdo a lo anterior, el MDVRP puede ser visto como un problema de


clusterización debido a que arroja un conjunto de programas de vehículos
agrupados por depósito. Esta interpretación sugiere un tipo de enfoque que
agrupa clientes y luego programa los vehículos de cada grupo. Para este proceso
se busca generar inicialmente grupos de clientes, denominados clústeres, que
estarán en una misma ruta en la solución final. Luego, para cada clúster se crea

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.

Los algoritmos de dos fases referentes a la clusterización y ruteo son


prometedores para resolver problemas de tamaño real (Daza, Montoya, &
Narducci, 2009). La formación de grupos del primer paso puede ser resuelta
mediante algoritmos de agrupamiento. La construcción de las rutas para cada
clúster es un TSP que se puede resolver en forma exacta o aproximada,
dependiendo del número de clientes en el clúster.

2.3.1 Algoritmos de Agrupamiento (Clustering) para el MDVRP

Las técnicas de agrupamiento “analizan el conjunto de observaciones disponibles


para determinar la tendencia de los patrones a agruparse. Estas técnicas permiten
realizar una clasificación asignando cada observación a un agrupamiento (clúster),
de forma que cada agrupamiento sea más o menos homogéneo y diferenciable de
los demás.” (Jain, Murty, & Flynn, 1999)

Los métodos de agrupamiento incorporan un patrón a un grupo siguiendo un


criterio de similitud. En problemas de ruteo de vehículos, generalmente se emplea
la distancia como medida de similitud. Algunas de las métricas de distancia más
utilizadas son la distancia euclídea y la distancia de Mahalanobis.

Los agrupamientos generados van a depender del procedimiento empleado,


además de los datos, parámetros y de la medida de similitud utilizada. El número
posible de combinaciones que conforman los posibles grupos se hace inmanejable
desde el punto de vista computacional, aún con pocas observaciones. Por lo tanto,
es necesario encontrar métodos o algoritmos que determinen el número y
componentes de los clústeres más adecuado.

Se han propuesto cientos de algoritmos de agrupamiento específicos (Berkhin,


2006). Los algoritmos de agrupamiento más utilizados en problemas reales suelen
basarse en heurísticas y son los siguientes:

2.3.1.1 Algoritmo de las k-medias (k-means)

El algoritmo de las k-medias presentado por MacQueen en 1967 es seguramente


el algoritmo de agrupamiento más simple y conocido para resolver el problema de

25
clusterización. Es la herramienta de agrupación más popular utilizada en
aplicaciones científicas e industriales. (Berkhin, 2006)

El análisis de clúster por k-medias determina un criterio de cómo dividir un


conjunto de observaciones en k grupos. Es un método que permite asignar a cada
observación el clúster que se encuentra más próximo en términos del centroide
(media). Por lo regular, la distancia empleada es la euclídea.

El algoritmo está basado en la minimización de la distancia interna, es decir, la


suma de las distancias de los elementos asignados a un agrupamiento al
centroide de dicho agrupamiento. Este algoritmo minimiza la suma de los
cuadrados de los errores entre los puntos 𝑥𝑗 y el correspondiente centroide 𝑐𝑖
(Berkhin, 2006).
𝑐
2
𝑀𝑖𝑛 ∑ ∑ ‖𝑥𝑗 − 𝑐𝑖 ‖ [1]
𝑖=1 𝑥𝑗 ∈𝑐𝑖

K-means determina un prototipo en términos de un centroide, el cual es la media


de un grupo de elementos. La idea básica del algoritmo es obtener k centroides
(uno para cada grupo) y formar clústeres asociando todos los elementos a los
centroides más cercanos. Los k centros iniciales se seleccionan aleatoriamente
del conjunto de elementos X y son recalculados en cada iteración a partir del valor
medio de todos los elementos asignados a ese grupo:

1
𝑐𝑖 = ∑ 𝑥𝑗 ; 1 ≤ 𝑖 ≤ 𝑐 [2]
𝑛𝑖
𝑥𝑗 ∈𝑐𝑖

La asociación del elemento 𝑥𝑗 ∈ 𝑋 con el centroide más cercano 𝑐𝑖 es dada si


‖𝑥𝑗 − 𝑐𝑖 ‖ < ‖𝑥𝑗 − 𝑐𝑝 ‖.

Si los nuevos centroides no difieren de los centroides anteriores, el algoritmo


termina, de lo contrario se repite el proceso de asociación de los elementos con
los nuevos centros hasta que no exista variación en los centroides.

La operación del algoritmo K-means se ilustra en la fig. 2, donde se muestra cómo,


a partir de tres centroides (+), se encuentran los grupos finales en cuatro
iteraciones.

26
Figura 2. Algoritmo K-means para encontrar tres clústeres
Fuente: (Tan, Steinbach, & Kumar, 2006)

El algoritmo es sencillo y eficiente, ya que procesa los puntos secuencialmente,


por lo que requiere un almacenamiento mínimo. Sin embargo, está sesgado por el
orden de presentación de los puntos y su comportamiento depende en gran
medida del parámetro k. (Aguado A. & Jiménez de V., 2013)

El algoritmo se compone de los siguientes pasos:

1. Situar k puntos en el espacio en el que se encuentran los objetos que se


quieren clasificar. Estos puntos representan los centroides iniciales de los
grupos.
2. Asignar cada objeto al grupo que tiene el centroide más cercano.
3. Una vez asignado todos los objetos, recalcular las posiciones de los k
centroides.
4. Repetir los pasos 2 y 3 hasta que los centroides se mantengan estables.

2.3.1.2 Algoritmo Fuzzy C-Means

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.

El objetivo del modelo FCM es minimizar la suma media cuadrática ponderada de


las distancias entre los puntos 𝑥𝑗 y los centros de los grupos 𝑣𝑖 . El procedimiento,
por lo tanto, minimiza iterativamente la función objetivo hasta obtener una partición
difusa óptima. (Gulley, 2000)
𝑐 𝑛
𝑚 2
𝐽𝑚 (𝑈, 𝑣) = ∑ ∑(𝑢𝑖𝑗 ) ‖𝑥𝑗 − 𝑣𝑖 ‖ [3]
𝑖=1 𝑗=1

donde 𝑈 = (𝑢𝑖𝑗 ) es la matriz partición difusa de 𝑋;


𝑣 = (𝑣1 , 𝑣2 , … , 𝑣𝑐 ) es el vector de centros del clúster i o prototipo de 𝑢𝑖 ;
𝑢𝑖𝑗 es el factor de pertenencia del elemento j al clúster i;
𝑋 = {𝑥1 , 𝑥2 , … , 𝑥𝑛 } son cada uno de los elementos j.
𝑚 es el parámetro que determina el grado en el cual los elementos parciales de un
clúster afectan el resultado.

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:

𝑀𝑓𝑐 = {𝑈 ∈ ℜ𝑐×𝑛 |𝑢𝑖𝑗 ∈ [0,1]∀𝑖, 𝑗} [4]

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(𝑢𝑖𝑗 )

Los elementos de la partición difusa de X satisfacen:

0 ≤ 𝑢𝑖𝑗 ≤ 1 [7]
𝑐

∑ 𝑢𝑖𝑗 = 1; 1 ≤ 𝑗 ≤ 𝑛 [8]
𝑖=1

0 < ∑ 𝑢𝑖𝑗 < 𝑛; 1 ≤ 𝑖 ≤ 𝑐 [9]


𝑗=1

El procedimiento general de los algoritmos Fuzzy C-Means puede formalizarse en


los siguientes pasos:

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.

Calcular los prototipos o centros de los clústeres 𝑣𝑖


Calcular las distancias de los elementos a los prototipos 𝑣𝑖
Actualizar la matriz de partición difusa 𝑈 = (𝑢𝑖𝑗 )
Verificar el criterio de parada ‖𝑈 (𝑙) − 𝑈 (𝑙−1) ‖ < 𝜀

2.3.1.3 Algoritmo GRASP

Como los diversos métodos constructivos, la aplicación del GRASP consiste en


crear una solución inicial para luego mejorar la calidad de la solución. Esta técnica

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 primera fase consiste en la definición de una función miope que oriente la


construcción de soluciones eligiendo el mejor movimiento disponible en cada
iteración (Cano, Cordón, Herrera, & Sánchez, 2002). Esta función es miope debido
a que no tiene en cuenta qué sucederá en iteraciones posteriores una vez que se
hace una elecció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.

El constructor de soluciones evita el determinismo de los procedimientos voraces,


añadiendo un parámetro de relajación para formar una lista restringida de
candidatos (Restricted Candidate List - RCL) alrededor del mejor elemento a
seleccionar (Vicente, Rivera, & Mauricio, 2005). En cada etapa del proceso de
construcción, GRASP elabora una lista de candidatos con movimientos
admisibles, ordenados de manera decreciente con respecto a su beneficio medido
a través de la función voraz. Aquí, el procedimiento incorpora la aleatoriedad
eligiendo un movimiento al azar de la lista restringida de candidatos, cuyas
restricciones impuestas aseguran que se elija un movimiento bueno, aunque no
necesariamente óptimo.

El conjunto de elementos candidatos con los mejores valores de la función miope


se construye utilizando los valores máximo y mínimo de los elementos
seleccionables en una iteración particular. La RCL estará conformada por todos
aquellos elementos cuyo valor no supere el umbral dado por la siguiente
expresión:

𝑐𝑚𝑖𝑛 + 𝛼(𝑐𝑚𝑎𝑥 − 𝑐𝑚𝑖𝑛 ) [10]

donde, 0 ≤ 𝛼 ≤ 1

El parámetro  determina el tamaño de la RCL. En el caso que  = 1, estarían


incluidos todos los candidatos en la lista, lo que sería equivalente a una función
aleatoria pura. En caso contrario, si  = 0, solo estaría el mejor candidato en la
lista, lo que representaría una función miope pura.

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)

Para facilitar el proceso de selección del parámetro  se puede utilizar una


estrategia reactiva (GRASP reactivo) en la cual los valores de  son autoajustados
según la calidad de las soluciones previamente encontradas.

El procedimiento reactivo para la selección de , introducido por Prais & Ribeiro


(Prais & Ribeiro, 2000) se puede utilizar para controlar el valor de la perturbación
aleatoria .

En el GRASP reactivo se utiliza un conjunto discreto de valores posibles para ,


Α = {𝛼1 , 𝛼2 , … , 𝛼𝑚 }. Utilizando diferentes valores de  se generan múltiples listas
restringidas de candidatos, llevando eventualmente a la construcción de diferentes
soluciones, las cuales no se podrían generar utilizando un valor fijo de .

Las probabilidades asociadas con la elección de cada valor de  se fijan


inicialmente iguales:

𝑝𝑖 = 1⁄𝑚 , 𝑖 = 1,2, … , 𝑚 [11] correspondiente a una distribución uniforme.

Periódicamente se actualiza la distribución de probabilidades 𝑝𝑖 utilizando la


información del desempeño obtenido en las iteraciones previas al usar los
diferentes valores de 𝛼𝑖 .

Para actualizar las probabilidades de selección de 𝛼𝑖 se define:

𝑍∗ 𝛿
𝑞𝑖 = ( ) [12]
𝐴𝑖
donde,

𝑍 ∗ es el valor de la mejor solución encontrada en la iteración.


𝐴𝑖 es el valor promedio de las soluciones obtenidas usando 𝛼𝑖 .
𝛿 es el exponente que controla el efecto de la actualización.

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.

En la fase constructiva no se garantiza la optimidad de la solución ya que existen


numerosas elecciones aleatorias, por lo tanto, la solución construida no
necesariamente será un óptimo local. Para resolver esta situación, GRASP
introduce una segunda fase denominada fase de mejora, la cual consiste en un
procedimiento de optimización local basado en una función de búsqueda local.

Fase de Mejora

El GRASP toma una solución inicial, generada por el método constructivo de la


primera fase y trata de hallar entre su vecindad un candidato que garantice una
mejor solución. La búsqueda local juega un papel importante en GRASP debido a
que busca soluciones localmente óptimas en regiones promisorias del espacio de
soluciones.

Un algoritmo de búsqueda local explora reiteradamente el vecindario de una


solución en busca de una mejor solución. El método realiza movimientos siempre
que el valor de la función objetivo mejore y finaliza su ejecución cuando la solución
es localmente óptima, es decir, cuando no se encuentre ningún movimiento de
elementos que mejore la solución. Como técnica de búsqueda local se puede
emplear el algoritmo de las k medias, cuya convergencia depende de la
configuración inicial de los clústeres. (Cano, Cordón, Herrera, & Sánchez, 2002)

La técnica de selección en la vecindad del método de búsqueda local puede ser


best improvement rule, en donde se escoge la mejor de todas las soluciones
encontradas, o first improvement rule, que selecciona la primera solución que
mejora la solución actual.

La estructura básica de un algoritmo GRASP es la siguiente: (Resende & Ribeiro,


2003)

Mientras (no se cumpla la condición de parada)


Hacer
Fase Constructiva
Construir una solución voraz aleatoria.
Considerar una lista restringida de los mejores candidatos.

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

2.3.2 Algoritmos de Ruteo para el MDVRP

El VRP con múltiples depósitos es un problema NP-hard cuya solución con un


algoritmo exacto consume mucho tiempo y es intratable computacionalmente.
Existen muchas aplicaciones en tiempo real que motivaron la investigación en el
campo de los MDVRP, tales como los servicios de mensajería, servicios de
emergencia, servicios de taxi y distribución de periódicos. (Geetha, Vanathi, &
Poonthalir, 2012)

Diversas heurísticas y algoritmos de aproximación se han utilizado para resolver el


MDVRP. En 1969, Tillman fue el primero en proponer la heurística de ahorros de
Clark and Wright para resolver este problema. Posteriormente se desarrollaron
trabajos utilizando procedimientos de barrido en dos etapas: (1) construcción de la
solución inicial, agrupando los clientes a los depósitos más cercanos, seguido por
(2) algoritmos de ahorros o de barrido en cada depósito. Procedimientos clúster
first–route second y route first–cluster second también fueron aplicados para dar
solución al MDVRP, así como una aproximación modular en la cual el problema es
descompuesto en pequeños subproblemas, aquí, los clientes son asignados a la
ruta del vehículo y luego la ruta es asignada al depósito más cercano. (Geetha,
Vanathi, & Poonthalir, 2012)

En la década del 90 fueron propuestas combinaciones de heurísticas con


programación lineal y también heurísticas multifase, en donde los clientes son
asignados al depósito más cercano, luego se usa el algoritmo de ahorros para
generar las rutas en cada depósito y, por último, las soluciones fueron mejoradas
con movimientos de clientes a otras rutas.

Renaud, Laporte y Boctor propusieron una nueva heurística utilizando búsqueda


tabú con restricciones de ruta y capacidad (Renaud, Laporte, & Boctor, 1996).
Ellos encontraron mejores soluciones que las heurísticas existentes para 23 casos
de prueba.

Cordeau, Gendreau y Laporte propusieron una heurística de búsqueda tabú capaz


de resolver tres problemas de enrutamiento: el VRP periódico, el TSP periódico, y
el VRP multi-depósito. Experimentos computacionales llevados a cabo en casos
tomados de la literatura indicaron que el método propuesto superaba heurísticas
existentes para los tres problemas. (Cordeau, Gendreau, & Laporte, 1997)

33
En la historia reciente del MDVRP diferentes autores han trabajado diversos
procedimientos para dar solución a este problema:

Tansini, Urquhart y Viera compararon algoritmos de asignación para el VRP Multi-


depósito. Compararon algoritmos de asignación a partir de prioridades: algoritmo
de asignación en paralelo, algoritmo de asignación simplificado, algoritmo de
asignación de barrido; asignación cíclica, asignación por grupos (clústeres):
coeficiente de propagación, algoritmos de clusterización de tres criterios; Problema
de Transporte. (Tansini, Urquhart, & Viera, 2001)

González y González presentaron una metaheurística híbrida denominada Genetic


Clustering and Tabu Routing, con la cual se soluciona el problema de ruteo de
vehículos a través de la metodología de dos fases clusterizar primero rutear
después, utilizando algoritmos genéticos en la primera fase y heurísticas de
barrido y búsqueda local para la segunda fase. (González V. & González A., 2007)

Crevier, Cordeau y Laporte presentaron el VRP Multi-depósito con rutas entre


depósitos. En esta extensión del MDVRP los vehículos pueden ser reabastecidos
en los depósitos intermedios a lo largo de su ruta. Se propone una metodología de
tres fases basada en la memoria adaptativa y búsqueda tabú para la generación
de un conjunto de rutas, y en la programación entera en la ejecución de un
algoritmo de conjunto de particiones para la determinación de las rotaciones
factibles menos costosas. (Crevier, Cordeau, & Laporte, 2007)

Chen y Xu proponen un algoritmo híbrido para VRP Multi-depósito, el cual incrusta


la regla de aceptación de Metropolis del recocido simulado en el algoritmo
genético. En el algoritmo híbrido, el algoritmo genético (GA) combina la búsqueda
global y la búsqueda local para buscar los mejores resultados y el recocido
simulado (SA) utiliza cierta probabilidad para evitar ser atrapados en un óptimo
local. (Chen & Xu, 2008)

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)

Soeanu, Ray, Debbabi, Berger, Boukhtouta y Ghanmi desarrollaron una heurística


descentralizada para el VRP Multi-depósito con entregas divididas. Utilizaron la
inserción multipunto de costo gradiente descendente como una técnica de
búsqueda estocástica especializada que puede ser descentralizada en muchos
nodos de computación por medio de un generador de números pseudoaleatorios
basado en semilla, utilizado para dirigir el curso de la búsqueda de solución.
(Soeanu, Ray, & Debbabi, 2011)

Vidal, Crainic, Gendreau, Lahrichi y Rei trabajaron un algoritmo genético híbrido


para VRP Multi-depósito y Periódico a partir de la búsqueda genética híbrida con
control de la diversidad adaptativa. Combinaron la amplitud de exploración basada
en la población de búsqueda evolutiva, las capacidades de mejora agresivas de
meta-heurísticas basadas en el vecindario, y los esquemas de gestión de la
diversidad de la población avanzada. (Vidal, Crainic, Gendreau, Lahrichi, & Rei,
2011)

Narasimha, Kivelevitch y Kumar trabajaron una técnica de optimización de Colonia


de Hormigas para resolver el Min-Max VRP Multi-depósito. Esta técnica Implica
reducir al mínimo la distancia máxima recorrida por un vehículo. Se utiliza el
algoritmo basado en colonia de hormigas y se introduce una nueva forma de
abordar el problema multi-depósito de rutas para vehículos mín-máx. El enfoque
utiliza un método de región de particionamiento desarrollado por Carlsson et al.
para convertir el problema multi-depósito en múltiples versiones de un solo
depósito. (Narasimha, Kivelevitch, & Kumar, 2012)

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)

Geetha, Vanathi y Poonthalir desarrollaron un enfoque metaheurístico para el VRP


Multi-depósito. Resuelven el MDVRP utilizando una metaheurística de búsqueda
que puede ser visto como la búsqueda del mejor elemento en un conjunto de
elementos discretos. La metodología agrupar primero y rutear después es
adaptada y metaheurísticas de algoritmos genéticos (GA) y optimización por
enjambre de partículas (PSO) son utilizadas para resolver el MDVRP. También se
propone una optimización por enjambre de partículas híbrida (HPSO) para
resolver el MDVRP. En el HPSO, las partículas iniciales son generadas con base
en el agrupamiento k-medias y heurística del vecino más cercano (NNH). Las
partículas son decodificadas en grupos y múltiples rutas son generadas dentro de
las agrupaciones. La heurística de búsqueda local 2-opt es utilizada para la
optimización de las rutas obtenidas. El algoritmo se implementa usando MATLAB
7.0.1. (Geetha, Vanathi, & Poonthalir, 2012)

Luo, Li y Chen presentaron un algoritmo híbrido de varias fases basado en


clusterización para resolver el problema de ruteo de vehículos multi-depósitos
(MDVRP). El algoritmo propuesto adopta inicialmente el algoritmo K-means para
ejecutar el análisis de agrupación, el cual toma los depósitos como los centroides
de los clústeres, para todos los clientes del MDVRP, luego se implementa la
búsqueda profunda local usando el Algoritmo de barajado de la rana que salta
(SFLA) para cada grupo, y luego reajusta globalmente las soluciones, es decir,
rectifica las posiciones de todas las ranas mediante la optimización extrema (EO).
Los procesos continuarán hasta que los criterios de convergencia sean
satisfechos. (Luo, Li, & Chen, 2013)

Bolaños propone un algoritmo metaheurístico para la solución del problema de


ruteo de vehículos con múltiples depósitos y flota heterogénea. Utiliza un algoritmo
genético de Chu-Beasley modificado que precisa de una población inicial diversa
obtenida mediante un procedimiento híbrido, el cual involucra un proceso
heurístico y la solución del modelo del problema de la ruta más corta. En la etapa
de mejoramiento son utilizadas ocho estrategias de búsqueda local inter-rutas e
intra-rutas. (Bolaños, 2014)

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)

De acuerdo con los resultados obtenidos en los trabajos de Renaud et al y


Cordeau et al, los cuales superaron las heurísticas existentes, y con el fin de
explotar los beneficios de los métodos de aproximación multiarranque en cuanto a

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.

2.3.2.1 Búsqueda Tabú

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)

El notorio éxito de la búsqueda tabú para resolver problemas de optimización que


surgen en aplicaciones de reales, ha causado una propagación de nuevas
aplicaciones durante los últimos años, que son resumidas por algunos autores en
2006 (Glover, Laguna, & Martí, Principles of Tabu Search. To appear in
Approximation Algorithms and Metaheuristics, 2006)

La búsqueda tabú orienta un procedimiento heurístico de búsqueda local en la


búsqueda de optimalidad global. Su filosofía se basa en originar y explotar una
colección de estrategias inteligentes basadas en procedimientos implícitos y
explícitos de aprendizaje (Melián & Glover, 2007), tal como el uso de memorias
flexibles o el cambio de la estructura de vecindad con el fin de explorar regiones
del espacio de búsqueda que serían dejadas de lado por el procedimiento de
búsqueda local y que pueden llevar a soluciones de buena calidad.

Estructuras de vecindad

La estructura de vecindad está estrechamente vinculada a la definición del espacio


de búsqueda. En cada iteración de la búsqueda tabú las transformaciones locales
que se pueden aplicar a la solución actual, definen un conjunto de soluciones
vecinas en el espacio de búsqueda (Gendreau & Potvin, 2010). En TS el espacio
de búsqueda contiene todas las posibles soluciones que se pueden considerar o
visitar durante la exploración. Para el VRP el espacio de búsqueda podría ser el
conjunto de soluciones factibles al problema, donde cada punto en el espacio de
búsqueda corresponde a un conjunto de rutas de vehículos que satisfagan todas
las restricciones especificadas.

El proceso de optimización consiste en explorar las vecindades de la mejor


solución encontrada hasta el momento, moviéndose a una nueva solución óptima,
en la medida en que ella tenga un mejor valor de la función objetivo. Estructuras
vecinales simples para el VRP implican mover en cada iteración un solo cliente de
su ruta actual; el cliente seleccionado se inserta en la misma ruta o en otra ruta
con suficiente capacidad.

37
Estructuras de memoria

La búsqueda tabú utiliza estructuras de memoria flexible diseñadas para admitir


criterios de evaluación e información de búsqueda histórica, la cual se aprovecha
más a fondo que las estructuras de memoria rígida. El tipo de memorias que utiliza
la búsqueda tabú se clasifica en memoria a corto plazo y memoria a largo plazo.
Cada tipo de memoria está acompañada de sus propias estrategias.

En la memoria a corto plazo se almacenan algunas soluciones que se han


examinado recientemente y éstas se convierten en tabú o prohibidas. Para evadir
los óptimos locales, la búsqueda tabú evita visitar algunas de las soluciones
vecinas a la solución óptima actual, considerando que los movimientos en el
espacio de soluciones que llevan de una solución a la otra son tabúes, de tal
forma que ellos no pueden ser aceptados durante determinado tiempo o n
iteraciones (n es llamado el tenor del tabú). El procedimiento considera que
después de cierto número de iteraciones la búsqueda se encuentra en una región
distinta y puede liberarse del estatus tabú.

La lista tabú es un listado en donde se registran las soluciones o atributos de


soluciones que no deben ser escogidos. Esta lista puede contener: (Melián &
Glover, 2007)

• Soluciones visitadas recientemente


• Movimientos realizados recientemente o
• Atributos o características que tenían las soluciones visitadas.

Cuando el algoritmo converge, finalmente a un punto de óptimo local, para el cual


no es posible encontrar soluciones vecinas mejores, la solución es almacenada
como el mejor óptimo encontrado; posteriormente, la memoria de corto plazo es
borrada, y se escoge como nuevo punto de arranque del algoritmo, alguna de las
soluciones previamente visitadas que se encuentran almacenadas, en la memoria
de largo plazo (Glover & Laguna, Tabu Search in Modern Heuristic Techniques for
Combinatorial Problems, 1993)

La memoria a largo plazo complementa la información proporcionada por la


memoria reciente, ya que amplía la base para seleccionar movimientos preferidos
registrando la frecuencia de ocurrencia de los movimientos, las soluciones o sus
atributos. Esta memoria registra la cantidad de veces que una solución es la mejor
o el número de iteraciones durante la cual un atributo pertenece a la solución
generada.

En consideraciones a largo plazo, la memoria basada en frecuencia juega un


papel fundamental. Estas actúan introduciendo penalizaciones e incentivos
determinados por el rango de tiempo durante el que los atributos pertenecen a

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.

La memoria a largo plazo utiliza como base las estrategias de intensificación y


diversificación.

Intensificación y Diversificación

Las estrategias de intensificación y diversificación componen dos elementos muy


importantes en un proceso de búsqueda tabú debido a que interactúan para
proporcionar puntos de apoyo fundamentales de memoria de largo plazo.

Las estrategias de intensificación están basadas en la modificación de reglas de


elección, de tal manera que se favorezcan movimientos y soluciones que
históricamente hayan sido buenas (Melián & Glover, 2007). La intensificación
consiste en regresar a regiones atractivas ya exploradas para estudiarlas más a
fondo. Para ello es necesario identificar un conjunto de soluciones con
características especiales o atributos asociados a buenas soluciones encontradas
y que puedan ser incorporadas a las nuevas soluciones.

La intensificación reinicializa la búsqueda para regresar a regiones atractivas del


espacio de soluciones para buscar en ellas más extensamente. En la memoria a
largo plazo se almacena un registro de las mejores soluciones visitadas,
insertando una nueva solución cada vez que se convierte en la mejor global.

Una manera de implementar la estrategia de intensificación es reduciendo el


tamaño de la lista tabú, de manera que permita más movimientos de retroceso con
la finalidad de explorar minuciosamente determinada zona. Otra estrategia es
tomar un conjunto de soluciones élite encontradas y repetir el proceso de
búsqueda tomando como solución inicial cada una de estas buenas soluciones.
Este enfoque de recuperar soluciones élite seleccionadas es llamado
“backtracking”.

Las estrategias de diversificación están basadas en modificar las reglas de


elección para incorporar a las soluciones atributos que no han sido utilizados
frecuentemente. La diversificación consiste en llevar la búsqueda a regiones del
espacio de soluciones no visitadas con anterioridad, generando soluciones que
difieren significativamente de las ya encontradas. (Melián & Glover, 2007)

Una estrategia de diversificación puede ser reinicializar la búsqueda cuando se


estanca, partiendo de una solución no visitada, dando mayor probabilidad de
aparición a soluciones menos habituales. Otra estrategia es generar una solución
aleatoria y continuar la búsqueda a partir de ella.

39
Criterio de Aspiración

La búsqueda tabú, además de emplear las estrategias de intensificación y


diversificación, utiliza un método denominado criterio de aspiración cuyo objetivo
es determinar las condiciones en que se puede admitir un movimiento clasificado
como tabú, cambiando su estatus tabú cuando la solución de éste es mejor que la
solución obtenida hasta el momento o cuando su memoria a corto plazo concluya.

Los niveles de aspiración introducen el elemento de flexibilidad en la búsqueda


tabú debido a que ofrecen límites de atracción, los cuales controlan el hecho de
que las aspiraciones puedan ser consideradas admisibles a pesar de estar
clasificadas como tabú.

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)

El algoritmo en pseudocódigo para la búsqueda tabú básica es la siguiente


(Delgado, 1999):

Leer solución inicial 𝑠𝑓 y hacer 𝑠 ∗ = 𝑠𝑓;


Hacer 𝑇 = ∅, niter = 0, kiter = 0
Repetir
niter : = niter + 1
Definir función 𝑔 a partir de 𝑇
Ejecutar Movimiento_Vecinal_Ge(𝑘, 𝑔, 𝑠𝑓, 𝑠1, 𝑠0);
Si 𝑔(𝑠1) < ∞ hacer 𝑠𝑓 = 𝑠1
Si 𝑓(𝑠0) < 𝑓(𝑠 ∗ ) entonces: hacer 𝑠𝑓 = 𝑠0 (criterio de aspiración), 𝑠 ∗ = 𝑠0 y
kiter = niter.
Actualizar 𝑇
Hasta niter – kiter >= maxiter

Se denota por 𝑠 ∗ a la mejor solución encontrada, y por 𝑠𝑓 a la solución actual en


cada momento. 𝑇 es el conjunto de movimientos tabús y se obtiene determinando
qué conjunto de soluciones tiene ciertos atributos tabús activos; se han de definir
estos atributos tabús y durante cuántas iteraciones van a permanecer activos (y
por tanto las soluciones que les contienen). El objeto de aplicar el criterio de
aspiración es determinar en qué condiciones un movimiento tabú puede ser
admisible. Habitualmente se considera que una solución 𝑠0 cumple el criterio de
aspiración si 𝑓(𝑠0) < 𝑓(𝑠 ∗ ). El número de iteraciones viene dado por el contador
niter y kiter, que indica en qué iteración se encontró la mejor solución hasta el
momento actual. La función 𝑔 es la que se ha denominado función guía.

40
3. DESARROLLO DE LA INVESTIGACIÓN

3.1 METODOLOGÍA DEL MODELO PROPUESTO

Dada la complejidad del problema en estudio y la dificultad para resolverlo


utilizando metodologías exactas, a continuación, se presenta una metaheurística
híbrida que consiste en aplicar técnicas de agrupamiento para asignar clientes a
depósitos y procedimientos aproximados para el ruteo de los vehículos. La
metodología propuesta brinda un enfoque de solución al problema de ruteo de
vehículos con múltiples depósitos que sirva como herramienta para el
cumplimiento de los objetivos de distribución en empresas de transporte de carga
por carretera.

Para el desarrollo del modelo de distribución se aborda la metodología de dos


fases: clusterizar primero rutear después, en donde inicialmente se busca generar
grupos de clientes (clústeres) que estarán en una misma ruta en la solución final.
Posteriormente, para cada clúster se crea una ruta que visite a todos los clientes.
En la primera fase se consideran restricciones de capacidad de los depósitos y en
la segunda fase se resuelve un problema de ruteo de vehículos (VRP) por cada
clúster.

Para abordar la metodología de dos fases se plantea una metaheurística híbrida


que se denominó Grasp Clustering & Tabu Routing, con la cual se generó un
enfoque de solución para el problema de ruteo de vehículos con múltiples
depósitos en empresas de transporte de carga por carretera.

La metaheurística híbrida propuesta consiste en aplicar el algoritmo GRASP como


técnica de agrupamiento de la primera fase. En el algoritmo GRASP se considera
una fase constructiva y una fase de mejora. En la fase constructiva se generan
soluciones de forma iterativa utilizando procedimientos voraces, para ello se aplica
el método de agrupamiento Fuzzy C-Means. En la fase de mejora se utiliza un
procedimiento de optimización local basado en una función de búsqueda local.

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.

A manera de resumen se indican las etapas del procedimiento híbrido propuesto:

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.

3.1.1 Desarrollo Metodológico

A continuación, se describe el procedimiento que conforma el mecanismo de


solución de la metodología propuesta:

Inicialmente se ingresan los parámetros o información necesaria para abordar el


MDVRP:

 Coordenadas de ubicación geográfica de depósitos y clientes


 Capacidades de los depósitos
 Demandas de los clientes
 Capacidad de los vehículos
 Número de clientes y depósitos
 Valor  para la RCL
 Número de iteraciones del proceso de construcción GRASP
 Número de soluciones aleatorias del proceso de inserción TS
 Número de iteraciones del proceso de intensificación TS.

3.1.1.1 GRASP Clustering

Con los parámetros de entrada se inicia la aplicación de la metaheurística GRASP


como técnica de agrupamiento de la primera fase con el fin de generar las
particiones o grupos de clientes.

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

Para la fase de construcción GRASP, se generan 500 soluciones aleatorias en


cada iteración a partir de la combinación de los dos primeros k-ésimos o mejores
valores de pertenencia de los clientes con los depósitos.

Con estas soluciones se genera la lista restringida de candidatos (RCL) de la


siguiente manera: se elabora un listado tomando dos soluciones aleatorias por
cada iteración del proceso de construcción. Estas soluciones se ordenan en forma
ascendente de acuerdo a la distancia total entre clientes y depósitos. Según sea el
valor asignado al parámetro  se tomarán las mejores soluciones o de menor
distancia total que conformarán la RCL. Si el valor de  es cercano a cero, la RCL
estaría conformada únicamente por la solución de menor distancia total y el
proceso sería determinístico. Si el valor de  es cercano a 1, se estarían
incluyendo todas las soluciones de la lista en la RCL, por lo tanto, el proceso sería
completamente aleatorio.

 Fase de mejora

Para la fase de mejora GRASP, se combina una solución aleatoria disponible en la


lista restringida de candidatos con las demás soluciones de la RCL para explorar
el espacio de búsqueda y generar 100 nuevas soluciones, de las cuales se escoge
la de menor distancia total.

Se someten a evaluación de capacidad la solución del primer k-ésimo, la mejor


solución de las iteraciones del proceso de construcción, la mejor solución del
proceso de mejora y las soluciones de la RCL. De acuerdo al cumplimiento de
capacidad y menor distancia se escoge la solución que genera el agrupamiento de
los clientes en cada depósito.

3.1.1.2 Tabu Routing

Se inicia la aplicación de la metaheurística Búsqueda Tabú para la segunda fase


de la metodología propuesta. En cada clúster se genera el vector con la solución
inicial a partir del algoritmo del vecino más cercano para crear las rutas. El
procedimiento toma esta solución y evalúa la capacidad de los vehículos
agregando los depósitos dentro del vector cada vez que se completa la carga
máxima del vehículo, generando la ruta.

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.

Se genera la lista tabú escogiendo del conjunto de soluciones aleatorias a los


cinco mejores vectores (con la menor distancia acumulada) del proceso de
inserción. Estos vectores se someten a la evaluación de capacidad de los
vehículos. Si el vector de la lista tabú cumple con la capacidad en cada ruta y tiene
una menor distancia acumulada que el vector solución actual, se reemplaza la
solución existente.

 Intensificación

Se aplica la estrategia de intensificación sobre el vector solución actual a partir de


los algoritmos de inserción para generar nuevamente 𝑛 soluciones aleatorias. Se
actualiza la lista tabú escogiendo los cinco mejores vectores, a los cuales se
evalúa la capacidad de los vehículos para cada ruta.

Se repite el proceso de intensificación sobre el mejor vector obtenido en cada


iteración hasta que se cumpla el número de iteraciones establecidas para el
proceso de ruteo. Cuando el procedimiento termina su ejecución, se guarda la
mejor solución, la cual genera las rutas en cada clúster.

Finalmente se presenta la mejor solución en un reporte que indica la secuencia de


los clientes a atender en las rutas de cada clúster, así como la distancia total a
recorrer y la demanda total satisfecha en cada ruta.

El diagrama de flujo que describe el procedimiento híbrido de dos fases propuesto


es el siguiente:

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

Con el fin de revisar la metodología utilizada para desarrollar el método propuesto


en esta investigación, se presenta un pequeño ejemplo aplicado, cuyas
características son las siguientes:

𝑚 = 3 depósitos
𝑛 = 20 clientes
𝑄 = 15 𝑡𝑜𝑛 (carga máxima de los vehículos)
𝛼 = 0,3 parámetro de tamaño de la RCL

Iteraciones construcción GRASP: 20


Iteraciones intensificación TS: 16

Parámetros de entrada:

Tabla 1. Información de entrada ejemplo aplicación GC & TR


Fuente: Elaboración propia, 2016
Depósito X Y Capacidad Cliente X Y Demanda
1 8 10 50 1 6 13 8
2 12 5 30 2 3 2 3
3 4 6 40 3 20 16 3
4 6 9 3
5 16 12 5
6 7 2 4
7 2 17 7
8 13 7 6
9 11 15 8
10 16 19 8
11 2 19 5
12 15 6 7
13 6 4 8
14 20 9 3
15 13 10 6
16 5 10 8
17 5 4 3
18 7 18 5
19 7 13 6
20 1 2 8

La ubicación geográfica de los clientes y depósitos representada en el plano


cartesiano es la siguiente:

46
Figura 4.Ubicación geográfica de clientes y depósitos
Fuente: Elaboración propia, 2016

ASIGNACIÓN DE CLIENTES A DEPÓSITOS

En la primera fase de la metodología propuesta, se realiza la asignación de


clientes a los depósitos utilizando la metaheurística GRASP.

Para la construcción de soluciones se genera la matriz de pertenencias y la matriz


de distancias que permitan al procedimiento voraz asignar los clientes a los
depósitos.

Tabla 2. Matriz de pertenencias entre clientes y depósitos


Fuente: Elaboración propia, 2016
Clientes
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Depósitos

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.

Tabla 4. Dos primeros k-ésimos del espacio de soluciones


-2 7 9 14 4 Fuente:8 6 Elaboración
11 6 10propia,
15 13
20168 6 12 5 4 7 12 8 11
Clientes
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Depósito 1-ésimo 1 3 1 1 2 3 1 2 1 1 1 2 3 2 1 1 3 1 1 3
asignado 2-ésimo 3 1 2 3 1 2 3 1 2 2 3 1 2 1 2 3 1 3 3 1

El agrupamiento obtenido por el primer k-ésimo (distancias más cortas), a partir


del mayor nivel de pertenencia entre clientes y depósitos, sin tener en cuenta la
capacidad de los depósitos, genera la menor distancia total, que para el ejemplo
es de 117,98. Los vectores y su representación gráfica es la siguiente:

𝑉1 = {1 3 4 7 9 10 11 15 16 18 19}

𝑉2 = {5 8 12 14}

𝑉3 = {2 6 13 17 20}

Figura 5. Agrupamientos generados por el primer k-ésimo


Fuente: Elaboración propia, 2016

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}

Cuya representación gráfica es la siguiente:

Figura 6. Agrupamientos generados en el proceso de construcción GRASP


Fuente: Elaboración propia, 2016

Con el valor asignado al parámetro 𝛼 (0,3) y al número de iteraciones del proceso


de construcción (20), se determina el tamaño de la lista restringida de candidatos;
en este caso, con las mejores 13 soluciones ordenadas en forma ascendente de
acuerdo a la distancia total.

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

El proceso de mejora combina aleatoriamente las soluciones de la RCL para tratar


de obtener mejores soluciones que las obtenidas en la fase de construcción. Para
el ejemplo, se mejora la solución generando una distancia total de 118,17 cuyos
vectores son los siguientes:

𝑉1 = {1 3 4 5 7 9 10 11 15 16 18 19}

𝑉2 = {8 12 14}

𝑉3 = {2 6 13 17 20}

El gráfico asociado a esta solución es el siguiente:

Figura 7. Agrupamientos generados en el proceso de mejora GRASP


Fuente: Elaboración propia, 2016

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.

Para el ejemplo, la mejor solución del proceso de construcción no cumple con la


capacidad de los depósitos 1 y 2; en el caso de la mejor solución del proceso de
mejora, así como la solución del primer k-ésimo, no cumplen con la capacidad del
depósito 1. Por esta razón, la mejor solución, con una distancia total de 125,17 y
que cumple con la capacidad de los depósitos se encuentra en la RCL (solución
6). Los vectores generados por esta solución construyen finalmente los
agrupamientos de la primera fase.

𝑉1 = {1 4 5 9 15 16 18 19}

𝑉2 = {3 8 10 12 14}

𝑉3 = {2 6 7 11 13 17 20}

La representación de los agrupamientos finales se muestra a continuación:

Figura 8. Agrupamientos finales GRASP


Fuente: Elaboración propia, 2016

GENERACIÓN DE RUTAS EN CADA CLÚSTER

En la segunda fase de la metodología propuesta, se realiza la creación de rutas en


cada clúster utilizando la metaheurística búsqueda tabú.

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:

Tabla 6. Matriz simétrica de distancias entre clientes y depósitos


Fuente: Elaboración propia, 2016
Depósito 1 1 4 5 9 15 16 18 19
Depósito 1 9999999 3,605551 2,236068 8,246211 5,830952 5 3 8,062258 3,162278
1 3,605551 9999999 4 10,04988 5,385165 7,615773 3,162278 5,09902 1
4 2,236068 4 9999999 10,44031 7,81025 7,071068 1,414214 9,055385 4,123106
5 8,246211 10,04988 10,44031 9999999 5,830952 3,605551 11,18034 10,81665 9,055385
9 5,830952 5,385165 7,81025 5,830952 9999999 5,385165 7,81025 5 4,472136
15 5 7,615773 7,071068 3,605551 5,385165 9999999 8 10 6,708204
16 3 3,162278 1,414214 11,18034 7,81025 8 9999999 8,246211 3,605551
18 8,062258 5,09902 9,055385 10,81665 5 10 8,246211 9999999 5
19 3,162278 1 4,123106 9,055385 4,472136 6,708204 3,605551 5 9999999

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}

La aproximación inicial genera rutas con una distancia total de 141,23 y se


representa a continuación:

52
Figura 9. Rutas generadas con el algoritmo del vecino más cercano
Fuente: Elaboración propia, 2016

Con la aplicación de estrategias de vecindad sobre el vector inicial se pretende


encontrar mejores soluciones para cada clúster por medio de la exploración del
espacio de soluciones cercano al vector.

En cada iteración se obtienen soluciones aleatorias seleccionando dentro del


vector dos posiciones; la primera indica el cliente a mover y la segunda la posición
en donde se va a insertar el cliente.

La mejor solución obtenida en la primera iteración del proceso de inserción en


cada clúster del problema es la siguiente:

𝑇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

Al realizar la evaluación de capacidad de los vehículos (15 ton. para el ejemplo) en


las rutas, el procedimiento descarta esta solución debido a que en todos los
clústeres no se cumple con la carga máxima que puede transportar cada vehículo
por ruta. De acuerdo a lo anterior, no se reemplaza la solución inicial y se continúa
con el proceso de intensificación sobre esta misma solución.

La estrategia de intensificación toma el mejor vector almacenado que cumpla con


la capacidad de los vehículos y aplica sobre este el proceso de inserción para
tratar de mejorar la solución actual.

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

Figura 11. Rutas finales aplicación GC & TR


Fuente: Elaboración propia, 2016

55
3.2 MODELO COMPUTACIONAL

En este apartado se describe el programa computacional desarrollado para


resolver el modelo MDVRP en empresas de transporte de carga por carretera.

3.2.1 Herramienta utilizada

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.

3.2.2 Requisitos funcionales

Los requisitos funcionales establecen el comportamiento del sistema y los


servicios que éste debe proporcionar. El comportamiento del sistema puede
provenir de reglas organizacionales o ser descubiertas por interacción con
usuarios y expertos.

Los requisitos funcionales del programa desarrollado para este trabajo son:

2 Todos los algoritmos de construcción deben proporcionar soluciones


factibles independientemente del problema dado.
3 Todos los algoritmos de optimización deben generar soluciones coherentes
independientemente de la instancia del problema que se esté estudiando.
4 Los resultados obtenidos por los algoritmos deben ser correctamente
codificados en un fichero Excel.
5 Se debe desarrollar el programa con un diseño de software sostenible,
atendiendo a buenas prácticas de diseño e implementación.
6 Se deben diseñar e implementar pruebas que garanticen el correcto
funcionamiento del programa.

3.2.3 Requisitos no funcionales

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.

Los requisitos no funcionales para el programa son:

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.

3.2.4 Descripción del programa

El programa se compone de una interfaz inicial, donde el usuario define la


cantidad de depósitos (2-50) y clientes (2-500) que tendrá el problema MDVRP;
adicionalmente establece el valor de  (0,0-1,0), el número de iteraciones del
algoritmo de clusterización (10, 15, 20 o 25), el número de iteraciones del
algoritmo de ruteo (1-30), así como la posibilidad de seleccionar restricciones de
capacidad y demanda en el problema.

Figura 12. Interfaz inicial del programa de ruteo


Fuente: Elaboración propia, 2016

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

Al guardar los datos en el sistema, el programa ejecuta el algoritmo de


construcción generando inicialmente la matriz de pertenencias y la matriz de
distancias de los depósitos a los clientes.

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

A continuación, se describe el código utilizado en Visual Basic para generar la


matriz de distancias y la matriz de pertenencias:

'Genera las distancias entre depositos y clientes


For Y = 1 To UserForm1.TextBox2.Value
For x = 1 To UserForm1.TextBox3.Value

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

'Macro genera la matriz de pertencias (Modulo3)


Call Macro_Fuzzy

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

De acuerdo a las pertenencias, el programa genera 500 soluciones para el


proceso de construcción de la primera fase. Estas soluciones se obtienen a partir
de las combinaciones de los 2 primeros k-ésimos (mayores valores de pertenencia
entre depósitos y clientes) que tenga el problema, y clasifica las soluciones cuyas
distancias totales sean más cortas. Este proceso se repite el número de veces que
se haya establecido en las iteraciones de la interfaz inicial.

Figura 16. Soluciones del proceso constructivo de GRASP


Fuente: Elaboración propia, 2016

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.

Figura 17. Listado de soluciones aleatorias GRASP


Fuente: Elaboración propia, 2016

A continuación, se indica el código utilizado para el proceso de construcción del


algoritmo GRASP:

'Genera los 2 primeros k-esimos


For Y = 1 To 2
For x = 1 To UserForm1.TextBox3.Value
Cells(52 + Y, 14 + x) = "=SMALL(R[" & -50 - Y & "]C:R[" & -1 - Y
& "]C," & Y & ")"
Next x
Next Y

'Genera la suma del 1-esimo menor


Cells(53, 13) = Application.WorksheetFunction.Sum(Range("O53:ST53"))

'Traduce los k-esimos a depositos


For Y = 1 To 2
For x = 1 To UserForm1.TextBox3.Value
Cells(55 + Y, 14 + x) = "=VLOOKUP(R[-3]C,R[" & -53 - Y & "]C:R["
& -4 - Y & "]C[" & 501 - x & "]," & 502 - x & ",0)"
Next x
Next Y
Sheets("Hoja2").Select
Range("A:AMC").Select
Selection.HorizontalAlignment = xlCenter

'Genera un listado con el 50% de los clientes mas proximos


x = UserForm1.TextBox3.Value
a = WorksheetFunction.RoundUp(x / 2, 0)

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

'Se realizan las iteraciones


For Z = 1 To ITERACIONES
Sheets("Hoja2").Select
For Y = 1 To 500
For x = 1 To UserForm1.TextBox3.Value
Cells(58 + Y, 14 + x) =
Application.WorksheetFunction.VLookup(Application.Workshe
etFunction.RandBetween(-2, -1), Range("N53:ST54"), 1 + x,
0)
Next x
Next Y
x = UserForm1.TextBox3.Value
a = WorksheetFunction.RoundUp(x / 2, 0)
For Y = 1 To 100
For x = 1 To UserForm1.TextBox3.Value
On Error Resume Next
For j = 1 To a
If Cells(53, 14 + x) = Cells(53, 514 + j) Then
Cells(458 + Y, 14 + x) = Cells(53, 14 + x)
End If
Next j
Next x
Next Y

'Toma 2 soluciones aleatoriamente de las 500 iteraciones

Cells(Application.WorksheetFunction.RandBetween(1, 400) + 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

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:

𝑐𝑚𝑖𝑛 + 𝛼(𝑐𝑚𝑎𝑥 − 𝑐𝑚𝑖𝑛 ) [14]

Figura 18. RCL del programa de ruteo


Fuente: Elaboración propia, 2016

El código para generar la RCL es el siguiente:

'Se Calcula RCL


Sheets("Hoja4").Select
a = UserForm1.TextBox4.Value
RCL = Application.WorksheetFunction.RoundUp(1 +
(Sheets("Hoja4").Cells(52, 1).Value - 1) * a, 0)
Cells(53, 1).Value = RCL

Range(Cells(2, 1), Cells(1 + RCL, 1)).Select


Selection.Copy
Sheets("Hoja6").Select
Range("B2").Select
ActiveSheet.Paste
Selection.Paste
For Z = 1 To RCL
Cells(1 + Z, 1) = -Z
Next Z

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

De la lista restringida de candidatos se escoge aleatoriamente una solución con la


cual el programa ejecuta el algoritmo de mejora. Para ello, se realiza una
combinación entre la solución obtenida aleatoriamente y las demás soluciones de
la RCL con el fin de encontrar posibles soluciones más cortas. Este proceso
genera 100 soluciones, de las cuales se escoge la de menor distancia total.

Figura 19. Soluciones del proceso de mejora en GRASP


Fuente: Elaboración propia, 2016

El programa consolida la solución con los primeros k-ésimos y las mejores


soluciones obtenidas con el proceso de construcción y de mejora, así como las
soluciones de la lista restringida de candidatos.

63
Figura 20. Top 3 soluciones del proceso de mejora en GRASP
Fuente: Elaboración propia, 2016

Estas soluciones se someten a la evaluación de capacidad y demanda para


determinar su cumplimiento y así establecer la solución que se tendrá en cuenta
para generar los clústeres.

Figura 21. Evaluación de capacidad y demanda para las soluciones GRASP


Fuente: Elaboración propia, 2016

El código para el proceso de mejora se describe a continuación:

'Encuentra el 1-esimo menor en el proceso de mejora del RCL


Cells(154, 1).Value = "Mejora RCL"
Cells(154, 2).Value =
Application.WorksheetFunction.Small(Range("A53:A152"), 1)
'Encuentra las distancias de cada cliente del 1-esimo menor
For x = 1 To UserForm1.TextBox3.Value

64
Cells(154, 2 + x) =
Application.WorksheetFunction.VLookup(Cells(154, 2),
Range("B52:SH152"), 1 + x, 0)
Next x

'La solucion con el menor de las iteraciones


Cells(155, 1).Value = "1° iteraciones"
Sheets("Hoja6").Select
Range("B2").Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Range("B155").Select
ActiveSheet.Paste
Selection.Paste

'La solucion con todos los 1-esimos menor


Cells(156, 1).Value = "1-esimo"
Sheets("Hoja2").Select
Range("O53").Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Sheets("Hoja6").Select
Range("C156").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Cells(156, 2) = Application.WorksheetFunction.Sum(Range(Cells(156,
3), Cells(156, 502)))

'Calcula la mejor opcion del top3


Cells(158, 2) =
Application.WorksheetFunction.Small(Range("B154:B156"), 1)
For x = 1 To UserForm1.TextBox3.Value
Cells(158, 2 + x) =
Application.WorksheetFunction.VLookup(Cells(158, 2),
Range("B154:SH156"), 1 + x, 0)
Next x

'Evaluacion de restricción de capacidad


If UserForm1.CheckBox1 = True Then
Sheets("Hoja8").Select
Range("B2:SG54").Select
Selection.Copy
Sheets("Hoja9").Select
Range("E2").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:=True

'Validacion de la solucion que cumple la restricción y es mas corta


Sheets("Hoja9").Select
For x = 1 To 50
If Cells(503, 166).Value = x Then

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

A partir de la solución escogida por cumplimiento de capacidad y menor distancia,


el programa realiza el agrupamiento para determinar qué clientes deben ser
atendidos por cada depósito.

Figura 22. Proceso de agrupamiento en GRASP.


Fuente: Elaboración propia, 2016

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

'Se agrupan los cluster


Range("C65536").End(xlUp).Select
For Y = 1 To UserForm1.TextBox3.Value
For x = 0 To UserForm1.TextBox2.Value - 1
ActiveCell.Offset(1, x + 1) =
Application.WorksheetFunction.Count(Range(Cells(2, 4 + x),
Cells(UserForm1.TextBox3.Value + 1, 4 + x)))
Next x
Next Y

'Se agrupan los clientes de menor a mayor


Range("C65536").End(xlUp).Select
For x = 0 To UserForm1.TextBox2.Value - 1
For Y = 1 To Cells(UserForm1.TextBox3.Value + 2, 4 + x)
ActiveCell.Offset(Y + 1, x + 1) = "=SMALL(R[" & -
UserForm1.TextBox3.Value - Y & "]C:R[" & -Y - 1 & "]C,(R[" &
-Y & "]C)/(R[" & -Y & "]C)+" & Y - 1 & ")"
Next Y
Next x

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

En este punto el programa permite generar un reporte en PDF con el


agrupamiento que se considera óptimo según los criterios de capacidad y
distancia, así como las tres primeras alternativas por distancia y su cumplimiento
en restricciones de capacidad.

67
Figura 23. Reporte del proceso de agrupamiento en GRASP
Fuente: Elaboración propia, 2016

Adicionalmente, se genera un reporte con la consolidación de los respectivos


clústeres según el número de depósitos y los clientes asignados ordenados de
forma ascendente.

Figura 24. Consolidación de los clústeres en GRASP.


Fuente: Elaboración propia, 2016

El programa genera un mensaje de confirmación y muestra en un gráfico la


ubicación geográfica de los depósitos y clientes a partir de las coordenadas
definidas inicialmente.

68
Figura 25. Agrupamientos generados en la primera fase GRASP
Fuente: Elaboración propia, 2016

Desde este punto el programa inicia el proceso de ruteo solicitando la capacidad


de los vehículos para generar las rutas.

Figura 26. Interfaz restricción de capacidad de los vehículos.


Fuente: Elaboración propia, 2016

Al ingresar la capacidad de los vehículos, el programa ejecuta el algoritmo de


ruteo generando por cada depósito la matriz simétrica de distancias a los clientes
de su cluster.

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

El código del proceso del vecino mas cercano se presenta a continuación:

'VECTOR INICIAL VECINO MAS CERCANO

'Listado de referencia para formula Coincidir de clientes


For Z = 0 To Cells(1, 4).Value
Cells(2 + Z, 101) = Z + 1
Next Z

For Z = 0 To Cells(1, 4).Value


Cells(2 + Z, 103) = Z + 2
Next Z

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

Range(Cells(1, 5), Cells(1, 6)) = "Depósito " & x + 1 & ""

'Eliminar la columna de Deposito


Range("DB1").Select
Range(Selection, Selection.End(xlDown)).Clear

For Z = 0 To Cells(1, 4).Value

If Z < Cells(1, 4).Value Then

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)"

'Determina la fila del ultimo cliente en la ruta


Cells(2 + Z, 7) =
Application.WorksheetFunction.VLookup(Cells(2 + Z, 6),
Range("CX2:CY500"), 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)

'Copiar y Pegar el primer valor


Cells(2 + Z, 6).Select
Selection.Copy
Cells(2 + Z, 6).Select
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlPasteValues,
Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

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)"

'Copiar y Pegar el primer valor


Cells(2 + Z, 6).Select
Selection.Copy
Cells(2 + Z, 6).Select
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlPasteValues,
Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If
Next Z

Con el vector generado, el programa ejecuta el proceso de inserción e intercambio


creando soluciones aleatorias, de las cuales se escogen las 5 con la menor
distancia total recorrida.

Figura 29. Vectores generados con las estrategias de vecindad


Fuente: Elaboración propia, 2016

A continuación se describe el código con la estrategia de inserción que se aplica


iterativamente para desarrollar el proceso de intensificación:

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

'Se obtienen las cinco mejores soluciones (lista tabu)


For x = 1 To 5
Cells(1498, x) =
Application.WorksheetFunction.Small(Range(Cells(1500, 2 +
Cells(1, 4).Value), Cells(1499 + repeticiones, 2 + Cells(1,
4).Value)), x)
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.

'Si la mejor solucion del listado tabu es mejor que la solucion de


vecindad se reemplaza
If Range("M400").End(xlUp).Value < Range("G400").End(xlUp).Value
And Cells(1, 29).Value = 0 Then
Range("M400").End(xlUp).Select
Range(Range("M400").End(xlUp), Selection.End(xlUp)).Select
Range(Selection, Selection.Offset(0, -1)).Select
Selection.Copy
Range("F1").Select
ActiveSheet.Paste
ElseIf Range("O400").End(xlUp).Value <
Range("G400").End(xlUp).Value And Cells(1, 32).Value = 0 Then
Range("O400").End(xlUp).Select
Range(Range("O400").End(xlUp), Selection.End(xlUp)).Select
Range(Selection, Selection.Offset(0, -1)).Select
Selection.Copy
Range("F1").Select
ActiveSheet.Paste
ElseIf Range("Q400").End(xlUp).Value <
Range("G400").End(xlUp).Value And Cells(1, 35).Value = 0 Then
Range("Q400").End(xlUp).Select
Range(Range("Q400").End(xlUp), Selection.End(xlUp)).Select
Range(Selection, Selection.Offset(0, -1)).Select
Selection.Copy
Range("F1").Select
ActiveSheet.Paste
ElseIf Range("S400").End(xlUp).Value <
Range("G400").End(xlUp).Value And Cells(1, 38).Value = 0 Then
Range("S400").End(xlUp).Select
Range(Range("S400").End(xlUp), Selection.End(xlUp)).Select
Range(Selection, Selection.Offset(0, -1)).Select
Selection.Copy
Range("F1").Select
ActiveSheet.Paste
ElseIf Range("U400").End(xlUp).Value <
Range("G400").End(xlUp).Value And Cells(1, 41).Value = 0 Then
Range("U400").End(xlUp).Select
Range(Range("U400").End(xlUp), Selection.End(xlUp)).Select
Range(Selection, Selection.Offset(0, -1)).Select
Selection.Copy
Range("F1").Select
ActiveSheet.Paste
End If

75
Next j
Cells(1, 7).Select
End Sub

Figura 30. Soluciones de la Lista Tabú


Fuente: Elaboración propia, 2016

Cuando el proceso termina, el programa toma el mejor vector, y de acuerdo a la


capacidad de los vehículos genera las rutas para cada depósito.

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

Figura 33. Rutas finales 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.

Los resultados de la metodología propuesta fueron probados con instancias del


problema de ruteo de vehículos Multi-depósito disponibles en las librerías de la
literatura especializada. El conjunto completo del benchmark contiene 33
instancias que fueron diseñadas por diferentes autores. Las instancias 1 al 7
fueron creadas por Christofides y Eilon (Christofides & Eilon, 1969), las instancias
8 al 11 se han descrito en Gillett y Johnson (Gillett & Johnson, 1976) y las
instancias 12 al 23 fueron propuestas por Chao, et al (Chao, Golden, & Wasil,
1993). Finalmente, las instancias 24 a la 33 fueron propuestas por Cordeau, et al
(Cordeau, Gendreau, & Laporte, 1997).

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/

La nomenclatura de las instancias diseñadas por Cordeau (Cordeau J. F., 2013)


se describe de la siguiente manera:

78
En la primera fila se encuentra la siguiente información:

tipo m n t

tipo: 2 correspondiente al MDVRP


m: número de vehículos
n: número de clientes
t: número de depósitos

Las siguientes filas contienen, por cada depósito, la siguiente información:

D: duración máxima de la ruta


Q: carga máxima de un vehículo

Las siguientes filas contienen, por cada cliente, la siguiente información:

i x y d q

i: número del cliente


x: coordenada x
y: coordenada y
d: duración del servicio
q: demanda

A continuación, se presenta el desarrollo de la instancia p01 aplicando el


procedimiento híbrido propuesto (GC & TR). El caso de prueba incluye 4
depósitos, 50 clientes, 4 vehículos disponibles por depósito y una carga máxima
de 80 por cada vehículo.

La información de entrada para esta instancia, de acuerdo a la nomenclatura


descrita, se muestra en la siguiente tabla:

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:

Tabla 9. Resultados del caso de prueba p01 aplicando GC & TR.


Fuente: Elaboración propia, 2016
F.O. 613,2706
Ruta 1: Depósito 1 17 37 15 45 44 Depósito 1
Distancia 48,1101 7,6158 5,0990 7,2111 6,7082 10,2956 11,1803
Demanda 48 3 9 10 10 16
Ruta 2: Depósito 1 42 19 40 41 13 Depósito 1
Clúster 1 Distancia 66,5524 10,0499 8,5440 10,6301 12,0830 9,4340 15,8114
Demanda 79 13 9 7 27 23
Ruta 3: Depósito 1 4 18 25 Depósito 1
Distancia 46,9997 6,0000 7,6158 11,1803 22,2036
Demanda 78 9 41 28

Ruta 1: Depósito 2 12 47 Depósito 2


Distancia 23,4962 8,0623 6,0000 9,4340
Demanda 54 29 25
Ruta 2: Depósito 2 27 1 32 11 46 Depósito 2
Distancia 40,9823 8,0000 8,0623 6,0828 6,4031 10,1980 2,2361
Demanda 58 15 7 12 19 5
Clúster 2
Ruta 3: Depósito 2 8 31 26 7 48 Depósito 2
Distancia 79,5976 22,0227 9,2195 10,0499 11,1803 11,3137 15,8114
Demanda 77 23 11 7 19 17
Ruta 4: Depósito 2 6 23 43 24 14 Depósito 2
Distancia 76,8709 11,4018 11,1803 13,0384 12,3693 10,7703 18,1108
Demanda 73 15 16 11 10 21

Ruta 1: Depósito 3 38 5 49 Depósito 3


Distancia 25,2168 7,0711 7,0711 8,2462 2,8284
Demanda 54 15 21 18
Ruta 2: Depósito 3 16 50 34 9 Depósito 3
Clúster 3 Distancia 35,8459 11,1803 5,6569 6,4031 9,0000 3,6056
Demanda 62 15 10 26 11
Ruta 3: Depósito 3 10 33 39 30 Depósito 3
Distancia 55,6524 9,0554 12,0830 13,9284 12,0416 8,5440
Demanda 61 5 23 14 19

Ruta 1: Depósito 4 21 2 22 28 3 Depósito 4


Distancia 69,3024 8,2462 14,7648 10,6301 10,0499 9,4868 16,1245
Demanda 76 8 30 8 14 16
Clúster 4
Ruta 2: Depósito 4 29 20 36 35 Depósito 4
Distancia 44,6440 2,8284 10,0499 12,5300 6,0828 13,1529
Demanda 57 6 28 6 17

81
La representación gráfica de las rutas es la siguiente:

Figura 34. Rutas finales de la instancia p01 aplicando GC & TR


Fuente: Elaboración propia, 2016

Para comparar estos resultados se muestra en la siguiente tabla la mejor solución


conocida para el caso de prueba p01, la cual está disponible en las librerías de
Cordeau:

Tabla 10. Mejor solución conocida de la instancia p01


Fuente: Elaboración propia, 2016
576.87
1 1 60.06 71 0 44 45 33 15 37 17 0
1 2 66.55 79 0 42 19 40 41 13 0
1 3 47.00 78 0 25 18 4 0
2 1 53.44 73 0 6 27 1 32 11 46 0
2 2 79.47 80 0 48 8 26 31 28 22 0
2 3 81.40 77 0 23 7 43 24 14 0
2 4 23.50 54 0 12 47 0
3 1 50.41 75 0 9 34 30 39 10 0
3 2 25.22 54 0 49 5 38 0
4 1 47.67 67 0 35 36 3 20 0
4 2 42.14 69 0 21 50 16 2 29 0

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

l: número del depósito


k: número del vehículo
d: distancia de la ruta
q: carga del vehículo
list: secuencia ordenada de los clientes

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.

A continuación, se presenta el benchmark con las tablas que contienen de manera


general los resultados obtenidos después de ejecutar los algoritmos desarrollados
para la aplicación de la metaheurística híbrida propuesta Grasp Clustering & Tabu
Routing.

En el desarrollo del benchmark se realizaron 10 corridas para cada caso de


prueba, obteniendo el menor valor de distancia total como función objetivo. Las
tablas que se presentan cuentan con información adicional para la comprensión e
interpretación de los resultados, tales como el nombre de la instancia tratada, el
número de iteraciones realizadas para dicho cálculo, el número de depósitos y de
clientes de la instancia, la capacidad de los vehículos y la metodología utilizada
por los autores para encontrar la mejor solución conocida.

4.1 Resultados en las Instancias de Christofides y Eilon (1969)

Un total de 7 instancias del MDVRP, creadas por Christofides y Eilon en los


problemas 8, 9 y 10 para resolver el problema de despacho de vehículos
(Christofides & Eilon, 1969), fueron documentadas para este trabajo.

La mejor solución conocida (best-known solution – BKS) para cada instancia de


este grupo fue encontrada, en su gran mayoría, con la metodología CGL
(Cordeau, Gendreau y Laporte) y otras con la metodología CGW (Chao, Golden y
Wasil) y RLB (Renaud, Laporte y Boctor)

A continuación, se muestran los resultados de la mejor solución conocida y el


algoritmo propuesto, así como su diferencia porcentual o error relativo (GAP).

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

Estos resultados demuestran la efectividad del algoritmo propuesto, ya que


generan soluciones de buena calidad para todas las instancias con diferencias
(GAP) menores al 9%.

4.2 Resultados en las Instancias de Guillett y Johnson (1976)

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).

A continuación, se muestran los resultados de la mejor solución conocida y el


algoritmo propuesto, así como su diferencia porcentual (GAP).

Tabla 12. Resultados del Benchmark de Gillett y Johnson


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
p08 2 249 500 4437,68 CGL 4799,43 0,0815
p09 3 249 500 3900,22 CGL 4253,9 0,0907
p10 4 249 500 3663,02 CGL 3967,02 0,0830
p11 5 249 500 3554,18 CGL 3823,54 0,0758

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)

Un total de 4 instancias del MDVRP, descritas por Chao, et al para resolver el


problema de ruteo de vehículos con múltiples depósitos (Chao, Golden, & Wasil,
1993), 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) o con la metodología RLB
(Renaud, Laporte y Boctor)

A continuación, se muestran los resultados de la mejor solución conocida y el


algoritmo propuesto, así como su diferencia porcentual (GAP).

Tabla 13. Resultados del Benchmark de Chao, Golden y Wasil.


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
p12 2 80 60 1318,95 CGL - RLB 1423,45 0,0792
p15 4 160 60 2505,42 CGL 2713,2 0,0829
p18 6 240 60 3702,85 CGL 4026,71 0,0875
p21 9 360 60 5474,84 CGL 5985,34 0,0932

Al igual que en los resultados de las instancias anteriores, en estas instancias se


evidencian buenas soluciones con un GAP inferior al 10%.

4.4 Resultados en las Instancias de Cordeau, et al (1997)

Un total de 10 instancias del MDVRP, descritas por Cordeau, et al para resolver el


problema de ruteo de vehículos con múltiples depósitos (Cordeau, Gendreau, &
Laporte, 1997) 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) propuesta por los mismos
autores

A continuación, se muestran los resultados de la mejor solución conocida y el


algoritmo propuesto, así como su diferencia porcentual (GAP).

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

En este trabajo de investigación se desarrolló una metodología de solución de dos


fases para resolver el problema de ruteo de vehículos con múltiples depósitos
(MDVRP) que enfrentan las empresas distribuidoras de bienes. Esta metodología
se propone con el fin de aumentar la eficiencia en la utilización de los recursos de
transporte y generar beneficios económicos a las empresas de transporte de carga
por carretera.

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).

El procedimiento híbrido fue implementado en un programa computacional


desarrollado en Visual Basic, el cual permite realizar una serie de acciones sobre
las macros de Excel para potenciarlas, brindándoles la interactividad que
requieren los procedimientos metaheurísticos.

Los resultados obtenidos con la aplicación de la metodología propuesta fueron


comparados con instancias del problema de ruteo de vehículos Multi-Depósito
disponibles en las librerías de la literatura especializada. Las instancias utilizadas
para el benchmark fueron diseñadas por Christofides y Eilon (1969), Gillett y
Johnson (1976), Chao, Golden y Wasil (1993) y Cordeau, Gendreau y Laporte
(1997).

La metodología propuesta resulta ser efectiva, ya que genera soluciones de buena


calidad al compararlas con los resultados de casos de prueba propuestos por
diversos investigadores. La medida utilizada para comprobar la efectividad de la
metodología propuesta es la distancia total a recorrer en las rutas, la cual
representa el valor de la función objetivo.

Para las instancias seleccionadas de Christofides y Eilon se generan buenas


soluciones, las cuales tienen un GAP (error relativo) inferior al 9%. En las
instancias probadas de Gillett & Johnson y Chao, Golden & Wasil se evidencian
buenas soluciones con un GAP por debajo del 10%.

Finalmente, para el benchmark realizado a los casos de prueba propuestos por


Cordeau, Gendreau y Laporte se observan soluciones de buena calidad con
diferencias menores al 8% en los resultados.

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.

Otra propuesta para mejorar el resultado final del algoritmo es aplicar


procedimientos de clusterización como el Fuzzy C Means para generar el vector
inicial en el proceso de ruteo de cada grupo y así obtener rutas de mejor calidad.

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.

Anaya Tejero, J. J. (2015). El transporte de mercancías: Enfoque logístico de la


distribución (Segunda edición ed.). Madrid, España: ESIC Business
Marketing School.

Anaya, J. J. (2009). El Transporte de Mercancías. Enfoque Logístico de la


Distribución. Madrid, España: ESIC Editorial.

Ballou, R. H. (2004). Business Logistics: Supply Chain Management. New Jersey:


Prentice Hall.

Barán, B., & Hermosilla, A. (2001). Comparación de un Sistema de Colonia de


Hormigas y una Estrategia Evolutiva para el Problema del Ruteo de
Vehículos con Ventanas de Tiempo en un Contexto Multiobjetivo. San
Lorenzo, Paraguay: Centro Nacional de Computación, Universidad Nacional
de Asunción.

Berkhin, P. (2006). A survey of clustering data mining techniques. In Grouping


Multidimensional Data. Springer Berlin Heidelberg, 25-71.

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.

Bolaños, R. I. (2014). Un algoritmo metaheuristico para la solución del problema


de ruteo de vehículos con múltiples depósitos y flota heterogénea.
Universidad Tecnológica de Pereira. Pereira, Colombia: Universidad
Tecnológica de Pereira.

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.

Christofides, N., & Eilon, S. (1969). An algorithm for the vehicle-dispatching


problem. Operational Research Quarterly, 20(3), 309-318.

Cordeau, J. F. (7 de Enero de 2013). Networking and Emerging Optimization


Research Group. (U. d. Málaga, Productor) Recuperado el 11 de enero
2016, de Vehicle Routing Problem: http://neo.lcc.uma.es

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.

Delgado, C. (1999). Uso de Conjunto de Concentración en Búsqueda Tabú.


Nuevas Soluciones para TSPLIB. Valencia, España: Departamento de
Economía Aplicada. Universidad de Burgos.

Díez, J., Navarro, J., & Sala, A. (2001). Algoritmos de Clustering en la


Identificación de Modelos Borrosos. XXII Jornadas de Automática, 100-106.

Estrada, M. (2007). Análisis de Estrategias Eficientes en la Logística de


Distribución de Paquetería. Barcelona: Tesis Doctoral, Universitat
Politècnica de Catalunya.

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.

Gillett, B., & Johnson, J. (1976). Multi-terminal vehicle-dispatch algorithm. Omega,


4(6), 711–718.

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.

Hurtado de B, J. (2000). Metodología de la Investigación Holistica. Caracas,


Venezuela: SYPAL - IUTC.

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.

Medaglia, A. (2005). Combinatoria para Logística., Coloquio en Optimización


Combinatoria Sesión Avanzada. Bogotá D.C., Colombia: Universidad de los
Andes.

Melián, B., & Glover, F. (2007). Introducción a la Búsqueda Tabú. En E. Crespo, R.


Martí, & J. Pachecho, Procedimientos Metaheurísticos en Economía y
Empresa. (págs. 29-71). España: Tirant lo Blanch.

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.

Odette. (2009). Técnicas para la Optimización de Rutas de Transporte y


Distribución. Madrid, España: Services, Brain Trust Consulting.

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.

Prais, M., & Ribeiro, C. C. (2000). Reactive GRASP: An application to a matrix


decomposition problem in TDMA traffic assignment. INFORMS Journal on
Computing, 164-176.

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.

Resende, M., & Ribeiro, C. (2003). Greedy Randomized Adaptive Search


Procedures. Florham Park, USA: Kluwer Academic Publisher.

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.

Surekha, P., & Sumathi, S. (August de 2011). Solution To Multi-Depot Vehicle


Routing Problem Using Genetic Algorithms. World Applied Programming,
1(3), 118-131.

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.

Volkan, A. (2003). A GA Based Meta-Heuristic for the Capacitated Vehicle Routing


Problem with Simultaneous Pick-up and Deliveries. İstanbul: Thesis Master.
Sabancı University: Faculty of Engineering and Natural Sciences.

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

También podría gustarte