Post on 27-Sep-2018
Un algoritmo GRASP para un problema de rutas de vehículos
escolares aplicado al transporte de personal de una empresa de
manufactura
Eduardo Aguirre Zuñiga
Maestría en Ingeniería en Computación, Facultad de Ingeniería, Universidad Autónoma de
Chihuahua
p207306@uach.mx
Luis Carlos González Gurrola
Facultad de Ingeniería, Universidad Autónoma de Chihuahua
lcgonzalez@uach.mx
Resumen
En este artículo presentamos un problema de transporte de personal de una empresa de manufactura en la
Ciudad de Chihuahua (México), el cual puede ser visto como un problema de rutas de vehículos escolares
(SBRP, por sus siglas en inglés). Este problema de optimización pertenece a la familia de problemas
OVRP, comparte con éstos su complejidad computacional, por lo que no se conoce un algoritmo que le
pueda dar solución. Para este caso práctico, proponemos el uso de una heurística GRASP, que por su
simplicidad podría ser utilizada por el personal encargado de planificar las rutas de vehículos
(departamento de logística) de la maquiladora o el mismo concesionario para obtener mejores soluciones
a este problema que las actuales. Los resultados que aquí se presentan son alentadores, ya que en
comparación con la planeación actual de las rutas se redujo en 29.63% el número de camiones de la
flotilla original, así como el número de kilómetros totales recorridos por todas las rutas en un 30.99%, a la
vez que se mantuvo la calidad de servicio para los trabajadores (tiempo de traslado).
Palabras clave: GRASP; SBRP;VRP;APLICACIONES DE LA IO.
1.Introducción
La industria de manufactura tiene un rol importante en el sector económico industrial de nuestro país.
Entre los servicios que esta industria ofrece a su personal se encuentra el servicio de transporte, el cual
recoge a los trabajadores en puntos estratégicos de la mancha urbana y los transporta a la planta industrial,
así como al término de la jornada laboral realiza la operación inversa, traslada a los trabajadores del lugar
de trabajo a los lugares donde éstos tomaron la ruta de transporte. Este servicio es piedra angular en la
jornada laboral de los trabajadores, pues es donde inicia y termina su contacto con el centro de trabajo.
En la década de 1950 Dantzig y Ramser (G. B. Dantzig y J.H. Ramser, 1959) investigaron problemas de
optimización en rutas de transporte. Estos problemas se presentan en aquellas situaciones donde una
flotilla de camiones debe recorrer puntos geográficos específicos asociados a una demanda y a la vez
minimizar la distancia total recorrida y/o número de vehículos empleados. Los problemas que comparten
estas características son llamados problema de rutas de vehículos o VRP (Vehicle Routing Problem). El
VRP es una generalización del popularmente conocido problema del agente viajero (M. R. Garey y D. S.
Johnson, 1979) (o TSP, por sus siglas en inglés), donde un agente (vendedor) debe recorrer un conjunto
de ciudades, visitando cada ciudad en una sola ocasión mientras que la distancia total recorrida debe ser la
menor posible (problema de optimización). Ambos problemas, son computacionalmente complejos, ya
que el número de soluciones crece sustancialmente con el número de puntos geográficos (puntos de
demanda o ciudades), lo cual evita que estrategias enumerativas puedan ser utilizadas para obtener
soluciones óptimas. Dada esta complejidad, ambos problemas pertenecen a la categoría NP-difícil, es
decir, no se conocen algoritmos que puedan encontrar la solución óptima en tiempo polinomial.
1.1 Estado del arte
Históricamente, el VRP se ha utilizado para modelar problemas de distinta índole como recolección de
basura, entrega de comida, distribución/recolección de bienes, etc. El problema en el que nos enfocamos
en este artículo es el correspondiente al de transporte de personal. Esta variante del VRP, por sus
características, debe considerar conceptos como: eficiencia (razón entre el nivel de servicio y costo de
proveerlo), efectividad (calidad del servicio) y equidad (balanceo de carga) (J. Park y B. Kim, 2010). A
nuestro conocimiento, el único trabajo que hace referencia al transporte de personal se remonta a 1992,
donde Raghavendra (A. Raghavendra et. al., 1992) propone una heurística para planificar las rutas de
transporte de una empresa y entre los resultados que reportan mencionan que su estrategia fue capaz de
reducir en un 10% la distancia total cubierta por las rutas. No obstante, la variante del VRP que tiene
características similares a este problema se conoce en la literatura como problema de Rutas de Vehículos
Escolares (SBRP, School Bus Routing Problem) (P. Schittekat et al., 2013). El objetivo de un caso de
SBR es planear las rutas que autobuses escolares deberán seguir de tal forma que se le brinde servicio a
todos los estudiantes optimizando los objetivos de distancia/tiempo y número de vehículos utilizados.
Trabajos en esta variante de VRP no abundan, incluso reconociendo esta situación Schittekat et al. (P.
Schittekat et al., 2013) comenta textualmente: “Contrary to the literature on the ordinary vehicle routing
problem (VRP) and several of its extensions (e.g. time windows), only a limited amount of research has
considered the routing of school buses” (Pág. 5, párrafo 2). Bektaş y Elmastaş (T. Bektaş y S. Elmastaş,
2007) proponen un formulación de PE para un caso de una escuela en Ankara, Turkia. El caso consiste en
29 subregiones (puntos de demanda) para una demanda total de 519 estudiantes. Li y Fu (L. Li y Z. Fu.
2002) proponen una heurística para un caso de un jardín de niños en Hong Kong, donde el número de
puntos de demanda es de 86. Araya et al. (N. D. Araya Sanhueza et al., 2012) retoma la cobertura del
estado del arte para este mismo problema hecho previamente por Park y Kim (J. Park y B. Kim, 2010) y
presenta otra formulación de PE para casos con redes de hasta 30 puntos de demanda. En un trabajo
reciente, Shittekat et al, (P. Shittekat et al., 2013) presenta una metaheurística que integra PE, GRASP y
VND para casos artificiales de hasta 80 puntos de demanda y 800 estudiantes.
La heurística GRASP que presentamos aquí se inspira en algunas ideas que fueron postuladas
originalmente por Wren (A. Wren, 1971, J. F. Cordeau et.al.,2007) en el algoritmo “sweep”. Este
algoritmo fue el primero en emplear la filosofía de diseño de rutas “cluster-first-route-second” (primero
agrupar, después generar las rutas), donde en una primera etapa define los puntos de demanda que una
ruta cubrirá, para después diseñar el recorrido de la ruta a través de estos puntos. El GRASP que
proponemos se aplicó a datos reales provenientes de una empresa de manufactura en la ciudad de
Chihuahua, Chih. México, con los trabajadores del segundo turno, cuyo horario es de 15:30 a 24:00 horas.
Los resultados que se obtuvieron fueron presentados a la gerencia y se espera que la nueva planeación de
rutas entre en efecto eventualmente. Según nuestros cálculos, los nuevos recorridos de las rutas tendrán
un impacto significativo en los ahorros de la maquiladora en el servicio de transporte, pues ascenderían a
un total de $1,664,000.00 pesos al año en sólo este turno.
El artículo tiene el siguiente orden. En la sección 2, se presenta la definición del problema, la estrategia de
solución se detalla en la sección 3. Los resultados y su análisis se presentan en la sección 4 y finalmente
se presenta trabajo a futuro y conclusiones.
2. Descripción del Problema
El servicio de transporte se proporciona a 643 trabajadores en un total de 363 puntos de demanda
distribuidos prácticamente en toda la ciudad de Chihuahua. Los lugares donde los trabajadores toman la
ruta de transporte son propuestos por el departamento de logística de la maquiladora, y en algunas
ocasiones por el mismo concesionario de las rutas. Estos puntos, llamados “puntos de demanda”, se
ubican a una distancia relativamente cercana del hogar del trabajador, pues se busca que el acceso del
trabajador a estos puntos (paradas de las rutas) sea práctico. La empresa alquila 27 camiones de un
concesionario local para cubrir esta demanda. Todos los camiones tienen una capacidad homogénea de 40
trabajadores. Por cada camión la empresa paga un costo fijo, sin tomar en cuenta la distancia recorrida.
Las rutas son planeadas por el departamento de logística de la empresa tomando en cuenta la ubicación de
los puntos de demanda. El fenómeno de rotación de personal hace que número de puntos de demanda
como el número de usuario cambien constantemente, y en consecuencia las rutas de transporte.
Definimos el problema de transporte de personal, basándonos en el trabajo de Bektaş y Elmastaş (Bektaş
T y Elmastaş, 2007), de la siguiente forma. Se tiene un grafo G=(V,E), donde V representa el conjunto
de puntos de demanda y E el conjunto de aristas. Para nuestro caso, el concepto de arista describe bien la
relación de distancia entre dos puntos de demanda ya que estamos considerando la distancia euclidiana.
Se tiene una matriz de distancias simétrica D, donde dij representa el costo de viajar entre el punto de
demanda i y el punto de demanda j. Tenemos un nodo especial (la empresa de manufactura), V0, donde
V0 ∉ V. Cada uno de los puntos de demanda vi ϵ V tiene una capacidad qi asociada que representa el
número de trabajadores que toman la ruta en ese punto. El objetivo del problema de transporte de personal
es utilizar el mínimo número de camiones para transportar a todos los trabajadores desde sus puntos de
demanda hasta la empresa de manufactura, tomando en consideración que la capacidad Q del camión no
deberá ser excedida por la sumatoria de cada una de las capacidades individuales de los puntos de
demanda que le son asignados, así como la longitud del recorrido no deberá ser mayor a una longitud
previamente definida D. Un camión deberá cubrir una ruta que comienza en un punto de demanda
arbitrario y termina inequívocamente en el nodo V0.
Las principales restricciones para el problema provienen del compromiso de brindar un servicio de
calidad, por ejemplo, el tiempo de traslado no debe ser mayor a una hora y no pueden viajar personas de
pie en los camiones.
3. Métodos
El algoritmo GRASP (T.A. Feo y G.C. Resende, 1995, M.G.C. Resende y C.C. Ribero, 2003) se ha
posicionado como una estrategia interesante para obtener soluciones a problemas complejos por su
simplicidad y capacidad de exploración. Es un proceso iterativo donde primero se construye una solución
y después se mejora mediante búsqueda local. A continuación describimos nuestra implementación
El primer procedimiento, construction, toma en cuenta todos los puntos de demanda disponibles para
insertarlos en rutas. La condición para seleccionar un punto de demanda es que la capacidad de la ruta sea
menor a 40 pasajeros y su distancia total recorrida sea menor a 30,000 metros. Esta distancia es un valor
sugerido por la misma empresa, ya que en su experiencia equivaldría a un recorrido no mayor a una hora
de traslado. La función get_min_distance_with_respect(param1,param2) regresa el nodo y sus atributos
(distancia y capacidad) cuya distancia sea la menor con respecto al nodo param1, esta es la versión voraz.
Procedimiento Construction ( )
1. route=1;
2. WHILE available nodes DO
3. caproute=0;
4. distroute=0;
5. nodesroute={V0};
6. last=0;
7 WHILE (caproute 40) AND (distroute 30,000) DO
8. node, distance, capacity =get_min_distance_with_respect(last,candidates)
9. IF (distance 3000) THEN
10. caproute=caproute+capacity;
11. distroute=distroute+distance;
12. nodesroute=nodesroute U node;
13. last=node;
14. make node unavailable;
15. ELSE
16. BREAK;
17. END_IF
18. END_WHILE
19. route=route+1;
20. END_WHILE
Procedimiento Local_Search ( )
1 improvement=TRUE;
2. WHILE improvement DO
3. randomly select route, node1 and node2;
3. new_route=swap(route,node1,node2);
4. IF (new_route is better than curren_route) THEN
5. current_route=new_route;
6. ELSE
7. improvement=FALSE;
8. END_IF
9. END_WHILE
Algorithm GRASP
1.best_solution=INFINITE;
2.FOR i=1 TO num_of_iterations
3. current_solution=Construction()
4. current_solution=Local_Search()
5. IF (current_solution<best_solution) THEN
6. current_solution=best_solution;
7. END_IF;
8.END_FOR;
9. RETURN best_solution;
Para agregar características GRASP, se considera param2, que indica cuantos nodos más cercanos se
deben considerar, para luego de manera aleatoria regresar uno de ellos. Por consideraciones de costo-
beneficio, un criterio para terminar una ruta es si no existe un nodo en una distancia menor a 3,000
metros. Este valor lo calculamos empíricamente, una idea que resultó útil para elegir la distancia máxima
entre puntos adyacentes (tamaño radial del vecindario) fue calcular la distancia promedio entre todos los
pares de puntos del problema. El procedimiento Local_Search(), es una variante del 2-opt, donde se
selecciona una ruta y dos nodos a intercambiar. El cambio se acepta siempre que la distancia total de la
ruta se disminuya. El algoritmo GRASP integra ambos procedimientos.
4. Resultados y discusión
La Figura 1A muestra la distribución actual de las rutas en la Ciudad de Chihuahua. Son 27 rutas que se
pueden identificar por su color, los cuadros rojos indican el inicio de cada ruta y el cuadro azul el punto
final (maquiladora).
(A) (B)
Figura 1. A) Recorrido de rutas actuales en la Ciudad de Chihuahua. B) Recorridos obtenidos de las
rutas de transporte después de aplicar el algoritmo GRASP.
La tabla 1 presenta las características de las rutas actuales, la distancia total euclidiana recorrida por cada
ruta y el número de usuarios. En promedio cada ruta recorre 12, 563.85 metros. La ruta que más distancia
cubre es la ruta 5, con 20,608.94 metros y la de menor recorrido es la ruta 27 con 2,435.46 metros. Es una
diferencia importante, una de ellas diez veces mayor que la otra, entre las distancias recorridas por estas
dos rutas, y más aun si se considera que un criterio de calidad viene dado por la equidad en el tiempo de
traslado de todos los trabajadores, la cual para nuestro caso la supusimos directamente proporcional a la
distancia recorrida. La suma de todas las distancias recorridas por las rutas actuales es de 339,223.91
metros.
Distancias
Actuales
Usuarios
Actuales
Distancias
Actuales
Usuarios
Actuales
Distancias
Nuevas
Usuarios
Nuevas
Rutas
Distancias
Nuevas
Usuarios
Nuevas
Rutas
7,402.22 25 17,494.28 21 4,080.65 37 15,723.62 32
9,911.79 20 3,978.58 31 5,386.98 36 23,398.24 30
14,896.85 29 15,527.28 28 5,021.69 31 18,830.59 31
13,534.48 19 7,946.56 19 4,271.09 32 19,961.64 37
20,608.94 28 19,829.40 30 5,018.81 34 23,860.46 31
11,996.41 25 18,519.64 17 6,850.46 37 NA NA
20,184.77 33 18,562.61 32 4,740.68 40 NA NA
17,161.63 28 13,232.11 19 5,007.21 28 NA NA
9,691.14 20 17,327.92 19 13,009.40 34 NA NA
5,554.54 39 15,448.48 12 10,126.47 38 NA NA
6,346.17 21 11,911.61 24 9,214.92 37 NA NA
8,023.17 13 6,622.15 18 24,094.50 36 NA NA
19,139.02 27 2,435.46 21 25,497.90 31 NA NA
5,936.70 24 9,975.21 32
Tabla 1. Distancia recorrida y número de usuarios por cada una de las las rutas actuales y nuevas,
respectivamente.
La figura 2A muestra el porcentaje de uso para cada una de las rutas actuales. En promedio podemos
observar que las rutas transportan alrededor de 24 pasajeros (60%). Existe sólo una ruta que tiene un
porcentaje de uso mayor al 90% y dos rutas que se aproximan al 30% de uso.
A B
Figura 2. A) Porcentaje de uso de cada una de las rutas actuales (100% equivale a 40 usuarios). B)
Porcentaje de uso de cada una de las nuevas rutas, también se indica el promedio (100% equivale a 40
usuarios).
4.1. Nuevas rutas
En este trabajo presentamos los resultados que obtuvimos para 1000 iteraciones, con un tamaño de lista
de candidatos de tres (variable candidates en el procedimiento construction). El algoritmo logró reducir el
número de rutas actuales de 27 a 19 nuevas rutas, una reducción del 29.63%. La tabla 1 muestra la
distancia euclidiana recorrida y el número de usuarios atendido por cada una de las rutas. La distancia
total recorrida por las nuevas rutas es de 234,070.52 metros. El promedio de distancia recorrida por cada
una de las rutas es de 12,319.50 metros.
La figura 2B muestra el porcentaje de uso de las nuevas rutas, en promedio se obtuvo un porcentaje de
uso de alrededor del 85%. Un dato interesante es que la ruta que menor número de usuarios atiende, la
ruta 11 con 26 pasajeros, tiene un porcentaje de uso mayor que el promedio de todas las rutas actuales.
Figura 3. Comparación del porcentaje de uso de las rutas actuales (rojo) y las nuevas rutas (azul).
La figura 3 muestra la comparación de las rutas de transporte actuales y las nuevas rutas de transporte.
Podemos observar un incremento en el porcentaje de uso de las rutas nuevas y consecuentemente una
reducción en el número de rutas requeridas para dar servicio al mismo número de usuarios. El promedio
de los porcentajes de uso de ambos conjuntos de rutas también muestran diferencias importantes. En base
a esto podemos realizar el siguiente análisis:
La reducción de rutas es de 27 a 19 (-29.63%) lo que equivale a 8 rutas menos. Considerando que
el costo del servicio de transporte de personal para la empresa es de $400.00 pesos por viaje
sencillo, la reducción de costos anuales asciende a la cantidad de 1,664,000.00 pesos por este
turno.
La reducción en el recorrido total de las rutas es de 339,223.91 a 234,070.52 metros diarios, es
decir, 105,153.59 (-30.99%) metros menos de recorrido, lo que representa menor generación de
gases de efecto invernadero por quema de combustible.
Se mejoró en un 25.03% la capacidad de uso del transporte, actualmente se encuentra en 59.44%
y se incrementó a un 84.57%.
El promedio por recorrido de cada nueva ruta es de 12,319.50 metros, lo cual mantiene el tiempo de
traslado por debajo de 1 hora, tomando en cuenta que la velocidad promedio de un vehículo en la Ciudad
de Chihuahua es de 17 km/h. Esto se traduciría a un recorrido promedio de 43 minutos 29 segundos. Los
trazos euclidianos de las nuevas rutas se presentan en la Figura 1B.
5. Trabajo a futuro
Estamos enfocados en obtener aproximaciones de las distancias y tiempos más realistas. Aparte de la
distancia como criterio único para determinar la consecutividad entre puntos de demanda en una ruta,
estamos explorando otras posibilidades orientadas al balanceo de cargas. Otro interés que estamos
explorando en este momento es la comparación de la estrategia GRASP con búsquedas locales más
sofisticadas a casos reportados en la literatura.
6 Conclusiones
En este artículo presentamos el problema de transporte de personal de una empresa de manufactura en la
ciudad de Chihuahua, este problema puede ser visto como una variante del problema de ruta de vehículos
(OVRP). Para el caso práctico que presentamos proponemos una heurística GRASP. Esta heurística es
sencilla e intuitiva, lo que permitirá a los encargados de la toma de decisiones de la maquiladora poder
adaptarla a sus necesidades. Los resultados que se obtuvieron reducen en un 29.63% el número de rutas
actuales, lo cual trae consigo ahorros importantes para la maquiladora que ascienden a $1,664,000.00
pesos al año (considerando los trabajadores de un sólo turno). Con la nueva planeación de rutas, la
capacidad de uso de los autobuses fue incrementada, mientras que aspectos de calidad del servicio como
el tiempo de traslado fueron mantenidos en los estándares actuales.
Bibliografía
1. G. B. Dantzig y J.H. Ramser. The truck dispatching problem. Manage. Sci., 6(1):80-91, 1959.
2. M. R. Garey y D. S. Johnson. Computers and Intractability: A guide to the theory of NP
completeness. W. H. Freeman; First edition (January 15, 1979).
3. J. Park y B. Kim. The school bus routing problem: A review. European Journal of Operational
Research 202:311-319, 2010.
4. A. Raghavendra, T. S. Krishnakumar, R. Muralidhar y D. Sarvanan. A practical heuristic for a large
scale vehicle routing problem. European Journal of Operational Research, 57:32-38, 1992.
5. P. Schittekat, J. Kinable, K. Sorense, M. Sevauz , F. Spieksma, J. Springael. A metaheuristic for the
school bus routing problem with bus stop selection. European Journal of Operational Research, 229
(2):518-528,2013.
6. T. Bektaş y S. Elmastaş. Solving school bus routing problems through integer programming. Journal of the Operational Research Society, 58:1599-1604,2007
7. L. Li y Z. Fu. The shool bus routing problem: a case study. Journal of the Operational Research
Society, 53:552-558,2002.
8. N.D. Araya Sanhueza, C.E. Obreque Núñez, G.E. Paredes Belmar. Un modelo de programación lineal
entera mixta para el problema de ruteo de vehículos en el transporte escolar. CLAIO, 2012.
9. A. Wren. Computers in Transport Planning and Operation. Ian Allan, London, 1971.
10. J.F. Cordeau, G. Laporte, M. W.P. Savelsbergh y V. Daniele. Chapter 6: Vehicle Routing. C.
Barnhart and G. Laporte (Eds.), Handbook in OR & MS, Vol. 14. Elsevier B.V., 2007.
11. T.A. Feo y M.G.C. Resende. Greedy Randomized adaptive search procedures. Journal of Global
Optimization, 6(2):109-133,1995.
12. M.G.C. Resende y C.C. Ribero. Greedy randomized adaptive search procedures. En F. Glover y G.
kochenberg, editors. Handbook of Metaheuristics, capítulo 8, páginas 219-250. Kluwer, Dordrecht,
2003.