Un Enfoque Unificado de Sistema de Hormigas para

Anuncio
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
[email protected], [email protected], [email protected]
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.
Descargar