Table Of ContentAPLICACIÓN DEL ALGORITMO DE
COLONIA DE HORMIGAS AL
PROBLEMA DE RUTAS DE REPARTO
CON DESTINOS MÓVILES
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA. UNIVERSIDAD DE SEVILLA.
INGENIERÍA INDUSTRIAL
Autor: Jesús Vázquez Solís
Tutor: Jesús Muñuzuri Sanz
2
A mis padres y a mi tío Manuel.
3
4
Índice de contenido
1. Introducción y objeto del proyecto ....................................................................................... 9
2. Descripción del problema ................................................................................................... 11
2.1. TSPMD: Problema del Viajante de Comercio con Destinos Móviles ........................... 11
2.1.1. Modelo del TSPMD .............................................................................................. 12
2.2. VRPMD: Problema de Rutas de Vehículos con Destinos Móviles ............................... 13
2.2.1. Modelo del VRPMD ............................................................................................. 14
3. Descripción del algoritmo ................................................................................................... 16
3.1. Optimización combinatoria ......................................................................................... 16
3.2. Heurísticas ................................................................................................................... 17
3.3. Metaheurísticas ........................................................................................................... 18
3.3.1. Búsqueda Tabú .................................................................................................... 18
3.3.2. Algoritmos Genéticos .......................................................................................... 20
3.3.3. Algoritmos GRASP ............................................................................................... 22
3.3.4. Templado Simulado (“Simulated Annealing”) ..................................................... 23
3.3.5. Búsqueda Local Iterada ....................................................................................... 25
3.3.6. Optimización mediante Colonia de Hormigas (“Ant Colony Optimization”) ...... 26
3.4. Algoritmos de Colonias de Hormigas .......................................................................... 27
3.4.1. Introducción ........................................................................................................ 28
3.4.2. El Algoritmo AS .................................................................................................... 31
3.4.3. Algoritmos derivados del AS ............................................................................... 35
3.5. Aplicación al Problema VRPMD ................................................................................... 39
3.5.1. Descripción del general algoritmo ...................................................................... 39
3.5.2. Pseudo-código y descripción de las fases de resolución ..................................... 40
4. Problemas y resultados ....................................................................................................... 44
4.1. Comprobaciones ......................................................................................................... 44
4.1.1. Problema 1 .......................................................................................................... 44
4.1.2. Problema 2 .......................................................................................................... 46
4.1.3. Problema 3 .......................................................................................................... 48
4.1.4. Problema 4 .......................................................................................................... 50
4.1.5. Problema 5 .......................................................................................................... 52
4.2. Calibración ................................................................................................................... 54
4.3. Resolución de problemas ............................................................................................ 58
4.3.1. Problema 7 .......................................................................................................... 58
4.3.2. Problema 8 .......................................................................................................... 60
4.3.3. Problema 9 .......................................................................................................... 62
5
4.3.4. Problema 10 ........................................................................................................ 64
4.3.5. Problema 11 ........................................................................................................ 66
4.3.6. Problema 12 ........................................................................................................ 68
4.3.7. Problema 13 ........................................................................................................ 70
4.3.8. Resumen de los problemas resueltos ................................................................. 73
5. Conclusiones........................................................................................................................ 74
6. Anexos ................................................................................................................................. 76
6.1. Códigos ........................................................................................................................ 76
6.1.1. AlgoVRPMD: Función principal ............................................................................ 76
6.1.2. PFIH: Algoritmo Push Forward Insertion Heuristic ............................................. 79
6.1.3. InicializarFeromona ............................................................................................. 82
6.1.4. ConstrucciónSoluciones ...................................................................................... 83
6.1.5. ActualizaciónFeromona ....................................................................................... 87
6.1.6. Admisible ............................................................................................................. 88
7. Referencias .......................................................................................................................... 91
Índice de Ilustraciones
Ilustración 1. Solución del Problema 1. ...................................................................................... 45
Ilustración 2. Solución del Problema 2. ...................................................................................... 47
Ilustración 3. Solución del Problema 3. ...................................................................................... 49
Ilustración 4. Solución del Problema 4. ...................................................................................... 50
Ilustración 5. Solución del Problema 5. ...................................................................................... 53
Ilustración 6. Costes de las soluciones obtenidas según los parámetros de calibración. .......... 56
Ilustración 7. Tiempo de ejecución de las soluciones obtenidas según los parámetros de
calibración. .................................................................................................................................. 56
Ilustración 8. Solución del Problema 7. ...................................................................................... 59
Ilustración 9. Solución del Problema 8. ...................................................................................... 61
Ilustración 10. Solución del Problema 9. .................................................................................... 63
Ilustración 11. Solución del Problema 10. .................................................................................. 65
Ilustración 12. Solución del Problema 11. .................................................................................. 67
Ilustración 13. Solución del Problema 12. .................................................................................. 69
Ilustración 14. Solución del Problema 13. .................................................................................. 72
6
Índice de Tablas
Tabla 1. Datos del Problema 1. ................................................................................................... 44
Tabla 2. Datos del Problema 2. ................................................................................................... 46
Tabla 3. Datos del Problema 3. ................................................................................................... 48
Tabla 4. Datos del Problema 4. ................................................................................................... 50
Tabla 5. Soluciones admisibles para el Problema 4. ................................................................... 51
Tabla 6. Datos del Problema 5. ................................................................................................... 52
Tabla 7. Datos del Problema 6. ................................................................................................... 55
Tabla 8. Parámetros y resultados de las pruebas de calibración. ............................................... 55
Tabla 9. Datos del Problema 7. ................................................................................................... 59
Tabla 10. Datos del Problema 8. ................................................................................................. 60
Tabla 11. Datos del Problema 9. ................................................................................................. 62
Tabla 12. Datos del Problema 10. ............................................................................................... 64
Tabla 13. Datos del Problema 11. ............................................................................................... 66
Tabla 14. Datos del Problema 12. ............................................................................................... 68
Tabla 15. Datos del Problema 13. ............................................................................................... 71
Tabla 16. Resultados de los problemas resueltos ....................................................................... 73
Índice de Cuadros
Cuadro 1. Pseudo-código de la metaheurística Búsqueda Tabú. ............................................... 19
Cuadro 2. Pseudo-código del algoritmo genético. ...................................................................... 21
Cuadro 3. Pseudo-código de las metaheurísticas voraces. ......................................................... 23
Cuadro 4. Pseudo-código de las metaheurísticas de templado simulado. ................................. 24
Cuadro 5. Pseudo-código de las metaheurísticas de colonia de hormigas. ............................... 31
Cuadro 6. Pseudo-código del algoritmo “AlgoVRPMD”. ............................................................. 40
7
8
1. Introducción y objeto del proyecto
Los problemas de optimización de rutas en todas sus múltiples variantes han sido
objetos de estudio del campo de la Investigación Operativa durante décadas. Con la
expansión del comercio internacional gracias a la globalización, fomentada en parte por
la aparición y consolidación de Internet y por el fomento de acuerdos comerciales entre
los distintos bloques económicos del planeta, la mejora y optimización de las redes de
transporte de mercancías es esencial para la disminución de costes de transporte y el
incremento de la satisfacción del cliente.
Uno de los problemas más conocidos es el denominado “Vehicle Routing Problem”
(VRP), o Problema de Ruta de Vehículos en castellano. Este problema consiste en el
reparto de un producto a varios clientes disponiendo de una flota de vehículos y el
objetivo consiste en realizar las entregas con el menor coste posible.
Una particularización al problema anterior es el conocido como “Travelling Salesman
Problem” (TSP), o Problema del Viajante de Comercio en español. En él, se trata de lograr
repartir los productos con el menor coste posible cuando solo se dispone de un vehículo
en la flota.
Dichos problemas se engloban dentro de la categoría de problemas NP-Hard, lo que
implica que no pueden ser resueltos en tiempo polinómico por algoritmos conocidos.
Así, estos problemas tienen una gran dificultad computacional.
Así mismo, dichos problemas pueden particularizarse para muchas y variadas
aplicaciones, no solo en problemas logísticos sino de otros muchos campos.
El objetivo del presente Proyecto es abordar la resolución de una variante de estos
problemas, conocido como TSPMD y VRPMD (“Travelling Salesman Problem with
Moving Destinations”y “Vehicle Routing Problem with Moving Destinations”,
respectivamente) en el que los clientes tienen localizaciones geográficas distintas
durante el tiempo en el que se realiza el reparto. Cada cliente permanece en una
localización durante un cierto tiempo conocido como ventana temporal, para situarse
posteriormente en otro lugar.
La resolución del problema deberá, por lo tanto, tener en cuenta esta nueva
restricción suplementaria que resulta en una mejora obvia en el servicio al cliente, pues
permite flexibilizar la entrega de productos y adaptarse mejor a las necesidades de los
clientes.
Como se ha comentado anteriormente, este problema es computacionalmente
complejo (NP-Hard), por lo que a partir de un cierto tamaño es muy difícil de resolver
con programas de optimización básicos. Por lo tanto, se aplicará un algoritmo del tipo
“Colonia de hormigas” para buscar la mejor solución posible.
9
En los siguientes apartados, se hace una descripción del problema a resolver, se
describe el algoritmo utilizado, se presenta una batería de problemas resueltos con
dicho algoritmo y se presentan las conclusiones finales.
10
Description:VRPMD: Problema de Rutas de Vehículos con Destinos Móviles . 13. 2.2.1. Modelo del ele=roulette(probability); if (ele==0) j=0;.