Generador modulable de instancias para problemas
Transcripción
Generador modulable de instancias para problemas
Generador modulable de instancias para problemas de rutas de vehı́culos Juan Pedro Castro(1) Darı́o Landa Silva(1) , José A. Moreno Pérez(2) Resumen— Los problemas de rutas en circunstancias reales pueden presentar distinto grado de dificultad en sus componentes. El estudio del comportamiento de los algoritmos para los problemas de rutas requiere baterı́as de problemas realistas que reflejen claramente el efecto de las distintas componentes que dan dificultad al problema. Se propone un generador de instancias para problemas de rutas de vehı́culos (VRP) en el que se puede modular la relevancia de las componentes más caracterı́sticas del problema como la múltiple evaluación de los recorridos, las ventanas de tiempo y las restricciones de capacidad. Este generador permite obtener conjuntos de instancias apropiadas para estudiar los métodos multiobjetivos. El generador se ofrece en formato libre en un repositorio público. Palabras clave— VRPTW, Generador de Instancias I. Introducción Para estudiar el comportamiento de los distintos algoritmos para la resolución de problemas de rutas es necesario disponer de baterı́as de problemas realistas y que reflejen las distintas circunstancias que pueden surgir en la realidad. Una práctica común es acudir a conjuntos de instancias clásicos que han sido utilizados en estudios previos aparecidos en la literatura del área en base a los que hacer las comparaciones, sin cuestionar la idoneidad de tales instancias. Incluso para problemas que surgen como modificaciones realistas de los problemas clásicos se suelen adaptar las baterı́as de instancias clásicas de forma más o menos arbitraria. Sin embargo, tampoco es razonable acudir exclusivamente a instancias que se hayan presentado en aplicaciones reales porque su número es escaso y reflejan circunstancias concretas que presumiblemente no se van a repetir con exactitud. Una vı́a alternativa de compromiso consiste en utilizar datos de aplicaciones reales para construir sobre ellos instancias que puedan representar distintas caracterı́sticas modulables que se presumen plausibles en futuras aplicaciones reales. En este trabajo abordamos el enfoque práctico de los problemas de rutas de vehı́culos e incluimos algunas consideraciones sobre las múltiples componentes de los problemas reales. Describimos los conjuntos de instancias que se han aplicado en la literatura para estudiar las distintas propuestas. Presentamos un generador de instancias que permite modular la relevancia de las distintas componentes y analizamos sus (1) ASAP Research Group, Nottingham University. E-mail: [email protected],[email protected] (2) Group of Intelligent Computing, IUDR, Universidad de La Laguna. E-mail: [email protected] caracterı́sticas. El trabajo finaliza con unas breves conclusiones. II. Problemas de rutas de vehı́culos Los problemas de rutas de vehı́culos tratan de determinar el conjunto óptimo de rutas para atender a un conjunto de clientes geográficamente distribuidos con una serie de vehı́culos que parten de un depósito. Existe una multitud de extensiones o versiones de estos problemas que incluyen diversos aspectos relevantes inspirados en circunstancias reales que pueden darse de forma simultánea en aplicaciones prácticas. El modelo básico se formula sobre una red o grafo G(N, A) donde N es un conjunto de nodos donde se encuentra un número finito de clientes C enumerados desde 1 a n y un depósito denotado por 0. En el modelo estándar todas las rutas deben empezar y terminar en el depósito de forma que todos los clientes sean visitados exactamente una vez por una ruta. Asociada las conexiones entre los nodos se tiene información que permite determinar la distancia dij , coste cij o tiempo tij entre dos nodos cualesquiera, incluyendo clientes y el depósito, utilizando el camino óptimo sobre el grafo. Cada cliente i tiene un volumen de demanda qi y cada ruta es efectuada por un vehı́culo que tiene una capacidad Q que no puede ser sobrepasada por la suma de las demandas de los clientes de su ruta. Si la flota de vehı́culos es heterogénea los vehı́culos denotados por el ı́ndice k pueden tener capacidades distintas Qk e implicar un coste o tiempo distinto asociado a cada enlace ij; ckij o tkij . Las restricciones de capacidad están presentes en la mayorı́a de los estudios aunque no se manifiesta de forma explı́cita en su formulación, pero existen aplicaciones donde la capacidad de los vehı́culos se puede considerar ilimitada. El objetivo más corriente es minimizar la distancia, coste o tiempo total de todas las rutas efectuadas por los vehı́culos. Si el número de vehı́culos disponibles está fijo y no supone ahorro utilizar un número inferior de rutas se trata de un problema uni-objetivo. Sin embargo, en los casos reales más frecuentes no utilizar todos los vehı́culos supone una solución preferida a cualquiera con mayor número de vehı́culos. Si se desconoce a priori el número mı́nimo de vehı́culos necesario para atender a todos los clientes verificando todas las restricciones, minimizar el número de vehı́culos empleado por la solución se convierte en un objetivo previo. Aunque formalmente se tratarı́a, en este caso, de un problema mul- tiobjetivo, dado que el número de valores posibles para el valor óptimo de este objetivo prioritario es presumiblemente muy bajo, el enfoque usual considera fijo el número de rutas. Para abordar el problema se intenta de encontrar una buena solución para un número de vehı́culos cada vez menor, mientras sea posible. Sin embargo, siempre se le da especial importancia a los mecanismos que son capaces de reducir el número de vehı́culos de una solución o encontrar una solución factible con el menor número de vehı́culos posible. Nótese que, dado que la demanda de los clientes no se puede dividir entre varias rutas, el problema de determinar el número óptimo de vehı́culos es equivalente al problema de empaquetado unidimiensional (1-Dimentional Bin Packing Problem) que es un problema NP-completo [25]. Uno de los aspectos introducidos en el problema que ha dado lugar al mayor número de trabajos y muy frecuentemente está presente en las aplicaciones prácticas es el tiempo empleado. Se supone que cada cliente tiene una ventana o intervalo de tiempo [ai , bi ] dentro del que debe ser atendido. Si el vehı́culo llega a la ubicación del cliente antes de que se abra la ventana en ai debe esperar a su apertura. Sin embargo, no se permite la llegada después del cierre de la ventana. Para estos problemas se hace necesario tener en cuenta el tiempo que se emplea en atender a cada cliente denominado tiempo de descarga ui . En este caso es necesario aclarar si la ventana del cliente se refiere al momento de comenzar el servicio o todo el tiempo empleado en el servicio. El objetivo clásico en estos problemas es minimizar la distancia total recorrida por todos los vehı́culos como un indicador del esfuerzo total. Sin embargo en aplicaciones reales se tiende a sustituir la distancia por el tiempo total empleado, como más fiel reflejo del coste que supone para las empresas, o por un coste total computado teniendo en cuenta también otras magnitudes. Es frecuente poder disponer en casos reales de medidas de tiempo, distancia, coste o emisiones asociados a los enlaces que, aunque altamente correladas se evalúan de forma distinta y pueden intervenir en objetivos y restricciones similares. Formalmente no existe mucha diferencia entre utilizar una matriz de distancias, tiempos o costes para evaluar la función objetivo. Sin embargo en aplicaciones prácticas, el usuario estará interesado en la evaluación simultánea de varios de estos objetivos dando lugar a un enfoque multiobjetivo. No obstante, al estar tales objetivos muy correlados pierde interés para las investigaciones en metodologı́as multi-objetivo que se dedican preferentemente a contextos donde los objetivos son contrapuestos o, al menos, poco correlados. Muchos operadores logı́sticos se fijan además otros objetivos cuantificables asociados a cada conjunto de rutas alternativo, como puede ser la longitud de la ruta más larga o el desequilibrio entre las rutas. Las ventanas de tiempo suelen aparecer en las apli- caciones reales de planificación de la distribución como una cuestión de calidad del servicio por lo que en algunos casos pueden violarse en alguna medida. Por tanto, las restricciones de ventanas de tiempo frecuentemente son tratadas como restricciones flexibles lo que suele traducirse en convertir en objetivo alguna medida del grado de violación de las mismas. Por tanto, en circunstancias reales los problemas considerados son de tipo multiobjetivo aunque los objetivos tengan tratamiento distinto. Algunos de los objetivos relevantes más frecuentes en las aplicaciones prácticas son el número de vehı́culo, la distancia, tiempo o coste total de las rutas, el mayor tiempo de una ruta, el tiempo total de espera, alguna medida del equilibrio entre rutas, etc. Gran parte del esfuerzo encontrado en la literatura gira en torno al problema de rutas de vehı́culos con ventanas de tiempo (VRPTW), que se obtiene al incorporar al modelo básico las ventanas de tiempo como restricciones rı́gidas. Una visión de las formulaciones y algoritmos exactos para el VRPTW se pueden encontrar en [16], [17], [35], [19] y [1]. En la literatura se encuentran aplicaciones de la mayorı́a de las técnicas heurı́sticas conocidas al VRPTW. Los primeros métodos utilizados fueron heurı́sticas constructivas en [55], [56], [48], [5], [29] y [18]. Una visión de las primeras metaheurı́sticas que han sido propuestas y estudiadas para el VRPTW se puede ver en la revisión de Bräysy y Gendreau [9] y [10]. Entre las metaheurı́sticas aplicadas encontramos GRASP en [36], Métodos multistart en [40], Optimización por Colonias de Hormigas en [20], Simulated Annealing en [61], Búsqueda Tabu en [58], [15] y [8], Algoritmos Evolutivos en [7], Algoritmos Genéticos en [4] y [41], Algoritmos meméticos en [45], Búsqueda de Entornos Variables en [52] y [6], Búsqueda Local Iterada en [30] y [31], Búsqueda Dispersa en [54] y más recientemente técnicas espaciales para búsquedas grandes entornos (LNS, Large Neighbourhood Search) en [47], [49] y [27]. Cabe destacar la aplicación de las cadenas de eyección en [57] algunos hı́bridos ad-hoc propuestos en [23], [3] y [26] y metaheurı́sticas cooperativas paralelas en [37]. Sin embargo, en los últimos años se han realizado diversos estudios con un enfoque multiobjetivo. Jozefowiez et al. (2008) [34] repasan el uso de metodologı́as multiobjetivo en problemas de rutas. Algunos autores realizan planteamienmtos multiobjetivo considerando sólo el número de vehı́culos y la distancia total recorrida como en [59], [46] y [38]. Los planteamientos multiobjetivos más frecuentes minimizan el número de vehı́culos, la distancia total recorrida y la violación de restricciones, como hacen en [51] con algoritmos genéticos, en [42] con un método multistart y en [43] con un PSO. [28] utilizan un método hı́brido para minimizar el tiempo total de viaje y el tiempo de espera. [24] aplica algoritmos genéticos para los objetivos de minimizar la distancia total, el número de vehı́culos, el número de ventanas de tiempo violadas y una medida de la violación de las ventanas de tiempo. [2] usan un sistema basado en Colonias de Hormigas (ACO) para minimizar a la vez el número de vehı́culos, el tiempo de viaje y el tiempo de servicio. [44] usan un método evolutivo multiobjetivo para abordar la minimización simultánea de la máxima duración de la ruta y el número de vehı́culos, a la vez que se maximiza la similitud entre dos situaciones donde hay demanda normnal o alta de los clientes. [32] consideran algoritmos genéticos y [33] algoritmos meméticos para minimzar a la vez la longitud total y el desequilibrio entre las rutas. [39] implementan un algoritmo memético con un Simulated Anealing para minimizar la distancia total y la diferencia entre la ruta más larga y la más corta con las instancias de Gehring y Homberger de 200 clientes. [21] proponen un método evolutivo para el VRPTW multiobjetivo que incorpora una medida de la similitud entre soluciones para minimizar el número de vehı́culos, la distancia total y el tiempo de servicio global. [60] aplican un algoritmo evolutivo hı́brido para minimizar la distancia total recorrida y maximizar el cumplimiento de las ventanas de tiempo. En [13] y [14] profundizamos en el aspecto multiobjetivo de los problemas reales de rutas de vehı́culos con ventanas de tiempo acudiendo a la metodologı́a de Purshouse y Fleming (2003) [50] para analizar la concordancia de los objetivos. III. Instancias para el VRP El conjunto de instancias introducidas por Solomon [56] en 1987 es la baterı́a de instancias más ampliamente utilizados en la literatura tanto para el problema de ruta de vehı́culos con ventanas de tiempos VRPTW como para otras versiones de VRP. Este conjunto de instancias se ha extendido y adaptado en multitud de ocasiones para estudiar diversos métodos de resolución para este y otros problemas de rutas. En algunos casos se han añadido clientes para hacerlos de mayor tamaño o se han modificado sus componentes incorporando algunas particularidades o eliminando otras para estudiar otras versiones de problemas de rutas de tiempo. El conjunto de instancias de Solomon se compone de 56 instancias con 100 clientes. El conjunto de instancias se divide en tres subgrupos en función de la distribución geográfica de los clientes según el tipo de distribución geográfica de los clientes. El primer conjunto de instancias tiene sus clientes agrupados en varias zonas que representarı́an aglomeraciones urbanas. Las instancias de este conjunto son denotadas por CXXX (del término cluster ) y consta de 17 instancias. El segundo conjunto de instancias tiene sus clientes ubicados al azar con distribución uniforme, se denotan por RXXX (del término random) y consta de 23 instancias. El tercer conjunto de instancias tiene sus clientes con una distribución mixta entre agrupados en aglomeraciones y distribui- dos uniformemente al azar, se denota por RCXXX y consta de 16 instancias. Cada uno de estos tres subgrupos de instancias se divide a su vez en dos subconjuntos. Las instancias con clientes agrupados se dividen en los subconjuntos: C1XXX y C2XXX. Las instancias del subconjunto C1XXX tiene un diseño diferente de las ubicaciones de los clientes y ventanas de tiempo más estrechas que la del subconjunto C2XXX. Sin embargo, los dos subgrupos de RXXX y RCXXX comparten el mismo diseño, pero los clientes en el primer subconjunto tienen ventanas de tiempo más estrechas, como en CXXX. El tiempo de servicio para los clientes es de 90 unidades de tiempo para los subconjuntos CXXX y RCXXX, y 10 unidades de tiempo de subconjunto RXXX. La demanda varı́a en función del cliente y ejemplo, pero tienen valores discretos en 10, 20, 30, 40. Las instancias de Van Breedam [11] están organizadas en dos conjuntos de instancias denotadas por T1 y por T2. Cada uno de estos conjuntos consta de 60 instancias, cada una de las cuales tiene 100 clientes. Cada cliente tiene una demanda de 10 unidades y se supone que hay un número ilimitado de vehı́culos con una capacidad de 100 unidades para atenderlos. Los clientes tienen dos ventanas de tiempo [a, b] y [c, d]. En el conjunto de instancias T1 todos los clientes tienen la ventana de tiempo [0,60] en el conjunto T2 todas los clientes de todas las instancias tienen ventanas de tiempo [0,30] y [50,80]. En todas las instancias, tanto del conjunto T1 como T2, la ventana de tiempo del único depósito es [0,960]. Las instancias de Russell et al. [53] consisten en dos pares de instancias reales tomadas de una compañı́a de distribución de comida rápida en los Estados Unidos. El primer par de instancias denotadas por D249 y E249 tienen 249 clientes. La primera de estas dos instancias tiene vehı́culos de capacidad 50 y la segunda tiene vehı́culos de capacidad 100. Para ambas instancias, los tiempos de viaje fueron calculados por una función lineal que permite una velocidad variable en función de la distancia. El segundo par de instancias denotadas D417 y E417 tienen 417 clientes. La instancia D417 tiene ventanas de tiempo mayores que la instancia E417. En cada una de estas dos instancias la unidad de tiempo se equipara a la unidad de distancia. Las instancias de Gehring y Homberger [22], [23] son una extensión de las instancias de Solomon. Para cada subconjunto de las instancias de Solomon se proporcionan instancias con 200, 400, 600, 800 y 1000 clientes. Estas instancias tienen las mismas especificaciones que las de Solomon, excepto en que los clientes están localizados en posiciones diferentes. Las instancias de Cordeau et al. (2001) [15] también están basadas en las instancias de Solomon. Este banco de instancias está dividido en tres subconjuntos de acuerdo a la forma en que se obtuvieron las posiciones de los clientes. Para las instancias de- notadas c(1|2)xx los clientes se generaron en torno a ciertos clusters, en las instancias r(1|2)xx los clientes se generaron totalmente al azar y, por último, para las instancias rc(1|2)xx las posiciones de los clientes se generaron de forma mixta entre los dos métodos anteriores. Dentro de cada subconjunto hay dos subconjuntos dando lugar a 6 subconjuntos en total: c1xx, c2xx, r1xx, r2xx, rc1xx y rc2xx. Los clientes de cada uno de estos conjuntos comparten los mismos datos con la única excepción de las ventanas de tiempo. Todas las instancias tienen 100 clientes con demanda igual a una unidad en todos los casos. Los clientes tienen que ser atendidos por una flota limitada de vehı́culos de tamaño diferentes para las instancias. Las capacidades de los vehı́culos varı́an también de unas instancias a otras en el conjunto de valores {200, 700, 1000}. Información sobre estos y otros conjuntos de instancias para las distintas versiones del VRP se pueden encontrar en la dirección URL http://neo.lcc.uma.es/radi-aeb/WebVRP/ IV. El generador Con objeto de obtener instancias de problemas de rutas de vehı́culos donde el efecto y relevancia de las distintas caracterı́sticas de los problemas fuera modulable se diseñó un generador de instancias basado en datos de aplicaciones reales. Las instancias resultantes se almacenan en ficheros con una estructura similar a las instancias clásicas para facilitar su uso. El generador parte de las ubicaciones reales de más de 1000 clientes de compañı́as de distribución en un entorno geográfico concreto (ver figura 1). En particular, se trata del contexto mixto urbano-rural de la isla de Tenerife que cuenta con una orografı́a accidentada con zonas de caracterı́sticas bien distintas. Inicialmente, el generador cuenta con las ubicaciones geográficas reales de dos empresas que distribuyen alimentos, una de ellas centrada en productos congelados y la otra centrada en enlatados. Mediante una API de Google Maps se determinan tanto las distancias y como los tiempos de recorrido entre clientes y de clientes con el depósito. Estos valores pueden modificarse de acuerdo a la información concreta que pueda ser aportada por los expertos o los usuarios. Una extensión de la herramienta permitirá obtener matrices especı́ficas de costes, emisiones, o consumos entre los distintos puntos. La herramienta permite establecer las ventanas de tiempo de los clientes, a partir de la información real aportada por las empresas sobre los patrones usuales en el comportamiento de los clientes. Las demandas y tiempos de servicio de los clientes se determinan también de acuerdo a patrones que reflejen situaciones reales. Las capacidades se pueden establecer de forma explı́cita a partir de información real pero se ha dotado al generador con un parámetro que permite modular el efecto de las restricciones de capacidad. El uso de semillas independientes de los genera- -16.2 -16.3 -16.4 -16.5 -16.6 -16.7 -16.8 -16.9 28 28.1 28.2 28.3 28.4 28.5 28.6 Fig. 1. Distribución geográfica de los clientes dores de números pseudo-aleatorios para generar las componentes de los modelos permite reproducir los experimentos y posibilitan el estudio del efecto de cada uno de ellos de forma separada. El perfil de las ventanas de tiempo establecen las especificaciones para su generación al azar teniendo en cuenta la información ofrecida por la empresa distribuidora sobre los patrones usuales que presentan los clientes. Cada perfil consiste en una serie de pares de valores de patrones y las probabilidades o frecuencias con la que se presentan. Dado un perfil los valores concretos generados al azar para cada instancia se obtienen utilizando el conocido método de la rueda de la ruleta de forma independiente para cada uno de los clientes. Un ejemplo de un fichero en formato xml se muestra en la figura 2. timewindows.xml <?xml version="1.0" ?> <time-windows-specification> <depot opens="0" closes="480" /> <time-windows> <time-window opens="0" closes="480" probability="0.25" <time-window opens="0" closes="14400" probability="0.25" <time-window opens="10800" closes="25200" probability="0.25" <time-window opens="21600" closes="36000" probability="0.25" </time-windows> </time-windows-specification> /> /> /> /> Fig. 2. Fichero con perfil de ventanas de tiempo El intervalo de tiempo de apertura del depósito viene a representar el horizonte de actuación de los vehı́culos. El tiempo de apertura del depósito reflejado en la figura 2 es de 8 horas (de 8:00h. a 16:00h.). Para simplificar la exposición se toma como instante inicial 0 el de apertura del depósito y como unidad de medida del tiempo el minuto. Por tanto la ventana de tiempo del depósito es [0,480]. Un primer tipo de ventana del perfil de clientes reflejado en la figura tendrı́a todo el dı́a disponible (8 horas) para ser servido; éstos serı́an el 25 % de los clientes con la ventana de tiempo [0,480]. Los otros tipos de ventanas reflejan los tres tipos usuales de clientes. Se suele distinguir entre clientes mañaneros (que prefieren ser servidos por la mañana), intermedios (los que prefieren ser servidos a mediodı́a) y tardı́os (que prefieren ser servidos por la tarde). Los perfiles permiten contemplar distinto tipo de clientes con caracterı́sticas comunes según la actividad que desarrollan. Para cubrir el dı́a completo con estos tres tipos de clientes con ventanas disjuntas se contemplan ventanas de tiempo de 160 minutos: [0,160], [160,320] y [320,480]. En el perfil representado por el fichero xml de la figura 2, estos tres tipos tienen la misma probabilidad 0,25. Estas ventanas corresponden a clientes que son servidos de 8:00 h. a 10:40 h., de 10:40 h. a 13:20 h. y de 13:20 h. a 16:00 h., respectivamente. Si para las instancias a generar contemplamos una reducción de 1/2 hora en cada intervalo dejando 45 minutos entre las ventanas de tiempo queremos que sigan siendo de igual longitud, éstas serı́an [0,130], [175,305] y [350,480]. Los periodos de tiempo correspondientes serı́an de 8:00 h. a 10:10 h., de 10:55 h. a 13:05 h. y de 13:50 h. a 16:00 h. Estas ventanas están representadas en la figura 3. El generador usa los siguientes parámetros: El número de clientes n. El generador selecciona al azar las ubicaciones reales de n clientes de forma independiente. El perfil de las ventanas de tiempo. El generador obtiene al azar una ventana de tiempo para cada cliente teniendo en cuenta los tipos de ventanas de tiempo y probabilidades dadas en el perfil de ventanas de tiempo. El perfil de demandas. Las demandas se generan usando los tipos y probabilidades dadas en el perfil de demandas. El perfil de los tiempos de servicio Los tiempos de servicio de cada cliente se generan usando los tipos y probabilidades dadas en el perfil de tiempos de servicio. Las semillas. Se usan 4 semillas. Una para seleccionas los clientes, otra para las ventanas de tiempo, la tercera para generar las demandas y la última para los tiempos de servicio. El parámetro δ. Este parámetro es un porcentaje que se usa para elegir la capacidad de los vehı́culos con el objeto de regular el ajuste de las restricciones de capacidad. Estos parámetros se especifican en formato xml según los ejemplos mostrados en las diversas figuras incluidas en este trabajo. Los perfiles de las demandas y tiempos de servicio establecen las especificaciones para su generación al azar de forma similar a las ventanas de tiempo teniendo en cuenta la información sobre la tipologı́a de clientes usuales. Cada perfil consiste en una serie de valores y sus probabilidades. Dado un perfil los valores concretos generados para cada instancia se obtienen utilizando el método de la rueda de la ruleta de forma independiente para cada cliente. Los perfiles de las demandas vienen dados, de forma similar a las ventanas de tiempo, en ficheros respectivos en formato xml. En las figuras 4 y 5 se muestran un ejemplo de un perfil de demandas y un ejemplo de un perfil de tiempos de servicio para la generación de instancias. demands.xml <?xml version="1.0" ?> <demands-specification> <delta value="60" /> <demands> <demand type="10" probability="0.25" /> <demand type="20" probability="0.50" /> <demand type="30" probability="0.25" /> </demands> </demands-specification> Fig. 4. Ejemplo de fichero con perfil de demandas. serviceTimes.xml <?xml version="1.0" ?> <service-times-specification> <service-times> <service-time type="600" probability="0.50" /> <service-time type="1200" probability="0.25" /> <service-time type="1800" probability="0.25" /> </service-times> </service-times-specification> Fig. 5. Fichero con perfil de tiempos de servicio. La figura 6 incluye las semillas utilizadas en la ejecución del generador que también se incluyen en un fichero en formato xml. La variable outprefix establece el prefijo de los ficheros de salida que son los siguientes: El fichero outputPrefix.distanceMatrix conteniendo la matriz de distancias entre ubicaciones Fig. 3. Ventanas de tiempo del perfil seeds.xml seedMatrix seedTimeWindows seedDemand seedServiceTimne integer integer integer integer Fig. 6. Semillas. El fichero outputPrefix.timeMatrix conteniendo la matriz de tiempos entre ubicaciones El fichero outputPrefix.Solomon conteniendo la información de la instancia en el formato de las clásicas instancias de Solomon Varias instancias generadas por esta herramienta han sido utilizadas en diversos trabajos. La superioridad del generador a la hora de obtener instancias con las caracterı́sticas que reflejen la distinta relevancia de sus componentes se muestra en el estudio [13]. En este estudio se mostró como utilizar el generador para establecer las relaciones que mostraban en la aproximación a la frontera de Pareto los objetivos asociados a estas caracterı́sticas. En dicho trabajo se estudiaron los resultados obtenidos con un clásico algoritmo genético (NSGAII) implementado en Paradiseo. El estudio se basó en un conjunto de 30 instancias de 100 clientes. Con el objeto de sustentar la naturaleza multiobjetivo inherente a estos problemas en [13] se siguió la metodologı́a de Purshouse y Fleming [50] para analizar las relaciones entre pares de objetivos en la frontera de Pareto para los 5 objetivos siguientes: Z1 número de vehı́culos Z2 máximo tiempo de las rutas Z3 distancia total recorrida Z4 tiempo de espera total Z5 tiempo de retraso Se mostró como las correlaciones muestrales sobre la frontera de Pareto de los pares de objetivos que quedaban enmascaradas al ejecutarse sobre un conjunto de instancias de Salomón (el de instancias con distribución aleatoria de clientes) se mostraban con nitidez sobre un conjunto con caracterı́sticas similares obtenidos con nuestro generador MOVRPTW. Para mostrar la escalabilidad de las conclusiones en este caso se usaron 40 instancias con 50, 150 y 250 clientes. Finalmente en el trabajo [12] se usa el generador para obtener dos instancias sobre las que construir instancias con imprecisión siguiendo las indicaciones de la empresa propietaria de los datos. En este caso se han usado dos instancias de 60 y 90 clientes de caracterı́sticas similares a una instancia con 71 clientes aparecida previamente en la literatura para un problema fuzzy muy similar con el que se ha establecido las comparaciones. Las instancias usadas en estos estudios y el generador en formato libre están disponibles para uso y descarga en https://github.com/psxjpc/ (una búsqueda del término “movrptw´´ en Github permite acceder al repositorio). Una captura de pantalla del repositorio se puede ver en la figura 7. V. Conclusiones En este trabajo hemos mostrado el interés existente en los problemas de rutas de vehı́culos y el carácter multiobjetivo de las aplicaciones. El generador propuesto permite crear conjuntos de instancias realistas donde se puede modular el efecto de las distintas componentes. De esta forma se puede focalizar los estudios de los métodos multiobjetivo o los métodos uniobjetivo que atienden de forma especial a una de las dificultades presente en las aplicaciones. La herramienta propuesta puede ser mejorada con nuevas caracterı́sticas para facilitar su uso y extensión al proporcionarse en formato abierto. Agradecimientos Este trabajo está parcialmente financiado por el proyecto TIN2008-06872-C04-01 del Ministerio de Ciencia y Tecnologı́a (70 % FEDER). Referencias [1] Baldacci, R., Mingozzi, A., Roberti, R. (2012). Recent exact algorithms for solving the vehicle routing problem Fig. 7. Ventanas de tiempo del perfil [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] under capacity and time window constraints. European Journal of Operational Research 218 (1), 1–6 Barán, B., Schaerer, M. (2003). A Multiobjective Ant Colony System for Vehicle Routing Problem with Time Windows Proceedings of the 21st IASTED International Conference on Applied Informatics (2003) Pages: 97–102 Bent, R., Van Hentenryck, P. (2004). A two-stage hybrid local search for the vehicle routing problem with time windows. Transportation Science 38(4), 515–530. Berger, J., Barkaoui, M., Bräysy, O. (2003). A routedirected hybrid genetic approach for the vehicle routing problem with time windows. INFOR 41, 179–194. Bramel J., Simchi-Levi D. 1996. Probabilistic Analyses and Practical Algorithms for the Vehicle Routing Problem with Time Windows. Operations Research 44, 501– 509. Bräysy O. (2003). A Reactive Variable Neighborhood Search for the Vehicle-Routing Problem with Time Windows. INFORMS Journal on Computing. 15(4), 347–368 Bräysy O., Dullaert W., Gendreau M. (2004). Evolutionary Algorithms for the Vehicle Routing Problem with TimeWindows. Journal of Heuristics 10, 587–611. Bräysy O., Gendreau M. (2002) Tabu Search Heuristics for the Vehicle Routing Problem with Time Windows. TOP 10(2), 211–237. Bräysy, O., Gendreau, M. (2005a). Vehicle routing problem with time windows, Part I: Route construction and local search algorithms. Transportation Science 39, 104– 118. Bräysy, O., Gendreau, M. (2005b). Vehicle routing problem with time windows, Part II: Metaheuristics. Transportation Science 39, 119–139. Van Breedam A. (1995). Improvement heurisitcs for the vehicle routing problem based on simulated annealing, European Journal of Operational Research 86, 480–490. Brito, J., Martı́nez, F.J., Moreno, J.A., Verdegay, J.L. (2011). Fuzzy Optimization for distribution of frozen food with imprecise time. Fuzzy Optimization and Decision Making, to appear Castro-Gutierrez, J., Landa-Silva, D., Moreno Pérez, J.A. (2011a). Studying the Vehicle Routing Problem [14] [15] [16] [17] [18] [19] [20] [21] [22] with Time Windows from a Multi-objective Perspective OR53 Annual Conference, Nottingham. 6-8 September 2011 Castro-Gutierrez, J., Landa-Silva, D., Moreno Perez, J.A. (2011b). Nature of Real-World Multi-objective Vehicle Routing with Evolutionary Algorithms. Proceedings of the 2011 IEEE International Conference on Systems, Man, and Cybernetics (IEEE SMC 2011), pp. 257264, IEEE Press, Anchorage Alaska, October 2011. Cordeau J.-F., Laporte G., Mercier A. (2001). A unified tabu search heuristic for vehicle routing problems with time windows. Journal of the Operational Research Society 52, 928–936 Cordeau, J.-F., Desaulniers, G., Desrosiers, J., Solomon, M., Soumis, F. (2002). The VRP with time windows. In: Toth, P., Vigo, D. (Eds.), The Vehicle Routing Problem, vol. 9. SIAM Monographs on Discrete Mathematics and Applications, Philadelphia, pp. 157–193. Cordeau, J.-F., Laporte. G., Savelsbergh, M.W.P., Vigo, D., (2007). Vehicle Routing. Chapter 6 in C. Barnhart, G. Laporte (Eds.), Handbooks in Operations Research and Management Science, Vol. 14, 367–428. Dullaert W., Bräysy O. (2003). Routing Relatively Few Customers per Route. TOP 11, 325–336. El-Sherbeny N.A. (2010). Vehicle routing with time windows: An overview of exact, heuristic and metaheuristic methods. Journal of King Saud University (Science) 22, 123-131 Gambardella L. M., Taillard E., Agazzi G. (1999). MACS-VRPTW: A Multiple Ant Colony System for Vehicle Routing Problems with Time Windows. In D. Corne, M. Dorigo and F. Glover, editors, New Ideas in Optimization. McGraw-Hill. Garcı́a-Najera, A., Bullinaria, J. (2011). An improved multi-objective evolutionary algorithm for the vehicle routing problem with time windows. Computers and Operations Research 38(1), 287 – 300. Gehring, H., Homberger J. (1999). A parallel hybrid evolutionary metaheuristic for the vehicle routing problem with time windows. In: K. Miettinen, M. Makela, J. Toivanen (eds.), Proceeding of EUROGEN99 - Short [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] Course on Evolutionary Algorithms in Engineering and Computer Science, pages 57–64. University of Jyväskylä. Gehring, H., Homberger J. (2001). A parallel two-phase metaheuristic for routing problems with time windows. Asia-Pacific Journal of Operational Research. 18, 35–47. Geiger, M.J. (2001). Genetic algorithms for multiple objective vehicle routing. Proceedings of the Metaheuristics International Conference MIC’2001, Porto, Portugal, pp. 349-353 Garey, M.R., Johnson, D.S. (1979). Computers and intractability: A guide to the theory of NP-completeness, W.H. Freeman and Company, 1979. Homberger, J., Gehring, H. (2005). A two-phase hybrid metaheuristic for the vehicle routing problem with time windows. European Journal of Operational Research 162, 220–238. Hong, L. (2012). An improved LNS algorithm for realtime vehicle routing problem with time windows. Computers and Operations Research, 39 (2), 151–163. Hong, S.-C., Park, Y.-B. (1999). A heuristic for biobjective vehicle routing with time window constraints International Journal of Production Economics 62(3), 249–258. Ioannou, G., Kritikos, M., Prastacos, G. (2001). A greedy look-ahead heuristic for the vehicle routing problem with time windows. Journal of the Operation Research Society 52, 523–537. Ibaraki, T., Imahori, S., Kubo, M., Masuda, T., Uno, T., Yagiura, M. (2005). Effective local search algorithms for routing and scheduling problems with general time window constraints. Transportation Science 39, 206–232. Ibaraki, T., Imahori, S., Nonobe, K., Sobue, K., Uno, T., Yagiura, M. (2008). An iterated local search algorithm for the vehicle routing problem with convex time penalty functions. Discrete Applied Mathematics, 156(11),2050– 2069. Jozefowiez, N., Semet, F., Talbi, E.G. (2006). Enhancements of NSGA-II and its application to the vehicle routing problem with route balancing. In: 7th International Conference on Artificial Evolution - EA 2005, Lecture Notes in Computer Science, vol. 3871, pp. 131–142. Springer (2006) Jozefowiez, N., Semet, F., Talbi, E.G. (2007). Target aiming Pareto search and its application to the vehicle routing problem with route balancing Journal of Heuristics 13(5) 455–469. Jozefowiez, N., Semet, F., Talbi, E.G. (2008). Multiobjective vehicle routing problems. European Journal of Operational Research 189(2), 293 – 309. Kallehauge, B. (2008). Formulations and exact algorithms for the vehicle routing problem with time windows. Computers & Operations Research 35 (7), 2307– 2330. Kontoravdis, G., Bard J.F. (1995). A GRASP for the Vehicle Routing Problem with Time Windows. ORSA Journal on Computing. 7, 10–23. Le Bouthillier, A., Crainic, T.G., Kropf, P. (2005). A guided cooperative search for the vehicle routing problem with time windows. IEEE Intelligent Systems 20(4), 36– 42. LaTorre, A., Clautiaux, F., Talbi, E., Peña, J. (2008). VRP-extended: When confidence and fleet size are also important. In: E.G. Talbi (ed.) Proceedings of the 2nd International Conference on Metaheuristics and Nature Inspired Computing, META 2008 (2008). Lecron, F.; Manneback, P.; Tuyttens, D. (2010). Exploiting grid computation for solving the vehicle routing problem. International Conference on Computer Systems and Applications (AICCSA), 2010 IEEE/ACS. Hammamet 16-19 May 2010 Lim, A., Zhang, X. (2007). A two-stage heuristic with ejection pools and generalized ejection chains for the vehicle routing problem with time windows. INFORMS Journal on Computing, 19 (3), 443–457. Mester, D. Bräysy. O. (2005). Active Guided Evolution Strategies for Large Scale Vehicle Routing Problems with Time Windows. Computers & Operations Research 32, 1593–1614. Müller, J. (2010). Approximative solutions to the bicriterion Vehicle Routing Problem with Time Windows. Eu- [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] ropean Journal of Operational Research, 202 (1), 223– 231. Muñoz-Zavala, A., Hernández-Aguirre, A., VillaDiharce, E. (2009). Particle evolutionary swarm multi-objective optimization for vehicle routing problem with time windows. Studies in Computational Intelligence 242, 233–257. Murata, T., Itai, R. (2005). Multi-objective vehicle routing problems using twofold emo algorithms to enhance solution similarity on non-dominated solutions. In: Evolutionary Multi-Criterion Optimization, LNCS, vol. 3410, pp. 885–896. Springer (2005) Nagata, Y., Bräysy, O., Dullaert, W. (2010). A penaltybased edge assembly memetic algorithm for the vehicle routing problem with time windows. Computers and Operations Research 37 (4), 724–737. Ombuki, B., Ross, B.J., Hanshar, F. (2006). MultiObjective Genetic Algorithms for Vehicle Routing Problem with Time Windows, Appl. Intell. 24 (1), 17–30. Pisinger, D., Ropke, S. (2007). A general heuristic for vehicle routing problems. Computers and Operations Research 34 (8), 2403–2435. Potvin, J.Y., Rousseau, J.M. (1993). A Parallel Route Building Algorithm for the Vehicle Routing and Scheduling Problem with Time Windows. European Journal of Operational Research 66: 331–340. Prescott-Gagnon, E., Desaulniers, G., Rousseau, L.M. (2009). A branch-and-price-based large neighborhood search algorithm for the vehicle routing problem with time windows. Networks 54(4), 190–204. Purshouse, R., Fleming, P. (2003). Conflict, harmony, and independence: relationships in evolutionary multicriterion optimisation. In: Proceedings of the 2nd international conference on evolutionary multi-criterion optimization (EMO 2003), LNCS 2632, pp. 16–30. Springer (2003) Rahoual, M., Kitoun, B., Mabed, M.H., Bachelet, V., Benameur, F. (2001). Multicriteria Genetic Algorithms for the Vehicle Routing Problem With Time Windows. In: 4th Metaheuristics International Conference, 527–532, 2001. Rousseau, L.-M., Gendreau, M., Pesant, G. (2002). Using constraint-based operators to solve the vehicle routing problem with time windows. Journal of Heuristics 8, 43– 58. Russell, R.A. (1995). Hybrid heuristics for the vehicle routing problem with time windows. Transportation Science 29: 156–66. Russell, R.A., Chiang, W.-C. (2006) Scatter search for the vehicle routing problem with time windows. European Journal of Operational Research 169 (2), 606–622. Solomon, M. (1986). On the worst-case performance of some heuristics for the vehicle routing and scheduling problem with time window constraints. Networks 16, 161–174. Solomon, M. (1987). Algorithms for the vehicle routing and scheduling problem with time window constraints. Operations research 35, 254–265. Sontrop, H. M. J. , van der Horn S. P. ,Teeuwen G. , Uetz M. (2005). Fast Ejection Chain Algorithms for Vehicle Routing with Time Windows. In Hybrid Metaheuristics, Lecture Notes in Computer Science. Volume 3636 Pages 78–89 Springer. Taillard E., Badeau P., Gendreu M., Guertain F., Potvin J.Y. (1997) A Tabu Search heuristic for the Vehicle Routing Problem with Time Windows. Transportation Science 31, 170-186. Tan, K., Chew, Y., Lee, L. (2006). A hybrid multiobjective evolutionary algorithm for solving vehicle routing problem with time windows. Computational Optimization and Applications 34, 115–151. Wang, Ch.-H., Li, Ch.-H. (2011). Optimization of an established multi-objective delivering problem by an improved hybrid algorithm Expert Systems with Applications 38(4), 4361–367. Wieczorek, B. (2011). Parallel independent simulated annealing searches to solve the VRPTW. Advances in Intelligent and Soft Computing 103, 377–384.