Crew scheduling algoritmo genetico heuristica
-
Upload
jorge-a-parraga-a -
Category
Engineering
-
view
110 -
download
3
Transcript of 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
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.
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.
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.
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
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
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
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:
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)
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
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)
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
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.
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:
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
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
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
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,
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.
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.
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.
20