Crew scheduling algoritmo genetico heuristica

31
El problema del crew scheduling en transporte subterráneo de pasajeros: Implementación de solución mediante heurística Alcívar Cevallos Roberth Abel, Contreras Fernández Juan Pablo, Párraga Álava Jorge Antonio. (roberth.alcivar, juan.contrerasff, jorge.parraga)@usach.cl Universidad de Santiago de Chile Avenida Libertador Bernardo O'Higgins nº 3363. Estación Central. Santiago. Chile

Transcript of Crew scheduling algoritmo genetico heuristica

Page 1: Crew scheduling algoritmo genetico heuristica

El problema del crew scheduling en transporte subterráneo de pasajeros: Implementación de solución mediante heurística

Alcívar Cevallos Roberth Abel, Contreras Fernández Juan Pablo, Párraga Álava Jorge Antonio.

(roberth.alcivar, juan.contrerasff, jorge.parraga)@usach.cl

Universidad de Santiago de Chile

Avenida Libertador Bernardo O'Higgins nº 3363. Estación Central. Santiago. Chile

Page 2: Crew scheduling algoritmo genetico heuristica

Resumen

Con el objetivo de solucionar el problema de crew scheduling en transporte subterráneo de

pasajeros, se realizó un análisis de características relevantes del mismo lo que permitió

establecer los tres pasos que guían el proceso: programación del movimiento de trenes,

generación de los servicios de conducción y Asignación de los conductores a los servicios.

Con el análisis realizado, fue posible formular el problema en forma matemática y dar

solución al mismo mediante un algoritmo goloso que usará como heurística algoritmos

genéticos. Esto permitió llegar a una solución óptima (consistió en 8 servicios para

cumplir las 100 tareas de las instancias usadas) de programación apropiada para todos los

servicios de conducción del transporte subterráneo de pasajeros a desarrollar en un mismo

día.

Palabras clave Crew Scheduling, Algoritmos genéticos, Heurística, Algoritmo voraz.

Page 3: Crew scheduling algoritmo genetico heuristica

1

1. Introducción

Una metaheurística es un método heurístico para resolver un tipo de problema

computacional general, usando los parámetros dados por el usuario sobre unos

procedimientos genéricos y abstractos de una manera que se espera eficiente. Normalmente,

estos procedimientos son heurísticos. El nombre combina el prefijo griego "meta" ("más

allá", aquí con el sentido de "nivel superior") y "heurístico" (de ευρισκειν, heuriskein,

"encontrar"). Las metaheurísticas generalmente se aplican a problemas que no tienen un

algoritmo o heurística específica que dé una solución satisfactoria; o bien cuando no es

posible implementar ese método óptimo. La mayoría de las metaheurísticas tienen como

objetivo los problemas de optimización combinatoria.

Por otra parte en diversas organizaciones la posibilidad de disponer de operarios

requeridos en el momento en que son necesarios es un factor crítico para satisfacer las

necesidades de los clientes. En sistemas de transporte público esto es particularmente

relevante ya que uno de los mayores costos corresponde a la tripulación de los vehículos.

Por esto, existe interés por investigar e implementar metodologías que permitan mejorar el

uso de los recursos, como la tripulación. (Wren, 1972).

En este estudio, se trata el Problema de Asignación de Horarios (crew scheduling, CS); el

cual proporciona, en base a tiempos de horario de viajes, qué conductores y/o tripulación

conducirán los vehículos, considerando tiempos para: descanso, almuerzo, conducción

continua, etc. (Mahn, 2013)

De allí que en este trabajo se describe una propuesta de solución que permita

encontrar una programación apropiada para todos los servicios de conducción a desarrollar

en un mismo día mediante el uso de herramientas de computación evolutiva como algoritmo

goloso, heurísticas y algoritmos genéticos.

Page 4: Crew scheduling algoritmo genetico heuristica

2

2. Materiales y Métodos

2.1. Caracterización del problema

Los problemas de crew scheduling surgen en la gestión del transporte de carga y

pasajeros de líneas aéreas, buses, trenes, etc. El proceso de programación de servicios y

conductores de un sistema de transporte subterráneo de pasajeros se puede descomponer en

tres pasos:

Programación del movimiento de trenes,

Generación de los servicios de conducción y

Asignación de los conductores a los servicios.

La resolución de los tres pasos permite generar la programación operativa completa.

El primer paso consiste en la generación de una programación horaria que

especifique el movimiento de trenes entre los lugares de inicio y término de viaje. En esta

definición se tiene en cuenta la demanda de viajes que existe entre los diferentes orígenes y

destinos de la red, el material rodante disponible y un adecuado balance entre la calidad del

servicio a los pasajeros o clientes y el costo operacional. En consecuencia, se genera el

conjunto de viajes que debe ser realizado durante un día. Cada viaje se define por el número

del tren, el tiempo y el lugar de inicio y el tiempo y el lugar de destino.

A partir de la programación horaria generada, en el segundo paso se generan los

servicios de conducción, es decir, subconjuntos factibles de viajes que pueden ser realizados

por un único conductor.

Finalmente, en el tercer paso, cada servicio de conducción generado es asociado a

un conductor, teniendo en cuenta la rotación homogénea de los conductores entre los

servicios de conducción en un periodo más largo de programación y además, considerando

actividades adicionales tales como: días libres, vacaciones, fines de semana, periodos de

entrenamiento, etc. Como resultado se genera la programación semanal o mensual.

Page 5: Crew scheduling algoritmo genetico heuristica

3

El problema que se busca resolver en este estudio surge del segundo paso

relacionado a servicios de conducción, es decir, subconjuntos factibles de viajes que pueden

ser realizados por un único conductor, en el cual se debe considerar lo siguiente:

(Restricciones adicionales)

Estaciones de relevo. Algunas de las estaciones de la red tienen las

implementaciones adecuadas que permiten que los conductores puedan

esperar para realizar un viaje, descansar o realizar su colación. Típicamente

son las estaciones en los extremos de cada línea, sin embargo, también

pueden existir estaciones intermedias de relevo. Esta característica del

problema se refleja en el timetabling (tabla de horarios) mediante un aumento

de la frecuencia en tales trechos.

Tiempo máximo de conducción. Para cada servicio de conducción se debe

respetar un valor límite para el tiempo que cada conductor puede dirigir un

tren.

Tiempo de conducción continua. Cada servicio de conducción debe

considerar un tiempo máximo de conducción continua, con el fin de permitir

descanso al conductor.

Colación y descanso. Cada servicio de conducción debe contener un

intervalo de tiempo predefinido para colación e intervalos de descanso. El

tiempo total de descanso considerado en un servicio de conducción no puede

superar un límite máximo. Al considerar todos los servicio de conducción

generados los periodos de colación y descanso deben estar homogéneamente

distribuidos en los servicio de conducción.

Turnos laborales. Con el fin de cubrir el tiempo de servicio de una jornada

diaria se requiere de varios turnos laborales. Tales turnos, son cubiertos por

un conjunto de conductores contratados en jornada completa y otro

compuesto por conductores en jornada parcial. De preferencia, los primeros

deben realizar sus servicio de conducción hasta cierta hora de la tarde

después de la cual, las actividades deben ser realizados por los conductores de

jornada parcial. De esta manera, se debe generar un conjunto de servicio de

Page 6: Crew scheduling algoritmo genetico heuristica

4

conducción para cada grupo de trabajadores, considerando el tiempo de inicio

de cada turno como dato del problema.

Conductores como pasajeros. Un conductor puede iniciar una tarea en una

estación de relevo distinta a la de término de la tarea previa. Entonces, se

considera que el conductor puede viajar como pasajero en un tren con el fin

que llegue con anterioridad al inicio de su próximo viaje.

Rutas. La red de transporte contiene varias líneas diferentes, sin embargo, no

se permite que viajes de líneas distintas sean asignados a un único servicio de

conducción.

Holguras de conducción. Una holgura es el mínimo intervalo de tiempo que

debe existir entre dos tareas consecutivas. Se permite un número fijo de tipos

de holguras distintas en un día. Por ejemplo, las holgura para el intervalo

7:00-8:00 hrs. a.m. puede ser de dos minutos, mientras que en el intervalos de

tiempo 13:00-14:00 puede ser de un minuto. Si el intervalo de tiempo que

transcurre entre dos viajes de un mismo servicio de conducción supera una

holgura dada, entonces el tiempo excedente a la holgura de tal intervalo, se

considera como parte de un descanso o tiempo ocioso. Si no, se considera

como tiempo de conducción continua.

Matemáticamente el problema genérico de la generación de servicios de conducción

puede ser definido por (Beasley & Cao, 1996) y representado por el grafo de la figura 1.

Minimizar ∑i , j

C ij X ij

Sujeto a,

∑k

X ijk=¿∑i

X ij j=1 , …, N ¿ (1)

∑k

X ij=¿1i=1 , …, N ¿ (2)

∑j

X0 j=¿∑i

X j(N +1)=K ¿ (3)

Restricciones adicionales

Page 7: Crew scheduling algoritmo genetico heuristica

5

X ij∈ {0,1 } ∀ i , j

En donde : X ij={1 Si el arco de transición es utilizado0 en otrocaso

Donde

Cij es el costo de pasar de la tarea i a la tarea j, es decir es el tiempo ocioso existente

entre estas tareas.

La restricción 1, indica que el número de aristas que salen de un nodo son iguales a

la que llegan a él, válido solo para los nodos 1 hasta N.

La restricción 2, señala que el número de aristas que salen de un nodo es igual a 1,

válido solo para los nodos 1 hasta N.

La restricción 3, señala que el número de aristas que salen del nodo 0 coincide con el

número de aristas que llegan al número N+1 y corresponde a la cantidad de servicios

generados, es decir, la cantidad de conductores K necesarios para realizar la

conducción de todas las tareas.

Las restricciones adicionales corresponden a las limitaciones indicadas en la página 3

y principio de la 4. (Estaciones de relevo, Tiempo máximo de conducción, etc.)

Figura 1. Grafo que representa el crew scheduling genérico

Page 8: Crew scheduling algoritmo genetico heuristica

6

2.2. Algoritmo Goloso

Un algoritmo goloso es aquel que, para resolver un determinado problema, sigue una

heurística consistente en elegir la opción óptima en cada paso local con la esperanza de

llegar a una solución general óptima.

Nuestro algoritmo goloso se encargará de hacer cumplir todas las restricciones

indicadas en la formulación matemáticas incluidas las llamadas restricciones adicionales.

Además controlará que no existan soluciones o individuos infactibles en todas las

etapas del algoritmo genético (selección, cruzamiento, mutación) a utilizar.

La heurística que usará nuestro algoritmo goloso se describe a continuación.

2.2.1. Heurística

Como heurística del problema se utilizará un algoritmo genético el cual se detalla

enseguida:

2.2.2. Población Inicial

Se generan 100 individuos que son representados mediante una matriz de tamaño N x

N, siendo N la cantidad de tareas. Por ejemplo asumamos que las tareas en total son 100,

como se indica a continuación:

Page 9: Crew scheduling algoritmo genetico heuristica

7

… … …

Figura 2. Ejemplo de N tareas, con N=100

En la figura 2, se muestra un ejemplo de 100 tareas generadas aleatoriamente,

nuestro algoritmo considera que las tareas pueden iniciar a las 6h00 y terminar a las 23h00

con una duración de cada tarea de 30 minutos y una desviación estándar de +- 5 minutos.

Al contar con las tareas generadas, la población inicial es creada, la cual consta de

100 matrices (individuos), cada matriz tiene N filas y N columnas, donde cada fila

representa un servicio generado y cada columna una de las 100 tareas (inicialmente se

generan 25 tareas aleatorias para cada individuo) que ha sido asignado a ese servicio. Un

ejemplo de individuo se da a continuación:

Tareas

Servicio 1 1 0 0 0 0Servicio 2 2 0 0 0 0Servicio 3 3 0 0 0 0

… … … … … …Servicio

100100 0 0 0 0

Tabla 1. Un individuo con 100 servicios, y una tarea para cada servicio, (el peor de los casos)

Page 10: Crew scheduling algoritmo genetico heuristica

8

Para el caso de la colación se consideran 4 turnos de una hora cada uno, y con

horarios de inicio y término fijos, esto es:

Turno 1 13h00

a 14h00

Turno 2 13h30

a 14h30

Turno 3 14h00

a 15h00

Turno 4 14h30

a 15h00

Tabla 2. Turnos de colación posibles.

Los turnos de colación son asignados a cada servicio de forma secuencial, por

ejemplo si la solución indica que las 100 tareas serán realizadas en 10 servicios, entonces

cada servicio tendrá asignado el turno de la colación de la siguiente forma:

Servicio1 Turno 1Servicio2 Turno 2Servicio3 Turno 3Servicio4 Turno 4Servicio5 Turno 1Servicio6 Turno 2Servicio7 Turno 3Servicio8 Turno 4Servicio9 Turno 1

Tabla 3. Ejemplo de asignación de turnos de colación a 9 servicios indicados como solución

factible.

2.2.3. Cruzamiento

Page 11: Crew scheduling algoritmo genetico heuristica

9

Al contar con la población inicial, se seleccionan aleatoriamente 2 individuos

(matrices como en la tabla 1) y se realiza el cruzamiento. Veamos el ejemplo los dos

individuos descritos en las tablas enseguida:

1 8 0 0 … 0

2 9 10 0 … 0

3 20 45 0 … 0

4 43 0 0 … 0

Tabla 4. Ejemplo de individuo (madre).

1 6 0 0 … 0

2 8 0 0 … 0

3 9 10 0 … 0

4 20 21 0 … 0

Tabla 5. Ejemplo de individuo (padre).

Del padre se seleccionada una tarea que no esté en la madre y se la intenta agregar a

la matriz madre de forma que se crea un nuevo individuo. Este proceso se realiza mediante

el algoritmo goloso, que se encarga que el nuevo individuo sea factible, es decir que cumpla

con las restricciones del problema. Por ejemplo se podría escoger la tarea 21 del padre, por

lo que un posible nuevo individuo podría ser:

1 8 0 0 … 0

2 9 10 0 … 0

3 20 45 0 … 0

4 43 0 0 … 0

5 21 0 0 … 0

Tabla 6. Ejemplo de individuo (madre)

Page 12: Crew scheduling algoritmo genetico heuristica

10

En este caso goloso decidió crear un nuevo servicio para cumplir con la tarea 21.

También se pudo dar el hecho de que la tarea 21, fuese agregada al servicio 4.

2.2.4. Mutación

Para el caso de la mutación el proceso también es controlado por algoritmo goloso,

se selecciona al azar un individuo X y se selecciona también al azar una tarea T que no esté

incluida en X, y esta tarea T es agregada a la matriz que representa al individuo X.

2.2.5. Parámetros usados en Algoritmo Genético

Los parámetros del algoritmo genético descrito anteriormente usados en el

experimento fueron:

Población: La población fue de tamaño 100.

Generaciones: 100 generaciones fueron generadas.

Elitismo: En cada generación se conservaron los 2 individuos con mejor

fitness.

Selección: Se realizará la selección de individuos mediante torneo.

Cruzamiento: Tendrá un 90% de fracción de cruzamiento.

Mutación: La tasa de mutación será del 3%.

2.2.6. Función fitness

La función fitness para este problema está dada por tres términos, que consideran lo

siguiente:

Número de tareas de la construcción (NTC)

α 1N−NTC

N

Page 13: Crew scheduling algoritmo genetico heuristica

11

Dónde,

α 1 es un factor constante de ponderación.

N es la cantidad de tareas.

NTC es la cantidad de tareas que tiene el individuo solución.

Número de servicios de la construcción (NSC)

α 2NSC

N

Dónde,

α 2 es un factor constante de ponderación.

N es la cantidad de tareas.

NSC es la cantidad de servicios que tiene el individuo

solución.

Holguras de la construcción (HC)

α 3HC

Tmax

Dónde,

α 3 es un factor constante de ponderación.

Tmax es el tiempo máximo de conducción.

HC es el tiempo total entre una tarea y otra en cada uno de los

servicios que tiene el individuo solución.

Page 14: Crew scheduling algoritmo genetico heuristica

12

3. Resultados

Al finalizar la ejecución del algoritmo voraz o goloso, en conjunto con el algoritmo

genético detallado en el punto 2. Se obtuvieron los resultados para las diferentes

generaciones como se indica en la figura adjunta:

Figura 3. Resultado del algoritmo goloso para la generación de servicios de trenes.

En la figura 3, se observa claramente que el fitness del algoritmo genético comienza

en valores superiores a 0.75, y descendiendo poco a poco hasta converger en 0.40 en la

generación 84 aproximadamente. Los puntos azules se refieren al promedio de cada

generación, y los negros se refieren al mejor individuo de cada generación.

Evidentemente en cada generación, el algoritmo goloso se encargaba de crear

servicios que satisfagan las 100 tareas incluidas en las instancias, hasta que finalmente se

obtuvo la mejor programación (servicios – tareas) la cual es detalla a continuación:

Page 15: Crew scheduling algoritmo genetico heuristica

13

Tarea HoraInicio HoraTermino    

1 6 h 0 min 6 h 30 min Esc Militar San Pablo

6 6 h 40 min 7 h 10 min San Pablo Esc Militar

12 7 h 20 min 7 h 50 min Esc Militar San Pablo

14 7 h 55 min 8 h 26 min San Pablo Esc Militar

18 8 h 37 min 9 h 7 min Esc Militar San Pablo

23 9 h 8 min 9 h 38 min San Pablo Esc Militar

26 9 h 45 min 10 h 18 min Esc Militar San Pablo

30 10 h 19 min 10 h 52 min San Pablo Esc Militar

32 10 h 56 min 11 h 21 min Esc Militar San Pablo

35 11 h 34 min 12 h 1 min San Pablo Esc Militar

38 12 h 4 min 12 h 37 min Esc Militar San Pablo

40 12 h 50 min 13 h 21 min San Pablo Esc Militar

 COLACIÓN 

52 14 h 36 min 15 h 8 min Esc Militar San Pablo

57 15 h 9 min 15 h 36 min San Pablo Esc Militar

62 15 h 42 min 16 h 8 min Esc Militar San Pablo

65 16 h 20 min 16 h 50 min San Pablo Esc Militar

72 16 h 55 min 17 h 30 min Esc Militar San Pablo

77 17 h 40 min 18 h 6 min San Pablo Esc Militar

80 18 h 39 min 19 h 11 min Esc Militar San Pablo

84 19 h 41 min 20 h 8 min San Pablo Esc Militar

Tabla 7. Asignación óptima final: Servicio 1 de 8.

Tarea HoraInicio HoraTermino2 6 h 10 min 6 h 38 min San Pablo Esc Militar

7 6 h 41 min 7 h 7 min Esc Militar San Pablo

13 7 h 37 min 8 h 3 min San Pablo Esc Militar

16 8 h 5 min 8 h 39 min Esc Militar San Pablo

19 8 h 41 min 9 h 7 min San Pablo Esc Militar

24 9 h 34 min 10 h 1 min Esc Militar San Pablo

28 10 h 7 min 10 h 38 min San Pablo Esc Militar

31 10 h 44 min 11 h 17 min Esc Militar San Pablo

36 11 h 53 min 12 h 19 min San Pablo Esc Militar

39 12 h 36 min 13 h 9 min Esc Militar San Pablo

44 13 h 21 min 13 h 53 min San Pablo Esc Militar

 COLACIÓN 

55 15 h 6 min 15 h 31 min Esc Militar San Pablo

63 15 h 59 min 16 h 30 min San Pablo Esc Militar

68 16 h 33 min 17 h 7 min Esc Militar San Pablo

Page 16: Crew scheduling algoritmo genetico heuristica

14

74 17 h 11 min 17 h 37 min San Pablo Esc Militar

78 17 h 41 min 18 h 15 min Esc Militar San Pablo

81 18 h 44 min 19 h 13 min San Pablo Esc Militar

85 19 h 56 min 20 h 21 min Esc Militar San Pablo

87 20 h 24 min 20 h 59 min San Pablo Esc Militar

90 21 h 2 min 21 h 29 min Esc Militar San Pablo

Tabla 8. Asignación óptima final: Servicio 2 de 8.

Tarea HoraInicioHoraTermin

o    3 6 h 16 min 6 h 46 min Esc Militar San Pablo

8 6 h 59 min 7 h 34 min San Pablo Esc Militar

15 7 h 57 min 8 h 29 min Esc Militar San Pablo

20 8 h 52 min 9 h 26 min San Pablo Esc Militar

25 9 h 36 min 10 h 11 min Esc Militar San Pablo

33 11 h 8 min 11 h 34 min San Pablo Esc Militar

37 11 h 59 min 12 h 31 min Esc Militar San Pablo

41 12 h 54 min 13 h 20 min San Pablo Esc Militar

45 13 h 22 min 13 h 54 min Esc Militar San Pablo

COLACIÓN

61 15 h 30 min 16 h 5 min San Pablo Esc Militar

64 16 h 6 min 16 h 34 min Esc Militar San Pablo

69 16 h 36 min 17 h 2 min San Pablo Esc Militar

75 17 h 14 min 17 h 45 min Esc Militar San Pablo

79 17 h 47 min 18 h 18 min San Pablo Esc Militar

82 19 h 3 min 19 h 33 min Esc Militar San Pablo

86 20 h 11 min 20 h 38 min San Pablo Esc Militar

89 20 h 59 min 21 h 27 min Esc Militar San Pablo

94 21 h 35 min 22 h 8 min San Pablo Esc Militar

97 22 h 15 min 22 h 49 min Esc Militar San Pablo

Tabla 9. Asignación óptima final: Servicio 3 de 8.

Tarea HoraInicio HoraTermino    4 6 h 27 min 6 h 52 min Esc Militar San Pablo

9 7 h 1 min 7 h 26 min San Pablo Esc Militar

17 8 h 8 min 8 h 40 min Esc Militar San Pablo

21 8 h 52 min 9 h 25 min San Pablo Esc Militar

27 9 h 54 min 10 h 26 min Esc Militar San Pablo

34 11 h 9 min 11 h 34 min San Pablo Esc Militar

Page 17: Crew scheduling algoritmo genetico heuristica

15

COLACIÓN

48 14 h 8 min 14 h 36 min Esc Militar San Pablo

53 14 h 52 min 15 h 18 min San Pablo Esc Militar

59 15 h 26 min 15 h 55 min Esc Militar San Pablo

66 16 h 26 min 16 h 58 min San Pablo Esc Militar

73 17 h 0 min 17 h 31 min Esc Militar San Pablo

83 19 h 12 min 19 h 41 min San Pablo Esc Militar

88 20 h 34 min 21 h 1 min Esc Militar San Pablo

91 21 h 4 min 21 h 38 min San Pablo Esc Militar

96 21 h 48 min 22 h 15 min Esc Militar San Pablo

98 22 h 15 min 22 h 45 min San Pablo Esc Militar

99 22 h 49 min 23 h 20 min Esc Militar San Pablo

Tabla 10. Asignación óptima final: Servicio 4 de 8.

TareaHoraInici

oHoraTermin

o    5 6 h 28 min 6 h 55 min San Pablo Esc Militar

10 7 h 7 min 7 h 42 min Esc Militar San Pablo

22 8 h 56 min 9 h 26 min San Pablo Esc Militar

29 10 h 10 min 10 h 39 min Esc Militar San Pablo

COLACIÓN

54 14 h 54 min 15 h 19 min San Pablo Esc Militar

60 15 h 27 min 15 h 54 min Esc Militar San Pablo

67 16 h 28 min 16 h 58 min San Pablo Esc Militar

76 17 h 24 min 17 h 54 min Esc Militar San Pablo

92 21 h 10 min 21 h 41 min San Pablo Esc Militar

100 22 h 49 min 23 h 21 min Esc Militar San Pablo

Tabla 11. Asignación óptima final: Servicio 5 de 8.

Tarea HoraInicio HoraTermino11 7 h 7 min 7 h 36 min San Pablo Esc Militar

42 13 h 5 min 13 h 38 min Esc Militar San Pablo

COLACIÓN

56 15 h 8 min 15 h 43 min San Pablo Esc Militar

70 16 h 39 min 17 h 13 min Esc Militar San Pablo

93 21 h 27 min 21 h 59 min San Pablo Esc Militar

Tabla 12. Asignación óptima final: Servicio 6 de 8.

Tarea HoraInicio HoraTermino    

Page 18: Crew scheduling algoritmo genetico heuristica

16

43 13 h 5 min 13 h 38 min Esc Militar San Pablo

46 13 h 43 min 14 h 14 min San Pablo Esc Militar

 COLACIÓN

71 16 h 48 min 17 h 16 min Esc Militar San Pablo

95 21 h 38 min 22 h 10 min San Pablo Esc Militar

Tabla 13. Asignación óptima final: Servicio 7 de 8.

Tarea HoraInicio HoraTermino49 14 h 10 min 14 h 45 min San Pablo Esc Militar

COLACION

58 15 h 12 min 15 h 40 min Esc Militar San Pablo

Tabla 14. Asignación óptima final: Servicio 8 de 8.

La mejor solución, consta de un total de 8 servicios. El servicio 1, incluye 20 tareas y

el horario de colación (como se indica en la tabla 2) del turno 2. El servicio 2, incluye

también 20 tareas y colación del turno 3. El servicio 3, en cambio tiene 19 tareas y colación

también del turno 3. Servicio 4, cubre 17 tareas y colación en turno 1. El servicio 5, apenas

10 tareas y colación en turno 4. En cuanto al servicio 6 solo se le asignaron 5 tareas, con el

turno 3 de la colación. El servicio 7 solo atenderá 4 tareas con la colación del turno 4. Y

finalmente el servicio 8 apenas trata 3 tareas y colación de 14h30 a 15h30.

4. Discusión

Desde la década del 70, el problema de crew scheduling ha sido altamente estudiado

en el caso de aerolíneas (Sohoni, Johnson, & Bailey, 2006). Sin embargo en el caso de

trenes, la mayoría de la investigación es reciente (Freling, Lentink, & Wagelmans, 2004) y

(Silke & Ulrich, 2012). Particularmente en sistemas de trenes subterráneos, se observa en la

literatura que no existe un método específico para obtener resultados.

De igual forma soluciones mediante método de Generación de columnas y

programación binaria se pueden ver en (Mindy, Ali, & Shahabeddin, 2010) y (Caprara,

Focacci, & Mello, 1998) respectivamente. Así mismo (Hasse, Desaulniers, & Desrosiers,

Page 19: Crew scheduling algoritmo genetico heuristica

17

2002) en su estudio “Gestion des opérations dans les réseaux de transport” presentan un

método exacto para resolver simultáneamente el problema de planificación de vehículos y

planificación de tripulación para un sistema de transporte masivo. Considera un solo

depósito, una flota homogénea de vehículos y cuenta con una formulación set partitioning

para el problema de los conductores. La solución propuesta consiste de un proceso de

generación de columnas (sólo para el caso de la planificación de la tripulación) integrada en

un esquema de branch and bound. Utilizando ramificación y planos de corte, diseñan e

implementan un método exacto y uno heurístico. Presentan resultados para 10 instancias de

50 a 350 viajes. A modo de ejemplo, un problema de 150 viajes tarda 81.9 minutos el

método exacto mientras que la heurística tarda 5.3 minutos para la misma cantidad de viajes

en una máquina SUN ULTRA-10/440. (Elizondo, 2013)

También el uso de heurísticas diseñadas para resolver el problema se usan en los

estudios de (Cavique, Rego, & Themido, 1999) quien usa Algoritmos Constructivos para el

sistema de metro de Lisboa; (Hartog, Huisman, & Abbink, 2009) y (Chew, Pang, Liu, & Ou)

usan Métodos Heurísticos para el sistema de trenes de Países Bajos y el Metro de Singapur

respectivamente.

5. Conclusiones

Al realizar el estudio del problema se llegan a las siguientes conclusiones:

El análisis del problema permitió entender en qué consistía el mismo,

definiendo claramente las etapas que componen el crew scheduling y las

restricciones del mismo.

El proceso de programación de servicios y conductores de un sistema de

transporte subterráneo de pasajeros se puede descomponer en tres pasos:

Programación del movimiento de trenes, Generación de los servicios de

conducción y Asignación de los conductores a los servicios.

Page 20: Crew scheduling algoritmo genetico heuristica

18

La definición de un algoritmo genético como heurística en conjunto con el

algoritmo goloso permitió dar solución al problema de crew scheduling.

Los resultados del algoritmo genético evidenciaron que la convergencia a

partir de la generación 80, en donde se comenzó a notar mejoras del fitness, y

que finalmente el experimento con tamaño de tareas 100, arrojó como

resultado una programación que constaba de 8 servicios que satisfacían de

manera óptima las 100 tareas, turnos de colación, y demás restricciones del

problema.

Page 21: Crew scheduling algoritmo genetico heuristica

19

6. Bibliografía

Caprara, A., Focacci, F., & Mello, P. (1998). Integrating constraint logic programming and

operations research techniques for the Crew Rostering Problem. Software: Practice

and Experience, 49-76.

Cavique, L., Rego, C., & Themido, I. (1999). Subgraph Ejection Chains and Tabú Search for

the Crew Scheduling Problem. The Journal of the Operational Research Society,

608-616.

Chew, K., Pang, J., Liu, Q., & Ou, J. (s.f.). An Optimization Based Approach to the Train

Operator Scheduling Problem at Singapore. Annals of Operations Research, 111-

122.

Elizondo, R. (2013). Solución al problema de generación de servicios de conducción para el

transporte subterráneo utilizando un método híbrido constructivo-evolutivo. Tesis

Magister en Ingeniería Informática USACH .

Freling, R., Lentink, R., & Wagelmans, A. (2004). A decision support system for crew

planning in passenger transportation using a flexible branch-and-price algorithm.

Annals of Operations Research, 127(1), 203-222.

Hartog, H., Huisman, D., & Abbink, E. (2009). Decision support for Crew Rostering at NS.

Public Transport, 1(2), 121-133.

Hasse, J., Desaulniers, H., & Desrosiers, Y. (2002). Gestion des opérations dans les réseaux

de transport. Hermès Science Publication, 141-162.

Mahn, D. (2013). CREW SCHEDULING Y CREW ROSTERING EN TRENES

SUBTERRANEOS. UN MÉTODO SECUENCIAL DE SOLUCIÓN. Concepción.

Mindy, L., Ali, H., & Shahabeddin, T. (2010). Genetic Algorithm-Based Column

Generation Approach to . Transportation Research Record Issue, 36-43.

Silke, J., & Ulrich, T. (2012). Divide-and-price: A decomposition algorithm for solving

large. European Journal of operational Research, 219(2), 214-223.

Sohoni, G., Johnson, E., & Bailey, T. (2006). Operational airline reserve crew planning of

Scheduling . Journal of Scheduling, 203-221.

Wren, A. (1972). Bus scheduling: an interactive computer method. Transportation Planning

and Technology.

Page 22: Crew scheduling algoritmo genetico heuristica

20