Estado del Arte en el Problema de Ruteo de Vehículos (VRP) Magdalena Benavente, Jaime Bustos Laboratorio de Ingeniería Aplicada, Departamento de Ingeniería de Sistemas, Universidad de La Frontera Mail: jbustos@ufro.cl Resumen En este trabajo se analiza el estado del arte del problema de ruteo de vehículos (VRP) y el uso de herramientas de apoyo en empresas nacionales. Finalmente se elabora un propuesta de elementos deseables en una herramienta tecnológica que permita la resolución de este tipo de problemas en la práctica. Palabras claves: Ruteo de vehículos VRP Logística y Distribución 1. Introducción El problema de ruteo de vehículos (VRP por sus siglas en inglés) es el nombre genérico dado a la clase de problemas en los que se debe determinar una serie de rutas para una flota de vehículos basados en uno o más depósitos, para un cierto número de ciudades o clientes geográficamente dispersos. Es uno de los problema de optimización combinatorial y programación no lineal más desafiante que existe por su complejidad (fue mostrado pertenecer al tipo NP-Hard por Rinooy Kan y xxx, 1981) y a la vez está comúnmente presente en aplicaciones industriales. En su forma más sencilla, el objetivo del VRP es satisfacer a una serie de clientes con demandas conocidas, en rutas vehiculares de mínimo costo, que se originan y terminan en un depósito. A continuación se presenta en la ilustración 1 un típico ejemplo de una solución simple de un VRP: 1 Ilustración 1: Solución simple a un VRP. Ballou (2004) hace referencia a que la distribución, cuando proporciona un adecuado nivel de servicio con el fin de satisfacer las necesidades del cliente, puede llevar directamente a un incremento en las ventas, un mayor porcentaje de participación en el mercado y contribuir en la disminución de costos y por consiguiente, en un aumento de las utilidades. El VRP surge naturalmente como el problema central en los campos de transporte, distribución y logística. En algunos mercados, transporte significa un alto porcentaje del valor agregado de los bienes. Es por esto que la utilización de métodos computarizados para el transporte resulta frecuentemente en ahorros significativos, variando entre un 5% y un 20% de los costos totales, como informan Toth y Vigo (2001). Los VRP son uno de los problemas más conocidos y desafiantes en la programación entera, que cae en la categoría denominada NP-completos (Rinooy Kan y xxx, 1981), esto es, los problemas que no se pueden resolver en tiempo polinomial en función del tamaño de la entrada. El tiempo y esfuerzo computacional requerido para resolver este problema aumenta exponencialmente. Para este tipo de problemas es a menudo deseable obtener soluciones aproximadas, para que puedan ser encontradas lo bastantemente rápido y que sean suficientemente exactas para su propósito. Usualmente esta tarea es lograda usando varios métodos heurísticos, que dependen de cierta visión interna de la naturaleza del problema. La función objetivo depende de la tipología y características del problema. Lo más habitual es intentar: a. minimizar el coste total de operación, b. minimizar el tiempo total de transporte, c. minimizar la distancia total recorrida, 2 d. e. f. g. h. minimizar el tiempo de espera, maximizar el beneficio, maximizar el servicio al cliente, minimizar la utilización de vehículos, equilibrar la utilización de los recursos, etc. 2. Modelación Matemática del VRP Dantzig y Ramser fueron los primeros autores en 1959, cuando estudiaron la aplicación real en la distribución de gasolina para estaciones de carburante. Desde entonces ha sido motivo de considerable investigación en la literatura especializada. Se puede encontrar revisiones de estado del arte en Toth y Vigo (2002), Fischer (1995) y Laporte y Osman (1995). El modelo matemático más comúnmente utilizado para representar este problema fue propuesto por Miller-Tuckin-Zemlin () como se indica a continuación: Eduardo lo tiene digitado en su tesis …. El problema de ruteo de vehículos está compuesto de dos grandes tipos de decisiones muy complejas: la asignación de clientes a vehículos (Knapsack Problem) y establecer la secuencia adecuada de visita a los clientes que debe realizar un vendedor o vehículo (Traveling Salesman Problem o TSP). 3 3. Clasificación de Problemas de Ruteo de Vehículos En el mundo real, en los VRP aparecen muchas restricciones especiales, aparte de las ya nombradas. Esto crea el surgimiento de variantes del problema original. Algunas de las principales son: a. El problema del vendedor viajero (Traveling Salesman Problem - TSP) b. Cada vehículo tiene una capacidad limitada (Capacitated VRP - CVRP) c. Cada cliente tiene que ser atendido dentro de una cierta ventana de tiempo (VRP with time windows - VRPTW) d. El vendedor usa varios depósitos para abastecer a los clientes (Multiple Depot VRP - MDVRP) e. Los clientes tienen la opción de devolver algunos bienes al depósito (VRP with Pick-Up and Delivering - VRPPD) f. Los clientes pueden ser abastecidos por distintos vehículos (Split Delivery VRP - SDVRP) g. Algunos valores (como número de clientes, sus demandas, tiempo de servicio o tiempo de viaje) son aleatorios (Stochastic VRP - SVRP) h. Los pedidos pueden ser llevados sólo en ciertos días (Periodic VRP - PVRP) 3.1 El problema del vendedor viajero (TSP) El problema del vendedor viajero (por sus siglas en inglés TSP) es uno de los problemas más famosos (y quizás el mejor estudiado) en el campo de la optimización combinatoria computacional. A pesar de la aparente sencillez de su planteamiento, el TSP es uno de los más complejos de resolver y existen demostraciones que equiparan la complejidad de su solución a la de otros problemas aparentemente mucho más complejos que han retado a los matemáticos desde hace siglos. El planteamiento es el siguiente: un vendedor que quiere encontrar la ruta más corta posible, partiendo desde su casa y llegando a la misma, y visitando a todos sus clientes sólo una vez, es decir sin pasar dos veces por el mismo punto. Desde el punto de vista práctico, el problema no está resuelto y desde el punto de vista teórico, las técnicas empleadas son sólo aproximaciones. No suponen una resolución real del TSP y sólo ofrecen soluciones aproximadas suficientemente aceptables. La solución más directa es la que aplica la fuerza bruta: evaluar todas las posibles combinaciones de recorridos y quedarse con aquella cuyo trazado utiliza la menor distancia. El problema reside en el número de posibles combinaciones que viene dado por el factorial del número de ciudades (N!) y esto hace que la solución por fuerza bruta sea impracticable para valores de N incluso moderados con los medios computacionales actualmente a nuestro alcance. Por ejemplo, si un ordenador fuese capaz de calcular la longitud de cada combinación en un microsegundo, tardaría algo más 3 segundos en resolver el problema para 10 ciudades, algo más de medio minuto en resolver el problema para 11 ciudades y... 77.146 años en resolver el problema para sólo 20 ciudades. 4 Los algoritmos clásicos no son capaces de resolver el problema general, debido a la explosión combinatoria de las posibles soluciones. Por ello, a su solución se han aplicado distintas técnicas computacionales: heurísticas evolutivas, redes de Hopefield, etc. El TSP está entre los problemas denominados NP-completos, esto es, los problemas que no se pueden resolver en tiempo polinomial en función del tamaño de la entrada (en este caso el número N de ciudades que el viajante debe recorrer). Sin embargo, algunos casos concretos del problema sí han sido resueltos hasta su optimización, lo que lo convierte en un excelente banco de pruebas para algoritmos de optimización que pertenezcan a la misma familia. 3.2 Capacitated VRP (CVRP) Este problema es una extensión del clásico problema del vendedor viajero (TSP), en que las rutas permitidas son limitadas por la necesidad de que los objetos deben ser entregados desde un punto fuente hasta su destino por un vehículo de capacidad finita. En este tipo de problema, se cuenta con un centro de depósito, “n” vehículos con capacidad definida para cada uno. Éstos deben salir y regresar al depósito después de cumplir una secuencia de visita a clientes que se debe definir. Las restricciones que se deben tener en cuenta son las de visitar a todos los clientes una vez, satisfacer la demanda total y no sobrepasar la capacidad de carga máxima de cada vehículo. El objetivo es minimizar la flota de vehículos y la suma del tiempo de viaje, y a la vez la demanda total para cada ruta no puede exceder la capacidad del vehículo que realiza esa ruta. Una solución es factible si la cantidad total asignada a cada ruta no excede la capacidad del vehículo que realizará la ruta. Algunos de los trabajos relacionados son por ejemplo, The Capacitated Vehicle Routing Problem (CVRP) [6] en este problema se tiene un conjunto de puntos en un espacio métrico, un grupo de vehículos de cierta capacidad y una colección de ru tas de vehículos empezando en un origen, los cuales cada uno deben visitar un punto determinado. Otro de los trabajos es The Precedence- Constrained TSP [7] que implica la existencia de un número finito de puntos que se deben visitar antes de visitar un punto definido. Estos problemas son muy importantes, y las soluciones planteadas en este artículo son muy interesantes. 5 3.3 Times Windows VRP (TWVRP) Es el mismo problema que VRP, pero con la restricción adicional que ventanas de tiempo en las que los clientes deben ser atendidos. Las ventanas de tiempo implican la existencia de un límite o intervalo de tiempo dentro del cual un cliente debe ser abastecido. El objetivo es minimizar la flota de vehículos, el tiempo total de viaje y el tiempo de espera necesario para abastecer a todos los clientes en sus respectivos horarios. Las soluciones son factibles si, además de las características de las soluciones de VRP, se agregan las siguientes características: una solución se convierte en infactible si un cliente es abastecido después del límite superior de su ventana horaria, si el vehículo llega antes del límite inferior de la ventana horaria el tiempo causa un aumento en el tiempo de espera, cada ruta debe empezar y terminar dentro de la ventana de tiempo asociada al depósito y en el caso de ventanas menos estrictas, un servicio tardío no afecta a la factibilidad de la solución pero si se penaliza agregando un valor a la función objetivo. Una aproximación heurística robusta es propuesta en [2] para el problema de rutas de vehículos con ventanas de tiempo, usando un eficiente algoritmo genético. El principal objetivo del artículo es minimizar la distancia viajada. En los resultados propuestos, el comportamiento de métodos heurísticos fue comparado con métodos exactos en términos de encontrar un óptimo global, robustez y esfuerzo computacional, usando las mismas suposiciones para la precisión del cálculo y la definición de la función objetivo. Este problema es también abordado en la tesis doctoral [3], para el cuál usan un método llamado Dantzig-Wolfe. En este método el problema es dividido en dos, el problema maestro relacionado con el conjunto de particiones del problema que garantiza que cada cliente es visitado exactamente una vez, y el sub-problema es el problema de la ruta más corta, con restricciones adicionales (capacidad y ventana de tiempo). Esta tesis es bastante completa, y presenta de una manera clara los algoritmos usados y la parte matemática. Es un material muy bueno para ser tenido en cuenta en el proyecto a desarrollar. En otro trabajo [4] se presenta una solución para este problema con algoritmos genéticos. El propósito fundamental de este trabajo es ser hábil para organizar diferentes rutas para cualquier problema de recolección o distribución para satisfacer todas las restricciones impuestas. Algunos algoritmos fueron implementados para la experimentación en el caso de criterio único y el de multicriterio. Un algoritmo de optimización de colonia de hormigas (ACO) es propuesto como solución a este problema en [5], el cual es basado en el sistema de hormigas, que fue 6 inspirado sobre el comportamiento real de las hormigas. El objetivo es minimizar el costo total, el cual consiste de costos en la cantidad de vehículos utilizados y la distancia total viajada. Para ello usan una función objetivo de pesos para minimizar el tamaño del conjunto de vehículos necesarios. Finalmente se presentan unos resultados de la simulación para los cuales usaron un algoritmo heurístico y una implementación secuencial del ACO para ver el desempeño del ACO hibrido frente a los otros. 3.4 VRP with multiple depot (MDVRP) Una compañía puede tener varios depósitos desde donde abastece a sus clientes. Si los clientes se encuentran agrupados alrededor de los depósitos, entonces el problema de distribución se puede modelar como varios VRP independientes. No obstante, si los clientes y los depósitos se localizan entremezclados tenemos en problema de MDVRP. En este tipo de problema se consideran varios depósitos, donde en cada uno de ellos existe una flota de vehículos. Cada depósito tiene a su cargo a un número de clientes, los cuales son atendidos por los vehículos asignados al depósito. El objetivo de este problema, junto al ya mencionado de reducir la distancia recorrida, es minimizar la flota de vehículos asignados a cada depósito. En [10] se enfoca principalmente en la asignación (agrupamiento) de los clientes a los almacenes, y compara los resultados obtenidos por seis heurísticas con asignación (asignación a través de urgencias, asignación paralela, asignación simplificada y barrido de asignación) obtenidos para resolver un problema de transporte para los mismos casos. Estos resultados fueron obtenidos utilizando una herramienta llamada STAAR, desarrollada bajo el software ArcView 3.0, plataforma GIS. Con estas pruebas, se concluye que los algoritmos de urgencia son los más recomendables en problemas grandes de la vida real. 3.5 VRP with Pickup and Delivery (PDVRP) Esta variante incluye la posibilidad de recoger y entregar mercancía en lugar de sólo entregarla. También se contempla la devolución de bienes por parte de los clientes. Por lo que hay que considerar que los bienes que entregan los clientes quepan en el vehículo. Esta restricción de devolución dificulta la planificación, lo que se traduce en una utilización ineficiente de la capacidad del vehículo y un aumento en las distancias de viaje. El fin es encontrar rutas óptimas de visita a los lugares de entrega y recibo para una flota de vehículos. Por consiguiente es usual que se consideren situaciones restringidas, en donde todas las demandas de entrega empiezan desde el depósito y todos los bienes recogidos serán llevados de vuelta al depósito, logrando de esta manera que no se produzcan intercambios de bienes entre clientes. Otra alternativa es relajar la restricción de que los 7 clientes deben ser visitados exactamente una vez. Otra simplificación usual es considerar que cada vehículo debe entregar todo su contenido antes de recoger otros bienes de los clientes. 3.6 VRP with split deliveries (SDVRP) SDVRP es una relajación del VRP, en donde se permite que un mismo cliente sea abastecido por distintos vehículos, siempre y cuando esto ayude a reducir los costos totales de la ruta. El problema consiste en que dada una flota de vehículos homogéneos estacionados en un depósito central y un conjunto de clientes requiriendo que sus demandas sean satisfechas, se deben encontrar las rutas de los vehículos empezando y terminando en el depósito cuando cada cliente sea visitado. Se diferencia de otros problemas más conocidos de rutas con capacidades en que se permite abastecer la demanda de cada cliente utilizando más de un vehículo. Para la solución de este problema [8] proponen una búsqueda heurística tabú con cuatro diferentes estructuras de vecindad. Este problema también es abordado con el estudio del poliedro asociado al Problema de Rutas de Vehículos con Demanda Compartida [9], problema de distribución que surge cuando hay que repartir mercancías a un conjunto de clientes utilizando una flota fija de vehículos de capacidad limitada. El objetivo es diseñar las rutas de forma que se minimice la distancia total recorrida. 3.7 Stochastic VRP (SVRP) En este problema se asume alguno(s) componente(s) no determinista(s) presentes en el sistema. Ya sea encontramos a clientes con una probabilidad de presencia o de ausencia, a clientes cuya demanda es una variable al azar y clientes donde el tiempo de servicio, junto con el tiempo de recorrido, son variables aleatorias. En los SVRP existen dos etapas para llegar a una solución. Una primera solución es determinada antes de conocer las realizaciones de las variables aleatorias. En una segunda etapa, un recurso o acción correctiva puede tomarse cuando se conocen los valores de las variables aleatorias. Debido a la aleatoriedad de algunos datos, no es posible requerir que todas las restricciones se satisfagan para todas las realizaciones de las variables aleatorias. Así que la decisión puede requerir, ya sea el cumplimiento de ciertas restricciones con una probabilidad dada, o la incorporación en el modelo de acciones correctivas a considerarse cuando una restricción es violada. 3.8 Periodic VRP (PVRP) 8 En los problemas clásicos de VRP el periodo de planeación es de un día. En el caso de los PVRP, el clásico VRP es generalizado extendiendo el periodo de planeación a “M” días. Para esta variante se debe considerar las restricciones de que un cliente debe ser visitado como mínimo una vez dentro de un período de tiempo definido, cada vehículo debe tener una capacidad de carga definida, se tiene que satisfacer la demanda de cada cliente y respetar algunos horarios de recepción de mercadería y no es necesario que el vehículo tenga que regresar al depósito en el mismo día que salió, sino que debe regresar dentro del período de tiempo ya definido. El objetivo es minimizar el costo de la suma de todas la rutas. Cada cliente tiene una demanda diaria conocida que debe ser completamente satisfecha en sólo una visita y con exactamente un camión. Si el periodo de planeación de 1 día, entonces el problema se convierte en un simple VRP. Cada cliente debe ser visitado “k” veces, donde 1 ≤ k ≤ M. En el modelo clásico de PVRP la demanda diaria de un cliente está siempre arreglada. El PVRP puede ser visto como un problema de generar un grupo de rutas para cada día, para que las restricciones involucradas sean satisfechas y los costos globales sean minimizados. También estos problemas pueden ser vistos como problemas de optimización combinatorial de multiniveles. o En el primer nivel el objetivo es generar un grupo de alternativas factibles (combinaciones) para cada cliente. o En el Segundo nivel se debe seleccionar una de las alternativas para cada cliente, de manera que las restricciones diarias sean satisfechas. De este modo se debe seleccionar los clientes a ser visitados en cada día. o En el tercer nivel se resuelve el VRP para cada día. 4. Métodos de Solución del VRP La manera de abordar los problemas de ruteo de vehículos y dar una buena solución para este tipo de problemas va desde métodos sencillos utilizando herramientas gráficas (para problemas de baja a mediana complejidad) hasta el uso de modelos de optimización basados en programación lineal/entera diseñados específicamente para una familia de problemas dados o bien métodos heurísticos (Metaheurísticos) para la búsqueda de soluciones de buena calidad en tiempos limitados. Los métodos comúnmente usados en la literatura incluyen: Incorporar una lista de los enfoques de solución utilizados, con referencias correspondientes (ver en webVRP) 9 Existe en el mercado una variedad de herramientas de software tanto comercial como de libre uso para abordar diferentes tipos de problemas de ruteo de vehículos (ver http://neo.lcc.uma.es/radi-aeb/WebVRP/ y http://www.or.deis.unibo.it/research_pages/tspsoft.html ). 4.1 Complejidad y Heurística Los problemas a trabajar son de complejidad NP-completa, con un gran número de clientes. Actualmente, todos los algoritmos conocidos para problemas NP-completos utilizan tiempo exponencial con respecto al tamaño de la entrada. Se desconoce si hay algoritmos más rápidos, por lo cual, para resolver un problema NP-completo de tamaño arbitrario, se utiliza uno de los siguientes enfoques: Aproximación: Un algoritmo que rápidamente encuentra una solución no necesariamente óptima, pero dentro de un cierto rango de error. En algunos casos, encontrar una buena aproximación es suficiente para resolver el problema, pero no todos los problemas NP-completos tienen buenos algoritmos de aproximación. Probabilístico: Un algoritmo probabilístico utiliza aleatoriedad para obtener en promedio una buena solución al problema planteado con una pequeña probabilidad de fallar, para una distribución de los datos de entrada dada. Restricciones: Restringiendo la estructura de las entradas se pueden encontrar algoritmos más rápidos. Casos particulares: Puede ocurrir que se reconozcan casos particulares del problema para los cuales existen soluciones rápidas. Algoritmo genético: Algoritmos que mejoran las posibles soluciones hasta encontrar una que posiblemente esté cerca del óptimo. Tampoco existe forma de garantizar la calidad de la respuesta. Heurísticas: Un algoritmo que trabaja razonablemente bien en muchos casos. En general son rápidos, pero no existe medida de la calidad de la respuesta. Las aproximaciones metaheurísticas suelen ser empleadas. Debido a las características de nuestro estudio, se hace necesaria la utilización de la heurística y metaheurística. En computación, dos objetivos fundamentales son encontrar algoritmos con buenos tiempos de ejecución y buenas soluciones, usualmente las óptimas. Una heurística es un algoritmo que abandona uno o ambos objetivos; por ejemplo, normalmente 10 encuentran buenas soluciones, aunque en ocasiones no hay pruebas de que la solución no pueda ser arbitrariamente errónea; o se ejecuta razonablemente rápido, aunque no existe tampoco prueba de que deba ser así. Como disciplina científica, la heurística es aplicable a cualquier ciencia e incluye la elaboración de medios auxiliares, principios, reglas, estrategias y programas que faciliten la búsqueda de vías de solución a problemas; o sea, para resolver tareas de cualquier tipo para las que no se cuente con un procedimiento algorítmico de solución. Una metaheurística es un método heurístico para resolver un tipo de problema computacional general, usando los parámetros dados por el usuario sobre unos procedimientos genéricos y abstractos de una manera que se espera eficiente. Normalmente, estos procedimientos son heurísticos. Las metaheurísticas generalmente se aplican a problemas que no tienen un algoritmo o heurística específica que dé una solución satisfactoria; o bien cuando no es posible implementar ese método óptimo. La mayoría de las metaheurísticas tienen como objetivo los problemas de optimización combinatoria 5. VRP en Chile En nuestro país, el problema de ruteo de vehículos ha sido abordado por diferentes medios. En el ámbito académico destaca los trabajos de xxx (), xxx (), xxx (), xxx () y xxx (). (NOTA: buscar en los catálogos de tesis de la Chile, la UCT, UTFSM, UdeConce, UTalca y UFRO … los nombres de profesores trabajando en el área en Chile deberían incluir: Andres Weintraub, Rafael Epstein, Carmen Ortiz, … ver miembros de ICHIO en www.ichio.cl) En tanto, en las empresas se ha privilegiado la adquisición de herramientas desarrolladas en el extranjero, como … (NOTA: validar esta información con la opinión de nuestros titulados trabajando en el área … te puedo dar unos nombres para hacerles consultas … no estaría de más elaborar una breve encuesta de una 6-10 preguntas para hacerles) 6. Componentes de una herramienta de Ruteo de Vehículos Incorporar: - una lista de proveedores, pantallazos de sus aplicaciones - listado de características deseables de un software para VRP - listado de funciones necesarias obtener desde ORMS review (NOTA: estoy pensando en que en el LIA-DIS desarrollemos un prototipo. Esta sección será muy util para el diseño) 11 7. Conclusiones Se ha presentado en este trabajo el estado del arte del problema de ruteo de vehículos (VRP) y el uso de herramientas de apoyo en empresas nacionales. Finalmente se elaboró un propuesta de elementos deseables en una herramienta tecnológica que permita la resolución de este tipo de problemas en la práctica. 12 Bibliografía: [1] Gabriela Alfonsina Salamanca Fajardo. Problemas de Planeación de Rutas Vehiculares y sus Aplicaciones. [2] G. de Tomi G. B. Alvarenga, G. R. Mateus. Finding near optimal solutions for vehicle routing problems with time windows using hybrid genetic algorithm. [3] Parallelization of the Vehicle Routing Problem with Time Windows. PhD thesis, 2001. [4] Multicriteria genetic algorithms for the vehicle. Malek Rahoual, Boubekeur Kitoun, Mohamed-Hakim Mabed, and Vincent Bachelet † Féthia Benameur, MIC’2001 - 4th Metaheuristics International Conference . [5] K. Doerner, R.F. Hartl, and M. Reimann. A hybrid aco algorithm for the full truckload transportation problem. [6] Prasad Chalasani and Rajeev Motwani. Approximating capacitated routing and delivery problems. SIAM Journal on Computing, 28(6):2133–2149, 1999. [7] L. Bianco, A. Mingozzi, S. Riccardelli, and M. Spadoni. Exact and heuristic procedures for the traveling salesman problem with precedence constraints, based on dynamic programming. INFOR, 32(1):19{32, 1994. [8] Sin C. Ho and Dag Haugland. A tabu search heuristic for the vehicle routing problem with time windows and split deliveries. [9] E. Mota C. Martinez. Del poliedro del agente viajero grafico al de rutas de vehículos con demanda compartida. SORT - QUESTII´O(ISSN 0210-8054), 24:34, 2000. [10] Libertad Tansini, Maria Urquhart, and Omar Viera. Comparing assignment algorithms for the multi-depot vrp. www.wikipedia.com http://neo.lcc.uma.es/radi-aeb/WebVRP/ http://www.or.deis.unibo.it/research_pages/tspsoft.html 13