Optimización de rutas de vehículos de recogida de basuras

Anuncio
Optimización de rutas de vehículos de recogida de basuras
mediante recocido simulado
Albert Magriñà Girol y Francesc Robusté Antón
LAMOT, ETS de Ingenieros de Caminos, Canales y Puertos de Barcelona
Universidad Politécnica de Cataluña, <f.robuste@upc.es>, España
RESUMEN
El artículo presenta la elaboración de un algoritmo para diseñar la recogida de basuras en
un entorno rural mediante la técnica de optimización conocida como recocido simulado. El
algoritmo base se ha modificado permitiendo introducir las restricciones concretas que
tiene este problema, como la limitación de la capacidad del camión o la jornada laboral de
los trabajadores. Finalmente, se aplica el programa desarrollado a casos reales y se
constata que los resultados son sustancialmente mejores que los de otros algoritmos de uso
habitual como el heurístico de Clarke y Wright.
1. PLANTEAMIENTO DEL PROBLEMA: LA RECOGIDA DE BASURAS
La recogida de los residuos sólidos generados por la población de una determinada región
tiene un peso muy importante en el coste total de la gestión de estos residuos. El objetivo
de la ponencia es presentar la implementación de un algoritmo que reduce este coste
optimizando el número de camiones utilizados y las rutas de recogida que describen.
El problema se centra en un entorno rural: un conjunto de núcleos generadores de basuras
que pueden ser muy heterogéneos entre sí (desde granjas a poblaciones grandes) llenan
parcialmente un número determinado de contenedores y se trata de diseñar el recorrido
óptimo para camiones con una cierta capacidad; este problema responde en su formulación
al denominado VRP en la literatura (Vehicle Routing Problem). De cada núcleo generador
se conoce su situación en el territorio, la cantidad de basura que genera diariamente y el
tiempo que tarda un camión en recoger toda la basura en cada núcleo. De la misma manera,
también se conoce el tiempo que tarda un camión de basuras en recorrer la distancia que
hay entre cada par de núcleos. El coste del servicio viene definido por una función de
costes, que tiene un valor calculable y concreto para cada una de las configuraciones de
rutas que se analice.
Hay dos condicionantes operativos obvios: en primer lugar, los camiones tienen una
capacidad limitada y, por lo tanto, la carga total que se recoge en una ruta no pueden
sobrepasar dicha capacidad; en segundo lugar, la jornada de trabajo de los operarios que
van en cada camión no puede superar unas determinadas horas y, por lo tanto, hay que
limitar el trabajo de cada camión a esa jornada laboral. Es importante destacar que la
primera condición es sobre las rutas y la segunda sobre los camiones y que el número de
camiones necesarios es como máximo el número de rutas. Debido a esto, puede darse el
caso que en la configuración óptima haya camiones que describan más de una ruta para
poder rellenar lo máximo posible la jornada laboral de esos camiones.
2. LA RESOLUCIÓN DEL PROBLEMA
1.1. El problema de las rutas de vehículos
El problema de las rutas de vehículos es un problema NP-hard dentro de la Optimización
Combinatoria. Es decir, se conjetura que no es posible encontrar algoritmos que
proporcionen la solución óptima en un tiempo razonable para casos de tamaño mediano o
grande. De esta manera, se tiene que tender a utilizar algoritmos que proporcionen
aproximaciones de la solución óptima.
En el campo de la logística, se han descrito muchos algoritmos de aproximación para el
problema de rutas de vehículos. Los dos métodos más clásicos y que comúnmente son
utilizados para la resolución del tipo de problemas son el método de barrido y el método de
Clarke y Wright. Las limitaciones de estos algoritmos son grandes y, por este motivo, se
han desarrollado otro tipo de algoritmos numéricos como los de hill-climbing que tienen la
ventaja de que durante su proceso iterativo pueden salir de óptimos locales y seguir la
búsqueda del óptimo global. Esto es posible porque pueden aceptar durante la búsqueda de
la solución configuraciones peores que la última configuración aceptada. El algoritmo
utilizado para el desarrollo de este trabajo, el recocido simulado, pertenece a este grupo.
2.2 El recocido simulado clásico
Si se utiliza el algoritmo de recocido simulado clásico (Robusté et al., 1990) se puede
resolver el problema de las rutas de vehículos para los casos que tienen igual número de
camiones que rutas y sin la imposición de carga máxima recogida por cada ruta ni tiempo
máximo de trabajo de los camiones. Este algoritmo es indicado cuando las cargas de
basura a recoger en cada núcleo son muy parecidas (distribución homogénea de cargas) y
pequeñas en comparación a la capacidad del camión y que la jornada de trabajo tampoco
sea un factor restrictivo. En esos casos, en la configuración óptima obtenida cada camión
sólo hace una ruta diaria.
Las principales características que definen este algoritmo son:
• Partiendo de una solución inicial encuentra otras posibles soluciones a través de
perturbaciones aleatorias a partir de la solución incumbente; de esta manera, va
saltando de solución en solución indefinidamente.
• Una vez encontrada una nueva solución, el algoritmo decide aceptarla o no en función
del criterio de recocido simulado. Así, para cada iteración j, se acepta una nueva
solución si la función objetivo ha disminuido o si se determina aleatoriamente con una
probabilidad (pj) de aceptación que esta en función del incremento en el coste (cj+1-cj) y
de un parámetro, llamado “temperatura” (Tj), que depende del número de iteraciones
realizadas hasta ese momento (su nombre proviene de la analogía física del proceso de
cristalización de metales por enfriamiento lento o recocido).
pj = min{ 1 , exp (-(cj+1-cj)/Tj) }
•
•
(1)
La solución se dará por definitiva cuando se cumpla una de las condiciones de parada.
La función coste es el tiempo total utilizado por los vehículos para realizar las rutas.
Robusté et al. (1990) consideraron tres tipos de perturbaciones aleatorias: la inversión de
un tramo de una ruta; el traslado de un tramo de una parte a otra de la misma ruta; y el
intercambio de un tramo de una ruta por el tramo de otra ruta. La figura 1 representa
gráficamente estos tipos de perturbaciones aleatorias. La sucesión de letras representa una
ruta y cada una de las letras un núcleo de recogida de basura. Así, la letra O representa el
centro logístico (planta de tratamiento de residuos, vertedero, incineradora, terminal de
transporte, etc.) de donde salen y regresan los camiones.
Inversión:
Antes:
Después:
OABCDEFGHIJO
OABCDJIHGFEO
Traslado:
Antes:
Después:
OABCDEFGHIJO
OABDEFGHICJO
Intercambio: Antes:
Después:
Ruta1:
Ruta2:
Ruta1:
Ruta2:
OABCDEFGHIJO
OabcdefghijO
OABCDbcdefIJO
OaghEFGHijO
Fig. 1 – Tipos de perturbaciones aleatorias del recocido simulado clásico
Se necesita la construcción de una solución inicial para poder empezar las perturbaciones.
Aunque se podrían construir rutas iniciales uniendo los núcleos aleatoriamente, también, se
puede intentar empezar la optimización en la solución inicial con la elección de los núcleos
que formarán una ruta por su proximidad.
Se han definido tres condiciones de parada. La primera de ellas, cuando existe un número
determinado de iteraciones consecutivas con el mismo valor de la función objetivo. La
segunda, cuando se hayan intentado un número determinado de alteraciones en la solución
y ninguna haya cumplido la condición de recocido simulado. Y la tercera condición,
cuando se haya superado un número determinaciones de iteraciones y, por lo tanto, la
temperatura sea muy pequeña.
Fig. 2 - Solución de un ejemplo con demanda homogénea (5 camiones, 50 núcleos)
2.3 El recocido simulado modificado
El recocido simulado clásico sólo puede resolver unos casos muy concretos y deja sin
solución aplicable otros muchos casos. Por este motivo, se ha desarrollado una
modificación del algoritmo del recocido simulado para poder resolver los otros casos,
como los casos en que la demanda de recogida de los núcleos sea heterogénea o los casos
en que la capacidad de los camiones sea restrictiva. El algoritmo modificado ha sido
programado en el programa RESACCA (REcocido Simulado Aplicado a los Circuitos de
CAmiones de recogida de basuras).
Los factores relevantes para el problema específico de la recogida comarcal de basuras
son:
• Restricción de no superación de la capacidad del camión en cada ruta.
• Restricción de no superación de la jornada de trabajo en cada camión.
• Posibilidad de que ciertos núcleos de demanda puedan tener cargas más grandes que la
capacidad del camión.
• Posibilidad que un mismo camión realice más de una ruta.
En primer lugar, para considerar las limitaciones de la capacidad de los camiones y de la
jornada de trabajo hay que añadir dos condiciones más cuando se tantea una modificación
aleatoria. Es decir, para aceptar una nueva solución aparte de cumplirse el criterio de
recocido simulado se tiene que cumplir que en cada ruta la suma de la basura recogida no
supere la capacidad del camión y que todos los camiones no trabajen más de la jornada
máxima establecida. Estas dos restricciones que se han añadido producen una reducción
del número de soluciones posibles, ya que a diferencia del criterio de recocido simulado
estas restricciones son independientes de la iteración y sólo depende de la configuración
específica de la solución analizada.
En los casos reales se plantea también la posibilidad de que haya núcleos con demanda de
recogida más grande que la capacidad de camión. Si eso sucede, el algoritmo fracciona la
carga de los núcleos para que se visiten varias veces y ninguna de las veces la carga
recogida sea más grande que la capacidad del camión. Es sencillo demostrar que la
partición óptima fracciona las cargas en unidades de camión más otra carga con el resto.
De esta manera, las partes que son iguales a la capacidad del camión conforman una ruta
por sí solas y no entran en el juego de las perturbaciones aleatorias; y la parte con el resto
es tratada como los otros núcleos con carga más pequeña que la capacidad del camión.
Fig. 3 - Solución de un caso sencillo con demanda heterogénea ( 5 camiones, 24 núcleos)
Para poder considerar diferente número camiones y rutas y, por tanto, que un camión
pueda realizar diferentes rutas dentro su jornada de trabajo, hay que añadir otro tipo de
perturbación aleatoria. De esta manera, a las perturbaciones de inversión, traslación y
intercambio, hay que añadir la de cambio de asignación de camión. Es decir, cada ruta
tiene asignado un camión que es el que tiene que realizar dicha ruta y con esta perturbación
una determinada ruta que era realizado por el camión X será realizado por el camión Y.
Como es obvio, para aceptar esta nueva solución, tienen que cumplirse los tres criterios
que se imponen en todas las iteraciones: criterio de recocido simulado, capacidad máxima
de la ruta y jornada máxima que puede realizar el camión.
Hay que entrar a priori al modelo el número camiones y el número de rutas a utilizar. Esto
es un inconveniente, ya que el número de camiones sí que es un parámetro de diseño pero
el número de rutas utilizadas no. Para evitar este problema, al programa se le introduce el
número de vehículos a utilizar y un intervalo de posibles valores de la variable número de
rutas. El mínimo de este intervalo suele considerarse el número de camiones. El máximo
depende de las distancias a recorrer y las cargas a recoger de cada caso concreto.
Normalmente con el máximo igual al doble del número de camiones es suficiente. De esta
manera, el programa intenta encontrar una solución inicial con el mínimo del intervalo; si
lo consigue calcula la optimización con el recocido simulado modificado, si no lo consigue
lo intenta con el siguiente valor del intervalo y así sucesivamente hasta llegar al final del
intervalo. Así, se hace la optimización con el mínimo número de rutas que puede calcular.
Este planteamiento se basa en el criterio que normalmente el tiempo total empleado es
menor si utilizamos menos rutas.
Finalmente, falta explicar cómo se determina la solución inicial. Esta solución inicial tiene
que cumplir las dos restricciones ya explicadas: máxima carga por ruta y máximo tiempo
empleado por camión. Por este motivo, se hace difícil para muchos casos encontrar un
algoritmo sencillo que dé una solución inicial que cumpla estas dos restricciones. Esto es
debido a que esta primera solución está poco optimizada y, por lo tanto, los recorridos que
utiliza rápidamente llegan a capacidad máxima de la ruta o jornada máxima. Para poder
superar esta dificultad se ha ingeniado el recocido simulado modificado e interrumpido.
2.3. Solución inicial: el recocido simulado modificado e interrumpido
El procedimiento para encontrar la solución inicial empieza en un algoritmo que agrupa los
núcleos en rutas imponiendo solamente una de las dos condiciones, la carga máxima
recogida en cada ruta. Se ha podido comprobar que en la mayoría de casos en que se
conoce que existe solución posible, este principio “cluster first” es capaz de encontrar esta
primera solución.
Estas rutas iniciales que no cumplen la condición de no superación de la jornada máxima
por cada camión se utilizan como solución inicial en el recocido simulado modificado e
interrumpido. Las características de este algoritmo son las mismas que el recocido
simulado modificado pero con unas pocas diferencias:
• Los criterios que tienen que cumplir una perturbación para ser aceptada como nueva
solución son solamente dos: el criterio de recocido simulado y la condición de no
superación de la carga máxima por ruta.
• La función objeto en lugar de ser el tiempo total es sólo el exceso temporal que sufre
cada camión respecto a la jornada laboral.
• Este proceso es interrumpido cuando se llega a una solución que tiene la función objeto
negativa.
El objetivo de este algoritmo es encontrar la solución que tiene mínimo el exceso respecto
a la jornada laboral. Así, provocamos la interrupción del proceso cuando la función objeto
es negativa porque esto nos indica que la solución que analiza la iteración en que nos
encontramos cumple las dos condiciones que imponemos en el recocido simulado
modificado. Si no se llega a una solución con función objeto negativa implica que no se
puede configurar el sistema de recogida con ese número de rutas y de camiones.
3. APLICACIÓN Y COMPARACIONES
La aplicación se realiza en el diseño de la recogida de basuras para seis casos reales
correspondientes a diversas comarcas, provincias, y Comunidades Autónomas españolas.
Caso 1
Caso 2
Caso 3
Caso 4
Caso 5
Caso 6
Nº de núcleos Carga total a recoger
(Unidades de camión)
74
11,52
81
4,47
100
10,25
107
24,28
88
22,6
119
22,64
Tabla 1 - Características de los casos analizados
También se dispone de los resultados obtenidos para dichos casos por el algoritmo clásico
de Clarke y Wright. El programa concreto de este algoritmo que se ha utilizado para estos
casos también permite imponer las limitaciones de capacidad del camión y de jornada
máxima pero no permite utilizar más rutas que camiones.
Caso 1
Caso 2
Caso 3
Caso 4
Caso 5
Caso 6
C&W
Resacca
C&W
Resacca
C&W
Resacca
C&W
Resacca
C&W
Resacca
C&W
Resacca
Nº
rutas
13
12
7
7
11
11
25
25
25
23
25
23
Nº
camiones
13
12
7
7
11
11
25
25
25
23
25
23
Tiempos
(min)
4828,0
4666,0
3244,5
3141,5
4153,5
4092,5
8787,5
8728,5
6235,5
6203,5
9274,5
9066,5
Coste total
(PTA/dia)
803932
754405
470808
464750
684265
680678
1516789
1513319
1366707
1284825
1545429
1453197
% mejora
6,2%
1,3%
0,5%
0,2%
6,0%
6,0%
Tabla 2 - Resultados con número de rutas igual al número de camiones
La función de coste utilizada para ambos algoritmos es la suma de un coeficiente por el
número de camiones utilizados más otro coeficiente por las horas utilizadas por todos las
rutas. El primer coeficiente es el coste diario del equipo de operarios que van en cada
camión. Así, se ha considerado que los operarios cobran un suelo fijo diario y, por tanto,
no van por horas. El segundo coeficiente, es la suma de la amortización del camión, el
coste de mantenimiento y el coste del combustible por cada hora que trabaja el camión. De
esta manera, se ha hecho la hipótesis que estos tres costes dependen de las horas trabajados
por el camión. Aparte de los gastos del servicio considerados existen otros como la
amortización de los contenedores o la amortización del garaje para los camiones, pero no
se han tenido en cuenta ya que no dependen de la configuración de rutas escogida. La
jornada laboral se ha fijado en 8 horas y la capacidad del camión es la unidad.
Primeramente, se comparan los resultados de los dos programas (C&W y Ressaca)
considerando en ambos casos el número de vehículos igual al número de rutas. La tabla 2
muestra los resultados. En todos los casos se mejora el coste del servicio. No obstante, las
únicas mejoras substanciales son en aquellos casos que se ha podido disminuir el número
de camiones utilizados. También es importante indicar que si se hubiera hecho la hipótesis
de amortización del camión por días transcurridos y no por horas trabajadas, la mejora del
coste sería mucho más grande.
Las figuras 4 y 5 nos muestran las soluciones para el caso 1 de los dos programas. Las
representaciones de las rutas en estas figuras están en métrica euclídea pero el algoritmo
utiliza para el cálculo las distancias sobre la red de carreteras.
Fig. 4 - Solución de C&W para el caso 1.
Fig. 5 - Solución de Resacca para el caso 1
En segundo lugar, se realiza la comparación pero con la posibilidad que el programa
Resacca pueda utilizar más rutas que camiones. En los casos que se analizan esta mejora
sólo es posible para los casos 4 y 5; la Tabla 3 muestra los nuevos resultados.
Caso 4
Caso 5
C&W
Resacca
C&W
Resacca
Nº
rutas
25
25
25
24
Nº
camiones
25
22
25
17
Tiempo
(min)
8787,5
8807,5
6235,5
6438,5
Coste total
(PTA/dia)
1516789
1397965
1366707
1058645
% mejora
7,8%
22,5%
Tabla 3 – Resultados con la posibilidad que Nº rutas sea más grande que Nº camiones
En estos casos es donde realmente la mejora es apreciable. El motivo de la gran mejora es
que si se utiliza sólo una ruta por camión quedan camiones que no aprovechan toda la
jornada laboral y, por tanto, se está pagando el sueldo a unos operarios durante unas horas
que no trabajan. En cambio, si se utilizan diferentes rutas para un mismo camión la jornada
laboral se aprovecha más y no hace falta utilizar tantos camiones.
4. CONCLUSIONES
El algoritmo diseñado es una modificación del recocido simulado particularizada para el
VRP, que produce excelentes resultados. Cabe distinguir dos tipos de casos. En primer
lugar, aquéllos en que en la situación óptima cada camión sólo realiza una ruta; la mejora
de Resacca es perceptible respecto a los algoritmos habituales sólo si Resacca puede
disminuir el número de camiones. En segundo lugar, en los casos en que la limitación más
restrictiva es la capacidad de los camiones y, por tanto, las rutas resultantes son cortas y
para aprovechar toda la jornada laboral es apropiado que un mismo camión haga varias
rutas. En estos casos Resacca consigue una gran mejora respecto a los algoritmos clásicos
como el de Clarke y Wright.
REFERENCIAS
ROBUSTÉ, F., C.F. DAGANZO y R.R. SOULEYRETTE II (1990). Implementing
Vehicle Routing Models. Transportation Research B, 21B:4, 263-286.
AARTS, A. y J.K. LENSTRA (1996). Local Search in Combinatorial Optimization. John
Wiley & Sons, New York.
Descargar