Un enfoque de programación matemática para la optimización de tripulaciones en aerolineas (airline crew pairing optimization)
Texto completo
(2) Reconocimientos. Agradezco a mis asesores Andrés Medaglia, Jose Luis Walteros y Nubia Velasco por su apoyo incondicional y por su dedicación en el desarrollo de este proyecto. A Miguel Angel Vargas por sus consejos y apoyo. Finalmente, quiero agradecer a FICO por proveernos las licencias de Xpress-MP bajo el Academic Partner Program suscrito con la Universidad de los Andes. 2.
(3) Tabla de Contenido. Reconocimientos ..............................................................................................................2 Lista de Tablas.................................................................................................................4 Lista de Figuras ...............................................................................................................5 Resumen ...........................................................................................................................6 I.. Introducción .............................................................................................7. II.. Terminología ..........................................................................................13. III.. El Airline Crew Pairing Problem .........................................................16. IV.. Modelo de programación binaria (ACPP/BP) ....................................17. V.. Modelo de set partitioning (ACPP/SP) .................................................20. VI.. Modelo de set covering (ACPP/SC) ......................................................23. VII.. Experimentos computacionales ............................................................26. VIII.. Conclusiones y trabajo futuro ..............................................................32. 3.
(4) Lista de Tablas. Tabla 1: Resultados del ACPP/BP ...................................................................................... 27 Tabla 2: Resultados del ACPP/SP....................................................................................... 29 Tabla 3: Resultados del ACPP/SP con la reducción en el número de variables ................. 30 Tabla 4: Resultados del ACPP/SP costeando con el tiempo muerto................................... 31 Tabla 5: Resultados del ACPP/SC ...................................................................................... 32. 4.
(5) Lista de Figuras. Figura 1: Ejemplo de un itinerario comercial ................................................................14 Figura 2: Ejemplo para el pairing 3 de la Figura 1 ........................................................15 Figura 3: Ejemplo de la representación gráfica del ACPP/BP.......................................17. 5.
(6) Resumen. En un creciente ambiente competitivo en la industria aeronáutica, la planeación eficiente del personal es una de las tareas más difíciles y con mayor impacto en la estructura de costos de una aerolínea. El problema es computacionalmente complejo debido al enorme conjunto de posibilidades y a las múltiples reglas que determinan las tareas asignables a una tripulación.. En este trabajo se propone una metodología para determinar la forma más eficiente y menos costosa de atender los vuelos de un itinerario comercial en un horizonte de planeación semanal considerando dos elementos adicionales: layovers y deadheads. La estrategia está compuesta por tres modelos de optimización: un modelo de programación binaria, un modelo basado en el Set Partitioning Problem y un modelo basado en el Set Covering Problem, los dos últimos solucionados con la técnica de generación de columnas. Se presentan resultados computacionales para instancias construidas a partir del itinerario comercial de una aerolínea colombiana de mediana escala.. 6.
(7) I.. Introducción. La planeación y programación del personal es una de las tareas más importantes y complejas que tiene que enfrentar una aerolínea. Su importancia radica en el impacto económico que tiene una buena planeación sobre la rentabilidad del negocio y su dificultad se deriva de la estructura combinatoria del problema, que depende del número de vuelos y el tamaño de la flota, entre otros factores. El conjunto de actividades orientadas a planear y programar el personal se conoce en la literatura como el Airline Crew Scheduling Problem (ACSP) y es uno de los problemas combinatorios conocidos más difíciles de solucionar desde el punto de vista computacional (Guo et al., 2006). El objetivo de éste es construir un conjunto de particiones que cubra los vuelos de un itinerario comercial de la manera más eficiente teniendo en cuenta reglas complejas para la programación de las mismas (e.g., número máximo de horas de vuelo) y preferencias de los miembros de una tripulación (e.g., número máximo de días de trabajo consecutivos). En los últimos años, la complejidad del problema ha aumentado con la expansión de las aerolíneas, el incremento en la demanda por parte de pasajeros y la creciente competencia por ofrecer servicios más atractivos para los clientes manteniendo la rentabilidad del negocio (i.e., mayor cantidad de vuelos a precios bajos). Ésto ha llevado a los investigadores y a las compañías de software a invertir una gran cantidad de esfuerzos y recursos para desarrollar herramientas tecnológicas de apoyo a la decisión basadas en modelos de optimización cada vez más sofisticados (Guo et al., 2006). La planeación de las operaciones de una aerolínea se puede desagregar en cuatro etapas que se relacionan en forma jerárquica, donde los productos de una etapa son los insumos de las siguientes (Barnhart, 2003). Estas etapas comprenden: •. Schedule Planning: Con base en los pronósticos de la demanda de pasajeros, el producto de esta fase se conoce como el itinerario comercial. Esta oferta de vuelos se define por la hora, el día y la frecuencia de los vuelos. 7.
(8) •. Fleet Assignment: Una vez se diseña el itinerario, se debe decidir qué tipo de avión se debe asignar a cada vuelo con base en la capacidad de la aeronave y las especificaciones de vuelo (i.e., viajes nacionales, internacionales, transatlánticos).. •. Aircraft Routing: Dado que se tiene una flota de aviones limitada y todos están asignados a los vuelos del itinerario, se debe hacer una programación del mantenimiento de éstos para tenerlos en las mejores condiciones de funcionamiento y siempre disponibles para atender la demanda operacional.. •. Crew Scheduling: El itinerario comercial y la asignación de las aeronaves a los vuelos son los insumos de esta última etapa, en la que se planean las tareas de cada uno de los miembros de una tripulación teniendo en cuenta un conjunto de condiciones laborales, operacionales y gubernamentales.. Esta última etapa se puede separar a su vez en dos subproblemas secuenciales: el Airline Crew Pairing Problem (ACPP) y el Airline Crew Rostering Problem (ACRP). En el ACPP se determina el mínimo número de tripulaciones (anónimas) necesarias para atender todos los vuelos de un itinerario comercial cumpliendo con las condiciones laborales, operacionales y gubernamentales en un horizonte de planeación definido. Esta información sirve de insumo para el ACRP, en el que se asignan personas específicas a las tripulaciones con base en información adicional como la antigüedad, las vacaciones, las habilidades y preferencias del personal, entre otros. Este trabajo se concentra en encontrar una solución al ACPP.. Después del combustible, el costo más importante para una aerolínea es el de las tripulaciones (Crawford et al., 2006). Mientras que no hay tanto campo para lograr reducciones en combustible por ser un factor exógeno, los costos de las tripulaciones se pueden controlar a través de una mejor utilización de las mismas (Pavlopoulou, 1996). Por lo tanto, cualquier ahorro generado en esta área tendrá un impacto significativo sobre las. 8.
(9) finanzas de la empresa. Por otro lado, el crecimiento del sector de las aerolíneas de bajo costo genera la necesidad de reducir aquellos costos que tienen un mayor impacto. Para realizar el proceso de planeación de las tripulaciones, la mayoría de las aerolíneas de gran escala a nivel mundial cuentan con paquetes computacionales especializados como Sabre® AirCentre Crew de Sabre Airline Solutions y Carmen Crew Management Suite de Jeppesen. Sin embargo, algunas de estas herramientas son muy costosas y resultan fuera del alcance de las aerolíneas de pequeña y mediana escala, las cuales deben encontrar alternativas más costo eficientes para planear sus operaciones.. El desarrollo de modelos matemáticos y técnicas de optimización en el contexto de la industria aeronáutica tiene sus orígenes en los años 50 (Ahmed and Poojari, 2008; Yu and Yang, 1998) y ha evolucionado a medida que las aerolíneas han aumentado su complejidad y dinamismo (Sylla, 2000; Klabjan, 2005). Hoy en día una aerolínea puede manejar miles de vuelos diarios enfrentándose a cambios de última hora por cuenta de factores como el clima, seguridad o fallas mecánicas.. La mayoría de los modelos propuestos en la literatura están basados en una formulación del ACPP como un Set Partitioning Problem (SPP) o un Set Covering Problem (SCP). Sin embargo, estas formulaciones son complejas y difíciles de resolver (Barnhart, 2003). Primero, el número de variables de decisión es enorme porque el espacio de solución crece con el tamaño del problema haciendo necesario utilizar técnica de optimización a gran escala como generación de columnas. En generación de columnas, el problema original se descompone en un problema maestro y un problema auxiliar (subproblema). Este último frecuentemente se formula como un Restricted Shortest Path Problem (RSPP) por medio del cual se generan particiones factibles que se utilizan en la solución del SPP o SCP (problema maestro). Sin embargo, el RSPP es computacionalmente desafiante, por lo que se requieren técnicas de optimización como branch-and-bound o programación dinámica para encontrar una solución al problema. Una parte importante de. 9.
(10) la investigación se ha dedicado a buscar soluciones computacionalmente eficientes para el RSPP (Pavlopoulou, 1996).. El subproblema comúnmente se resuelve con programación entera (IP) utilizando una representación del ACPP basada en redes. Un camino sobre la red representa un conjunto factible de tareas que puede llevar a cabo una tripulación y el objetivo es encontrar el camino con el costo reducido más negativo. La factibilidad del camino se determina por un conjunto de restricciones que definen la estructura de la red (AhmadBeygi, 2008). Algunos investigadores han utilizado la estructura de red del problema para derivar algoritmos de ruta más corta con restricciones basados en programación dinámica (DP) en los que las restricciones se utilizan para modelar costos no lineales, factibilidad de los caminos y otras condiciones que dependen del problema (Anbil, 1998; Klabjan, 2005). Aunque DP puede llegar a ser más eficiente que IP, pequeñas variaciones al problema original (e.g., nuevas regulaciones) se manejan más fácil en IP que en DP. Por ende, tanto IP como DP son frecuentemente embebidos en esquemas de solución para el ACPP.. Tres de los métodos más comunes para resolver el ACPP son generación de columnas (CG) off-line, generación dinámica de columnas (DCG) y branch-and-price. En CG off-line, se enumera, ya sea el conjunto completo de particiones factibles o un subconjunto del mismo, y luego, se soluciona el SPP o el SCP (Arabeyre et al., 1969). Sin embargo, como el espacio de solución crece exponencialmente con el tamaño del problema, no es inusual encontrar billones de particiones en problemas de 300 vuelos. Por lo tanto, dado que la enumeración explícita puede ser prohibitiva, ésta se utiliza en problemas de tamaño pequeño. Alternativamente, en DCG, la relajación lineal (LR) del problema maestro entero se resuelve generando una o más columnas factibles en cada llamado al subproblema utilizando un criterio de costeo (e.g., el costo reducido). De esta manera, el conjunto completo de particiones se describe parcialmente y sólo las columnas atractivas son generadas para solucionar el problema maestro. La desventaja en este caso es que no se garantizan soluciones enteras al final de la técnica de CG (Lavoie, 1988). Para superar esta. 10.
(11) dificultad, un enfoque basado en branch-and-price utiliza la misma idea que DCG pero hace CG en cada nodo del árbol de branch-and-bound. Aunque este enfoque puede ser computacionalmente costoso debido al gran número de nodos en el árbol de búsqueda, se garantizan soluciones enteras. Para disminuir la dificultad computacional en problemas de gran escala (i.e., miles de vuelos), es posible utilizar una versión heurística de branch-andprice que sacrifica optimalidad a cambio de eficiencia computacional. Por ejemplo, Vance et al. (1997) presenta una descripción detallada del enfoque heurístico, en el que el ACPP se modela utilizando dos posibles representaciones gráficas del problema (i.e., una red de vuelos y una red de jornadas laborales). En cada una de estas redes, se soluciona un RSPP para determinar particiones factibles. Se obtienen soluciones cercanas al óptimo para instancias de gran escala (e.g., cerca de 2000 vuelos) utilizando varios criterios de parada para el procedimiento de branch-and-price (e.g., número máximo de llamados al subproblema).. Además de los enfoques basados en generación de columnas para solucionar el ACPP, algunos investigadores han propuesto heurísticas y metaheurísticas. Kornilakis y Stamatopoulos (1981) proponen un procedimiento en dos fases para solucionar el ACPP utilizando una combinación de depth-first search y algoritmos genéticos. En la primera fase, se generan particiones factibles a partir de jornadas laborales factibles, construidas a su vez a partir del conjunto de vuelos del itinerario comercial. En la segunda fase, las particiones son utilizadas en un procedimiento de optimización teniendo en cuenta costos fijos de las tripulaciones y costos de deadheading. Esta metodología divide el ACPP en dos problemas más pequeños, reduciendo así el número de particiones factibles que las que se obtendrían si se resolviera el problema original directamente, pero sacrificando optimalidad. Este método fue evaluado con una instancia de 2100 vuelos construida a partir del itinerario comercial de una aerolínea griega.. Levine (1996) formula un SPP para el ACPP y lo soluciona con un algoritmo genético (GA) mejorado con una heurística de búsqueda local. En este enfoque híbrido, el GA trabaja directamente sobre soluciones enteras mientras que la heurística agrega la. 11.
(12) habilidad de hill climbing para explorar grandes vecindarios. Este algoritmo se probó en 40 problemas de la vida real de un conjunto de instancias de prueba conocido y se obtuvieron soluciones óptimas en la mitad de los casos y soluciones dentro de un 5% de optimalidad para otras 9 instancias.. Hoffman y Padberd (1993) proponen un enfoque basado en branch-and-cut en el que el ACPP se formula como un SPP y es resuelto a optimalidad. La principal característica es que el SPP incluye cualquier número de restricciones relacionadas con las bases de personal. Éstas permiten modelar ciertas regulaciones de las aerolíneas como no exceder el número de tripulaciones en una base particular. El optimizador se probó con 68 problemas de gran escala de la vida real. En uno de los casos, se logró resolver un problema de 145 vuelos en 37 minutos.. Marsten y Shepardson (1981) presentan cuatro aplicaciones exitosas en las que problemas de programación de personal en aerolíneas y transporte público se formulan como un SPP. Los autores introducen el concepto de vuelos resueltos que son una secuencia de vuelos que deben ser atendidos en bloque. Se presenta una aplicación en una aerolínea norteamericana en la que las restricciones que aseguran que cada vuelo es atendido una vez se relajaron utilizando relajación Lagrangiana y se solucionó el problema con el método del subgradiente. Se reportaron ahorros por USD $300.000 en un tipo de aeronave.. Para mayor información sobre formulaciones para el ACPP, SPP y SCP, representaciones en redes y técnicas de solución, se remite al lector a los trabajos de Barnhart (2003), Gopalakrishnan y Johnson (2005) y Ernst et al. (2004).. Este trabajo propone una metodología para el ACPP basado en una serie de modelos de optimización relacionados entre sí. Se enfoca en un escenario de la vida real de una aerolínea colombiana de mediana escala que está en un rápido proceso de expansión. Las. 12.
(13) herramientas de apoyo a la decisión desarrolladas en este trabajo son aplicables y extensibles a aerolíneas de similares.. El resto del documento se organiza así. En la sección 2 se definen los términos básicos en el contexto del ACPP. En la siguiente sección se presenta formalmente el ACPP. La formulación de los modelos propuestos se presenta en las secciones 4, 5 y 6, respectivamente. En la sección 7 se presentan los resultados de los tres modelos con base en el caso de estudio. Finalmente, en la sección 8 se plantean las conclusiones del trabajo y los posibles trabajos a futuro.. II.. Terminología. Esta sección provee una breve definición de los términos más importantes en el ACPP utilizados durante el desarrollo del documento. En la Figura 1 se presenta un ejemplo de un itinerario comercial para un horizonte de planeación de tres días en el que se tienen 18 vuelos, cada uno representado por un rectángulo gris con la letra F y un número (e.g., F1). Un leg es un vuelo del itinerario comercial que tiene información sobre la ciudad de origen y destino, la hora de salida y llegada, y el día de la semana. Un grupo de legs que pertenecen a un mismo día se conoce como duty y es lo que en la figura se identifica con un rectángulo punteado (e.g., F1 y F2). Para que un duty sea factible, la conexión entre los legs debe existir (i.e., la ciudad de destino de un leg es igual a la ciudad de origen del siguiente y se respetan las ventanas de tiempo) y se deben cumplir un conjunto de restricciones laborales, operacionales y gubernamentales (e.g., número máximo de legs a atender, tiempo máximo de vuelo). Análogamente, un conjunto de duties se conoce como pairing y representa las tareas de una tripulación anónima en un horizonte de planeación definido. Un pairing es factible si los duties que lo componen se pueden conectar (i.e., la ciudad de destino final de un duty es. 13.
(14) igual a la ciudad de origen con la que inicia el siguiente y se respetan las ventanas de tiempo) y se cumple un conjunto de condiciones como no exceder el tiempo máximo de servicio, entre otros.. Pairing 1. F1. F2. Pairing 2. F3. F4. F5. Pairing 3. F6. F7. F8. Lunes. F9. F11. F10. F12. F14. F15. F16. F17. F18. F13. Martes. Miércoles. Figura 1: Ejemplo de un itinerario comercial. Con respecto a cada pairing, el tiempo de vuelo es el tiempo total durante el cual una tripulación atiende un vuelo en el aire, es decir, la suma de los tiempos de vuelo de los legs que componen el pairing. El tiempo de presentación es el tiempo reglamentario que una tripulación debe cumplir al presentarse antes del primer vuelo de un duty, ya sea nacional o internacional, mientras que el tiempo de permanencia es el tiempo que debe estar una tripulación en el aeropuerto después del último vuelo de un duty. De forma similar, el tiempo en tierra es el tiempo que una tripulación debe estar después de un vuelo que no sea el último. El tiempo de servicio es el tiempo durante el cual una tripulación está desarrollando tareas que hacen parte de su contrato incluyendo el tiempo que debe estar antes y después de cada vuelo. El periodo de descanso es el tiempo reglamentario durante el cual una tripulación debe descansar entre dos duties consecutivos. Finalmente, el tiempo ocioso es el tiempo que complementa el tiempo de servicio, es decir, el tiempo total de servicio menos los tiempos de vuelo, de presentación, de permanencia y de atención en tierra y el periodo de descanso. Para ilustrar estos conceptos, la Figura 2 detalla el pairing 3 de la Figura 1. Cada vuelo contiene información sobre las ciudades de origen y destino (e.g., C1 y C2 para el leg. 14.
(15) F6) y la hora de salida y llegada en minutos (e.g., 300 y 400 minutos para el leg F6). Las horas de inicio y fin de las operaciones del lunes son 0 y 1440 minutos, respectivamente. Por lo tanto, una hora de salida igual a 300 indica que el vuelo sale a las 5:00 a.m. del lunes, mientras que un vuelo que sale a la misma hora el martes tendrá una hora de salida igual a 1740 minutos. Con base en la Figura 2 y asumiendo un tiempo en tierra de 10 minutos en la ciudad de destino de cada leg, tiempos de permanencia iguales a 30 minutos para todos los legs, que todos los vuelos son nacionales y por lo tanto requieren tiempos de presentación de 60 minutos, y que el tiempo de descanso es al menos 10 horas (i.e., 600 minutos); los tiempos de vuelo, de servicio y ocioso son 3650, 1740 y 790 minutos, respectivamente.. Pairing 3. F6. F7. F8. F11. F12. F13. C1 - C2 [300 - 400]. C2 – C3 [450 - 500]. C3 – C4 [540 - 580]. C4 - C2 [1920 - 1990]. C2 – C5 [2030 - 2080]. C5 – C1 [2150 - 2200]. Lunes. 1440. Martes. 2880. Figura 2: Ejemplo para el pairing 3 de la Figura 1. Con respecto a las tripulaciones, una base de personal es la ciudad donde se concentran las actividades de la empresa y donde residen los tripulantes. Adicionalmente, se utiliza el concepto de base agregada como punto de referencia para indicar el inicio de las operaciones realizadas por una tripulación. Un layover es cuando una tripulación aterriza al final de una jornada laboral en una ciudad diferente a su base inicial. En la Figura 2, la tripulación debe hacer un layover el lunes en la ciudad C4 dado que ese día el primer vuelo partió de la ciudad C2. Finalmente, un deadhead es cuando una tripulación viaja en un avión como pasajero (no trabajando) con el fin de atender un vuelo conexo en la ciudad de destino del vuelo.. 15.
(16) III.. El Airline Crew Pairing Problem. El objetivo del ACPP es encontrar el mínimo número de tripulaciones necesarias para cubrir todos los vuelos del itinerario comercial de la aerolínea. Para definir las particiones, se deben tener en cuenta reglas laborales, operacionales y gubernamentales de la empresa y del país donde se llevan a cabo las actividades de la misma. Este trabajo utiliza información de una aerolínea que opera con las siguientes características: 1) un pairing debe iniciar y terminar en la misma base de personal; 2) ningún pairing puede exceder un tiempo máximo de vuelo, un tiempo máximo de servicio, un número máximo de aterrizajes y un número máximo de duties; 3) en un pairing se deben considerar las reglas que definen un duty como el tiempo máximo de vuelo y de servicio diario, un número máximo de aterrizajes en un día y un tiempo mínimo de descanso (entre duties).. Adicionalmente, las reglas de operación de la aerolínea permiten resolver el problema por tipo de aeronave y por tipo de tripulación de forma separable. En primer lugar, cada miembro de la tripulación (piloto, copiloto o auxiliar de vuelo) está entrenado para volar de forma exclusiva un solo tipo de aeronave. En segundo lugar, aún cuando una tripulación está compuesta por pilotos, copilotos y auxiliares de vuelo, ésta se pueden separar en dos grupos: el personal de cabina, que incluye a los pilotos y copilotos, y el personal auxiliar. Esta división es posible porque hay reglas que rigen a cada uno. En síntesis, el ACPP para la aerolínea considerada, se puede resolver separadamente por tipo de aeronave y tripulación.. Para solucionar el problema descrito anteriormente se desarrollaron tres modelos de optimización basados en las formulaciones conocidas para el ACPP: un modelo de Programación Binaria (ACPP/BP), un modelo basado en el Set Partitioning Problem (ACPP/SP) y finalmente, un modelo basado en el Set Covering Problem (ACPP/SC). Las tres secciones siguientes presentan los modelos de optimización propuestos y los métodos para solucionarlos. 16.
(17) IV.. Modelo de programación binaria (ACPP/BP). El primer modelo se basó en programación binaria y tiene por objetivo minimizar el número de tripulaciones necesarias para cubrir los legs del itinerario comercial sujeto a un conjunto de restricciones laborales, operacionales y gubernamentales. La formulación del problema está basada en representar el ACPP como una red. Una versión simplificada de la red se presenta en la Figura 3.. Lunes. Martes. 3. 7. 4. i. 1 0. 0 2. 5. 9. 6. n. Figura 3: Ejemplo de la representación gráfica del ACPP/BP. En esta red se representa cada leg del itinerario comercial como un nodo y las conexiones factibles entre vuelos como arcos. Los nodos 0, 1 y 2 son nodos auxiliares que representan la base agregada donde debe iniciar y terminar un pairing, el inicio de un vuelo nacional y el inicio de un vuelo internacional, respectivamente. Los primeros arcos de la izquierda representan conexiones entre la base agregada y los nodos 1 y 2. Los arcos punteados conectan los nodos 1 y 2 con nodos cuya ciudad de origen es base de personal; de forma similar, conectan nodos con la base agregada si la ciudad de destino de éstos es base de personal. De esta manera, se identifican los legs que pueden iniciar y terminar un pairing. Los arcos con guiones largos y puntos representan posibles conexiones factibles. 17.
(18) entre nodos del mismo día mientras que los arcos mas gruesos conectan nodos de días diferentes, en ambos casos asegurando que la ciudad de destino del primero sea igual a la ciudad de origen del segundo y que la hora de salida del segundo leg sea mayor o igual que la hora de llegada del primer leg más el tiempo de atención en tierra en el aeropuerto de la ciudad de destino de éste. Más formalmente, sea G (N, A) un grafo dirigido acíclico compuesto por un conjunto de nodos N = {0,…, i,…, n} y de un conjunto de arcos A de la forma (i, j) que representa una conexión de vuelos factibles. Se define NL = N \ {0, 1, 2} como el conjunto de nodos que contiene los legs del itinerario comercial y NLc su complemento (nodos base). Sea B el conjunto de ciudades base de personal; S e I los conjuntos de ciudades nacionales e internacionales, respectivamente; D el conjunto de días de la semana; y C el conjunto de tripulaciones. Sea cmax el número máximo de tripulaciones en la solución. Para un pairing, sea t spmax el tiempo de servicio máximo, t fpmax el tiempo de vuelo máximo y l pmax el número máximo de aterrizajes. Análogamente, para un duty se definen dmax como el número máximo de duties por pairing, t sdmax el tiempo de servicio máximo, t fdmax el tiempo de vuelo máximo y l dmax el número máximo de aterrizajes. Adicionalmente se define T como el tiempo de descanso mínimo entre duties consecutivos. Para cada leg asociado con el nodo i ∈ NL, sean ti, oi, di, li, t di, t ai, t fi, t gi, el día de la semana, ciudad de origen, ciudad de destino, número de aterrizajes, hora de salida, hora de llegada, tiempo de vuelo y tiempo de atención en tierra asociado al aeropuerto de la ciudad de destino, respectivamente. Se asume que t di = t ai = t. f i. = li = 0, para todo i ∈ NLc. Adicionalmente, sea hi un parámetro. binario igual a 1 si el vuelo tiene origen en una ciudad nacional, 0 de lo contrario; y sea riq un parámetro binario igual a 1 si el vuelo pertenece al día q ∈ D, 0 de lo contrario. Sea t gi (i ∈ NLc) el tiempo que debe permanecer una tripulación después del último vuelo del duty (i=0) y el tiempo de presentación en una ciudad nacional (i=1) e internacional (i=2). Con respecto a las variables de decisión, sea xijk una variable binaria igual a 1 si la secuencia de vuelos (i, j) ∈ A es atendida por el pairing k, 0 en caso contrario. La formulación matemática del ACPP/BP es:. 18.
(19) cmax. min z = ∑. k =1 {. ∑x. k 0j j ∈ N | (0, j )∈ A }. (1). sujeto a, cmax. x ∑{ ∑ ( ). =1. ;i ∈ NL. (2). x ∑ ( ). =0. ; i ∈ N , k = 1,K, c max. (3). ≤1. ; k = 1,K, c max. (4). =0. ; i ∈ {1,2}, k = 1,K, c max , b ∈ B. (5). k ij k = 1 j ∈ N | i , j ∈ A}. x ∑ ( ). k ij { j ∈ N | i , j ∈ A}. −. k ji { j ∈ N | j , i ∈ A}. ∑x. k 0j. { j ∈ N | (0 , j ) ∈ A}. {. ∑x ). k ij (i , j ∈ A | o j = b. −. } {. ∑x ). k j0 ( j , 0 ∈ A| d j = b. ∑x. k ij (i , j ) ∈ A| i > 0 , j > 2 , ti < t j. {. } }. ≤ d max ; k = 1, K, c max. sd k + M ⋅ xik0 ≤ M t ia + t 0g − t max t nd − t1g ⋅hn −t 2g ⋅ (1 − hn ) ⋅ x mn − ∑ {(m , n )∈ A | tm <ti , tn =ti } . (. ). ; i ∈ N L , k = 1,K, c max. (6) (7 ). sd k + M ⋅ xijk ≤ M ; (i, j ) ∈ A, i ∈ N L , t j > t i , k =1, K, c max t ia + t 0g − t max t nd − t1g ⋅hn −t 2g ⋅ (1 − hn ) ⋅ x mn − ∑ {(m , n )∈ A | tm <ti , tn =ti } tp ; k = 1, K, c max (8) ∑ t if ⋅ xijk ≤ f max. (. ). (i , j ) ∈ A. ∑t. f i. (i , j ) ∈ A. td ⋅ riq ⋅ xijk ≤ f max. ∑l ( ). i i, j ∈ A. ∑l ( ). i i, j ∈ A. p ⋅ xijk ≤ l max. d ⋅ riq ⋅ xijk ≤ l max. ; q ∈ D, k = 1, K, c max. (9). ; k = 1,K, c max. (10). ; q ∈ D, k = 1, K, c max. (11). xijk ∈ {0, 1} ; (i, j ) ∈ A, k = 1, K, c max. (12). La función objetivo (1) minimiza el número de particiones necesarias para cubrir todos los legs del itinerario comercial. El conjunto de restricciones (2) asegura que todos los legs sean atendidos exactamente una vez. Las restricciones (3) garantizan el flujo de las tripulaciones a través de los legs. Las restricciones del conjunto (4) indican que cada tripulación puede salir a lo sumo una vez del nodo de la base agregada a atender el primer leg de la partición. Las restricciones (5) aseguran que la ciudad base de personal en la que comienza una partición, debe ser la misma en la que finaliza, es decir, la ciudad de destino del último leg. Con el conjunto (6) se garantiza que una partición no tenga más duties de los permitidos. En el conjunto de restricciones (7) se limita el tiempo de servicio de un duty a su valor máximo, donde M >>0. Los conjuntos (8) y (9) limitan el tiempo de vuelo en cada. 19.
(20) pairing y cada duty, respectivamente. De la misma manera, las restricciones (10) y (11) limitan el número de aterrizajes para pairings y duties. Finalmente, la naturaleza de las variables se define en (12). Los conjuntos de restricciones (3-12) se denominarán Φ de este punto en adelante.. V.. Modelo de set partitioning (ACPP/SP). Sea Ω el conjunto de todas las particiones factibles. Sea ai. k. un parámetro binario. igual a 1 si la partición pk atiende el trayecto i, 0 en caso contrario. Sea ck el costo de la partición pk ∈ Ω y θ k una variable binaria igual a 1 si la partición pk es escogida en la solución, 0 en caso contrario. El denominado problema maestro MP (Ω) del ACPP/SP es: MP( Ω) : min. z=. ∑c. k. ⋅θ k. (13). pk ∈ Ω. sujeto a,. ∑a. pk ∈ Ω. k i. ⋅θ k = 1. ;i ∈ N L. (14). θ k ∈ {0,1}. ; pk ∈Ω. (15). Fijando ck = 1, el objetivo minimiza el número de particiones (13) necesarias para cubrir todos los vuelos del itinerario comercial exactamente una vez. El conjunto (14) se conoce en la literatura como partitioning constraints ya que aseguran que todos los legs sean cubiertos por exactamente una partición. El conjunto (15) define la naturaleza de las variables de decisión.. Se debe notar que la formulación descrita por (13)-(15) asume que se conoce de antemano la totalidad de particiones factibles. Sin embargo, hacer una enumeración. 20.
(21) exhaustiva de éstas es un proceso dispendioso y computacionalmente prohibitivo para instancias de tamaño moderado (cientos de legs).. Para solucionar el problema, se propone un enfoque de generación de columnas (CG). En lugar de resolver directamente el problema MP (Ω), se resuelve un problema maestro restricto MP (Ω1), donde Ω1 es un conjunto parcial de particiones factibles tal que Ω1 ⊆ Ω. En un problema auxiliar (subproblema) se generan las particiones de Ω utilizando como criterio el costo reducido de la columna asociada con la partición. La factibilidad de la partición generada se garantiza en el subproblema por las restricciones (3)-(12) que definen el espacio de solución Φ. Finalmente, para resolver el ACPP/SP a través de la técnica de CG, se relaja la integralidad de las variables de decisión (15) obteniendo así la siguiente formulación del problema maestro restricto MP (Ω1): MP( Ω 1 ) : min. z=. ∑θ. k. (16). p k ∈ Ω1. sujeto a,. ∑a. pk ∈ Ω1. k i. ⋅θ k = 1. θk ≥0. ;i ∈ N L. (17). ; pk ∈Ω1. (18). Se define el problema dual asociado a MP (Ω1) como D (Ω1), donde λi es la variable dual (irrestricta) asociada a la i-ésima restricción del conjunto (17). El problema dual D (Ω1) se describe a continuación:. D(Ω1 ) : max z =. ∑λ. i ∈ NL. (19). i. sujeto a,. ∑a. i ∈ NL. k i. ⋅ λi ≤ 1. λi libre. ; p k ∈ Ω1. (20). ;i ∈ NL. (21). 21.
(22) Se debe notar que una partición factible pk que viole la restricción (20) no hace parte de Ω1, por lo tanto, será un elemento que pertenece a Ω\Ω1. Esto implica que pk es una buena candidata a pertenecer al conjunto Ω1. Por lo tanto, se define el siguiente subproblema que tiene como objetivo encontrar una partición que viole el conjunto de restricciones (20), es decir, una columna (partición) con costo reducido menor que cero.. min. z = 1−. { (i , j ). ∑λ. ⋅x. i ij ∈ A | i ∈ NL }. (22). sujeto a,. x∈Φ. (23). Nótese que en el modelo definido por (22)-(23) el parámetro aik del MP (Ω1) se reemplaza por xij, una variable binaria igual a 1 si se usa el arco (i, j) en la solución, 0 en caso contrario. Estas variables pertenecen al espacio Φ, es decir, cumplen con todas las restricciones del ACPP/BP que definen una partición factible excepto la de atender todos los legs una vez.. La comunicación entre el MP (Ω1) y el subproblema funciona de la siguiente manera. Primero, el MP (Ω1) le pasa las variables duales λi al subproblema, en el que se utilizarán como parámetro en la función objetivo (22). Una vez se soluciona el subproblema y se determina que hay una partición factible con costo reducido negativo, el conjunto de legs que atiende se envía para que el MP (Ω1) lo utilice como insumo para el parámetro aik. Si el costo (ck) no fuera constante y dependiera de la partición generada, ésto también sería información que le pasaría el subproblema al MP (Ω1). Este proceso de comunicación entre los problemas se hace de manera iterativa hasta que no exista una partición factible con costo reducido negativo, es decir, cuando ya no se encuentre una partición en Ω\Ω1 que deba pertenecer a Ω1.. 22.
(23) La solución de MP (Ω1) indicará cuáles de las particiones generadas en el subproblema atenderán todos los legs al menor costo. Sin embargo, dado que se está resolviendo la relajación de MP (Ω), no se garantiza una solución entera de las variables de decisión. De no ser entera la solución, al final del proceso de CG y utilizando las columnas generadas, se procede a encontrar una solución entera por medio de branch-and-bound que puede ser mayor o igual que la solución de la relajación. De no ser posible llegar a una solución entera, se toma el resultado de la relajación como una cota inferior para el problema.. VI.. Modelo de set covering (ACPP/SC). El tercer modelo propuesto parte de una formulación basada en el SCP en la que se minimiza el número de particiones sujeto a que todos los vuelos del itinerario comercial sean atendidos al menos una vez. Ésto implica una modificación en la formulación del ACPP/SP descrita a continuación: MP( Ω) : min. z=. ∑c. k. ⋅θ k. (24). pk ∈ Ω. sujeto a,. ∑a. pk ∈ Ω. k i. ⋅θ k ≥ 1. ;i ∈ N L. (25). θ k ∈ {0,1}. ; pk ∈Ω. (26). La función objetivo (24) minimiza el costo de las tripulaciones necesarias. El conjunto de restricciones (25) indica que un leg puede ser atendido más de una vez, es decir, que puede haber deadheading. Asociado a este mecanismo de planeación, existe un costo que las aerolíneas pueden fijar para favorecer o penalizar los deadheads tal como el costo de oportunidad de no vender esos asientos al público versus el costo de transportar. 23.
(24) una tripulación por otro medio. Incluyendo los costos de deadheading cdh, la formulación del ACPP/SC se presenta a continuación:. min z =. ∑c. p k ∈ Ω1. k. ⋅ θ k + c dh ⋅ ∑ ∑ a ik ⋅ θ k − N L p k ∈ Ω1 i ∈ N L. . (27). sujeto a,. ∑a. pk ∈ Ω1. k i. ⋅θ k ≥ 1. θk ≥0. ;i ∈ N L. (28). ; pk ∈Ω1. (29). La función objetivo definida por la ecuación (27) incluyen dos tipos de costos: el de utilizar una tripulación y el de deadheading. El costo de deadheading (el segundo término de la función objetivo) se define como el número de veces que un leg es atendido multiplicado por el costo que lo penalizará. Finalmente, para utilizar la técnica de CG en el conjunto de restricciones (29) se relaja la naturaleza binaria de las variables de decisión en (26).. De forma similar al ACPP/SP, en el subproblema se define una nueva condición de optimalidad para las particiones que se generen para el ACPP/SC así:. min. z = c + c dh ⋅ ∑ xij − ∑ λi ⋅ xij (i , j ) ∈ A (i , j ) ∈ A . (30). sujeto a,. x∈Φ. (31). Dado que los costos son iguales para toda partición, en la ecuación (30) se define ck ≡ c. Definir este nuevo costo es importante, dado que ahora se incluyen los costos de deadheads y no es posible, como en el ACPP/SC, fijar simplemente los costos ck = 1. Esta. 24.
(25) formulación requiere calibrar la magnitud de cdh en comparación con c para favorecer o penalizar los deadheads. Finalmente, las variables de decisión pertenecen el espacio Φ. Otra condición muy común en la planeación de las operaciones de las aerolíneas es permitir los layovers. Para acomodarlos en la formulación del ACPP/SC se define yi como una variable binaria igual a 1 si la tripulación pernocta en la ciudad de destino del nodo i dado que éste pertenece a la partición generada, 0 en caso contrario. Adicionalmente, sea cpi el costo de pernoctar en la ciudad de destino del nodo i.. Para relacionar las dos variables de decisión xij y yi se define un conjunto de variables auxiliares. Sean ê la ciudad de origen de la partición y ei la ciudad de destino del nodo i. Si estas dos variables tienen el mismo valor, no habrá layover en la ciudad de destino asociada al nodo i. Adicionalmente, se define la variable auxiliar binaria αi que toma el valor de 1 si hay layover en la ciudad de destino del nodo i, 0 en caso contrario. La diferencia entre αi y yi es que en la primera no se asegura que el leg asociado al nodo i, en donde puede existir un layover, pertenece a la partición generada. Las expresiones para definir ê (32) y ei (33) son:. ê =. ∑ ∑o. j∈N i ∈ NL. ei =. ∑d. j∈N. i. j. ⋅ xij. ⋅ xij. (32). ; i ∈ N L , ti < t j. (33). Adicionalmente, las expresiones que relacionan ê y ei con αi (34) son: ei − eˆ + (1 − α i ) ⋅ M ≤ M eˆ − ei + (1 − α i ) ⋅ M ≤ M. ;i ∈ N L. (34). donde M >> 0.. 25.
(26) Por lo tanto, la formulación del ACPP/SC con deadheads y layovers es:. min z = c + c dh ⋅ ∑ xij + ∑ cip ⋅ yi − ∑ λi ⋅ xij (i , j ) ∈ A i∈ N L (i , j ) ∈ A. (35). sujeto a,. (32), (33), (34). yi ≤ α i yi ≤ yi ≥. ;i ∈ N L. ∑x. ij. ∑x. ij. j ∈N. j ∈N. ; i ∈ N L , ti < t j + αi −1. (36). ; i ∈ N L , ti < t j. x∈Φ. (37). yi ∈ {0,1}. ;i ∈ NL. (38). α i ∈ {0,1}. ;i ∈ NL. (39). ei ≥ 0. ;i ∈ NL. (40). eˆ ≥ 0. (41). VII. Experimentos computacionales. Para probar los modelos propuestos, se tomó el caso de estudio de una aerolínea colombiana de mediana escala que maneja un promedio de 152 vuelos semanales. La aerolínea cubre el segmento de precios bajos, que ha tenido una rápida expansión en el mercado. La empresa incorporó recientemente 144 nuevas rutas a su oferta de vuelos. Actualmente, la planeación de las tripulaciones se realiza de forma manual. Para un horizonte de planeación de un día (sin considerar layovers ni deadheads), esta tarea puede tomar cerca de tres horas para encontrar una solución satisfactoria. Por lo tanto los modelos. 26.
(27) propuestos fueron desarrollados como alternativa para la planeación manual, que fuera más rápida y eficiente que los métodos actuales y así, brindar una herramienta a la aerolínea que mejorara su competitividad.. Los métodos propuestos para solucionar el ACPP fueron evaluados con instancias construidas a partir del itinerario comercial de la aerolínea. Las instancias se nombran siguiendo el formato F_DD, donde F representa el tipo de avión y DD los días de la semana que forman el horizonte de planeación. Por ejemplo, la instancia D202_LM planea la operación del lunes y el martes para un Dash-8 202. Los tres modelos fueron solucionados utilizando el optimizador comercial Xpress-MP® versión 18.10.00 en un Dell Optiplex 755 con un procesador Intel Core (TM) 2 Duo corriendo a 3.00GHz y 4GB de memoria RAM.. El primer modelo evaluado fue el ACPP/BP y los resultados se presentan en la Tabla 1. La primera y segunda columna tienen el nombre y el tamaño de la instancia, la tercera y cuarta columna presentan el número de tripulaciones obtenidas con la relajación lineal (LR) del modelo original y el modelo entero (IP), y finalmente, la quinta columna presenta el tiempo computacional (en segundos) requerido para encontrar la solución. Tabla 1: Resultados del ACPP/BP. Instancia. Legs. Num. trip. (LR) Num. trip. (IP) Sol. entera? Tiempo CPU (s). D202_L D202_LM. 24 48. 2 4. 4 4. si si. 2.41 124.56. D202_LMI D202_LMIJ D202_LMIJV D202_LMIJVS D202_LMIJVSD D201_L D201_LM D201_LMI D300_L D300_LM D300_LMI D300_LMIJ. 72 96 120 138 152 99 198 297 45 89 134 178. 4 4 4 4 4 16 12 5 8 8 8. 4 4 16 8 -. si si no no no si no si no no no. 3557.02 31427.63 195.56 488.06 554.78 89.36 3065.03 10.53 8.57 194.43 1039.74. 27.
(28) De los resultados presentados en la Tabla 1 se puede observar que se encontraron soluciones óptimas para 6 de las 14 instancias con variabilidad en los tiempos computacionales. Para las instancias de un día (D202_L, D201_L, y D300_L) se obtuvo el mismo número de tripulaciones que con la solución manual de la empresa. Dado que los vuelos se repiten casi de la misma manera de lunes a viernes para uno de los aviones (D202), se esperaba que las soluciones de estas instancias fueran las mismas. Para otras instancias, solo se reporta la relajación lineal, después de abortar una larga ejecución del procedimiento de branch-and-bound sin encontrar la primera solución entera (e.g., D300_LM). Las demás instancias no fueron evaluadas porque el tiempo computacional aumentaba exponencialmente con el tamaño.. En la Tabla 2, los resultados del ACPP/SP, se contrastan contra los obtenidos con el ACPP/BP, utilizado como punto de referencia. Los resultados indican que se encontraron soluciones enteras para 4 de las 14 instancias en un menor tiempo que con el ACCP/BP, generando ahorros entre 35.32% (D201_L) y 93.20% (D202_LMIJ). Para dos de éstas, el valor de la LR coincide con las soluciones enteras (D202_L y D300_L), mientras que en los dos casos restantes (D202_LM y D202_LMI), la solución entera fue mayor que el valor de la LR presentado entre paréntesis. Adicionalmente, las soluciones no enteras coinciden con los resultados del ACPP/BP para tres instancias, pero en menor tiempo computacional. Se puede notar que el ACPP/SP provee relajaciones más apretadas que los valores obtenidos con el ACPP/BP. Con el ACPP/SP fue posible solucionar la LR de instancias más grandes, incluyendo la de una semana (D202_LMIJVSD). Como era de esperar, se observa que el tiempo computacional aumenta con el tamaño de la instancia, por lo que es necesario encontrar alguna metodología para mejorar este indicador.. 28.
(29) Tabla 2: Resultados del ACPP/SP Instancia. Legs. ACPP/BP Num. Tiempo Num. trip. CPU (s) trip. 4 2.41 4. ACPP/SP Mejora Tiempo tiempo CPU Sol. entera? CPU (s) 0.73 si 69.49%. D202_L. 24. D202_LM D202_LMI D202_LMIJ D202_LMIJV D202_LMIJVS D202_LMIJVSD D201_L D201_LM D201_LMI D300_L D300_LM D300_LMI. 48 72 96 120 138 152 99 198 297 45 89 134. 4 4 4 16 8 9 -. 124.56 5 (4) 3557.02 6 (4) 31427.63 4 -5 -5 -6 89.36 16 -- 16 -- 16 10.53 8 -9 -9. 18.80 244.38 2137.94 15392.20 96754.12 122371.00 57.80 5473.89 351045.23 5.11 290.06 7379.73. si si no no no no no no no si no no. 84.91% 93.13% 93.20% 35.32% 51.49% -. D300_LMIJ. 178. -. --. 72692.00. no. -. 9. Una de las principales razones por las cuales el tiempo computacional, especialmente la solución del subproblema, es tan elevado, es porque las variables de decisión se definen para todas las posibles conexiones entre legs que cumplan condiciones de precedencia y de ventanas de tiempo. Sin embargo, cuando se evalúan las soluciones obtenidas con el ACPP/SP, se encuentra que no existen conexiones entre legs que estén separados por más de dos días (e.g., un leg del lunes no se conecta con uno del jueves o de un día posterior a éste). Por lo tanto, dada la naturaleza de las instancias, se modificó la formulación del subproblema, definiendo como criterio de creación de las variables de decisión que las conexiones factibles entre legs existan si el número de días que los separan no supere un valor igual a dos. En la Tabla 3 se puede observar que, con esta poda de variables, se logra disminuir el tiempo computacional del MP (Ω1) especialmente en instancias grandes. Cabe aclarar que esta estrategia es posible únicamente considerando el comportamiento de las instancias, ya que en otros casos, ésto puede sacrificar optimalidad e inclusive factibilidad de la solución.. 29.
(30) Tabla 3: Resultados del ACPP/SP con la reducción en el número de variables Instancia. Legs. ACPP/SP original ACPP/SP menos variables Mejora Num. Tiempo Num. Tiempo tiempo CPU Sol. entera? trip. CPU (s) trip. CPU (s) 4 0.73 4 0.36 si 50.95%. D202_L. 24. D202_LM D202_LMI D202_LMIJ D202_LMIJV D202_LMIJVS D202_LMIJVSD D201_L D201_LM D201_LMI D300_L D300_LM D300_LMI. 48 72 96 120 138 152 99 198 297 45 89 134. 5(4) 6(4) 4 5 5 6 16 16 16 8 9 9. D300_LMIJ. 178. 9. 18.80 5 (4) 244.38 6 (4) 2137.94 4 15392.20 5 96754.12 5 122371.00 6 57.80 16 5473.89 16 351045.23 16 5.11 8 290.06 9 7379.73 9 72692.00. 9. 21.11 255.16 1523.25 10917.50 45825.80 63137.40 23.50 4137.16 160639.00 2.44 131.47 3423.08. si si no no no no no no no si no no. -12.31% -4.41% 28.75% 29.07% 52.64% 48.40% 59.34% 24.42% 54.24% 52.29% 54.68% 53.62%. 55903.30. no. 23.10%. Observando el comportamiento del método de solución, se puede notar que el problema es altamente degenerado. Ésto se puede explicar porque, al definir ck = 1, se está asumiendo que todas las columnas con costo reducido negativo son iguales y no hay una diferenciación entre las particiones. Por lo tanto, se definió un nuevo criterio para costear las columnas basado en el tiempo ocioso (tiempo muerto) de cada partición. La razón por la cual se escogió este criterio es porque la idea es utilizar las tripulaciones lo mejor posible (de manera más eficiente), teniendo en cuenta que cada minuto que una de éstas está inactiva, es una subutilización del recurso. Por lo tanto, el costo de una tripulación (ck) se reemplaza por un costo fijo de una tripulación (cc) y un costo variable relacionado con el tiempo muerto (ccm). Los resultados obtenidos con esta modificación se compararon con los resultados para el ACPP/SP con la disminución en el número de variables y se presentan en la Tabla 4. El primer resultado que cabe resaltar es la disminución en el número de tripulaciones necesarias si la solución del ACPP/SP es entera, para 7 de 8 instancias (e.g., D202_LM) mientras se mantienen los valores de la LR que se obtuvieron con los modelos anteriores. Más aún, se encontraron soluciones enteras para más instancias con el nuevo criterio de costeo que con el ACPP/SP original y con la reducción en el número de. 30.
(31) variables (e.g., D202_LMIJ). Sin embargo, estas mejoras se obtuvieron con mayores tiempos computacionales.. Tabla 4: Resultados del ACPP/SP costeando con el tiempo muerto Instancia. Legs. D202_L D202_LM D202_LMI. 24 48 72. D202_LMIJ D202_LMIJV D202_LMIJVS D202_LMIJVSD D201_L D201_LM D201_LMI D300_L D300_LM D300_LMI D300_LMIJ. 96 120 138 152 99 198 297 45 89 134 178. ACPP/SP menos variables ACPP/SP tiempo muerto Mejora Num. Tiempo Sol. Num. Tiempo Sol. tiempo CPU trip. CPU (s) entera? trip. CPU (s) entera? 4 0.36 si 4 0.45 si -25.83% 5 (4) 21.11 si 4 50.20 si -137.82% 6 (4) 255.16 si 5 (4) 244.45 si 4.20% 4 5 5 6 16 16 16 8 9 9 9. 1523.25 10917.50 45825.80 63137.40 23.50 4137.16 160639.00 2.44 131.47 3423.08 55903.30. no no no no no no no si no no no. 5 (4) 3026.88 8(5) 45252.40 8(6) 92593.60 8(6.5) 106159.00 16 83.31 17(16) 48483.00 --8 3.44 9 572.47 10(9) 11361.10 -- --. si si si si si si -si si si --. -98.71% -314.49% -102.06% -68.14% -254.51% -1071.89% --41.10% -335.44% -231.90% --. Finalmente, la Tabla 5 muestra los resultados para el ACPP/SC incluyendo deadheads y layovers. En las instancias construidas se penalizaron los deadheads con un costo mayor al de una tripulación, asumiendo que éstos son altamente indeseables (varía con el criterio de la aerolínea). Con base en los buenos resultados obtenidos con la poda de variables y la diferenciación de las columnas, se mantuvieron estos cambios para el ACPP/SC. Se puede observar que las soluciones para todas las instancias evaluadas son enteras y que el valor de la relajación mejoró. Es importante notar que se logró resolver una instancia para una semana completa (D202_LMIJVSD) en un tiempo cercano a 11 horas. Aunque inicialmente puede parecer un tiempo elevado, se debe tener en cuenta que la planeación de las operaciones en la aerolínea se llevan a cabo cuatro veces por año: vacaciones de fin de año, Semana Santa, vacaciones de mitad de año y temporada normal (baja). Una vez definida, la planeación para una semana se repite de la misma manera una y otra vez. De otro lado, es importante comparar este tiempo contra las tres horas que le toma al operario planear manualmente un día.. 31.
(32) Tabla 5: Resultados del ACPP/SC Instancia. Legs. Num. trip.. D202_L D202_LM D202_LMI D202_LMIJ D202_LMIJV D202_LMIJVS D202_LMIJVSD D201_L D201_LM D201_LMI D300_L. 24 48 72 96 120 138 152 99 198 297 45. 4 4 5(4) 4 6(5) 6 7(6.5) 16 18(16) 21 (16) 8. D300_LM. 89. D300_LMI D300_LMIJ. 134 178. Tiempo CPU (s) Sol. entera? 0.56 40.64 419.09 1928.91 21367.80 24424.30 38356.50 76.70 40296.90 454811.00 1.19. si si si si si si si si si si si. 9. 106.61. si. 9 12(9). 4079.89 7076.46. si si. VIII. Conclusiones y trabajo futuro. A partir del caso de estudio en una aerolínea comercial de mediana escala se propuso un conjunto de modelos de optimización que permiten encontrar el mínimo número de tripulaciones para cubrir todos los vuelos de un itinerario comercial en un horizonte de planeación de una semana. El ACPP/BP, que sirve como una formulación de referencia, presenta algunas limitaciones computacionales y falla al solucionar instancias grandes. El enfoque de formular el ACPP como un SPP resulta en el ACPP/SP, un modelo que provee soluciones que, aunque no siempre son enteras, se pueden utilizar como cotas inferiores para otros modelos o procedimientos. El hecho de permitir deadheads relaja el SPP en un modelo de SCP, resultando en el ACPP/SC. Éste encuentra soluciones enteras para más instancias (y más grandes) que con el ACPP/BP y el ACPP/SP y provee una amplia variedad de soluciones al penalizar o no la existencia de deadheads dependiendo de los objetivos de la aerolínea. Adicionalmente, la formulación propuesta del ACPP/SC incorpora características generales de la industria y particulares de la empresa como el. 32.
(33) costo de una tripulación, el costo del tiempo muerto, las pernoctas y el deadheading, todos éstos flexibles de ser adaptados por la empresa según sus intereses.. Con el ACPP/SC se resolvieron instancias de tamaños entre 24 vuelos (D202_L) y 297 vuelos (D201_LMI) en un tiempo computacional que oscilaba entre 0.56 segundos y 11.20 horas. Cuando se comparan estos resultados con la planeación actual de la aerolínea, cabe mencionar que la planeación de las operaciones de un día toma cerca de 3 horas sin ninguna prueba con respecto a la calidad de la solución. De otro lado, con los modelos propuestos, la instancia más grande asociada a un horizonte de planeación de un día se resuelve en menos de dos minutos con una calidad de la solución garantizada. Se espera que los modelos propuestos mejoren la planeación de las tripulaciones de la aerolínea de tal manera que le generen ahorros anuales significativos y que le permitan ser más competitiva.. Una propuesta de trabajo futuro que se está desarrollando actualmente, incluye el diseño e implementación de un método heurístico para mejorar la eficiencia del subproblema en la técnica de generación de columnas. En particular, se planea extender los resultados de la heurística basada en split descrita en Vargas et al. (2009) al problema de particiones de múltiples días descrita en este trabajo. De otro lado, se pueden formular modelos para el Airline Crew Rostering Problem integrados al ACPP para generar soluciones a la planeación completa de las tripulaciones. Adicionalmente, se propone el desarrollo de una herramienta fácil de implementar en la empresa, con una interfaz para el usuario que le permita al operador cambiar los valores de los parámetros para generar variedad en las soluciones visibles. De otro lado, se podrían evaluar instancias más grandes o pertenecientes a otras aerolíneas. Finalmente, la formulación del ACPP/SC se podría modificar para vuelos en los que se requieran dos o más tripulaciones, como los vuelos transatlánticos.. 33.
(34) Referencias. Ahmadbeygi, S., Cohn, A., & Weir, M. 2008. An integer programming approach to generating airline crew pairings. Computers & Operations Research, In Press. DOI: 10.1016/j.cor.2008.02.001.. Ahmed, A.H. & Poojari, C.A. 2008. An overview of the issues in the airline industry and the role of optimization models and algorithms. Journal of the Operational Research Society, 59: 267-277.. Anbil, R., Gelman, E., Patty, B. & Tanga, R. 1991. Recent advances in crew-pairing optimization at American Airlines. Interfaces, 21(1): 62-74.. Anbil, R., Forrest, J.J. & Pulleyblank, W.R. 1998. Column generation and the airline crew pairing problem. Documenta Mathematica, Extra volume ICM III: 677-686.. Arabeyre, J.P., Fearnley, J. & Teather, W. 1969. The airline crew scheduling problem: a survey. Transportation Science, 3: 140-163.. Barnhart, C., Cohn, A.M., Johnson, E.L., Klabjan, D., Nemhauser, G.L., & Vance, P.H. 2003. Airline Crew Scheduling. In: Handbook of Transportation Science (R. Hall, ed.), Kluwer Academic Publishers, pp. 517-560.. Crawford, B., Castro, C. & Monfroy, E. 2006. A hybrid ant algorithm for the airline crew pairing problem. Lecture Notes in Computer Science in MICAI 2006 (Springer-Verlag Berlin Heidelberg), 4293: 381-391.. 34.
(35) Ching Chang, S. 2006. An improved genetic algorithm for the dynamic cargo crew pairing problem. Proceedings of the 9th WSEAS International Conference on Applied Mathematics, Istanbul, Turkey, May 27-29, 2006, 4293: 205-213.. Ernst, A.T., Jiang, H., Krishnamoorthy, M., Owens, B., and Sier, D. 2004. An annotated bibliography of personnel scheduling and rostering. Annals of Operations Research, pp. 21144.. Gopalakrishnan, B. & Johnson, E. 2005. Airline crew scheduling: State-of-the-art. Annals of Operations Research, 140(1):305-337.. Guo, Y., Mellouli, T., Suhl, L. & Thiel, M. 2006. Airline A partially integrated airline crew scheduling approach with time-dependent crew capacities and multiple home bases. European Journal of Operational Research, 170:1169-1181.. Hoffman, K.L. & Padberg, M. 1993. Solving airline crew scheduling problems by branchand-cut. Management Science, 39:657-682.. Klabjan, D. 2005. Large-scale models in the airline industry. In: Column generation (M.M. Solomon, ed.), Springer, New York, pp. 163-195.. Lavoie, S., Minoux, M. & Odier, E. 1988. A new approach for crew pairing problems by column generation with an application to air transportation. European Journal of Operational Research, 35:45–58.. Levine, D. 1996. Application of a hybrid genetic algorithm to airline crew scheduling. Computers & Operations Research, 23:547–558.. Marsten, R. E. & Shepardson, F. 1981. Exact solution of crew problems using the set partitioning mode, recent successful applications. Networks, 11:165–177.. 35.
(36) Sylla, A. 2000. Operations research in the airline industry. Technical Report, University of Oulu, pp. 49-50.. Pavlopoulou, C. & Gionis, A. 1996. Crew pairing optimization based on CLP. University of Athens, Department of Informathics.. Vance, C., Atamtürk, A., Barnhart, C., Gelman, E., Johnson, E.L., Krishna, A., Mahidhara, D., Nemhauser. G.L. & Rebello, R. 1997. Heuristic branch-and-price approach for the airline crew pairing problem. pp.29.. Vargas, M.A., Walteros, J.L. & Medaglia, A.L. 2009. Hybrid approach to airline crew pairing optimization for small carriers. To appear in Proceedings of the 2009 Industrial Engineering Research Conference. Miami, FL. May 30 - June 3, 2009.. Yu, G. & Yang, J. 1998. Optimisation application in the airline industry. In: Du, D., Pardalos, P.M. (eds) Handbook of Combinatorial Optimization, Kluwer Academic Publishers, Netherlands, 2:635-726.. 36.
(37)
Documento similar
Abstract: This paper reviews the dialogue and controversies between the paratexts of a corpus of collections of short novels –and romances– publi- shed from 1624 to 1637:
Entre nosotros anda un escritor de cosas de filología, paisano de Costa, que no deja de tener ingenio y garbo; pero cuyas obras tienen de todo menos de ciencia, y aun
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,
Las manifestaciones musicales y su organización institucional a lo largo de los siglos XVI al XVIII son aspectos poco conocidos de la cultura alicantina. Analizar el alcance y
En la parte central de la línea, entre los planes de gobierno o dirección política, en el extremo izquierdo, y los planes reguladores del uso del suelo (urbanísticos y
Para recibir todos los números de referencia en un solo correo electrónico, es necesario que las solicitudes estén cumplimentadas y sean todos los datos válidos, incluido el
La determinación molecular es esencial para continuar optimizando el abordaje del cáncer de pulmón, por lo que es necesaria su inclusión en la cartera de servicios del Sistema
trañables para él: el campo, la vida del labriego, otra vez el tiempo, insinuando ahora una novedad: la distinción del tiempo pleno, el tiempo-vida, y el tiempo