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.

Documentos relacionados