Rodrigo Ros Diego Fernández

36
Aplicación de algoritmos genéticos híbridos para resolver el problema de “airline crew scheduling” Rodrigo Ros Diego Fernández Paper: Genetic algorithm based approach for the integrated airline crew-pairing and rostering problem - Nadia Souai, Jacques Teghem- European Journal of Operational Research, 2009. Meta heurísticas, 2 do Cuatrimestre del 2010

description

Aplicación de algoritmos genéticos híbridos para resolver el problema de “airline crew scheduling”. Paper: Genetic algorithm based approach for the integrated airline crew-pairing and rostering problem - Nadia Souai, Jacques Teghem- European Journal of Operational Research, 2009. Rodrigo Ros - PowerPoint PPT Presentation

Transcript of Rodrigo Ros Diego Fernández

Page 1: Rodrigo Ros Diego Fernández

Aplicación de algoritmos genéticos híbridos para resolver el problema

de “airline crew scheduling”

Rodrigo RosDiego Fernández

Paper: Genetic algorithm based approach for the integrated airline crew-pairing and rostering problem - Nadia Souai, Jacques Teghem- European Journal of Operational Research, 2009.

Meta heurísticas, 2do Cuatrimestre del 2010

Page 2: Rodrigo Ros Diego Fernández

Introducción

Introducción al problema

Airline Crew Scheduling Problem

El problema de programar la tripulación de una compañía aérea es un problema difícil y que deben afrontar todas las compañías. El costo relacionado a los miembros de la tripulación constituye, después del combustible, el principal costo directo que debe afrontar las compañías aéreas.

El problema se conoce como Airline Crew Scheduling Problem. Generalmente se divide este problema en dos problemas menores.

Page 3: Rodrigo Ros Diego Fernández

Introducción

Airline crew scheduling

ATL

MIA

JFKMEM

10:00 – 11:00

8:30 – 9:30

9:00 – 11:00

11:30 – 12:30

12:45 – 14:00

< 4hs – 75%

4-8hs – 100%

+8hs – 200%

Page 4: Rodrigo Ros Diego Fernández

Introducción

Airline crew scheduling

ATL

MIA

JFKMEM

10:00 – 11:00

8:30 – 9:30

9:00 – 11:00

11:30 – 12:30

12:45 – 14:00

0.75

Page 5: Rodrigo Ros Diego Fernández

Introducción

Airline crew scheduling

ATL

MIA

JFKMEM

10:00 – 11:00

8:30 – 9:30

9:00 – 11:00

11:30 – 12:30

12:45 – 14:00

1.00

Page 6: Rodrigo Ros Diego Fernández

Introducción

Airline crew pairing

ATL

MIA

JFKMEM

10:00 – 11:00

8:30 – 9:30

9:00 – 11:00

11:30 – 12:30

12:45 – 14:00

Page 7: Rodrigo Ros Diego Fernández

Introducción

Airline crew rostering

ATL

MIA

JFKMEM

10:00 – 11:00

8:30 – 9:30

9:00 – 11:00

11:30 – 12:30

12:45 – 14:00

Page 8: Rodrigo Ros Diego Fernández

Introducción

Airline Crew Pairing Problem: Consiste en encontrar un conjunto de viajes (secuencia de vuelos) que comiencen y terminen en el lugar base de la tripulación y que cubran todos los vuelos programados para un periodo de tiempo.

Airline Crew Rostering Problem: Consiste en asignar los “pairings” encontrados como solución del problema anterior a cada uno de los tripulantes teniendo en cuenta, entre otras cosas, su disponibilidad (vacaciones, exámenes médicos, días de entrenamiento), preferencia de vuelo, rango, etc.

Ambos problemas son NP-Hard.

Page 9: Rodrigo Ros Diego Fernández

Introducción

Page 10: Rodrigo Ros Diego Fernández

Introducción

Restricciones diarias: necesarias para armar duty days legales La ciudad de llegada de un vuelo debe ser la ciudad de partida del vuelo que sucede en el día de trabajo. El tiempo de espera entre dos vuelos consecutivos debe estar dentro de un mínimo y un máximo prescripto. El tiempo de duración de un día de trabajo debe ser menor a un máximo permitido. El tiempo total en vuelo no puede exceder un máximo permitido. El día de trabajo no puede tener mas de una cantidad máxima de vuelos.

Restricciones del pairing: La ciudad de llegada en un día de trabajo debe ser la ciudad de partida del día de trabajo siguiente dentro del pairing. Cada pairing debe comenzar y terminar en la misma ciudad (ciudad base de la tripulación). El numero de días de trabajo debe ser menor a un máximo. El tiempo de descanso entre dos días consecutivos debe estar dentro de un rango permitido. El tiempo total del pairing debe ser menor a un tiempo permitido.

Page 11: Rodrigo Ros Diego Fernández

Introducción

Restricciones semanales: restricciones generales para armar una agenda semanal personalizada por tripulante.

Los pairings no se pueden superponer. El tiempo total de vuelo de todos los pairings no puede superar un máximo. Cada agenda semanal debe contener al menos un día de descanso.

Restricciones mensuales: restricciones requeridas para armar una agenda mensual personalizada por tripulante.

Las agendas semanales no se pueden superponer. El tiempo total de vuelo de todos los pairings del mes no puede superar un máximo. Cada uno de los tripulantes recibe un salario mínimo garantizado por cierta cantidad de horas de trabajo mas un monto adicional por las horas extras en vuelo.

Page 12: Rodrigo Ros Diego Fernández

Algoritmos Genéticos

Algoritmos Genéticos

Comienzan con un conjunto de soluciones (representados por cromosomas) llamado población. Las soluciones de una población son usadas para generar nuevas poblaciones con la esperanza de que las nuevas poblaciones sean mejores que las anteriores.

Estructura general del algoritmo:

Empezar t := 0 inicializar P(t) evaluar P(t) Mientras no se cumpla la condición de parada hacer Empezar t:= t + 1 construir P (t) a partir de P( t-1) modificar P(t) evaluar P (t) FinFin

Page 13: Rodrigo Ros Diego Fernández

Algoritmos Genéticos

Para construir un algoritmo genético específico para un problema se necesita:

Representación genética de las soluciones (Cromosomas)

Forma de generar la población inicial

Función de evaluación (fitness)

Operadores genéticos que alteren la composición de los hijos. (Crossover, Mutación)

Determinación de parámetros

Page 14: Rodrigo Ros Diego Fernández

Resolución

Resolución

Solución de ambos problemas en simultaneo (pocos estudios).

Algoritmo genético híbrido

Multi-point Crossover

Roulette wheel selection

Heurísticas de búsqueda local

Elitist replacement

Una solución X del problema es un conjunto de agendas personalizadas para cada uno de los miembro de la tripulación.

Page 15: Rodrigo Ros Diego Fernández

Resolución - Objetivo

Objetivo

Definición del costo:

El costo de un día de trabajo, expresado en tiempo es:

mg1 es el mínimo garantizado de horas. f1 es una fracción del tiempo transcurrido elpasedl del día de trabajo. flyl es el tiempo de vuelo del día de trabajo.

El costo de un pairing, expresado en tiempo es:

un mínimo garantizado de mg2 veces el numero de días de trabajo (NDP) en el pairing. una fracción f2 del tiempo total del pairing TAFB_P. la suma de los costos de cada uno de los días del pairing.

Page 16: Rodrigo Ros Diego Fernández

Resolución - Objetivo

Sea X una solución al problema (un conjunto de las agendas personalizadas de los para cada uno de los tripulantes), se define

donde HS es el monto que la compañía aérea paga por cada hora excedente de vuelo. El costo total de la solución X es:

Page 17: Rodrigo Ros Diego Fernández

Resolución - Objetivo

Definición del desvío:

Es deseable que el trabajo este bien repartido entre la tripulación.Sean

RF_k(X) el tiempo real de vuelo del tripulante k en la solución X AVf el tiempo promedio de vuelo para los tripulantes

Se define el desvío de la solución X como:

Objetivo:

Se establece un bi-objetivo jerárquico: minimizar el costo cost(X) y para las soluciones que tengan igual costo el segundo objetivo es minimizar el desvío DV(X).

Page 18: Rodrigo Ros Diego Fernández

Resolución - Notación

Notación

J Conjunto de días del mesK Conjunto de todos los tripulantesI Conjunto de todos los segmentos de vuelo a asignarDP(j) Conjunto de todos los periodos de trabajo del día jIjl Conjunto de los vuelos del día j que constituyen el periodo de

trabajo l

Legalidad de una solución: X es legal si se cumplen todas las restricciones.

Factibilidad de una solución: X es factible si cada vuelo es cubierto exactamente una vez.

Page 19: Rodrigo Ros Diego Fernández

Resolución - Algoritmo

Algoritmo

Cada iteración del algoritmo genético propuesto se puede dividir en dos etapas:

La primera etapa esta basada en un multi-point crossover o una mutación. Las operaciones consisten principalmente en reasignar ciertos días de trabajo entre los diferentes tripulantes.

Se permiten soluciones que sean solamente legales (pueden no ser factibles).

Para la segunda etapa dos heurísticas son aplicadas al azar para reducir la penalidad relacionada a la factibilidad de la solución.

Page 20: Rodrigo Ros Diego Fernández

Resolución - Algoritmo

Page 21: Rodrigo Ros Diego Fernández

Resolución - Algoritmo

Representación genética

Los cromosomas de las soluciones son representados mediante una matriz

Donde el gen puede tomar los siguientes valores:

Page 22: Rodrigo Ros Diego Fernández

Resolución - Algoritmo

Población inicial

Determinación de las tareas diarias DP(j)

Se construye un grafo dirigido G(j) = <V(j),E(j)> para cada día j.V(j) representa los vuelosEl eje <i, i’> significa que el vuelo i’ puede suceder al vuelo i en el mismo día.

1) Por cada nodo raíz seleccionar de manera aleatoria un camino factible según las reglas de restricción.2) Eliminar los nodos del camino recientemente elegido del grafo.3) Repetir hasta que todos los nodos hayan sido utilizados.

El conjunto DP(j) cubre todos los vuelos exactamente una vez pero puede no de cardinalidad mínima.

Page 23: Rodrigo Ros Diego Fernández

Resolución - Algoritmo

Asignación de las tareas diarias

: posibles tareas diarias para el tripulante k en el día j que cumplen la legalidad de la solución respecto a las asignaciones de días anteriores.

Page 24: Rodrigo Ros Diego Fernández

Resolución - Algoritmo

Selección

Se utiliza el método roulette wheel selection.El método consiste en asociar una probabilidad de selección a cada una de las soluciones basado en el valor de evaluación de la solución.

Se utiliza principalmente para incluir dentro de la selección algunas soluciones que no estén dentro de las mejores.

La función de evaluación esta dada por:

donde

Page 25: Rodrigo Ros Diego Fernández

Resolución - Algoritmo

Multi Point Crossover

Se seleccionan de forma aleatoria: Un numero T, 1<= T <= min(|K|, |J|) T genes distintos de forma tal que no compartan días ni tripulantes (no pueden estar en la misma fila ni misma columna)

Se presentan dos versiones del crossover:

Versión simplificada: Se intercambian directamente los genes entre las soluciones.

Versión probabilística: Se intercambian los genes que no violan la legalidad de la solución. Para los genes que violan la legalidad: si el intercambio disminuye la penalidad del día, se acepta el cambio. Si no disminuye se realiza el intercambio con una probabilidad P.

Como no se puede asegurar la legalidad de la solución, luego del crossover se utiliza la heurística “reparación de legalidad”.

Page 26: Rodrigo Ros Diego Fernández

Resolución - Algoritmo

Heurística de búsqueda local: “legality repair”

Se aplica después de los algoritmos de crossover y mutación, para obtener soluciones legales

Objetivo: Reconstruir el conjunto de asignaciones (DP) para que cubra la mayor cantidad de vuelos posibles.

Una solución es legal si cumple con las restricciones. Para una solución X, L(X) es la lista de pares (crew, día) con

asignaciones ilegales. X es legal si L(X) =

Page 27: Rodrigo Ros Diego Fernández

Resolución - Algoritmo

Heurística de búsqueda local: “legality repair”

Por cada solución ilegal X

Por cada xkj = (k, j) L(X)Construir un conjunto DPkj(X) con todas las posibles asignaciones para k que cubra al menos uno de los vuelos posibles (Nf = vuelos del día j vuelos no asignados) .

Si DPkj(X) entonces

Seleccionar el I’ DPkj(X) que cubra el máximo número de

vuelos de Nf

xkj I’

si no

xkj 0

Page 28: Rodrigo Ros Diego Fernández

Resolución - Algoritmo

Mutación

La mutación consiste en seleccionar de forma aleatoria un día j y dos tripulantes k1 y k2 que tenga disponibilidad ese día ( y ) e intercambiarlos.

Como no se puede asegurar la legalidad de la solución es necesario correr la heurística “reparación de legalidad”.

Page 29: Rodrigo Ros Diego Fernández

Resolución - Algoritmo

Heurísticas “feasibility repair”

El objetivo de estas heurísticas es mejorar la solución propuesta en cada iteración del algoritmo genético.

Una solución es viable (feasible) si cubre todos los vuelos solo una vez.

Se aplican dos posibles heurísticas de reparación de viabilidad:Random feasibility repair (RFRH)Improved feasibility repair (IFRH)

La elección de una heurística u otra se hace aleatoriamente en base a un parámetro que determina la probabilidad de aplicar o no RFRH.

Page 30: Rodrigo Ros Diego Fernández

Resolución - Algoritmo

ri = asignaciones que cubren el vuelo i

Heurística Random feasibility repair (RFRH)|ri| = 0

Selecciona al azar un miembro que pueda cubrir el vuelo i.Y reemplaza la asignación para ese miembro de forma tal de cubrir i.

|ri| > 1Del conjunto de miembros que cubren el vuelo i (Ki) selecciona uno al azar y quita la asignación del resto mientras se mantenga la legalidad.

Heurística Improved feasibility repair (IFRH)|ri|= 0 – Igual que la heurística anterior|ri| > 1

Reasigna las tareas de todos los miembros de Ki de forma tal que se cubra la mayor cantidad de vuelos posibles sin repetir i.

Page 31: Rodrigo Ros Diego Fernández

Resolución - Algoritmo

Reemplazo de soluciones

Elitist replacement

Una vez obtenida una nueva solución (mutación o crossover) se reemplaza la peor solución de la población anterior por la nueva solución siempre y cuando ésta última sea mejor (función de evaluación).

Esta técnica permite que los mejores padres coexistan con los mejores hijos.

Page 32: Rodrigo Ros Diego Fernández

Resultados

ResultadosLas instancias de prueba fueron datos reales provistos por la compañía aérea Air – Algérie.

Instancia 165 pairings, 220 vuelos, 5 pilotos del 1/3/2004 al 31/3/2004

Instancia 2155 pairings, 631 vuelos, 19 pilotos del 1/5/2005 al 31/3/2005

Instancia 3558 pairings, 1872 vuelos, 68 pilotos del 1/3/2006 al 31/3/2006

Page 33: Rodrigo Ros Diego Fernández

Resultados

Resultados

Iteraciones = 300Probabiliad Crossover (Pc) = 0,7#Población = 100

Page 34: Rodrigo Ros Diego Fernández

Resultados

Page 35: Rodrigo Ros Diego Fernández

Conclusiones

ConclusionesLa combinación de heurísticas RFRH y IFRH dio mejores resultados, que utilizar solo RFHR o IFHR (en este segundo caso la diferencia fue mucho menor)

El cross-over multipoint probabilístico dio en general mejores asignaciones en cuanto al desvío del tiempo (DV)

La inicialización con programación lineal dío mejores resultados en cuanto a DV y obtuvo soluciones viables en una menor cantidad de iteraciones.

Page 36: Rodrigo Ros Diego Fernández

Gracias por su atención.