PETICIÓN DE TEMA DE PROYECTO "RESOLUCIÓN DEL PROBLEMA DE VEHÍCULOS CAPACITADO (CVRP) INTELLIGENCE" 1. ENRUTAMIENTO DE MEDIANTE SWARM Introducción Los problemas NP-Complejos (Non-deterministic Polynomial time) [GAR 79] se caracterizan por ser difíciles de abordar de forma eficiente, ya que para su óptima resolución requieren de algoritmos que consumen un tiempo de cómputo elevado. Son problemas en los que un pequeño aumento del tamaño del problema supone un aumento exponencial del tiempo de cómputo. Un ejemplo de repercusión práctica considerable dentro de este tipo de problemas es el problema del enrutamiento de vehículos (VRPVehicule Routing Problem) [LEN 81, TOT 01]. El problema del enrutamiento de vehículos (VRP) está entre los problemas de optimización combinatoria más complejos de resolver. Consiste en minimizar la distancia total recorrida por los vehículos de una flota que tienen su punto de partida y llegada en una ciudad concreta (depósito) y tienen que servir ciertas mercancías a un conjunto de clientes. Este problema puede entenderse como la intersección de dos conocidos problemas de optimización combinatoria: - Problema del viajante de comercio (TSP - Traveling Salesman Problem) considerando la capacidad de cada automóvil como infinita [APP 06]. - Problema de empaquetamiento en compartimentos (BPP - Bin Packing Problem) [MAR 90]. Dentro de esta definición del problema se ubica un amplio conjunto de variantes: - CVRP (Capacitated VRP) [RAL 01], la variante más genérica y práctica, que introduce la restricción de capacidad de los vehículos, en la que la carga de las mercancías de una ruta no podrá exceder la capacidad fijada para cada vehículo de la flota. - MDVRP (Multi Depot VRP) [HJO 95], en la que se considera que existen dos o más depósitos desde los cuales servir a los clientes. - PVRP (Periodic VRP) [BAP 02], en el que la planificación se realiza para M días. - SDVRP (Split Delivery VRP) [DRO 94, ARC 01], simplificación de CVRP en la que se permite que un cliente pueda ser servido por varios vehículos. - SVRP (Stochastic) [LAP 98], en el que se consideran que uno o varios componentes del problema son aleatorios. Estos componentes pueden ser clientes, demandas y/o tiempo de servicio. - VRPB (VRP with Backhauls) [ALP, JAC 92], en la que un cliente puede devolver mercancía. - VRPPD (VRP with Pick-Up and Delivering) [RIG 00], similar a VRPB salvo que la recolección de mercancías a devolver se realiza una vez concluida la entrega de todas las mercancías de esa ruta. - VRPSF (VRP with Satellite Facilities) [BAR 97], en la que se considera que un vehículo puede cargar mercancías en plena ruta, eliminando la necesidad de volver al depósito. - VRPTW (VRP with Time Windows) [COR 02], en la que se considera que un cliente tiene asociada una ventana de tiempo durante la cual debe ser servido. Uno de los mecanismos más prometedores de resolución de los problemas NPcomplejos y que comenzaron a aplicarse al VRP fueron las Metaheurísticas. Dentro de las basadas en población destaca un inmenso grupo con multitud de aplicaciones y resultados prácticos hoy día y que se aúna bajo el término de Swarm Intelligence [BON 99, KEN 01]. Swarm Intelligence es un término asociado a una metáfora computacional y de comportamiento que permite la resolución de problemas complejos tomando inspiración de ejemplos de sociedades exitosas de colaboración y evolución que aparecen en la naturaleza. Ejemplos comunes son insectos sociales tales como las hormigas, abejas, termitas, etc., y vertebrados como colonias de aves o bancos de peces. Este tipo de inteligencia puede ser encontrada en casi cualquier nivel del mundo biológico (células, órganos, sistema nervioso e inmunológico, etc.,). En términos de ingeniería, swarm intelligence hace referencia al diseño ascendente de sistemas de control distribuidos que muestran formas de “inteligencia” (comportamientos inteligentes) a nivel global como resultado de la interacción local entre un cierto número de agentes. En otras palabras, es el diseño de sistemas adaptativos complejos que realizan un trabajo a partir de un desorden aparente (swarm). Los comportamientos aglutinados bajo el término swarm intelligence tienen en común los siguientes aspectos: - Vienen proporcionados por sociedades distribuidas constituidas por agentes o individuos autónomos. - El control se encuentra completamente distribuido entre los agentes. - Las comunicaciones entre los individuos son localizadas. - Las decisiones de los agentes son estocásticas (en ningún caso globales). - Los comportamientos a nivel de sistema trascienden al comportamiento del agente individual. - Las reglas de interacción son simples. - La respuesta global del sistema es robusta, adaptativa y escalable. Dentro de este tipo de metaheurísticas profundizaremos en el estudio de, entre otras, las siguientes: Optimización por Nubes de Partículas (PSO - Particle Swarm Optimization) [KEN 95], Optimización por Colonias de Hormigas (ACO - Ant Colony Optimization) [DOR 04] y Optimización por Colonias de Abejas (BCO - Bee Colony Optimization) [DUS 87]. La aplicación de este tipo de algoritmos y el análisis de los resultados que ésta proporcione puede suponer un gran avance en la resolución de algunas de las variantes más complejas y útiles del VRP como el CVRP. 2. Objetivos Con este proyecto trataremos de abordar problemas de optimización combinatoria considerados como NP-Complejos, centrándonos en el VRP, desde una perspectiva diferente, aplicando las metaheurísticas dispuestas bajo la filosofía de evolución en el espacio de búsqueda conocida como Swarm Intelligence. Los objetivos que nos proponemos son los siguientes: - Estudiar, caracterizar y analizar los problemas de optimización combinatoria considerados como NP-Complejos a través de varios problemas de esta clase comandados por el VRP. - Estudiar los nuevos algoritmos y conceptos metaheurísticos que surgen bajo el término Swarm Intelligence. - Demostrar la importancia de estas metaheurísticas al aplicarlas a problemas de optimización combinatoria considerados como NP-Complejos, realizando implementaciones de las mismas y adaptaciones para su evolución sobre diferentes instancias del CVRP. - Analizar y comparar el funcionamiento de los distintos algoritmos aglutinados bajo la filosofía conocida como Swarm Intelligence al aplicarlos a instancias del CVRP. Contrastar los resultados con los proporcionados por las metaheurísticas basadas en población más conocidas: Algoritmos Genéticos [HOL 75]. - Desarrollar una plataforma Web en la cual se ilustre el funcionamiento de estos algoritmos sobre instancias conocidas del CVRP, en la que se permitirá, entre otras posibilidades: Seleccionar de una colección de ficheros de instancias conocidas el problema a solucionar. Seleccionar la metaheurística a aplicar para la resolución de dicha instancia. Aportar los parámetros de funcionamiento del algoritmo seleccionado para su eficiente ejecución. Ejecutar el algoritmo correspondiente de acuerdo a los parámetros aportados, mostrando desarrollo del mismo, resultados finales y análisis de la ejecución. Como alumno, mis objetivos personales son: - Ampliar mis conocimientos sobre metaheurísticas basadas en población y aprender nuevos conceptos teóricos de métodos heurísticos aglutinados bajo el término de Swarm Intelligence. - Ampliar mis conocimientos sobre problemas NP-Complejos, en qué consisten, el núcleo de su problemática, formulación, descomposición y técnicas aplicadas hasta ahora con éxito. 3. - Aprender a desenvolverme ante el planteamiento de soluciones a este tipo de problemas, aportando técnicas de resolución posibles y analizando las ventajas e inconvenientes de cada una de ellas. - Obtener conocimientos de lenguajes de programación desconocidos, a modo de complemento de formación a los aprendidos durante el transcurso de la formación universitaria. Preveo instruirme principalmente en lenguajes orientados a objetos como C++ y Java (haciendo especial mención a la generación de applets en Java). - Aprender a desarrollar una plataforma web dinámica con Php y/o Java y aglutinar toda una aplicación en la misma. - Conocer los procedimientos a seguir para la realización de un proyecto de dimensión mayor a los realizados hasta el momento para su correcto desarrollo y documentación. Antecedentes El problema que nos disponemos a solucionar es de una gran relevancia práctica, con lo que en la actualidad existen numerosos estudios realizados sobre el mismo [VRP WEB]. Sin embargo, en el apartado relativo a Metaheurísticas, se han aplicado muy pocas técnicas encuadradas dentro del marco que abarca la filosofía Swarm Intelligence: existen muchas técnicas de resolución basadas en Swarm Intelligence que no han sido aplicadas aún, como PSO y BCO, habiéndose profundizado muy poco también en otras como ACO. 4. Partes de la que constará el proyecto Las distintas partes en la que podría ser dividido el proyecto son: 4.1. Servidor Web/Servidor de aplicación/Servidor de Datos: Se implementará un servidor web mediante herramientas de libre distribución. Este servidor web posibilitará el acceso a la documentación y la aplicación de los algoritmos que se disponen bajo la filosofía Swarm Intelligence. En él se ubicarán tanto las páginas web a ser servidas como los scripts que dirigirán las ejecuciones de los diferentes algoritmos implementados sobre las distintas instancias disponibles del problema (CVRP). También dispondremos de las bases de datos de instancias del CVRP y de las estadísticas que representarán la evolución y resultados de las ejecuciones. Sobre este servidor se ejecutarán los scripts de programación Web dinámica. 4.2. Sitio Web del proyecto: Dispondremos de un sitio Web desde el que se podrá acceder a información y documentación acerca del concepto de swarm intelligence y acerca de las metaheurísticas implementadas que se asocian a tal concepto (ACO, PSO, BCO, etc.,). Al tratarse el proyecto de un sistema que pretende acercar y facilitar el aprendizaje y la comprensión de este tipo de algoritmos, existe una gran necesidad, no sólo de demostrar cómo funcionan los algoritmos en teoría o con resultados parciales relativos a la mejor solución obtenida hasta el momento en la práctica, sino también de formar y hacer ver a los visitantes e interesados en el sistema la evolución de los mismos medida en términos estadísticos tanto en la misma ejecución como en la totalidad de ejecuciones. 4.2. Interfaz para ejecución de Metaheurísticas En el portal web, dispondremos también de una zona para la ejecución de los algoritmos aplicados a instancias del CVRP, en la que el usuario podrá personalizar la misma aportando valores para los parámetros de los distintos algoritmos. La interfaz mostrará durante la ejecución su desarrollo, incluyendo las soluciones parciales hasta el momento, mejor solución global, estadísticas, etc. 4.3. Algoritmos implementados La base conceptual del presente proyecto recae en las metaheurísticas aplicadas y en concreto en las personalizaciones de los algoritmos, tanto genéticos como de Swarm Intelligence, para la clase de problemas enmarcada bajo el término VRP. Tenemos una base de funcionamiento extensible, por tanto, para una posterior utilización. 5. Fases de desarrollo del proyecto El desarrollo de este proyecto puede ser resumido en las siguientes fases: 5.1. Fase de estudio de metaheurísticas: Algoritmos Genéticos y Swarm Intelligence: En primer lugar, se estudiará desde un punto de vista teórico el concepto de swarm intelligence, las distintas filosofías que aglutina y en particular aquellas que corresponden a la optimización basada en colonias de hormigas, optimización por nubes de partículas y optimización a partir de colonias de abejas. 5.2. Fase de estudio de problemas NP-Complejos a abordar (VRP - CVRP) Continuaremos con el estudio de distintos problemas de optimización combinatoria de interés: su origen, características de sus instancias, representación de soluciones, dificultad de resolución y aplicaciones. Nos centraremos en particular en el VRP y dentro de sus variantes en el CVRP. 5.3. Fase de análisis de vías de solución: Se procederá al análisis del método más óptimo de diseño e implementación del sistema. En este paso, seleccionaremos los métodos de diseño web, procedural y gráfico adecuados. Con objeto de orientar el análisis y diseño se seleccionarán posibles lenguajes web dinámicos, procedurales y de diseño, aplicación de los algoritmos y representación del problema (VRP-CVRP). 5.4. Fase de diseño e implementación de algoritmos aplicados a VRP: Procederemos a diseñar e implementar los algoritmos que vamos a utilizar como base para abordar el problema que nos planteamos. Los algoritmos se crean en esta primera fase sin artefactos complejos de programación de modo que sean portables posteriormente a nuestra aplicación o sea posible publicarlos en el sitio web para su reutilización en el futuro. 5.5. Fase de diseño y creación de base de datos de instancias del CVRP: Se diseñará y creará una base de datos que tenga en cuenta los problemas de optimización combinatoria disponibles para su resolución: CVRP. Tal base de datos presentará un conjunto considerable de instancias del problema y las características que las mismas presentan, así como las mejores soluciones obtenidas por parte de los diferentes algoritmos aplicados. En la misma se almacenará la estadística de la evolución de las diferentes ejecuciones que permita establecer la comparativa entre los distintos algoritmos. 5.6. Fase de diseño e implementación de interfaz para ejecución de instancias. En esta fase nos dedicaremos a diseñar e implementar la interfaz de ejecución de instancias para los distintos algoritmos implementados, de forma que la ejecución de una instancia sea fácilmente configurable por el usuario y en la que se muestre el desarrollo de la ejecución de forma clara. En la misma se definirá el entorno sobre el que se moverá la ejecución del algoritmo y su interacción con la base de datos de instancias. 5.7. Fase de prueba individual de algoritmos: Se creará un servidor que contenga tanto una Web de pruebas como las bases de datos de instancias, en el que se puedan incorporar los elementos básicos para probar la aplicación de los algoritmos al problema. En dicha web de pruebas, quedarán embebidos tanto el interfaz web como el visualizador de resultados. Una vez probados todos y cada uno de los algoritmos de forma individual, todo el contenido será migrado al sitio web definitivo. 5.8. Fase de diseño y creación del sitio Web: En esta fase, nos centraremos en diseñar y crear el sitio web definitivo. Se generará la documentación anexa a la aplicación de los algoritmos al CVRP y se migrará la aplicación desde la página de pruebas a la que finalmente se usará y se hospedará en el servidor web definitivo. 5.9. Fase de documentación: Esta fase se irá realizando de manera simultánea a las otras fases del proyecto. En ella se generará la documentación del proyecto en formato de documento impreso que se entregará para la lectura del mismo. 6. Recursos Los distintos recursos de los que dispondremos para la elaboración del presente proyecto se resumen en lo siguientes apartados: - - - - Recursos Software: IDE’s de desarrollo de aplicaciones de libre distribución. Compiladores de libre distribución para lenguajes orientados a objetos. Editores de texto avanzados. Recursos Hardware: Ordenador con procesador Intel Pentium IV a 2,53 GHz, Memoria RAM 1024 MB’s, T. Grafica 128 MB’s NVIDIA Geforce, HD interno 250 GB’s + HD externo 80 GB’s y Sistemas Operativos Windows XP SP2 y Linux. Ordenador Portátil Packard Bell EasyNote MX, con procesador AMD Turion64 X2 TL-50 (2x1.61 GHz), Memoria RAM 1024 MB’s, T. Gráfica 512 MB’s Compartidos Nvidia GeForce Go 6100, HD 80 GB’s y Sistema Operativo Windows XP SP2. Recursos Personales: Alumno: Eduardo Gandía Nevado Director/es de proyecto: D. Enrique Yeguas Bolívar D. Sebastián Ventura Soto Otros recursos: 7. Bibliografía para comprensión, aplicación e implementación de los conceptos expuestos. Esta bibliografía queda contenida en el apartado de Bibliografía del presente documento. Bibliografía [ALP] Cumhur Alper Gelogullari. "Vehicle Routing Problem with Backhauls". Representación Power Point. [APP 06] David L. Applegate, Robert E. Bixby, Vasek Chvátal & William J. Cook. “The Traveling Salesman Problem: A Computacional Study”. Princeton University Press, 606 pp. 2006. [ARC 01] C. Archetti, R. Mansini, M.G. Speranza - "The Split Delivery Vehicle Routing Problem with Small Capacity", Tecnical Report n. 201,Department of Quantitative Methods, University of Brescia 2001. [BAP 02] S. Baptista, R.C. Oliveira and E. Zúquete. "A Period Vehicle Routing Case Study", European Journal of Operational Research 139:220-229, Elsevier, 2002. [BAR 97] J.F. Bard, L. Huang, M. Dror, and P. Jaillet, "A Branch and Cut Algorithm for the VRP with Satellite Facilities", IIE Transactions 30, pp 821-834. 1997. [BON 99] F E. Bonabeau, M. Dorigo and G. Theraulaz, "Swarm Intelligence: From Natural to Artificial Systems", Oxford University Press, 1999. [BUR 88] W. Burrows. "The Vehicle Routing Problem with Loadsplitting: A Heuristic Approach". In 24th Annual Conference of the Operational Research Society of New Zealand, pages 33-38, 1988. [COR 02] CORDEAU, J.-F., DESAULNIERS, G., DESROSIERS, J., SOLOMON, M.M., SOUMIS, F. "VRP with Time Windows". In P. Toth and D. Vigo (eds.): The Vehicle Routing Problem, SIAM Monographs on Discrete Mathematics and Applications, vol. 9, Philadelphia, PA, 157-193. 2002. [CPP 98] Escuela Superior de Ingenieros Industriales. “Aprenda C++ como si estuviera en primero” Universidad de Navarra, 1998. [DOR 04] F M. Dorigo and T. Stuetzle, "Ant Colony Optimization", MIT Press, Cambridge, MA, 2004. [DRO 94] M. Dror, G. Laporte, P. Trudeau, ”Vehicle routing with split deliveries”, Discrete Appl. Math. 50, 239-254. 1994. [DUS 87] Dušan TEODOROVIĆ, Marco DELL’ ORCO. “BEE COLONY OPTIMIZATION – A COOPERATIVE LEARNING APPROACH TO COMPLEX TRANSPORTATION PROBLEMS”. 1987. [GAR 79] Michael R. Garey and David S. Johnson. Computers and Intractability: A Guide to the Theory of NP-Completeness. W.H. Freeman. 1979. [HJO 95] C. Hjorring. "The Vehicle Routing Problem and Local Search Metaheuristics", Chapter 2. PhD thesis, Department of Engineering Science, The University of Auckland, 1995. [HOL 75] Holland J.H., “Adaptation in Natural and Artificial Systems”. University of Michigan Press, Ann Arbor, 1975. [JAC 92] C. Jacobs-Blecha, and M. Goetschalckx. "The vehicle routing problem with backhauls: properties and solution algorithms". Technical Report, School of Industrial and Systems Engineering, Georgia Institute of Technology, Atlanta, Georgia. Presented at the National Transportation Research Board, January 13-15, 1992, Washington DC. [KEN 95] Kennedy, J. and Eberhart, R. C. Particle swarm optimization. Proceedings of IEEE International Conference on Neural Networks, Piscataway, NJ. pp. 1942-1948, 1995. [KEN 01] F J. Kennedy and R. C. Eberhart, "Swarm Intelligence", Morgan Kaufmann, 2001. [LAP 98] G. Laporte, and F.V. Louveaux. "Solving Stochastic Routing Problems with the Integer L-shaped Method". In Fleet Management and Logistics, T.G. Crainic and G. Laporte (eds.), 159-167, Kluwer Academic Publishers, Boston. 1998. [LEN 81] J. K. Lenstra, A.H.G. Rinnooy Kan, "Complexity of vehicle routing and scheduling problems", Networks, 11, pp. 221-227. 1981. [MAR 90] S. Martello and P. Toth, Knapsack problems. Wiley, Chichester (1990). [RAL 01] T. Ralphs, J. Hartman and M. Galati. "Capacitated Vehicle Routing and Some Related Problems". Some CVRP Slides. Rutgers University. 2001. [RIG 00] G. Righini, "Approximation algorithms for the vehicle routing problem with pick-up and delivery", Note del Polo - Ricerca 33, Polo Didattico e di Ricerca di Crema, Università degli Studi di Milano, Luglio 2000. [TOT 01] P. Toth, D. Vigo: "The Vehicle Routing Problem". Monographs on Discrete Mathematics and Applications. SIAM, Philadelphia. 2001. [VRP WEB] Bernabé Dorronsoro Díaz. Pagina web. http://neo.lcc.uma.es/radi-aeb/WebVRP