Un Enfoque Unificado de Sistema de Hormigas para Resolver Problemas VRP Emely Arráiz, Oscar Meza y Guillermo Palma Departamento de Computación Universidad Simón Bolı́var Caracas 1080-A, Venezuela arraiz@ldc.usb.ve, meza@ldc.usb.ve, guillermopalma@gmail.com Resumen En este artı́culo se propone un Sistema de Hormigas Unificado (SHUVRP) para el problema de enrutamiento de vehı́culos VRP. Se estudia su robustez y el rendimiento en cuatro clases diferentes de problemas o instancias VRP. Ellos son VRP con capacidad, VRP con ventanas de tiempo, VRP con entrega y recolección y VRP con entrega, recolección con ventanas de tiempo. Los resultados obtenidos llegan a ser comparables con los sistemas de última generación por lo que se demuestra la factibilidad de un sistema unificado para tratar varios tipos de problemas VRP. Esto hace posible ofrecer un enfoque que de respuesta satisfactoria a varias instancias de problemas VRP. Se propone para cada tipo de problema una configuración del sistema, la cual permite la generación de soluciones de calidad en tiempo moderado. Palabras claves: Metaheurı́sticas, VRP, Sistema de Hormigas, Investigación de Operaciones, Optimización Combinatoria. 1. Introducción El Problema de Enrutamiento de Vehı́culos (en inglés Vehicle Routing Problem, cuyas siglas son VRP) fue propuesto por Dantzig y Ramser [9] en 1959. Ocupa un lugar preponderante en la gerencia y distribución de bienes. Las decisiones de rutas están integradas a decisiones estratégicas de la compañia con el fin de extraer mayor ganancia a través de la optimización de rutas de distribución. VRP corresponde a la clase de problemas NP-hard. La investigación en VRP ha sido muy intensa en los últimos 40 años [7],[13]. En las revistas especializadas se han publicado una gran cantidad de aplicaciones prácticas en las que se utiliza VRP [10]. El interés en los problemas de enrutamiento de vehı́culos se debe en parte a su aplicabilidad práctica, pero también, a lo difı́cil que resulta resolver este tipo de problemas. Hoy en dı́a encontramos que la comunidad cientı́fica ha dado grandes pasos en el desarrollo de sistemas basados en heurı́sticas, principalmente metaheurı́sticas, que son capaces de obtener soluciones de calidad en problemas de mucha complejidad. Sin embargo cuando se hace un estudio a nivel práctico encontramos que en la mayorı́a de las industrias utilizan herramientas basadas en heurı́sticas diseñadas en los años 60 y 70, que proporcionan soluciones de manera rápida pero no de buena calidad. Esta disparidad tiene varios motivos y reconocida por varios investigadores. Cordeau [8] aborda este problema analizando las heurı́sticas y metaheurı́sticas más utilizadas y de mejor rendimiento comparándolas en cuatro aspectos: calidad de la solución, velocidad, flexibilidad y simplicidad. Examinando el punto de calidad de la solución debemos tener en cuenta que debido a la complejidad computacional de VRP, en la mayorı́a de los problemas que sirven de referencia, no se tienen las soluciones óptimas. Se trabaja con la mejor solución conocida para un problema determinado. En cuanto a la velocidad, las heurı́sticas proporcionan soluciones en tiempos reducidos, de segundos en muchos de los problemas más conocidos, mientras que en varios de los sistemas basados en metaheurı́sticas necesitan horas de cómputo. La velocidad puede ser un factor importante en algunos tipos de industrias, como por ejemplo despacho expreso ó servicios de emergencias. El tercer punto es la flexibilidad. Los sistemas de última generación generalmente están enfocados en resolver una clase determinada de VRP. Debido a esto, utilizan estrategias que buscan explotar las caracterı́sticas especı́ficas de un tipo de problema, utilizando metodologı́as especializadas que en muchos casos no son aplicables a otros tipos de VRP. Por último se encuentra la simplicidad. Las heurı́sticas son algoritmos que generalmente pueden ser implementados con relativa facilidad y no necesitan de mayores ajustes. Los sistemas que obtienen las mejores soluciones conocidas utilizan metaheurı́sticas y algoritmos de cierta complejidad. Esto no deberı́a ser un problema, pero lo cierto es que a la hora de codificar es necesario tomar muchas decisiones de diseño que afectan sensiblemente la calidad de los resultados. Además los sistemas de última generación poseen una gran cantidad de parámetros que se deben ajustar para resolver un VRP. Esta situación no serı́a de mayor importancia dentro del ámbito cientı́fico, pero se convierte en una objeción seria cuando se intenta llevar a la práctica. En la actualidad existen grupos de investigación que están conscientes de esta situación y trabajan en el diseño de sistemas que puedan desempeñarse satisfactoriamente, para una amplia gama de VRP. Como ejemplo tenemos a Ropke y Pisinger [19] que desarrollaron una heurı́stica general para VRP, al grupo de Oslo [16] y Reimann [18] analizaron la aplicación de un Sistema de Hormigas a diferentes tipos de problema de enrutamiento de vehı́culos. Nuestro trabajo tiene como punto de partida la propuesta de Reimann [18], a la cual se le intenta mejorar el rendimiento a través de la inclusión de otras heurı́sticas para la construcción de rutas, algoritmos de búsqueda local y haciendo cambios en el procedimiento base que sirve para la construcción de soluciones. La robustez, según Barr [2], de una heurı́stica es la habilidad para desempeñarse bien en un amplio rango de problemas, como demostraremos con los experimentos computacionales. El resto de este artı́culo esta organizado como sigue. En la sección siguiente se describe brevemente el problema VRP y algunas de sus extensiones. Después presentamos la arquitectura del sistema propuesto. Para luego en la sección 4 y 5 hablar de la configuración de parámetros y los experimentos computacionales. Las conclusiones se presentan en la sección 6. 2. VRP y Algunas de sus Extensiones Se estudian cuatro variantes de VRP, las cuales son VRP con capacidad o CVRP (Capacited VRP), VRP con ventanas de tiempo o VRPTW (VRP with Time Windows), VRP con entrega y recolección o VRPB (VRP with Backhauls), VRP con entrega, recolección y ventanas de tiempo VRPBTW (VRP with Backhauls and Time Windows). El clásico problema VRP es el CVRP, que consiste en construir rutas de longitud mı́nima que comiencen y finalicen en el depósito, para la entrega de bienes que satisfaga la demanda de los clientes, sin violar ciertas restricciones. Las restricciones a las que está sujeto CVRP son las siguientes: - la demanda de todos los clientes deben ser satisfecha. - un cliente solo puede ser atendido por un vehı́culo. - el número de vehı́culos involucrados en la solución no tiene lı́mite. - los vehı́culos tienen un tiempo máximo de llegada al depósito. la capacidad de los vehı́culos es conocida. La variante VRPB se distingue de CVRP en que además de tener clientes que demandan la entrega de bienes (linehaul), existen también otros que demandan su recolección (backhaul). Los clientes del tipo linehaul deben ser atendidos antes que los backhaul. Las caracterı́sticas descritas para CVRP son válidas para VRPB. EL VRP con ventanas de tiempo o VRPTW, como su nombre lo indica, le agrega al problema CVRP la restricción de que cada cliente posee una ventana de tiempo en la cual debe ser servido. Especı́ficamente tenemos que un cliente restringe su servicio a una ventana de tiempo que consiste en un tiempo de inicio (ready time) y un tiempo de fin (due time) en el que se cierra la ventana. El VRPBTW es básicamente una variación del VRPTW. La caracterı́stica que se agrega en el VRPBTW es la inclusión de clientes que posean demanda de recolección (backhaul), ası́ como los que tienen demanda de entrega (linehaul). 3. Arquitectura del Sistema Se propone un sistema que llamaremos SHUVRP (Sistema de Hormigas Unificado para VRP) basado en sistema de hormigas. La metaheurı́stica Sistema de Hormigas fue desarrollada a principios de la década de los noventas por Colorni, Dorigo y Maniezzo [6]. Básicamente es un tipo de algoritmo de búsqueda cooperativa que se inspira en el comportamiento de las colonias de hormigas en la vida real. El sistema de hormigas se basa en la capacidad que tienen las hormigas de encontrar el camino más corto desde la colonia en que habitan hasta una fuente de comida. Se encontró que cuando las hormigas se mueven, dejan huellas de una esencia aromática llamada feromona. Estas huellas de feromona pueden ser detectadas por otras hormigas que las motiva a seguir ese camino, es decir, la tendencia de las hormigas es la de escoger con mayor probabilidad los caminos que posean mayor concentración de feromona. La feromona se evapora a medida que pasa el tiempo, por lo tanto los caminos la pierden si otras hormigas no agregan feromona en ellos. Si una gran cantidad de hormigas escoge un camino en especı́fico, este aumentará su concentración de feromona, por lo que será más atractivo para la escogencia de las próximas hormigas. Es decir, las hormigas con su paso refuerzan los caminos a seguir. Si una hormiga no encuentra un rastro de feromona realiza una búsqueda más o menos aleatoria. El sistema propuesto consiste de dos fases. En la primera fase el Sistema de Hormigas genera una solución factible después de cierto número de iteraciones. La segunda fase consiste en una post optimización de la solución de la fase 1 con un algoritmo de búsqueda local entre rutas. 3.1. Fase 1: Sistema de Hormigas Nuestro Sistema de hormigas consiste principalmente en la ejecución de cuatro pasos: 1. Generación de soluciones: Las hormigas construyen el conjunto de soluciones (una solución es un conjunto de rutas) a través de la información especı́fica del problema y la proporcionada por las feromonas. 2. Búsqueda local entre rutas: Aplicación de un método de búsqueda local entre las rutas de una solución. 3. Búsqueda local intraruta: Aplicación de un método de búsqueda local a cada una de las rutas de una solución. 4. Actualización de la feromona: Se actualiza la información de la feromona. Generación de soluciones: Para la generación de soluciones se utiliza como base el Algoritmo de Inserción I1 propuesto por Solomon [20]. La bondad de este algoritmo reside en el hecho de que permite construir soluciones de calidad razonable con bajo esfuerzo computacional. En primer lugar, se escoge un cliente semilla i y se construye una ruta inicial. Esta ruta posee la forma (0, i, 0), donde 0 representa al depósito. Luego se van insertando clientes uno a uno, dentro de esta ruta inicial, hasta que por las restricciones del problema no sea factible la inclusión de otro cliente. En este punto se escoge un nuevo cliente, del conjunto de clientes que no han sido incluidos en rutas, para construir una nueva ruta. Y ası́ sucesivamente se construyen rutas hasta que no quede ningún cliente que no haya sido incluido en alguna de ellas. Podemos decir que en este procedimiento se tienen que tomar dos decisiones. La primera es la escogencia del cliente semilla para iniciar una ruta y la segunda es la inserción dentro de la ruta, la cual va a ser determinada según una medida de atracción. Inicialización de una ruta: Para comenzar una ruta, el cliente elegido es el más alejado del depósito. Inserción de los clientes: Se determina la atracción de insertar el cliente i después del cliente j con la siguiente ecuación, ver [18]: nij = máx{0, α ∗ d0i − β ∗ (dji + dik − djk ) − (1 − β) ∗ (bik − bk ) + δ ∗ (γ ∗ Ti + (1 − γ) ∗ (1 − Ti ))} ∀i ∈ Nu , ∀j ∈ Ri donde: nij : Atracción de inserción del cliente i después de j. Ri : Clientes que han sido asignados a la ruta actual. Nu : Clientes que no pertenecen a ninguna ruta ruta. d0i : Distancia del cliente i al depósito. k: Cliente visitado después del cliente j en la solución actual. bik : Tiempo de llegada al cliente k si el cliente i es insertado entre j y k en la ruta actual. bk : Tiempo de llegada al cliente k en la ruta actual. Ti : Indicador binario. 0 si el cliente i es del tipo linehaul 1 si es del tipo backhaul. dji : Distancia entre los clientes j y i . dik : Distancia entre los clientes i y k . djk : Distancia entre los clientes j y k. (1) La ecuación (1) se aplica a un cliente i que no está en la ruta y tomando en cuenta para el momento de la inserción todas las posiciones posibles. Los componentes de la ecuación se encuentran pesados por los parámetros α, β, γ y δ. Con α determinamos la importancia de la lejanı́a del cliente con el depósito. El peso del retardo producido por una inserción lo indicamos con β. Tenemos que con γ y δ discriminamos la influencia de tener un cliente de entrega (linehaul) o uno de recolección (backhaul). El siguiente paso es inscribir los resultados del algoritmo descrito anteriormente dentro de la estructura de un Sistema de Hormigas. Para ello es necesario calcular para todos los clientes i que no estan en una ruta, la mejor posición en la que se puede insertar. A esta medida la llamamos coeficiente de atracción ki y la calculamos de la siguiente manera, basado en una modificación de [18]: #) ( " h F V + F V iS ji ik R (2) ki = máx 0, máx [nij ] ∗ j∈Ri 2 ∗ F Vjk donde: F Vji = [τji ]α2 · h 1 iβ2 dji con: R S dji τji α2 Peso de la información de la inserción. Peso de la información de las hormigas. Distancia entre dos clientes, j e i. Concentración de feromona de el arco (j,i). Peso de la concentración de feromona de un arco (τji ). β2 Peso de la distancia de los clientes vecinos d1ji . F Vji Información de los arcos j, i. F Vik Información de los arcos i, k. F Vjk Información de los arcos j, k. Por último se escoge el cliente que va insertado en la ruta. Esto se realiza mediante el método probabilı́stico de selección conocido como la ruleta (roulette wheel). La regla de decisión se escribe como sigue: ki X si ki > 0 kh Pi = h|kh >0 (3) 0 de lo contrario Al resultar elegido un cliente éste es insertado dentro de la ruta en su mejor posición factible Búsqueda local entre rutas: Después de obtener una solución factible se trata de mejorar su calidad por medio de un algoritmo de búsqueda local. Especı́ficamente se aplica el método llamado λ-interchange a través de los operadores swap y move. Estos dos operadores fueron propuestos por Osman[17]. Se aplica primero el operador swap y luego el move. Operador swap: Intercambia cada cliente de una ruta, con todos los otros clientes de las otras rutas. Operador move: Hace que un cliente se mueva de una ruta a otra. Una caracterı́stica importante de move es que es posible eliminar rutas si alguna de ellas posee un solo cliente. Se consideran dos estrategias de selección para escoger la solución de mejor calidad cuando se aplica la búsqueda local a partir de una solución inicial. La primera es First-Best que indica que se acepta la primera solución que mejore la solución de partida. La segunda es Global Best en la cual se comparan todas las soluciones que mejoren la solución inicial y se escoge la de menor costo. Se realizaron experimentos para determinar cual era la mejor estrategia. Se obtuvo que con Global Best se alcanzan los mejores resultados en todos los problemas, pero el tiempo total de una corrida es tres veces mayor que el reportado cuando se utiliza First-Best. Debido a esto se decidió utilizar la estrategia First-Best para los operadores swap y move. Búsqueda local intraruta: El algoritmo escogido es para la búsqueda local intraruta es k-opt que fue propuesto por Lin [14] para TSP. El método k-opt consiste en la sustitución de k-arcos, por otro conjunto de k-arcos de una ruta de la solución. Hay muchos k que se pueden tomar en consideración. Nosotros trabajamos con k = 3 ya que de lo experimentos realizados, con diferentes valores de k, fue el que arrojó mejores resultados. Por lo tanto para la arquitectura propuesta se utilizará como operador de mejora intraruta 3-opt. Actualización de la feromona: Una vez que se obtiene una solución de la búsqueda local se actualiza la concentración de feromona en los arcos. La metodologı́a utilizada es la basada en ranking propuesta por Bullnheimer [5]. El procedimiento es el siguiente. Cada hormiga agrega Q/L cantidad de feromona a su solución, donde Q es una constante y L es la longitud de la solución obtenida por la hormiga. De esto se puede deducir que mientras menor sea la longitud de la solución, mayor será la concentración de feromona de los arcos recorridos. En cada iteración de las hormigas, la concentración de feromona en los arcos se evapora a una tasa (1 − ρ), antes de que se agregue una nueva cantidad de feromona. Con esto se imita el comportamiento de las hormigas naturales. Asimismo se usa el concepto de élites con el fin de dar importancia a la mejor solución encontrada después de cada iteración. Los arcos de la mejor solución son tratados como si cierto número de hormigas, llamadas élites, los recorriesen. Se define σ como el número de hormigas élites. Su influencia se obtiene al calcular σ LQ∗ , donde L∗ es la longitud de la mejor solución. La longitud de todas las hormigas es ordenada de manera creciente. Luego se determina la posición µ (rank) de cada hormiga. Ahora se considera la influencia de las hormigas que obtuvieron las mejores soluciones. El número ω de las hormigas con mejores longitudes que se tomarán en cuenta, va a ser menor en una unidad que el número de hormigas élites, es decir, ω = σ − 1. El peso de la µ ésima mejor hormiga lo obtenemos con (σ − µ). De esta forma se toma en cuenta el ranking de las hormigas. En la ecuación 4 se muestra la fórmula completa de la actualización de la feromona de un arco i, j en una iteración. ∗ τij (t + 1) = ρ · τij (t) + ∆τij + ∆τij donde: ∆τij = σ−1 X (4) µ ∆τij µ=1 µ ∆τij = y ∗ ∆τij = y Q (σ − µ) Lµ si la µ ésima mejor hormiga pasa por el arco i, j 0 de lo contrario Q σ L∗ si el arco (i, j) es parte de la mejor solución encontrada 0 de lo contrario con: Q Cantidad de feromona que agrega una hormiga por solución ρ ∈ [0, 1] Factor de evaporación t Iteración µ Posición de la hormiga con respecto a la mejor solución (ranking) µ ∆τij Incremento del nivel de feromona del arco (i, j) causado por la µ ésima mejor hormiga Lµ Longitud de la solución de la µ ésima mejor hormiga ∗ ∆τij Incremento del nivel feromona del arco (i,j) causado por las hormigas élites σ Número de hormigas élites L∗ Longitud de la mejor solución encontrada 3.2. Fase 2: Post optimización El objetivo de esta fase es la búsqueda de mejoras en la distancia de la solución. Para ello la mejor solución encontrada por el sistema es post optimizada usando los operadores swap y move con la estratégia de selección Global Best. El uso de la estratégia Global Best para la búsqueda local entre rutas fue descartado en cada iteración debido al esfuerzo computacional que requiere su aplicación, a pesar de obtenerse con él las mejores soluciones. Como la post optimización se realiza una sola vez durante un ensayo resulta factible aplicar swap y move con estrategia de selección Global Best a la mejor solución encontrada. 4. Configuración de Parámetros Para tener una referencia estándar se escogió instancias con 100 clientes para cada variante del VRP. Esto se cumple para todas las clases de VRP, excepto para VRPB en donde no existen pruebas de esa dimensión. En este caso se usaran problemas que poseen 90 y 95 clientes. Se utilizarán el conjunto de problemas utilizados por Reimann [18], los cuales se escogieron al azar CVRP: vrpnc3, vrpnc8, vrpnc12, vrpnc14 de Toth, Christofides y Mingozzi [15] VRPTW: r101, r206, c105, c207, rc104 y rc203 de M. M. Solomon [20] VRPB: De Jacobs-Belcha y Goetschalckx [12] tenemos I1,I3,J1,J3 VRPBTW: BHR101B, BHR102A, BHR103B, BHR104C, BHR105C de Gelinas [11] Se desea en primer lugar minimizar el número de rutas de la solución y luego la distancia total de la misma. Para ello la calidad de una solución se determinará por medio de la siguiente función objetivo: Cs = 10000 ∗ Num-vehic-solución + Dist-total-solución (5) La constante 10000 tiene como fin dar preferencia a las soluciones con menos vehı́culos ya que las distancias de las mejores soluciones conocidas no pasan de 1000 unidades. En este trabajo estamos interesados en estudiar la influencia de los parámetros del algoritmo de inserción con respecto a las clases de VRP. Para ello se ha dispuesto la utilización de los siguientes valores: R ∈ {2.0, 1.0} S ∈ {1.0} α ∈ { 0.5, 1.0, 1.5, 2.0 } β ∈ { 0.0, 0.33, 0.66, 1.0 } δ ∈ { 0.0, 0.33, 0.66, 1.0 } γ ∈ { 0.0, 0.33, 0.66, 1.0 } El número de hormigas a utilizar será igual al número de clientes del problema. La cantidad de hormigas élites σ será igual a 4. Estos valores son los mismos que los utilizados por Bullnheimer [4] en su Rank Ant Systems, el cual ha demostrado ser bastante robusto. Se hizo un estudio para determinar el mejor valor de ρ a utilizar. Se obtuvo que el valor más conveniente es ρ = 0,10. 5. Experimetos Computacionales Los resultados fueron obtenidos tomando los mejores valores de 5 ensayos que conforman una corrida. Un ensayo termina cuando alcanza las 1000 iteraciones. El sistema se implementó en ANSI C. Se usó como base el software ACOTSP, que es un Sistema de Hormigas para resolver problemas TSP, desarrollado por Thomas Stüetzle [21]. Las corridas se llevaron a cabo en un computador con procesador AMD Duron de 900 MHz con un sistema de operación GNU/Linux con kernel 2.6.9. Los valores de las mejores soluciones conocidas se obtuvieron de las siguientes fuentes: CVRP: http://neo.lcc.uma.es/radi-aeb/WebVRP/index.html?/Problem Descriptions/VRPBDesc.html VRPTW: http://web.cba.neu.edu/ msolomon/heuristi.htm VRPBTW: http://www.diku.dk/users/sropke/DataSets/VRPBTW BestSol.html VRPB: http://www.isye.gatech.edu/people/faculty/Marc Goetschalckx/lineback.html#Linehaul Backhaul En esta última dirección se encuentra un archivo comprimido llamado Lhbhcase.zip que contiene varios problemas VRPB junto con la información de las mejores soluciones conocidas para cada uno de ellos. Estas direcciones son actualizadas frecuentemente y sirven de referencia a la comunidad. Una de las medidas de rendimiento utilizadas en nuestros estudios es el Error Relativo [1](ErrorR). Tenemos que el porcentaje de ErrorR de un valor objetivo C con respecto a un valor de referencia Cref se calcula de la siguiente manera: (C−C ) ErrorR = Crefref ∗ 100. En el Cuadro 1 se compara las soluciones del Sistema de hormigas Unificado (SHUVRP) con las mejores soluciones conocidas y con Reimann. Con respecto a las mejores soluciones podemos decir que en las instancias c105 y c207 se logra igualar la mejor solución conocida la cual corresponde al valor óptimo. SHUVRP logra superar 3 de las mejores soluciones conocidas. Estos problemas son el vrpnc14 (-8,98 % de error), el I1 (-9,97 % de error) y el J1 (-0,01 % de error). Se puede observar como la instancia vrpnc12 solo se diferencia del mejor registro en la medida de distancia, en tan solo 0,69 unidades. El porcentaje de error promedio es de 0,6370 % el cual es bajo. Estos resultados indican que SHUVRP presenta un buen desempeño en cuanto a la calidad de las soluciones. Hay que tomar en consideración que este sistema no esta afinado para ninguna clase de VRP en especı́fico. Las instancias en las que se obtienen un mejor rendimiento son las del tipo CVRP y VRPB. Los problemas del tipo VRPBTW son los que poseen mayor porcentaje de error. Esto se debe a que son los que poseen un mayor número de restricciones. Los autores que reportan las mejores soluciones conocidas para VRPBTW utilizan heurı́sticas que explotan las caracterı́sticas especı́ficas de este tipo de problemas. No obstante el mayor porcentaje de error para un problema VRPBTW sobrepasa por poco el 9 % que es una cifra aceptable. Nuestro sistema unificado propuesto presenta un mejor comportamiento mientras menores son las restricciones del problema a resolver. Se puede observar en el Cuadro 1 como en 5 de las 19 instancias estudiadas se mejoran o igualan a las mejores soluciones conocidas. Esto equivale al 26 % del total de los problemas, lo cual es bastante satisfactorio. Al comparar SHUVRP con el sistema de Reimann tenemos que nuestro sistema presenta un mejor rendimiento en las instancias del tipo CVRP y VRPB. En los problemas del tipo VRPTW el sistema de Reimann se comporta mejor en las instancias rc104 y rc203 en donde los clientes están distribuidos en racimos aleatorios (random cluster). El sistema de Reimann presenta resultados ligeramente superiores en instancias del tipo VRPBTW. El esfuerzo computacional requerido por nuestro sistema para obtener las soluciones reportadas Mejor Solución Reimann Solución ErrorR Conocida SHUVRP Instancia Rutas Distancia Rutas Distancia Rutas Distancia Rei( %) vrpnc3 8 826,14 8 859,68 8 834,64 -0,031 vrpnc8 9,00 865,94 9 886,47 9 881,75 -0,005 vrpnc12 10 819,56 10 848,64 10 820,25 -0,028 vrpnc14 11 866,37 10 971,82 10 915,94 -0,055 r101 19 1645,79 19 1655,41 19 1659,97 0,002 r206 3 906,14 3 979,4 3 944,21 -0,114 c105 10 828,94 10 828,94 10 828,94 0,000 c207 3 588,29 3 589,2 3 588,29 -0,003 rc104 10 1135,48 10 1196,05 11 1187,32 9,873 rc203 3 1056,64 3 1175,88 3 1202,3 0,085 I1 10 360,69 9 361,08 9 358,81 -0,003 I3 5 309,69 5 317,07 5 311,59 -0,011 J1 10 352,52 10 352,93 10 344,65 -0,008 J4 7 302,64 7 301,67 7 311,71 0,014 101b 23 1959,52 23 1975,07 23 1984,73 0,004 102a 19 1653,19 19 1681,34 20 1636,13 5,193 103b 15 1390,33 15 1405,02 15 1489,99 0,056 104c 11 1191,38 12 1216,32 12 1242,89 0,022 105c 16 1710,19 17 1642,7 17 1644,57 0,001 Promedio – – – – – 0,789 Cuadro 1. Comparación de SHUVRP contra Reimann y las mejores soluciones ErroR MS( %) 0,011 0,017 0,001 -8,975 0,007 0,123 0,000 0,000 9,939 0,469 -9,966 0,004 -0,008 0,013 0,011 5,209 0,066 9,040 6,143 0,637 se muestra en el Cuadro 2. La comparación del esfuerzo computacional de SHUVRP con otros sistemas que pertenecen al estado del arte es difı́cil. En primer lugar las arquitecturas utilizadas son muy diferentes. En segundo lugar nuestro sistema resuelve varios tipos de instancias VRP, por lo que la comparación deberı́a de hacerse por tipo de problema VRP, ası́ como por sus mejores soluciones reportadas de cada problema. Este tipo de estudio escapa de los objetivos principales de este trabajo. Sin embargo podemos referir dos reseñas de métodos para VRP. Bräysy y Gendreau [3] muestran las metaheurı́sticas utilizadas para VRPTW y hacen un estudio computacional amplio de las mismas. Cordeau [7] presenta un estudio muy reciente sobre las nuevas heurı́sticas para VRP, en el cual se muestra el tiempo de cómputo utilizado por esas heurı́sticas. En ambas publicaciones hay varios autores que realizan esfuerzos computacionales más intensos que los efectuados por nuestro sistema. Consideramos que los tiempos empleados por SHUVRP son aceptables y calificamos el esfuerzo computacional como moderado. Instancia vrpnc3 vrpnc8 vrpnc12 vrpnc14 r101 r206 c105 c207 rc104 rc203 I1 I3 J1 J4 101B 102A 103B 104C 105C Promedio Tiempo en topar mejor solución(seg) 51,84 89,15 589,67 79,83 250,18 62,88 0,85 16,8 193,7 217,67 197,9 800,66 205,5 393,79 3,84 33,49 581,28 140,5 440,19 228,93 Tiempo total corrida (seg) 1075,5 898,67 1081,17 1147,01 699,61 1681,27 849,92 1166,78 837,82 1605,27 826,64 1007,88 889,6 1052,92 686,52 789,81 752,18 805,62 693,22 976,18 Cuadro 2. Tiempos empleados por SHUVRP En este estudio se han probado 256 combinaciones de parámetros α,β,γ y δ para dos combinaciones de R y S. La primera combinación es R = 2, S = 1, y la segunda es R = 1, S = 1. Por lo tanto se tiene que para cada problema fueron probadas 512 combinaciones de parámetros. El objetivo que se persigue, es el de saber: ¿ Es posible tener un conjunto de parámetros, para cada tipo de problema VRP, con los que se obtengan soluciones de alta calidad?. Debido a que cada tipo de instancia VRP tiene caracterı́sticas muy diferentes se recomendará una configuración de parámetros especı́fica para cada una de ellas. El estudio realizado es el siguiente: para cada combinación de parámetros se promedian los costos de las soluciones de los problemas que pertenecen a una clase VRP. Luego se escoge la combinación con menor costo. Este procedimiento se aplica a las otras tres tipos de instancias VRP. Las combinaciones resultantes se muestran en el Cuadro 3. Estos parámetros son los que se recomiendan para cada tipo de problema VRP. Podemos observar que las instancias que poseen un sólo tipo de clientes, CVRP y VRPTW tienen los valores R = 1 y S = 1. Por lo tanto en la ecuación de atracción (2) tienen igual peso la información de la inserción y la proporcionada por las hormigas. En el tipo de instancias con entrega y recolección de carga, VRPB y VRPBTW se aconsejan los valores R = 2 y S = 1, por lo que tiene un mayor peso la información de la inserción que la información de las hormigas. Para determinar la robustez de este enfoque se compara los costos obtenidos con la combinación de parámetros propuesta con los costos de las mejores soluciones de nuestro Sistema Unificado Propuesto (SHUVRP). En el Cuadro 4 se muestran los resultados. Se tiene que el porcentaje error promedio es de 0,68 %, el cual puede ser considerado como bueno. Pero observando el cuadro, tenemos que hay dos valores con porcentajes de error que están muy por encima de lo reportado por las otras instancias. Se trata de los problemas 101B y 104C con porcentajes de error de 4,29 % y 8,24 %. Estos valores son altos y se deben a que las soluciones que se obtienen con la configuración de parámetros recomendada poseen una ruta más que las mejores soluciones Instancia VRP CVRP VRPTW VRPB VRPBTW R 1 1 2 2 S 1 1 1 1 α 1,5 1,50 1,00 2,00 β 1,00 1,00 1,00 0,66 δ 1,00 0,00 1,00 0,33 γ 0,66 1,00 0,66 0,00 Cuadro 3. Configuraciones de parámetros recomendadas para cada clase VRP obtenidas. Como se mostró en las secciones anteriores, los problemas del tipo VRPBTW son los que presentan menor calidad en la solución. Estos valores nos indican que las soluciones para estos dos problemas deben estar una ruta por arriba del mejor valor reportado. Debido a que el porcentaje de error de las instancias 101B y 104C difieren en varios ordenes de magnitud con respecto a los porcentajes de error que presentan los demás problemas, podemos inferir que estos valores están distorsionando el comportamiento promedio de la muestra estudiada. Si sacamos estos dos valores del cálculo del promedio del porcentaje de error obtenemos un valor de 0,02 %, el cual es significativamente bueno. Estos resultados demuestran que es posible alcanzar soluciones de calidad con una configuración de parámetros fija para varios tipos de problemas VRP. Instancia vrpnc3 vrpnc8 vrpnc12 vrpnc14 r101 r206 c105 c207 rc104 rc203 I1 I3 J1 J4 101B 102A 103B 104C 105C Promedio Costo SHUVRP 80834,64 90881,75 100820,25 100915,94 191659,97 30944,21 100828,94 30588,29 111187,32 31202,3 90358,81 50311,59 100344,65 70311,71 231984,73 201636,13 151489,99 121242,89 171644,57 – Costo con Parámetros Propuestos 80842,05 90894,63 100825,98 100924,04 191682,4 30985,35 100828,94 30595,2 111209,06 31208,49 90371,18 50317,23 100347,13 70316,84 241935,78 201658,61 151556,68 131234,99 171684,34 – ErrorR ( %) 0,01 0,01 0,01 0,01 0,01 0,13 0,00 0,02 0,02 0,02 0,01 0,01 0,00 0,01 4,29 0,01 0,04 8,24 0,02 0,68 Cuadro 4. Comparación de los mejores valores de SHUVRP con ajuste de parámetros recomendado 6. Conclusiones y Trabajos Futuros El sistema SHUVRP obtiene soluciones de calidad en varios tipos de problemas VRP, mejores incluso que las de Reimann para varias instancias. SHUVRP a pesar de no estar afinado para algún tipo de instancia VRP es competitivo. Fue posible recomendar una configuración de parámetros para cada tipo de problema VRP. Este es uno de los resultados más significativos porque simplifica el uso potencial del sistema y facilita la aplicabilidad de este enfoque a ámbitos más allá de la investigación académica. En cuanto a la simplicidad del sistema tenemos que el principio de los sistemas de hormigas no es complejo y ha sido aplicado a VRP exitosamente. Los algoritmos utilizados en el sistema están suficientemente documentados y es posible encontrar una amplia literatura sobre ellos. El esfuerzo computacional requerido por SHUVRP es moderado tomando en cuenta que se hicieron 5 ensayos por corrida. La flexibilidad es el punto más fuerte de SHUVRP. No sólo puede resolver varios tipos de problema VRP, sino que también se tiene una combinación de parámetros con los que se pueden obtener soluciones de buena calidad. Los resultados obtenidos pueden alentar el desarrollo de nuevos sistemas más expresivos y con mejor rendimiento. La escalabilidad de SHUVRP no ha sido probada. Para ello es necesario realizar experimentos con instancias más grandes, que posean un mayor número de clientes. Se puede extender el tipo de problemas VRP que se pueden resolver. Tipos de instancias como VRP con Pickup and Delivery (VRPPD), Mixed Vehicle Routing Problem with Backhauls and Time Windows (MVRPBTW), VRP con múltiples depósitos y VRP con soft time windows (VRPSTW) son buenas candidatas para SHUVRP. Es posible obtener soluciones de mejor calidad utilizando en la fase de post optimización alguna metaheurı́stica tal como Simulated Annealing o Tabu Search. 7. Agradecimiento Este trabajo fue parcialmente financiado por el proyecto de investigación USB S1-2000000438 adscrito al Fondo Nacional de Ciencia, Tecnologı́a e Innovación (FONACIT) de Venezuela. Referencias 1. M. Abramowitz and I. A. Stegun. Handbook of Mathematical Functions with Formulas, Graphs, and Mathematical Tables. Dover, New York, 1972. 2. R. Barr, B. Gloden, J. Kelly, W. Stewart, and M. Resende. Guidelines for designing and reporting on computational experiments and heuristic methods. Technical report, College of Business, University of Maryland, 2001. 3. O. Bräysy and M. Gendreau. Metaheuristic for the vehicle routing problem with time windows. Technical report, SINTEF Technical Report STF42 A01025, 2001. 4. B. Bullnheimer, F. R. Hartl, and Ch Strauss. An improved ant system algorithm for the vehicle routing problem. Annals of Operations Research, pages 319–328, 1999. 5. B. Bullnheimer, F. R. Hartl, and Ch Strauss. A new rank based version of the ant system: a computational study. Central European Journal of Operations Research, pages 25–38, 1999. 6. A. Colorni, M. Dorigo, and V. Maniezzo. Distributed optimization by ant colonies. In F. Varela and P Bourgine, editors, Proc. Europ. Conf. Artificial Life (ECAL 91), pages 134–142, Amsterdam, 1991. Elsevier. 7. J. Cordeau, M. Gendreau, A. Hertz, G. Laporte, and J. Sormany. New heuristics for the vehicle routing problem. Technical report, GERAD, Montreal, Canada, 2004. 8. J. Cordeau, M. Gendreau, G. Laporte, J. Potvin, and F. Semet. A guide to vehicle routing heuristics. Journal of Operation Research Society, pages 512–522, 2001. 9. G.B. Dantzig and R.H.Ramser. The truck dispatching problem. Management Science, pages 80–91, 1959. 10. S. Evans and Norback. The impact the decision-support system for vehicle routing in a service supply situation. Journal Operation Research Society, pages 467–472, 1985. 11. S. Gelinas, M. Desrochers, J. Desrosiers, and M.M. Solomon. A new branching strategy for time constrained routing problems with application to backhauling. Annals of Operations Research, pages 91–109, 1995. 12. C. Jacobs-Blecha and M. Goetschalckx. The vehicle routing problem with backhauls: properties and solution algorithms. Technical report, MHRC-TR-88-13,Georgia Tech Research Corporation, 1998. 13. G. Laporte and F. Semet. The Vehicle Routing Problem, chapter Classical heuristics for capacited VRP, pages 109–128. SIAM Monographs on Discrete Mathematics and Applications. SIAM, Filadelfia, 2002. 14. S. Lin. Computer solutions of the traveling salesman problem. Bell Systems Technical Journal, pages 2245–2269, 1965. 15. N.Christofides, A.Mingozzi, and P.Toth. The vehicle routing problem. In: Christofides, N.,Mingozzi, A.,Toth, P and Sandi,C. (Eds.):Combinatorial Optimization. Wiley, Chicester, 1979. 16. http://www.top.sintef.no. 17. I. Osman. Metastrategy simulated annealing and tabu search algorithms for the vehicle routing problem. Annals of Operations Research, pages 421–451, 1993. 18. M. Reimann, K.Doerner, and R. Hartl. Analyzing a unified ant system for the vrp and some its variants. Applications to Evoluyionary Computing, pages 300–310, 2003. 19. S. Ropke and D. Pisinger. A unified heuristic for a large class of vehicle routing problems with backhauls. European Journal of Operational Research, 2004. 20. M.M. Solomon. Algorithms for the vehicle routing and scheduling problems with time window constraints. Operations Research, pages 254–265, 1987. 21. T. Stützle, 2004. ACOTSP, Version 1.0. Disponible en http://www.aco-metaheuristic.org/aco-code.