• No se han encontrado resultados

Solución al problema de ruteo vehicular escolar

N/A
N/A
Protected

Academic year: 2020

Share "Solución al problema de ruteo vehicular escolar"

Copied!
38
0
0

Texto completo

(1)SOLUCIÓN AL PROBLEMA DE RUTEO VEHICULAR ESCOLAR. Caso en Colegio del nororiente de Bogotá.. Arturo Henao Chaparro 200521255. Asesora Nubia Velasco Ph.D. Co-asesor Ciro Amaya Ph.D.. Universidad de los Andes Facultad de Ingeniería Departamento de Ingeniería Industrial. Bogotá D.C. 2010.

(2) Contenido 1. DESCRIPCIÓN DEL PROBLEMA (SITUACIÓN ACTUAL)..................................................... 4. 2. DEFINICIÓN DEL PROBLEMA........................................................................................... 6 2.1. 2.1.1. Supuestos ......................................................................................................... 7. 2.1.2. Conjuntos.......................................................................................................... 7. 2.1.3. Parámetros ....................................................................................................... 7. 2.1.4. Variables de Decisión........................................................................................ 7. 2.1.5. Función Objetivo............................................................................................... 8. 2.1.6. Restricciones ..................................................................................................... 8. 2.2 3. 4. Formulación Matemática (Modelaje) ...................................................................... 7. Ruteo de transporte escolar como problema NP-hard ......................................... 10. MÉTODOS DE SOLUCIÓN PROPUESTOS ....................................................................... 11 3.1. Heurística Constructiva I ........................................................................................ 11. 3.2. Heurística Constructiva II ....................................................................................... 14. 3.3. Procedimientos de Refinamiento .......................................................................... 16. 3.3.1. Procedimiento de Intercambio (SWAP) ......................................................... 16. 3.3.2. Procedimiento de Inserción (INSERT) ............................................................. 17. RESULTADOS ................................................................................................................. 19 4.1. Implementación en Xpress-Mosel ......................................................................... 19. 4.2. Instancia generada y resultados ............................................................................ 20. 4.3. Implementación de Heurísticas ............................................................................. 22. 4.4. Instancia a resolver ................................................................................................ 23. 4.5. Resultados .............................................................................................................. 23. 4.5.1. Heurística Constructiva 1................................................................................ 25. 4.5.2. Heurística Constructiva 2................................................................................ 27. 4.5.3. Comparación de Heurísticas ........................................................................... 30. 4.5.4. Mejores soluciones contra estado actual del colegio .................................... 31. 5. CONCLUSIONES............................................................................................................. 32. 6. AGRADECIMIENTOS ...................................................................................................... 34. 7. BIBLIOGRAFÍA ............................................................................................................... 34. 8. ANEXOS ......................................................................................................................... 35 8.1. Aplicación RuteoEscolar ......................................................................................... 35. 8.2. Diagrama UML ....................................................................................................... 37. 2.

(3) Índice de Figuras. Figura 1 - Funcionamiento Heurística Constructiva 2 .......................................................... 15 Figura 2 - Instancia Resuelta ................................................................................................. 20 Figura 3 - Comparación funciones objetivo Xpress-Mosel ................................................... 21 Figura 4 - Tiempos de ejecución instancia Xpress-Mosel ..................................................... 22 Figura 5 - DMAX real vs DMAX obtenido.............................................................................. 24 Figura 6 - Desempeño HC1 ................................................................................................... 25 Figura 7 - Desempeño HC1 con procedimientos de refinamiento ....................................... 26 Figura 8 - Comparación procedimientos de refinamiento HC1 ........................................... 26 Figura 9 - Sensibilidad decremento de rutas y decremento de costos totales HC1 ............ 27 Figura 10 - Desempeño de HC2 ............................................................................................ 28 Figura 11 - Funcionamiento HC2 sobre instancia construída............................................... 28 Figura 12 - Desempeño HC2 con procedimientos de refinamiento ..................................... 29 Figura 13 - Comparación procedimientos de refinamiento HC1 ......................................... 29 Figura 14 - Comparaciòn HC1 con HC2................................................................................. 30 Figura 15 - Comparación tiempos de ejecución y procedimientos de refinamiento ........... 31 Figura 16 - Manejador de Soluciones ................................................................................... 36 Figura 17 - Visualizador de Rutas ......................................................................................... 37 Figura 18 - Diagrama UML .................................................................................................... 38. Tabla 1 - Especificaciones equipo utilizado .......................................................................... 20 Tabla 2 - Información instancia construida .......................................................................... 21 Tabla 3 - Desviación y coeficiente de variabilidad de las heurísticas ................................... 24 Tabla 4 - Comparación heurística contra situación del Colegio ........................................... 31. Pseudocódigo 1 –Heurística Constructiva 1 ......................................................................... 11 Pseudocódigo 2- Heurística Constructiva 2 .......................................................................... 14 Pseudocódigo 3 - Procedimiento de Intercambio SWAP .................................................... 16 Pseudocódigo 4 – Procedimiento de Inserción INSERT........................................................ 18 3.

(4) 1 DESCRIPCIÓN DEL PROBLEMA (SITUACIÓN ACTUAL) El Proyecto TransEscol1 propone dentro de sus objetivos el desarrollo de herramientas de programación que contribuyan a una mejor planeación de las rutas escolares. Este proyecto de grado, hace un primer acercamiento al desarrollo de estas herramientas. Actualmente, el Ministerio de Transporte2, con respecto al transporte escolar, regula las características del automotor y las condiciones y requisitos para la prestación del servicio. Con respecto a las características, se regulan los distintivos especiales de los vehículos de transporte escolar, la capacidad transportadora, los dispositivos de control de velocidad y la edad de los automotores. Por otro lado, con respecto a las condiciones y los requisitos, se regula la habilitación de las empresas de transporte escolar, los permisos a vehículos particulares, la tarjeta de operación y las modalidades de contratación.. Es importante resaltar que hay un gran número de regulaciones que aun no se tienen en cuenta con respecto a las condiciones de operación. Entre estas, resulta importante mencionar aquellas que influyen en el bienestar de los escolares, tales como el tiempo máximo de permanencia de los niños en el automotor, las distancias recorridas y el número máximo de paradas por ruta.. Por este motivo, la planeación de rutas debe estar enfocada en el bienestar de los escolares, disminuyendo el tiempo máximo que pasan los niños en las rutas escolares y las distancias totales recorridas. Claramente, este objetivo podría alcanzarse aumentando el número de rutas que asisten a los estudiantes, pero esta no es una opción económicamente viable, ya que como parte de los intereses del Ministerio de Transporte y las organizaciones que prestan el servicio de transporte escolar está la reducción de costos, objetivo que solo se puede alcanzar disminuyendo el número de rutas totales en operación.. En este punto, es evidente que el problema de planeación de rutas tiene múltiples objetivos: la reducción de costos de operación, disminuyendo el número total de rutas y las distancias totales de recorrido, y el aumento del bienestar de los estudiantes, por medio de la disminución del tiempo máximo que pasan los niños en el automotor. Este proyecto de grado, propone una serie. 1 2. Proyecto TransEscol. Universidad de los Andes 2010. A cargo de Ciro Amaya y Nubia Velasco. Ministerio de Transporte. http://www.mintransporte.gov.co/portal/page/portal/mintransporte. 4.

(5) de herramientas basadas en heurísticas en el que se trabaja conjuntamente en ambos objetivos, en particular, se toma como ejemplo el Colegio Aníbal Fernández de Soto ubicado en la localidad de SUBA en la ciudad de Bogotá.. Actualmente, el Centro de Administración Educativa Local (CADEL) de SUBA no maneja herramientas suficientemente robustas para hacer una planeación de rutas adecuada. El Instituto para la protección de la niñez y la juventud (IDIPRON) asigna un número de rutas fijo para cada colegio, teniendo en cuenta el número de estudiantes que requieren del servicio escolar (deben pertenecer a cursos inferiores al sexto grado de bachillerato), supliendo solo con un número de buses justo para atender a todos los estudiantes, sin importar su ubicación. Luego, es responsabilidad del CADEL hacer la planeación de rutas, contando nada más con un sistema de información poco consistente (los datos son diferentes a nivel local y a nivel remoto) y una serie de paraderos asignados a “ojo”, que usualmente hacen referencia a puntos relativos que solo son de conocimiento de las personas que viven en el barrio (puntos cercanos a restaurantes o parques conocidos).. Por este motivo, la planeación de rutas no se hace de forma global, sino que a medida que nuevos estudiantes requieren del servicio, se les asigna un paradero de las rutas ya existentes, haciendo que el desempeño de las rutas sea pobre, implicando en la mayoría de los casos, rutas largas y poco eficientes. Adicionalmente, esta asignación de paraderos relativos a los barrios, hace difícil el trabajo de referenciar correctamente los paraderos en un sistema de información, y más complicado aún, referenciarlos en un sistema de información geográfica. En este caso, tratar de incorporar herramientas automatizadas para la planeación de rutas no es viable, hasta que no se definan estándares que permitan un acople correcto de la información.. Dadas las necesidades actuales del CADEL de SUBA, este proyecto de grado no sólo propone herramientas para la construcción de rutas óptimas dada la información del sistema escolar, sino que también construye una aplicación de fácil adaptación a cualquier sistema actual, con una serie de características particulares.. Entre las características fundamentales que tiene la aplicación, sobresalen dos atributos de calidad: eficiencia y facilidad de uso. La eficiencia se refleja en algoritmos que hacen la planeación. 5.

(6) de rutas en tiempos relativamente bajos, permitiéndole al usuario correrlo en poco tiempo, de modo que a medida que se vayan incluyendo nuevos estudiantes, la planeación de ruta arroje resultados rápidos y oportunos. En cuanto a la facilidad de uso, la aplicación se construyó en lenguaje de programación Java, permitiendo una rápida instalación independiente del sistema operativo. Además, la forma de integrar la información es sencilla y el despliegue de las rutas sobre mapas reales de la ciudad hace sencilla la visualización global y local de las rutas que deben seguirse.. De aquí en adelante el proyecto de grado se dividirá en cuatro grandes partes. Primero, se hará la definición del problema, donde se presentará la formulación matemática del problema a solucionar, teniendo en cuenta los objetivos descritos. Luego, se explicarán los métodos de solución propuestos, en particular, se describirá una serie de heurísticas para solucionar instancias de gran tamaño, como lo es el caso del Colegio Aníbal Fernández de Soto. Después, se explicaran los resultados, detallando la implementación de la formulación matemática, la construcción de la aplicación que soporta las heurísticas diseñadas e implementadas. Para verificar y validar los métodos de solución propuestos, se hará un análisis de resultados para la instancia particular del Colegio Aníbal Fernández de Soto, haciendo énfasis en la eficiencia de las heurísticas, comparándolas entre ellas y con la planeación de rutas actual del Colegio. Por último, se tomarán conclusiones con respecto a la calidad de las soluciones propuestas, su posible adaptación en el Colegio y la posible adaptación de la aplicación en situaciones reales.. 2. DEFINICIÓN DEL PROBLEMA. El problema de ruteo escolar se divide en tres grandes sub-problemas: la preparación adecuada de la información, la asignación de estudiantes a paraderos y la planificación eficiente de rutas. Este proyecto se encarga de solucionar el tercero, definiendo un grupo de rutas que atienden a todos los estudiantes de un colegio particular para finalmente llevarlos al Colegio. A pesar que el enfoque principal es la planificación eficiente de rutas, también se aborda la preparación adecuada de la información, definiendo correctamente los estudiantes, los posibles paraderos y la matriz de origen/destino entre estos y el colegio.. Con respecto al problema de asignación de estudiantes a paraderos, aunque este no se trata en este proyecto, el modelaje construido permite una alta flexibilidad, teniendo conjuntos de. 6.

(7) paraderos potenciales, y no paraderos con demandas fijas, esto implica que un estudiante puede asistir a más de un paradero.. 2.1 Formulación Matemática (Modelaje) La formulación matemática del problema de planificación de rutas presentada a continuación tiene dos funciones objetivo: la primera, minimizar la distancia total recorrida por las rutas, la segunda, minimizar la distancia máxima que pasa un estudiante en la ruta.. Tal como se había mencionado, existe otro objetivo particular del problema y es minimizar el número total de rutas a utilizar. Para cumplir con este objetivo, se variará el número total de rutas del modelo, de modo que para números diferentes en el total de rutas, los valores de la función objetivo serán diferentes.. 2.1.1 Supuestos 1. Cada parada la visita un único bus, es decir, no es posible que en una parada hayan más estudiantes que la capacidad de un bus. 2. Capacidad homogénea para los buses. 3. Todos los estudiantes ocupan un único puesto que puede ser cualquiera. 4. Todos los buses salen de una parada inicial (que puede ser diferente para cada uno) y llegan a un mismo colegio (no es un problema multi-colegio).. 2.1.2 Conjuntos 1. ࣪ǣ. Conjunto de paradas potenciales, indexado con i.. 3. ࣜ:. Conjunto de buses, indexado con k. ȁࣜȁ ൌ ܰ. 1. ܿ௜௝ :. Costo de atravesar el arco que va de i a j.. 2. C:. Capacidad de los buses.. 3. ܵ௟௜ :. Parámetro binario que indica si el estudiante l puede ir a la parada i.. 2. ࣟ:. Conjunto de estudiantes, indexado con l.. 2.1.3 Parámetros. 4. ‫ܫ‬௞ :. Parada inicial (Depósito del bus) del bus k.. 5. ‫ܨ‬:. Parada final, es decir, el colegio.. 1. ‫ݔ‬௜௝௞ :. Número de veces que atraviesa el bus k el arco i al arco j.. 2.1.4 Variables de Decisión. 7.

(8) 2. ‫ݕ‬௜௞ :. Variable binaria que indica si el bus k se detiene en la parada i.. 4. ‫ݓ‬:. Variable auxiliar que representa el máximo de las distancias totales de las rutas. 3. ‫ݖ‬௜௟௞ :. Variable binaria que indica si el estudiante l es recogido por el bus k en la parada i.. desde que recoge al primer estudiante hasta que lo deja (solo aplica para la función objetivo de minimizar la máxima distancia que pasa un estudiante en una ruta).. 2.1.5 Función Objetivo ‹ ෍ ෍ ܿ௜௝ ෍ ‫ݔ‬௜௝௞ ሺͳሻ ௜‫א‬௉ ௝‫א‬௉. ௞‫א‬஻. ‹ ‫ݓ‬ሺʹሻ. 2.1.6 Restricciones. ‫ݕ‬ூೖ ௞ ൌ ͳǡ‫ܤ א ݇׊‬ሺ͵ሻ ‫ݕ‬ி௞ ൌ ͳǡ‫ܤ א ݇׊‬ሺͶሻ. ෍ ‫ݔ‬௜௝௞ െ ෍ ‫ݔ‬௝௜௞ ൌ Ͳǡ‫ܲ א ݅׊‬ǡ ‫ܤ א ݇׊‬ሺͷሻ ௝‫א‬௉. ௝‫א‬௉. ෍ ෍ ‫ݔ‬௜௝௞ ൑ ෍ ‫ݕ‬௜௞ െ ͳǡ‫ܤ א ݇׊‬ǡ‫ ר ܲ ك ܣܵ׊‬ȁܵ‫ܣ‬ȁ ൒ ʹሺ͸ሻ. ௜‫א‬ௌ஺ ௝‫א‬ௌ஺. ௜‫א‬ௌ஺. ෍ ‫ݕ‬௜௞ ൑ ͳǡ‫ ܲ א ݅׊‬െ ሼ݂ሽሺ͹ሻ. ௞‫א‬஻. ෍ ෍ ‫ݖ‬௜௟௞ ൑ ‫ܥ‬ǡ‫ܤ א ݇׊‬ሺͺሻ ௜‫א‬௉ ௟‫א‬ா. ෍ ‫ݖ‬௜௟௞ ൑ ‫ݏ‬௟௜ ǡ‫ܧ א ݈׊‬ǡ ‫ܲ א ݅׊‬ሺͻሻ. ௞‫א‬஻. ‫ݖ‬௜௟௞ ൑ ‫ݕ‬௜௞ ǡ‫ܲ א ݅׊‬ǡ ‫ܧ א ݈׊‬ǡ ‫ܤ א ݇׊‬ሺͳͲሻ. 8.

(9) ෍ ෍ ‫ݖ‬௜௟௞ ൌ ͳǡ‫ܧ א ݈׊‬ሺͳͳሻ ௜‫א‬௉ ௞‫א‬஻. ෍ ‫ݔ‬௜௝௞ ൌ ‫ݕ‬௜௞ ǡ‫ ܲ א ݅׊‬ȁ௜ஷ௝ ǡ ‫ܤ א ݇׊‬ሺͳʹሻ ௝‫א‬௉. ෍ ‫ݔ‬௝௜௞ ൌ ‫ݕ‬௜௞ ǡ‫ܲ א ݅׊‬ȁ௜ஷ௝ ǡ ‫ܤ א ݇׊‬ሺͳ͵ሻ ௝‫א‬௉. ‫ݔ‬ிூೖ ௞ ൌ ͳǡ‫ܤ א ݇׊‬ሺͳͶሻ ‫ ݓ‬൒ . ෍. ෍ ‫ݔ‬௜௝௞ ‫ܿ כ‬௜௝ ǡ‫ܤ א ݇׊‬ሺͳͷሻ. ௜‫א‬௉ିሼூೖ ǡிሽ ௝‫א‬௉. ‫ݔ‬௜௝௞ ‫ א‬ሼͲǡͳሽǡ‫݅׊‬ǡ ݆ ‫ܲ א‬ȁ௜ஷ௝ ǡ ‫ܤ א ݇׊‬ሺͳ͸ሻ ‫ݕ‬௜௞ ‫ א‬ሼͲǡͳሽǡ‫ܲ א ݅׊‬ǡ ‫ܤ א ݇׊‬ሺͳ͹ሻ ‫ݖ‬௜௟௞ ‫ א‬ሼͲǡͳሽǡ‫ܲ א ݅׊‬ǡ ‫ܧ א ݈׊‬ǡ ‫ܤ א ݇׊‬ሺͳͺሻ La función objetivo (1) minimiza la distancia total recorrida por las rutas, mientras que la función objetivo (2) minimiza la máxima distancia que pasa un estudiante en la ruta escolar. La restricción (3) asegura que cada uno de los buses sale de una estación inicial (que puede ser diferente para cada uno de los buses), equivalentemente, la restricción (4) asegura que cada uno de los buses llega al colegio como su parada final. La restricción de flujo (5) asegura que todos los arcos que entran salen. La restricción de corte (6) evita la formación de sub-ciclos. La restricción (7) permite que todas las paradas sean visitadas a lo sumo una sola vez (menos el punto de salida). La restricción (8) indica que ningún bus puede recoger más estudiantes que su capacidad máxima. La restricción (9) implica que un estudiante solo puede ser recogido en una parada si el estudiante puede ir a esa parada. La restricción (10) asegura que un bus solo puede recoger a un estudiante en una parada si el bus se detiene en esa parada. La restricción (11) garantiza que todos los estudiantes son recogidos. Las restricciones (12) y (13) relacionan las variables de decisión, asegurando que un bus solo puede detenerse en una parada si hay un arco de salida o un arco de. 9.

(10) entrada, dependiendo de la restricción. La restricción (14) asegura que después que una ruta llegue al colegio, esta debe retornar a la parada inicial. En las instancias reales esto no sucede, pero se hace con el objetivo de fijar como último destino el colegio generando un único ciclo. La restricción (15) se encarga de asignarle a la variable auxiliar el mayor de todos los costos de las rutas (solo aplica para la función objetivo que propone minimizar la distancia máxima que pasa un estudiante en la ruta). Las restricciones (16), (17) y (18) definen las variables binarias.. 2.2 Ruteo de transporte escolar como problema NP-hard El problema de ruteo de transporte escolar pertenece al conjunto de problemas conocidos en optimización como VRP (Vehicle Routing Problem). Este problema puede definirse como el diseño de rutas óptimas para una flota de vehículos que parten de uno o más depósitos o almacenes para satisfacer la demanda de varios clientes dispersos geográficamente [ref]. En el caso del transporte escolar, existe una serie de paraderos, con unas demandas dadas (número de estudiantes), que deben ser entregadas al colegio.. VRP pertenece a la clase de problemas NP-hard, por este motivo, solo pueden ser resueltos por medio de una búsqueda exhaustiva, que en términos de complejidad computacional, requieren de algoritmos con complejidad exponencial, e.g.. ܱሺʹ௡ ሻ͵. Algoritmos de este estilo, resultan. altamente costosos a nivel de procesamiento, en general, a medida que el número de paraderos aumenta, también lo hace exponencialmente el tiempo para encontrar una solución óptima.. En este punto, existen dos opciones para abordar adecuadamente el problema de ruteo escolar. La primera, es resolver pequeñas instancias usando algoritmos de búsqueda exhaustiva encontrando así una solución óptima. La segunda, es resolver el problema aproximadamente, usando algoritmos en tiempo polinomial, conocidos como heurísticas.. Con respecto a la primera opción, se usa Xpress-Mosel para pequeñas instancias, con el fin de validar y verificar la formulación matemática construida. Pero esto no es de mucho uso en instancias reales, tal como la del Colegio Aníbal Fernández de Soto, ya que el tamaño del problema. 3. Aún no se han encontrado algoritmos que resuelvan problemas NP-hard en tiempo polinomial, por consiguiente, se dice que solo algoritmos exponenciales pueden solucionar estos problemas de forma óptima, ya que aunque se han realizado arduos trabajos al respecto, no se ha logrado probar que esta sea la única opción. [ref].. 10.

(11) (número de paraderos superior a 100) implica semanas de procesamiento para encontrar una solución óptima.. La segunda opción resulta adecuada, ya que en instancias reales, una solución aproximada con un tiempo de solución corto presenta mayores beneficios que una solución exacta con un tiempo de solución extremadamente largo4.. Se proponen dos heurísticas con principios diferentes, de modo que se puedan comparar factores como tiempo/calidad. Adicional a las heurísticas, se aplican procesos de intercambio para mejorar las soluciones obtenidas.. 3 MÉTODOS DE SOLUCIÓN PROPUESTOS 3.1 Heurística Constructiva I La idea principal radica en construir una serie de agrupamientos, donde cada uno tiene asociado una serie de paraderos y la ruta entre estos paraderos. Vale la pena aclarar que ninguno de los agrupamientos violará las restricciones del modelo, adicionalmente, las restricciones servirán como criterio para decidir a qué agrupamiento pertenecerá el próximo paradero.. En general, se adicionará una restricción que es la distancia máxima de la ruta, denominado, DMAX. Donde DMAX es una distancia definida como constante. La idea es probar con diferentes valores, de modo que se minimice el número de rutas necesarias dependiendo de la distancia máxima del recorrido permitida.. 1. 2. 3. 4. 5. 6.. procedimiento heuristicaConstructiva1 (dmax, intentosPares, P) rutas ß{ } listaCandidatas ß { } rutasTemporales ß { } rutas ß definirRutasIniciales(P) mientras (existenPosiblesUniones( )) hacer. 4. Sí el número de paraderos es mayor o igual a 54, el tiempo que tardaría un computador moderno (ʹଷ଴ ‫ݏ݁݊݋݅ܿܽݎ݁݌݋‬Ȁ‫݋݀݊ݑ݃݁ݏ‬ሻ es superior a los 6 meses [ref http://www.ics.uci.edu/~eppstein/265/exponential.html].. 11.

(12) 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.. listaCandidatas ß construccionListasCandidatas(dmax, rutas) intentos ß minimo(#listaCandidatas, intentosPares) para i ß 0 hasta intentos hacer parRutas ß aleatorio(listaCandidatas) si (generaRuta(parRutas)) entonces listaCandidatas ß listaCandidatas – {parRutas} rutas ß rutas – {ruta1(parRutas), ruta2(parRutas)} rutas ß rutas + unionRutas(parRutas) fin si fin para fin mientras retornar rutas fin procedimiento Pseudocódigo 1 – Heurística Constructiva 1. Pasos: 1. Definición de agrupamientos iniciales (línea 5): Los agrupamientos iniciales serán igual al número de paradas, y cada uno tendrá asociado una parada: ܴ௜ ǣ Agrupamiento i o Ruta i ܴ௜ ൌ ሼ݅ሽ‫ܲ א ݅׊‬. 2. Construcción de lista de pares de rutas candidatas (línea 7): Se construye una lista ordenada con los mejores pares de rutas posibles ܴ௜ ǡ ܴ௝ . Donde el mejor. par de rutas es aquel con el menor tiempo de viaje entre las dos rutas. La lista ordenada tendrá en la primera posición el par de rutas con el menor tiempo de viaje, mientras que en la última posición tendrá el par de rutas con el mayor tiempo de viaje.. El tiempo de viaje ‫ݒݐ‬ሺܴ௜ ǡ ܴ௝ ሻ entre las dos rutas se define de la siguiente forma: Si ͓ܴ௜ ൌ ͳ ‫ܴ͓ ר‬௝ ൌ ͳ Entonces. De lo contrario. ‫ݒݐ‬ሺܴ௜ ǡ ܴ௝ ሻ ൌ ቀ ୧ ሺͳሻǡ ܴ௝ ሺͳሻቁ. 12.

(13) ‫ݒݐ‬ሺܴ௜ ǡ ܴ݆ሻ ൌ ‹ ቀܿ൫ܴ௜ ሺ݊௜ ሻǡ ܴ௝ ሺͳሻ൯ǡ ܿ൫ܴ௝ ሺ݊௝ ሻǡ ܴ௜ ሺͳ൯ቁ Donde ܴ௞ ሺͳሻ es el primer paradero de la ruta k, ܴ௞ ሺ݊௞ ሻ es el último paradero de la ruta k y. ܿ൫ܴ௜ ǡ ܴ௝ ൯ el costo en tiempo de ir de la ruta i a la ruta j.. Si la lista de pares de rutas candidatas queda vacía (línea 6), es decir, no hay ninguna posible unión entre rutas, se sigue con el paso número 6.. 3. Elección aleatoria de par de rutas para la generación de una nueva ruta (líneas 9-16) De todos los pares de rutas, se elige uno de forma aleatoria, dándole mayor ponderación a los pares de rutas con menor tiempo de viaje. En general, la probabilidad de elegir un par de rutas de la lista ordenada es (donde n es el número total de rutas):. ܲ൫‫ݎܽ݌‬௥௨௧௔௦ሺ௞ሻ ൯ ൌ. ሺ݊ ൅ ͳሻ െ ݇ σ௡௜ୀଵ ݅. Vale la pena aclarar que solo se contemplan dos posibles rutas que se pueden formar del par de rutas (debido al criterio de tiempo de viaje tv): ܴଵ ൌ ൛ܴ௜ ሺͳሻǡ ǥ ǡ ܴ௜ ሺ݊௜ ሻǡ ܴ௝ ሺͳሻǡ ǥ ǡ ܴ௝ ሺ݊௝ ሻൟ. ܴ ଶ ൌ ൛ܴ௝ ሺͳሻǡ ǥ ǡ ܴ௝ ൫݊௝ ൯ǡ ܴ௜ ሺͳሻǡ ǥ ǡ ܴ௜ ሺ݊௜ ሻൟ Se elige la menor de las dos, teniendo en cuenta también el tiempo de la ruta al colegio. ܴ ௙ ൌ ‹ሾܿሺܴଵ ሻ ൅ ܿሺܴଵ ሺ݊ଵ ሻǡ ܿ‫݋݈݅݃݁݋‬ሻǡܿሺܴ ଶ ሻ ൅ ܿሺܴ ଶ ሺ݊ଶ ሻǡ ܿ‫݋݈݅݃݁݋‬ሻሿ Si la ruta resultado no viola las siguientes restricciones, se adiciona a una lista temporal:. I. II.. ܿ൫ܴ ௙ ൯ ൅ ܿሺܴ ௙ ൫݊௙ ൯ǡ ܿ‫݋݈݅݃݁݋‬ሻ ൏ ‫ܺܣܯܦ‬. ܿܽ‫ ݀ܽ݀݅ܿܽ݌‬൐ ‫ܿ݁ݎ‬ሺܴ ௙ ሻ. Donde ‫ܿ݁ݎ‬൫ܴ ௙ ൯ el número de pasajeros que ha recogido la ruta f hasta el momento.. 13.

(14) 4. Generación de un número de rutas en la lista temporal (líneas 9-16) Se repite el paso 3 un número de veces fijo a lo sumo llamado IntentosPares (inferior al número de pares en la lista de candidatos y recibido como parámetro), generando así, una nueva lista de rutas temporales. Luego de iterar el paso 3 el número de veces IntentosPares,. 5. Repetición del algoritmo hasta no encontrar más factibilidad (línea 6) Como no hay más pares de rutas que puedan unirse, el algoritmo se da por terminado. Se retorna el conjunto de rutas (línea 18) que se encuentra en la lista de rutas originales.. 3.2 Heurística Constructiva II La idea principal de esta heurística radica en generar una recta que rota alrededor del colegio, buscando paraderos que se intercepten con esta generando así rutas. Una vez se violan las restricciones de distancia DMAX y/o de capacidad, se genera una nueva ruta. Se continúa de este modo, hasta que la recta de un giro de 360 grados, encontrándose nuevamente con el paradero inicial.. procedimiento heuristicaConstructiva2(dmax, P, capacidad) 2. paraderosDisponiblesßP 3. rutasß { } 4. po ß seleccionAleatoria(paraderosDisponibles) 5. pn ß po 6. ro ß {po} 7. ra ß ro 8. recta ß rectaEntre(po, darColegio( )) 9. paraderosDisponiblesß paraderosDisponibles – {po} 10. giro ß direccionAleatoria( ) 11. mientras (#paraderosDisponibles > 1) hacer 12. pn ß girarHastaParadero(po, recta) 13. recta ß rectaEntre(pn, darColegio( )) 14. raß ra + {pn} 15. si ¬( recogidos(ra) < capacidad Y costos(ra) < dmax ) entonces 16. rutas ß rutas + {ra} 17. ra ß {pn} 18. fin si 19. paraderosDisponiblesßparaderosDisponibles – {pn}. 1.. 14.

(15) 20. 21. 22. 23.. fin mientras rutas ß rutas + {ra] retornar rutas fin procedimiento Pseudocódigo 2 – Heurística Constructiva 2. Figura 1 - Funcionamiento Heurística Constructiva 2. 1. Elección de paradero aleatorio (línea 4) De todos los paraderos existentes, se elige uno de forma aleatoria que se llamará ܲ௢ . Este paradero se adiciona a la ruta inicial ܴ௢ y se define una recta que empieza en el colegio y pasa. por el paradero ܲ௢ (línea 8).. ܴ݁ܿ‫ܽݐ‬ሺܿ‫݋݈݅݃݁݋‬ǡ ܲ௢ ሻ Se define la ruta ܴ௢ como la ruta actual ܴ௔ (línea 7). 2. Elección de dirección de giro de la recta (línea 10) Aleatoriamente, con probabilidades iguales, se elige si la recta girará hacia la derecha o hacia la izquierda. Una vez se define este giro, no cambiará en todo el procedimiento.. 3. Giro de la recta (línea 12). ‫ ݋ݎ݅ܩ‬ൌ ‫ܽ݀ݎ݁݅ݑݍݖܫ ש ݄ܽܿ݁ݎ݁ܦ‬. La recta definida empieza a girar con la dirección definida hasta encontrarse con un nuevo paradero ܲ௡ .. 15.

(16) 4. Adición del nuevo paradero (línea 15-18) En este caso, el nuevo paradero ܲ௡ se intenta adicionar a la ruta actual ܴ௔ , evaluando las siguientes restricciones.. I. II.. ܿሺܴ௔ ሻ ൅ ܿሺܴ௔ ൫݊௙ ൯ǡ ܿ‫݋݈݅݃݁݋‬ሻ ൏ ‫ܺܣܯܦ‬ ܿܽ‫ ݀ܽ݀݅ܿܽ݌‬൐ ‫ܿ݁ݎ‬ሺܴ௔ ሻ. En caso que no se violen las restricciones, el nuevo paradero ܲ௡ es adicionado a la ruta actual. ܴ௔ , de lo contrario, se genera una nueva ruta ܴ௡ y el nuevo paradero ܲ௡ se adiciona a esta nueva ruta.. Se adiciona la ruta actual ܴ௔ al conjunto de rutas pertenecientes a la solución. Se define la. nueva ruta ܴ௡ como la ruta actual ܴ௔ . Ahora, se repite el paso 3. 5. Terminación de la heurística (línea 11). Cuando ya no hay más paraderos disponibles, se acaba la heurística y se retorna la lista de rutas construidas (línea 22).. 3.3 Procedimientos de Refinamiento Con el fin de refinar las soluciones obtenidas mediante las dos heurísticas construidas, se definieron dos procedimientos de refinamiento. Primero se encuentra el procedimiento de intercambio SWAP, que trabaja a nivel de ruta, intercambiando los paraderos en busca de un óptimo local. Luego, está el procedimiento de inserción INSERT, que busca cambios entre rutas generando mejoras a nivel global.. 3.3.1 Procedimiento de Intercambio (SWAP) Este procedimiento tiene como objetivo encontrar el óptimo local de cada ruta ܴ௞ en una solución encontrada, minimizando el costo total de recorrido. Los pasos a seguir son los siguientes:. 1. 2. 3. 4.. procedimiento aplicarSwap(solucion) rutas ß darRutas(solucion) para iß 0 hasta #rutas hacer ruta1 ß darRuta(i,rutas) 16.

(17) 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.. paraderos ß darParaderos(ruta1) para jß 0 hasta #paraderos hacer paraderoJ ß darParadero(j, paraderos) para k ß j+1 hasta #paraderos hacer paraderoK ß darParadero(k, paraderos) ruta2 ß intercambiarParaderos(j, k, ruta) si ( costos(ruta2) < costos (ruta1)) entonces ruta1ßruta2 fin si fin para fin para fin para solucion ß asignarRutas(solucion) retornar solucion fin procedimiento Pseudocódigo 3 – Procedimiento de Intercambio (SWAP). 1. Se eligen dos paradas de forma tal que (líneas 6-15):. ݅ǡ ݆ȁ݅ ൌ ͳǡ ǥ ǡ ݊௞ െ ͳǡ݆ ൌ ݅ ൅ ͳǡ ǥ ǡ ݊௞ 2. Se intenta hacer un intercambio en la ruta entre las paradas i y j de modo que se reduzca el ܿሺܴ௞ ሻ, si el intercambio de las posiciones genera una reducción en el costo, el intercambio se. realiza (líneas 9-12).. 3. Se realiza el paso 1 para todas las paradas i y j posibles, es decir, cuando ya no hay más intercambios que reduzcan el costo de la ruta. Este mismo algoritmo se lleva acabo para cada una de las rutas de la solución (línea 3).. 3.3.2 Procedimiento de Inserción (INSERT) Este procedimiento contempla las diferentes rutas que hay en una misma solución e intenta intercambiar paraderos entre ellas de modo que se disminuyan los costos totales de la solución. El procedimiento consta de los siguientes pasos:. 17.

(18) procedimiento aplicarInsert(solucion, P, paraderosCercanos) 2. rutas ß darRutas(solucion) 3. ruta ß rutaMasCostosa(rutas) 4. existeReduccion ß true 5. mientras (existeReduccion) hacer 6. decrementoMax ß 0 7. paradero ß mayorDecremento(ruta, decrementoMax) 8. paraderosCercanos ß calcularParaderosCercanos(ruta, paradero) 9. rutasPosibles ß { } 10. para i ß 0 hasta #paraderosCercanos hacer 11. paraderoEv ß darParadero(paraderosCercanos, i) 12. rutaEv ß buscarRuta(paraderoEvaluado) 13. rutaPosible ß rutaPosibleInsert(ruta, rutaEv , paraderoEv) 14. si ¬(esVacia(rutaPosible)) entonces 15. rutasPosiblesß rutasPosibles + {rutaPosible} 16. fin si 17. fin para 18. mejorRuta ß calcularMejorRuta(rutasPosibles, ruta) 19. si ¬(esVacia(mejorRuta)) entonces 20. rutasß rutas – {ruta} + {mejorRuta} 21. si no entonces 22. existeReduccion ß false 23. fin si 24. fin mientras 25. retornar rutas 26. fin procedimiento. 1.. Pseudocódigo 4 – Procedimiento de Inserción (INSERT). 1. Elección de la ruta con mayor costo (línea 3). Se elige la ruta i como aquella que tiene el mayor costo de recorrido total:. ݅ȁܿሺܴ௜ ሻ ൌ ݉ܽ‫ݔ‬ǡ. ‫ܴ׊‬௜ ‫ݏܽݐݑܴ א‬. En caso que el costo de recorrido total máximo sea igual para más de una ruta, se elige una de forma aleatoria.. 2. Elección de paradero que causa el mayor decremento (línea 7). 18.

(19) Para la ruta elegida, se encuentra un paradero j tal que removerlo de la ruta causa el mayor decremento en el costo total de recorrido.. ݆ȁܿሺܴ௜ െ ݆ሻ ൏ ܿሺܴ௜ െ ݇ሻǡ‫݅ ് ݇׊‬ǡ. ‫ܴ א ݇׊‬௜ . 3. Elección de paraderos cercanos al paradero j (línea 8) Se genera una lista de paraderos cercanos, la cual se llamara ParaderosCercanos, y tendrá un tamaño que se recibirá como parámetro (usualmente un 20% del total de paraderos). Para cada una de las paradas z que pertenecen a esta lista, se evaluará insertar el paradero j en la ruta de z antes y después de z (línea 10-17). Teniendo en cuenta las siguientes restricciones:. i. ii.. ݅ ‫ܽݐݑܴ ב‬ሺ‫ݖ‬ሻ. ܿ൫ܴ௉೥ ൅ ݆൯ ൅ ܿሺܴ௜ െ ݆ሻ ൏ ܿ൫ܴ௉೥ ൯ ൅ ܿሺܴ௜ ሻ. iii.. ܿܽ‫ ݀ܽ݀݅ܿܽ݌‬൐ ‫ܿ݁ݎ‬ሺܴ௜ ൅ ‫ݖ‬ሻ. De todos los casos en donde las restricciones se cumplen, es decir, donde remover el paradero de su ruta inicial y adicionarlo a la nueva ruta genera un menor costo total, se elegirá aquel que ocasione el mayor decremento en los costos totales de la solución (línea 18-23).. 4. Repetición de los pasos anteriores (línea 5) Se realiza el paso 1 nuevamente hasta que no se encuentre una inserción que ocasione una reducción de los costos totales de la solución.. 4 RESULTADOS 4.1 Implementación en Xpress-Mosel Con el fin de validar y verificar la formulación matemática construida, ésta se implementó en Xpress-Mosel por medio de Xpress-IVE con una instancia reducida del problema. especificaciones del equipo utilizado se aclaran en la tabla a continuación:. 19. Las.

(20) Tabla 1 - Especificaciones equipo utilizado. Actualmente Xpress-IVE no permite hacer búsquedas exhaustivas sobre conjuntos, de modo que no se puede incorporar fácilmente la restricción de corte para evitar sub-ciclos5. Para solucionar este inconveniente, se generó el procedimiento romper_subtours, que busca sub-ciclos en la solución, adicionándolos como nuevas restricciones del problema hasta no encontrarlos más.. 4.2 Instancia generada y resultados La figura a continuación permite visualizar los paraderos de la instancia y la solución obtenida para el caso particular de 6 rutas y la función objetivo de minimizar la máxima distancia que pasa un estudiante en la ruta.. Figura 2 - Instancia Resuelta. 5. La restricción de corte implica revisar todos los sub-conjuntos del conjunto de paraderos (también conocido como el algoritmo “power-set”, altamente costoso a nivel de complejidad computacional) [ref].. 20.

(21) Paradero. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Capacidad. 4. 3. 6. 5. 7. 8. 4. 7. 8. 9. Capacidad Bus. 12 Tabla 2 - Información instancia construida. En este caso, se usó un máximo de 10 paraderos, con un número de estudiantes que oscila entre 3 y 9 estudiantes, sin sobre pasar la capacidad de 12 estudiantes del bus. Al detallar los resultados, es posible observar que se cumplen todas las restricciones, incluyendo la restricción de corte, ya que para cada solución generada con sub-ciclos, estos se adicionan como nueva restricciones y se vuelve a solucionar la instancia con tantas iteraciones como sea necesario.. Figura 3 - Comparación funciones objetivo Xpress-Mosel. Como era de esperarse, al resolver la instancia para las dos funciones objetivo, se encuentra que los costos totales son inferiores cuando se minimiza la distancia total. De forma equivalente, la máxima distancia que pasa un estudiante en la ruta es inferior cuando se minimiza el máximo tiempo de permanencia de un estudiante en el bus. Con respecto a la distancia promedio que pasa el estudiante que pasa más tiempo en la ruta, se encuentra que este valor es inferior cuando se minimiza la distancia total, indicando que al usar esta función objetivo hay un beneficio general de los estudiantes, castigando a unos pocos que tienen que durar un tiempo mucho mayor en la ruta escolar.. 21.

(22) Figura 4 - Tiempos de ejecución instancia Xpress-Mosel. Al comparar el tiempo de ejecución, es evidente que hay una gran diferencia entre ambas funciones objetivo. Xpress-Mosel toma un tiempo de 2.51 minutos por iteración al minimizar la máxima distancia, un valor 39 veces más grande que al minimizar la distancia total, que toma un tiempo de tan solo 3.85 segundos por iteración. En la instancia particular, se puede observar que nuevamente es más costoso computacionalmente minimizar la máxima distancia, requiriendo un total de 15 iteraciones, mientras que minimizar la distancia total requiere de 10 iteraciones. De todas formas, este dato no refleja información relevante, ya que el número de iteraciones es independiente de la función objetivo.. En conclusión, la formulación matemática está bien planteada, las funciones objetivos arrojan resultados esperados y nunca se viola alguna de las restricciones propuestas. Con respecto a la eficiencia computacional, es menos viable resolver instancias de tamaños razonables usando la función objetivo de minimizar la máxima distancia, ya que con tan solo 10 paraderos, el SIMPLEX usado por Xpress-Mosel tomó un tiempo total aproximado de 25 minutos.. 4.3 Implementación de Heurísticas Las heurísticas diseñadas se implementaron usando Java SE 6 bajo el ambiente de desarrollo NetBeans 6.9.1. Adicional a esto, para presentarle la información al usuario, se utilizaron las librerías de Java Swing para generar la interfaz gráfica y las librerías de JSwingX para presentar el mapa obtenido como un servicio externo de OpenStreetMaps. Para conocer en detalle el diagrama de clases UML diseñado e implementado, referirse al anexo correspondiente.. 22.

(23) 4.4 Instancia a resolver Para validar la funcionalidad y la calidad de las heurísticas construidas, se generó una instancia basada en la información del transporte escolar del Colegio Aníbal Fernández de Soto. La información obtenida por medio de la base de datos actual del proyecto TransEscol6, indican un total de 332 estudiantes, repartidos en un total de 13 rutas, recorriendo gran parte de la localidad de SUBA en Bogotá.. Dentro de la información de cada estudiante se encuentra disponible la dirección de residencia, permitiendo georeferenciar la ubicación de cada uno de los estudiantes para utilizarla como información de entrada en la aplicación construida. Se utilizó la herramienta Geocode Addresses de ArcMap 10.0 para encontrar la ubicación geográfica (latitud – longitud) de todos los estudiantes dadas las direcciones de residencia, construyendo una tabla con la información de los estudiantes y sus posiciones geográficas.. Debido a que la asignación de estudiantes a paraderos no es el objetivo de este proyecto de grado, en la instancia generada se resuelve un problema puerta a puerta, donde la ubicación de cada uno de los estudiantes es un paradero con un único estudiante a recoger.. 4.5 Resultados A continuación se describirán los resultados obtenidos de resolver la instancia construida con las heurísticas implementadas en la aplicación. En general, el procedimiento se basa en variar el intervalo de distancia máxima que puede permanecer un estudiante en la ruta (DMAX). Para cada valor DMAX del intervalo, se generan 60 soluciones, de modo que las estadísticas se forman como un promedio de todas las soluciones construidas, debido a los factores aleatorios que usan las heurísticas como parte de su algoritmo, consiguiendo en la mayoría de las ejecuciones resultados distintos.. 6. Base de datos proporcionada por la Secretaría de Educación. Datos de estudiantes en el 2009.. 23.

(24) HC1. ഥ ࢄ. 184.97. ࣌. 10.41. ഥ) CV(࣌Ȁࢄ. HC2. 453.19. 19.94. 4.39%. 5.63%. Tabla 3 - Desviación y coeficiente de variabilidad de las heurísticas. En la tabla anterior es posible observar que aunque las heurísticas manejan factores aleatorios, la desviación estándar entre resultados no es muy alta, adicionalmente, los coeficientes de variabilidad nunca superan el 6%, indicando que los datos no varían significativamente con respecto a la media.. Para decidir el intervalo adecuado del análisis de resultados, se corrieron ambas heurísticas con un DMAX que varía entre 9 KM (mínima máxima distancia posible, ya que el paradero más lejano se encuentra a esta distancia del plantel educativo) y 39 KM (valor que implica una permanencia máxima del estudiante de una hora y media7).. Figura 5 - DMAX real vs DMAX obtenido. Tal como se puede observar, a medida que aumenta el parámetro DMAX en las ejecuciones, también lo hace el valor de DMAX obtenido en las iteraciones. Aún así, la Heurística Constructiva 1 se estabiliza en un valor DMAX de 23.75, sin importar cuanto más aumente el parámetro. En este caso, resulta importante manejar un intervalo [9 – 39] para el análisis de resultados de la Heurística Constructiva 2, mientras que un intervalo de [9-23.75] es suficiente para la Heurística Constructiva 1.. 7. Usando un promedio de 24km/h, promedio obtenido para el transporte público en la ciudad de Bogotá según la Red Bogotá de la Universidad Nacional [ref].. 24.

(25) 4.5.1 Heurística Constructiva 1 En la Heurística Constructiva 1 los resultados obtenidos se comportan de la forma esperada. Entre mayor es el valor de DMAX, menores son los costos totales y menor es el número de rutas.. Figura 6 - Desempeño HC1. En particular, es posible observar que en el rango entre 9 km y 15 km tanto el costo total como el número de rutas presentan una disminución exponencial, de ahí en adelante la disminución prácticamente se detiene para el costo total, intuyendo que para valores DMAX superiores a 15 km no se obtiene una disminución en costos. Por otro lado, el número de rutas sigue disminuyendo en el rango de 15 km a 25 km, pero de forma logarítmica. Esta disminución exponencial permite afirmar que un aumento de 6 km en la distancia máxima, permite reducir en un poco más de 40 km los costos totales, y lo que resulta más relevante, reducir en 10 el número de rutas.. Una vez utilizados los procedimientos de refinamiento SWAP e INSERT, se obtuvieron mejoras en casi todos los valores del intervalo de DMAX.. 25.

(26) Figura 7 - Desempeño HC1 con procedimientos de refinamiento. Para casi todos los valores de DMAX, el procedimiento SWAP reduce considerablemente los costos totales, con un porcentaje mejorado total del 5.6%, superando al procedimiento INSERT en un 4.3%. De todas formas, al utilizar ambos procedimientos de forma conjunta, se obtuvo una mejora total sobre la heurística de 7.6%.. Figura 8 - Comparación procedimientos de refinamiento HC1. En este caso, es claro que los procedimientos mejoran la calidad de la heurística, disminuyendo los costos totales en un valor promedio cercano al 8%, teniendo en cuenta que para valores pequeños. 26.

(27) de DMAX, las mejoras son inferiores, mientras que para valores más grande de DMAX, las mejoras son más significativas.. Figura 9 - Sensibilidad decremento de rutas y decremento de costos totales HC1. Al observar como disminuye el número de rutas y los costos totales (con los procedimientos de refinamiento incluidos) a medida que aumenta el valor de DMAX, es posible concluir que para valores superiores a 14 km, no se presenta reducción de costos, pero sí reducción en el número total de rutas. En este caso, es necesario que se haga un balance de costo/beneficio entre un aumento de la distancia máxima que permanece un estudiante en la ruta con el número de rutas que se ahorra (en particular, se pueden hacer cuestionamientos del estilo: ¿vale la pena incrementar en 10 km el valor de DMAX para reducir el número de rutas en 2?).. 4.5.2 Heurística Constructiva 2 En la Heurística Constructiva 2 los resultados no se comportaron de la forma esperada, haciendo dudar fuertemente de la calidad de la heurística.. 27.

(28) Figura 10 - Desempeño de HC2. En particular, los costos disminuyen drásticamente en el intervalo de 9 a 11 km, luego, empiezan a aumentar de forma casi lineal. Una heurística con un buen desempeño en esta instancia debe reducir los costos a medida que aumenta el DMAX, ya que a mayores distancias máximas permitidas, las rutas pueden visitar más paraderos cercanos, sin necesidad de viajar al colegio. En este caso esto no sucede, ya que aunque el número de rutas si desciende cuando se aumenta el valor de DMAX, los costos totales aumentan significativamente.. Este extraño comportamiento no sucede debido a un mal diseño de la heurística, sino a su adaptación particular a la instancia generada.. Figura 11 - Funcionamiento HC2 sobre instancia construída. Como se puede ver, hay dos zonas específicas donde hay mayor densidad de paraderos (en este caso, estudiantes). En la figura de la derecha es posible observar el funcionamiento que desarrolla el algoritmo de la heurística (con un principio de barrido). Cuando hay dos o incluso más zonas definidas, el algoritmo de barrido hace viajes que claramente aumentan innecesariamente el costo, ya que a simple vista es posible observar que unas rutas con un mejor desempeño serían aquellas que recogen a estudiantes que se encuentren en la misma zona, evitando viajes. 28.

(29) altamente costosos de zona a zona. Sin embargo, cuando las instancias tienen una única zona, o cuando las instancias tienen paraderos relativamente equidistantes al colegio, la heurística construida se comporta con un desempeño significativamente superior.. La calidad de la heurística en la instancia particular del colegio de Bogotá no es buena, por consiguiente, la inclusión de los procedimientos SWAP e INSERT pueden ser mucho más significativos que en la heurística constructiva 1.. Figura 12 - Desempeño HC2 con procedimientos de refinamiento. La figura anterior compara los costos totales de la heurística con cada uno de los procedimientos de refinamiento. Tal como se había dicho, los procedimientos generaron mejoras superiores que en la heurística anterior. En esta heurística, es evidente que con el aumento del valor de DMAX, la brecha entre los costos totales de la heurística con y sin procedimientos de refinamientos se hace mayor.. Figura 13 - Comparación procedimientos de refinamiento HC1. 29.

(30) El procedimiento SWAP de forma independiente genera una mejora total del 38%, disminuyendo los costos totales radicalmente. Por otro lado, el procedimiento INSERT genera de forma independiente una mejora total del 22%, muy superior a la mejora de este procedimiento en la heurística constructiva 1 (4.3%). Es importante resaltar que al utilizar ambos procedimientos de forma conjunta, se obtiene una reducción total del 42.6%, donde el procedimiento INSERT colabora tan solo con el 4.6%.. 4.5.3 Comparación de Heurísticas Aunque es evidente hasta el momento que la primera heurística presenta mejores resultados que la segunda, es importante compararlas tras el uso de los procedimientos de refinamiento.. Figura 14 - Comparaciòn HC1 con HC2. En la figura anterior es posible apreciar que los costos de la HC1 son menores que los costos de la HC2 para todo posible valor de DMAX, así se hayan aplicado los procedimientos de SWAP e INSERT, en particular, la HC1 presenta unos costos menores en una proporción del 52.3% con respecto a HC2.. Con respecto a los tiempos de ejecución, la HC1 requiere un poco más de tiempo en ejecutarse que la HC2 (28% más), lo cual resulta razonable, ya que HC1 presenta unos costos inferiores. Aún así, cuando se empiezan a aplicar los procedimientos de refinamiento, los tiempos de ejecución de HC2 superan considerablemente los tiempos de ejecución de HC1, ya que tal como se observó, la efectividad de los procedimientos de refinamiento en la HC2 es mucho mayor que en la HC1, implicando mayor procesamiento en la ejecución de los algoritmos de los procedimientos SWAP e INSERT.. 30.

(31) Figura 15 - Comparación tiempos de ejecución y procedimientos de refinamiento. Los tiempos de ejecución en HC2 tras los procedimientos de refinamiento aumentan 40 veces con respecto al tiempo de ejecución inicial, produciendo una reducción en los costos del 42%, mientras que un aumento en HC1 en el tiempo de ejecución de casi 20 veces, aumenta la eficiencia en tan solo un 8%.. De todos modos, en la instancia generada, no tendría sentido alguno usar HC2, ya que aunque la eficiencia de los procedimientos de refinamiento es mucho mayor, no se aproxima a los costos totales alcanzados usando HC1, los cuales se obtienen en un tiempo un 38% menor (usando SWAP e INSERT).. 4.5.4 Mejores soluciones contra estado actual del colegio Usando la HC1 con los procedimientos de refinamiento en los casos que presentan los mejores resultados, se construyó la siguiente tabla:. Tabla 4 - Comparación heurística contra situación del Colegio. En este caso, el Colegio Aníbal Fernández de Soto tiene un total de 13 rutas, con una utilización total del 85%, superior a la utilización de la Heurística para ambos valores de DMAX, con un. 31.

(32) porcentaje de 63% y 71% para los valores de 13.75 km y 23.75 km respectivamente. Es importante resaltar que se desconocen valores relevantes del ruteo actual del Colegio, debido a que la información proporcionada se limitaba a indicar la ruta actual de los estudiantes, sin mencionar el orden específico de recolección. De todos modos, es posible inferir información relevante.. La Heurística reflejaba un comportamiento logarítmico al graficar los costos contra el valor de DMAX, descubriendo una convergencia de los costos totales a un valor aproximado de 128 km. Esto quiere decir, que sin importar cuánto se aumente la distancia máxima permitida, los costos seguirán siendo los mismos, costos que se verán reflejados en tiempo y gasolina para las rutas escolares. Por otro lado, es posible observar que al aumentar en 10 km la distancia máxima permitida, se consigue un ahorro de tan solo dos rutas escolares, aumentando la máxima permanencia de un estudiante en aproximadamente 25 minutos.. Es claro que el número de rutas actual del Colegio es inferior al de la Heurística con un valor DMAX de 23.75 km, así que seguramente la distancia máxima que permanece un estudiante actualmente en el colegio es superior a este valor, que representa una estadía máxima de una hora en la ruta escolar.. Es importante recordar que las heurísticas actualmente usan distancias euclidianas entre las posiciones geográficas de las paradas, lo cual no sucede en la vida real, ya que es necesario tomar una serie de calles para realizar un trayecto, por consiguiente, las distancias máximas reales y los costos totales reales están subvalorados. Por este motivo, es claro que el tiempo máximo de permanencia de un estudiante en la ruta actualmente supera notablemente el tiempo de 1 hora.. 5 CONCLUSIONES Una planeación adecuada de rutas puede permitir una reducción de costos considerable, ya que al considerar objetivos como la minimización de la distancia total recorrida por los buses y la minimización del número total de rutas, se construyen rutas que evitan trayectos largos como sucede al tratar de hacer una planeación de forma manual, teniendo en cuenta únicamente criterios como cercanía de la ruta al paradero y la disponibilidad actual de cada una de las rutas.. 32.

(33) Además, al tratar de incluir otro tipo de objetivos como lo es minimizar la distancia máxima que pasa un estudiante en la ruta, se tiene en cuenta no únicamente los costos de operación del transporte escolar, sino también el bienestar de los estudiantes, procurando que ninguno sobrepase una estadía en la ruta por un periodo de tiempo muy largo.. Al implementar la formulación matemática del problema en Xpress-Mosel, no sólo se descubrió que la modelación del problema es correcta y su adaptación es razonable a los objetivos propuestos, sino que este tipo de problemas no pueden resolverse de forma óptima en tiempos cortos para instancias reales, ya que el tiempo de ejecución para encontrar una solución exacta puede tardar fácilmente meses en resolverse para casos con un número de tan sólo 100 paraderos.. Aún así, el diseño y la implementación adecuada de heurísticas permite obtener soluciones aproximadas en tiempos significativamente menores, de modo que puedan ser utilizadas en instancias reales tal como se demostró en el caso del Colegio Aníbal Fernández de Soto. Es importante afirmar que el diseño de las heurísticas debe hacerse en base a las características inherentes de la instancia a solucionar, ya que tal como sucedió con la segunda heurística constructiva, su calidad era muy baja, debido a su baja adaptación con la instancia generada.. Por otro lado, la primera heurística constructiva demostró una fuerte adaptación con la instancia generada, brindando una serie de soluciones razonables dependiendo del tiempo máximo permitido para un estudiante en la ruta. En particular, es evidente que hay un punto en el que sin importar en cuanto se aumente el tiempo máximo permitido, los costos totales de recorrido siguen siendo los mismos, indicando que un buen análisis de sensibilidad permite un balance adecuado entre el tiempo máximo que pasa un estudiante en la ruta (beneficio de los escolares) y los costos totales de las rutas (beneficio de los gastos de operación).. Al comparar los resultados obtenidos por medio de las heurísticas con la planeación de rutas actual del Colegio, es posible inferir que actualmente los estudiantes que pasan más tiempo en el trayecto escolar, duran periodos muy superiores a una hora, implicando que los niños pasen tiempos innecesarios en la ruta, debido al único objetivo actual de la planeación: disminución de costos.. 33.

(34) Con respecto a la aplicación construida, el uso de la plataforma Java SE 6 permite una fácil instalación sobre cualquier sistema operativo. De modo que se puede ejecutar prácticamente desde cualquier computador, mientras este cumpla con los requisitos mínimos de la plataforma (básicos para un computador moderno) y tenga acceso a internet. El despliegue de las rutas sobre mapas reales, permite una visualización sencilla y atractiva. Además, las heurísticas construidas resuelven instancias grandes en tiempos inferiores a una hora, de modo que se adapta a las necesidades actuales del CADEL, que van construyendo soluciones a medida se van incorporando nuevos estudiantes al sistema de transporte escolar.. 6. AGRADECIMIENTOS. Agradezco a Nubia Velasco, a Ciro Amaya y a Gustavo Neira por su asesoría y apoyo durante la realización de este trabajo.. 7. BIBLIOGRAFÍA. 1. Corberán, A. Fernández, E. Laguna, M. Martí, R. “Heuristic Solutions to the Problem of Routing School Buses with Multiple Objectives”. Journal of the Operational Research Society, Vol. 53, No. 4, 1 Abril 2002, pp. 427-435(9).. 2. Yong-xian, L. Xiang-pei, H. Jun, L. “A Heuristic Search Algorithm for Vehicle Routing Problems and the GIS-based Vehicle Routing System Onboard”. Management Science and Engineering. Octubre 2006.. 3. Park, J. Kim B. “The School Bus Routing Problem: A Review”. Department of Industrial and Management Engineering, Pohang University of Science and Technology (POSTECH), HyojaDong San 31, Pohang, Kyungbuk 790-784, Republic of Korea. 4. Barraza, R. “HARITI. Proyecto Para el Enrutamiento del Transporte Escolar”. Proyecto de grado Maestría en Ingeniería de Sistemas y Computación. Universidad de los Andes 2006.. 34.

(35) 5. Bowerman R. Hall, B. “A Multi-Objective Optimization Approach To Urban School Bus Routin: Formulation and Solution Method” Transport, Res. A. 1995. Vol 29A, No. 2, pp 107-123. 6. Shittekat, P. Sevaux, M. Sorensen, K. “A Mathematical Formulation for a School Bus Routing Problem”. International Conference on Service Systems and Service Management. Troyes, France. Octubre 2006. 7. Kallehauge, B. “Formulations and Exact Algorithms for the Vehicle Routing Problem with Time Windows”. Computers and Operations Research, Vol 35. Issue 7, Julio 2008. 8. Braca, J. Bramel J, Posner B, Simchi-Levi, D. “A Computerized Approach to the New York City School Bus Routing Problem”. IEE Transactions. Vol 29, No 8, pp 693-702. 9. Directorio de CADEL y Supervisiones de Educación, http://www.redacademica.edu.co/ 10. Ministerio de Transporte. http://www.mintransporte.gov.co/ 11. Secretaría de Educación de Bogotá. http://www.sedbogota.edu.co/ 12. OpenStreetMap. http://www.openstreetmap.org/ 13. Laboratorio SwingX https://swingx.dev.java.net/ 14. ArcGIS 10 http://www.esri.com/software/arcgis/arcgis10/index.html. 8. ANEXOS. 8.1 Aplicación RuteoEscolar Con el fin de poder desplegar las heurísticas diseñadas e implementadas, se construyó la aplicación en Java SE 6. El aplicativo gráficamente se divide en dos partes: el manejador de soluciones y el visualizador de rutas.. 35.

(36) Figura 16 - Manejador de Soluciones. El manejador de soluciones se construyó usando las librerías Swing de Java SE 6.0. En este manejador es posible construir una lista de soluciones, variando el valor de DMAX y eligiendo la heurística constructiva 1 o la heurística constructiva 2. Una vez se tenga elaborada una lista de soluciones, es posible aplicar procedimientos de SWAP o INSERT sobre cualquiera de la lista, generando nuevas soluciones con mejores desempeños. Para cada solución, es posible observar las estadísticas generales como el costo de la solución y el costo máximo. Además, es posible observar en detalles cada una de las rutas, con sus paraderos y sus estadísticas locales. La última funcionalidad del manejador de soluciones es pintar una solución, donde activa el visualizador de rutas.. El visualizador de rutas obtiene el mapa de la ciudad de Bogotá por medio de los servicios externos de OpenStreetMaps. En particular, es posible observar cada uno de los paraderos de la ruta sobre el mapa, haciendo zoom-in o zoom-out. Además, se puede viajar entre paradero y paradero, para observar en detalle cada una de las paradas de la ruta escolar.. 36.

(37) Figura 17 - Visualizador de Rutas. 8.2 Diagrama UML A continuación se presenta el Diagrama de Clases diseñado e implementado para construir las heurísticas y sus procedimientos de refinamiento.. 37.

(38) Figura 18 - Diagrama UML. 38.

(39)

Referencias

Documento similar

Volviendo a la jurisprudencia del Tribunal de Justicia, conviene recor- dar que, con el tiempo, este órgano se vio en la necesidad de determinar si los actos de los Estados

Luis Miguel Utrera Navarrete ha presentado la relación de Bienes y Actividades siguientes para la legislatura de 2015-2019, según constan inscritos en el

En cuarto lugar, se establecen unos medios para la actuación de re- fuerzo de la Cohesión (conducción y coordinación de las políticas eco- nómicas nacionales, políticas y acciones

D) El equipamiento constitucional para la recepción de las Comisiones Reguladoras: a) La estructura de la administración nacional, b) La su- prema autoridad administrativa

b) El Tribunal Constitucional se encuadra dentro de una organiza- ción jurídico constitucional que asume la supremacía de los dere- chos fundamentales y que reconoce la separación

&#34;No porque las dos, que vinieron de Valencia, no merecieran ese favor, pues eran entrambas de tan grande espíritu […] La razón porque no vió Coronas para ellas, sería

No había pasado un día desde mi solemne entrada cuando, para que el recuerdo me sirviera de advertencia, alguien se encargó de decirme que sobre aquellas losas habían rodado

The part I assessment is coordinated involving all MSCs and led by the RMS who prepares a draft assessment report, sends the request for information (RFI) with considerations,