modelizaci´on y métodos para la optimizaci´on y eficiencia
modelizaci´on y métodos para la optimizaci´on y eficiencia
modelizaci´on y métodos para la optimizaci´on y eficiencia
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
MODELIZACIÓN Y MÉTODOS PARA LA OPTIMIZACIÓN<br />
Y EFICIENCIA DE LA PROGRAMACIÓN DE HORARIOS<br />
FERROVIARIOS<br />
Autor: Laura Pao<strong>la</strong> Ingolotti Hetter<br />
Directores: Dr. D. Federico Barber Sanchís<br />
Dra. Da. Pi<strong>la</strong>r Tormos Juan<br />
Departamento de Sistemas Informáticos y Computación<br />
UNIVERSIDAD POLITÉCNICA DE VALENCIA<br />
Valencia, España<br />
FEBRERO 2007
A mi familia.<br />
iii
Tab<strong>la</strong> de Contenidos<br />
Tab<strong>la</strong> de Contenidos V<br />
Lista de Tab<strong>la</strong>s IX<br />
Lista de Figuras X<br />
Agradecimientos XV<br />
Acrónimos, Notación y Lista de Variables XVII<br />
Resumen XXIII<br />
Abstract XXVII<br />
Resum XXIX<br />
1. Introducción 1<br />
1.1. Introduccíón . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1<br />
1.2. El problema de Scheduling tipo Job Shop y su Formu<strong>la</strong>ción como un<br />
CSOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />
1.3. Marco de Trabajo: Generación Optimizada de Horarios. Aplicación a<br />
Horarios Ferroviarios . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />
1.3.1. Introducción al Problema de Optimizar y Programar horarios<br />
<strong>para</strong> Trenes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9<br />
1.4. Motivaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12<br />
1.5. Objetivos de <strong>la</strong> Tesis . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />
1.6. Esquema de <strong>la</strong> Tesis . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />
2. Métodos <strong>para</strong> resolver Problemas tipo Job Shop 17<br />
2.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br />
2.2. El Problema de Scheduling tipo Job Shop . . . . . . . . . . . . . . . 19<br />
2.3. Formu<strong>la</strong>ción de un Job Shop utilizando Programación Matemática . 21<br />
v
2.4. Métodos de Optimización Exacta . . . . . . . . . . . . . . . . . . . . 22<br />
2.4.1. Programación Dinámica . . . . . . . . . . . . . . . . . . . . . 22<br />
2.4.2. Branch and Bound . . . . . . . . . . . . . . . . . . . . . . . . 27<br />
2.4.3. Branch and Bound y <strong>la</strong> Re<strong>la</strong>jación Lagrangiana . . . . . . . . 30<br />
2.4.4. Branch and Cut . . . . . . . . . . . . . . . . . . . . . . . . . 31<br />
2.4.5. Branch-and-price . . . . . . . . . . . . . . . . . . . . . . . . . 32<br />
2.5. Métodos Heurísticos . . . . . . . . . . . . . . . . . . . . . . . . . . . 33<br />
2.5.1. Desp<strong>la</strong>zar el Cuello de Botel<strong>la</strong> . . . . . . . . . . . . . . . . . . 33<br />
2.5.2. Reg<strong>la</strong>s de Procesamiento Básico . . . . . . . . . . . . . . . . 35<br />
2.5.3. Reg<strong>la</strong>s de Procesamiento Compuesto . . . . . . . . . . . . . . 37<br />
2.6. Formu<strong>la</strong>ción de un Job Shop como un CSOP . . . . . . . . . . . . . 38<br />
2.6.1. Búsqueda: Algoritmo Backtracking . . . . . . . . . . . . . . . 42<br />
2.6.2. Inferencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44<br />
2.6.3. Inferencia + Búsqueda . . . . . . . . . . . . . . . . . . . . . . 48<br />
2.6.4. Estrategias Look Back . . . . . . . . . . . . . . . . . . . . . . 54<br />
2.6.5. Ordenamiento de Valores . . . . . . . . . . . . . . . . . . . . 57<br />
2.6.6. Ordenamiento de Variables . . . . . . . . . . . . . . . . . . . 58<br />
2.7. Métodos Heurísticos Genéricos . . . . . . . . . . . . . . . . . . . . . 59<br />
2.7.1. Búsqueda Beam . . . . . . . . . . . . . . . . . . . . . . . . . 59<br />
2.7.2. Simu<strong>la</strong>ted Annealing . . . . . . . . . . . . . . . . . . . . . . . 60<br />
2.7.3. Búsqueda Tabú . . . . . . . . . . . . . . . . . . . . . . . . . . 62<br />
2.7.4. Algoritmos Genéticos . . . . . . . . . . . . . . . . . . . . . . 62<br />
2.8. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67<br />
3. Optimizar y P<strong>la</strong>nificar Horarios <strong>para</strong> Trenes, un problema CSOP 69<br />
3.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69<br />
3.2. El Problema OPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70<br />
3.3. Conceptos Básicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74<br />
3.4. Formu<strong>la</strong>ción del Problema como un CSOP . . . . . . . . . . . . . . . 82<br />
3.4.1. Variables y Dominios . . . . . . . . . . . . . . . . . . . . . . . 83<br />
3.4.2. Restricciones . . . . . . . . . . . . . . . . . . . . . . . . . . . 83<br />
3.4.3. Función Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . 103<br />
3.5. El problema OPT, un problema de Scheduling tipo Job Shop . . . . . 105<br />
3.6. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108<br />
4. Revisión de Métodos <strong>para</strong> <strong>la</strong> Generación de Horarios 111<br />
4.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111<br />
4.2. Estado del Arte en <strong>la</strong> Formu<strong>la</strong>ción del Problema . . . . . . . . . . . 113<br />
4.3. Estado del Arte - Métodos de Solución . . . . . . . . . . . . . . . . . 121<br />
4.3.1. Re<strong>la</strong>jación Lagrangiana . . . . . . . . . . . . . . . . . . . . . 122<br />
4.3.2. Branch and Bound . . . . . . . . . . . . . . . . . . . . . . . . 122<br />
vi
4.3.3. Búsqueda Local . . . . . . . . . . . . . . . . . . . . . . . . . . 127<br />
4.3.4. Algoritmo de Descomposición . . . . . . . . . . . . . . . . . . 131<br />
4.3.5. Algoritmo Genético . . . . . . . . . . . . . . . . . . . . . . . 132<br />
4.3.6. Búsqueda Tabú . . . . . . . . . . . . . . . . . . . . . . . . . . 137<br />
4.3.7. Problema de Scheduling de Eventos Periódicos . . . . . . . . 140<br />
4.3.8. Heurísticas <strong>para</strong> Job Shop y el Problema OPT . . . . . . . . . 142<br />
4.3.9. Técnicas CSP y el Problema OPT . . . . . . . . . . . . . . . . 145<br />
4.4. Conclusión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149<br />
5. Un Procedimiento heurístico basado en ordenación (PBO) 151<br />
5.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151<br />
5.2. Aplicación de <strong>la</strong>s técnicas CSP en el método de solución propuesto . 153<br />
5.3. Esquema General del Método de Solución propuesto . . . . . . . . . 158<br />
5.4. El Problema OPT como un Problema de Scheduling tipo Job Shop . . 169<br />
5.5. Consideraciones en <strong>la</strong> Aplicación del método al problema OPT . . . . 172<br />
5.5.1. La Periodicidad en Salida es incluida en el conjunto de Restricciones<br />
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172<br />
5.5.2. La Periodicidad en Salida NO es incluida en el conjunto de<br />
Restricciones . . . . . . . . . . . . . . . . . . . . . . . . . . . 177<br />
5.6. Descripción detal<strong>la</strong>da del Método de Solución aplicado al Problema<br />
OPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178<br />
5.6.1. Primera Etapa: Siguiente Operación . . . . . . . . . . . . . . 178<br />
5.6.2. Segunda Etapa: Asignación de Horario Factible . . . . . . . . 187<br />
5.6.3. Tercera Etapa: Evaluación de Solución Parcial . . . . . . . . 196<br />
5.7. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200<br />
6. Evaluación Computacional 203<br />
6.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203<br />
6.2. Implementación del Sistema de Evaluación . . . . . . . . . . . . . . . 205<br />
6.3. Descripción de los Casos de Prueba . . . . . . . . . . . . . . . . . . . 207<br />
6.4. Complejidad de los Casos de Prueba . . . . . . . . . . . . . . . . . . 210<br />
6.5. Coste de cada solución en función de <strong>la</strong> <strong>para</strong>metrización < α, ɛ > . . 211<br />
6.5.1. Backtracking en <strong>la</strong> búsqueda de soluciones . . . . . . . . . . . 213<br />
6.6. Comportamiento Anytime . . . . . . . . . . . . . . . . . . . . . . . . 215<br />
6.7. Casos particu<strong>la</strong>res y descripción de <strong>la</strong>s Soluciones obtenidas . . . . . 218<br />
6.7.1. Baja Interre<strong>la</strong>ción entre los Trenes de <strong>la</strong> Línea . . . . . . . . 220<br />
6.7.2. Alta Densidad de tráfico en <strong>la</strong> Línea Ferroviaria . . . . . . . 223<br />
6.7.3. Resultados cuando se requiere Periodicidad en Salidas . . . . 229<br />
6.7.4. Simu<strong>la</strong>ción de cambios de infraestructura . . . . . . . . . . . 232<br />
6.8. Algunos ejemplos de instancias complejas . . . . . . . . . . . . . . . 235<br />
6.9. Estudio sobre <strong>la</strong> Robustez de Soluciones . . . . . . . . . . . . . . . . 242<br />
vii
6.10. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247<br />
7. Conclusiones 249<br />
7.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249<br />
7.2. Contribuciones de este trabajo . . . . . . . . . . . . . . . . . . . . . 250<br />
7.3. Trabajo Futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254<br />
7.4. Publicaciones re<strong>la</strong>cionadas con <strong>la</strong> Tesis . . . . . . . . . . . . . . . . . 256<br />
7.4.1. Otros artículos re<strong>la</strong>cionados con esta Tesis . . . . . . . . . . . 259<br />
7.5. Conclusiones Finales . . . . . . . . . . . . . . . . . . . . . . . . . . . 261<br />
A. Sistemas desarrol<strong>la</strong>dos <strong>para</strong> <strong>la</strong> Generación y Optimización de horarios<br />
Ferroviarios 263<br />
A.1. Sistemas Software re<strong>la</strong>cionados con <strong>la</strong> P<strong>la</strong>nificación de Horarios Ferroviarios<br />
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264<br />
A.2. MOM: Módulo Optimizador de Mal<strong>la</strong>s . . . . . . . . . . . . . . . . . 271<br />
A.2.1. Especificación y Parametrización de una Instancia . . . . . . 272<br />
A.2.2. Parametrización de Restricciones Comerciales . . . . . . . . . 279<br />
A.2.3. Parametrización de <strong>la</strong> Infraestructura Ferroviaria . . . . . . . 283<br />
A.2.4. Parametrización de <strong>la</strong> Optimización . . . . . . . . . . . . . . 291<br />
A.2.5. Usos de <strong>la</strong> Aplicación MOM . . . . . . . . . . . . . . . . . . . 292<br />
Bibliografía 297<br />
viii
Índice de cuadros<br />
1.1. Niveles de P<strong>la</strong>nificación . . . . . . . . . . . . . . . . . . . . . . . . . 8<br />
6.1. Descripción de 13 instancias del problema OPT . . . . . . . . . . . . . 208<br />
6.2. Dimensiones del Modelo <strong>para</strong> cada Caso de Prueba . . . . . . . . . . 209<br />
6.3. Valor de <strong>la</strong> Función de Coste Global en función de ε y α . . . . . . . 212<br />
6.4. Valor de <strong>la</strong> Función de Coste Global en función de ε y α . . . . . . . 213<br />
6.5. Características de <strong>la</strong> Línea Ferroviaria . . . . . . . . . . . . . . . . . 221<br />
ix
Índice de figuras<br />
1.1. Ordenación de tareas y recursos establecidos <strong>para</strong> cada trabajo de un<br />
problema de scheduling tipo Job Shop . . . . . . . . . . . . . . . . . 4<br />
1.2. Ordenación de tareas y recursos establecidos <strong>para</strong> cada trabajo de un<br />
problema de scheduling tipo Flow Shop . . . . . . . . . . . . . . . . 4<br />
1.3. Grafo Dirigido <strong>para</strong> Job Shop con el makespan como el objetivo . . . 5<br />
1.4. Proceso de P<strong>la</strong>nificación Jerárquica . . . . . . . . . . . . . . . . . . . 8<br />
2.1. Esquema de los Métodos estudiados <strong>para</strong> resolver un Job Shop . . . 17<br />
2.2. Esquema de Técnicas utilizadas en <strong>la</strong> resolución de CSPs . . . . . . 18<br />
2.3. Grafo Dirigido <strong>para</strong> Job Shop con el makespan como el objetivo . . . 20<br />
2.4. Flujo de los Trabajos . . . . . . . . . . . . . . . . . . . . . . . . . . . 20<br />
2.5. Re<strong>la</strong>ción entre los sub problemas al aplicar Programación Dinámica<br />
hacia ade<strong>la</strong>nte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25<br />
2.6. Orden en <strong>la</strong> obtención de <strong>la</strong> solución óptima de cada sub problema . 25<br />
2.7. Re<strong>la</strong>ción entre los sub problemas al aplicar Programación Dinámica<br />
hacia atrás . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26<br />
2.8. Orden en <strong>la</strong> obtención de <strong>la</strong> solución óptima de cada sub problema . 26<br />
2.9. Aplicación del método Branch and Bound a un determinado problema 30<br />
2.10. Árbol de Búsqueda . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42<br />
2.11. Algoritmo de Backtracking . . . . . . . . . . . . . . . . . . . . . . . 44<br />
2.12. Algoritmo VES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50<br />
2.13. Algoritmo de Forward Checking . . . . . . . . . . . . . . . . . . . . . 51<br />
2.14. Algoritmo MAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53<br />
x
2.15. Secuencia de Operaciones características de un Algoritmo Genético<br />
standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67<br />
3.1. C<strong>la</strong>sificación del Problema considerado en <strong>la</strong> Tesis . . . . . . . . . . 74<br />
3.2. Retraso del Tiempo de Recorrido Real con respecto al Tiempo Ideal<br />
del mismo tren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75<br />
3.3. Banda de Mantenimiento en un Tramo de Vía Única . . . . . . . . . 77<br />
3.4. Banda de Mantenimiento en un Tramo de Vía Doble . . . . . . . . . 78<br />
3.5. Terminología del problema . . . . . . . . . . . . . . . . . . . . . . . . 82<br />
3.6. Sucesión en un tramo con Bloqueo Automático, menor velocidad <strong>para</strong><br />
el primer tren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85<br />
3.7. Sucesión en un tramo con Bloqueo Automático, menor velocidad <strong>para</strong><br />
el segundo tren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86<br />
3.8. Sucesión en un tramo con Bloqueo Manual . . . . . . . . . . . . . . 88<br />
3.9. Ocupación de una dependencia durante un determinado intervalo de<br />
tiempo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89<br />
3.10. Ade<strong>la</strong>ntamiento del tren tj al tren ti en <strong>la</strong> estación lk. . . . . . . . . 93<br />
3.11. Satisfacción de Recepción y Expedición considerando que ti llega<br />
primero a <strong>la</strong> estación . . . . . . . . . . . . . . . . . . . . . . . . . . . 94<br />
3.12. Satisfacción de Recepción y Expedición considerando que tj llega<br />
primero a <strong>la</strong> estación . . . . . . . . . . . . . . . . . . . . . . . . . . . 96<br />
3.13. Un ejemplo de aplicación de demora por <strong>para</strong>da no prevista . . . . . 98<br />
3.14. Retraso del Tiempo de Recorrido Real con respecto al Tiempo Ideal<br />
del mismo tren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100<br />
3.15. Dos grupos de trenes, cuyas salidas iniciales deben satisfacer un de-<br />
terminado periodo de tiempo . . . . . . . . . . . . . . . . . . . . . . 102<br />
3.16. Correspondencia entre <strong>la</strong>s propiedades de un Job Shop y el Problema<br />
OPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107<br />
4.1. El problema OPT como un problema tipo Job Shop . . . . . . . . . . 120<br />
4.2. Valor de makespan puede no ser suficiente en <strong>la</strong> función objetivo del<br />
problema OPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121<br />
xi
4.3. Técnica branch and bound propuesta por Higgins et al. [64] . . . . . 123<br />
4.4. Recorrido Ideal de 4 Trenes, cuyo horario se desea Programar . . . . 125<br />
4.5. Arbol de Soluciones <strong>para</strong> <strong>la</strong> instancia P del problema OPT . . . . . . 125<br />
4.6. Makespan mínimo <strong>para</strong> una instancia del problema de programación<br />
de horario <strong>para</strong> trenes . . . . . . . . . . . . . . . . . . . . . . . . . . 142<br />
4.7. Primera máquina seleccionada con un orden determinado de operaciones143<br />
4.8. Makespan modificado cuando se considera márgenes de seguridad . . 144<br />
4.9. Ordenamiento de Variables en el problema OPT . . . . . . . . . . . . 149<br />
5.1. Dominio de una variable siendo asignada filtrado a partir de deter-<br />
minadas restricciones . . . . . . . . . . . . . . . . . . . . . . . . . . . 154<br />
5.2. Dominio filtrado a partir de <strong>la</strong> restricción sobre periodicidad en sali-<br />
das consecutivas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155<br />
5.3. Ordenación de Variables y Valores en <strong>la</strong> construcción de una solución 157<br />
5.4. Una instancia del problema de scheduling tipo Job Shop . . . . . . . 159<br />
5.5. Esquema del Método de Optimización y Satisfacción de Restricciones<br />
<strong>para</strong> un Problema tipo Job Shop . . . . . . . . . . . . . . . . . . . . 160<br />
5.6. Evaluación Solución Parcial decide sobre <strong>la</strong> poda de una rama del<br />
árbol de búsqueda . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168<br />
5.7. Correspondencia entre <strong>la</strong>s propiedades de un Job Shop y el Problema<br />
OPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171<br />
5.8. Algoritmo <strong>para</strong> p<strong>la</strong>nificar horarios de Trenes Cadenciados . . . . . . 175<br />
5.9. Implementación del Método propuesto al problema OPT que incluye<br />
<strong>la</strong> restricción sobre Periodicidad en Salida . . . . . . . . . . . . . . . 176<br />
5.10. Algoritmo <strong>para</strong> <strong>la</strong> Asignación de Horarios a Trenes No Periódicos . . 177<br />
5.11. Estaciones de Referencia <strong>para</strong> el grupo Gi de trenes . . . . . . . . . 180<br />
5.12. Un Ejemplo de Partición de Recorridos . . . . . . . . . . . . . . . . . 182<br />
5.13. Algoritmo <strong>para</strong> Seleccionar un Tren . . . . . . . . . . . . . . . . . . 185<br />
5.14. Arbol de Búsqueda <strong>para</strong> el Problema de Programación de Horarios . 186<br />
5.15. Asignación de horarios válidos <strong>para</strong> Gi en una partición j de su recorrido188<br />
5.16. Asignación de Horarios a Trenes Consecutivos . . . . . . . . . . . . . 189<br />
xii
5.17. Resolución de Conflictos durante <strong>la</strong> Asignación de Horarios a Trenes<br />
Consecutivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191<br />
5.18. Asigación de Prioridades en un Tramo . . . . . . . . . . . . . . . . . 192<br />
5.19. Cálculo de Γi. Se re<strong>la</strong>ja el problema por considerar que T = {ti} ∪ T C 198<br />
5.20. Retraso del tren ti con respecto a su tiempo de referencia Γi . . . . . 199<br />
6.1. Arquitectura de <strong>la</strong> herramienta software que implementa el método<br />
PBO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206<br />
6.2. Coste Promedio en función de α <strong>para</strong> diferentes valores de ε . . . . . 214<br />
6.3. Un ejemplo donde se aplica Backtracking . . . . . . . . . . . . . . . 214<br />
6.4. Función Objetivo por Caso de Prueba y por Unidad de Tiempo . . . 217<br />
6.5. Valor Promedio de Función Objetivo por Tiempo, < α = 3, ε =<br />
0.05 > y < α = 1, ε = 0.05 > . . . . . . . . . . . . . . . . . . . . . . 218<br />
6.6. Instancia del Problema OPT de baja complejidad . . . . . . . . . . . 222<br />
6.7. Datos de <strong>la</strong> Línea Ferroviaria 14100-14223 . . . . . . . . . . . . . . . 224<br />
6.8. Solución <strong>para</strong> una instancia . . . . . . . . . . . . . . . . . . . . . . . 225<br />
6.9. Causa del retraso del tren ty . . . . . . . . . . . . . . . . . . . . . . . 226<br />
6.10. Causa del retraso del tren ty . . . . . . . . . . . . . . . . . . . . . . . 227<br />
6.11. Causa del retraso del tren ty . . . . . . . . . . . . . . . . . . . . . . . 227<br />
6.12. Causa del retraso del tren ty . . . . . . . . . . . . . . . . . . . . . . . 228<br />
6.13. Causa del retraso del tren ty . . . . . . . . . . . . . . . . . . . . . . . 228<br />
6.14. Periodo de tiempo entre salidas iniciales consecutivas: 20 minutos . . 230<br />
6.15. Periodo de tiempo entre salidas iniciales consecutivas: 30 minutos . . 231<br />
6.16. Periodo de tiempo entre salidas iniciales consecutivas: 40 minutos . . 232<br />
6.17. Periodo de tiempo entre salidas iniciales consecutivas: 60 minutos . . 233<br />
6.18. Causa del retraso del tren ty . . . . . . . . . . . . . . . . . . . . . . . 234<br />
6.19. Causa del retraso del tren ty . . . . . . . . . . . . . . . . . . . . . . . 235<br />
6.20. Línea ferroviaria compuesta por Trenes Cadenciados y Trenes sin Ca-<br />
denciar de diferentes operadores . . . . . . . . . . . . . . . . . . . . . 237<br />
6.21. Línea con <strong>la</strong> mayor parte de sus tramos en vía doble . . . . . . . . . 239<br />
6.22. Trenes Cadenciados superpuestos . . . . . . . . . . . . . . . . . . . . 241<br />
6.23. Ejemplo de aplicación de <strong>la</strong> métrica SSHR en un tramo . . . . . . . 244<br />
xiii
6.24. Ejemplo de aplicación de <strong>la</strong> métrica SSHR en un tramo . . . . . . . 245<br />
A.1. Datos recibidos por MOM correspondientes al conjunto de trenes y<br />
línea ferroviaria seleccionada por el p<strong>la</strong>nificador . . . . . . . . . . . . 273<br />
A.2. Especificar criterios <strong>para</strong> visualizar un subconjunto de los trenes con-<br />
siderados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274<br />
A.3. Elección y Confirmación de los trenes cuyos horarios se deberán op-<br />
timizar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275<br />
A.4. Trenes considerados durante <strong>la</strong> Optimización utilizando cierta línea<br />
ferroviaria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276<br />
A.5. Trenes considerados durante <strong>la</strong> optimización, cuyos días de circu<strong>la</strong>ción<br />
incluyen Sábado y Domingo . . . . . . . . . . . . . . . . . . . . . . . 277<br />
A.6. Cruce entre 3 Trenes sin días de circu<strong>la</strong>ción en común . . . . . . . . 278<br />
A.7. Opciones <strong>para</strong> gestionar una Parada no prevista en una estación . . 278<br />
A.8. Edición de los parámetros <strong>para</strong> especificar Periodicidad en Salida . . 282<br />
A.9. Solución que satisfacen una determinada periodicidad en salida . . . 283<br />
A.10.Dos valores <strong>para</strong> el tiempo de recorrido de cada tren en cada tramo<br />
de su recorrido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285<br />
A.11.Modificación del tipo de Dependencia <strong>para</strong> un determinado tren . . 286<br />
A.12.Solución en <strong>la</strong> cual <strong>la</strong> dependencia 79601 no se considera Estación . 287<br />
A.13.Solución obtenida considerando <strong>la</strong>s Bandas de Mantenimiento . . . . 288<br />
A.14.Solución obtenida sin considerar <strong>la</strong>s Bandas de Mantenimiento . . . 289<br />
A.15.Edición de atributos correspondientes a dependencias de una línea . 290<br />
A.16.Edición de atributos correspondientes a tramos de una línea . . . . . 291<br />
A.17.Edición de los parámetros incluidos en <strong>la</strong>s restricciones y en el proceso<br />
de optimización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293<br />
A.18.Resumen de <strong>la</strong>s principales Funcionalidades de <strong>la</strong>s Aplicaciones Com-<br />
erciales estudiadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296<br />
xiv
Agradecimientos<br />
A mis directores de Tesis, el Dr. Federico Barber Sanchís y <strong>la</strong> Dra. Pi<strong>la</strong>r Tormos<br />
Juan, en primer lugar por haberme proporcionado <strong>la</strong> oportunidad de ser su alumna<br />
de tesis, y por haberme ayudado desde el inicio de este trabajo y durante toda <strong>la</strong><br />
realización del mismo. Han leído pacientemente cada capítulo de este trabajo, y no<br />
se han cansado de indicarme modificaciones, demostrando <strong>la</strong> mejor voluntad <strong>para</strong><br />
que este trabajo saliera ade<strong>la</strong>nte de <strong>la</strong> mejor forma posible. Mil gracias.<br />
Quisiera agradecer al Dr. Antonio Lova por todos sus consejos, ideas, conocimientos,<br />
experiencia, y lo más importante constante apoyo <strong>para</strong> llevar a cabo cada uno<br />
de los pasos durante <strong>la</strong> implementación del método de solución.<br />
Mil gracias a mi esposo Carlos, a mis padres Yuyo y Emilce y a mis hermanas<br />
Andre y Cati, por su apoyo incondicional, por estar siempre a mi <strong>la</strong>do, por <strong>la</strong> confianza.<br />
Son mi referencia y ejemplo, son mi motivo de superación.<br />
A mi querida amiga Adri, quien me permitió llegar hasta el Grupo de P<strong>la</strong>nificación<br />
y Scheduling. Gracias porque siempre me ha demostrado su amistad, me<br />
ha brindado su ayuda en todos los momentos que <strong>la</strong> necesité, y me ha permitido<br />
compartir con el<strong>la</strong> hermosos momentos.<br />
A todos mis queridos amigos, sin querer olvidar a ninguno, quisiera agradecer<br />
especialmente a <strong>la</strong> Su por ser siempre como una hermana <strong>para</strong> mi, a Lili por su<br />
apoyo incondicional, a Oscaring por todo lo que me ayudó apenas llegué a Valencia<br />
con los programas en su querido C++, y con su espectacu<strong>la</strong>r forma de ser que espero<br />
no cambie nunca. Agradecer también a <strong>la</strong>s chicas del <strong>la</strong>boratorio, por ser tan buenas<br />
compañeras de trabajo.<br />
Por último, agradecer a <strong>la</strong>s Instituciones Españo<strong>la</strong>s por el apoyo económico que<br />
brindan a <strong>la</strong>s investigaciones, y a aquel<strong>la</strong>s personas que directamente o indirectamente<br />
me han ayudado a llevar a cabo este trabajo.<br />
Valencia, España Laura Pao<strong>la</strong> Ingolotti Hetter<br />
Febrero, 2007<br />
xv
Acrónimos, Notación y Lista de<br />
Variables<br />
CSOP - Problema de Optimización y Satisfacción de Restricciones . . . . . . . . . . . . . 3<br />
OPT - Optimizar y Programar horario <strong>para</strong> Trenes . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />
(i, j) - procesamiento del trabajo j en <strong>la</strong> máquina i . . . . . . . . . . . . . . . . . . . . . . . . . . 19<br />
pij - tiempo de procesamiento del trabajo j en <strong>la</strong> máquina i . . . . . . . . . . . . . . . . 19<br />
Cmax - makespan del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19<br />
yij inicio de <strong>la</strong> operación (i, j) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21<br />
R - red de restricciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39<br />
X - conjunto finito de variables en un CSOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39<br />
D - conjunto finito de dominios en un CSOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39<br />
C - conjunto finito de restricciones en un CSOP . . . . . . . . . . . . . . . . . . . . . . . . . . 39<br />
Ci - definición de <strong>la</strong> restricción i de un CSOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39<br />
xvii
xviii<br />
Fi - componente funcional que evalúa a valores reales . . . . . . . . . . . . . . . . . . . . . 39<br />
Qi - ámbito del componente funcional Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39<br />
ā - asignación factible a <strong>la</strong>s variables del conjunto X . . . . . . . . . . . . . . . . . . . . . 39<br />
ai - asignación de <strong>la</strong>s variables xj ∈ X, 1 ≤ j ≤ i . . . . . . . . . . . . . . . . . . . . . . . . . .39<br />
xi variable, elemento de X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39<br />
C - red de costos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40<br />
F C - conjunto de funciones que forman <strong>la</strong> función de costo de un CSOP . . . . 40<br />
li - identificador de una dependencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74<br />
Ni - cantidad de vías en <strong>la</strong> dependencia li de <strong>la</strong> línea L . . . . . . . . . . . . . . . . . . . . 76<br />
N Pi - cantidad de vías con andén en <strong>la</strong> dependencia li de <strong>la</strong> línea L . . . . . . . . . 76<br />
HCi - horario de cierre de <strong>la</strong> dependencia li . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76<br />
A i j - inicio del intervalo de cierre j de <strong>la</strong> dependencia li . . . . . . . . . . . . . . . . . . . . 76<br />
B i j - fin del intervalo de cierre j de <strong>la</strong> dependencia li . . . . . . . . . . . . . . . . . . . . . . . 76<br />
type i j - tipo de cierre correspondiente al intervalo j en <strong>la</strong> dependencia li . . . . . . 76<br />
AC - tipo de cierre Apto <strong>para</strong> Circu<strong>la</strong>ción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
NC - tipo de cierre NO Apto <strong>para</strong> Circu<strong>la</strong>ción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .77<br />
xix<br />
li → li+1 - sección de vía entre <strong>la</strong>s dependencias li y li+1 . . . . . . . . . . . . . . . . . . . . . . . . . 77<br />
L - línea ferroviaria, secuencia ordenada de dependencias . . . . . . . . . . . . . . . . . 77<br />
S - conjunto de estaciones en <strong>la</strong> línea ferroviaria L . . . . . . . . . . . . . . . . . . . . . . . 77<br />
seci - secuencia de secciones de vía entre dos estaciones consecutivas . . . . . . . . 79<br />
T - conjunto de trenes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .80<br />
T C - conjunto de trenes en circu<strong>la</strong>ción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80<br />
Tnew - conjunto de trenes nuevos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80<br />
l j<br />
i<br />
- dependencia i del recorrido del tren j . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .80<br />
Ji - recorrido del tren ti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80<br />
T D - trenes que viajan en sentido ida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80<br />
T U - trenes que viajan en sentido vuelta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81<br />
TnewD<br />
TnewU<br />
- trenes nuevos que viajan en sentido ida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81<br />
- trenes nuevos que viajan en sentido vuelta . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81<br />
C j<br />
i - <strong>para</strong>da comercial de tj en <strong>la</strong> dependencia l j<br />
i<br />
ϕ dep<br />
x,k<br />
de su recorrido . . . . . . . . . . . 81<br />
- mínimo tiempo de sucesión requerido entre <strong>la</strong>s salidas de trenes consecu-<br />
tivos de <strong>la</strong> dependencia lk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
xx<br />
ϕarr - mínimo tiempo de sucesión requerido entre <strong>la</strong>s llegadas de trenes consecu-<br />
x,k<br />
tivos a <strong>la</strong> dependencia lk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84<br />
Si,j - estaciones comunes a los recorridos de ti y tj . . . . . . . . . . . . . . . . . . . . . . . . . 84<br />
Tti - trenes de T que tienen alguna dependencia en común con ti . . . . . . . . . . 88<br />
TUj<br />
Γi<br />
- trenes de T que viajan en sentido vuelta y tienen alguna dependencia en<br />
común con tj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92<br />
- cantidad en <strong>la</strong> que aumenta el tiempo de recorrido de un tren ti en un<br />
tramo cuando existe una <strong>para</strong>da no prevista en <strong>la</strong>s dependencias adyacentes<br />
97<br />
Ri - mínimo tiempo de recepción requerido por ti . . . . . . . . . . . . . . . . . . . . . . . . . 93<br />
pj prioridad asignada a tj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .93<br />
Ei - mínimo tiempo de expedición requerido por ti . . . . . . . . . . . . . . . . . . . . . . . . 95<br />
[I i L, I i U] - intervalo de tiempo en el cual es factible que ti parta de <strong>la</strong> estación origen<br />
de su recorrido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .98<br />
[F i L, F i U] - intervalo de tiempo en el cual es factible que ti llegue a <strong>la</strong> estación final de<br />
su recorrido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .99<br />
D max<br />
i<br />
- retraso máximo permitido a ti con respecto a su tiempo de recorrido ideal<br />
99<br />
τi - tiempo de recorrido ideal del tren ti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99<br />
Λi<br />
Gi<br />
tiempo de recorrido real empleado por el tren ti <strong>para</strong> realizar su recorrido<br />
completo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .99<br />
- grupo de trenes consecutivos entre los cuales debe cumplirse un determi-<br />
nado periodo de tiempo entre sus salidas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101<br />
[P i L, P i U] - intervalo de tiempo al que debe pertenecer el periodo exigido entre <strong>la</strong>s<br />
salidas de trenes consecutivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Speriodo i<br />
xxi<br />
- conjunto de estaciones en <strong>la</strong>s que debe cumplirse una determinada frecuen-<br />
cia de salida de los trenes que forman el grupo Gi . . . . . . . . . . . . . . . . . . . . . 101<br />
- variables que denotan instantes de llegada/salida de trenes que viajan en<br />
XI sentido ida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .103<br />
- variables que denotan instantes de llegada/salida de trenes que viajan en<br />
XV sentido vuelta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104<br />
Γ i ref - mejor tiempo que se puede obtener <strong>para</strong> el tren ti . . . . . . . . . . . . . . . . . . . 104<br />
δ(ādir, i) retraso de ti con respecto al tiempo promedio de los trenes que viajan en<br />
sentido dir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104<br />
ωexc<br />
ωdesv<br />
- peso proporcionado al retraso promedio de los trenes en <strong>la</strong> función de costo<br />
global del CSOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105<br />
- peso proporcionado a <strong>la</strong> desviación standard de los retrasos promedio de<br />
cada sentido de viaje con respecto al retraso promedio total . . . . . . . . . . . 105<br />
ti - identificador de un tren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125<br />
arr i j+1 instante de llegada del tren ti a <strong>la</strong> dependencia j + 1 de su recorrido . . 148<br />
dep i j instante de salida del tren ti de <strong>la</strong> dependencia j de su recorrido . . . . . . 149<br />
∆ i j→j+1 - tiempo que emplea ti en ir desde l i j hasta li j+1<br />
Topen<br />
Sec i done<br />
ρi<br />
. . . . . . . . . . . . . . . . . . . . . . . 149<br />
conjunto de trenes nuevos que aún no tienen un horario en todo su recorrido<br />
182<br />
tramos pertenecientes al recorrido de ti en los que se ha especificado un<br />
horario factible . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183<br />
probabilidad de que el siguiente tramo del recorrido de ti sea seleccionado<br />
<strong>para</strong> <strong>la</strong> asignación de horario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .183<br />
δ i partial<br />
δmin<br />
retraso del tren ti con respecto al tiempo de referencia Γi teniendo en cuenta<br />
los tramos a los que se ha asignado hasta entonces un horario . . . . . . . . . 183<br />
- retraso parcial mínimo entre los retrasos parciales de los trenes nuevos, en<br />
un determinado instante de tiempo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
xxii<br />
- parámetro que representa un valor muy pequeño, utilizado <strong>para</strong> que ningu-<br />
ε<br />
na probabilidad ρi sea igual a cero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184<br />
- parámetro que se utiliza <strong>para</strong> esca<strong>la</strong>r una probabilidad. Cuanto mayor es<br />
α este valor <strong>la</strong> diferencia entre <strong>la</strong>s probabilidades también aumenta en forma<br />
exponencial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184<br />
Jij partición j del recorrido Ji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .187<br />
Jij partición j del recorrido Ji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .187
Resumen<br />
Los problemas de optimización y satisfacción de restricciones son extraordinaria-<br />
mente complejos y variados. Al mismo tiempo, son problemas de alto interés, tanto<br />
en el aspecto científico-técnico como en el aplicado. Por ello, poder disponer de<br />
soluciones algorítmicas eficientes y flexibles supone un alto valor añadido en muy<br />
diferentes entornos de aplicación.<br />
Entre los más típicos problemas de este tipo, se encuentran los problemas de<br />
scheduling, que implican <strong>la</strong> ejecución de acciones que requieren recursos cuya disponi-<br />
bilidad está limitada y por tanto deben asignarse de modo eficiente. Problemas de<br />
este tipo aparecen en numerosos contextos, entre los que se encuentran <strong>la</strong> generación<br />
optimizada de horarios. Concretamente, el problema considerado en esta tesis cor-<br />
responde a <strong>la</strong> generación optimizada de horarios ferroviarios. Este problema puede<br />
asimi<strong>la</strong>rse a un problema de scheduling tipo Job Shop, aunque con unas característi-<br />
cas particu<strong>la</strong>res y especialmente complejas.<br />
Se han publicado muchos trabajos en re<strong>la</strong>ción al problema de scheduling tipo Job<br />
Shop genérico, <strong>la</strong> mayoría de ellos mode<strong>la</strong>ndo el problema mediante programación<br />
entera mixta y resolviéndolo mediante <strong>la</strong> utilización de <strong>métodos</strong> matemáticos. En<br />
otros casos, se ha considerado <strong>la</strong> aplicación de técnicas CSPs híbridas, donde se<br />
fuerza <strong>la</strong> consistencia de <strong>la</strong>s restricciones hasta un determinado nivel, combinando<br />
el procedimiento con búsqueda heurística.<br />
Sin embargo, en todos los trabajos revisados se considera un subconjunto re-<br />
ducido de <strong>la</strong>s restricciones del problema que consideramos en esta Tesis. Esto c<strong>la</strong>ra-<br />
mente disminuye <strong>la</strong> complejidad del problema, razón por <strong>la</strong> cual en los <strong>métodos</strong><br />
matemáticos puede utilizarse <strong>la</strong> re<strong>la</strong>jación Lagrangiana o los p<strong>la</strong>nos de corte <strong>para</strong><br />
xxiii
xxiv<br />
disminuir el espacio de búsqueda. Sin embargo, cuando se incorporan los comple-<br />
jos tipos de restricciones que aparecen en los contextos reales, <strong>la</strong> programación<br />
matemática ya no es viable, pues los <strong>métodos</strong> de solución matemáticos se vuelven<br />
impracticables. Por otra parte, en el caso de los <strong>métodos</strong> basados en técnicas CSPs,<br />
es necesaria una adecuación de <strong>la</strong>s mismas <strong>para</strong> disminuir el espacio de búsqueda.<br />
De lo contrario, el tiempo empleado <strong>para</strong> prevenir o realizar backtrackings, o <strong>para</strong><br />
ordenar variables o valores en <strong>la</strong> búsqueda, hace inviable su aplicación en el complejo<br />
entorno propuesto. En resumen, es necesario adecuar y ampliar <strong>la</strong>s técnicas citadas,<br />
desarrol<strong>la</strong>ndo nuevos <strong>métodos</strong> y heurísticas que permitan una resolución eficiente<br />
ante los problemas reales y complejos como el que se p<strong>la</strong>ntea en esta Tesis, de for-<br />
ma que pueda desarrol<strong>la</strong>rse un sistema computacional de utilidad en una variada<br />
tipología de problemas.<br />
Nuestro objetivo es obtener una asignación optimizada de recursos en un com-<br />
plejo problema de scheduling tipo Job Shop. Particu<strong>la</strong>rmente, hemos diseñado y de-<br />
sarrol<strong>la</strong>do nuevos <strong>métodos</strong> <strong>para</strong> un problema de asignación de horarios (timetabling)<br />
en el contexto del transporte ferroviario.<br />
En primer lugar, realizamos una modelización formal del problema, original en<br />
su ámbito, especificando el conjunto de variables, dominios y restricciones que lo<br />
definen. Tras <strong>la</strong> revisión de propuestas previas, orientadas a <strong>la</strong> resolución de estos<br />
problemas, y análisis de sus carencias, proponemos un nuevo método de solución que<br />
considera todas <strong>la</strong>s restricciones propias de un contexto real. Se describen nuevas<br />
heurísticas <strong>para</strong> <strong>la</strong> ordenación de variables, así como procedimientos que fuerzan<br />
<strong>la</strong> consistencia entre restricciones sin que sea necesaria <strong>la</strong> previa ordenación de los<br />
valores en sus dominios. Se introducen <strong>métodos</strong> <strong>para</strong> llevar a cabo el backtracking<br />
sin tener que deshacer más asignaciones que <strong>la</strong>s necesarias, así como una heurística<br />
de poda de soluciones parciales que no conduzcan a soluciones mejores que <strong>la</strong> ac-<br />
tualmente conseguida. Los <strong>métodos</strong> desarrol<strong>la</strong>dos disponen adicionalmente de una<br />
funcionalidad de respuesta anytime.<br />
Los <strong>métodos</strong> y procedimientos presentados se evalúan sobre diversas instancias<br />
del problema, todas el<strong>la</strong>s obtenidas de casos reales. Se han seleccionado casos de<br />
estudio de diferente complejidad que nos han permitido concluir <strong>la</strong> <strong>eficiencia</strong> de los
<strong>métodos</strong> desarrol<strong>la</strong>dos en cuanto a tiempo de respuesta y calidad se refiere.<br />
xxv
Abstract<br />
Constraint Satisfaction and Optimization Problems are extraordinarily complex<br />
and varied. At the same time, these problems have a high interest, as well in the<br />
scientific-technic aspect, as in the applied aspect. Thus, having efficient and flexible<br />
algorithmic solutions supposes a high extra value in different contexts of application.<br />
Scheduling problems are one of the more typical problems of this type, which<br />
imply the execution of actions that requiere resources whose avai<strong>la</strong>bility is limited,<br />
and therefore it must be assigned efficiently. Problems of this type appear in numer-<br />
ous contexts, for example the optimized generation of timetables. Concretely, the<br />
considered problem in this thesis corresponds to the optimized generation of railway<br />
timetables. We consider this problem as a specialization of the Job Shop Scheduling<br />
Problem, although with a complex and specific characteristics.<br />
Many works re<strong>la</strong>ted to the generic Job Shop scheduling problem have been pub-<br />
lished. Most of them model the problem using mixed integer programming and<br />
solving it using mathematical procedures. In other cases, the application of hybrid<br />
CSP techniques have been considered, where the enforcing consistency of constraints<br />
is employed until a given level, combining the procedure with heuristic search.<br />
However, in all the reviewed works are considered a reduced subset of constraints<br />
with respect to the set of constraints that we consider in this thesis. This reduces<br />
considerably the problem complexity and allows the use of mathematical methods<br />
such as the Lagrangian re<strong>la</strong>xation or the cut p<strong>la</strong>nes, that are used to minimize the<br />
search space. But, when complex types of constraints, suitable for real contexts,<br />
are incorporated, the mathematical methods are not viable. These methods become<br />
impracticable. In the other hand, in the case of CSP techniques based methods,<br />
xxvii
xxviii<br />
is necessary its adaptation in order to reduce the search space. If this adaptation<br />
is not performed, the time employed to prevent, perform backtracking, and order<br />
variables or values during the search, implies an impracticable process of search in<br />
the complex domain that we propose. In summary, it is necessary to adapt and to<br />
extend the reviewed techniques, developing new methods and heuristics that allow<br />
and efficient solving considering real and complex problems, such as the proposed in<br />
this thesis. In this way, will be possible implement a practical computational system<br />
for diverse problem types.<br />
Our objective is to obtain an optimized assignment of resources in a complex<br />
Job Shop scheduling problem. In particu<strong>la</strong>r, we have designed and developed new<br />
methods to solve the optimization and generation of timetables problem in the<br />
railway transport context.<br />
First, we model the problem formally specifying the variable set, domains and<br />
constraints that define it. After a review of previous proposals, oriented to solve<br />
these problems, and after an analysis of their deficiencies, we propose a new method<br />
of solution that considers all the constraints suitable for a real context of applica-<br />
tion. New heuristics for variable ordering, as well as procedures for the consistency<br />
enforcing of constraints without a previous value ordering are described. New tech-<br />
niques to perform backtracking are introduced, where the minimal undo operations<br />
are carried out, and a procedure to estimate the cost of each partial solution is used<br />
to discard it if its cost is equal or worse than the best solution obtained until this<br />
time. The new methods have additionally a response functionality anytime.<br />
The proposed methods and procedures are evaluated using diverse instances<br />
of the problem, all them have been obtained from real cases. Cases of study with<br />
different complexity have allowed us conclude on the new methods efficiency regards<br />
to response time and quality are concerned.
Resum<br />
Els problemes d’optimització i satisfacció de restriccions són extraordinàriament<br />
complexos i variats. Al mateix temps, són problemes d’alt interés, tant en l’aspecte<br />
cientificotècnic com en l’aplicat. Per això, poder disposar de solucions algorítmicas<br />
eficients i flexibles suposa un alt valor afegit en molt diferents entorns d’aplicació.<br />
Entre els més típics problemes d’este tipus, es troben els problemes de schedul-<br />
ing, que impliquen l’execució d’accions que requerixen recursos <strong>la</strong> disponibilitat dels<br />
quals està limitada i per tant han d’assignar-se de manera eficient. Problemes d’este<br />
tipus apareixen en nombrosos contextos, entre els que es troben <strong>la</strong> generació op-<br />
timitzada d’horaris. Concretament, el problema considerat en esta tesi correspon<br />
a <strong>la</strong> generació optimitzada d’horaris ferroviaris. Este problema pot assimi<strong>la</strong>r-se a<br />
un problema de scheduling tipus Job Shop, encara que amb unes característiques<br />
particu<strong>la</strong>rsment i especialment complexes.<br />
S’han publicat molts treballs en re<strong>la</strong>ció al problema de scheduling tipus Job Shop<br />
genèric, <strong>la</strong> majoria d’ells mode<strong>la</strong>nt el problema per mitjà de programació sencera<br />
mixta i resolent-ho per mitjà de <strong>la</strong> utilització de mètodes matemàtics. En altres ca-<br />
sos, s’ha considerat l’aplicació de tècniques CSPs híbrides, on es força <strong>la</strong> consistència<br />
de les restriccions fins a un determinat nivell, combinant el procediment amb busca<br />
heurística.<br />
No obstant això, en tots els treballs revisats es considera un subconjunt reduït<br />
de les restriccions del problema que considerem en esta Tesi. Açò c<strong>la</strong>rament dis-<br />
minuïx <strong>la</strong> complexitat del problema, raó per <strong>la</strong> qual en els mètodes matemàtics pot<br />
utilitzar-se <strong>la</strong> re<strong>la</strong>xació Lagrangiana o els p<strong>la</strong>ns de talle per a disminuir l’espai de<br />
busca. No obstant això, quan s’incorporen els complexos tipus de restriccions que<br />
xxix
xxx<br />
apareixen en els contextos reals, <strong>la</strong> programació matemàtica ja no és viable, perquè<br />
els mètodes de solució matemàtics es tornen impracticables. D’altra banda, en el cas<br />
dels mètodes basats en tècniques CSPs, és necessària una adequació de les mateixes<br />
per a disminuir l’espai de busca. De el contrari, el temps emprat per a previndre o<br />
realitzar backtrackings, o per a ordenar variables o valors en <strong>la</strong> busca, fa inviable<br />
<strong>la</strong> seua aplicació en el complex entorn proposat. En resum, és necessari adequar i<br />
ampliar les tècniques citades, desenvolupant nous mètodes i heurístiques que per-<br />
meten una resolució eficient davant dels problemes reals i complexos com el que es<br />
p<strong>la</strong>nteja en esta Tesi, de manera que puga desenvolupar-se un sistema computacional<br />
d’utilitat en una variada tipologia de problemes.<br />
El nostre objectiu és obtindre una assignació optimitzada de recursos en un<br />
complex problema de scheduling tipus Job Shop. Particu<strong>la</strong>rment, hem dissenyat i<br />
desenvolupat nous mètodes per a un problema de assignació d’horaris (timetabling)<br />
en el context del transport ferroviari.<br />
En primer lloc, realitzem una modelització formal del problema, original en el seu<br />
àmbit, especificant el conjunt de variables, dominis i restriccions que ho definixen.<br />
Després de <strong>la</strong> revisió de propostes prèvies, orientades a <strong>la</strong> resolució d’estos problemes,<br />
i anàlisi de les seues carències, proposem un nou mètode de solució que considera<br />
totes les restriccions pròpies d’un context real. Es descriuen noves heurístiques per<br />
a l’ordenació de variables, així com a procediments que forcen <strong>la</strong> consistència en-<br />
tre restriccions sense que siga necessària <strong>la</strong> prèvia ordenació dels valors en els seus<br />
dominis. S’introduïxen mètodes per a dur a terme el backtracking sense haver de<br />
desfer més assignacions que les necessàries, així com una heurística de poda de solu-<br />
cions parcials que no conduïsquen a solucions millors que l’actualment aconseguida.<br />
Els mètodes desenvolupats disposen addicionalment d’una funcionalitat de resposta<br />
anytime.<br />
Els mètodes i procediments presentats s’avaluen sobre diverses instàncies del<br />
problema, totes elles obtingudes de casos reals. Se han seleccionat casos d’estudi de<br />
diferent complexitat que nos han permés concloure l’eficiència dels mètodes desen-<br />
volupats en quant a temps de resposta i qualitat es referix.
Capítulo 1<br />
Introducción<br />
1.1. Introduccíón<br />
Los problemas de optimización y satisfacción de restricciones son extraordinar-<br />
iamente complejos y variados. Al mismo tiempo se trata de problemas de un alto<br />
interés, tanto en el ámbito científico-técnico como aplicado. Disponer de soluciones<br />
algorítmicas eficientes y flexibles supone un alto valor añadido en muy diferentes<br />
entornos de aplicación.<br />
Entre estos problemas, se encuentran los de scheduling que implican, en términos<br />
generales, <strong>la</strong> secuenciación de tareas que requieren <strong>para</strong> su ejecución, <strong>la</strong> asignación de<br />
recursos escasos. Esta asignación de recursos debe hacerse de modo que se optimicen<br />
determinados criterios de <strong>eficiencia</strong>.<br />
Muchos problemas que se presentan en <strong>la</strong> práctica son problemas de scheduling.<br />
Entre ellos se encuentran los problemas de generación optimizada de horarios de<br />
ferrocarril . De hecho, el desp<strong>la</strong>zamiento de pasajeros y mercancías (movilidad) ha<br />
crecido de forma continuada en España a lo <strong>la</strong>rgo de los pasados años y está previsto<br />
que esta tendencia continúe. Teniendo en cuenta que algunos de los sistemas de<br />
transporte se están utilizando al límite de su capacidad (carreteras, ferrocarriles y<br />
sistemas de transporte aéreo), este crecimiento supone un importante reto <strong>para</strong> <strong>la</strong>s<br />
partes implicadas, tales como gestores de infraestructuras, operadores de transporte<br />
de pasajeros y operadores de mercancías.<br />
En particu<strong>la</strong>r, en el transporte ferroviario actual, una expansión ilimitada de<br />
<strong>la</strong> infraestructura ferroviaria ya no se ve como una solución <strong>para</strong> el problema de<br />
1
2 1. Introducción<br />
<strong>la</strong> movilidad por una serie de razones, incluyendo el impacto medioambiental: <strong>la</strong><br />
solución debe venir de un uso racional de <strong>la</strong>s infraestructuras existentes en com-<br />
binación con una expansión limitada de <strong>la</strong>s mismas. Parte del crecimiento de <strong>la</strong><br />
movilidad deberá ser facilitado por el sistema de ferrocarriles. Sin embargo con el<br />
fin de adecuar este crecimiento o incluso un incremento del mercado compartido del<br />
sistema de ferrocarril, deben llevarse a cabo mejoras en <strong>la</strong> calidad de los servicios<br />
y <strong>eficiencia</strong> de los sistemas. Estos últimos también son necesarios por <strong>la</strong> entrada de<br />
<strong>la</strong> competencia de mercados libres de ferrocarril por <strong>la</strong>s regu<strong>la</strong>ciones recientes de<br />
<strong>la</strong> Comisión Europea: los operadores de ferrocarril deberán operar como organiza-<br />
ciones comerciales y únicamente es responsabilidad de los gobiernos <strong>la</strong> gestión de<br />
<strong>la</strong>s infraestructuras ferroviarias. La generación automática de horarios optimizados<br />
supone una mejora relevante tanto en <strong>la</strong> calidad del servicio ofrecido al usuario como<br />
del uso de <strong>la</strong> infraestructura ferroviaria existente.<br />
El problema de generación de horarios optimizados es un problema combinatorio<br />
de optimización. Es un problema combinatorio porque puede existir más de una<br />
combinación factible de valores que corresponda a una solución al mismo. Por otra<br />
parte, es un problema de optimización porque, de entre todas <strong>la</strong>s combinaciones<br />
de valores factibles, se requiere hal<strong>la</strong>r <strong>la</strong> mejor, o una suficientemente optimizada,<br />
según un determinado criterio de optimización.<br />
Visto como un problema de scheduling, los problemas de generación de horarios<br />
constan de un determinado conjunto de operaciones que deben ser ejecutadas. Cada<br />
una de estas operaciones requiere utilizar un determinado tipo de recurso <strong>para</strong> lle-<br />
var a cabo su objetivo. Existe un conjunto de restricciones que debe ser satisfecho<br />
simultáneamente por <strong>la</strong>s asignaciones realizadas <strong>para</strong> que estas sean consideradas<br />
factibles y por ende una solución del problema. De esta forma, el objetivo es hal<strong>la</strong>r<br />
un instante de inicio y un instante de finalización <strong>para</strong> cada operación, satisfaciendo<br />
el conjunto de restricciones correspondiente y optimizando una determinada función<br />
objetivo.<br />
Como veremos más ade<strong>la</strong>nte, el problema considerado en esta tesis corresponde<br />
a un particu<strong>la</strong>r problema de scheduling tipo Job Shop. En consecuencia, hemos<br />
revisado los trabajos previos sobre dichos problemas, analizando sus características<br />
y <strong>la</strong>s principales técnicas desarrol<strong>la</strong>das <strong>para</strong> resolver un problema de este tipo. En<br />
algunos trabajos, se utiliza <strong>la</strong> programación matemática <strong>para</strong> <strong>la</strong> modelización de
1.2. El problema de Scheduling tipo Job Shop y su Formu<strong>la</strong>ción como un CSOP 3<br />
estos problemas. En otros, <strong>la</strong> formu<strong>la</strong>ción del problema se realiza mediante técnicas<br />
de programación de restricciones, tratándolo como un Problema de Optimización y<br />
Satisfacción de Restricciones (CSOP, sig<strong>la</strong>s en inglés).<br />
Sin embargo, ciertos tipos de restricciones del problema de generación de horar-<br />
ios que tratamos, son muy difíciles de mode<strong>la</strong>r tanto en forma matemática como<br />
en el lenguaje de <strong>la</strong> programación de restricciones. Ello conduce a que los méto-<br />
dos genéricos que resuelven modelos matemáticos o bien que utilizan técnicas <strong>para</strong><br />
resolver CSOPs no puedan ser utilizados directamente <strong>para</strong> <strong>la</strong> modelización de <strong>la</strong>s<br />
restricciones existentes en el problema.<br />
Por otra parte, <strong>la</strong>s restricciones a tratar dan lugar a una gran complejidad com-<br />
putacional, ya que su presencia implica mayor número de alternativas que estudiar.<br />
De esta forma, obtener una solución rápida y de buena calidad puede requerir un<br />
excesivo tiempo de cálculo, lo cual no es viable en los entornos de aplicación reales.<br />
En consecuencia, tras <strong>la</strong> revisión de los modelos y <strong>métodos</strong> orientados hacia<br />
<strong>la</strong> resolución del tipo de problema p<strong>la</strong>nteado, es necesario el desarrollo de nuevo<br />
<strong>métodos</strong> que permitan mode<strong>la</strong>r adecuadamente <strong>la</strong>s restricciones existentes y puedan<br />
obtener soluciones optimizadas de forma eficiente. El resultado obtenido es descrito<br />
en esta Tesis.<br />
En <strong>la</strong>s siguientes secciones de este capítulo se introduce el tipo de problema<br />
que se p<strong>la</strong>ntea resolver en esta tesis, su marco como un problema de scheduling<br />
tipo Job Shop y su formu<strong>la</strong>ción como un problema CSOP. También se detal<strong>la</strong>n <strong>la</strong>s<br />
motivaciones que condujeron al desarrollo de esta tesis, los objetivos concretos de<br />
<strong>la</strong> misma y un esquema de los capítulos que contiene.<br />
1.2. El problema de Scheduling tipo Job Shop y su For-<br />
mu<strong>la</strong>ción como un CSOP<br />
Scheduling es el problema de asignar a un conjunto de tareas, un conjunto de re-<br />
cursos, sujeto a un conjunto de restricciones. Ejemplos de restricciones de scheduling<br />
incluyen: deadlines (el trabajo i debe ser completado antes que se cump<strong>la</strong> el instante<br />
t), limitada cantidad de recursos (existen cuatro ta<strong>la</strong>dros), restricciones de prece-<br />
dencia (una pieza debe ser pulida antes de ser pintada), prioridades sobre <strong>la</strong>s tareas
4 1. Introducción<br />
(terminar el trabajo j cuanto antes), entre otras.<br />
Uno de los criterios utilizados <strong>para</strong> c<strong>la</strong>sificar los problemas de scheduling es el<br />
patrón de flujo, el cual consiste en <strong>la</strong> secuencia de ordenación de <strong>la</strong>s operaciones.<br />
Teniendo en cuenta este criterio el problema de scheduling puede ser:<br />
Job Shop (J-S). Por cada trabajo se establece una ordenación determinada<br />
entre sus tareas. En <strong>la</strong> Figura 1.1 se muestra un ejemplo de este tipo de<br />
problema, donde Ti - 1 ≥ i ≥ 4 es un trabajo, y Rj - 1 ≥ j ≥ 5 es el recurso<br />
que emplea <strong>la</strong> tarea j que lo compone. 12<br />
Figura 1.1: Ordenación de tareas y recursos establecidos <strong>para</strong> cada trabajo de un<br />
problema de scheduling tipo Job Shop R R2<br />
Flow Shop (F-S). Todos los trabajos tienen <strong>la</strong> misma secuencia de ordenación<br />
de <strong>la</strong>s operaciones. Es un caso particu<strong>la</strong>r del J-S. En <strong>la</strong> Figura 1.2 se muestra un<br />
ejemplo de este tipo de problema. Como puede verse, existen cuatro trabajos y<br />
en todos ellos se requiere utilizar los recursos del problema en el mismo orden. 11<br />
T4 T2<br />
T3 T4 T 2 12<br />
T2<br />
4 R R5 R4 R4 R 1 R5 R 5 R<br />
T 1 3 R1 T3<br />
5 R R<br />
R4R3R3<br />
R2 R3<br />
3 R 5 R 1 R 3 R4 R 2 R 5 R R 3 R 5 R 1 R 3 R4 R 2 R<br />
Figura 1.2: Ordenación de tareas y recursos establecidos <strong>para</strong> cada trabajo de un<br />
problema de scheduling tipo Flow Shop R5<br />
R<br />
Permutation Flow Shop (P). Hay una ordenación determinada de <strong>la</strong>s opera-<br />
ciones <strong>para</strong> cada uno de los trabajos, y también hay un orden de uso de cada<br />
uno de los recursos por parte de <strong>la</strong>s operaciones.<br />
Open Shop (O). No hay ninguna restricción de ordenación.<br />
R R4 R R4
1.2. El problema de Scheduling tipo Job Shop y su Formu<strong>la</strong>ción como un CSOP 5<br />
En particu<strong>la</strong>r, el problema objeto de esta tesis es un problema de scheduling que<br />
corresponde a un tipo específico de Job Shop.<br />
En un problema de scheduling tipo Job Shop existen n trabajos, cada uno for-<br />
mado por una secuencia ordenada de operaciones que visita un número de máquinas<br />
siguiendo una ruta pre determinada. En algunos modelos de Job Shop, un trabajo<br />
puede visitar una determinada máquina a lo sumo una vez, en otros modelos una<br />
misma máquina puede ser visitada más de una vez por un mismo trabajo. En el<br />
último caso se dice que el trabajo está sujeto a re circu<strong>la</strong>ción. El procesamiento del<br />
trabajo j en <strong>la</strong> máquina i es referido como una operación (i, j) y su duración es pij<br />
. El objetivo es minimizar el makespan Cmax . En general, en un Job Shop cada<br />
máquina puede procesar como máximo una operación a <strong>la</strong> vez.<br />
En el trabajo publicado por Dechter en [32], el problema de minimizar el makespan<br />
en un Job Shop sin re circu<strong>la</strong>ción es representado por medio de un grafo disyuntivo.<br />
Se considera un grafo dirigido G con un conjunto de nodos N y dos conjuntos de<br />
arcos A y B. , 1 1 , 2 1 , 3 1<br />
, 1 3 , 2 , 2 2 , 1 2 , 4 2 , 3 U V 0 3<br />
Figura 1.3: Grafo Dirigido <strong>para</strong> Job Shop con el makespan como el objetivoTerminal<br />
Origen<br />
Los nodos N corresponden a todas <strong>la</strong>s operaciones (i, j) que deben ser llevadas<br />
a cabo en los n trabajos.<br />
Los arcos del conjunto A, l<strong>la</strong>mados arcos conjuntivos representan <strong>la</strong>s rutas de<br />
los trabajos. Si el arco (i, j) → (h, j) es parte de A, entonces el trabajo j tiene que<br />
ser procesado en <strong>la</strong> máquina i antes de ser procesado en <strong>la</strong> máquina h. Esto significa<br />
que <strong>la</strong> operación (i, j) precede a <strong>la</strong> operación (h, j). Dos operaciones, que pertenecen<br />
42 p43 23 p 00<br />
a dos trabajos diferentes y que deben ser procesadas por <strong>la</strong> misma máquina, están<br />
43 p p<br />
3 , 4 2
6 1. Introducción<br />
conectadas una a otra por los l<strong>la</strong>mados arcos disyuntivos en direcciones opuestas.<br />
El conjunto de arcos disyuntivos B forma m cliques de arcos dobles, un clique<br />
por cada máquina. Todos los arcos, conjuntivos o disyuntivos, saliendo de un nodo<br />
tienen como longitud el tiempo de procesamiento de <strong>la</strong> operación representada por<br />
el nodo.<br />
Además hay un nodo origen U y un nodo terminal V , los cuales son nodos<br />
artificiales. El nodo origen U tiene n arcos conjuntivos que parten del mismo hacia<br />
<strong>la</strong>s primeras operaciones de los n trabajos, y el nodo terminal V tiene n arcos<br />
conjuntivos entrantes desde <strong>la</strong>s últimas operaciones. Los arcos salientes del nodo U<br />
tienen longitud cero, ver Figura 2.3. Este grafo es denotado por G = (N, A, B).<br />
Una de <strong>la</strong>s aproximaciones empleadas <strong>para</strong> mode<strong>la</strong>r este tipo de problemas con-<br />
siste en formu<strong>la</strong>rlo como un CSOP, el cual es definido por una cuadrup<strong>la</strong> de: (i)<br />
variables, (ii) dominio de <strong>la</strong>s variables, (iii) restricciones y (iv) función objetivo.<br />
En un CSOP el objetivo es asignar un valor a cada variable de tal forma que<br />
dicho valor pertenezca al dominio de <strong>la</strong> variable y que <strong>la</strong> asignación simultánea de<br />
<strong>la</strong>s variables del problema satisfagan el conjunto de restricciones considerado. De<br />
ser así, una solución es obtenida. La calidad de <strong>la</strong> misma es medida por <strong>la</strong> función<br />
objetivo, cuyo dominio de aplicación es <strong>la</strong> asignación realizada.<br />
Al mode<strong>la</strong>r un Job Shop como un CSOP, <strong>la</strong>s variables son el instante de inicio<br />
y el instante de fin de cada operación definida en el Job Shop. El conjunto de<br />
restricciones está formada por los requerimientos de precedencia entre operaciones<br />
de un mismo trabajo, requerimientos de capacidad de un recurso o centro de trabajo,<br />
así como cualquier otro requerimiento que se desee establecer entre <strong>la</strong>s operaciones<br />
o entre los trabajos que componen el Job Shop. El dominio de <strong>la</strong>s variables es el<br />
conjunto de valores que pueden servir como unidad de tiempo y <strong>la</strong> función objetivo<br />
puede ser minimizar el makespan, minimizar <strong>la</strong> demora de determinados trabajos,<br />
minimizar el uso de determinados recursos, o cualquier otra función que signifique<br />
optimización dentro del dominio en el que se aplica el problema.<br />
Se ha realizado una revisión de los <strong>métodos</strong> y técnicas <strong>para</strong> resolver problemas<br />
de scheduling tipo Job Shop genéricos así como problemas formu<strong>la</strong>dos como CSP.<br />
Podemos indicar que los principales problemas abiertos consisten en que muchas de<br />
<strong>la</strong>s restricciones, necesarias <strong>para</strong> que <strong>la</strong> solución sea viable en un entorno real, no son<br />
tenidas en cuenta en los trabajos publicados. Al agregar estas restricciones muchos
1.3. Marco de Trabajo: Generación Optimizada de Horarios. Aplicación a Horarios Ferroviarios7<br />
<strong>métodos</strong>, específicamente los que conllevan programación matemática no pueden<br />
ser aplicados. Otros <strong>métodos</strong> basados en heurísticas dejan de ser eficientes, ya que<br />
consideran que el backtracking no es necesario, o bien proveen formas de evitar el<br />
mismo que al ser aplicados elevan <strong>la</strong> complejidad temporal de cada generación junto<br />
con su complejidad espacial, debido a <strong>la</strong>s estructuras de datos que proponen <strong>para</strong><br />
recordar cada incumplimiento que implica un backtracking.<br />
1.3. Marco de Trabajo: Generación Optimizada de Ho-<br />
rarios. Aplicación a Horarios Ferroviarios<br />
El Problema de Optimizar y Programar horarios <strong>para</strong> Trenes (OPT) puede ser<br />
considerado como un problema de scheduling tipo Job Shop. Esta corresponden-<br />
cia es detal<strong>la</strong>da en el Capítulo 3. Sin embargo, el problema reúne un conjunto de<br />
características que agregan tal complejidad que <strong>la</strong>s aproximaciones existentes re-<br />
sultan inadecuadas, ya sea por <strong>la</strong> imposibilidad de formu<strong>la</strong>r el problema o por <strong>la</strong><br />
degradación en <strong>la</strong> <strong>eficiencia</strong> del método de solución.<br />
El problema OPT es uno de los problemas que deben ser resueltos a <strong>la</strong> hora de re-<br />
alizar una p<strong>la</strong>nificación dentro del sector ferroviario. El sistema de tráfico ferroviario<br />
es muy complejo, por lo que el proceso de p<strong>la</strong>nificación es dividido en varios pasos<br />
(Bussieck, [16]). En <strong>la</strong> Figura 1.4 se muestra un diagrama de esta descomposición<br />
jerárquica. En un primer paso, se estima <strong>la</strong> cantidad de pasajeros deseando ir desde<br />
ciertos puntos origen hasta ciertos puntos destino. A partir de dicha información se<br />
p<strong>la</strong>nifican <strong>la</strong>s líneas, empezando por <strong>la</strong> infraestructura necesaria y continuando por<br />
los tipos de trenes que operarán en cada línea, y <strong>la</strong> frecuencia que deberá existir<br />
entre los trenes según el tipo al que correspondan. La siguiente tarea consiste en<br />
determinar el horario que se asociará a cada tren en cada línea. Es este el proble-<br />
ma <strong>para</strong> el cual proponemos un método de solución en este trabajo, y <strong>para</strong> el cual<br />
proporcionamos una modelización que lo define formalmente. Finalmente se debe<br />
realizar una asignación de <strong>la</strong>s máquinas y vagones a cada tren así como del personal<br />
que se deberá incluir en cada tren. Cada paso único en este proceso es una tarea<br />
difícil. Una descripción más detal<strong>la</strong>da de cada uno es proporcionada por Thomas<br />
Lindner en [113].
8 1. Introducción<br />
de Análisis Línea de ión P<strong>la</strong>nificacDemanda<br />
Material de ión P<strong>la</strong>nificac Personal de Manejo Rodante<br />
Figura 1.4: Proceso de P<strong>la</strong>nificación Jerárquica<br />
P<strong>la</strong>nificac<br />
Otro clásico punto de vista es <strong>la</strong> partición del proceso de p<strong>la</strong>nificación en p<strong>la</strong>ni-<br />
ficación estratégica, táctica y operacional [113]. Ver Tab<strong>la</strong> 1.1.<br />
<strong>para</strong> Horarios de ión Trenes<br />
Nivel de P<strong>la</strong>nificación Horizonte de Tiempo Objetivo<br />
Estratégica 5 - 15 años Adquisición de Recursos<br />
Táctica 1 - 5 años Asignación de Recursos<br />
Operacional 24h - 1 año Decisiones diarias<br />
Cuadro 1.1: Niveles de P<strong>la</strong>nificación<br />
En el nivel de p<strong>la</strong>nificación estratégica, se examinan posibles inversiones de<br />
infraestructura. El objetivo es decidir acerca de <strong>la</strong> adquisición de recursos. Tales<br />
proyectos pueden tener una duración de 5 - 15 años, y por lo tanto <strong>la</strong> visión de<br />
futuro juega un papel muy importante. El análisis de <strong>la</strong> demanda de pasajeros y el<br />
diseño de <strong>la</strong>s líneas pertenecen a este nivel de p<strong>la</strong>nificación. También es posible ex-<br />
aminar horarios de trenes en este punto de <strong>la</strong> p<strong>la</strong>nificación, <strong>para</strong> examinar el efecto<br />
de una cierta propuesta de infraestructura en el tiempo de viaje.
1.3. Marco de Trabajo: Generación Optimizada de Horarios. Aplicación a Horarios Ferroviarios9<br />
La p<strong>la</strong>nificación táctica está enfocada a <strong>la</strong> asignación de recursos a medio p<strong>la</strong>zo.<br />
En esta etapa, el patrón general de flujo de tráfico es derivado de <strong>la</strong> infraestructura<br />
invariable y de los datos acerca de <strong>la</strong>s demandas de clientes. Se realiza una p<strong>la</strong>ni-<br />
ficación de líneas y horarios de trenes más detal<strong>la</strong>dos así como patrones generales<br />
<strong>para</strong> <strong>la</strong> circu<strong>la</strong>ción de material rodante y manejo del personal.<br />
Decisiones diarias constituyen el nivel de p<strong>la</strong>nificación operacional. En esta etapa<br />
de <strong>la</strong> p<strong>la</strong>nificación, partes de un horario o parte de <strong>la</strong> p<strong>la</strong>nificación de material<br />
rodante y personal deben ser re p<strong>la</strong>nificados, debido a eventos inesperados como<br />
averías, requerimiento de trenes especiales, o cambios en <strong>la</strong> infraestructura por cortos<br />
periodos de tiempo , causados por <strong>la</strong> construcción en ciertos sitios.<br />
El método de solución que proponemos en esta Tesis podrá ser utilizado tan-<br />
to <strong>para</strong> llevar a cabo una P<strong>la</strong>nificación Táctica como Operacional en cuanto a <strong>la</strong><br />
asignación de horarios se refiere.<br />
1.3.1. Introducción al Problema de Optimizar y Programar horar-<br />
ios <strong>para</strong> Trenes<br />
En el Problema de Optimizar y Programar horarios <strong>para</strong> Trenes (OPT) se consid-<br />
era un conjunto de trenes y una línea ferroviaria, <strong>la</strong> cual está formada por una secuen-<br />
cia ordenada de dependencias (apeaderos, estaciones, bifurcaciones, cargaderos, ...,<br />
etc.). Cada tren tiene definido un recorrido sobre <strong>la</strong> misma, que no tiene por qué ser<br />
el mismo <strong>para</strong> todos. Se deberá asignar un horario factible, según un determina-<br />
do conjunto de restricciones, a cada tren, optimizando una determinada función<br />
objetivo.<br />
El orden entre <strong>la</strong>s dependencias determina el orden en el cual deben ser visitadas<br />
por los trenes que viajan en un determinado sentido, al cual denominamos ida.<br />
Cuando los trenes viajan en el sentido opuesto, decimos que viajan en sentido vuelta.<br />
Las restricciones, que deben ser satisfechas por <strong>la</strong> programación de horarios<br />
entregada, tienen en cuenta <strong>la</strong> capacidad de <strong>la</strong> infraestructura ferroviaria, el tráfico<br />
que existe en <strong>la</strong> línea, <strong>la</strong>s condiciones de mantenimiento, el servicio propuesto al<br />
cliente, y <strong>la</strong>s condiciones establecidas por el p<strong>la</strong>nificador de horarios <strong>para</strong> guiar<br />
hacia un tipo de resultado <strong>la</strong> solución que se obtenga.<br />
La infraestructura ferroviaria está dada por el número de vías en <strong>la</strong> dependencia
10 1. Introducción<br />
y entre dependencias consecutivas, así como por el tipo de señalización que existe<br />
en cada tramo. Las restricciones que tienen en cuenta el mantenimiento de <strong>la</strong> línea<br />
incluyen los horarios de cierre en <strong>la</strong>s estaciones y los intervalos de tiempo corre-<br />
spondientes a <strong>la</strong>s operaciones de mantenimiento. En cuanto a <strong>la</strong>s restricciones de<br />
tráfico, se debe considerar que puede existir más de un tren en <strong>la</strong> línea, por lo tanto<br />
se deberá evitar colisiones entre ellos o cualquier otro tipo de operación que pon-<br />
ga en riesgo al vehículo y a sus ocupantes. En cuanto al servicio al cliente, puede<br />
ser requerida una determinada frecuencia de salida entre trenes consecutivos de de-<br />
terminadas estaciones, o una mínima <strong>para</strong>da comercial que permita el ascenso y<br />
descenso de pasajeros en determinadas estaciones o apeaderos. Además, el p<strong>la</strong>nifi-<br />
cador podrá especificar por cada tren, un intervalo de instantes de tiempo factibles<br />
<strong>para</strong> que el tren parta de su estación origen y podrá restringir el instante de llegada<br />
a su estación destino a un determinado intervalo de tiempo. Otro requerimiento que<br />
puede ser añadido es el de un máximo retraso permitido con respecto a un tiempo<br />
de referencia <strong>para</strong> el tren.<br />
En cada dependencia se especifica un número total de vías y <strong>la</strong> cantidad de es-<br />
tas vías que poseen andén. Un tren no podrá llegar a una dependencia en <strong>la</strong> cual<br />
no exista por lo menos una vía disponible. Además, deberá poseer andén si el tren<br />
que llega tiene previsto realizar una <strong>para</strong>da comercial en el<strong>la</strong>. Otro de los atributos<br />
asociados a una dependencia es el horario de cierre, formado por un conjunto de<br />
intervalos de tiempo, que seña<strong>la</strong>n cada uno, los instantes en los que dicha depen-<br />
dencia permanece cerrada. Consideramos dos tipos de cierre: apto <strong>para</strong> circu<strong>la</strong>ción<br />
y no apto <strong>para</strong> circu<strong>la</strong>ción. Si se da el primer caso, significa que mientras dure el<br />
cierre, solo una vía de <strong>la</strong> dependencia estará disponible, lo cual a su vez significa<br />
que no podrá ser ocupada al mismo tiempo, por más de un tren. Si el cierre es del<br />
segundo tipo, significa que ningún tren podrá pasar por <strong>la</strong> dependencia mientras<br />
dure el cierre especificado <strong>para</strong> <strong>la</strong> misma.<br />
Entre dos dependencias consecutivas pueden existir una o dos vías de circu<strong>la</strong>ción.<br />
Si existe una so<strong>la</strong> vía de circu<strong>la</strong>ción, entonces tanto los trenes que viajan en sentido<br />
ida como los trenes que viajan en sentido vuelta deberán utilizar <strong>la</strong> misma vía <strong>para</strong><br />
ir de una dependencia a otra. En este caso se deberá tener en cuenta que dos trenes<br />
viajando en sentido opuesto no podrán utilizar dicho tramo al mismo tiempo, <strong>para</strong><br />
evitar una colisión entre los mismos. Cuando dos trenes que viajan en sentido opuesto
1.3. Marco de Trabajo: Generación Optimizada de Horarios. Aplicación a Horarios Ferroviarios11<br />
tienen <strong>la</strong> posibilidad de ocupar un mismo tramo al mismo tiempo, se deberá decidir<br />
cuál de ellos lo ocupará primero, haciendo que el otro tren espere hasta que el tramo<br />
sea liberado. La decisión que sea tomada cada vez que aparece un conflicto de este<br />
tipo, condiciona <strong>la</strong> calidad de <strong>la</strong> programación de horarios.<br />
Cuando dos trenes que viajan en sentidos opuestos llegan a una misma estación,<br />
desde tramos que constan de única vía, es importante que exista un mínimo tiempo<br />
entre sus llegadas (tiempo de recepción) así como entre <strong>la</strong> llegada de un tren y <strong>la</strong><br />
salida del tren con sentido de viaje opuesto (tiempo de expedición). Estos tiempos<br />
aseguran que no se produzcan colisiones entre trenes que viajan en sentidos opuestos,<br />
a <strong>la</strong> entrada o a <strong>la</strong> salida de una estación que posea una única vía de salida o de<br />
llegada.<br />
Cuando existen dos vías de circu<strong>la</strong>ción entre dos dependencias consecutivas, se<br />
dedica cada vía a <strong>la</strong> circu<strong>la</strong>ción en un determinado sentido, de tal forma que dos<br />
trenes viajando en sentido opuesto no utilizarán <strong>la</strong> misma vía de circu<strong>la</strong>ción en dicho<br />
tramo.<br />
Cuando dos trenes viajan en el mismo sentido y son consecutivos entre sí, por ra-<br />
zones de seguridad se requiere que exista una diferencia de tiempo entre ellos. Según<br />
sea el sistema de señalización empleado en un tramo, a esta diferencia de tiempo <strong>la</strong><br />
denominamos sucesión automática o sucesión manual. En el primer caso se requiere<br />
que exista una mínima cantidad de tiempo entre <strong>la</strong>s salidas y <strong>la</strong>s llegadas de los<br />
trenes consecutivos de y a <strong>la</strong>s estaciones del tramo. En el segundo caso, el tramo no<br />
podrá ser ocupado al mismo tiempo por dos trenes. El segundo tren deberá esperar<br />
hasta que el primero llegue a <strong>la</strong> siguiente estación abierta y se produzca el aviso<br />
de llegada. Es necesario que <strong>la</strong> estación a <strong>la</strong> cual llegue el primer tren se encuentre<br />
abierta <strong>para</strong> que un operario pueda avisar por teléfono al segundo tren que ya puede<br />
salir. Si los dos trenes necesitan realizar una <strong>para</strong>da en alguna estación común a sus<br />
recorridos, siempre que ambos trenes puedan salir al mismo tiempo de <strong>la</strong> estación,<br />
deberá salir primero aquel tren que hubiera llegado primero a <strong>la</strong> misma, es decir, en<br />
estos casos no se permite ade<strong>la</strong>ntamientos entre trenes consecutivos.<br />
Existen intervalos de tiempo en los que se prevé mantenimiento <strong>para</strong> un determi-<br />
nado tramo. En los instantes de tiempo pertenecientes a dicho intervalo se considera<br />
que el número de vías <strong>para</strong> circu<strong>la</strong>ción en el tramo, disminuye en uno. Es decir, si<br />
el tramo consta de una so<strong>la</strong> vía de circu<strong>la</strong>ción, no podrá pasar ningún tren por el
12 1. Introducción<br />
tramo mientras dure el mantenimiento. Si el tramo consta de dos vías, el tramo<br />
quedará reducido a un tramo de única vía mientras dure el mantenimiento.<br />
Por cada tren se especifica una velocidad promedio por tramo, sin embargo<br />
cuando el tren debe detenerse en una estación en <strong>la</strong> cual no tenía previsto <strong>para</strong>r,<br />
<strong>la</strong> velocidad promedio del tramo previo a <strong>la</strong> estación y <strong>la</strong> velocidad promedio del<br />
tramo posterior a <strong>la</strong> misma deberá disminuir con respecto a <strong>la</strong> velocidad previamente<br />
especificada, ya que el tren deberá frenar y posteriormente deberá ponerse en marcha<br />
<strong>para</strong> continuar su viaje. Siendo así, se deberá incrementar el tiempo de recorrido<br />
inicialmente especificado <strong>para</strong> el tren en los tramos anterior y posterior a <strong>la</strong> estación<br />
donde se produce <strong>la</strong> <strong>para</strong>da no prevista.<br />
El intervalo de tiempo dentro del cual se lleva a cabo <strong>la</strong> optimización es un<br />
parámetro del problema. El intervalo máximo permitido es el correspondiente a un<br />
día de p<strong>la</strong>nificación, [0, 86400] segundos.<br />
Los trenes pueden pertenecer a diferentes tipos, esto es diferentes velocidades,<br />
diferentes recorridos, diferentes <strong>para</strong>das especificadas en <strong>la</strong>s estaciones,...etc.<br />
Se considera <strong>la</strong> posibilidad de que <strong>la</strong> línea ferroviaria ya se halle ocupada por<br />
otros trenes, a los cuales se denomina trenes en circu<strong>la</strong>ción porque ya tienen un<br />
horario determinado el cual no podrá ser modificado <strong>para</strong> introducir a los nuevos<br />
trenes. El horario de los nuevos trenes deberá tener en cuenta <strong>la</strong> ocupación que<br />
realicen los trenes en circu<strong>la</strong>ción de los tramos y <strong>la</strong>s estaciones consideradas.<br />
1.4. Motivaciones<br />
La asignación optimizada de horarios es un problema que supone un reto en<br />
el desarrollo de sistemas computacionales, por lo que ha sido objeto de estudio de<br />
diversos trabajos en el área. Los trabajos realizados proponen distintos <strong>métodos</strong><br />
de solución <strong>para</strong> problemas de asignación, contemp<strong>la</strong>ndo determinados conjuntos<br />
de restricciones. Sin embargo, el conjunto de restricciones que consideran resulta<br />
incompleto <strong>para</strong> algunos dominios de aplicación, como el problema de optimización<br />
de horarios ferroviarios que se p<strong>la</strong>ntea en esta tesis.<br />
Más concretamente, en este problema subyacen restricciones muy complejas <strong>para</strong><br />
<strong>la</strong>s que no se han desarrol<strong>la</strong>do <strong>métodos</strong> capaces de gestionar<strong>la</strong>s adecuadamente. El<br />
problema p<strong>la</strong>nteado corresponde a un problema real en el que se deben tratar <strong>la</strong>s
1.5. Objetivos de <strong>la</strong> Tesis 13<br />
restricciones que realmente subyacen en el mismo.<br />
La revisión de <strong>métodos</strong> de solución <strong>para</strong> problemas re<strong>la</strong>cionados al considera-<br />
do, así como de aquel<strong>la</strong>s técnicas generales más referenciadas, tanto en el campo<br />
de <strong>la</strong> Investigación de Operaciones como en el campo de <strong>la</strong> Inteligencia Artificial,<br />
nos ha permitido distinguir aquel<strong>la</strong>s propiedades que son necesarias, así como aque-<br />
l<strong>la</strong>s características que nos impiden utilizarlos como tales en <strong>la</strong> resolución de este<br />
problema.<br />
En consecuencia, el diseño y desarrollo de sistemas capaces de contemp<strong>la</strong>r <strong>la</strong>s<br />
complejas restricciones que subyacen en un problema real de asignación optimizada<br />
de horarios en un entorno ferroviario supone un importante reto científico.<br />
Además, desde un punto de vista práctico, <strong>para</strong> que estas soluciones sean utiliz-<br />
ables, es deseable una resolución eficiente de los problemas de forma que se encuen-<br />
tren soluciones optimizadas en un tiempo razonable.<br />
Por todo lo anterior, <strong>la</strong> motivación principal de esta tesis consiste en desarrol<strong>la</strong>r<br />
un método que resuelva el problema p<strong>la</strong>nteado de forma eficiente, considerando un<br />
conjunto de restricciones que es necesario tratar <strong>para</strong> <strong>la</strong> obtención de soluciones<br />
factibles <strong>para</strong> dicho problema. De esta forma se obtendrían soluciones viables en el<br />
contexto de aplicación real correspondiente.<br />
Bajo otro punto de vista, ofrecer una solución de alta calidad al problema OPT<br />
responde a una necesidad real ya que hoy en día <strong>la</strong> p<strong>la</strong>nificación del transporte fer-<br />
roviario es una tarea altamente compleja. Muchos objetos, que interactúan unos con<br />
otros, deben ser manejados simultáneamente. Existen varios sub problemas de difer-<br />
ente naturaleza tales como el diseño de red, scheduling, p<strong>la</strong>nificación de líneas, etc.<br />
y <strong>la</strong>s soluciones <strong>para</strong> algunos de estos sub problemas dependen de <strong>la</strong>s soluciones del<br />
resto de sub problemas considerados. La programación de horarios es una de <strong>la</strong>s tar-<br />
eas que deben ser llevadas a cabo dentro del proceso de p<strong>la</strong>nificación. Consideramos<br />
que llevar<strong>la</strong> a cabo de forma eficiente, tanto en tiempo como en utilización de recur-<br />
sos, contribuye a que el proceso de p<strong>la</strong>nificación completo tenga buenos resultados,<br />
lo cual tiene un interés en el sector socio económico y en el sector ambiental.<br />
1.5. Objetivos de <strong>la</strong> Tesis<br />
Los principales objetivos de esta Tesis son los siguientes:
14 1. Introducción<br />
1. Definir formalmente el problema de generación y optimización de horarios<br />
ferroviarios, considerando <strong>la</strong>s variables, restricciones y criterios que subyacen<br />
en el contexto real de aplicación.<br />
En primer lugar, es necesario identificar el problema como un problema de<br />
scheduling Job Shop. Posteriormente, se deberán incorporar nuevas restric-<br />
ciones a <strong>la</strong>s comúnmente contemp<strong>la</strong>das en los problemas genéricos de schedul-<br />
ing Job Shop. Para ello, deberán identificarse y formalizarse <strong>la</strong>s específicas<br />
y complejas restricciones que subyacen en el problema de generación y opti-<br />
mización de horarios ferroviarios.<br />
La identificación del problema como un problema de scheduling tipo Job Shop<br />
nos permitirá evaluar <strong>la</strong>s aproximaciones realizadas <strong>para</strong> <strong>la</strong> modelización y res-<br />
olución de problemas Job Shop genéricos. Es necesario identificar <strong>la</strong>s ventajas<br />
e inconvenientes de su aplicación, analizando su viabilidad y adecuación. Ello<br />
nos permitirá además justificar <strong>la</strong> necesidad de desarrol<strong>la</strong>r nuevos modelos y<br />
<strong>métodos</strong> más adecuados a <strong>la</strong> tipología del problema p<strong>la</strong>nteado.<br />
2. Diseñar y desarrol<strong>la</strong>r nuevos <strong>métodos</strong> de solución <strong>para</strong> el problema de gen-<br />
eración y optimización de horarios ferroviarios.<br />
El objetivo es desarrol<strong>la</strong>r un método que permita obtener soluciones opti-<br />
mizadas de forma eficiente. Para ello, será necesario diseñar nuevas heurísticas<br />
capaces de guiar el proceso de búsqueda hacia soluciones que optimicen <strong>la</strong><br />
función objetivo. Se deberán desarrol<strong>la</strong>r heurísticas, <strong>para</strong> una adecuada or-<br />
denación de variables, valores de instanciación y generación eficiente de solu-<br />
ciones. El objetivo es obtener <strong>la</strong>s mejores soluciones en el menor tiempo posible.<br />
Como paso previo, se deberán analizar <strong>la</strong>s técnicas CSP y de programación<br />
matemática, revisando su adecuación y/o aplicabilidad al problema.<br />
3. Evaluación de los <strong>métodos</strong> desarrol<strong>la</strong>dos. Diseño de casos de prueba.<br />
La evaluación de los <strong>métodos</strong> desarrol<strong>la</strong>dos se debe llevar a cabo utilizando<br />
instancias reales del problema considerado, más que problemas-tipo de <strong>la</strong>bo-<br />
ratorio. Ello requerirá el desarrollo de un sistema software que incorpore los<br />
<strong>métodos</strong> diseñados y facilite <strong>la</strong> <strong>para</strong>metrización de los casos de pruebas y <strong>la</strong><br />
evaluación de los resultados obtenidos.
1.6. Esquema de <strong>la</strong> Tesis 15<br />
1.6. Esquema de <strong>la</strong> Tesis<br />
Asumiendo que el problema de generación y optimización de horarios es un prob-<br />
lema de scheduling Job Shop con determinadas características adicionales, hemos<br />
estudiado este tipo de problema, así como los modelos y <strong>métodos</strong> de solución que<br />
han sido publicados en <strong>la</strong> literatura. En el capítulo 2 proporcionamos el resulta-<br />
do de este estudio. Indicamos <strong>la</strong>s características de un problema de scheduling Job<br />
Shop, <strong>la</strong> programación matemática y <strong>la</strong> programación de restricciones como <strong>la</strong>s<br />
dos aproximaciones que han sido más utilizadas <strong>para</strong> mode<strong>la</strong>r el tipo de proble-<br />
ma considerado. Entre los <strong>métodos</strong> de optimización exacta se destacan aquellos<br />
que aprovechan <strong>la</strong>s propiedades matemáticas de los modelos formu<strong>la</strong>dos mediante<br />
programación matemática. Entre los <strong>métodos</strong> heurísticos se distingue entre los que<br />
utilizan <strong>la</strong>s propiedades de CSPs <strong>para</strong> proponer heurísticas, los que están basados<br />
en <strong>la</strong>s propiedades de un Job Shop y aquellos propuestos <strong>para</strong> resolver problemas<br />
de optimización combinatorios genéricos.<br />
En el capítulo 3, describimos formalmente el problema que se considera en esta<br />
Tesis. Lo formu<strong>la</strong>mos como un Problema de Satisfacción de Restricciones, iden-<br />
tificando <strong>la</strong>s variables, dominio de <strong>la</strong>s mismas, restricciones y función objetivo,<br />
<strong>para</strong> posteriormente realizar una correspondencia entre el mismo y el problema<br />
de scheduling Job Shop, indicando aquel<strong>la</strong>s características que aumentan su com-<br />
plejidad y que hacen necesario <strong>la</strong> búsqueda de nuevos <strong>métodos</strong> que lo resuelvan más<br />
eficientemente.<br />
En el capítulo 4, se describen los modelos y <strong>métodos</strong> de solución re<strong>la</strong>cionados.<br />
También se proporciona un análisis sobre los mismos y <strong>la</strong> justificación de por qué su<br />
utilización no sería factible.<br />
En el Capítulo 5, se propone y se describe en detalle un nuevo método de solución,<br />
que además de considerar todas <strong>la</strong>s restricciones necesarias en este tipo de problema,<br />
es capaz de obtener soluciones optimizadas de modo eficiente. El método se basa en <strong>la</strong><br />
ordenación de variables <strong>para</strong> lo cual utiliza una heurística basada en el estado actual<br />
el problema, y en <strong>la</strong> función objetivo del problema. Es un método de ordenación<br />
de variables dinámico. Se propone además de una heurística de ordenación, una<br />
heurística <strong>para</strong> podar soluciones parciales que se estima serán peores o iguales a al<br />
mejor solución obtenida hasta entonces. El procedimiento propuesto es un método
16 1. Introducción<br />
que construye una solución en cada iteración y devuelve <strong>la</strong> mejor solución hasta<br />
el momento en que se cumple <strong>la</strong> condición de <strong>para</strong>da. Este capítulo junto con el<br />
capítulo 3 contienen <strong>la</strong>s principales aportaciones de este trabajo.<br />
En el capítulo 6, se proporcionan los resultados obtenidos a partir de <strong>la</strong> evalu-<br />
ación del método de solución. Para ello se han utilizado instancias reales del prob-<br />
lema.<br />
En el capítulo 7, se presentan <strong>la</strong>s conclusiones y posibles líneas de trabajos<br />
futuros.<br />
En el Apéndice final de esta tesis se describe el sistema software que hemos de-<br />
sarrol<strong>la</strong>do y al cual hemos denominado Módulo Optimizador de Mal<strong>la</strong>s (MOM). Se<br />
trata de una herramienta software implementada <strong>para</strong> evaluar <strong>la</strong> aplicación de los<br />
<strong>métodos</strong> y técnicas desarrol<strong>la</strong>dos en esta Tesis sobre datos reales. Dicha herramien-<br />
ta se contrasta con otros sistemas simi<strong>la</strong>res, desarrol<strong>la</strong>dos en centros tecnológicos<br />
internacionales, com<strong>para</strong>ndo sus funcionalidades y adecuación al problema.
Capítulo 2<br />
Métodos <strong>para</strong> resolver<br />
Problemas tipo Job Shop<br />
2.1. Introducción<br />
El problema de scheduling tipo Job Shop es descrito formalmente en numerosos<br />
trabajos utilizando generalmente modelos matemáticos o redes de restricciones.<br />
En este capítulo se presentan <strong>la</strong>s dos aproximaciones más utilizadas <strong>para</strong> for-<br />
mu<strong>la</strong>r este tipo de problema así como algunos de los <strong>métodos</strong> más representativos<br />
<strong>para</strong> resolverlo. Se ha realizado un estudio acerca de los mismos con el objetivo de<br />
determinar su aplicabilidad al tipo de problema considerado.<br />
P<br />
Figura 2.1: Esquema de los Métodos estudiados <strong>para</strong> resolver un Job Shop<br />
rogramació<br />
A partir del estudio que hemos realizado, c<strong>la</strong>sificamos los <strong>métodos</strong> <strong>para</strong> resolver<br />
Métodos Exacta Optimizaci Métodos Constructi Mejora Métodos and BranchCut and BranchP and Branch ricea<br />
Heurístic Shop os Job ón un<br />
Botel<strong>la</strong> de Cuello Desp<strong>la</strong>zar Beam Búsqueda Annealing Simu<strong>la</strong>tedTabú BúsquedaGenético<br />
de resolver <strong>para</strong> usados Métodos<br />
Alg de eg<strong>la</strong>sP R to rocesamien Dinámica n Bound De Métodos vos oritmo Re<strong>la</strong>jaciónLagrangian<br />
el problema. En primer lugar, se realiza una c<strong>la</strong>sificación de lo <strong>métodos</strong> de resolución<br />
17
18 2. Métodos <strong>para</strong> resolver Problemas tipo Job Shop<br />
en <strong>la</strong> que se diferencia entre <strong>métodos</strong> de optimización exacta y <strong>métodos</strong> heurísticos<br />
(Figura 2.1). Los <strong>métodos</strong> de optimización exacta a los cuales se hace referencia<br />
en dicha figura son empleados generalmente <strong>para</strong> resolver problemas que han sido<br />
mode<strong>la</strong>dos mediante programación matemática. Entre los <strong>métodos</strong> heurísticos de<br />
<strong>la</strong> misma figura se puede diferenciar entre aquellos cuya heurística está basada en<br />
<strong>la</strong>s propiedades de un Job Shop (Desp<strong>la</strong>zar Cuello de Botel<strong>la</strong> y Reg<strong>la</strong>s de Proce-<br />
samiento), y entre aquellos que son comunes a <strong>la</strong> resolución de cualquier problema<br />
de optimización combinatorio. de to Ordenamienad. Fal<strong>la</strong>, que primero Ej Dinámico Estático Valores de to Ordenamienad. (ES), Solutions Estimated (MD), Domain Maximum (MC), Conflict Variables<br />
+ de Inferencia : Híbrido Variables Asignación<br />
Forward (VES) Eliminatio Variable : Ej Inferencia Aleatoried El : ng BacktrackiBásico Aleatoried Minimum :<br />
ng Backtracki e. Aprendizaj de Algoritmosg,<br />
Backmarking,<br />
Backjumpin : Ej Búsqueda Checking(FC)<br />
Búsqueda<br />
Ej<br />
Figura 2.2: Esquema de Técnicas utilizadas en <strong>la</strong> resolución de CSPs<br />
CompletaLocal Search n o Incompletaia Consistenc Nodo ia Consistenc Arco ia ng Backtrackimejorado<br />
Si se consideran los <strong>métodos</strong> <strong>para</strong> resolver CSPs, el criterio de c<strong>la</strong>sificación se MaintaininConsistenc<br />
puede basar en <strong>la</strong> re<strong>la</strong>ción que existe entre el proceso de búsqueda y <strong>la</strong>s técnicas,<br />
que utilizando propiedades de un CSP, buscan disminuir el espacio de búsqueda<br />
(Figura 2.2). Un CSP también puede ser resuelto por un procedimiento heurístico<br />
de búsqueda local, tales como los citados en <strong>la</strong> Figura 2.2.<br />
gArc<br />
y (MAC)<br />
CaminoConsistenc<br />
El análisis crítico de los <strong>métodos</strong> presentados en este capítulo, respecto a su<br />
aportación al problema tipo p<strong>la</strong>nteado en esta tesis, se llevará a cabo en un capítulo<br />
posterior a <strong>la</strong> descripción formal del problema OPT, de tal forma que se conozca con<br />
mayor detalle todos los requerimientos que debe satisfacer <strong>la</strong> solución del mismo y<br />
así se puedan realizar <strong>la</strong>s com<strong>para</strong>ciones con mayor c<strong>la</strong>ridad.
2.2. El Problema de Scheduling tipo Job Shop 19<br />
2.2. El Problema de Scheduling tipo Job Shop<br />
En esta sección indicamos en qué consiste el problema de scheduling tipo Job<br />
Shop, según lo establecido por el área de Investigación de Operaciones. Se indican<br />
los conceptos que definen esta tipología de problema con el objeto de establecer<br />
posteriormente un <strong>para</strong>lelismo con <strong>la</strong>s características del problema, <strong>para</strong> el cual<br />
proponemos una solución en esta tesis.<br />
Como hemos visto en <strong>la</strong> Sección 1.2 del Capítulo 1, Job Shop es uno de los<br />
tipos de scheduling que existe, si consideramos al patrón de flujo como criterio de<br />
c<strong>la</strong>sificación. En un problema de scheduling tipo Job Shop existen n trabajos, cada<br />
uno formado por una secuencia ordenada de operaciones. Cada operación consiste<br />
en realizar una determinada tarea utilizando una de <strong>la</strong>s M máquinas existentes<br />
en el problema. Se utiliza el concepto de máquina <strong>para</strong> representar un recurso en<br />
general. En algunos modelos de Job Shop, un trabajo puede utilizar una determinada<br />
máquina a lo sumo una vez, en otros modelos una misma máquina puede ser utilizada<br />
más de una vez por un mismo trabajo. En el último caso se dice que el trabajo<br />
está sujeto a re-circu<strong>la</strong>ción. El procesamiento del trabajo j en <strong>la</strong> máquina i es referido<br />
como una operación (i, j) y su duración es pij . El objetivo es minimizar el makespan<br />
(tiempo transcurrido desde el instante en que se inicia el primer trabajo y el instante<br />
en que finaliza el último trabajo) Cmax .<br />
La capacidad de cada máquina es un factor a tener en cuenta. Cuando <strong>la</strong> capaci-<br />
dad es n, <strong>la</strong> máquina puede ser utilizada a lo sumo por n operaciones simultánea-<br />
mente. En general, en un Job Shop cada máquina puede procesar como máximo una<br />
operación a <strong>la</strong> vez (máquina con capacidad n = 1).<br />
En [32], Dechter representa el problema de minimizar el makespan en un Job<br />
Shop sin re-circu<strong>la</strong>ción por medio de un grafo disyuntivo. Se considera un grafo<br />
dirigido G con un conjunto de nodos N y dos conjuntos de arcos A y B. Un ejemplo<br />
de este tipo de grafo es mostrado en <strong>la</strong> Figura 2.3.<br />
Los nodos N corresponden a todas <strong>la</strong>s operaciones (i, j) que deben ser llevadas<br />
a cabo en los n trabajos.<br />
Los arcos del conjunto A, l<strong>la</strong>mados arcos conjuntivos representan <strong>la</strong>s rutas de<br />
los trabajos. Si el arco (i, j) → (h, j) es parte de A, entonces el trabajo j tiene que<br />
ser procesado en <strong>la</strong> máquina i antes de ser procesado en <strong>la</strong> máquina h. Esto significa
20 2. Métodos <strong>para</strong> resolver Problemas tipo Job Shop<br />
que <strong>la</strong> operación (i, j) precede a <strong>la</strong> operación (h, j). Dos operaciones, (i, j), (i, k),<br />
que pertenecen a dos trabajos diferentes, j y k, y que deben ser procesadas por <strong>la</strong><br />
misma máquina i, están conectadas una a otra por los l<strong>la</strong>mados arcos disyuntivos<br />
en direcciones opuestas.<br />
El conjunto de arcos disyuntivos B forman m cliques 1 de arcos dobles, un clique<br />
por cada máquina. Todos los arcos, conjuntivos o disyuntivos, saliendo de un nodo<br />
tienen como etiqueta el tiempo de procesamiento de <strong>la</strong> operación representada por<br />
el nodo.<br />
Además hay un nodo origen U y un nodo terminal V , los cuales son nodos<br />
artificiales. El nodo origen U tiene n arcos conjuntivos que parten del mismo hacia<br />
<strong>la</strong>s primeras operaciones de los n trabajos, y el nodo terminal V tiene n arcos<br />
conjuntivos entrantes desde <strong>la</strong>s últimas operaciones. Los arcos salientes del nodo U<br />
tienen etiqueta cero. En el grafo G = (N, A, B) de <strong>la</strong> Figura 2.3, se representa un<br />
problema de scheduling tipo Job Shop con cuatro máquinas y tres trabajos. En <strong>la</strong><br />
Figura 2.4 se indica <strong>la</strong> secuencia de operaciones que componen cada trabajo, y <strong>la</strong><br />
máquina requerida por cada una de estas operaciones.<br />
1<br />
,<br />
Figura 2.3: Grafo Dirigido <strong>para</strong> Job Shop con el makespan como el objetivo Terminal Origen<br />
1 , 2 1 , 3 2 , 2 2 , 1 2 , 4 2 , 3 U V 0 1<br />
, 1 3 , 00 42 3<br />
Figura 2.4: Flujo de los Trabajos 12<br />
p43<br />
43 p p<br />
3 , 4 2<br />
1 Un clique en un grafo es el menor conjunto de vértices, donde todos son adyacentes entre si<br />
23<br />
p<br />
1231234 2143 TrabajoMáquina
2.3. Formu<strong>la</strong>ción de un Job Shop utilizando Programación Matemática 21<br />
2.3. Formu<strong>la</strong>ción de un Job Shop utilizando Progra-<br />
mación Matemática<br />
La programación matemática es uno de los <strong>métodos</strong> más comunmente utilizados<br />
<strong>para</strong> mode<strong>la</strong>r un problema tipo Job Shop. En esta sección proporcionaremos un<br />
modelo que formu<strong>la</strong> el problema representado por el grafo G en <strong>la</strong> sección previa.<br />
Obtener una solución <strong>para</strong> un problema de scheduling corresponde a <strong>la</strong> selección<br />
de uno de los arcos disyuntivos por cada par existente en el grafo, de tal forma que<br />
el mismo resulte finalmente en un grafo dirigido acíclico. Tal selección determina <strong>la</strong><br />
secuencia en <strong>la</strong> cual <strong>la</strong>s operaciones van a ser llevadas a cabo sobre cada máquina.<br />
Si D denota el subconjunto de los arcos disyuntivos seleccionados en <strong>la</strong> solución<br />
del problema y el grafo G(D) es definido por el conjunto de arcos conjuntivos y el<br />
subconjunto D, entonces D corresponde a una solución si y solo si G(D) no contiene<br />
ningún ciclo dirigido.<br />
El makespan de una solución es determinado por el camino más <strong>la</strong>rgo en G(D)<br />
desde el nodo origen U al nodo terminal V . Este camino más <strong>la</strong>rgo está formado por<br />
un conjunto de operaciones, donde <strong>la</strong> primera de el<strong>la</strong>s empieza en el instante cero, y<br />
<strong>la</strong> última finaliza en el instante del makespan. Cada operación en este camino está in-<br />
mediatamente seguida ya sea por <strong>la</strong> siguiente operación sobre <strong>la</strong> misma máquina o<br />
por <strong>la</strong> siguiente operación del mismo trabajo en otra máquina. El problema de min-<br />
imizar el makespan es reducido a encontrar una selección de arcos disyuntivos que<br />
minimice <strong>la</strong> longitud del camino más <strong>la</strong>rgo (esto es, el camino crítico).<br />
Hay varias formu<strong>la</strong>ciones de programación matemática <strong>para</strong> job shop sin re-<br />
circu<strong>la</strong>ción, incluyendo un número de formu<strong>la</strong>ciones de programación entera. Sin<br />
embargo, <strong>la</strong> formu<strong>la</strong>ción usada más frecuentemente es <strong>la</strong> l<strong>la</strong>mada formu<strong>la</strong>ción de pro-<br />
gramación disyuntiva. Esta formu<strong>la</strong>ción de programación disyuntiva está re<strong>la</strong>cionada<br />
cercanamente con <strong>la</strong> representación del job shop por medio de grafos disyuntivos.<br />
Para presentar <strong>la</strong> formu<strong>la</strong>ción de programación matemática, consideremos que<br />
<strong>la</strong> variable yij denota el inicio de <strong>la</strong> operación (i, j). Teniendo en cuenta que N es el<br />
conjunto de nodos del grafo G y A es el conjunto de arcos (i, j) → (h, j), el siguiente<br />
modelo matemático minimiza el makespan.<br />
En esta formu<strong>la</strong>ción, el primer conjunto de restricciones asegura que <strong>la</strong> operación<br />
(h, j) no puede ser iniciada antes de que <strong>la</strong> operación (i, j) sea completada. El tercer
22 2. Métodos <strong>para</strong> resolver Problemas tipo Job Shop<br />
minimize Cmax<br />
subject to<br />
yhj − yij ≥ pij for all (i, j) → (h, j) ∈ A (1<br />
Cmax − yij ≥ pij for all (i, j) ∈ N (2<br />
yij − yik ≥ pik ∨ yik − yij ≥ pij for all (i, k) and (i, j), i = 1, ..., m (3<br />
yij ≥ 0 for all (i, j) ∈ N (4<br />
conjunto de restricciones agrupa a <strong>la</strong>s l<strong>la</strong>madas restricciones disyuntivas, mediante<br />
<strong>la</strong>s cuales se asegura que exista algún ordenamiento en medio de <strong>la</strong>s operaciones<br />
de diferentes trabajos que tienen que ser procesadas sobre <strong>la</strong> misma máquina. De-<br />
bido a estas restricciones, esta formu<strong>la</strong>ción es referida como una formu<strong>la</strong>ción de<br />
programación disyuntiva.<br />
Que un problema de scheduling pueda ser formu<strong>la</strong>do como un programa disyunti-<br />
vo no implica que haya procedimientos de solución standard disponibles que siempre<br />
trabajen satisfactoriamente. Minimizar el makespan en un job shop es un problema<br />
muy difícil y procedimientos de solución están basados ya sea en procedimientos<br />
enumerativos o en procedimientos heurísticos. La complejidad de un problema de<br />
scheduling tipo Job Shop es NP-hard (Garey et. al [44]).<br />
2.4. Métodos de Optimización Exacta<br />
En esta sección describimos algunos de los <strong>métodos</strong> empleados <strong>para</strong> resolver<br />
problemas de optimización combinatorios mode<strong>la</strong>dos mediante <strong>la</strong> programación matemática,<br />
obteniendo <strong>la</strong> solución óptima del problema si este tiene solución.<br />
2.4.1. Programación Dinámica<br />
El término Programación Dinámica fue acuñado por Richard Bellman [10] en<br />
<strong>la</strong> década de 1950. El término programación en ese entonces no se refería a <strong>la</strong> pro-<br />
gramación en ordenadores, era utilizado <strong>para</strong> denotar p<strong>la</strong>nificación (programación<br />
lineal, mixta,..,etc. tienen una etimología simi<strong>la</strong>r). La programación dinámica fue<br />
creada con el objetivo de p<strong>la</strong>nificar en forma óptima procesos multi-etapas. En el<br />
trabajo realizado por Dasgupta [30], se explican varios ejemplos de este tipo de<br />
procesos, resueltos utilizando Programación Dinámica.
2.4. Métodos de Optimización Exacta 23<br />
Este método es un <strong>para</strong>digma algorítmico, basado en el principio de optimali-<br />
dad de Bellman ”Cualquier sub secuencia de decisiones de una secuencia óptima de<br />
decisiones que resuelve un problema, también debe ser óptima respecto al sub prob-<br />
lema que resuelve”. Para resolver un problema utilizando Programación Dinámica,<br />
es necesario identificar tanto los sub problemas que lo forman, como <strong>la</strong> re<strong>la</strong>ción que<br />
existe entre ellos. La re<strong>la</strong>ción establece un orden <strong>para</strong> resolver los sub problemas,<br />
ya que <strong>la</strong> solución de uno es necesaria <strong>para</strong> resolver otro. Así, el sub problema más<br />
pequeño es aquel que no requiere de <strong>la</strong> solución de ningún otro, sin embargo, su<br />
solución sí es necesaria <strong>para</strong> el siguiente sub problema en el orden. El sub problema<br />
más grande, es aquel cuya solución requiere <strong>la</strong> solución del resto de sub problemas<br />
identificados. Resolviendo el último sub problema, el problema original es resuelto.<br />
El método Programación Dinámica está caracterizado por tres tipos de ecua-<br />
ciones, particu<strong>la</strong>rmente:<br />
(i) condiciones iniciales,<br />
(ii) re<strong>la</strong>ción recursiva, y<br />
(iii) una función del valor óptimo.<br />
En scheduling se puede seleccionar entre programación dinámica hacia de<strong>la</strong>nte<br />
y programación dinámica hacia atrás, <strong>la</strong>s cuales son analizados a continuación.<br />
Formu<strong>la</strong>ción de Programación Dinámica hacia ade<strong>la</strong>nte<br />
Se dice que el método de Programación Dinámica se aplica hacia ade<strong>la</strong>nte, cuan-<br />
do <strong>la</strong> ecuación que establece <strong>la</strong> re<strong>la</strong>ción entre un sub problema j y un sub problema<br />
j + 1, es definida de tal forma, que <strong>la</strong> solución óptima de j depende de <strong>la</strong> solución<br />
óptima de j + 1.<br />
Como ejemplo, describiremos <strong>la</strong> forma en que un determinado problema es re-<br />
suelto utilizando programación dinámica hacia ade<strong>la</strong>nte.<br />
El problema que consideramos es el problema de <strong>la</strong> mochi<strong>la</strong> M(1, n, C). En este<br />
problema se debe decidir si el objeto i, 1 ≤ i ≤ n será introducido o no en <strong>la</strong> mochi<strong>la</strong>,<br />
cuya capacidad máxima es igual a C. Cada objeto i ocupa una capacidad igual a<br />
pi en <strong>la</strong> mochi<strong>la</strong> y el beneficio de su utilización es igual a bi. Considerando que xi<br />
indica <strong>la</strong> fracción del objeto i introducida en <strong>la</strong> mochi<strong>la</strong>, y que los objetos no pueden<br />
ser fraccionados, a continuación se especifica el problema de <strong>la</strong> mochi<strong>la</strong> mediante un
24 2. Métodos <strong>para</strong> resolver Problemas tipo Job Shop<br />
modelo matemático.<br />
maximize n<br />
bixi<br />
i=1<br />
subject to<br />
n<br />
pixi ≤ C (1<br />
i=1<br />
bi > 0 for all 1 ≤ i ≤ n (2<br />
xi ∈ {0, 1} for all 1 ≤ i ≤ n (3<br />
Cada sub problema j consiste en hal<strong>la</strong>r una solución a M(j, n, c). Esto quiere<br />
decir que se debe tomar una decisión sobre incluir o no los objetos i, j ≤ i ≤ n,<br />
considerando que <strong>la</strong> capacidad restante en <strong>la</strong> mochi<strong>la</strong> es igual a c y que el conjunto<br />
de decisiones debe producir el máximo beneficio.<br />
Así, el sub problema j = 1 consiste en hal<strong>la</strong>r <strong>la</strong> solución óptima al sub problema<br />
M(1, n, C). En este caso, el sub problema 1 es el problema original y el sub problema<br />
j = n es el sub problema más pequeño.<br />
Considerando que el sub problema es M(j, n, c), <strong>la</strong> ecuación que establece <strong>la</strong><br />
re<strong>la</strong>ción recursiva entre los sub problemas es fj(c) = max{fj+1(c), fj+1(c − pj) +<br />
bj}. Como puede verse en <strong>la</strong> expresión, el máximo beneficio obtenido en cada sub<br />
problema j depende de <strong>la</strong> decisión de incluir o no el objeto j en <strong>la</strong> mochi<strong>la</strong> y de <strong>la</strong>s<br />
decisiones que se lleven a cabo en el resto de sub problemas. Si no se incluyera el<br />
objeto j en <strong>la</strong> mochi<strong>la</strong>, entonces el beneficio asociado al problema j correspondería<br />
al obtenido a partir de <strong>la</strong>s decisiones llevadas a cabo en el resto de sub problemas. Si<br />
por el contrario, se decidiera incluir el objeto j, entonces bj sería parte del beneficio<br />
obtenido, pero en este caso <strong>la</strong> capacidad de <strong>la</strong> mochi<strong>la</strong> a <strong>la</strong> hora de decidir sobre<br />
el siguiente objeto j + 1 estaría disminuida en pj unidades. Hemos considerado que<br />
fn+1(c) = 0 y que fj(0) = 0, 1 ≤ j ≤ n.<br />
En <strong>la</strong> Figura 2.5 se representa <strong>la</strong> re<strong>la</strong>ción de dependencia que existe entre un<br />
sub problema y otro a través de <strong>la</strong> expresión que define <strong>la</strong> re<strong>la</strong>ción existente entre<br />
ellos. En <strong>la</strong> Figura 2.6 se describe cómo el problema original es resuelto desde el sub<br />
problema más pequeño al sub problema más grande. Para ello hemos utilizado una<br />
instancia del problema de <strong>la</strong> mochi<strong>la</strong>, tal que el número de objetos sea igual a 3, <strong>la</strong><br />
capacidad máxima de <strong>la</strong> mochi<strong>la</strong> sea igual a 15 (esto es M(1, 3, 15)), el beneficio de<br />
utilizar cada objeto esté dado por (b1, b2, b3) = (38, 40, 24), y <strong>la</strong> capacidad ocupada<br />
por cada objeto sea (p1, p2, p3) = (9, 6, 5).
2.4. Métodos de Optimización Exacta 25<br />
( ) max{<br />
( ) , ( − ) + }<br />
( ) max{<br />
( ) , ( − ) + } ( ) max{<br />
( ) , ( − ) + }<br />
( ) max{<br />
( ) , ( − ) + }<br />
( ) max{<br />
( ) , ( − ) + } (<br />
( ) { ( ) ( )<br />
f<br />
}<br />
38 9<br />
− +<br />
4=<br />
15<br />
max ,<br />
(<br />
40<br />
4= (<br />
6 40 6 6 6 2 f<br />
4= 4= ( 4= 4= ( 6 3 f 15 15 2 f 6 1 6 15 24 f 3 996<br />
f 3 15 15524<br />
f 0)0<br />
f f f 24 f 10 f 15)0<br />
= f f<br />
4 4 15<br />
= f f<br />
= ff<br />
( 9)0<br />
3 159 4 4 3<br />
f(<br />
)0<br />
0 0 )0 9 10)0<br />
= f f<br />
3)0<br />
2 2 15<br />
= ff<br />
( 6)0<br />
= ff<br />
3 3 6<br />
4 4 6<br />
3= f0)0<br />
Figura 2.5: Re<strong>la</strong>ción entre los sub problemas al aplicar Programación Dinámica hacia<br />
ade<strong>la</strong>nte<br />
( ) = max{<br />
, + =<br />
( ) = max{<br />
, + =<br />
( ) = max{<br />
, + =<br />
( ) = max{<br />
, + =<br />
( ) = max{<br />
, + = ( 38<br />
4=<br />
40<br />
( 4=<br />
64<br />
( ) {<br />
15 1 f<br />
= max , + =<br />
(<br />
}40 40 0 24 6 2 f<br />
4= 4= ( }24 24 0 0 6 3 }64 40<br />
}78<br />
3 f3<br />
15 0024}24<br />
f2<br />
15 24 24<br />
f f 9 24}24<br />
f f 15)0<br />
4= ( f<br />
3)0<br />
4= f<br />
f( 6)0<br />
0)0<br />
3= f0)0<br />
Figura 2.6: Orden en <strong>la</strong> obtención de <strong>la</strong> solución óptima de cada sub problema<br />
Formu<strong>la</strong>ción de Programación Dinámica hacia atrás<br />
Cuando se aplica Programación Dinámica hacia atrás, el sub problema inicial<br />
representa el estado final del problema original. Por lo tanto, <strong>la</strong> ecuación que es-<br />
tablece <strong>la</strong> re<strong>la</strong>ción entre los sub problemas es tal, que el sub problema j requiere de<br />
<strong>la</strong> solución hal<strong>la</strong>da al sub problema j − 1.<br />
En el caso del problema de <strong>la</strong> mochi<strong>la</strong>, utilizado en el apartado anterior, si el<br />
primer sub problema es considerado el estado en el cual se ha decidido acerca de<br />
todos los objetos y solo falta por decidir <strong>la</strong> acción a tomar sobre el objeto n, entonces<br />
se estaría resolviendo el mismo problema hacia atrás.<br />
En <strong>la</strong> Figura 2.7 se indica <strong>la</strong> expresión que re<strong>la</strong>ciona en este caso, a los sub prob-<br />
lemas. En <strong>la</strong> Figura 2.8 se muestra cómo <strong>la</strong> solución óptima de cada sub problema
26 2. Métodos <strong>para</strong> resolver Problemas tipo Job Shop<br />
genera finalmente <strong>la</strong> solución óptima al problema original, en este caso aplicando<br />
Programación Dinámica hacia atrás.<br />
( ) max{<br />
( ) , ( − ) + } f 3 15 15524<br />
= f f<br />
15<br />
( ) max{<br />
( ) ( − ) }<br />
,<br />
+<br />
max , − +<br />
( ) max{<br />
( ) , ( − ) + }<br />
( ) max{<br />
( ) , ( − ) + }<br />
max , − + 38 9 10 10 1 f f 2 10 10640<br />
f 1 999<br />
38 f 1 38 f 2<br />
= f f<br />
6)0<br />
0 0 15<br />
= ff<br />
) { ( ) ( ) }<br />
=<br />
( f f )0 9 00<br />
9<br />
(<br />
(<br />
0= ( 0= ( 0= 0= ( 0= ( 0= (<br />
Figura 2.7: Re<strong>la</strong>ción entre los sub problemas al aplicar Programación Dinámica hacia<br />
atrás<br />
( ) = max{<br />
, + =<br />
( )<br />
)0<br />
= max{<br />
,<br />
10<br />
+<br />
f<br />
=<br />
)0<br />
(<br />
1<br />
)<br />
f<br />
=<br />
)0<br />
max{<br />
, + =<br />
(<br />
15<br />
) = max{<br />
f<br />
,<br />
f<br />
+<br />
f<br />
=<br />
f<br />
( ) = max{<br />
, + =<br />
) {<br />
40 78 15<br />
= max , + =<br />
3 }40 40 0 38 10 2 f<br />
}38 38 0 0 10 1 24}78<br />
1 15 0038}38<br />
f2<br />
15 38 3840}78<br />
f<br />
1 9 0038}38<br />
f( 15)0<br />
0= ( f<br />
1 19<br />
15 15 15<br />
6)0<br />
(<br />
0= f<br />
f( 9)0<br />
0= ( f<br />
0)0<br />
2 2 40 6 15 15<br />
0)0<br />
0= f<br />
( ) { ( ) ( ) }<br />
= f f<br />
= f f<br />
1 1 10 0 0 10<br />
f( 10)0<br />
0= ( f<br />
1)0<br />
(<br />
0= f<br />
1= f4)0<br />
1= f4)0<br />
Figura 2.8: Orden en <strong>la</strong> obtención de <strong>la</strong> solución óptima de cada sub problema
2.4. Métodos de Optimización Exacta 27<br />
2.4.2. Branch and Bound<br />
El método Branch and Bound (B & B) fue introducido en 1960 por Land y Doig<br />
[79], en un trabajo en el cual describían al nuevo método como una aproximación<br />
<strong>para</strong> hal<strong>la</strong>r soluciones óptimas a problemas de optimización discretos y combinato-<br />
rios.<br />
Los problemas de optimización discretos son problemas en los cuales <strong>la</strong>s variables<br />
de decisión asumen valores discretos desde un conjunto específico; cuando este con-<br />
junto es el conjunto de los números enteros, se tiene un problema de programación<br />
entera. Los problemas de optimización combinatorios, por otro <strong>la</strong>do, son problemas<br />
en los cuales se debe elegir <strong>la</strong> mejor combinación factible de valores <strong>para</strong> <strong>la</strong>s variables<br />
del problema, de tal forma que <strong>la</strong> función objetivo sea evaluada al valor óptimo.<br />
Un procedimiento B&B básico se inicia resolviendo el modelo matemático origi-<br />
nal sin <strong>la</strong>s restricciones que obligan a instanciar determinadas variables únicamente<br />
con valores enteros (restricciones de integralidad). Al modelo sin <strong>la</strong>s restricciones<br />
de integralidad se denomina re<strong>la</strong>jación LP (Linear Program) de un problema IP<br />
(Integer Program). Denominamos X 0 = (< x1, a1 >, ..., < xn, an >) a <strong>la</strong> asignación<br />
de <strong>la</strong>s n variables del problema, mediante <strong>la</strong> cual se obtiene el valor óptimo de <strong>la</strong><br />
función objetivo. Si <strong>la</strong> solución de <strong>la</strong> re<strong>la</strong>jación LP es una solución entera, es decir<br />
los valores asignados a <strong>la</strong>s variables enteras son valores pertenecientes al conjun-<br />
to de números enteros, entonces esta solución es óptima <strong>para</strong> el programa original<br />
también (problema en el cual se incluyen <strong>la</strong>s restricciones de integralidad). Si x 0 no<br />
es entera, entonces el valor de <strong>la</strong> solución óptima de <strong>la</strong> re<strong>la</strong>jación LP, CX 0 sirve<br />
como un límite inferior, el objetivo es minimizar, o un límite superior, el objetivo es<br />
maximizar, <strong>para</strong> el valor de <strong>la</strong> solución óptima al programa entero original.<br />
Si una de <strong>la</strong>s variables en X 0 , no es entera, por decir xj = r, entonces el pro-<br />
cedimiento branch and bound procede como sigue. El problema de programación<br />
entera es dividido en dos sub problemas SP(1), SP(2), por agregar dos restricciones<br />
mutuamente exclusivas y mutuamente exhaustivas. En el sub problema SP(1), el<br />
programa entero original es modificado por agregar <strong>la</strong> restricción adicional<br />
xj ≤ ⌊r⌋,<br />
donde ⌊r⌋ denota el entero más grande más pequeño que r, mientras que en el sub<br />
problema SP(2), el programa entero original es modificado por agregar <strong>la</strong> restricción
28 2. Métodos <strong>para</strong> resolver Problemas tipo Job Shop<br />
adicional<br />
xj ≥ ⌈r⌉,<br />
donde ⌈r⌉ denota el entero más pequeño más grande que r.<br />
El procedimiento branch and bound ahora considera <strong>la</strong> re<strong>la</strong>jación LP de uno<br />
de los sub problemas, por decir de SP(1), y lo resuelve. Si <strong>la</strong> solución es entera,<br />
entonces esta rama del árbol ya no tiene que ser explorada posteriormente, ya que<br />
esta solución es <strong>la</strong> óptima <strong>para</strong> <strong>la</strong> versión de programación entera de SP(1). Si por el<br />
contrario, <strong>la</strong> solución no es entera, SP(1) tiene que ser dividido en dos sub problemas,<br />
SP(1,1) y SP(1,2), a través de <strong>la</strong> adición de restricciones mutuamente exclusivas y<br />
exhaustivas. Desde cada nodo que corresponde a una solución no entera ocurre una<br />
ramificación a otros dos nodos y así sucesivamente. Si una solución en un nodo es<br />
no entera, entonces este valor proporciona un limite inferior (ó superior según se<br />
minimice o maximice) <strong>para</strong> todas <strong>la</strong>s soluciones de sus descendientes.<br />
El procedimiento branch and bound finaliza cuando todos los nodos del árbol o<br />
bien tienen una solución entera o bien tienen una solución no entera que es mayor<br />
a <strong>la</strong>s soluciones enteras de otros nodos. El nodo con <strong>la</strong> mejor solución entera provee<br />
una solución óptima al programa entero original.
2.4. Métodos de Optimización Exacta 29<br />
Considere como ejemplo el siguiente programa entero:<br />
maximize 8x1 + 11x2 + 6x3 + 4x4<br />
subject to<br />
5x1 + 7x2 + 4x3 + 3x4 ≤ 14 (1<br />
xi ∈ {0, 1} for all 1 ≤ i ≤ 4 (2<br />
Empezamos por eliminar el grupo de restricciones de integralidad, en el ejemplo<br />
son <strong>la</strong>s restricciones del grupo 2 del modelo matemático previo. Resolvemos este<br />
modelo re<strong>la</strong>jado y obtenemos 22 como valor de <strong>la</strong> función objetivo y <strong>la</strong> asignación<br />
X 0 = (< x1, 1 >, < x2, 1 >, < x3, 0.5 >, < x4, 0 >). La solución obtenida incumple<br />
<strong>la</strong> restricción de integralidad del problema original, por lo tanto no es factible. En<br />
este caso a partir del problema re<strong>la</strong>jado actual, se generan dos nuevos sub problemas,<br />
SP(1) y SP(2). En SP(1) se agrega <strong>la</strong> restricción x3 = 0 y en SP(2) se agrega <strong>la</strong><br />
restricción x3 = 1.<br />
Al resolver los sub problemas se obtiene como solución de SP(1) X 0 = (< x1, 1 ><br />
, < x2, 1 >, < x3, 0 >, < x4, 0.667 >) y como solución de SP(2) X 0 = (< x1, 1 ><br />
, < x2, 0.714 >, < x3, 1 >, < x4, 0 >), siendo 21.65 y 21.85 el valor de <strong>la</strong> función<br />
objetivo de SP(1) y SP(2), respectivamente. Dado que ninguna de <strong>la</strong>s dos soluciones<br />
es factible, se vuelve a generar a partir del sub problema SP(2) (es el que proporciona<br />
mayor valor de función objetivo) dos sub problemas SP(2,1) y SP(2,2). En el primero<br />
se agregará <strong>la</strong> restricción x2 = 0 y en el segundo, <strong>la</strong> restricción x2 = 1. La solución<br />
obtenida <strong>para</strong> SP(2,1) es X 0 = (< x1, 1 >, < x2, 0 >, < x3, 1 >, < x4, 1 >), siendo<br />
18 el valor de <strong>la</strong> función objetivo. Al resolver el problema SP(2,2) se obtiene como<br />
solución X 0 = (< x1, 0.6 >, < x2, 1 >, < x3, 1 >, < x4, 0 >), asignación no factible<br />
<strong>para</strong> el problema original (<strong>la</strong> asignación de x1 no es entera). Luego, <strong>la</strong> solución <strong>para</strong><br />
el problema original es <strong>la</strong> solución del problema re<strong>la</strong>jado SP(2,1). La Figura 2.9<br />
muestra el proceso B&B utilizado <strong>para</strong> resolver el problema del ejemplo, mediante<br />
una estructura de árbol, en donde cada nodo representa una versión re<strong>la</strong>jada del<br />
problema original.<br />
Con el método branch and bound se intenta eliminar un nodo por determinar un<br />
límite inferior <strong>para</strong> el valor de <strong>la</strong> función objetivo de todos <strong>la</strong>s soluciones correspon-<br />
dientes a <strong>la</strong> descendencia de dicho nodo. Si el límite inferior obtenido es mayor al<br />
valor de <strong>la</strong> función objetivo de una solución ya obtenida previamente, entonces ese<br />
nodo y toda su descendencia es descartada de <strong>la</strong> búsqueda. El árbol es podado. Sin
30 2. Métodos <strong>para</strong> resolver Problemas tipo Job Shop<br />
( )<br />
(<br />
=<br />
= , ,<br />
= . XxSP X 3 65<br />
0=<br />
=<br />
( , , , , , . )<br />
1 ( , , , , , . , )<br />
)<br />
=<br />
= , ,<br />
= . X 3<br />
Factible No<br />
( , . , , , , )<br />
, 5 0 1 1 4 3 2 X C x x x x X 22 0<br />
1 1 2 4 3 2 1 0<br />
23=<br />
C x x x x 21 0<br />
1 0 1 2 4 3 2 1 0 X C x x x x 2 4 3 2 1 0 C x x x x 1 18<br />
XxSP 23 X XxSP<br />
( , )<br />
( , )<br />
=<br />
=<br />
=<br />
=<br />
= ( , , , , , , , ) = , .<br />
= .<br />
667 0 0 1 1 0 1 4 3 2 1 0 C x x x x 85 714 0 1 XxSP Factible No Factible No 21<br />
01<br />
1<br />
11<br />
2<br />
8 ( , , , , , , )<br />
Figura 2.9: Aplicación del método Branch and Bound a un determinado problema SOLUCIÓN<br />
embargo, aún cuando es posible podar un árbol de búsqueda utilizando el método<br />
branch and bound, el número de nodos a evaluar en un problema real puede ser<br />
muy elevado. La ventaja de este método es que luego de que todos los nodos que no<br />
NoFactible<br />
hayan sido descartados, han sido evaluados, garantiza que <strong>la</strong> solución obtenida sea<br />
<strong>la</strong> óptima.<br />
2.4.3. Branch and Bound y <strong>la</strong> Re<strong>la</strong>jación Lagrangiana<br />
0 1 1 6 0 21<br />
La Re<strong>la</strong>jación Lagrangiana (RL), también conocida como Descomposición La-<br />
grangiana, fue introducida al inicio de <strong>la</strong> década de 1970 por medio del trabajo<br />
pionero de Held y Karp [62], [63]. Utilizaron el problema del vendedor viajante<br />
como marco de trabajo.<br />
RL es una técnica de descomposición dirigida por <strong>la</strong> función de optimización.<br />
Magnanti y Wong han denominado a esta técnica Directiva del coste [87]. En primera<br />
instancia, esta técnica reduce y simplifica el problema por re<strong>la</strong>jar determinadas<br />
restricciones. Muchos problemas de optimización combinatorios consisten en un<br />
problema fácil complicado por determinadas restricciones. Aplicar Re<strong>la</strong>jación La-<br />
grangiana a estos problemas incluye identificar estas restricciones que aumentan <strong>la</strong><br />
complejidad del problema, eliminar<strong>la</strong>s como restricción del problema, y absorver<strong>la</strong>s
2.4. Métodos de Optimización Exacta 31<br />
en <strong>la</strong> función objetivo, penalizándo<strong>la</strong>s con un factor al cual se denomina multi-<br />
plicador de Lagrange. El siguiente objetivo consiste en hal<strong>la</strong>r un límite inferior o<br />
superior, según <strong>la</strong> función de optimización, lo más cercano al valor óptimo. Para<br />
alcanzar este objetivo se procede a resolver iterativamente, una secuencia de sub<br />
problemas modificados.<br />
Considerando el proceso que define <strong>la</strong> Re<strong>la</strong>jación Lagrangiana, Beasley en [9]<br />
indicó que <strong>la</strong> Re<strong>la</strong>jación Lagrangiana requiere dirigir dos aspectos importantes; uno<br />
es un aspecto estratégico, y el otro es un aspecto táctico. En el primero incluyó <strong>la</strong><br />
c<strong>la</strong>sificación y re<strong>la</strong>jación de <strong>la</strong>s restricciones, en el segundo, <strong>la</strong> selección de una buena<br />
técnica <strong>para</strong> actualizar los multiplicadores de Lagrange.<br />
Han habido dos técnicas principalmente, que han sido aplicadas <strong>para</strong> hal<strong>la</strong>r val-<br />
ores a los multiplicadores de Lagrange en una amplia variedad de problemas. Estos<br />
son Optimización del Subgradiente y Ajuste del Multiplicador.<br />
En el trabajo realizado por Poojari et. al [101] se realiza una descripción detal<strong>la</strong>da<br />
de cómo es llevada a cabo <strong>la</strong> selección de restricciones que se deberán re<strong>la</strong>jar así como<br />
también el método de optimización del sub gradiente <strong>para</strong> hal<strong>la</strong>r los valores más<br />
adecuados de los multiplicadores de Lagrange.<br />
2.4.4. Branch and Cut<br />
Los <strong>métodos</strong> Branch and Cut son una combinación de Branch and Bound y<br />
P<strong>la</strong>nos de Corte. Son utilizados <strong>para</strong> resolver problemas de programación entera<br />
mediante <strong>la</strong> re<strong>la</strong>jación de <strong>la</strong>s restricciones de integralidad (Branch and Bound) y<br />
mediante <strong>la</strong> acotación del espacio de búsqueda <strong>para</strong> impedir soluciones no enteras<br />
(p<strong>la</strong>nos de corte).<br />
Los p<strong>la</strong>nos de corte son desigualdades válidas, esto es, cualquier desigualdad<br />
π T x ≤ π0 que sea satisfecha por los puntos factibles del programa entero original.<br />
Al espacio convexo de todas <strong>la</strong>s soluciones del problema de programación entera se<br />
denomina poliedro. Los algoritmos de P<strong>la</strong>no de Corte fueron propuestos inicialmente<br />
por Gomory [56], y en esa primera aproximación no eran muy eficientes porque no<br />
acotaban suficientemente el espacio de búsqueda, por lo tanto <strong>la</strong> convergencia a<br />
soluciones enteras era muy lenta. En <strong>la</strong> década de 1980, se produjo el desarrollo de
32 2. Métodos <strong>para</strong> resolver Problemas tipo Job Shop<br />
<strong>la</strong> teoría de poliedros y <strong>la</strong> especificación de p<strong>la</strong>nos de corte específicos <strong>para</strong> deter-<br />
minados tipos de problemas, mediante los cuales los <strong>métodos</strong> de p<strong>la</strong>nos de corte<br />
resurgieron como técnicas <strong>para</strong> acotar el espacio de búsqueda de un problema re<strong>la</strong>-<br />
jado.<br />
Los p<strong>la</strong>nos de corte obtenidos según <strong>la</strong> descripción realizada por Gomory [56]<br />
y Chvátal [28] fue denominada P<strong>la</strong>nos de Corte Gomory-Chvátal. Estos p<strong>la</strong>nos de<br />
corte eran obtenidos por combinar desigualidades del problema original y explotar el<br />
requerimiento de integralidad de determinadas variables. Se puede ver el desarrollo<br />
de un ejemplo en el trabajo de Mitchell [88].<br />
Por otro <strong>la</strong>do, existen varios trabajos, Applegate [4], Grötschell y Hol<strong>la</strong>nd [58],<br />
Padberg y Rinaldi [96], Caprara y Fischetti [19], Jünger et. al [70], o Nemhauser y<br />
Wolsey [93], en los cuales se han desarrol<strong>la</strong>do desigualdades válidas <strong>para</strong> determina-<br />
dos tipos de problemas, como por ejemplo el problema de <strong>la</strong> mochi<strong>la</strong>, o el problema<br />
del vendedor viajante. En estos trabajos se ha combinado <strong>la</strong> técnica <strong>para</strong> gener-<br />
ar p<strong>la</strong>nos de corte Gomory-Chvátal con <strong>la</strong> teoría de poliedros que proporciona un<br />
método <strong>para</strong> obtener desigualdades que definan una de <strong>la</strong>s caras del poliedro que<br />
representa el conjunto de soluciones del problema re<strong>la</strong>jado.<br />
2.4.5. Branch-and-price<br />
Si consideramos <strong>la</strong> representación vectorial de un modelo matemático, donde<br />
cada fi<strong>la</strong> representa una restricción y cada columna una variable, <strong>la</strong> principal difer-<br />
encia entre Branch and Price y Branch and Cut es que, con el objeto de re<strong>la</strong>jar el<br />
problema original, en el primero se eliminan columnas y en el segundo, sin embargo,<br />
se eliminan fi<strong>la</strong>s. El término Branch-and-Price fue utilizado por primera vez en el<br />
trabajo de Savelsbergh [108] y descrito con mayor detalle en el trabajo de Barnhart<br />
et. al [8].<br />
Al igual que los <strong>métodos</strong> previos, Branch-and-price es frecuentemente utilizado<br />
<strong>para</strong> resolver programas enteros que tienen un alto número de variables (columnas).<br />
Un algoritmo branch-and-price siempre trabaja con un problema restringido en el<br />
sentido que únicamente un subconjunto de <strong>la</strong>s variables es tenido en cuenta; <strong>la</strong>s<br />
variables fuera del subconjunto son fijadas a cero y <strong>la</strong>s columnas correspondientes<br />
son ignoradas. Si después de resolver este problema <strong>para</strong> hal<strong>la</strong>r una solución óptima,
2.5. Métodos Heurísticos 33<br />
cada variable que no está incluida en el problema restringido tiene un ahorro poten-<br />
cial negativo, entonces se hal<strong>la</strong> una solución óptima <strong>para</strong> el problema original. Sin<br />
embargo, si alguna de <strong>la</strong>s variables no consideradas en el problema restringido tiene<br />
un ahorro potencial positivo, entonces debe ser incluida en el problema restringi-<br />
do. La idea principal por detrás de <strong>la</strong> generación de columnas es que <strong>la</strong> existencia<br />
de variables con ahorro potencial positivo no es verificada por enumerar todas <strong>la</strong>s<br />
variables, sino más bien por resolver un problema de optimización.<br />
Vanderbeck et. al [115] proporcionan una importante fuente de información, en<br />
<strong>la</strong> cual se discuten varios esquemas generales de ramificación y acotación o poda.<br />
Desrosiers et. al [35] describen este método y proporcionan resultados de su apli-<br />
cación a problemas de p<strong>la</strong>nificar rutas y scheduling.<br />
2.5. Métodos Heurísticos<br />
En esta sección se describe un número de técnicas de propósito general que han<br />
probado ser útiles en los sistemas de scheduling industriales. La mayoría de estos<br />
<strong>métodos</strong> no garantizan típicamente <strong>la</strong> solución óptima; su objetivo es encontrar<br />
una solución razonablemente buena en un periodo de tiempo re<strong>la</strong>tivamente corto.<br />
Aunque existen muchas de tales técnicas, se resumen <strong>la</strong>s más representativas.<br />
2.5.1. Desp<strong>la</strong>zar el Cuello de Botel<strong>la</strong><br />
Adams et. al [2] propusieron <strong>la</strong> heurística Desp<strong>la</strong>zar el Cuello de Botel<strong>la</strong>, en <strong>la</strong><br />
cual M denota el conjunto de <strong>la</strong>s m máquinas consideradas en el job shop. En <strong>la</strong><br />
descripción de una iteración de <strong>la</strong> heurística es asumido que en iteraciones previas<br />
ha sido fijado un orden de utilización sobre determinadas máquinas de M, <strong>la</strong>s cuales<br />
están agrupadas en el subconjunto M0.<br />
Una iteración resulta en <strong>la</strong> inclusión de una máquina del conjunto M \ M0 al<br />
conjunto M0 y de <strong>la</strong> secuencia en que serán procesadas <strong>la</strong>s operaciones que requieran<br />
de <strong>la</strong> misma. Para determinar qué máquina de M \M0 debería ser incluida, se analiza<br />
cuál de el<strong>la</strong>s es <strong>la</strong> que causa en un sentido o en otro el trastorno más severo. Para<br />
determinar esto, el grafo dirigido original G es modificado borrando todos los arcos<br />
disyuntivos de <strong>la</strong>s máquinas pertenecientes a M \ M0 y manteniendo únicamente
34 2. Métodos <strong>para</strong> resolver Problemas tipo Job Shop<br />
los arcos disyuntivos relevantes de <strong>la</strong>s máquinas en M0 (uno de cada par). El grafo<br />
resultante es denominado G ′ . Borrar todos los arcos disyuntivos de una máquina<br />
específica implica que todas <strong>la</strong>s operaciones en esta máquina, <strong>la</strong>s cuales originalmente<br />
deben ser realizadas una tras otra, ahora pueden ser realizadas en <strong>para</strong>lelo (como si<br />
<strong>la</strong> máquina tuviera capacidad infinita, o lo que es igual, que cada operación tuviera<br />
su propia máquina). El grafo G ′ tiene uno o más caminos críticos que determinan<br />
el correspondiente makespan. A lo que se l<strong>la</strong>ma Cmax(M0).<br />
Se considera cada una de <strong>la</strong>s máquinas en M \ M0 como un problema de una<br />
so<strong>la</strong> máquina con instantes de inicio mínimo (release date) e instantes de finalización<br />
(due date) y con <strong>la</strong> demora máxima que debe ser minimizada. El mínimo valor de<br />
Lmax en el problema de única máquina correspondiente a <strong>la</strong> máquina i es denotado<br />
por Lmax(i) y es una medida de lo crítico que resulta el procesamiento en <strong>la</strong> máquina<br />
i.<br />
Después de resolver todos estos problemas de única máquina, <strong>la</strong> maquina i con<br />
<strong>la</strong> mayor demora mínima Lmax(i) es elegida. A esta máquina se <strong>la</strong> etiqueta h, a su<br />
máxima demora Lmax(h) y <strong>la</strong> secuencia de operaciones a ser procesadas es dada por<br />
<strong>la</strong> solución del problema de máquina única asociada, cuyo costo fue Lmax(h). Si los<br />
arcos disyuntivos que especifican <strong>la</strong> secuencia de <strong>la</strong>s operaciones en <strong>la</strong> máquina h<br />
son insertados en el grafo G, entonces el makespan de <strong>la</strong> solución parcial actual se<br />
incrementa en al menos Lmax(h), esto es: Cmax(M0 ∪ h) ≥ Cmax + Lmax(h)<br />
Antes de empezar <strong>la</strong> siguiente iteración y determinar <strong>la</strong> siguiente máquina a ser<br />
programada, un paso adicional debe ser realizado dentro de <strong>la</strong> iteración actual. En<br />
este paso adicional todas <strong>la</strong>s máquinas en el conjunto original M0 son re secuenciadas<br />
una a una <strong>para</strong> ver si el makespan puede ser reducido. Esto es, una máquina, por<br />
decir <strong>la</strong> máquina l es retirada del conjunto M0 y un grafo G ′′ es construido por<br />
modificar el grafo G ′ a través de <strong>la</strong> inclusión de los arcos disyuntivos que especifican<br />
<strong>la</strong> secuencia de operaciones en <strong>la</strong> maquina h y <strong>la</strong> exclusión de los arcos asociados<br />
con <strong>la</strong> máquina l. La máquina l es re secuenciada por resolver el correspondiente<br />
problema de demora máxima <strong>para</strong> única máquina con el instante de inicio y de<br />
finalización determinados por los caminos críticos en el grafo G ′′ . Resecuenciar cada<br />
una de <strong>la</strong>s máquinas en el conjunto original completa <strong>la</strong> iteración.<br />
En <strong>la</strong> siguiente iteración el procedimiento completo es repetido y otra máquina<br />
es agregada al conjunto actual M0 ∪ h.
2.5. Métodos Heurísticos 35<br />
La estructura de <strong>la</strong> heurística Desp<strong>la</strong>zar el Cuello de Botel<strong>la</strong> muestra <strong>la</strong> re<strong>la</strong>ción<br />
entre el concepto de cuello de botel<strong>la</strong> y los conceptos más combinatorios tales como el<br />
camino crítico (camino más <strong>la</strong>rgo) y <strong>la</strong> demora máxima. Un camino crítico indica <strong>la</strong><br />
ubicación y el timing de un cuello de botel<strong>la</strong>. La máxima demora da una indicación de<br />
<strong>la</strong> cantidad en <strong>la</strong> que es incrementado el makespan cuando una determinada máquina<br />
es añadida al conjunto de máquinas ya programadas. Esta heurística no garantiza<br />
que <strong>la</strong> solución generada sea <strong>la</strong> solución óptima. En [99], Pinedo y Singer proponen<br />
un método utilizando esta heurística <strong>para</strong> minimizar el retraso total ponderado.<br />
2.5.2. Reg<strong>la</strong>s de Procesamiento Básico<br />
Una reg<strong>la</strong> de procesamiento es una reg<strong>la</strong> que asigna prioridades a todos los traba-<br />
jos que están esperando ser procesados por una máquina. El esquema de prioridades<br />
puede tomar en cuenta los atributos del trabajo, los atributos de <strong>la</strong> máquina así como<br />
el instante de tiempo actual. Siempre y cuando una máquina ha sido liberada, una<br />
reg<strong>la</strong> de procesamiento selecciona, entre los trabajos esperando por dicha máquina,<br />
aquel trabajo con <strong>la</strong> mayor prioridad. En los trabajos de Lawrence [82] y de Holthaus<br />
[67] se proporciona una descripción de varias reg<strong>la</strong>s <strong>para</strong> asignar prioridades.<br />
Reg<strong>la</strong>s de procesamiento pueden ser c<strong>la</strong>sificadas de varias formas. Por ejemplo,<br />
una distinción puede ser realizada entre reg<strong>la</strong>s de procesamiento estáticas y reg<strong>la</strong>s de<br />
procesamiento dinámicas. Las reg<strong>la</strong>s de procesamiento estáticas no son dependientes<br />
del tiempo, son una función de los datos re<strong>la</strong>cionados al trabajo y/o a <strong>la</strong> máquina.<br />
Un ejemplo de reg<strong>la</strong> dinámica es <strong>la</strong> reg<strong>la</strong> de <strong>la</strong> Mínima Holgura primero (MS) <strong>la</strong><br />
cual ordena trabajos según <strong>la</strong> holgura restante de los mismos. La holgura restante es<br />
definida como max(dj − pj − t, 0) donde dj es el instante de finalización del trabajo<br />
j, pj su tiempo de procesamiento, y t el instante de tiempo actual. Esto implica que<br />
en algún instante de tiempo el trabajo j puede tener mayor prioridad que el trabajo<br />
k y en otro instante de tiempo puede darse lo contrario.<br />
Una segunda forma de c<strong>la</strong>sificar <strong>la</strong>s reg<strong>la</strong>s de procesamiento es según <strong>la</strong> informa-<br />
ción sobre <strong>la</strong> cual están basadas. Una reg<strong>la</strong> local únicamente considera información<br />
perteneciente ya sea a <strong>la</strong> co<strong>la</strong> donde el trabajo está esperando o a <strong>la</strong> máquina donde<br />
el trabajo está en co<strong>la</strong>. Las reg<strong>la</strong>s globales usan información re<strong>la</strong>cionadas con otras<br />
máquinas. A continuación se enumeran algunas reg<strong>la</strong>s de procesamiento básico.
36 2. Métodos <strong>para</strong> resolver Problemas tipo Job Shop<br />
Reg<strong>la</strong> de Servicio en Orden Aleatorio primero (SIRO): el siguiente trabajo<br />
es seleccionado en forma aleatoria de entre los trabajos esperando utilizar <strong>la</strong><br />
máquina.<br />
Reg<strong>la</strong> de Instante de Inicio más Temprano primero (ERD): selecciona al tra-<br />
bajo que llega primero a <strong>la</strong> máquina.<br />
Reg<strong>la</strong> de Instante de Finalización más Temprano primero (EDD): selecciona<br />
el trabajo cuyo instante de finalización (due date) es más próximo.<br />
Reg<strong>la</strong> de Mínima Holgura primero (MS): aquel trabajo con <strong>la</strong> mínima holgura<br />
es el siguiente trabajo seleccionado <strong>para</strong> usar <strong>la</strong> máquina.<br />
Reg<strong>la</strong> de Tiempo de procesamiento Ponderado más Corto primero (WSPT):<br />
los trabajos son seleccionados en orden decreciente según el valor de wj/pj,<br />
siendo wj el peso asignado al trabajo j en <strong>la</strong> función objetivo y pj su tiempo<br />
de procesamiento en <strong>la</strong> máquina considerada.<br />
Reg<strong>la</strong> de Tiempo de Procesamiento más Largo primero (LPT): se selecciona<br />
primero aquel trabajo con tiempo de procesamiento mayor en <strong>la</strong> máquina<br />
considerada.<br />
Reg<strong>la</strong> de Tiempo de Setup más Corto primero (SST): siempre y cuando una<br />
máquina es liberada el siguiente trabajo pasa a ser aquel con el tiempo de<br />
configuración más corto.<br />
Reg<strong>la</strong> de Trabajo menos Flexible primero (LFJ): esta reg<strong>la</strong> es utilizada en el<br />
caso que existan máquinas no idénticas en <strong>para</strong>lelo. Cada trabajo j puede ser<br />
procesado por un subconjunto Mj de <strong>la</strong>s máquinas en <strong>para</strong>lelo. Aquel trabajo<br />
que pueda ser procesado por el menor subconjunto Mj es el siguiente trabajo<br />
seleccionado.<br />
Reg<strong>la</strong> de Camino Crítico (CP): aquel trabajo cuyo tiempo de procesamien-<br />
to total considerando únicamente <strong>la</strong>s actividades precedentes a <strong>la</strong> actual, es<br />
mayor, es el trabajo que es seleccionado primero.<br />
Reg<strong>la</strong> de Número Mayor de Sucesores (LNS): selecciona como siguiente tra-<br />
bajo aquel que tenga el mayor número de trabajos siguiéndolo.
2.5. Métodos Heurísticos 37<br />
Reg<strong>la</strong> de Co<strong>la</strong> más Corta en <strong>la</strong> Siguiente Operación (SQNO): siempre y cuando<br />
una máquina es liberada el trabajo con <strong>la</strong> co<strong>la</strong> de trabajos más corta en <strong>la</strong><br />
siguiente máquina es seleccionado.<br />
2.5.3. Reg<strong>la</strong>s de Procesamiento Compuesto<br />
Las reg<strong>la</strong>s de procesamiento básico son útiles cuando uno intenta encontrar<br />
una solución razonablemente buena con respecto a un único objetivo tal como el<br />
makespan, <strong>la</strong> suma de los instantes en que los trabajos han sido completados, o <strong>la</strong><br />
máxima demora.<br />
Sin embargo, en <strong>la</strong> práctica los objetivos son mucho más complicados. Un ob-<br />
jetivo realista puede ser una combinación de varios objetivos y puede ser también<br />
una función del tiempo o una función del conjunto de trabajos esperando ser proce-<br />
sados. Según Dechter en [32], ordenar los trabajos en base a uno o dos parámetros<br />
puede conducir a soluciones no aceptables. Reg<strong>la</strong>s de procesamiento más e<strong>la</strong>boradas<br />
que consideran un número de parámetros pueden dirigir mejor cuando se utilizan<br />
funciones objetivos más complicadas.<br />
Una reg<strong>la</strong> de procesamiento compuesto es una expresión en <strong>la</strong> cual se combina<br />
ciertas reg<strong>la</strong>s de procesamiento básico, cada una con un peso determinado. La me-<br />
dida en <strong>la</strong> que un determinado atributo afecta a <strong>la</strong> prioridad total de un trabajo<br />
es determinada por <strong>la</strong> reg<strong>la</strong> de procesamiento básico que lo utiliza y un parámetro<br />
de esca<strong>la</strong>. Cada reg<strong>la</strong> básica en <strong>la</strong> reg<strong>la</strong> compuesta tiene su propio parámetro de<br />
esca<strong>la</strong> que es utilizado según <strong>la</strong> contribución que se desee de <strong>la</strong> reg<strong>la</strong> básica a <strong>la</strong><br />
expresión de ranking total. El parámetro de esca<strong>la</strong> puede ser fijado por el diseñador<br />
de <strong>la</strong> reg<strong>la</strong> o puede ser variable y una función del conjunto de trabajos particu<strong>la</strong>r a<br />
ser programado.<br />
Un ejemplo de una reg<strong>la</strong> de procesamiento compuesto es <strong>la</strong> reg<strong>la</strong> Costo del Retra-<br />
so Aparente (ATC), es una reg<strong>la</strong> <strong>para</strong> una máquina y n trabajos (todos disponibles<br />
en el instante cero), siendo <strong>la</strong> suma de los retrasos de cada trabajo wjTj el objeti-<br />
vo. En [98], Pinedo proporciona más detalles acerca de esta reg<strong>la</strong> de procesamiento.<br />
Vepsa<strong>la</strong>nen y Morton han realizado en [116] un estudio y pruebas de varias reg<strong>la</strong>s<br />
de procesamiento tales como EDD, WSPT, COVERT, y ATC.
38 2. Métodos <strong>para</strong> resolver Problemas tipo Job Shop<br />
2.6. Formu<strong>la</strong>ción de un Job Shop como un CSOP<br />
En un problema tipo Job Shop están presentes determinadas restricciones que<br />
son obligatorias <strong>para</strong> que un problema sea considerado de ese tipo, por ejemplo, <strong>la</strong><br />
precedencia entre una operación y otra de un trabajo o el ordenamiento secuencial<br />
que debe existir en el uso de una misma máquina entre los diferentes trabajos que<br />
<strong>la</strong> requieran. Pero además de estas restricciones, pueden existir otras que sean nece-<br />
sarias <strong>para</strong> obtener una asignación de recursos factible de aplicación en el dominio<br />
considerado. Muchas de estas restricciones pueden ser difíciles de mode<strong>la</strong>r mediante<br />
<strong>la</strong> programación matemática o pueden significar aumentar el modelo con un gran<br />
número de variables de decisión binarias. Los Problemas de Satisfacción de Restric-<br />
ciones (CSPs), muy estudiados en el campo de <strong>la</strong> Inteligencia Artificial, ofrecen otra<br />
alternativa <strong>para</strong> formu<strong>la</strong>r problemas, así como técnicas <strong>para</strong> realizar <strong>la</strong> búsqueda de<br />
una o más soluciones. Consideramos que un Job Shop puede ser mode<strong>la</strong>do mediante<br />
un CSP, el cual es descrito brevemente en esta sección.<br />
Los problemas de satisfacción de restricciones, en general, constan de dos com-<br />
ponentes principales, <strong>la</strong>s variables con sus correspondientes dominios, y <strong>la</strong>s restric-<br />
ciones. Las variables son objetos o items que pueden tomar una variedad de valores.<br />
El conjunto de posibles valores <strong>para</strong> una variable determinada es considerado su<br />
dominio. Por ejemplo, si tratamos de encontrar una disposición adecuada <strong>para</strong> los<br />
asientos en una cena, <strong>la</strong>s variables pueden ser <strong>la</strong>s sil<strong>la</strong>s y el dominio de cada una, <strong>la</strong><br />
lista de invitados.<br />
El segundo componente es el conjunto de restricciones. Las restricciones son<br />
reg<strong>la</strong>s que imponen una limitación sobre los valores que pueden ser asignados a<br />
una variable o a una combinación de variables. Considerando el ejemplo anterior, si<br />
los dueños de casa deben estar sentados en los extremos de <strong>la</strong> mesa, entonces sus<br />
elecciones de asientos están restringidas. Así como si dos invitados están enemistados<br />
entre sí, no pueden sentarse uno junto a otro, ni uno frente a otro. Esta sería otra<br />
restricción <strong>para</strong> el problema del ejemplo.<br />
Un modelo que incluya variables, sus dominios y restricciones es l<strong>la</strong>mado una<br />
red de restricciones o también un problema de restricciones. Una solución es una<br />
asignación de un único valor a cada variable, tal que dicho valor pertenezca al<br />
dominio de <strong>la</strong> variable y satisfaga simultáneamente con el resto de valores asignados
2.6. Formu<strong>la</strong>ción de un Job Shop como un CSOP 39<br />
el conjunto de restricciones del problema.<br />
Formalmente, una red de restricciones R consiste de un conjunto finito de vari-<br />
ables X = {x1, .., xi, .., xn} con sus respectivos dominios D = {D1, ..., Dn} los cuales<br />
listan los posibles valores <strong>para</strong> cada variable Di = {v1, ..., vk}, y un conjunto de re-<br />
stricciones C = {C1, ..., Ct}. Así, una red de restricciones puede ser vista como una<br />
tup<strong>la</strong> de tres elementos (X, D, C).<br />
Una restricción Ci es una re<strong>la</strong>ción definida sobre un subconjunto de variables<br />
Si , Si ⊆ X. La re<strong>la</strong>ción Ci denota <strong>la</strong>s asignaciones legales simultáneas realizadas<br />
al conjunto de variables Si. Si es el ámbito de <strong>la</strong> re<strong>la</strong>ción. Si Si = {xi1 , ..., xir},<br />
entonces Ci es un subconjunto del producto cartesiano Di1 × ... × Dir. El conjunto<br />
de ámbitos S = {Si, ..., St} es denominado red de esquemas. La aridad de una<br />
restricción Ci se refiere a <strong>la</strong> cardinalidad |Si| de su ámbito. Una red de restricciones<br />
binaria tiene únicamente restricciones unarias y/o restricciones binarias. Cuando<br />
deseamos especificar explícitamente el ámbito Si de una restricción Ci, utilizamos<br />
<strong>la</strong> notación CSi , propuesta por Dechter en [32].<br />
Las tareas típicas sobre una red de restricciones son determinar si una solución<br />
existe, encontrar una o todas <strong>la</strong>s soluciones, encontrar si una instanciación parcial<br />
puede ser extendida a una solución completa. Cada una de estas tareas son referidas<br />
como un Problema de Satisfacción de Restricciones ó CSP.<br />
Cuando <strong>la</strong> tarea a llevar a cabo sobre una red de restricciones consiste en en-<br />
contrar una solución óptima re<strong>la</strong>tiva a un determinado criterio, el cual es mode<strong>la</strong>do<br />
mediante una función de optimización, se <strong>la</strong> conoce como un Problema de Opti-<br />
mización y Satisfacción de Restricciones (CSOP). La solución de un CSOP consiste<br />
en una asignación factible de valores a todas <strong>la</strong>s variables, satisfaciendo el conjunto<br />
de restricciones y optimizando una función de optimización global.<br />
Sea<br />
X = {x1, ..., xn} un conjunto de variables,<br />
Fi, 1 ≤ i ≤ l componentes funcionales que evalúan a valores reales, definidas<br />
sobre los ámbitos Qj, 1 ≤ j ≤ l, Qj ⊆ X,<br />
ā = (a1, ..., an), donde ai está en el dominio de xi, y<br />
ai <strong>la</strong> asignación de valores a <strong>la</strong>s primeras i variables de ā.
40 2. Métodos <strong>para</strong> resolver Problemas tipo Job Shop<br />
La función de optimización global es definida por<br />
F (ā) = l<br />
j=1 Fj(ā)<br />
donde Fj(ā) significa que Fj es aplicada a <strong>la</strong>s asignaciones en ā restringido al ámbito<br />
de Fj. Esto es, Fj(ā) = Fj(ā[Qj]).<br />
Se puede ver a un problema de optimización de restricciones como un problema<br />
definido sobre una red de restricciones extendida l<strong>la</strong>mada una red de optimización.<br />
Una red de optimización es una 4-tup<strong>la</strong> C = {X, D, C, F C}, donde (X, D, C) es una<br />
red de restricciones y F C = {FQ1 , ..., FQl } es un conjunto adicional de componentes<br />
de optimización definidos sobre los ámbitos Q1, ..., Ql, Qi = {xi1, ..., xil }, FQi :⊲⊳l j=1<br />
Dij → Reales+ (números reales no negativos). Funciones en F C son l<strong>la</strong>madas re-<br />
stricciones b<strong>la</strong>ndas. La tarea de optimización es encontrar ā 0 = (a1, ..., an), satisfa-<br />
ciendo todas <strong>la</strong>s restricciones, tales que, F (ā 0 ) = maxāF (ā) o F (ā 0 ) = mināF (ā).<br />
En un problema de scheduling tipo Job Shop el conjunto X de variables está for-<br />
mado por los instantes de inicio y por los instantes de finalización correspondientes<br />
a cada operación del problema. Los dominios de estas variables, pueden estar for-<br />
mados por el conjunto de números naturales, o si se desea mayor precisión por el<br />
conjunto de números reales positivos.<br />
Considere que el trabajo j consta de <strong>la</strong> siguiente secuencia de operaciones (i1, j), ..., (in, j).<br />
Denominamos sikj al instante en el que se inicia <strong>la</strong> operación (ik, j). El tiempo de<br />
procesamiento asignado a cada operación es igual a pikj.<br />
El conjunto de restricciones está formado por:<br />
Restricción sobre el tiempo de inicio. Por cada operación se establece el mínimo<br />
y el máximo instante de tiempo en el cual es factible el inicio y <strong>la</strong> finalización,<br />
respectivamente, de <strong>la</strong> operación. Sea sij el mínimo instante de tiempo en<br />
el cual es factible el inicio de <strong>la</strong> operación (i, j) y eij el máximo instante de<br />
tiempo en el cual es factible que (i, j) finalice. La siguiente expresión establece<br />
<strong>la</strong> ventana de tiempo dentro de <strong>la</strong> cual es factible el inicio de <strong>la</strong> operación<br />
(i, j), de tal forma que también sea factible el instante en que esta finalice.<br />
.<br />
sij ≤ sij ≤ eij − pij
2.6. Formu<strong>la</strong>ción de un Job Shop como un CSOP 41<br />
Restricción sobre <strong>la</strong> duración de una operación. Una determinada cantidad de<br />
tiempo es especificada por cada operación indicando <strong>la</strong> duración de <strong>la</strong> misma.<br />
Esta restricción indica que una operación (i, j) cuyo instante de inicio es sij<br />
debe finalizar en el instante eij. El cual es obtenido según lo indica <strong>la</strong> siguiente<br />
expresión:<br />
eij = sij + pij<br />
Restricción de precedencia: La restricción mediante <strong>la</strong> cual se establece un<br />
ordenamiento entre <strong>la</strong>s operaciones de un mismo trabajo está dada por <strong>la</strong><br />
expresión:<br />
sik+1j ≥ sikj + pikj<br />
Restricciones de Capacidad: <strong>para</strong> establecer que como máximo una operación<br />
podrá utilizar cada recurso en un mismo instante de tiempo se considera <strong>la</strong><br />
restricción especificada mediante <strong>la</strong> siguiente expresión:<br />
sij > sik + pik ∨ sik > sij + pij<br />
Como un ejemplo, considere el problema tipo Job Shop representado mediante <strong>la</strong>s<br />
Figuras 2.3 y 2.4. En este caso el siguiente conjunto de restricciones mode<strong>la</strong> el<br />
ordenamiento que debe existir entre <strong>la</strong>s operaciones del trabajo 2.<br />
s12 ≥ s22 + p22<br />
s42 ≥ s12 + p12<br />
s32 ≥ s42 + p42<br />
El siguiente conjunto de restricciones indica que una misma máquina o recurso no<br />
puede ser utilizado por más de un trabajo a <strong>la</strong> vez. En este caso, los trabajos 2 y<br />
3 requieren utilizar <strong>la</strong> máquina 4. La utilización de <strong>la</strong> misma no podrá realizarse al<br />
mismo tiempo, sino en forma secuencial.<br />
s42 ≥ s43 + p43 ∨ s43 ≥ s42 + p42<br />
En <strong>la</strong> literatura existen numerosos trabajos donde se formu<strong>la</strong> el problema de<br />
scheduling como un problema de satisfacción de restricciones, Dhar y Ranganathan
42 2. Métodos <strong>para</strong> resolver Problemas tipo Job Shop<br />
[37], Fox [41], Sadeh et. al. [107], Garrido et. al [45], Prosser [102]. Se aplican heurísti-<br />
cas <strong>para</strong> reducir el espacio de búsqueda tales como <strong>métodos</strong> de c<strong>la</strong>usura, heurísticas<br />
<strong>para</strong> el ordenamiento de variables y valores, mejoras en el backtracking o en técnicas<br />
look-ahead. En <strong>la</strong>s siguientes secciones de este capítulo se describirán <strong>la</strong>s aproxima-<br />
ciones algorítmicas estudiadas <strong>para</strong> resolver CSPs. En <strong>la</strong> Figura 2.2 se proporciona<br />
un resumen de estos <strong>métodos</strong>.<br />
2.6.1. Búsqueda: Algoritmo Backtracking<br />
El algoritmo Backtracking es un método propuesto por Gaschnig [46] en 1977<br />
<strong>para</strong> resolver CSPs. Consiste en explorar el espacio de estados del CSP hasta: en-<br />
contrar una o más soluciones, demostrar que no existe solución, o agotar los recursos<br />
computacionales. La búsqueda que realiza este algoritmo puede ser completa, si el<br />
recorrido del espacio de estados es sistemática, o incompleta, si se utilizan estrate-<br />
gias de búsqueda local. Posteriormente han sido propuestas numerosas heurísticas<br />
<strong>para</strong> acelerar <strong>la</strong> búsqueda de forma significativa. Una descripción de <strong>la</strong>s mismas es<br />
realizada por Larrosa y Meseguer en [81].<br />
Para describir este algoritmo se emplea un árbol de búsqueda. En <strong>la</strong> Figura 2.10<br />
se muestra un árbol de búsqueda en el cual cada nodo representa <strong>la</strong> asignación de<br />
una variable. Al recorrer <strong>la</strong>s ramas del árbol, recorremos el espacio de estados del<br />
problema. )<br />
,<br />
,<br />
(− − −<br />
(− −<br />
(− ) , , 1 ) , 0 , 0 ) , 1 , 1 ) 0 , 0 , 00,<br />
, )<br />
(− −<br />
Figura 2.10: Árbol de Búsqueda<br />
(−<br />
En el trabajo de Barber y Salido [7] se ha encontrado una descripción del árbol<br />
de búsqueda como representación del espacio de búsqueda de un CSP. Siendo n el<br />
) 1 , 1 , 1 ( ) 0 , 1 , 1 ( ) 1 , 0 , 1 ( ) 0 , 0 , 1 ( ) 1 , 0 , 0 (<br />
) 0 , 1 , 0 (<br />
) 1 , 1 , 0 ( (
2.6. Formu<strong>la</strong>ción de un Job Shop como un CSOP 43<br />
número de variables del problema, si se asume que el orden de <strong>la</strong>s variables es estático<br />
y no cambia durante <strong>la</strong> búsqueda, entonces el nodo en el nivel k del árbol representa<br />
un estado donde <strong>la</strong>s variables x1, ..., xk están asignadas y el resto xk+1, ..., xn no lo<br />
están. Cada nodo del árbol representa una asignación de variables, definida por el<br />
camino que une el nodo con <strong>la</strong> raíz. La raíz del árbol de búsqueda representa <strong>la</strong> tup<strong>la</strong><br />
vacía, donde ninguna variable tiene asignado valor alguno y los nodos en el nivel n,<br />
que son <strong>la</strong>s hojas del árbol, son n − tup<strong>la</strong>s, donde cada una es una asignación de <strong>la</strong>s<br />
n variables del problema. Cada nodo hoja es un elemento del producto cartesiano<br />
D1 ×...×Dn, siendo Di, 1 ≤ i ≤ n el dominio de <strong>la</strong> variable xi del problema. De esta<br />
manera si una n−tup<strong>la</strong> es consistente, entonces es solución del problema. Este árbol<br />
se puede recorrer de varias formas. A menudo se utiliza <strong>la</strong> búsqueda en profundidad,<br />
ya que tiene una complejidad espacial lineal y el árbol tiene profundidad acotada<br />
debido al número finito de variables del problema.<br />
Según <strong>la</strong> descripción realizada por Dechter en [32], Bitner y Reingold en [13], o<br />
Larrosa y Meseguer en [81], el algoritmo Backtracking cruza el espacio de estados<br />
de instancias parciales de una forma primero en profundidad. Backtracking tiene<br />
dos fases. La primera es una fase hacia de<strong>la</strong>nte durante <strong>la</strong> cual <strong>la</strong>s variables son<br />
seleccionadas en secuencia, y una solución parcial actual es extendida por asignar<br />
un valor consistente, si existe uno, a <strong>la</strong> siguiente variable. La segunda fase es hacia<br />
atrás en <strong>la</strong> cual cuando no existe ninguna solución consistente <strong>para</strong> <strong>la</strong> variable actual,<br />
el algoritmo vuelve a <strong>la</strong> variable cuyo valor fue asignado previamente. La Figura 2.11<br />
describe el algoritmo Backtracking de Gaschnig.<br />
El algoritmo mostrado en <strong>la</strong> Figura 2.11 finaliza cuando encuentra una solución,<br />
pero puede ser modificado <strong>para</strong> que encuentre todas <strong>la</strong>s soluciones al problema o<br />
bien que finalice cuando encuentre un número determinado de el<strong>la</strong>s.<br />
Este algoritmo no especifica el orden de <strong>la</strong>s variables en una rama ni el orden<br />
en que se seleccionan los valores <strong>para</strong> una variable. Estos aspectos se resuelven por<br />
medio de heurísticas de selección de variable y selección de valor. Estos criterios son<br />
descritos en <strong>la</strong>s sub secciones 2.6.5 y 2.6.6.
44 2. Métodos <strong>para</strong> resolver Problemas tipo Job Shop<br />
Function 1<br />
2.6.2. Inferencia<br />
Backtracking<br />
SelectValu D ii<br />
xi<br />
i<br />
i D i i<br />
inconsiste {<br />
X,D,C<br />
( R= ( ) )<br />
=<br />
D=<br />
'<br />
While ≤i≤<br />
=<br />
e<br />
If is NULL<br />
Else<br />
+<br />
D=<br />
'<br />
End If<br />
End While<br />
Else<br />
i x n<br />
If =<br />
11<br />
return<br />
return } valorese<br />
End If<br />
End Function<br />
Function SelectValu<br />
While ≠ ∅ os instanciad 0 i=i<br />
a∈<br />
nte<br />
i= Then returna'<br />
i D x<br />
End While<br />
return NULL<br />
de<br />
End Function 'i D arbitrario elemento , de a ai<br />
n<br />
1 − i=i<br />
If Consistent( ) xa<br />
Figura 2.11: Algoritmo de Backtracking<br />
El problema de <strong>la</strong> existencia de soluciones en una red de restricciones es NP-<br />
1 x,...,<br />
Completo, Bessière [12]. Dada esta complejidad, se ha estudiado formas de propagar<br />
<strong>la</strong>s restricciones de los CSPs en una sub red, obteniendo mediante ello información<br />
sobre <strong>la</strong> consistencia de dicha sub red. A este proceso se denomina inferencia.<br />
La inferencia en una red de restricciones consiste en deducir nuevas restricciones<br />
a partir de <strong>la</strong>s existentes. Estas nuevas restricciones son redundantes con <strong>la</strong>s an-<br />
r selecciona eliminar y un<br />
1 r −,<br />
teriores, en el sentido de que no incorporan nuevo conocimiento. La deducción de<br />
restricciones se puede ver como el proceso de hacer explícitas ciertas restricciones<br />
que están implícitas en <strong>la</strong> red. En el límite, <strong>la</strong> inferencia trata de sintetizar una<br />
D'i
2.6. Formu<strong>la</strong>ción de un Job Shop como un CSOP 45<br />
única restricción global como conjunción de todas <strong>la</strong>s restricciones explícitas de <strong>la</strong><br />
red. Dicha restricción reemp<strong>la</strong>za a todas <strong>la</strong>s restricciones explícitas, que capturan el<br />
conocimiento contenido en cada una de el<strong>la</strong>s. Obviamente, <strong>la</strong>s tup<strong>la</strong>s que <strong>la</strong> satis-<br />
facen son <strong>la</strong>s soluciones de <strong>la</strong> red. Para más información ver el trabajo presentado<br />
por Larrosa y Schiex en [81].<br />
El proceso de sintetizar una única restricción global se denomina inferencia com-<br />
pleta. Si <strong>la</strong> restricción global es diferente a vacío, se garantiza <strong>la</strong> consistencia global.<br />
Posterior a <strong>la</strong> obtención de <strong>la</strong> restricción, <strong>la</strong>s soluciones se obtienen de forma directa.<br />
Otras formas de inferencia están agrupadas bajo <strong>la</strong> etiqueta de consistencia local.<br />
Se trata de <strong>métodos</strong> de inferencia incompleta, capaces de hacer aflorar restricciones<br />
implícitas, pero que no sintetizan <strong>la</strong> única restricción global, y por ello no generan<br />
de forma directa <strong>la</strong>s soluciones. Normalmente, <strong>la</strong> inferencia incompleta se ha de<br />
combinar con búsqueda <strong>para</strong> resolver una red de restricciones.<br />
Sintetizar una única restricción global que capture el conocimiento contenido en<br />
todas <strong>la</strong>s restricciones del problema es conceptualmente simple. Basta con calcu<strong>la</strong>r<br />
<strong>la</strong> restricción n-aria ⊲⊳ci∈C ci 2 en donde todas <strong>la</strong>s tup<strong>la</strong>s que <strong>la</strong> satisfacen son <strong>la</strong>s<br />
soluciones del problema. Sin embargo, calcu<strong>la</strong>r esa restricción es costoso en tiempo y<br />
en espacio (exponencial en n), y es más de lo necesario <strong>para</strong> resolver el problema sin<br />
búsqueda. Un problema inicialmente más asequible es el de resolver subredes de un<br />
tamaño prefijado, por ejemplo, subredes de una variable, subredes de dos variables,<br />
etc.<br />
Formalmente, una subred (X ′ , D ′ , C ′ ) de una red de restricciones (X, D, C),<br />
está definida por un subconjunto de variables X ′ = {x1, ..., xk}, X ′ ⊂ X, sobre<br />
los dominios originales D ′ = {D1, ..., Dk}, bajo el conjunto de restricciones C ′ =<br />
{Ci\Ci ∈ C ∧ Si ⊆ X ′ }. Encontrar <strong>la</strong> solución de una subred no garantiza que el<br />
problema tenga solución. Sin embargo, los resultados negativos encontrados en este<br />
proceso sí se pueden aplicar a <strong>la</strong> red inicial. Si resolviendo una subred se encuentra<br />
que ciertos valores o combinaciones de valores no aparecen en ninguna solución de<br />
<strong>la</strong> subred, estos tampoco aparecerán en <strong>la</strong>s soluciones de <strong>la</strong> red. La justificación es<br />
directa: todas <strong>la</strong>s restricciones de <strong>la</strong> subred están presenten en <strong>la</strong> red inicial C ′ ⊂ C,<br />
luego todos los valores o combinaciones prohibidos por <strong>la</strong> subred también lo serán<br />
2 El operador ⊲⊳ es utilizado por Dechter en [32] <strong>para</strong> expresar <strong>la</strong> operación join entre dos<br />
restricciones
46 2. Métodos <strong>para</strong> resolver Problemas tipo Job Shop<br />
por <strong>la</strong> red inicial. Si <strong>la</strong> subred no tiene solución, <strong>la</strong> red no tiene solución.<br />
Con este proceso, denominado de consistencia local no se encuentra <strong>la</strong> solución<br />
del problema pero se deducen nuevas restricciones que se añaden al problema y<br />
permiten acelerar <strong>la</strong> búsqueda de <strong>la</strong> solución global. Si se deduce <strong>la</strong> restricción vacía,<br />
el problema no tiene solución.<br />
Los niveles de consistencia más utilizados son nodo consistencia, arco consisten-<br />
cia, y camino consistencia. Los niveles se diferencian en el tamaño de <strong>la</strong> sub red<br />
<strong>para</strong> <strong>la</strong> cual garantizan <strong>la</strong> consistencia.<br />
Nodo-Consistencia (NC)<br />
Una variable xi es nodo consistente si y solo si todo valor de su dominio Di<br />
satisface <strong>la</strong>s restricciones unarias en cuyos ámbitos se incluye a xi.<br />
Una red de restricciones es nodo consistente si y solo si toda variable es nodo<br />
consistente:<br />
Arco-Consistencia (AC)<br />
∀xi ∈ X, ∀C j{x} ∈ C, ∃a ∈ Di : (a) ∈ Ci<br />
Dada una red de restricciones R = (X, D, C), con C k{xi,xj} ∈ C, una variable xi<br />
es arco-consistente re<strong>la</strong>tivo a xj si y solo si por cada valor ai ∈ Di existe un valor<br />
aj ∈ Dj tal que (ai, aj) ∈ C k{xi,xj}. La subred (alternativamente, el arco) definido<br />
por {xi, xj} es arco-consistente si y solo si xi es arco-consistente re<strong>la</strong>tivo a xj y xj es<br />
arco-consistente re<strong>la</strong>tivo a xi. Una red de restricciones es l<strong>la</strong>mado arco-consistente<br />
si y solo si todos sus arcos (ej: subredes de tamaño 2) son arco-consistentes:<br />
∀xi, xj ∈ X, ∀C k{xi,xj} ∈ C, ∃ai ∈ Di, ∃aj ∈ Dj : (ai, aj) ∈ Ck<br />
Camino-Consistencia (PC)<br />
Dada una red de restricciones R = (X, D, C), un conjunto de dos variables<br />
{xi, xj} es camino-consistente re<strong>la</strong>tivo a <strong>la</strong> variable xk si y solo si por cada asig-<br />
nación consistente (〈xi, ai〉, 〈xj, aj〉) hay un valor ak ∈ Dk tal que <strong>la</strong> asignación<br />
(〈xi, ai〉, 〈xk, ak〉) sea consistente y <strong>la</strong> asignación (〈xk, ak〉, 〈xj, aj〉) sea consistente.<br />
Alternativamente una restricción binaria C z{xi,xj} es camino consistente re<strong>la</strong>tivo a
2.6. Formu<strong>la</strong>ción de un Job Shop como un CSOP 47<br />
xk si y solo si <strong>para</strong> cada par (ai, aj) ∈ C z{xi,xj}, donde ai y aj pertenecen a sus<br />
respectivos dominios, hay un valor ak ∈ Dk tal que (ai, ak) ∈ C z{xi,xk} y (ak, aj) ∈<br />
C z{xk,xj}. Una subred sobre tres variables {xi, xj, xk} es camino-consistente si y solo<br />
si <strong>para</strong> cualquier permutación de (i, j, k), C z{xi,xj} es camino-consistente re<strong>la</strong>tivo a<br />
xk. Una red es camino-consistente si y solo si <strong>para</strong> cada C z{xi,xj} (incluyendo re<strong>la</strong>-<br />
ciones binaria universal) y <strong>para</strong> cada k = i, j C z{xi,xj} es camino-consistente re<strong>la</strong>tivo<br />
a xk:<br />
∀xi, xj ∈ X, ∀xk ∈ X, ∀C z{xi,xj} ∈ C, ∀C z ′ {xi,xk} ∈ C, ∀C z ′′ {xk,xj} ∈ C<br />
∃ai ∈ Di, ∃aj ∈ Dj, ∃ak ∈ Dk : (ai, aj) ∈ Cz ∧ (ai, ak) ∈ C ′ z ∧ (ak, aj) ∈ C ′′<br />
z<br />
Diversos <strong>métodos</strong>, que implementan <strong>la</strong>s propiedades de arco consistencia y camino<br />
consistencia, han sido publicados. Entre <strong>la</strong>s propiedades de inferencia, <strong>la</strong> arco consis-<br />
tencia es <strong>la</strong> más utilizada. Waltz [118] desarrolló un algoritmo de búsqueda utilizando<br />
AC <strong>para</strong> resolver problemas de visión por ordenador. A partir de este trabajo, ha<br />
sido estudiado por varios autores, entre ellos, Mackworth y Freuder [85], [86] (AC-3),<br />
Mohr y Henderson [90]. Estos últimos han propuesto un algoritmo cuya complejidad<br />
temporal en el peor caso es O(ed 2 ), donde e es el número de restricciones y d es<br />
<strong>la</strong> cardinalidad del dominio del problema con mayor número de elementos. En [11],<br />
Bessière ha extendido su uso a redes de restricciones dinámicas. Van Hentenryck,<br />
Deville and Teng [36], [114] han propuesto un algoritmo genérico el cual puede ser<br />
implementado con todas <strong>la</strong>s técnicas conocidas, y han extraído c<strong>la</strong>ses de redes so-<br />
bre <strong>la</strong>s cuales existen algoritmos corriendo arco consistencia con complejidad O(ed).<br />
En 1992, Perlin [97] ha dado propiedades de arco consistencia sobre re<strong>la</strong>ciones fac-<br />
torables. El algoritmo AC-6 es propuesto por Bessière en [12]. El autor del mismo<br />
indica que aunque mantiene <strong>la</strong> misma complejidad temporal de AC-4 <strong>para</strong> el peor<br />
caso O(ed 2 ), <strong>la</strong> complejidad espacial de AC-6 es O(ed) y en promedio <strong>la</strong> complejidad<br />
temporal es menor que <strong>la</strong> de AC-4.<br />
Entre otros, ejemplos de algoritmos de búsqueda que implementan <strong>la</strong> propiedad<br />
de camino consistencia son: PC-2 Mackworth [85], PC-3 Mohr y Henderson [90],<br />
PC-4 Han y Lee [59], PC-5 Sing [111].<br />
Partiendo del trabajo de Freuder [42] sobre problemas libres de backtracking,<br />
Dechter y Pearl han propuesto el algoritmo ADC (adaptive consistency) [33]. Este<br />
algoritmo usa un orden estático de variables. Para cada variable, el algoritmo infiere
48 2. Métodos <strong>para</strong> resolver Problemas tipo Job Shop<br />
una nueva restricción que reemp<strong>la</strong>za el efecto de <strong>la</strong> variable en el resto del proble-<br />
ma. Dicha variable se sustituye por esa nueva restricción obteniendo un problema<br />
equivalente con una variable menos. Este proceso, denominado eliminación de vari-<br />
ables se repiten eliminado una variable cada vez hasta que el problema se resuelve<br />
trivialmente. Si no se ha encontrado <strong>la</strong> restricción vacía, el problema tiene solución,<br />
<strong>la</strong> cual se construye de formad directa, sin búsqueda.<br />
2.6.3. Inferencia + Búsqueda<br />
Esquemas Look-ahead son invocados siempre y cuando el algoritmo se está pre<strong>para</strong>n-<br />
do <strong>para</strong> seleccionar <strong>la</strong> siguiente variable o el siguiente valor. Estos esquemas buscan<br />
descubrir, mediante una cantidad restringida de propagación de restricciones (con-<br />
sistencia local), cómo decisiones actuales acerca de <strong>la</strong> selección de variable y valor<br />
afectarán a futuras búsquedas. Específicamente, <strong>la</strong> decisión <strong>para</strong> aceptar o rechazar<br />
un valor de <strong>la</strong> variable actual está basada en el impacto que <strong>la</strong> asignación tiene cuan-<br />
do <strong>la</strong> propagación de restricciones es aplicada a <strong>la</strong>s variables futuras no instanciadas.<br />
Una vez se completa cierta cantidad de razonamiento a través de <strong>la</strong> propagación de<br />
restricciones, el algoritmo puede usar los resultados <strong>para</strong> decidir qué variable será <strong>la</strong><br />
siguiente a instanciar, si el orden no está pre determinado, y qué valor asignar a<br />
dicha variable.<br />
Estrategias Look-ahead incurren en un costo extra <strong>para</strong> cada pedido de instan-<br />
ciación, pero pueden proveer importantes beneficios. Por ejemplo, si todos los valores<br />
de una variable no instanciada son eliminados del conjunto de valores posibles por<br />
aplicar el procedimiento Look-ahead, entonces <strong>la</strong> actual instanciación no puede ser<br />
parte de una solución y el algoritmo sabe que debe aplicar backtracking y selec-<br />
cionar otro valor <strong>para</strong> <strong>la</strong> variable actual. Consecuentemente, dead-ends ocurren más<br />
temprano en <strong>la</strong> búsqueda, y porciones mucho más pequeñas del espacio de búsqueda<br />
necesitan ser exploradas. En general, cuanto más fuerte es el nivel de propagación<br />
de restricciones usada por el look-ahead, menor es el espacio de búsqueda explorado<br />
y mayor es <strong>la</strong> sobre carga computacional.<br />
Finalmente, por eliminar de los dominios de cada variable futura todos los valores<br />
inconsistentes con <strong>la</strong> instanciación parcial actual, via propagación de restricciones,<br />
se elimina <strong>la</strong> necesidad de verificar <strong>la</strong> consistencia de valores de <strong>la</strong> variable actual
2.6. Formu<strong>la</strong>ción de un Job Shop como un CSOP 49<br />
con los valores de <strong>la</strong>s variables previamente instanciadas.<br />
El desafío es encontrar un equilibrio práctico entre <strong>la</strong> efectividad de acotar los<br />
dominios por aplicar una propagación de restricciones previamente y <strong>la</strong> sobre carga<br />
computacional que esto implica.<br />
Variable Elimination Search (VES)<br />
Como ejemplo de combinación de búsqueda completa e inferencia completa<br />
está el algoritmo V ES (variable elimination search) descrito en detalle en el trabajo<br />
presentado por Larrosa en [80]. Eliminar una variable, que es el paso básico de <strong>la</strong><br />
inferencia completa, tiene un coste espacial y temporal exponencial en <strong>la</strong> anchura<br />
de <strong>la</strong> variable (número de variables restringidas con el<strong>la</strong> y anteriores en el orden).<br />
Cuando <strong>la</strong> anchura de <strong>la</strong> variable es pequeña, este proceso se puede realizar, pero<br />
si <strong>la</strong> anchura es grande el coste es prohibitivo. Por otra parte, asignar una variable<br />
modifica <strong>la</strong> topología del grafo una vez propagado el efecto de <strong>la</strong> asignación, por lo<br />
que se puede utilizar <strong>para</strong> disminuir <strong>la</strong> anchura de ciertas variables.<br />
El algoritmo V ES combina estas ideas, usando un orden estático de variables.<br />
Este algoritmo es dado en <strong>la</strong> Figura 2.12. Se trata de <strong>la</strong> función booleana<br />
VES(S, k, P, F, E, D, C), que recibe como parámetros el procedimiento S de búsque-<br />
da, el parámetro k, <strong>la</strong>s variables pasadas P , <strong>la</strong>s variables futuras F , <strong>la</strong>s variables<br />
eliminadas E, los dominios actuales D y <strong>la</strong>s restricciones actuales C.<br />
Esta función devuelve TRUE si existe una solución, en otro caso devuelve FALSE.<br />
Si el conjunto F es vacío, se ha encontrado una solución. Sino, se escoge <strong>la</strong> última<br />
variable xi de F y se calcu<strong>la</strong> su anchura. Si esta es menor o igual que k, se elimina <strong>la</strong><br />
variable con <strong>la</strong> función varelim. Sino, se realiza <strong>la</strong> búsqueda sobre los valores de <strong>la</strong><br />
variable con <strong>la</strong> función varbranch. Cuando se realizan con éxito, ambas funciones<br />
l<strong>la</strong>man a <strong>la</strong>s funciones VES con el sub problema que queda.
50 2. Métodos <strong>para</strong> resolver Problemas tipo Job Shop<br />
( ) D E F P k C<br />
Function VES , , , , , ,<br />
IfF=<br />
= ∅ Then return TRUE<br />
Else<br />
xultima( )<br />
= ∈ \ ∈<br />
IfBi≤<br />
Then<br />
, , , , , , ,<br />
Else<br />
, , , , , , ,<br />
End If<br />
End If<br />
End Function<br />
, , , , , ,<br />
F<br />
,<br />
Bj<br />
=<br />
k<br />
∪<br />
S<br />
S−<br />
i<br />
{ }<br />
Si<br />
R>< R<br />
Si<br />
AA⎜⎝⎛RS ∈⎟⎠⎞ Bji<br />
Si<br />
{ } i S j<br />
return varelim( ) D E F P x k C<br />
return varbranch( ) R C D E F P x k CxS<br />
i<br />
Function varelim ( ) D E F P x k C<br />
= π<br />
Forward Checking<br />
If = ∅ R A<br />
F P k SSi i D Si NewD NewD E x x k S i F i P<br />
Then return FALSE<br />
Else return VES , , , − { } , ∪ { } , , ∪ { }<br />
End Function<br />
For eacha∈<br />
, , , , , , ,<br />
do<br />
=<br />
, , , , ,<br />
If ≠ ∅ Then<br />
return VES<br />
End If<br />
End For<br />
return FALSE<br />
, , ∪ { } , − { } , , ,<br />
End Function<br />
i j A<br />
x S R<br />
i B j S∈j<br />
( ) i A<br />
Function varbranch( ) D E F P x k C<br />
NewDlookahead ( ) F P a x C<br />
( ) C<br />
Figura 2.12: Algoritmo VES<br />
R C D x E xi<br />
El algoritmo Forward Checking ha sido introducido por Haralick y Elliot en [61].<br />
Este algoritmo combina el proceso de búsqueda del algoritmo backtracking con el<br />
método inferencial de arco consistencia. El objetivo de este método es reducir el
2.6. Formu<strong>la</strong>ción de un Job Shop como un CSOP 51<br />
dominio de <strong>la</strong>s variables futuras por eliminar de los mismos aquellos valores incon-<br />
sistentes con <strong>la</strong>s variables asignadas e identificar dead-ends sin tener que probarlos<br />
a través del proceso de backtracking.<br />
Considerando un árbol de búsqueda en el cual cada nodo representa una variable<br />
instanciada, el algoritmo Forward Checking sigue una búsqueda en profundidad,<br />
realizando en cada nodo un proceso de arco consistencia entre <strong>la</strong> variable actual y<br />
variables futuras (aún no instanciadas). En el caso de restricciones binarias, tras<br />
asignar una variable, se eliminan de los dominios de <strong>la</strong>s variables futuras los valores<br />
incompatibles con aquel<strong>la</strong> recién asignada, según <strong>la</strong>s restricciones que <strong>la</strong>s incluyen<br />
en su ámbito.<br />
( ) n<br />
FC { }<br />
D Past i i aD<br />
Function , , = ,...,<br />
For eacha∈<br />
do<br />
C ij ij cf cf n i n x 1 NewD NewD x Past i+1 Ifi= Then<br />
return TRUE<br />
Else<br />
= \ ∈ , < NewDAC = ( { ,..., } , { } , + ,..., } , )<br />
If ≠ ∅ Then<br />
If FC ( , ∪ { i, } ) Then return TRUE<br />
End If<br />
End If<br />
End For<br />
End Function<br />
xi=n<br />
{ } i C c c j<br />
Figura 2.13: Algoritmo de Forward Checking<br />
En <strong>la</strong> Figura 2.13 se representa el algoritmo Forward Checking <strong>para</strong> CSPs bina-<br />
rios con una función boolena FC(i, P ast, D = {Di, ..., Dn}). La función recibe como<br />
D Di<br />
parámetros el índice i, que identifica <strong>la</strong> variable actual, el conjunto de variables<br />
asignadas P ast, y el conjunto de dominios de <strong>la</strong>s variables futuras, D.<br />
La función FC devuelve TRUE si <strong>para</strong> cada variable ha sido posible hal<strong>la</strong>r un valor<br />
de su dominio, tal que <strong>la</strong> variable actual haya sido arco consistente en re<strong>la</strong>ción a<br />
cada variable incluida en P ast y en re<strong>la</strong>ción a cada variable futura. De no ser así,<br />
<strong>la</strong> función FC devuelve FALSE.<br />
C D D a x i<br />
Si xi es <strong>la</strong> ultima variable, significa que se ha hal<strong>la</strong>do una solución, ya que los
52 2. Métodos <strong>para</strong> resolver Problemas tipo Job Shop<br />
valores de su dominio son arco consistentes con <strong>la</strong>s variables previamente asignadas.<br />
Si no es <strong>la</strong> última variable, <strong>la</strong> función AC({xi, ..., xn}, {{a}, Di+1, ..., Dn}, Ccf ) realiza<br />
un proceso de arco consistencia considerando el subconjunto de restricciones Ccf =<br />
{cij\cij ∈ C, i < j}, formado por aquel<strong>la</strong>s restricciones que conectan <strong>la</strong> variable<br />
actual con <strong>la</strong>s futuras. Como resultado, se obtienen los nuevos dominios futuros<br />
NewD, eliminando aquellos valores arco inconsistentes con el recién asignado.<br />
Si ningún dominio futuro resulta vacío, se realiza <strong>la</strong> l<strong>la</strong>mada recursiva, incluyendo<br />
xi en P ast con los nuevos dominios NewD. Si se han probado todos los valores de<br />
xi sin éxito, no existe solución que incluya a P ast.<br />
Bacchus y Grove, en [5] realizan un estudio teórico del algoritmo Forward Check-<br />
ing. Dent y Mercer describen una modificación posible al algoritmo Forward Check-<br />
ing en [34], de tal forma que se realicen menos verificaciones de arco consistencia,<br />
con el riesgo de que un mayor backtracking pueda ocurrir.<br />
MAC: Manteniendo Arco Consistencia<br />
El algoritmo MAC (acrónimo de Maintaining Arc Consistency) propuesto por<br />
Sabin y Freuder en [106], mantiene <strong>la</strong> arco consistencia en los sub problemas que<br />
genera. Nos referimos a sub problemas, porque al menos el dominio de una variable<br />
ha sido modificado a un solo valor antes de realizar <strong>la</strong> operación de arco consistencia.<br />
Dicha modificación es llevada a cabo <strong>para</strong> comprobar si el único valor es consistente<br />
con <strong>la</strong>s asignaciones posibles del resto de variables.<br />
En <strong>la</strong> Figura 2.14 se describe el algoritmo MAC por medio de <strong>la</strong> función booleana<br />
MAC(i, D), <strong>la</strong> cual recibe como parámetros el índice i de <strong>la</strong> variable actual y el vector<br />
D = [D1, ..., Dn], correspondiente a todos los dominios del problema.<br />
La función MAC(i, D) devuelve TRUE si existe una solución entre los valores de D,<br />
de no ser así, devuelve FALSE.<br />
En este algoritmo, asignar una variable es equivalente a reducir su dominio a<br />
un solo valor. Inicialmente, el algoritmo realiza una copia de cada dominio Dj de<br />
<strong>la</strong>s variables futuras xj (aún no instanciadas), al conjunto de valores auxiliar D ′ j ,<br />
i < j ≤ n. La función MAC(i, D) va probando los valores posibles de xi. Para cada<br />
valor a de xi, el algoritmo considera dos posibilidades:<br />
1. D ′ i = {a} (xi toma el valor a). Si xi es <strong>la</strong> última variable, hemos encontrado
2.6. Formu<strong>la</strong>ción de un Job Shop como un CSOP 53<br />
( ) D D D n<br />
{ i n i j jD a<br />
Function MAC = { ,..., }<br />
For each<br />
'<br />
= doD=<br />
For eacha∈<br />
Di= { }<br />
do NewDAC<br />
+ ... 1 j<br />
i 1 NewD 1 a D Di iD i 1 NewD<br />
Ifi=<br />
Then return TRUE<br />
Else<br />
= , =<br />
'<br />
'<br />
1− ,..., , ,..., } ,<br />
IfNewDThen<br />
≠ ∅<br />
If MAC( i, + ) Then return TRUE<br />
End If<br />
i− { }<br />
D=<br />
' NewDAC = , =<br />
'<br />
'<br />
{ 1− ,..., , ,..., } ,<br />
IfNewDThen ≠ ∅ break<br />
Else<br />
End If<br />
End If<br />
each = + Dj= [ ]<br />
End For<br />
End For<br />
return FALSE<br />
End Function<br />
'n<br />
,1<br />
=i<br />
i<br />
D<br />
( ) D D D D D X n i C<br />
( ) D D D D D X n i C<br />
For do i n<br />
Figura 2.14: Algoritmo MAC<br />
... 1 j<br />
' j<br />
una solución. Si no es <strong>la</strong> última variable, <strong>la</strong> función AC(X, D, C) realiza un<br />
proceso de arco consistencia sobre el conjunto C de todas <strong>la</strong>s restricciones del<br />
problema, considerando D = [D1, ..., Di−1, D ′ i , ..., D′ n], los dominios actuales de<br />
<strong>la</strong>s variables. Como resultado, se obtienen los nuevos dominios futuros NewD,<br />
eliminando aquellos valores arcos inconsistentes. Si no hay un dominio futuro<br />
vacío, se realiza <strong>la</strong> l<strong>la</strong>mada recursiva, con los nuevos dominios NewD. Si esta<br />
l<strong>la</strong>mada devuelve TRUE, significa que se ha encontrado una solución por lo que<br />
devuelve TRUE a su vez. Si no, se continúa con <strong>la</strong> segunda opción.<br />
2. D ′ i = Di − {a} (xi no puede tomar el valor a). Tanto si existe un dominio<br />
vacío en NewD como si <strong>la</strong> l<strong>la</strong>mada recursiva retorna FALSE, a ya no es un<br />
valor posible <strong>para</strong> xi. Se realiza arco consistencia AC(X, D, C) sobre el nuevo<br />
dominio de xi. Como resultado AC calcu<strong>la</strong> los nuevos dominios futuros NewD,<br />
eliminando aquellos valores arco inconsistentes. Si no hay un dominio futuro<br />
vacío, se copian los nuevos dominios futuros en D ′ j<br />
y se continúa el bucle. En
54 2. Métodos <strong>para</strong> resolver Problemas tipo Job Shop<br />
caso contrario, hay que salir del bucle, no hay solución en <strong>la</strong> rama actual que<br />
incluya un valor de D ′ i . Cuando se sale del bucle, se han probado todas <strong>la</strong>s<br />
opciones <strong>para</strong> xi sin éxito, por lo que no hay solución en <strong>la</strong> rama actual.<br />
2.6.4. Estrategias Look Back<br />
Esta sección introduce otra c<strong>la</strong>se de esquemas de mejora que intenta contrar-<br />
restar <strong>la</strong> propensión del backtracking <strong>para</strong> re descubrir repetidamente <strong>la</strong>s mismas<br />
inconsistencias y éxitos parciales durante <strong>la</strong> búsqueda. Estos esquemas son invoca-<br />
dos cuando el algoritmo llega a un dead-end y se pre<strong>para</strong> <strong>para</strong> deshacer una o varias<br />
asignaciones realizadas previamente. Colectivamente, son l<strong>la</strong>mados esquemas look-<br />
back, y pueden ser divididos en dos categorías principales. El objetivo del primer<br />
tipo es mejorar sobre <strong>la</strong> política standard de retroceder solo un paso hacia atrás<br />
cuando se encuentra un dead-end. Analizando <strong>la</strong>s razones del dead-end, puntos de<br />
backtracking sin relevancia pueden ser evitados frecuentemente y hacer que el algo-<br />
ritmo retroceda directamente al origen del fallo, en lugar de retroceder so<strong>la</strong>mente<br />
hasta <strong>la</strong> variable anterior según el ordenamiento que se sigue. El objetivo del segundo<br />
tipo del esquema look-back l<strong>la</strong>mado almacenamiento de restricciones o aprendizaje<br />
incorrecto es guardar <strong>la</strong>s razones por <strong>la</strong>s que se produjeron el dead-end en <strong>la</strong> forma<br />
de nuevas restricciones, tal que los mismos conflictos no aparezcan otra vez más<br />
tarde en <strong>la</strong> búsqueda. En esta sección se describirán varios algoritmos que ejempli-<br />
fican algunas de <strong>la</strong>s muchas formas en <strong>la</strong>s cuales estas dos categorías de esquemas<br />
de mejora pueden ser implementadas.<br />
Backmarking<br />
El algoritmo Backmarking es descrito en detalle en los trabajos publicados por<br />
Gaschning en [46], Dechter en [32], o por Prosser en [104].<br />
Al producirse un dead-end el algoritmo backtracking retrocede, por lo tanto <strong>la</strong><br />
asignación de una misma variable puede ser realizada más de una vez. Considere que<br />
se desea asignar un valor a <strong>la</strong> variable xi, y dicha asignación no es <strong>la</strong> primera vez que<br />
se realiza durante <strong>la</strong> búsqueda. La asignación de xp es anterior a <strong>la</strong> asignación de xi<br />
y entre <strong>la</strong>s variables que han sido modificadas desde <strong>la</strong> última asignación de xi, xp<br />
es <strong>la</strong> variable que aparece más temprano en el ordenamiento. Mediante <strong>la</strong> técnica
2.6. Formu<strong>la</strong>ción de un Job Shop como un CSOP 55<br />
Backmarking no se verificarán <strong>la</strong>s restricciones que involucren a xi y cualquier vari-<br />
able anterior a xp en el ordenamiento, ya que <strong>la</strong> verificación de restricciones dará el<br />
mismo resultado que en asignaciones previas. Backmarking lleva un rastro de los<br />
valores que incumplen determinadas restricciones entre una variable y otra, de tal<br />
forma que cuando se deba volver sobre <strong>la</strong> misma variable, se conoce cuáles son <strong>la</strong>s<br />
restricciones que ya no necesitan ser verificadas, siempre y cuando <strong>la</strong> asignación de<br />
<strong>la</strong> otra variable que aparece antes en el ordenamiento no haya sido modificada.<br />
Si en asignaciones previas <strong>la</strong> asignación 〈xi, y〉 ha incumplido una o más re-<br />
stricciones R {i}∪S, S ⊂ X del problema, y ninguna de <strong>la</strong>s variables en S han sido<br />
modificadas desde entonces, cuando se vuelve a asignar un valor a xi no se asigna<br />
el valor y sino el último valor válido asignado, ya que este deberá ser igualmente<br />
válido. Con ello se evita realizar nuevamente <strong>la</strong> verificación de restricciones entre<br />
ciertas variables del problema cuando se regresa de un backtracking.<br />
Backjumping<br />
Esquemas Backjumping son una de <strong>la</strong>s herramientas primarias <strong>para</strong> reducir <strong>la</strong><br />
desafortunada tendencia de los algoritmos de backtracking a repetir los mismos<br />
dead-ends. Un dead-end ocurre si a xi no le quedan valores en su dominio que<br />
permitan una asignación consistente con respecto a <strong>la</strong> solución parcial actual, en<br />
cuyo caso el algoritmo de backtracking retrocederá a <strong>la</strong> variable xi−1. Suponga que<br />
un nuevo valor <strong>para</strong> xi−1 existe y que no existe ninguna restricción en cuyo alcance<br />
se encuentren <strong>la</strong>s variables xi y xi−1. En este caso xi−1 no puede ser <strong>la</strong> causa del<br />
dead-end en xi, por lo que un dead-end será alcanzado nuevamente en xi por cada<br />
valor de xi−1 hasta que todos los valores de xi−1 hayan sido probados.<br />
Esta situación puede ser mejorada por identificar <strong>la</strong> variable inculpada respon-<br />
sable del dead-end, y luego inmediatamente saltar hacia atrás y re instanciar <strong>la</strong><br />
variable inculpada, en lugar de instanciar repetidamente <strong>la</strong> variable previa cronológi-<br />
camente. La identificación de variables inculpadas está basada en <strong>la</strong> noción de con-<br />
juntos de conflicto.<br />
Entre <strong>la</strong>s variantes de Backjumping, se encuentran Backjumping de Gaschnig<br />
[47], Backjumping basado en grafos descrito por Dechter en [31], y Backjumping<br />
dirigido por conflictos descrito por Prosser en [103].
56 2. Métodos <strong>para</strong> resolver Problemas tipo Job Shop<br />
Algoritmos de Aprendizaje<br />
Una determinada combinación no factible de valores asignada a determinadas<br />
variables, cuya asignación es realizada en base a un cierto ordenamiento, es de-<br />
nominado el conjunto de conflictos. Esta asignación puede ser repetida varias veces<br />
durante <strong>la</strong> búsqueda si el algoritmo explora diferentes caminos dentro del grafo de<br />
búsqueda. Si se restringe de forma explícita, <strong>la</strong> combinación que causó el conflicto<br />
o dead-end a medida que aparecen, se evitaría repetir <strong>la</strong> asignación. A <strong>la</strong> técnica de<br />
introducir nuevas restricciones en el modelo, con el objetivo de evitar repetir asigna-<br />
ciones que producen dead-end, se conoce como registro de restricciones o aprendizaje<br />
de restricciones.<br />
La oportunidad de saber qué restricción se debe agregar se presenta siempre y<br />
cuando el algoritmo backtracking encuentra un dead-end, esto es, cuando <strong>la</strong> instan-<br />
ciación actual ai tiene un conflicto con xi+1. Si el ai contiene uno o más subconjuntos<br />
que están en conflicto con xi+1, registrar estos conjuntos de conflictos más pequeños<br />
como restricciones puede resultar útil durante lo que quede de <strong>la</strong> búsqueda, estados<br />
futuros pueden contener estos conjuntos de conflictos, así como también excluirían<br />
conjuntos de conflictos más grandes que lo contengan.<br />
En los algoritmos de aprendizaje, el ahorro producido por una búsqueda que<br />
poda los caminos que llevan a un dead-end debe estar equilibrado con <strong>la</strong> sobre carga<br />
de procesar en cada generación de un nodo un conjunto más grande de restricciones.<br />
Los algoritmos de aprendizaje pueden estar caracterizados por <strong>la</strong> forma en <strong>la</strong><br />
cual identifican los conjuntos de conflictos más pequeños. El aprendizaje puede ser<br />
profundo o superficial. El primero insiste en registrar únicamente restricciones que<br />
evitan obtener los conjuntos de conflictos mínimos, lo cual requiere de un análisis más<br />
costoso. El segundo registra restriccione aunque estas no representen el conjunto de<br />
conflictos mínimos que se desee evitar. Los algoritmos de aprendizaje también están<br />
caracterizados por <strong>la</strong> forma en que limitan <strong>la</strong> aridad de <strong>la</strong>s restricciones generadas.<br />
Las restricciones cuyo ámbito incluye a muchas variables, son generalmente menos<br />
aplicables.<br />
Existen tres tipos primarios de aprendizaje: graph-based learning (Dechter [31])<br />
deep learning, y jumpback learning (Frost [43]). Cada uno de estos puede ser re-<br />
stringido por limitar <strong>la</strong> cantidad de restricciones que va agregando, lo cual es referido<br />
como aprendizaje acotado. Estos algoritmos ejemplifican <strong>la</strong>s principales alternativas,
2.6. Formu<strong>la</strong>ción de un Job Shop como un CSOP 57<br />
aunque existen numerosas variaciones posibles.<br />
2.6.5. Ordenamiento de Valores<br />
También es posible utilizar <strong>la</strong> información reunida de <strong>la</strong> propagación de restric-<br />
ciones <strong>para</strong> construir un ranking ordenado de valores prometedores que no han sido<br />
rechazados mediante <strong>la</strong> estimación de sus correspondientes probabilidades de con-<br />
ducir hacia una solución. En el trabajo de Dechter [32] se enumeran <strong>la</strong>s siguientes<br />
heurísticas como ejemplo de heurísticas de ordenación de valores.<br />
Mínimo Conflictos (MC). Elige el valor que elimina el menor número de valores<br />
de los dominios de variables futuras. Particu<strong>la</strong>rmente, considera cada valor en<br />
el dominio de <strong>la</strong> variable actual y le asocia el número total de valores en los<br />
dominios de variables futuras con <strong>la</strong>s que tiene algún conflicto pero que son<br />
consistentes con <strong>la</strong> asignación parcial actual. Los valores de <strong>la</strong> variable actual<br />
son luego seleccionados en orden creciente teniendo en cuenta el valor de este<br />
contador.<br />
Dominio de Tamaño Máximo (MD). Está inspirada por <strong>la</strong> intuición de que<br />
es más probable que un sub problema que incluya variables con dominios<br />
pequeños sea inconsistente. Esta heurística prefiere el valor de <strong>la</strong> variable ac-<br />
tual que cree el dominio mínimo de mayor tamaño entre los dominios mínimos<br />
de <strong>la</strong>s variables futuras. Por ejemplo, si después de instanciar xi con valor a el<br />
min j∈{i+1,...,n}|D ′ j | es 2, y con xi = b, el mínimo es 1, entonces a será preferida.<br />
Soluciones Estimadas (ES). La heurística ES intenta estimar el número de<br />
soluciones en cada sub problema potencial. ES calcu<strong>la</strong> un límite superior <strong>para</strong><br />
el número de soluciones multiplicando el tamaño de los dominios de <strong>la</strong>s vari-<br />
ables futuras, luego de eliminar de los mismos aquellos valores que producen<br />
inconsistencia con el valor asignado a <strong>la</strong> variable actual. El valor que con-<br />
duce al límite superior más alto sobre el número de soluciones es seleccionado<br />
primero.
58 2. Métodos <strong>para</strong> resolver Problemas tipo Job Shop<br />
2.6.6. Ordenamiento de Variables<br />
Una red de restricciones puede tener diferentes espacios de búsqueda, dependi-<br />
endo del ordenamiento de <strong>la</strong>s variables. Ya que el espacio de búsqueda incluye todas<br />
<strong>la</strong>s soluciones, una forma de evaluar si su tamaño es excesivo es contando el número<br />
de dead-ends que deja. El ordenamiento de variables puede ser:<br />
Estático: en el cual el orden de <strong>la</strong>s variables es especificado antes que se inicie<br />
<strong>la</strong> búsqueda, y no es cambiado mientras esta se realiza, o bien<br />
Dinámico:en el cual <strong>la</strong> elección de <strong>la</strong> siguiente variable a ser considerada en<br />
algún punto de <strong>la</strong> búsqueda depende del estado actual de <strong>la</strong> misma. Haralick<br />
y Elliot en [61] así como Purdom en [105] describen <strong>la</strong>s propiedades y <strong>la</strong>s<br />
ventajas de un ordenamiento dinámico de variables.<br />
Cuando se determina en forma dinámica el ordenamiento de <strong>la</strong>s variables du-<br />
rante <strong>la</strong> búsqueda, una heurística conocida como el primero que fal<strong>la</strong> es descrita<br />
en el trabajo de Haralick y Elliot en [61]. Consiste en seleccionar como <strong>la</strong> siguiente<br />
variable aquel<strong>la</strong> que más restrinja el espacio de búsqueda. Siendo iguales todos los<br />
otros factores, <strong>la</strong> variable con el menor número de valores viables en su dominio<br />
actual tendrá el menor número de sub árboles cuyas raíces corresponderán a estos<br />
valores, y por lo tanto el menor espacio de búsqueda bajo ellos. Bacchus y Van Run<br />
proponen en [6] <strong>la</strong> heurística MRV <strong>para</strong> realizar un ordenamiento dinámico de vari-<br />
ables. En esta heurística, <strong>la</strong> siguiente variable a ser seleccionada es aquel<strong>la</strong> en cuyo<br />
dominio exista <strong>la</strong> menor cantidad de valores consistentes considerando <strong>la</strong>s variables<br />
previamente instanciadas. Otras heurísticas de ordenamiento dinámico son: BZ [14],<br />
GEL [48], KP [49].<br />
Debido a que el ordenamiento de valores y variables puede tener un efecto<br />
dramático en <strong>la</strong> <strong>eficiencia</strong> de un algoritmo de backtracking, y considerando también<br />
que hal<strong>la</strong>r una heurística que trabaje bien en todos los casos es poco probable, una<br />
estrategia alternativa explora <strong>la</strong> aleatoriedad en <strong>la</strong> selección de variables y valores.<br />
Por ejemplo, cuando el algoritmo necesita seleccionar una variable, puede utilizar<br />
una heurística <strong>para</strong> <strong>la</strong> selección de <strong>la</strong> siguiente variable, pero puede romper los em-<br />
pates en forma aleatoria. Lo mismo puede darse <strong>para</strong> <strong>la</strong> selección de valores de una<br />
variable, puede ser seleccionado en forma aleatoria, o puede utilizarse <strong>la</strong> aleatoriedad
2.7. Métodos Heurísticos Genéricos 59<br />
<strong>para</strong> romper empates entre valores luego de aplicar alguna de <strong>la</strong>s heurísticas <strong>para</strong><br />
seleccionar valores <strong>para</strong> una variable.<br />
2.7. Métodos Heurísticos Genéricos<br />
2.7.1. Búsqueda Beam<br />
Los <strong>métodos</strong> branch and bound enumerativos son actualmente uno de los méto-<br />
dos más utilizados <strong>para</strong> obtener soluciones óptimas a problemas de scheduling NP-<br />
hard. La desventaja del branch and bound es que puede ser un método que consuma<br />
mucho tiempo cuando el número de nodos a explorar es elevado. El método Beam<br />
Search es un derivado del branch and bound, el cual trata de eliminar ramas de<br />
forma inteligente, tal que no todas <strong>la</strong>s ramas del árbol deban ser exploradas <strong>para</strong><br />
hal<strong>la</strong>r una solución al problema. El tiempo de computo es menor pero no garantiza<br />
que <strong>la</strong> solución hal<strong>la</strong>da sea <strong>la</strong> solución óptima.<br />
Con <strong>la</strong> búsqueda Beam únicamente los nodos más prometedores del nivel k son<br />
seleccionados <strong>para</strong> ser expandidos. Los nodos restantes en ese nivel son descartados<br />
permanentemente.<br />
Se denomina anchura beam al número de nodos seleccionados en el nivel k <strong>para</strong><br />
ser expandidos en los siguientes niveles. El proceso que decide qué nodos seleccionar<br />
es un componente crucial de este método. Evaluar cada nodo cuidadosamente, <strong>para</strong><br />
obtener una estimación lo más exacta posible del potencial de todos sus descen-<br />
dientes, puede consumir una cantidad de tiempo muy elevada. Debe haber una<br />
negociación entre una predicción rudimentaria, que puede ser muy rápida, pero<br />
también puede descartar soluciones buenas, y entre una predicción muy minuciosa,<br />
que aunque puede dar mejores resultados, puede consumir una cantidad de tiempo<br />
muy elevada.<br />
En [98], Pinedo propone una aproximación de dos etapas. En <strong>la</strong> primera, se<br />
realiza una estimación rudimentaria. A partir de estos resultados se seleccionan n<br />
nodos, y con los n nodos seleccionados se realiza una estimación más minuciosa y<br />
según estos segundos resultados son seleccionados los m nodos cuyas ramas serán<br />
generadas. El número de nodos seleccionados en <strong>la</strong> primera etapa se conoce como <strong>la</strong><br />
anchura de filtrado. La anchura de filtrado debe ser mayor a <strong>la</strong> anchura beam.
60 2. Métodos <strong>para</strong> resolver Problemas tipo Job Shop<br />
Este método no realiza una búsqueda completa, por lo tanto <strong>la</strong> solución óptima<br />
no puede ser garantizada. A cambio, propone una buena solución en un periodo de<br />
tiempo menor. Consideramos que <strong>la</strong> calidad de <strong>la</strong> solución dependerá fundamental-<br />
mente de <strong>la</strong> heurística empleada <strong>para</strong> seleccionar el sub conjunto de estados que<br />
serán revisados durante <strong>la</strong> búsqueda. Es un método práctico, ya que una búsqueda<br />
completa en muchos problemas combinatorios no es viable, pero como todo método<br />
de búsqueda local, <strong>la</strong> c<strong>la</strong>ve del éxito en su implementación se basa en <strong>la</strong> elección<br />
correcta de aquellos nodos que serán expandidos, y de aquel<strong>la</strong>s ramas del árbol de<br />
búsqueda correspondiente, que nunca serán generadas.<br />
2.7.2. Simu<strong>la</strong>ted Annealing<br />
El algoritmo Simu<strong>la</strong>ted Annealing es un algoritmo del tipo mejora que es con-<br />
ceptualmente diferente a los algoritmos del tipo constructivo. Ha sido introducido<br />
en <strong>la</strong> literatura por Cerny en [24] y por Kirkpatrick en [73].<br />
Este método selecciona en forma arbitraria una solución e intenta mejorar<strong>la</strong> me-<br />
diante determinadas modificaciones realizadas en <strong>la</strong> misma. Los procedimientos de<br />
búsqueda local son una importante c<strong>la</strong>se de algoritmos tipo mejora. Un procedimien-<br />
to de búsqueda local no garantiza una solución óptima. Usualmente intenta encon-<br />
trar una solución mejor que <strong>la</strong> actual por explorar su correspondiente vecindario.<br />
Dos soluciones son vecinas si una de el<strong>la</strong>s puede ser obtenida a través de modifica-<br />
ciones bien definidas de <strong>la</strong> otra. En cada iteración un procedimiento de búsqueda<br />
local lleva a cabo una búsqueda dentro del vecindario y evalúa <strong>la</strong>s soluciones hal-<br />
<strong>la</strong>das. El procedimiento acepta o rechaza una solución candidata <strong>para</strong> ser <strong>la</strong> siguiente<br />
solución considerada referencia en <strong>la</strong> búsqueda (esto significa que a partir de dicha<br />
solución se creará el vecindario), basándose en un criterio de aceptación/rechazo.<br />
Los procedimientos de búsqueda local pueden ser com<strong>para</strong>dos sobre los siguientes<br />
criterios de diseño:<br />
(i) La representación de <strong>la</strong> solución que sea apropiada <strong>para</strong> el procedimiento.<br />
(ii) El diseño del vecindario.<br />
(iii) El proceso de búsqueda dentro del vecindario.<br />
(iv) El criterio de aceptación/rechazo.<br />
El procedimiento Simu<strong>la</strong>ted Annealing va a través de un número de iteraciones.
2.7. Métodos Heurísticos Genéricos 61<br />
En <strong>la</strong> iteración k del procedimiento, existe una solución a <strong>la</strong> cual denominamos Sk y<br />
una solución que corresponde a <strong>la</strong> mejor solución obtenida hasta entonces, a <strong>la</strong> cual<br />
denominamos S0. Considere que G(Sk) y G(S0) denotan los correspondientes valores<br />
de <strong>la</strong> función objetivo <strong>para</strong> <strong>la</strong> solución Sk y <strong>para</strong> <strong>la</strong> solución S0, respectivamente y<br />
que G(Sk) ≥ G(S0) (función objetivo consiste en minimizar). En <strong>la</strong> iteración k,<br />
una búsqueda <strong>para</strong> una nueva solución es conducida dentro del vecindario de Sk.<br />
Primero, una solución a <strong>la</strong> cual se denomina solución candidata, Sc, es seleccionada<br />
del vecindario. Esta selección de una solución candidata puede ser realizada en forma<br />
aleatoria o en forma organizada, posiblemente secuencial. Si G(Sc) < G(Sk), <strong>la</strong><br />
siguiente solución de referencia pasará a ser Sc, esto es Sk+1 = Sc. Si G(Sc) < G(S0),<br />
entonces S0 = Sc. Sin embargo si G(Sc) ≥ G(Sk), <strong>la</strong> solución candidata Sc pasará a<br />
ser <strong>la</strong> solución de referencia en <strong>la</strong> siguiente iteración con probabilidad<br />
P (Sk, Sc) = exp( G(Sk) − G(Sc)<br />
)<br />
Con probabilidad 1 − P (Sk, Sc) <strong>la</strong> solución candidata Sc es rechazada en favor de <strong>la</strong><br />
solución de referencia actual Sk, estableciendo Sk+1 = Sk. Los valores<br />
βk<br />
β1 ≥ β2 ≥ ... > 0<br />
son parámetros de control referidos como parámetros de enfriamiento. Frecuente-<br />
mente βk pasa a ser a k <strong>para</strong> algún valor de a entre 0 y 1.<br />
Están permitidos los movimientos a soluciones peores. La razón <strong>para</strong> permitir<br />
estos movimientos es dar al procedimiento <strong>la</strong> oportunidad de salir de un mínimo local<br />
y encontrar una mejor solución en iteraciones posteriores. Debido a que βk decrece<br />
con k, <strong>la</strong> probabilidad de aceptación de una solución que no mejore <strong>la</strong> actual es<br />
más baja a medida que aumenta el número de iteraciones del proceso de búsqueda.<br />
La definición de <strong>la</strong> probabilidad de aceptación también asegura que si un vecino<br />
es significativamente peor, su probabilidad de aceptación es muy baja y es poco<br />
probable que el movimiento a esta solución sea realizado.<br />
Varios criterios de <strong>para</strong>da son usados <strong>para</strong> este procedimiento. Una forma es<br />
dejar al procedimiento correr por un número específico de iteraciones. Otro criterio<br />
es dejar al procedimiento correr hasta que ninguna mejora sea obtenida en un número<br />
determinado de iteraciones sucesivas.
62 2. Métodos <strong>para</strong> resolver Problemas tipo Job Shop<br />
2.7.3. Búsqueda Tabú<br />
La búsqueda Tabú es en muchas formas simi<strong>la</strong>r al método Simu<strong>la</strong>ted Annealing,<br />
por ejemplo, también es posible el movimiento desde una solución a otra peor. Por<br />
cada solución S se define un vecindario, esto es: conjunto de soluciones que pueden<br />
ser generadas a partir de S a través de modificaciones bien definidas realizadas<br />
en <strong>la</strong> misma. Un aspecto importante del método es <strong>la</strong> forma en que se realiza <strong>la</strong><br />
búsqueda de un vecino dentro del vecindario, como un candidato potencial <strong>para</strong> ser<br />
<strong>la</strong> siguiente solución a <strong>la</strong> cual se mueva el procedimiento. El siguiente vecino puede<br />
ser elegido en forma aleatoria o en forma organizada. La diferencia básica entre<br />
Simu<strong>la</strong>ted Annealing y búsqueda Tabú descansa en el mecanismo que es utilizado<br />
<strong>para</strong> aceptar o rechazar una solución candidata. En <strong>la</strong> búsqueda Tabú el mecanismo<br />
no es probabilístico sino más bien determinista. En cualquier etapa del proceso, es<br />
mantenida una lista tabú de mutaciones, <strong>la</strong>s cuales no están permitidas en el proceso.<br />
La lista tabú tiene un número fijo de entradas lo cual depende de <strong>la</strong> aplicación. Cada<br />
vez que se realiza un movimiento en <strong>la</strong> solución actual, se ingresa el movimiento<br />
inverso en el tope de <strong>la</strong> lista tabú; el resto de entradas son movidas una posición<br />
menos en <strong>la</strong> lista, y el último elemento es eliminado de <strong>la</strong> misma. El movimiento<br />
inverso es puesto puesto en <strong>la</strong> lista tabú <strong>para</strong> evitar volver a un mínimo local que<br />
haya sido visitado antes. Este método de búsqueda fue propuesto por Glover en [50].<br />
Tutoriales acerca de este método han sido publicados posteriormente por Glover en<br />
[51] y junto con Talliard en [53]. Glover y Laguna presentan un trabajo en el cual<br />
describen <strong>la</strong>s principales características y aplicaciones de este método en [52].<br />
2.7.4. Algoritmos Genéticos<br />
Los algoritmos genéticos han sido introducidos por John Hol<strong>la</strong>nd en 1975 [66].<br />
Posteriormente Goldberg [54], [55], uno de sus estudiantes también co<strong>la</strong>boró <strong>para</strong><br />
que pudieran ser utilizados en <strong>la</strong> resolución de problemas más complejos.<br />
Un algoritmo genético (o AG <strong>para</strong> abreviar) es una técnica de programación<br />
que imita a <strong>la</strong> evolución biológica como estrategia <strong>para</strong> resolver problemas. Dado<br />
un problema específico a resolver, <strong>la</strong> entrada del AG es un conjunto de soluciones<br />
potenciales a ese problema, codificadas de alguna manera, y una métrica l<strong>la</strong>mada<br />
función de aptitud que permite evaluar cuantitativamente a cada candidata. Estas
2.7. Métodos Heurísticos Genéricos 63<br />
candidatas pueden ser soluciones que ya se sabe que funcionan, con el objetivo de<br />
que el AG <strong>la</strong>s mejore, pero se suelen generar aleatoriamente.<br />
Luego el AG evalúa cada candidata de acuerdo con <strong>la</strong> función de aptitud. En<br />
un acervo de candidatas generadas aleatoriamente, por supuesto, <strong>la</strong> mayoría no<br />
funcionarán en absoluto, y serán eliminadas. Sin embargo, por puro azar, unas pocas<br />
pueden ser prometedoras -pueden mostrar actividad, aunque sólo sea actividad débil<br />
e imperfecta, hacia <strong>la</strong> solución del problema.<br />
Estas candidatas prometedoras se conservan y se les permite reproducirse. Se<br />
realizan múltiples copias de el<strong>la</strong>s, pero <strong>la</strong>s copias no son perfectas; se introducen<br />
cambios aleatorios durante el proceso de copia. Luego, esta descendencia digital<br />
prosigue con <strong>la</strong> siguiente generación, formando un nuevo acervo de soluciones can-<br />
didatas, y son sometidas a una ronda de evaluación de aptitud. Las candidatas que<br />
han empeorado o no han mejorado con los cambios en su código son eliminadas de<br />
nuevo; pero, de nuevo, por puro azar, <strong>la</strong>s variaciones aleatorias introducidas en <strong>la</strong><br />
pob<strong>la</strong>ción pueden haber mejorado a algunos individuos, convirtiéndolos en mejores<br />
soluciones del problema, más completas o más eficientes. De nuevo, se seleccionan y<br />
copian estos individuos vencedores hacia <strong>la</strong> siguiente generación con cambios aleato-<br />
rios, y el proceso se repite. Las expectativas son que <strong>la</strong> aptitud media de <strong>la</strong> pob<strong>la</strong>ción<br />
se incrementará en cada ronda y, por tanto, repitiendo este proceso cientos o miles<br />
de rondas, pueden descubrirse soluciones muy buenas del problema.<br />
Antes de que un algoritmo genético pueda ponerse a trabajar en un problema, se<br />
necesita un método <strong>para</strong> codificar <strong>la</strong>s soluciones potenciales del problema de forma<br />
que un ordenador pueda procesar<strong>la</strong>s. Un enfoque común es codificar <strong>la</strong>s soluciones<br />
como cadenas binarias: secuencias de 1s y 0s, donde el dígito de cada posición<br />
representa el valor de algún aspecto de <strong>la</strong> solución. Otro método simi<strong>la</strong>r consiste<br />
en codificar <strong>la</strong>s soluciones como cadenas de enteros o números decimales, donde<br />
cada posición, de nuevo, representa algún aspecto particu<strong>la</strong>r de <strong>la</strong> solución. Este<br />
método permite una mayor precisión y complejidad que el método com<strong>para</strong>tivamente<br />
restringido de utilizar sólo números binarios, y a menudo está intuitivamente más<br />
cerca del espacio de problemas (Fleming y Purshouse [40]).<br />
Esta técnica se utilizó, por ejemplo, en el trabajo de Steffen Schulze-Kremer,<br />
que escribió un algoritmo genético <strong>para</strong> predecir <strong>la</strong> estructura tridimensional de una<br />
proteína, basándose en <strong>la</strong> secuencia de aminoácidos que <strong>la</strong> componen (Mitchell [89]).
64 2. Métodos <strong>para</strong> resolver Problemas tipo Job Shop<br />
Un tercer método consiste en representar a los individuos de un AG como cadenas<br />
de letras, donde cada letra, de nuevo, representa un aspecto específico de <strong>la</strong> solución.<br />
Un ejemplo de esta técnica es el método basado en codificación gramática de Hiroaki<br />
Kitano, en el que a un AG se le encargó <strong>la</strong> tarea de evolucionar un sencillo conjunto<br />
de reg<strong>la</strong>s l<strong>la</strong>madas gramática libre de contexto, que a su vez se utilizaban <strong>para</strong><br />
generar redes neuronales <strong>para</strong> una variedad de problemas.<br />
La virtud de estos tres <strong>métodos</strong> es que facilitan <strong>la</strong> definición de operadores que<br />
causen los cambios aleatorios en <strong>la</strong>s candidatas seleccionadas: cambiar un 0 por<br />
un 1 o viceversa, sumar o restar al valor de un número una cantidad elegida al<br />
azar, o cambiar una letra por otra. Otra estrategia, desarrol<strong>la</strong>da principalmente por<br />
John Koza, de <strong>la</strong> Universidad de Stanford, y denominada programación genética,<br />
representa a los programas como estructuras de datos ramificadas l<strong>la</strong>madas árboles<br />
(Koza et. al. [74]). En este método, los cambios aleatorios pueden generarse cambiado<br />
el operador o alterando el valor de un cierto nodo del árbol, o sustituyendo un<br />
subárbol por otro.<br />
Es importante seña<strong>la</strong>r que los algoritmos evolutivos no necesitan representar<br />
<strong>la</strong>s soluciones candidatas como cadenas de datos de una longitud fija. Algunos <strong>la</strong>s<br />
representan de esta manera, pero otros no; por ejemplo, <strong>la</strong> codificación gramatical de<br />
Kitano, explicada arriba, puede esca<strong>la</strong>rse eficientemente <strong>para</strong> crear redes neuronales<br />
grandes y complejas, y los árboles de programación genética de Koza pueden crecer<br />
arbitrariamente tanto como sea necesario <strong>para</strong> resolver cualquier problema que se<br />
les pida.<br />
Un algoritmo genético puede utilizar muchas técnicas diferentes <strong>para</strong> seleccionar<br />
a los individuos que deben copiarse hacia <strong>la</strong> siguiente generación, a continuación se<br />
listan algunos de los más comunes.<br />
Selección elitista: se garantiza <strong>la</strong> selección de los miembros más aptos de cada<br />
generación. (La mayoría de los AGs no utilizan elitismo puro, sino que usan<br />
una forma modificada por <strong>la</strong> que el individuo mejor, o algunos de los mejores,<br />
son copiados hacia <strong>la</strong> siguiente generación en caso de que no surja nada mejor).<br />
Selección proporcional a <strong>la</strong> aptitud: los individuos más aptos tienen más prob-<br />
abilidad de ser seleccionados, pero no <strong>la</strong> certeza.<br />
Selección por rueda de ruleta: una forma de selección proporcional a <strong>la</strong> aptitud
2.7. Métodos Heurísticos Genéricos 65<br />
en <strong>la</strong> que <strong>la</strong> probabilidad de que un individuo sea seleccionado es proporcional<br />
a <strong>la</strong> diferencia entre su aptitud y <strong>la</strong> de sus competidores. (Conceptualmente,<br />
esto puede representarse como un juego de ruleta -cada individuo obtiene una<br />
sección de <strong>la</strong> ruleta, pero los más aptos obtienen secciones mayores que <strong>la</strong>s<br />
de los menos aptos. Luego <strong>la</strong> ruleta se hace girar, y en cada vez se elige al<br />
individuo que posea <strong>la</strong> sección en <strong>la</strong> que se pare <strong>la</strong> ruleta).<br />
Selección esca<strong>la</strong>da: al incrementarse <strong>la</strong> aptitud media de <strong>la</strong> pob<strong>la</strong>ción, <strong>la</strong> fuerza<br />
de <strong>la</strong> presión selectiva también aumenta y <strong>la</strong> función de aptitud se hace más<br />
discriminadora. Este método puede ser útil <strong>para</strong> seleccionar más tarde, cuando<br />
todos los individuos tengan una aptitud re<strong>la</strong>tivamente alta y sólo les distingan<br />
pequeñas diferencias en <strong>la</strong> aptitud.<br />
Selección por torneo: se eligen subgrupos de individuos de <strong>la</strong> pob<strong>la</strong>ción, y los<br />
miembros de cada subgrupo compiten entre ellos. Sólo se elige a un individuo<br />
de cada subgrupo <strong>para</strong> <strong>la</strong> reproducción.<br />
Selección por rango: a cada individuo de <strong>la</strong> pob<strong>la</strong>ción se le asigna un rango<br />
numérico basado en su aptitud, y <strong>la</strong> selección se basa en este ranking, en lugar<br />
de <strong>la</strong>s diferencias absolutas en aptitud. La ventaja de este método es que puede<br />
evitar que individuos muy aptos ganen dominancia al principio a expensas de<br />
los menos aptos, lo que reduciría <strong>la</strong> diversidad genética de <strong>la</strong> pob<strong>la</strong>ción y podría<br />
obstaculizar <strong>la</strong> búsqueda de una solución aceptable.<br />
Selección generacional: <strong>la</strong> descendencia de los individuos seleccionados en ca-<br />
da generación se convierte en toda <strong>la</strong> siguiente generación. No se conservan<br />
individuos entre <strong>la</strong>s generaciones.<br />
Selección por estado estacionario: <strong>la</strong> descendencia de los individuos selecciona-<br />
dos en cada generación vuelven al acervo genético preexistente, reemp<strong>la</strong>zando<br />
a algunos de los miembros menos aptos de <strong>la</strong> siguiente generación. Se conservan<br />
algunos individuos entre generaciones.<br />
Selección jerárquica: los individuos atraviesan múltiples rondas de selección<br />
en cada generación. Las evaluaciones de los primeros niveles son más rápidas<br />
y menos discriminatorias, mientras que los que sobreviven hasta niveles más
66 2. Métodos <strong>para</strong> resolver Problemas tipo Job Shop<br />
altos son evaluados más rigurosamente. La ventaja de este método es que<br />
reduce el tiempo total de cálculo al utilizar una evaluación más rápida y menos<br />
selectiva <strong>para</strong> eliminar a <strong>la</strong> mayoría de los individuos que se muestran poco<br />
o nada prometedores, y sometiendo a una evaluación de aptitud más rigurosa<br />
y computacionalmente más costosa sólo a los que sobreviven a esta prueba<br />
inicial.<br />
Algunos de estos <strong>métodos</strong> son mutuamente exclusivos, pero otros pueden utilizarse<br />
en combinación, algo que se hace a menudo.<br />
Una vez que <strong>la</strong> selección ha elegido a los individuos aptos, éstos deben ser al-<br />
terados aleatoriamente con <strong>la</strong> esperanza de mejorar su aptitud <strong>para</strong> <strong>la</strong> siguiente<br />
generación. Existen dos estrategias básicas <strong>para</strong> llevar esto a cabo. La primera y<br />
más sencil<strong>la</strong> se l<strong>la</strong>ma mutación. Al igual que una mutación en los seres vivos cambia<br />
un gen por otro, una mutación en un algoritmo genético también causa pequeñas<br />
alteraciones en puntos concretos del código de un individuo. El segundo método se<br />
l<strong>la</strong>ma cruce, e implica elegir a dos individuos <strong>para</strong> que intercambien segmentos de su<br />
código, produciendo una descendencia artificial cuyos individuos son combinaciones<br />
de sus padres. Este proceso pretende simu<strong>la</strong>r el proceso análogo de <strong>la</strong> recombinación<br />
que se da en los cromosomas durante <strong>la</strong> reproducción sexual. Las formas comunes<br />
de cruce incluyen al cruce de un punto, en el que se establece un punto de intercam-<br />
bio en un lugar aleatorio del genoma de los dos individuos, y uno de los individuos<br />
contribuye todo su código anterior a ese punto y el otro individuo contribuye todo<br />
su código a partir de ese punto <strong>para</strong> producir una descendencia, y al cruce uniforme,<br />
en el que el valor de una posición dada en el genoma de <strong>la</strong> descendencia corresponde<br />
al valor en esa posición del genoma de uno de los padres o al valor en esa posición<br />
del genoma del otro padre, elegido con un 50 % de probabilidad.<br />
En <strong>la</strong> Figura 2.15 se indica a alto nivel <strong>la</strong> secuencia de <strong>la</strong>s operaciones que<br />
distinguen a un algoritmo genético y que se repiten iteración tras iteración hasta<br />
que una determinada condición de fin se cump<strong>la</strong>. Los gráficos mostrados junto a<br />
cada operación en <strong>la</strong> Figura 2.15 representan el resultado de aplicar <strong>la</strong>s operaciones,<br />
indican cómo de una pob<strong>la</strong>ción de individuos se puede obtener <strong>la</strong> siguiente generación<br />
mediante un proceso de selección, reproducción y mutación.
2.8. Conclusiones 67<br />
GA( nto Procedimie )<br />
Pob<strong>la</strong>ción Generar individuo cada a iente correspond Fitness el Evaluar Inicial<br />
Individuos r Selecciona Repetir<br />
de Operador Aplicar Mutación Cruce<br />
Pob<strong>la</strong>ción<br />
8, Pob<strong>la</strong>ción 105<br />
Inicial<br />
6 Inicial 15<br />
Pob<strong>la</strong>ción 10 15 615 Intermedia Pob<strong>la</strong>ción Intermedia<br />
NuevaGeneración Nueva9<br />
Generación<br />
16<br />
Operador individuo a correspond el de Aplicar<br />
<strong>la</strong> se Hasta<br />
Figura 2.15: Secuencia de Operaciones características de un Algoritmo Genético<br />
standard nto Procedimie Fin GA 148 quecump<strong>la</strong>condición<br />
de Evaluar Fitness ientecada<br />
finalización<br />
2.8. Conclusiones<br />
Se han revisado diversos <strong>métodos</strong> <strong>para</strong> resolver un problema tipo Job Shop,<br />
analizando al mismo tiempo su adaptación y conveniencia <strong>para</strong> resolver el problema<br />
OPT. En particu<strong>la</strong>r, los <strong>métodos</strong> de optimización exacta no pueden ser utilizados<br />
<strong>para</strong> resolver el problema OPT ya que el espacio de soluciones de una instancia real<br />
de este problema es muy grande aún cuando se permita <strong>la</strong> re<strong>la</strong>jación o <strong>la</strong> poda en los<br />
diversos <strong>métodos</strong>. Debido a <strong>la</strong> naturaleza del problema, es preferible obtener varias<br />
soluciones con una calidad aceptable en poco tiempo que una solución óptima que<br />
se demore un tiempo no factible <strong>para</strong> fines prácticos. En el caso de <strong>la</strong> Programación
68 2. Métodos <strong>para</strong> resolver Problemas tipo Job Shop<br />
Dinámica además se debería hal<strong>la</strong>r un particionamiento del problema que cump<strong>la</strong><br />
con <strong>la</strong> hipótesis principal de este método que es hal<strong>la</strong>r <strong>la</strong> solución óptima <strong>para</strong> cada<br />
sub problema supone hal<strong>la</strong>r <strong>la</strong> solución óptima <strong>para</strong> el problema completo. Hal<strong>la</strong>r<br />
<strong>la</strong> forma de dividir el problema completo en sub problemas que cump<strong>la</strong>n con esta<br />
hipótesis de <strong>la</strong> programación dinámica en un problema OPT es muy difícil, ya que<br />
<strong>la</strong>s actividades están fuertemente interre<strong>la</strong>cionadas.<br />
En el caso de los <strong>métodos</strong> heurísticos constructivos se obtendría una única solu-<br />
ción basándose en aspectos locales de <strong>la</strong> solución parcial. Las heurísticas empleadas<br />
tanto <strong>para</strong> decidir qué nodos descartar en una búsqueda beam, o <strong>para</strong> decidir el<br />
orden en que deben ejecutarse un conjunto de actividades en <strong>la</strong>s reg<strong>la</strong>s de proce-<br />
samiento, deben ser muy potentes como <strong>para</strong> que <strong>la</strong> única solución entregada sea<br />
lo suficientemente buena que no justifique una nueva búsqueda en otra región del<br />
espacio de soluciones. Sin embargo, es muy complicado de obtener una heurística<br />
muy potente en un problema OPT que considere únicamente aspectos locales como<br />
es el caso en los <strong>métodos</strong> heurísticos.<br />
Debido al tamaño del espacio de soluciones y <strong>la</strong> interre<strong>la</strong>ción que existe entre<br />
<strong>la</strong>s actividades que utilizan diferentes máquinas dentro del job shop, consideramos<br />
que <strong>la</strong>s propiedades de los <strong>métodos</strong> heurísticos de mejora pueden ser utilizadas<br />
<strong>para</strong> obtener un proceso de solución que se adapte a <strong>la</strong>s características de Job<br />
Shop del problema OPT así como a <strong>la</strong>s características propias del dominio de este<br />
problema. Asignar un horario a cada tren en forma factible, requiere de poco tiempo<br />
computacional, aún cuando <strong>la</strong> solución obtenida no sea cercana a <strong>la</strong> óptima, los<br />
<strong>métodos</strong> de mejora permiten moverse de una región de soluciones a otra. Si se<br />
consigue obtener una buena guía <strong>para</strong> esos movimientos, se podría alcanzar una<br />
mejora en un tiempo computacional aceptable.
Capítulo 3<br />
Optimizar y P<strong>la</strong>nificar Horarios<br />
<strong>para</strong> Trenes, un problema CSOP<br />
3.1. Introducción<br />
En los capítulos previos se ha hecho una revisión acerca de los problemas de<br />
scheduling tipo Job Shop, se han identificado aquel<strong>la</strong>s propiedades que son comunes<br />
a todo problema de este tipo, así como los modelos y <strong>métodos</strong> de solución genéricos<br />
que existen en <strong>la</strong> literatura. El objetivo de este capítulo es describir el problema OPT,<br />
marco de trabajo de esta tesis, con el suficiente nivel de detalle y de formalidad,<br />
necesarios <strong>para</strong> establecer que es una especialización de problemas de scheduling<br />
tipo Job Shop, con características específicas del dominio al que pertenece, y que su<br />
complejidad es NP-hard.<br />
La descripción de OPT se inicia en <strong>la</strong> Sección 3.2, en <strong>la</strong> cual introducimos el<br />
problema tratando de dar una visión global del mismo, en cuanto a sus elementos,<br />
requerimientos y complejidad se refiere, dejando <strong>para</strong> <strong>la</strong>s secciones posteriores una<br />
descripción más detal<strong>la</strong>da y formal de cada uno de estos puntos.<br />
Antes de iniciar <strong>la</strong> especificación formal del problema, en <strong>la</strong> Sección 3.3 se pro-<br />
porciona el significado dado a determinados términos empleados <strong>para</strong> definir a OPT,<br />
junto con sus sus principales características, <strong>la</strong>s cuales deberán ser tenidas en cuenta<br />
en el momento de formu<strong>la</strong>r el problema. Al tiempo que se presentan los diferentes<br />
elementos del problema OPT, también se indica <strong>la</strong> correspondencia entre estos y los<br />
elementos de un problema de scheduling tipo Job Shop (trabajo, operación, recurso).<br />
La descripción formal del problema OPT es proporcionada en <strong>la</strong> Sección 3.4 donde<br />
69
70 3. Optimizar y P<strong>la</strong>nificar Horarios <strong>para</strong> Trenes, un problema CSOP<br />
el mismo es mode<strong>la</strong>do mediante una red de optimización (X, D, C, F C) y formu<strong>la</strong>do<br />
como un Problema de Optimización y Satisfacción de Restricciones (CSOP). Se<br />
identifican <strong>la</strong>s variables (X) y el dominio de <strong>la</strong>s mismas (D), <strong>la</strong>s restricciones (C),<br />
y <strong>la</strong> función objetivo (F C) de OPT.<br />
Finalmente, en <strong>la</strong> Sección 3.5 y a partir de <strong>la</strong> formu<strong>la</strong>ción realizada de OPT, se<br />
agrupan sus características y elementos, proporcionando a cada grupo un significado,<br />
que permite c<strong>la</strong>sificarlos como propiedades típicas de un problema de scheduling tipo<br />
Job Shop.<br />
3.2. El Problema OPT<br />
En el Problema de Optimizar y Programar horarios <strong>para</strong> Trenes (OPT) se consid-<br />
era un conjunto de trenes y una línea ferroviaria, <strong>la</strong> cual está formada por una secuen-<br />
cia ordenada de dependencias (apeaderos, estaciones, bifurcaciones, cargaderos, ...,<br />
etc.). Cada tren tiene definido un recorrido sobre <strong>la</strong> misma, que no tiene por qué ser<br />
el mismo <strong>para</strong> todos. Se deberá asignar un horario factible, según un determina-<br />
do conjunto de restricciones, a cada tren, optimizando una determinada función<br />
objetivo.<br />
El orden entre <strong>la</strong>s dependencias determina el orden en el cual deben ser visitadas<br />
por los trenes que viajan en un determinado sentido, al cual denominamos ida.<br />
Cuando los trenes viajan en el sentido opuesto, decimos que viajan en sentido vuelta.<br />
Las restricciones, que deben ser satisfechas por <strong>la</strong> programación de horarios<br />
entregada, tienen en cuenta <strong>la</strong> capacidad de <strong>la</strong> infraestructura ferroviaria, el tráfico<br />
que existe en <strong>la</strong> línea, <strong>la</strong>s condiciones de mantenimiento, el servicio propuesto al<br />
cliente, y <strong>la</strong>s condiciones establecidas por el p<strong>la</strong>nificador de horarios <strong>para</strong> guiar<br />
hacia un tipo de resultado <strong>la</strong> solución que se obtenga.<br />
La infraestructura ferroviaria está dada por el número de vías en <strong>la</strong> dependencia<br />
y entre dependencias consecutivas, así como por el tipo de señalización que existe<br />
en cada tramo. Las restricciones que tienen en cuenta el mantenimiento de <strong>la</strong> línea<br />
incluyen los horarios de cierre en <strong>la</strong>s estaciones y los intervalos de tiempo corre-<br />
spondientes a <strong>la</strong>s operaciones de mantenimiento. En cuanto a <strong>la</strong>s restricciones de<br />
tráfico, se debe considerar que puede existir más de un tren en <strong>la</strong> línea, por lo tanto
3.2. El Problema OPT 71<br />
se deberá evitar colisiones entre ellos o cualquier otro tipo de operación que pon-<br />
ga en riesgo al vehículo y a sus ocupantes. En cuanto al servicio al cliente, puede<br />
ser requerida una determinada frecuencia de salida entre trenes consecutivos de de-<br />
terminadas estaciones, o una mínima <strong>para</strong>da comercial que permita el ascenso y<br />
descenso de pasajeros en determinadas estaciones o apeaderos. Además, el p<strong>la</strong>nifi-<br />
cador podrá especificar por cada tren, un intervalo de instantes de tiempo factibles<br />
<strong>para</strong> que el tren parta de su estación origen y podrá restringir el instante de llegada<br />
a su estación destino a un determinado intervalo de tiempo. Otro requerimiento que<br />
puede ser añadido es el de un máximo retraso permitido con respecto a un tiempo<br />
de referencia <strong>para</strong> el tren.<br />
En cada dependencia se especifica un número total de vías y <strong>la</strong> cantidad de es-<br />
tas vías que poseen andén. Un tren no podrá llegar a una dependencia en <strong>la</strong> cual<br />
no exista por lo menos una vía disponible. Además, deberá poseer andén si el tren<br />
que llega tiene previsto realizar una <strong>para</strong>da comercial en el<strong>la</strong>. Otro de los atributos<br />
asociados a una dependencia es el horario de cierre, formado por un conjunto de<br />
intervalos de tiempo, que seña<strong>la</strong>n cada uno, los instantes en los que dicha depen-<br />
dencia permanece cerrada. Consideramos dos tipos de cierre: apto <strong>para</strong> circu<strong>la</strong>ción<br />
y no apto <strong>para</strong> circu<strong>la</strong>ción. Si se da el primer caso, significa que mientras dure el<br />
cierre, solo una vía de <strong>la</strong> dependencia estará disponible, lo cual a su vez significa<br />
que no podrá ser ocupada al mismo tiempo, por más de un tren. Si el cierre es del<br />
segundo tipo, significa que ningún tren podrá pasar por <strong>la</strong> dependencia mientras<br />
dure el cierre especificado <strong>para</strong> <strong>la</strong> misma.<br />
Entre dos dependencias consecutivas pueden existir una o dos vías de circu<strong>la</strong>ción.<br />
Si existe una so<strong>la</strong> vía de circu<strong>la</strong>ción, entonces tanto los trenes que viajan en sentido<br />
ida como los trenes que viajan en sentido vuelta deberán utilizar <strong>la</strong> misma vía <strong>para</strong><br />
ir de una dependencia a otra. En este caso se deberá tener en cuenta que dos trenes<br />
viajando en sentido opuesto no podrán utilizar dicho tramo al mismo tiempo, <strong>para</strong><br />
evitar una colisión entre los mismos. Cuando dos trenes que viajan en sentido opuesto<br />
tienen <strong>la</strong> posibilidad de ocupar un mismo tramo al mismo tiempo, se deberá decidir<br />
cuál de ellos lo ocupará primero, haciendo que el otro tren espere hasta que el tramo<br />
sea liberado. La decisión que sea tomada cada vez que aparece un conflicto de este<br />
tipo, condiciona <strong>la</strong> calidad de <strong>la</strong> programación de horarios.<br />
Cuando dos trenes que viajan en sentidos opuestos llegan a una misma estación,
72 3. Optimizar y P<strong>la</strong>nificar Horarios <strong>para</strong> Trenes, un problema CSOP<br />
desde tramos que constan de única vía, es importante que exista un mínimo tiempo<br />
entre sus llegadas (tiempo de recepción) así como entre <strong>la</strong> llegada de un tren y <strong>la</strong><br />
salida del tren con sentido de viaje opuesto (tiempo de expedición). Estos tiempos<br />
aseguran que no se produzcan colisiones entre trenes que viajan en sentidos opuestos,<br />
a <strong>la</strong> entrada o a <strong>la</strong> salida de una estación que posea una única vía de salida o de<br />
llegada.<br />
Cuando existen dos vías de circu<strong>la</strong>ción entre dos dependencias consecutivas, se<br />
dedica cada vía a <strong>la</strong> circu<strong>la</strong>ción en un determinado sentido, de tal forma que dos<br />
trenes viajando en sentido opuesto no utilizarán <strong>la</strong> misma vía de circu<strong>la</strong>ción en dicho<br />
tramo.<br />
Cuando dos trenes viajan en el mismo sentido y son consecutivos entre sí, por ra-<br />
zones de seguridad se requiere que exista una diferencia de tiempo entre ellos. Según<br />
sea el sistema de señalización empleado en un tramo, a esta diferencia de tiempo <strong>la</strong><br />
denominamos sucesión automática o sucesión manual. En el primer caso se requiere<br />
que exista una mínima cantidad de tiempo entre <strong>la</strong>s salidas y <strong>la</strong>s llegadas de los<br />
trenes consecutivos de y a <strong>la</strong>s estaciones del tramo. En el segundo caso, el tramo no<br />
podrá ser ocupado al mismo tiempo por dos trenes. El segundo tren deberá esperar<br />
hasta que el primero llegue a <strong>la</strong> siguiente estación abierta y se produzca el aviso<br />
de llegada. Es necesario que <strong>la</strong> estación a <strong>la</strong> cual llegue el primer tren se encuentre<br />
abierta <strong>para</strong> que un operario pueda avisar por teléfono al segundo tren que ya puede<br />
salir. Si los dos trenes necesitan realizar una <strong>para</strong>da en alguna estación común a sus<br />
recorridos, siempre que ambos trenes puedan salir al mismo tiempo de <strong>la</strong> estación,<br />
deberá salir primero aquel tren que hubiera llegado primero a <strong>la</strong> misma, es decir, en<br />
estos casos no se permite ade<strong>la</strong>ntamientos entre trenes consecutivos.<br />
Existen intervalos de tiempo en los que se prevé mantenimiento <strong>para</strong> un determi-<br />
nado tramo. En los instantes de tiempo pertenecientes a dicho intervalo se considera<br />
que el número de vías <strong>para</strong> circu<strong>la</strong>ción en el tramo, disminuye en uno. Es decir, si<br />
el tramo consta de una so<strong>la</strong> vía de circu<strong>la</strong>ción, no podrá pasar ningún tren por el<br />
tramo mientras dure el mantenimiento. Si el tramo consta de dos vías, el tramo<br />
quedará reducido a un tramo de única vía mientras dure el mantenimiento.<br />
Por cada tren se especifica una velocidad promedio por tramo, sin embargo<br />
cuando el tren debe detenerse en una estación en <strong>la</strong> cual no tenía previsto <strong>para</strong>r,<br />
<strong>la</strong> velocidad promedio del tramo previo a <strong>la</strong> estación y <strong>la</strong> velocidad promedio del
3.2. El Problema OPT 73<br />
tramo posterior a <strong>la</strong> misma deberá disminuir con respecto a <strong>la</strong> velocidad previamente<br />
especificada, ya que el tren deberá frenar y posteriormente deberá ponerse en marcha<br />
<strong>para</strong> continuar su viaje. Siendo así, se deberá incrementar el tiempo de recorrido<br />
inicialmente especificado <strong>para</strong> el tren en los tramos anterior y posterior a <strong>la</strong> estación<br />
donde se produce <strong>la</strong> <strong>para</strong>da no prevista.<br />
El intervalo de tiempo dentro del cual se lleva a cabo <strong>la</strong> optimización es un<br />
parámetro del problema. El intervalo máximo permitido es el correspondiente a un<br />
día de p<strong>la</strong>nificación, [0, 86400] segundos.<br />
Los trenes pueden pertenecer a diferentes tipos, esto es diferentes velocidades,<br />
diferentes recorridos, diferentes <strong>para</strong>das especificadas en <strong>la</strong>s estaciones,...etc.<br />
Se considera <strong>la</strong> posibilidad de que <strong>la</strong> línea ferroviaria ya se halle ocupada por<br />
otros trenes, a los cuales se denomina trenes en circu<strong>la</strong>ción porque ya tienen un<br />
horario determinado el cual no podrá ser modificado <strong>para</strong> introducir a los nuevos<br />
trenes. El horario de los nuevos trenes deberá tener en cuenta <strong>la</strong> ocupación que<br />
realicen los trenes en circu<strong>la</strong>ción de los tramos y <strong>la</strong>s estaciones consideradas.<br />
En un marco global, el problema considerado corresponde al tipo de problemas<br />
combinatorios de optimización. Decimos que es combinatorio porque puede existir<br />
más de una combinación factible de valores que corresponda a <strong>la</strong> solución del mismo,<br />
y es un problema de optimización porque entre todas <strong>la</strong>s combinaciones de valores<br />
factibles se requiere hal<strong>la</strong>r <strong>la</strong> mejor, según un determinado conjunto de criterios, que<br />
evalúan cada solución a través de una función objetivo definida <strong>para</strong> el problema.<br />
Además de <strong>la</strong>s características expresadas previamente, este problema, consta de<br />
un conjunto determinado de operaciones que deben ser ejecutadas. Cada una de estas<br />
operaciones requiere utilizar un determinado tipo de recurso <strong>para</strong> llevar a cabo su<br />
objetivo. Existe un conjunto de restricciones que debe ser satisfecho simultáneamente<br />
por <strong>la</strong>s asignaciones realizadas, <strong>para</strong> que estas sean consideradas factibles y por ende<br />
una solución del problema, es decir el objetivo es hal<strong>la</strong>r un instante de inicio y un<br />
instante de fin <strong>para</strong> cada operación satisfaciendo dicho conjunto de restricciones y<br />
optimizando una determinada función objetivo. Luego, el problema considerado es<br />
un problema de scheduling tipo Job Shop.<br />
La Figura 3.1 indica al problema OPT como una especialización de problemas<br />
de asignación de horarios <strong>para</strong> trenes, que a su vez son considerados problemas de<br />
scheduling tipo Job Shop y por ende problemas combinatorios de optimización.
74 3. Optimizar y P<strong>la</strong>nificar Horarios <strong>para</strong> Trenes, un problema CSOP<br />
Figura 3.1: C<strong>la</strong>sificación del Problema considerado en <strong>la</strong> Tesis OPT<br />
3.3. Conceptos Básicos<br />
Optimizaci de ios Combinator ProblemasShop Job tipoScheduling de Problemas Trenes <strong>para</strong>Horarios<br />
de ión P<strong>la</strong>nificac ón<br />
Esperando facilitar <strong>la</strong> lectura de este trabajo, en esta sección se proporciona el<br />
significado que hemos asignado a ciertos términos y cierta notación general, utilizada<br />
en el mismo. La notación específica a determinadas secciones o capítulos será definida<br />
previo uso, en <strong>la</strong> sección o capítulo correspondiente.<br />
El problema de asignar horarios <strong>para</strong> trenes puede ser un problema con muchas<br />
variantes según <strong>la</strong>s características que se consideren. En este apartado propor-<br />
cionaremos el significado que hemos dado tanto a determinados elementos que for-<br />
man el problema OPT así como a <strong>la</strong> notación utilizada <strong>para</strong> formalizar dicho prob-<br />
lema. Para introducir estos conceptos hemos establecido su correspondencia con los<br />
componentes del problema Job Shop.<br />
Recursos<br />
En el problema OPT, los recursos están formados por <strong>la</strong>s vías ferroviarias, nece-<br />
sarias <strong>para</strong> que el tren pueda movilizarse y cumplir con un determinado recorrido.<br />
Si consideramos a <strong>la</strong>s vías, como <strong>la</strong>s máquinas de un problema de Scheduling, a<br />
continuación proporcionaremos <strong>la</strong>s características de los centros de trabajo en los<br />
cuales se hal<strong>la</strong>n dichas máquinas. En el problema OPT encontramos dos tipos de<br />
centros de trabajo, a uno de ellos se lo conoce como Dependencia y al otro como<br />
Tramo Dependencia.<br />
li - Dependencia.
3.3. Conceptos Básicos 75<br />
Es un espacio físico situado en una determinada posición geográfica, constru-<br />
ido con el objeto de llevar a cabo determinadas operaciones ferroviarias, ya<br />
sean comerciales o técnicas. Una dependencia además de ser un lugar por<br />
donde pasan trenes, cumple con funciones específicas tales como: señalización,<br />
posición donde se produce un cambio en <strong>la</strong>s propiedades del tramo, ascen-<br />
so y descenso de pasajeros, lugar donde un tren puede apartarse, posición<br />
donde una línea ferroviaria se divide, etc. Dependiendo de <strong>la</strong>s características<br />
y funcionalidades de cada dependencia, estas son agrupadas por tipo.En este<br />
trabajo c<strong>la</strong>sificamos <strong>la</strong>s dependencias en dos tipos:<br />
• Estación, y<br />
• Otros (Bifurcación, Apeadero, Apartadero, Cargadero,etc.).<br />
= Δ<br />
+<br />
+ Δ<br />
=<br />
+ Δ<br />
+ Δ<br />
→<br />
→ 2<br />
→<br />
→ iC2<br />
SALii<br />
iC v 2 1 1 1 0 1 i i C C i l0i l1i l2i<br />
i i dep0<br />
l4i<br />
i C2 l3i Tecnica Parada Tecnica Parada Tecnica Parada 1 v 2 v 3 l5i C5i<br />
C4i +<br />
= + Δ → 3<br />
i v 4 3 3 3 2 2 i i C v 5 4 4 i<br />
C4i<br />
= + + + Mi<br />
6−0<br />
arr<br />
3 2 l6 i i i dep 4<br />
Λ<br />
=<br />
= + Δ → 4<br />
i C v 6 5 5i<br />
i C5 i<br />
Figura 3.2: Retraso del Tiempo de Recorrido Real con respecto al Tiempo Ideal del<br />
mismo tren<br />
v4<br />
v<br />
v v v v arr6<br />
Un tren puede detenerse en una dependencia <strong>para</strong> llevar a cabo una operación<br />
1<br />
comercial (<strong>para</strong>da comercial), <strong>para</strong> <strong>la</strong> cual se ha reservado previamente una
76 3. Optimizar y P<strong>la</strong>nificar Horarios <strong>para</strong> Trenes, un problema CSOP<br />
determinada cantidad de tiempo.<br />
Un tren también puede detenerse en una dependencia obligado por <strong>la</strong>s condi-<br />
ciones del tráfico en <strong>la</strong> línea, habiendo o no previsto <strong>para</strong>da comercial en el<strong>la</strong>.<br />
En este caso, hab<strong>la</strong>mos de una <strong>para</strong>da técnica, <strong>la</strong> cual consiste en el tiempo que<br />
un tren permanece en una dependencia, a partir del instante en que su <strong>para</strong>da<br />
comercial ha sido cumplida (ver Figura 3.2). Este tipo de <strong>para</strong>da surge <strong>para</strong><br />
evitar conflictos con otros trenes en un tramo siguiente, o bien por limitaciones<br />
de infraestructura en otras dependencias del recorrido de un tren.<br />
En el problema OPT, una <strong>para</strong>da técnica es posible solo en dependencias tipo<br />
Estación. Sin embargo, <strong>para</strong>das comerciales son posibles tanto en estaciones<br />
como en apeaderos. Los demás tipos de dependencias permitirán únicamente<br />
el paso de trenes.<br />
En el problema OPT por cada dependencia se consideran los siguientes atribu-<br />
tos:<br />
• Tipo: el tipo que corresponde a cada dependencia determina <strong>la</strong> factibili-<br />
dad de realizar determinadas operaciones en <strong>la</strong> misma.<br />
• Ni - Cantidad total de vías en li.<br />
• N Pi<br />
- Cantidad de Vías con andén en una dependencia li.<br />
• HCi - Horario de Cierre de <strong>la</strong> dependencia li.<br />
El horario de cierre de cada dependencia está definido por un conjunto de<br />
elementos de <strong>la</strong> forma HCi = {(A i j, B i j, type i j )} 1 ≤ j ≤ Mi, donde A i j es<br />
el instante en que se inicia el cierre de <strong>la</strong> dependencia i, B i j es el instante<br />
en que finaliza el cierre de <strong>la</strong> dependencia i, y type i j<br />
es el tipo de cierre.<br />
Pueden definirse Mi intervalos de cierre <strong>para</strong> cada dependencia cada uno<br />
con un tipo determinado.<br />
Si HCi = ∅, <strong>la</strong> dependencia li permanece abierta 24 horas. De lo contrario,<br />
se definen Mi ≥ 1 intervalos de tiempo. El límite inferior del intervalo<br />
A i j indica el instante en el que se inicia el horario de cierre j en li, y<br />
el límite superior B i j, indica el instante en el que este cierre finaliza. Si<br />
type i j<br />
= ’AC’, el cierre durante este intervalo es Apto <strong>para</strong> Circu<strong>la</strong>ción, lo<br />
cual implica que durante este intervalo el número de vías en li será igual
3.3. Conceptos Básicos 77<br />
a uno. Si por el contrario type i j<br />
= ’NC’, el cierre durante el intervalo j<br />
es No apto <strong>para</strong> Circu<strong>la</strong>ción, lo cual implica que durante este intervalo el<br />
número de vías en li será igual a cero.<br />
L - Línea Ferroviaria.<br />
Es definida como una secuencia ordenada de N dependencias, L = {l0, l1, ..., l N−1}.<br />
Cada dependencia li es nombrada de tal forma que el sub índice i indica <strong>la</strong><br />
posición que esta ocupa con respecto al resto de dependencias, en el trayecto<br />
que realiza un tren cuando utiliza <strong>la</strong> línea L. Así, si un tren debe llegar a li+1,<br />
0 ≤ i < N − 1, y está utilizando <strong>la</strong> línea L, solo existen dos dependencias en L<br />
desde <strong>la</strong>s cuales puede partir, li ó li+2, el tren deberá pasar previamente por<br />
una de estas dos dependencias antes de alcanzar <strong>la</strong> dependencia li+1 dependi-<br />
endo del sentido que corresponda al viaje del tren.<br />
S - Estaciones.<br />
Subconjunto de L. Secuencia finita y ordenada de dependencias cuyo tipo es<br />
Estación.<br />
+ l Unica Vía vías sin (Y) asdependenci<br />
i<br />
M+ i<br />
li → li+1 - Tramo Dependencia.<br />
( 1)<br />
11<br />
M+ 1 ( i)<br />
Mi2<br />
li , ) (y x<br />
Figura 3.3: Banda de Mantenimiento en un Tramo de Vía 2 Mi 1<br />
Única<br />
tiempo(X)
78 3. Optimizar y P<strong>la</strong>nificar Horarios <strong>para</strong> Trenes, un problema CSOP<br />
Considerando <strong>la</strong> línea ferroviaria L = {l 0, l1, .., l N−1}, definimos un tramo de-<br />
pendencia como <strong>la</strong> sección de vía existente entre dos dependencias consecutivas<br />
li y li+1, 0 ≤ i < N − 1. Según <strong>la</strong> definición de línea, decimos que li y li+1 son<br />
dependencias consecutivas en L, ya que un tren que utiliza <strong>la</strong> línea ferroviaria<br />
L y va desde li a li+1, o viceversa, no pasa por ninguna otra dependencia en<br />
L.<br />
Por cada tramo dependencia de una línea L, al cual representamos por medio<br />
de li → li+1, 0 ≤ i < N − 1, se consideran los siguientes atributos:<br />
• Ni→i+1 - Cantidad de vías entre <strong>la</strong> dependencia li y <strong>la</strong> dependencia li+1.<br />
Puede ser un tramo de vía única o un tramo de vía doble.<br />
• Tipo de bloqueo: según sea el tipo de bloqueo, automático ó manual, en<br />
el tramo li → li+1 se obtiene <strong>la</strong> distancia temporal que debe existir entre<br />
dos trenes consecutivos en dicho tramo.<br />
• Banda de Mantenimiento: en un tramo li → li+1 se define un conjunto<br />
finito de bandas de mantenimiento, que puede ser un conjunto vacío, lo<br />
que significaría que no se prevé mantenimiento <strong>para</strong> dicho tramo.<br />
+ li<br />
M+<br />
M+ i<br />
l Doble Unica Vía i (Y) asdependenci<br />
1 Vía<br />
1 ( i (X) ) 11<br />
Figura 3.4: Banda de Mantenimiento en un Tramo de Vía Doble<br />
Mi ( 1)<br />
Mi2 2<br />
tiempo
3.3. Conceptos Básicos 79<br />
Trabajos<br />
Una banda de mantenimiento determina <strong>la</strong> sección de vía que se encuen-<br />
tra bajo mantenimiento por cada instante de tiempo de un determinado<br />
intervalo, lo cual implica disminuir en uno <strong>la</strong> cantidad de vías en dicha<br />
sección. Esto significa que en ese instante de tiempo una sección de vía<br />
doble se convierte en una sección de vía única y una sección de vía única<br />
queda sin vías.<br />
En <strong>la</strong>s figuras 3.3 y 3.4 se observa un ejemplo. En el<strong>la</strong>s, <strong>la</strong>s regiones de<br />
color gris representan gráficamente a una de <strong>la</strong>s bandas de mantenimiento<br />
asociadas al tramo li → li+1.<br />
La figura 3.3 muestra el caso de un tramo de vía única, en el cual <strong>la</strong>s<br />
posiciones y quedan sin vías en los instantes x si y solo si (x, y) pertenece<br />
a <strong>la</strong> región definida por <strong>la</strong> banda de mantenimiento (región coloreada con<br />
gris). En <strong>la</strong> misma figura puede verse que ningún tren pasa por los puntos<br />
(x, y) pertenecientes a <strong>la</strong> región, ya que en el instante x no existen vías<br />
en <strong>la</strong> posición y.<br />
En <strong>la</strong> figura 3.4, es posible el paso de trenes porque de <strong>la</strong>s dos vías queda<br />
habilitada una, sin embargo no pueden existir en <strong>la</strong>s secciones de vía<br />
definidas por <strong>la</strong> banda de mantenimiento, dos trenes viajando en sentido<br />
opuesto al mismo tiempo.<br />
seci - Tramo Estación.<br />
Considerando que L = {l 0, l1, .., l N−1}, S = {s0, s1, .., s M}, si = lx y si+1 = lx+a,<br />
seci = {lj\lj ∈ S ∩ L ∧ x ≤ j ≤ x + a} es un tramo estación en L, el<br />
cual está formado por <strong>la</strong>s estaciones si, si+1, y <strong>la</strong>s dependencias no estación<br />
(lj, x < j < x + a), que deben ser visitadas <strong>para</strong> ir desde si hasta si+1.<br />
El recorrido que debe realizar cada tren constituye un Trabajo en el problema<br />
OPT. Por cada tren son considerados determinados atributos que regu<strong>la</strong>n en parte<br />
<strong>la</strong> realización de cada trabajo. A continuación estos atributos son descritos pro-<br />
porcionando previamente una c<strong>la</strong>sificación entre los trenes del problema, <strong>la</strong> cual es<br />
realizada a partir de ciertos atributos comunes a todos los trenes pertenecientes al<br />
mismo conjunto.
80 3. Optimizar y P<strong>la</strong>nificar Horarios <strong>para</strong> Trenes, un problema CSOP<br />
T - Trenes en el Problema.<br />
T C - Trenes en Circu<strong>la</strong>ción.<br />
Conjunto de trenes que ya se encuentran en circu<strong>la</strong>ción en L en el momento<br />
que se desea asignar horarios a nuevos trenes. El horario de estos trenes no<br />
puede ser modificado. T C ⊂ T, |T C| ≥ 0.<br />
Tnew - Trenes Nuevos.<br />
Conjunto de trenes a los que se debe asignar un horario factible en L, teniendo<br />
en cuenta a los trenes en circu<strong>la</strong>ción que existen en <strong>la</strong> misma. Note que<br />
Tnew ∩ T C = ∅ y Tnew ∪ T C = T.<br />
ti - Identificador de un tren.<br />
Operador. Según <strong>la</strong>s características de cada tren: velocidad promedio, tipo de<br />
vagones, tipo de motor, equipamiento, recorrido, peso, funcionalidad,...,etc., se<br />
le asigna un determinado operador. En OPT hemos c<strong>la</strong>sificado a los operadores<br />
en dos grupos. A uno de ellos hemos denominado Viajeros y al otro Mercancías.<br />
En ade<strong>la</strong>nte nos referiremos a estos grupos como tipos de trenes.<br />
l j<br />
i<br />
- Dependencia por Recorrido.<br />
Dependencia que ocupa <strong>la</strong> posición i dentro de <strong>la</strong> secuencia ordenada de de-<br />
pendencias que forman el recorrido de un tren tj. En ade<strong>la</strong>nte <strong>para</strong> abreviar<br />
utilizaremos dependencia i del recorrido del tren.<br />
Ji - Recorrido.<br />
Sea Ji = {l i 0, l i 1 , ..., li mi } el recorrido de un tren ti. Esta secuencia ordenada de<br />
elementos determina <strong>la</strong>s dependencias que deberá visitar en su trayecto y el<br />
orden en el que deberá hacerlo. El orden establecido por Ji determina que ti<br />
no podrá alcanzar <strong>la</strong> dependencia l i j+1 desde otra dependencia que no sea li j ,<br />
siendo 0 ≤ j < mi. La dependencia li 0 y <strong>la</strong> dependencia li mi son el origen y el<br />
destino del recorrido de ti, respectivamente. Considere que: ti ∈ T → Ji ⊆ L<br />
T D - Trenes que viajan en sentido ida.<br />
A cada tren ti en T le corresponde un sentido de viaje, el cual puede ser: o<br />
bien ida, o bien vuelta. Si ti ∈ T y ti viaja en sentido ida entonces ti pertenece
3.3. Conceptos Básicos 81<br />
al conjunto T D, el cual es definido como:<br />
T D = {ti\ti ∈ T ∧ (∀l i j ∈ Ji \ {l i mi }, ∃lk ∈ L \ {lN−1} : l i j = lk ↔ l i j+1<br />
T U - Trenes que viajan en sentido vuelta.<br />
= lk+1)}.<br />
Si ti ∈ T y ti viaja en sentido vuelta entonces ti pertenece al conjunto T U, el<br />
cual es definido como:<br />
T U = {ti\ti ∈ T ∧ (∀l i j ∈ Ji \ {l i mi }, ∃lk ∈ L \ {l 0} : l i j = lk ↔ l i j+1<br />
TnewD<br />
TnewU<br />
Operaciones<br />
- Trenes nuevos que viajan en sentido ida.<br />
- Trenes nuevos que viajan en sentido vuelta.<br />
= lk−1)}.<br />
Considerando que un trabajo consiste en que un tren lleve a cabo el recorrido<br />
asignado, se considera una operación, tanto <strong>la</strong> visita de un tren a una dependencia,<br />
incluyendo <strong>la</strong> cantidad de tiempo que deba estar detenido en <strong>la</strong> misma, como el<br />
recorrido que realice el tren desde una dependencia a <strong>la</strong> siguiente, según el recorrido<br />
que le ha sido asignado.<br />
Las operaciones son realizadas en forma ordenada, según <strong>la</strong>s re<strong>la</strong>ciones de prece-<br />
dencia establecidas por el recorrido de cada tren. Si <strong>la</strong> operación a ser llevada a cabo<br />
consiste en visitar una dependencia, se exige un mínimo tiempo de procesamiento<br />
al cual se denomina Parada Comercial C j<br />
i , este tiempo de procesamiento puede ser<br />
extendido <strong>para</strong> evitar conflictos ocasionados por el tráfico en <strong>la</strong> línea, en este caso <strong>la</strong><br />
<strong>para</strong>da se vuelve técnica. El tiempo de procesamiento cuando <strong>la</strong> operación consiste<br />
en ir desde una dependencia a <strong>la</strong> siguiente del recorrido lo constituye el tiempo de<br />
recorrido del tren ∆ j<br />
i→(i+1) , calcu<strong>la</strong>do según <strong>la</strong> velocidad promedio establecida <strong>para</strong><br />
el tren en el tramo y <strong>la</strong> distancia entre una dependencia y otra.<br />
En <strong>la</strong> figura 3.5 se seña<strong>la</strong>n los principales términos definidos en esta sección.<br />
Considerando <strong>la</strong>s características de los diferentes tipos de scheduling, según el<br />
patrón de flujo de cada uno (Sección 1.2), se puede observar que OPT es un problema<br />
de scheduling que pertenece al tipo Job Shop ya que por cada tren (trabajo) se<br />
especifica un recorrido (secuencia de tareas) que no tiene por qué ser el mismo <strong>para</strong><br />
todos.
82 3. Optimizar y P<strong>la</strong>nificar Horarios <strong>para</strong> Trenes, un problema CSOP<br />
a Ferroviari LíneaL<br />
s=<br />
= 10<br />
s= 2<br />
s= 3<br />
s= 4<br />
s= 5<br />
s= 6<br />
s= s7<br />
l1 l30<br />
(Y) l2<br />
asdependenci<br />
l7 l8<br />
l4 l6 l5<br />
l l9<br />
t1 3 04<br />
de Cierre de Horario l EstaciónVuelta<br />
Sentido Ida de Comercial Parada t 200<br />
Figura 3.5: Terminología del problema<br />
Dependenci Tramo 0<br />
Tramoa<br />
t t2<br />
0 de Recorridot t<br />
l 05 3 de Recorridot 30 l<br />
35 l Sentido de Técnica Parada tl<br />
tiempo(X)<br />
3.4. Formu<strong>la</strong>ción del Problema como un CSOP<br />
En esta sección se proporciona un modelo <strong>para</strong> el problema OPT, el cual es formu-<br />
<strong>la</strong>do como un problema tipo CSOP. Se considera que OPT = (X, D, C, F C), siendo:<br />
X = {x1, x2, ..., xm} el conjunto de variables del problema,<br />
D = {D1, .., Dm} el conjunto de dominios Di correspondiente a cada variable<br />
xi ∈ X,<br />
C = {C1, C2, .., Cn}, el conjunto de restricciones del problema, y<br />
FC = {FQ1 , ..., FQl } el conjunto de funciones de coste del problema.<br />
Luego, el problema OPT consiste en encontrar una solución que además de propor-<br />
cionar un valor <strong>para</strong> cada variable xi ∈ X, que pertenezca al dominio Di y satisfaga<br />
toda restricción Ci ∈ C, debe optimizar <strong>la</strong> función objetivo F , definida a partir de<br />
<strong>la</strong>s funciones de coste en F C.
3.4. Formu<strong>la</strong>ción del Problema como un CSOP 83<br />
Habiendo definido en qué consiste cada conjunto de <strong>la</strong> 4-tup<strong>la</strong> (X, D, C, F C <strong>para</strong><br />
un problema CSOP, en <strong>la</strong>s siguientes sub secciones pasaremos de <strong>la</strong> formu<strong>la</strong>ción gen-<br />
eral de un CSOP a <strong>la</strong> formu<strong>la</strong>ción específica <strong>para</strong> el problema OPT, proporcionando<br />
el significado de cada elemento a partir del contexto sobre el cual se desarrol<strong>la</strong> este<br />
problema.<br />
3.4.1. Variables y Dominios<br />
En el problema OPT, cada variable xi ∈ X representa un instante, de salida o de<br />
llegada, correspondiente a un tren ti ∈ T en una determinada dependencia li j de su<br />
recorrido Ji. Las variables, elementos del conjunto X en un problema CSOP, quedan<br />
definidas por: X = {arr i j \ti ∈ T ∧ l i j ∈ (Ji \ {l i 0 })} ∪ {depi j \ti ∈ T ∧ l i j ∈ (Ji \ {l i mi })}<br />
<strong>para</strong> el problema OPT.<br />
Los valores posibles <strong>para</strong> estas variables están expresados en segundos, por lo<br />
tanto hemos definido el conjunto de números naturales como el dominio corre-<br />
spondiente a cada variable del problema. Esto quiere decir que: ∀Di ∈ D : Di =<br />
{0, 1, 2, ..., 86400}.<br />
Las variables dep i j y arri j<br />
representan al instante de salida y al instante de llegada<br />
de un tren ti ∈ T, de/a una dependencia l i j , respectivamente. Si ti ∈ T C, <strong>la</strong>s variables<br />
dep i j y arri j<br />
son tratadas como constantes en el modelo del problema OPT, ya que el<br />
horario de ti es un dato conocido <strong>para</strong> el problema y no una incógnita de su solución.<br />
3.4.2. Restricciones<br />
En esta sub sección se describe en qué consiste cada restricción del conjunto C<br />
<strong>para</strong> el problema OPT. Cada restricción es descrita de forma cualitativa y mode<strong>la</strong>da<br />
mediante una expresión matemática. El conjunto de restricciones <strong>para</strong> el problema<br />
OPT ha sido definido en base a los requerimientos establecidos por <strong>la</strong> Administración<br />
de Infraestructura Ferroviaria Españo<strong>la</strong>, ADIF, de tal forma que <strong>la</strong> solución pro-<br />
porcionada sea considerada viable a efectos prácticos. Por lo tanto, se destaca que<br />
el problema, marco de trabajo de esta Tesis, corresponde a un problema real.<br />
Las restricciones obedecen a diferentes requerimientos dentro de una red fer-<br />
roviaria, <strong>la</strong>s hemos agrupado según <strong>la</strong> naturaleza de éstos requerimientos en:<br />
1. Restricciones de Infraestructura,
84 3. Optimizar y P<strong>la</strong>nificar Horarios <strong>para</strong> Trenes, un problema CSOP<br />
2. Restricciones de Mantenimiento,<br />
3. Restricciones de Tráfico,<br />
4. Restricciones del Tren, y<br />
5. Restricciones Comerciales.<br />
Restricciones de infraestructura<br />
C1 - Tiempo de sucesión: es <strong>la</strong> mínima cantidad de tiempo que debe existir<br />
entre <strong>la</strong>s salidas/llegadas (tiempo de sucesión en salida/tiempo de sucesión<br />
en llegada), de dos trenes consecutivos, que parten/llegan de/a una misma<br />
estación.<br />
Considerando que:<br />
• ti y tj son dos trenes consecutivos en T, donde por lo menos uno de ellos<br />
pertenece a Tnew,<br />
• Si,j = {lk\lk ∈ S ∧ lk ∈ Ji ∩ Jj} es el conjunto de estaciones comunes a<br />
los recorridos de ti y tj,<br />
• ϕ dep<br />
x,k es el tiempo de sucesión en salida especificado <strong>para</strong> el tren tx en el<br />
tramo que se inicia con <strong>la</strong> estación lk.<br />
• ϕ arr<br />
x,k es el tiempo de sucesión en llegada especificado <strong>para</strong> el tren tx en el<br />
tramo que finaliza con <strong>la</strong> estación lk,<br />
<strong>la</strong> restricción C1 es descrita formalmente mediante <strong>la</strong> expresión 3.4.1.<br />
∀{ti, tj} ⊂ T, ∀{lk, lk+1} ⊂ Si,j :<br />
(({ti, tj} ⊆ T D ∨ {ti, tj} ⊆ T U) ∧ {ti, tj} T C ∧ l i k ′ = lk ∧ l j<br />
k ′′ = lk) →<br />
((dep j<br />
k ′′ − dep i k ′ ≥ ϕdep<br />
i,k ∧ arrj k ′′ − arr i k ′ ≥ ϕarr i,k )<br />
∨(dep i k ′ − depj k ′′ ≥ ϕ dep<br />
j,k ∧ arri k ′ − arrj<br />
k ′′ ≥ ϕ arr<br />
j,k )) (3.4.1)<br />
Dados dos trenes consecutivos, ti y tj, y un determinado tramo seck, el tiempo<br />
de sucesión que deberá existir entre sus salidas y entre sus llegadas, respecti-<br />
vamente, dependerá del tipo de tren que parta primero y del tipo de bloqueo<br />
que corresponda al tramo seck, cuya estación inicial es lk.
3.4. Formu<strong>la</strong>ción del Problema como un CSOP 85<br />
En el problema OPT consideramos dos tipos de bloqueo, Automático y Manual.<br />
Para todo tramo estación seck cuyo tipo de bloqueo es Automático se define<br />
un valor constante <strong>para</strong> ϕ dep<br />
x,k<br />
tren tx (Viajeros ó Mercancías).<br />
y <strong>para</strong> ϕarr<br />
x,k , según sea el tipo que corresponda al<br />
En <strong>la</strong>s Figuras 3.6 y 3.7 se describen dos ejemplos, en el cual dos trenes consec-<br />
utivos, ti y tj, circu<strong>la</strong>n por un determinado tramo, seck = {lk, lk+1, lk+2, lk+3},<br />
cuyo tipo de bloqueo es Automático.<br />
dep' dep'<br />
+<br />
+ k l3<br />
k l1 k ik j k'j<br />
t l2 k arr3 j k arr3 i tiempo(X)<br />
l<br />
+ k<br />
ϕ<br />
i,<br />
k dep<br />
asdependenci<br />
Figura 3.6: Sucesión en un tramo con Bloqueo Automático, menor velocidad <strong>para</strong><br />
el primer tren<br />
(Y)<br />
En ambos ejemplos, el horario de los trenes satisfacen <strong>la</strong> restricción sobre<br />
tiempo de sucesión. En <strong>la</strong> Figura 3.6 el tren ti, cuya velocidad en el tramo es<br />
i<br />
t<br />
menor que <strong>la</strong> de tj, parte antes que tj de <strong>la</strong> estación lk, por lo que tj deberá ser<br />
el tren que espere por lo menos ϕ dep<br />
i,k<br />
'+<br />
ϕ<br />
i,<br />
k arr<br />
'<br />
+<br />
unidades de tiempo antes que pueda salir<br />
de <strong>la</strong> misma estación lk. Debido a que ti es más lento, tj no puede salir apenas<br />
se cump<strong>la</strong> ϕ dep<br />
i,k unidades de tiempo desde <strong>la</strong> salida de ti, ya que de ser así no<br />
cumpliría con el tiempo de sucesión en llegada ϕ arr<br />
i,k .<br />
Si, por el contrario consideramos <strong>la</strong> Figura 3.7 en <strong>la</strong> cual es tj el tren que<br />
parte primero de lk, vemos que ti puede partir apenas se cump<strong>la</strong> el tiempo de<br />
sucesión establecido <strong>para</strong> tj, y aún así llega en un instante superior al mínimo
86 3. Optimizar y P<strong>la</strong>nificar Horarios <strong>para</strong> Trenes, un problema CSOP<br />
+ k<br />
+ l2 k l3<br />
l1k<br />
+ k<br />
dep' ' dep' j kj<br />
ϕj,<br />
depk<br />
'+<br />
+ t i k j k arr3tarrk<br />
i<br />
'<br />
ik (Y) asdependenci<br />
Figura 3.7: Sucesión en un tramo con Bloqueo Automático, menor velocidad <strong>para</strong><br />
el segundo tren arr3 tiempo(X)<br />
l<br />
ϕ<br />
permitido por el tiempo de sucesión en llegada establecido <strong>para</strong> tj. Con estas<br />
figuras se ha querido dar un ejemplo de cómo puede afectar el ordenamiento<br />
de los trenes que viajan en un mismo sentido en cuanto a <strong>la</strong> satisfacción del<br />
tiempo de sucesión se refiere.<br />
Tanto en <strong>la</strong> Figura 3.6 como en <strong>la</strong> Figura 3.7 se utiliza un rectángulo sombreado<br />
<strong>para</strong> indicar los instantes de tiempo en los que no es factible que un tren<br />
consecutivo al tren que va de<strong>la</strong>nte parta de <strong>la</strong> estación lk en el caso del bloqueo<br />
automático. Así mismo, en <strong>la</strong> parte inferior de <strong>la</strong> misma figura se seña<strong>la</strong> con<br />
otro rectángulo sombreado los instantes de tiempo en los cuales no es factible<br />
<strong>la</strong> llegada de un tren consecutivo al tren que va de<strong>la</strong>nte a <strong>la</strong> estación lk+3.<br />
Como puede verse en estas figuras, al ser un bloqueo Automático es posible<br />
que dos trenes ocupen el mismo tramo en un mismo instante de tiempo, aunque<br />
cumpliendo con una distancia de seguridad entre ellos impuesta por el tiempo<br />
de sucesión en salida y en llegada, establecidos según el tipo de tren que va<br />
de<strong>la</strong>nte.<br />
Por otro <strong>la</strong>do, cuando el tipo de bloqueo de un tramo seck es Manual, <strong>la</strong><br />
cantidad de tiempo asignada a ϕ dep<br />
x,k<br />
j,<br />
debe ser tal que dos trenes, viajando en
3.4. Formu<strong>la</strong>ción del Problema como un CSOP 87<br />
el mismo sentido, no puedan ocupar el mismo tramo seck durante el mismo<br />
tiempo.<br />
Así, si tj parte detrás de ti de <strong>la</strong> estación lk, e inicia un tramo cuyo tipo de<br />
bloqueo es Manual, entonces tj podrá salir de lk una vez que ti haya llegado a <strong>la</strong><br />
siguiente estación abierta del recorrido y el aviso de llegada se haya producido.<br />
Luego, el tiempo asignado a ϕ dep<br />
i,k<br />
es el tiempo que transcurre entre <strong>la</strong> salida<br />
de ti de lk, y su llegada <strong>la</strong> siguiente estación abierta de su recorrido más el<br />
tiempo necesario <strong>para</strong> realizar el aviso de llegada.<br />
Cuando decimos que un tren llega a una estación abierta, nos referimos al<br />
hecho de que el instante de llegada del tren a dicha estación no pertenece a<br />
ninguno de los intervalos que componen el horario de cierre de <strong>la</strong> misma.<br />
En <strong>la</strong> Figura 3.8, el tipo de bloqueo del tramo seck es manual, por lo tanto<br />
no pueden recorrer dicho tramo dos trenes del mismo sentido en un mismo<br />
instante de tiempo. En este caso el tiempo de sucesión en salida entre dos<br />
trenes, es igual al tiempo que demora el primer tren en recorrer el tramo<br />
considerado más el tiempo que se demora en dar aviso al segundo tren que<br />
el primero ha llegado (E unidades de tiempo). El tren tj de <strong>la</strong> Figura 3.8<br />
cumple con esta restricción ya que parte de <strong>la</strong> estación lk luego de que hayan<br />
transcurrido E unidades de tiempo de <strong>la</strong> llegada de ti a <strong>la</strong> siguiente estación<br />
abierta lk+3.<br />
C2 - Dependencias con Capacidad Limitada: una dependencia no deberá ser<br />
ocupada en forma simultánea, por más trenes que el número de vías especifi-<br />
cado <strong>para</strong> <strong>la</strong> misma.<br />
La expresión 3.4.2 define formalmente <strong>la</strong> restricción C2. En el<strong>la</strong> se especifica<br />
que un tren ti, perteneciente a Tnew, podrá llegar a una dependencia li j ∈ Ji<br />
si y solo si existe por lo menos una vía disponible en li j , que deberá poseer<br />
andén si ti tiene previsto <strong>para</strong>da comercial mayor a cero segundos en <strong>la</strong> misma<br />
(C i j > 0). Como se ha indicado en <strong>la</strong> Sección 3.3, cada dependencia li ∈ L<br />
tiene asignadas Ni vías, de <strong>la</strong>s cuales N Pi<br />
∀ti ∈ Tnew, ∀lk ∈ Ji : <br />
tj∈Tt i<br />
poseen andén.<br />
Meet(ti, tj, lk) + <br />
MeetP(ti, tj, lk) < Nk<br />
tj∈Tt i
88 3. Optimizar y P<strong>la</strong>nificar Horarios <strong>para</strong> Trenes, un problema CSOP<br />
+ l2 ik<br />
+<br />
+<br />
ik<br />
ϕ arr3 tiempo(X)<br />
i<br />
t<br />
ϕ<br />
kdep<br />
likik<br />
j k depj t (Y) dep<br />
k l1 asdependenci E<br />
k i l3 arr ik<br />
+<br />
+ arr3<br />
Figura 3.8: Sucesión en un tramo con Bloqueo Manual<br />
Considerando que:<br />
∧C i k<br />
> 0 → <br />
tj∈Tt i<br />
Meet P(ti, tj, lk) < N Pk<br />
kj<br />
(3.4.2)<br />
• el conjunto Tti = {tj/tj ∈ T ∧ Jj ∩ Ji = ∅} como el conjunto de trenes tj,<br />
cuyo recorrido tiene alguna dependencia en común con el recorrido del<br />
tren ti<br />
• La función Meet(ti, tj, lk), definida por <strong>la</strong> expresión 3.4.3, devuelve 1 si<br />
el tren ti y el tren tj coinciden en <strong>la</strong> dependencia lk en algún instante y<br />
si el otro tren, en este caso tj no realiza <strong>para</strong>da comercial (C j<br />
k = 0).<br />
⎧<br />
⎪⎨<br />
Meet(ti, tj, lk) =<br />
⎪⎩<br />
1 if [arr i k , depi k<br />
∧∄tx ∈ Tti<br />
(arr i k < depx k<br />
0 else<br />
] ∩ [arrj k , depj k ] = ∅ ∧ Cj<br />
k = 0<br />
< arrj k ∨ arrj k < depx k < arri k )<br />
(3.4.3)<br />
• La función Meet P(ti, tj, lk) devuelve 1 si los trenes ti y tj coinciden en <strong>la</strong><br />
dependencia lk en algún instante y si el tren tj realiza <strong>para</strong>da comercial
3.4. Formu<strong>la</strong>ción del Problema como un CSOP 89<br />
en lk. Ver expresión 3.4.4.<br />
⎧<br />
⎪⎨<br />
MeetP(ti, tj, lk) =<br />
(vías) en DisponibleCapacidad kl123<br />
0 (Y)<br />
⎪⎩<br />
1 if [arr i k , depi k<br />
∧∄tx ∈ Tti<br />
(arr i k < depx k<br />
0 else<br />
] ∩ [arrj k , depj k ] = ∅ ∧ Cj<br />
k > 0<br />
< arrj k ∨ arrj k < depx k < arri k )<br />
z t (X) t z t t<br />
tiempo(X)<br />
(3.4.4)<br />
ty tiempo x<br />
t y (Y) asDependencik l<br />
Figura 3.9: Ocupación de una dependencia durante un determinado intervalo de<br />
tiempo<br />
x<br />
En <strong>la</strong> Figura 3.9 se proporcionan dos gráficos. En <strong>la</strong> parte inferior de <strong>la</strong> figura,<br />
se utiliza un gráfico espacio-tiempo <strong>para</strong> indicar el instante de llegada y el<br />
instante de salida de tres trenes, tx, ty y tz a una dependencia lk. En dicho<br />
gráfico se describe el tiempo que permanecen estos trenes en lk. Considerando<br />
que lk posee 3 vías, en el gráfico superior de <strong>la</strong> Figura 3.9 se representa <strong>la</strong>
90 3. Optimizar y P<strong>la</strong>nificar Horarios <strong>para</strong> Trenes, un problema CSOP<br />
capacidad disponible de lk durante el intervalo de tiempo que tx, ty y tz ocupan<br />
lk.<br />
En el intervalo de tiempo considerado, <strong>la</strong> capacidad disponible de lk va cam-<br />
biando conforme se modifica su ocupación por los trenes que van llegando y<br />
saliendo de <strong>la</strong> misma. Dada <strong>la</strong> restricción C2, ningún tren podrá llegar a lk en<br />
el intervalo de tiempo en el cual el número de vías disponibles es cero (y = 0<br />
en el gráfico superior de <strong>la</strong> Figura 3.9), esto es durante el tiempo en el cual<br />
los tres trenes tx, ty y tz permanezcan en lk.<br />
Restricciones de Mantenimiento<br />
En este apartado definimos aquel<strong>la</strong>s restricciones que sean debidas a opera-<br />
ciones de mantenimiento especificadas en determinados tramos o dependencias<br />
de <strong>la</strong> línea considerada.<br />
C3 - Horario de Cierre: ningún tren podrá pasar por una dependencia durante<br />
un determinado intervalo de tiempo, si este pertenece al horario de cierre de<br />
<strong>la</strong> misma, siempre y cuando el tipo de cierre en dicho intervalo de tiempo<br />
sea No Apto <strong>para</strong> Circu<strong>la</strong>ción. Si por el contrario, el tipo de cierre es Apto<br />
<strong>para</strong> Circu<strong>la</strong>ción, se deberá considerar y respetar que el número de vías en <strong>la</strong><br />
dependencia, mientras dure el cierre, es igual a uno.<br />
Con el objeto de dar una especificación formal a esta restricción se considera<br />
que por cada dependencia li en L se especifica un conjunto de intervalos de<br />
tiempo HCi, que determinan los horarios de cierre de li. Si li permanece abierta<br />
durante todo el día, HCi = ∅.<br />
Cada intervalo de tiempo, en un horario de cierre HCi, tiene asignado un tipo,<br />
typei j , el cual puede ser: o bien ’AC’ o bien ’NC’. Durante dicho intervalo de<br />
tiempo, se considera que el número de vías en li es uno si type i j<br />
se considera que el número de vías es cero.<br />
= ’AC’, si no,<br />
Considerando estas condiciones <strong>para</strong> cada dependencia li cuyo horario de cierre<br />
HCi = ∅, <strong>la</strong> restricción C3 queda definida mediante <strong>la</strong>s expresiones 3.4.5 y<br />
3.4.6, según sea el tipo de cierre del intervalo considerado.<br />
∀tj ∈ Tnew, ∀li ∈ Jj, ∀(A i k , Bi k , typei k ) ∈ HCi :
3.4. Formu<strong>la</strong>ción del Problema como un CSOP 91<br />
<br />
tx∈Tt j<br />
(l j<br />
i ′ = li ∧ dep j<br />
i ′ > A i k ∧ arrj i ′ < B i k ) →<br />
Meet(tj, tx, li) + <br />
tx∈Tt j<br />
Meet P(tj, tx, li) < 1 (3.4.5)<br />
∀tj ∈ T new, ∀li ∈ Jj, ∀(A i k , Bi k , typei k ) ∈ HCi : l j<br />
i ′ = li ∧(arr j<br />
i ′ ≥ B i k ∨depj<br />
i ′ < A i k )<br />
(3.4.6)<br />
C4 - Bandas de Mantenimiento: el número de vías en un tramo disminuye en<br />
uno mientras duren <strong>la</strong>s operaciones de mantenimiento en el mismo.<br />
Formalmente, una banda de mantenimiento en un tramo dependencia li → li+1<br />
está dada por los intervalos de tiempo [Mi1, Mi2] establecidos en <strong>la</strong> dependencia<br />
li, y por el intervalo de tiempo [M (i+1)1, M (i+1)2], establecido en <strong>la</strong> dependencia<br />
li+1 (Figuras 3.3 y 3.4).<br />
El número de vías en li → li+1 es disminuido en uno en <strong>la</strong> región delimitada<br />
por <strong>la</strong>s bandas de mantenimiento. Por lo tanto <strong>la</strong> restricción C4 es mode<strong>la</strong>da<br />
por <strong>la</strong>s expresiones 3.4.7 y 3.4.8.<br />
Considerando que BMi = [Mi1Mi2] ∩ [M (i+1)1, M (i+1)2], y<br />
T Uj = {tk\|Jj ∩ Jk| ≥ 2 ∧ tj = tk ∧ tk ∈ T U} es el conjunto de los trenes<br />
que viajan en sentido vuelta y tienen por lo menos un tramo dependencia en<br />
común con el tren tj.<br />
∀tj ∈ TnewD , ∀tk ∈ T Uj , ∀li ∈ Jj \ {l j mj } : Ni→i+1 = 2 →<br />
l k i ′′ = lj<br />
i ′ = li ∧ [dep j<br />
i ′, arr j<br />
i ′ +1 ] ∩ [depki ′′, arrk i ′′ +1 ] BMi (3.4.7)<br />
∀tj ∈ Tnew, ∀li ∈ Jj \ {l j mj } : Ni→i+1 = 1 → (l j<br />
i ′ = li ∧ [dep j<br />
i ′, arr j<br />
i ′ +1 ] BMi<br />
(3.4.8)<br />
Restricciones de Tráfico<br />
Hemos agrupado en restricciones de tráfico aquel<strong>la</strong>s restricciones que regu<strong>la</strong>n <strong>la</strong>s<br />
condiciones de seguridad de un tren con respecto al resto de trenes que se hal<strong>la</strong>n en
92 3. Optimizar y P<strong>la</strong>nificar Horarios <strong>para</strong> Trenes, un problema CSOP<br />
una misma línea o en una misma estación. Las condiciones de seguridad son estable-<br />
cidas por cada tren según <strong>la</strong>s características del mismo, <strong>la</strong>s cuales son diferenciadas<br />
por el tipo de operador al que pertenece el tren.<br />
C5 - Cruce: si el número de vías entre dos dependencias es igual a uno, no<br />
será factible que dos trenes, que viajen en sentidos opuestos, ocupen dicho<br />
tramo en un mismo instante de tiempo.<br />
Dado un tren cualesquiera tj perteneciente al conjunto T D se define el conjunto<br />
TUj = {tk\|Jj ∩ Jk| ≥ 2} como el conjunto de trenes que viajan en sentido<br />
vuelta y que tienen por lo menos un tramo dependencia en común con el tren<br />
tj. Luego, <strong>la</strong> restricción C5, es definida por <strong>la</strong> expresión 3.4.9.<br />
∀tj ∈ T D, ∀tk ∈ T Uj , ∀li, li+1 ∈ Jj ∩ Jk :<br />
arr j<br />
i+1 < depki+1 ∨ arr k i < dep j<br />
i<br />
(3.4.9)<br />
C6 - Alcance: no se considera factible que dos trenes, viajando en el mismo<br />
sentido, ocupen una misma posición dentro de <strong>la</strong> línea ferroviaria, en un mismo<br />
instante de tiempo. Esta restricción es establecida <strong>para</strong> evitar un alcance entre<br />
dos trenes que realizan su trayecto en el mismo sentido.
3.4. Formu<strong>la</strong>ción del Problema como un CSOP 93<br />
∀tj ∈ Tnew, ∀tk ∈ T : (({tj, tk} ⊆ TD ∨ {tj, tk} ⊆ TU) ∧ {l j<br />
i , lj<br />
i+1 } ⊆ Jj ∩ Jk) →<br />
(dep j<br />
i < depk i ↔ arr j<br />
i+1 < arrk i+1) (3.4.10)<br />
C7 - Ade<strong>la</strong>ntamiento: un tren solo podrá ade<strong>la</strong>ntar en una estación a otro tren<br />
que viaje en el mismo sentido si tiene una prioridad mayor. Considerando que<br />
pj y pi son <strong>la</strong>s prioridades asignadas a cada tren tj y ti, respectivamente, se<br />
formu<strong>la</strong> <strong>la</strong> restricción C7 mediante <strong>la</strong> expresión 3.4.11.<br />
∀ti, tj ∈ T, ∀l i k ∈ Ji ∩ Jj :<br />
{ti, tj} TC ∧ pj ≤ pi → (dep j<br />
k < depik → arrj k < arri k ) (3.4.11)<br />
Considerando <strong>la</strong> Figura 3.10, si tj es un tren perteneciente a Tnew y su prior-<br />
Tren<br />
i<br />
t<br />
j<br />
t<br />
l Estaciónk<br />
Figura 3.10: Ade<strong>la</strong>ntamiento del tren tj al tren ti en <strong>la</strong> estación lk.<br />
Tren<br />
idad es inferior o igual a <strong>la</strong> del tren ti, entonces decimos que no es factible el<br />
ade<strong>la</strong>ntamiento realizado por tj al tren ti en <strong>la</strong> estación lk. Luego, <strong>la</strong> restricción<br />
C7 es incumplida y por lo tanto el horario es no factible.<br />
C8 - Tiempo de recepción: es el mínimo tiempo que debe existir entre <strong>la</strong>s<br />
llegadas de dos trenes, que viajan en sentidos opuestos, a una misma estación.<br />
Ri es el tiempo de recepción establecido por cada tren ti ∈ T, especifica <strong>la</strong><br />
distancia temporal que debe existir entre <strong>la</strong>s llegadas de dos trenes, a una<br />
misma dependencia. Se considera que los trenes viajan en sentidos opuestos.
94 3. Optimizar y P<strong>la</strong>nificar Horarios <strong>para</strong> Trenes, un problema CSOP<br />
El tiempo de recepción es dado por motivos de seguridad y depende de cuál<br />
sea el tipo de tren. ias)(dependencY<br />
+ l1 ik i lik<br />
Dado un tren cualesquiera ti ∈ Tnew, el conjunto TSi (tiempo) X=<br />
{tj\tj ∈ T ∧ tj =<br />
ti ∧ Ji ∩ Jj = ∅ ∧ {ti, tj} TI ∧ {ti, tj} TV} es definido como el conjunto de<br />
j t<br />
Figura 3.11: Satisfacción de Recepción y Expedición considerando que ti llega<br />
primero a <strong>la</strong> estación<br />
t<br />
trenes que viaja en sentido opuesto a ti y tiene por lo menos una dependencia<br />
en común con el recorrido de dicho tren. Al asignar un horario a un tren<br />
ti ∈ Tnew, el tiempo de recepción asignado al mismo y al resto de trenes en T<br />
debe ser tenido en cuenta, según lo especifica <strong>la</strong> siguiente expresión.<br />
arr i k<br />
∀ti ∈ Tnew, ∀tj ∈ TSi , ∀li k ∈ (Ji ∩ Jj) \ {l i 0} :<br />
≤ arrj k → arrj k − arri k ≥ Ri ∨ arr j<br />
k ≤ arri k → arri k − arrj k ≥ Rj (3.4.12)<br />
En <strong>la</strong> figura 3.11, el tramo entre <strong>la</strong>s dependencias li k y li k+1<br />
vía de circu<strong>la</strong>ción. Si los trenes ti y tj salen en cuanto pueden de <strong>la</strong>s estaciones<br />
i<br />
R<br />
j<br />
E<br />
consta de una so<strong>la</strong><br />
li k y de li k+1 , respectivamente, se produciría un cruce entre ellos, lo cual no es<br />
factible. Para evitar el conflicto se decide detener a ti en li k , hasta que tj libere<br />
el tramo li k → li k+1 . Habiendo llegado ti primero a li k , el mínimo tiempo que
3.4. Formu<strong>la</strong>ción del Problema como un CSOP 95<br />
debe transcurrir desde que llega ti, hasta que llega tj, está dado por Ri, que<br />
es el tiempo de recepción establecido <strong>para</strong> todos los trenes del mismo tipo que<br />
ti (Viajeros o Mercancías, asignado según el operador de ti).<br />
En <strong>la</strong> Figura 3.12 se decide resolver el conflicto, descrito previamente, retrasan-<br />
do <strong>la</strong> salida de tj de l i k+1 hasta que el tramo li k → li k+1 sea liberado por ti. En<br />
este caso, el instante de llegada de ti será factible, una vez haya transcurrido<br />
Rj unidades de tiempo desde <strong>la</strong> llegada de tj. El tiempo de recepción consid-<br />
erado depende del tipo de tren al que pertenece tj, ya que es este el tren que<br />
llega primero a <strong>la</strong> estación donde se gestiona el cruce.<br />
C9 - Tiempo de Expedición: es el mínimo tiempo que debe transcurrir desde <strong>la</strong><br />
llegada de un tren a una determinada estación <strong>para</strong> que se considere segura <strong>la</strong><br />
salida de otro tren de <strong>la</strong> misma estación. Se considera que estos trenes viajan<br />
en sentidos opuestos y el número de vías en el tramo utilizado, por el tren que<br />
llega a <strong>la</strong> estación y por el tren que sale de <strong>la</strong> estación, respectivamente, es<br />
igual a uno.<br />
Ei es el tiempo de expedición establecido <strong>para</strong> cada tren ti ∈ T. Especifica <strong>la</strong><br />
distancia temporal que debe existir entre <strong>la</strong> salida y <strong>la</strong> llegada de dos trenes,<br />
en una misma dependencia. Se considera que dichos trenes viajan en sentidos<br />
opuestos.<br />
Dado un tren cualesquiera ti ∈ Tnew, el conjunto TSi = {tj\tj ∈ T ∧ tj =<br />
ti ∧ Ji ∩ Jj = ∅ ∧ {ti, tj} T I ∧ {ti, tj} T V} es definido como el conjunto de<br />
trenes que viaja en sentido opuesto a ti y tiene por lo menos una dependencia<br />
en común con el recorrido de dicho tren. Considerando que N k→(k+1) es el<br />
número de vías en el tramo dependencia l i k → li k+1 , <strong>la</strong> restricción C9 sobre<br />
tiempo de expedición es definida mediante <strong>la</strong> expresión 3.4.13.<br />
∀ti ∈ Tnew, ∀tj ∈ TSi , ∀li k ∈ (Ji ∩ Jj) \ {l i mi<br />
(N k→(k+1) = 1 ∧ dep i k<br />
, lj 0 } :<br />
≥ arrj k ) → depik − arrj k ≥ Ej (3.4.13)<br />
En <strong>la</strong> Figura 3.11 el tren ti espera en li k que tj libere el tramo li k → li k+1 . Una<br />
vez que tj llega a li k , ti debe esperar por lo menos Ej unidades de tiempo hasta<br />
que pueda partir de li k . Es el tiempo que se considera necesario <strong>para</strong> que tj,
96 3. Optimizar y P<strong>la</strong>nificar Horarios <strong>para</strong> Trenes, un problema CSOP<br />
+<br />
ias)(dependencY ik<br />
i E j X(tiempo)<br />
Ri j t<br />
Figura 3.12: Satisfacción de Recepción y Expedición considerando que tj llega<br />
primero a <strong>la</strong> estación<br />
t<br />
por el tipo de tren al que pertenece, libere el tramo de salida de <strong>la</strong> estación l i k<br />
y no se produzca una colisión entre ambos trenes a <strong>la</strong> salida de <strong>la</strong> misma.<br />
En <strong>la</strong> Figura 3.12, el tiempo de expedición depende del tipo de tren de ti, ya<br />
que tj es el tren que se hal<strong>la</strong> esperando en <strong>la</strong> estación l i k+1 y ti es el que llega<br />
l1 lik<br />
en segundo término. Una vez que llega ti, tj debe esperar por lo menos Ei<br />
unidades de tiempo como <strong>para</strong> que su salida se considere segura considerando<br />
<strong>la</strong> llegada de ti a <strong>la</strong> misma estación.<br />
Restricciones del tren<br />
Ciertas propiedades son establecidas por tipo de tren, según <strong>la</strong>s características de<br />
cada uno (longitud, motor, peso, capacidad de frenado, ...,etc.). Las restricciones<br />
que se citan en este apartado son establecidas <strong>para</strong> que dichas propiedades sean<br />
tenidas en cuenta al asignar un horario, de tal forma que este sea viable.<br />
C10 - Tiempo de Recorrido: por cada tren y por cada tramo de su recorrido,<br />
se determina <strong>la</strong> cantidad de tiempo que el tren debe emplear <strong>para</strong> ir desde el<br />
inicio hasta el final de un tramo de su recorrido.<br />
Siendo Ji = {l0, l1, .., lmi } el recorrido correspondiente a un tren ti cualesquiera
3.4. Formu<strong>la</strong>ción del Problema como un CSOP 97<br />
perteneciente a Tnew, se establece que, ti debe emplear ∆ i k→(k+1)<br />
unidades de<br />
tiempo <strong>para</strong> ir desde l i k hasta li k+1 , donde 0 ≤ k < mi. El tiempo de recorrido<br />
∆ i k→(k+1) es establecido por cada tren ti y por cada tramo dependencia l i k →<br />
l i k+1<br />
de su correspondiente recorrido. Este tiempo solo puede ser modificado<br />
durante <strong>la</strong> búsqueda de una solución si el tren realiza una <strong>para</strong>da no prevista<br />
en alguna dependencia de su recorrido. Para más detalles sobre este punto en<br />
particu<strong>la</strong>r ver <strong>la</strong> restricción C11.<br />
La expresión 3.4.14 formu<strong>la</strong> <strong>la</strong> restricción C10 sobre el tiempo de recorrido<br />
asignado a un tren ti en un tramo dependencia l i k → li k+1<br />
correspondiente.<br />
∀ti ∈ Tnew, ∀l i k ∈ Ji \ {l i mi } : arri k+1 = depi k + ∆i k→(k+1)<br />
de su recorrido<br />
(3.4.14)<br />
C11 - Demora por <strong>para</strong>da no prevista: por cada tren se establece en cada tramo<br />
de su recorrido una determinada cantidad de tiempo que este debe emplear<br />
<strong>para</strong> recorrerlo (restricción C10). Sin embargo si el tren se debe detener en una<br />
estación, en <strong>la</strong> cual no estaba prevista su <strong>para</strong>da, debe realizar un frenado en<br />
el tramo previo a <strong>la</strong> estación, lo cual significaría un aumento del tiempo de<br />
recorrido especificado en dicho tramo, ya que su velocidad no será <strong>la</strong> prevista<br />
en todo el tramo, deberá ir disminuyendo hasta lograr el frenado.<br />
Lo mismo ocurre en el tramo posterior a <strong>la</strong> estación donde se produce <strong>la</strong> <strong>para</strong>da<br />
técnica, el tren se pone en marcha y va aumentando su velocidad hasta llegar<br />
a <strong>la</strong> velocidad especificada en el tramo, esto también supone un aumento del<br />
tiempo de recorrido originalmente previsto <strong>para</strong> dicho tramo.<br />
Para especificar formalmente esta restricción hemos utilizado <strong>la</strong> expresión<br />
3.4.15. En dicha expresión se considera que un tren ti que pertenece a Tnew se<br />
detiene en una estación l i k<br />
fue prevista (C i k<br />
de su recorrido, en <strong>la</strong> cual ninguna <strong>para</strong>da comercial<br />
= 0), entonces debe incrementarse el tiempo de recorrido del<br />
tren tanto en el tramo anterior (se considera el tiempo que emplea el tren en<br />
detenerse) como en el tramo posterior a l i k<br />
el tren en alcanzar <strong>la</strong> velocidad promedio del tramo).<br />
(se considera el tiempo que demora<br />
El incremento realizado en el tiempo de recorrido se denomina demora por<br />
<strong>para</strong>da no prevista, Γi. Su valor es conocido y es establecido por cada tipo de
98 3. Optimizar y P<strong>la</strong>nificar Horarios <strong>para</strong> Trenes, un problema CSOP<br />
operador presente en el problema OPT.<br />
∀ti ∈ Tnew, ∀l i k ∈ Ji \ {l0, lmi } : (Cik = 0 ∧ depik − arri k > 0) ↔<br />
(arr i k = depi k−1 + ∆i (k−1)→k + Γi ∧ arr i k+1 = depi k + ∆i k→(k+1) + Γi) (3.4.15)<br />
En <strong>la</strong> Figura 3.13 se puede ver un ejemplo de <strong>la</strong> aplicación de <strong>la</strong> demora Γi en<br />
el tiempo de recorrido de un tren ti por una <strong>para</strong>da no prevista en l i k .<br />
+ l1<br />
)(asdependenciY l1 −ik likik<br />
Solución− i t ik lik l1 ik l1 Cruce Conflicto i t de técnica Parada tj<br />
t j t i<br />
−<br />
+<br />
+<br />
lik l1 −ik l1 ik<br />
−<br />
Γ<br />
Γ Solución i i t<br />
Γ<br />
= 0<br />
Figura 3.13: Un ejemplo de aplicación de demora por <strong>para</strong>da no prevista<br />
Restricciones Comerciales<br />
A continuación se describen <strong>la</strong>s restricciones en que permiten establecer en el horario<br />
t j i Demora de Aplicación i<br />
de un tren <strong>la</strong>s condiciones del servicio que se ofrece al cliente.<br />
C12 - Intervalo de Salida: por cada tren se establece un intervalo de tiempo al<br />
cual debe pertenecer su instante de salida inicial. La expresión 3.4.16 define<br />
formalmente esta restricción.<br />
∀ti ∈ Tnew : I i L ≤ dep i 0 ≤ I i U<br />
Cik<br />
(tiempo X )<br />
(3.4.16)<br />
Todo tren ti, tal que ti ∈ Tnew, debe partir de su estación origen l i 0, en un<br />
instante de tiempo perteneciente al intervalo de salida inicial [I i L, I i U]. Este<br />
intervalo es especificado por cada tren ti ∈ Tnew.
3.4. Formu<strong>la</strong>ción del Problema como un CSOP 99<br />
C13 - Intervalo de Llegada: por cada tren se especifica un intervalo de tiempo<br />
al cual debe pertenecer su instante de llegada. La expresión 3.4.17 define esta<br />
restricción formalmente.<br />
F i L ≤ arr i mi ≤ Fi U<br />
(3.4.17)<br />
Todo tren ti, tal que ti ∈ Tnew, debe llegar a su estación destino li mi , en un<br />
instante de tiempo perteneciente al intervalo [Fi L, Fi U], el cual es definido por<br />
cada tren ti ∈ Tnew.<br />
C14 - Retraso máximo: por cada tren se establece el máximo retraso permitido<br />
con respecto a su tiempo de recorrido ideal.<br />
Considerando que ti ∈ Tnew, el tiempo que emplea ti en completar su recorrido<br />
Ji, desde su estación origen l i 0 hasta su estación destino l i mi<br />
está limitado por<br />
el retraso máximo, Dmax i , establecido con respecto a su tiempo de recorrido<br />
ideal τi.<br />
El tiempo de recorrido ideal τi es el mínimo tiempo que puede emplear ti<br />
<strong>para</strong> completar su recorrido desde su estación origen hasta su estación destino<br />
cumpliendo con el tiempo de recorrido establecido por cada tramo, y con <strong>la</strong><br />
<strong>para</strong>da comercial especificada por cada dependencia. Así, ti demora τi unidades<br />
de tiempo en realizar su recorrido si y solo si no realiza <strong>para</strong>da técnica alguna<br />
durante el mismo. La expresión 3.4.18 define el tiempo de recorrido ideal <strong>para</strong><br />
ti.<br />
τi =<br />
mi−1 <br />
j=0<br />
∆ i j→j+1 + C i j<br />
(3.4.18)<br />
Teniendo en cuenta que Λi = arr i mi − depi 0 es el tiempo empleado por ti en<br />
realizar su recorrido Ji, satisfaciendo todas <strong>la</strong>s restricciones en C, medimos<br />
el retraso de este tren con respecto a su tiempo ideal de recorrido según <strong>la</strong><br />
expresión 3.4.19.<br />
(∀ti) Tnew (Di = Λi − τi<br />
τi<br />
) (3.4.19)<br />
La restricción C14 determina que el retraso de cada tren con respecto a su<br />
tiempo ideal de recorrido no puede ser mayor a Dmax i . Esta restricción es
100 3. Optimizar y P<strong>la</strong>nificar Horarios <strong>para</strong> Trenes, un problema CSOP<br />
definida mediante <strong>la</strong> expresión 3.4.20.<br />
= Δ<br />
+<br />
+ Δ<br />
=<br />
∀ti ∈ Tnew : Di ≤ D max<br />
i<br />
+ Δ<br />
+ Δ<br />
→<br />
→ 2<br />
→<br />
→ iC2<br />
SALii<br />
iC v 2 1 1 1 0 1 i i C C i l0i l1i l2i<br />
i i dep0<br />
l4i<br />
i C2 l3i Tecnica Parada Tecnica Parada Tecnica Parada 1 v 2 v 3 l5i C5i<br />
C4i +<br />
= + Δ → 3<br />
i v 4 3 3 3 2 2 i i C v 5 4 4 i<br />
C4i<br />
= + + + Mi<br />
6−0<br />
arr<br />
3 2 l6 i i i dep 4<br />
Λ<br />
=<br />
= + Δ → 4<br />
i C v 6 5 5i<br />
i C5 i<br />
(3.4.20)<br />
Figura 3.14: Retraso del Tiempo de Recorrido Real con respecto al Tiempo Ideal<br />
del mismo tren<br />
v4<br />
v<br />
v v v v arr6<br />
En <strong>la</strong> figura 3.14 se muestra <strong>la</strong> posición del tren t en función del tiempo en dos<br />
1<br />
situaciones distintas, en <strong>la</strong> primera, se asigna un horario al tren de tal forma<br />
que su tiempo de recorrido sea el ideal, sin considerar el resto de trenes en<br />
T (línea más c<strong>la</strong>ra), y en <strong>la</strong> segunda situación, se asigna un horario al tren t<br />
satisfaciendo todas <strong>la</strong>s restricciones en C (línea más oscura). En el segundo<br />
caso el tiempo de recorrido es mayor debido a <strong>la</strong>s <strong>para</strong>das técnicas necesarias<br />
<strong>para</strong> satisfacer ciertas restricciones. Pues bien, <strong>la</strong> restricción sobre el Retraso<br />
Máximo limita el exceso que pueda tener el tiempo de recorrido dado por un<br />
horario válido sobre el tiempo de recorrido ideal del mismo tren.<br />
C15 - Salidas Periódicas: En un problema OPT pueden ser especificados 0 ≤<br />
N ≤ |Tnew|<br />
2<br />
subconjuntos de Tnew, disjuntos entre si. Cada subconjunto es
3.4. Formu<strong>la</strong>ción del Problema como un CSOP 101<br />
especificado con el objetivo de identificar a los trenes, cuyos instantes de sal-<br />
ida deben cumplir con determinadas condiciones, cuando se trate de salidas<br />
consecutivas de una misma estación. A cada subconjunto denominamos grupo<br />
Gi, 1 ≤ i ≤ N.<br />
Cada grupo Gi tiene asociado los siguientes atributos:<br />
• Intervalo del Periodo. Por cada grupo Gi es determinado un intervalo de<br />
tiempo [P i L, P i U], el cual define los valores válidos <strong>para</strong> el periodo de tiempo<br />
que debe existir entre <strong>la</strong>s salidas de trenes consecutivos pertenecientes a<br />
Gi, y<br />
• Estaciones con Periodo. Considerando que Ji es el recorrido de los trenes<br />
en Gi, Speriodo i es el conjunto de estaciones, subconjunto de Ji, en <strong>la</strong>s<br />
cuales debe cumplirse un periodo de tiempo determinado entre <strong>la</strong>s salidas<br />
de los trenes consecutivos pertenecientes a Gi.<br />
En un problema puede ser especificado más de un grupo <strong>para</strong> permitir estable-<br />
cer diferentes valores a sus correspondientes atributos. Además en un mismo<br />
problema OPT pueden existir trenes con diferentes recorridos o diferentes senti-<br />
dos de viaje, por lo tanto, aunque compartan valores <strong>para</strong> sus atributos, deben<br />
ser agrupados en subconjuntos distintos.<br />
Si N > 0, cada grupo Gi en OPT, siendo 1 ≤ i ≤ N, debe satisfacer <strong>la</strong> restricción<br />
C15 ∈ C, <strong>la</strong> cual es definida mediante <strong>la</strong> expresión 3.4.21. Si N = 0, entonces<br />
C15 /∈ C.<br />
(dep ty<br />
k<br />
∀tx ∈ Gi, ∀ty ∈ Gi, ∀l i k ∈ Speriodo i :<br />
> deptx k ∧ (∄t′ ∈ Gi : dep t′<br />
k > deptx k ∧ dept′ k<br />
P i L ≤ dep ty<br />
k<br />
< depty k )) →<br />
− deptx<br />
k ≤ Pi U (3.4.21)<br />
En <strong>la</strong> Figura 3.15 se describe una instancia del problema OPT, en <strong>la</strong> cual se<br />
han especificado dos grupos de trenes. Los trenes cuyo recorrido en función<br />
del tiempo está representado por líneas oblicuas continuas, forman el grupo<br />
G1. El grupo G2 está formado por los trenes cuyo recorrido en función del<br />
tiempo está dado por líneas oblicuas de puntos. Los trenes pertenecientes a
102 3. Optimizar y P<strong>la</strong>nificar Horarios <strong>para</strong> Trenes, un problema CSOP<br />
+ k<br />
+ l2<br />
asdependenci(Y)<br />
kl1<br />
k<br />
+<br />
+ l4 k l5 l6 k l3<br />
+ k<br />
+ k<br />
+ k l l7<br />
1<br />
P 1<br />
P 1<br />
P 1<br />
P 1<br />
P 1<br />
P 1<br />
P<br />
Figura 3.15: Dos grupos de trenes, cuyas salidas iniciales deben satisfacer un determinado<br />
periodo de tiempo P2<br />
P<br />
G1 parten de su estación inicial cada P1 unidades de tiempo, y los trenes de G2,<br />
cada P2 unidades de tiempo, es decir [P1, P1], y [P2, P2] son los intervalos de<br />
periodo <strong>para</strong> G1 y <strong>para</strong> G2, respectivamente. En esta instancia de OPT se exige<br />
el periodo de tiempo entre <strong>la</strong>s salidas de trenes consecutivos únicamente en<br />
<strong>la</strong>s estaciones iniciales del recorrido considerado. Es por ello que se considera<br />
factible el instante de salida del último tren del grupo G2 de <strong>la</strong> estación lk+1.<br />
P 2 P 2 P 2 P 2 2<br />
El tren sale en cuanto puede y no espera hasta satisfacer el periodo de tiempo<br />
tiempo(X)<br />
de salida P2, ya que en dicha estación no es requerida <strong>la</strong> periodicidad en salida<br />
<strong>para</strong> los trenes que pertenecen a G2.<br />
C16 - Parada Comercial: cada tren ti, que pertenezca al conjunto Tnew, debe<br />
permanecer en cada dependencia l i j de su recorrido, por lo menos Ci j unidades<br />
de tiempo. El valor de C i j es un valor constante, establecido por cada tren ti<br />
en Tnew y por cada dependencia l i j de su recorrido. Si Ci j > 0 significa que
3.4. Formu<strong>la</strong>ción del Problema como un CSOP 103<br />
ti requiere realizar operaciones comerciales en <strong>la</strong> dependencia li j , por ejemplo:<br />
el ascenso y descenso de pasajeros. Siendo, Ji = {li 0 , li 1 , .., li mi } el recorrido<br />
correspondiente al tren ti, <strong>la</strong> expresión 3.4.22 mode<strong>la</strong> <strong>la</strong> restricción C16 ∈ C.<br />
3.4.3. Función Objetivo<br />
∀ti ∈ Tnew, ∀l i j ∈ Ji \ {l i 0, l i mi } : depi j − arr i j ≥ C i j<br />
(3.4.22)<br />
Habiendo descrito en qué consisten <strong>la</strong>s componentes X, D y C del problema OPT=<br />
(X, D, C, F C), resta por definir <strong>la</strong> componente F C. Para ello, empezaremos por<br />
considerar <strong>la</strong> definición dada en [32]. Un problema de optimización de restricciones<br />
es una red de restricciones (X, D, C) aumentada con una función de optimización<br />
global F . Considerando que:<br />
X = {x1, ..., xn},<br />
F1, ..., Fl son componentes funcionales que retornan valores reales, definidos<br />
sobre los ámbitos Q1, ..., Ql, Qj ⊆ X, y<br />
ā = (a1, ..., an), donde ai está en el dominio de xi.<br />
La función de optimización global F es definida por<br />
F (ā) =<br />
l<br />
Fj(ā)<br />
j=1<br />
donde Fj(ā) significa Fj aplicada a <strong>la</strong>s asignaciones en ā restringidas al ámbito de<br />
Fj. Esto es Fj(ā) = Fj(ā[Qj]). La componente F C = {FQ1 , ..., FQl } es un conjunto<br />
de componentes de optimización, adicional a <strong>la</strong> red de restricciones (X, D, C).<br />
Cada función de optimización FQi está definida sobre el ámbito Qi = {xi1, ..., xil},<br />
FQi :⊲⊳l j=1 Dij → Reales+ .<br />
En el problema OPT, hemos considerado tres funciones, F1, F2, y F3 como los<br />
elementos del conjunto F C, cuyos ámbitos son Q1, Q2 y Q3, respectivamente. A<br />
continuación especificamos cuáles son <strong>la</strong>s variables de X que corresponden a cada<br />
uno de los ámbitos considerados en OPT.<br />
Q1 = X I, es el conjunto de variables del problema correspondientes al horario<br />
de los trenes que viajan en sentido ida. Considere que X I = {xj\(xj = arr i k+1 ∨<br />
xj = dep i k ) ∧ ti ∈ TnewD ∧ li k ∈ Ji \ {lmi }}
104 3. Optimizar y P<strong>la</strong>nificar Horarios <strong>para</strong> Trenes, un problema CSOP<br />
Q2 = X V, es el conjunto de variables del problema correspondientes al horario<br />
de los trenes que viajan en sentido vuelta. Considere que X V = {xj\(xj =<br />
arr i k+1 ∨ xj = dep i k ) ∧ ti ∈ TnewU ∧ li k ∈ Ji \ {lmi }}<br />
Q3 = X, es el conjunto de variables que representan el horario de los trenes<br />
pertenecientes a Tnew.<br />
La componente F C del problema OPT es definida como F C = {F1, F2, F3},<br />
F1(ā) = F1(ā[X I]), F2(ā) = F2(ā[X V]) y F3(ā) = F3(ā[X]).<br />
Considerando que ā = ā I ∪ ā V, donde ā I es el conjunto de valores asignados a<br />
cada variable xi ∈ X I, y ā V es el conjunto de valores asignados a cada variable<br />
xi ∈ X V, <strong>la</strong>s funciones F1 y F2 son definidas por <strong>la</strong>s expresiones 3.4.23 y 3.4.24,<br />
respectivamente.<br />
F1(ā I) =<br />
<br />
ti∈Tnew D<br />
|TnewD |<br />
δ(ā I, i)<br />
(3.4.23)<br />
La función F1 mide el retraso promedio de los trenes que viajan en sentido ida.<br />
<br />
δ(āV, i)<br />
F2(ā V) =<br />
ti∈Tnew U<br />
|TnewU |<br />
(3.4.24)<br />
La función F2 mide el retraso promedio de los trenes que viajan en sentido vuelta.<br />
La asignación ādir, i = (ai1, ..., aini ) indica que el valor aij ha sido asignado a <strong>la</strong><br />
variable xij, <strong>la</strong> cual a su vez corresponde al instante de llegada o al instante de salida<br />
de un tren ti en una determinada dependencia de su recorrido. Se considera que el<br />
tren ti viaja en sentido dir (dir = ida o dir = vuelta). Es decir, ādir,i representa un<br />
horario factible asignado a un tren ti ∈ Tnew.<br />
A partir de un horario factible, <strong>la</strong> función δ(ādir, i), mide el retraso del tren ti<br />
con respecto al tiempo de referencia Γi ref . El tiempo de referencia es calcu<strong>la</strong>do por<br />
cada tren como el mínimo tiempo que emplearía ti <strong>para</strong> ir desde l i 0 hasta li mi<br />
si los<br />
únicos trenes en <strong>la</strong> línea considerada fueran {ti} ∪ T C y todas <strong>la</strong>s restricciones en C<br />
fueran satisfechas. Es decir, <strong>para</strong> calcu<strong>la</strong>r el tiempo de referencia de un tren ti, se<br />
ignora el resto de trenes nuevos Tnew \ {ti}. Luego el retraso promedio de un tren<br />
con respecto a su tiempo de referencia Γ i ref<br />
δ(ādir, i) = arri mi − depi 0 − Γ i ref<br />
Γ i ref<br />
es definido por <strong>la</strong> expresión 3.4.25<br />
× pi<br />
(3.4.25)
3.5. El problema OPT, un problema de Scheduling tipo Job Shop 105<br />
Siendo E(ā) = F1(ā I) + F2(ā V), <strong>la</strong> función F3, definida por <strong>la</strong> expresión 3.4.26,<br />
mide <strong>la</strong> desviación standard de los retrasos promedios por sentido (F1 y F2) con<br />
respecto al retraso promedio total (E).<br />
F3(ā) =<br />
[F1(ā I) − E(ā)] 2 + [F2(ā V) − E(ā)] 2<br />
2<br />
(3.4.26)<br />
Habiendo especificado en qué consiste cada función de optimización en el prob-<br />
lema OPT, definimos su función de optimización global como<br />
F (ā) = ωexc × (F1(ā I) + F2(ā V)) + ωdesv × F3(ā) (3.4.27)<br />
Tanto el retraso promedio de los trenes que viajan en sentido ida como el retraso<br />
promedio de los trenes que viajan en sentido vuelta es multiplicado por un valor<br />
constante ωexc. Este valor corresponde al peso dado en <strong>la</strong> función de optimización<br />
global al retraso promedio de los trenes. Es un valor especificado <strong>para</strong> el problema<br />
y puede ser definido por cada instancia del mismo.<br />
El valor ωdesv corresponde al peso asignado a <strong>la</strong> función F3 en <strong>la</strong> función de<br />
optimización global. Es un valor definido por cada instancia del problema OPT.<br />
Luego, <strong>la</strong> tarea de optimizar, consiste en hal<strong>la</strong>r una asignación factible ā o tal<br />
que F (ā o ) = mināF (ā).<br />
3.5. El problema OPT, un problema de Scheduling tipo<br />
Job Shop<br />
Según hemos visto en el Capítulo 2, un problema de scheduling tipo Job Shop<br />
posee determinadas características, que lo distinguen como un tipo de problema. En<br />
esta sección identificamos estas características en el problema que hemos definido<br />
en este capítulo como marco de trabajo de <strong>la</strong> tesis.<br />
En el problema OPT un trabajo consiste en el recorrido completo que lleva a<br />
cabo un tren. Las operaciones que forman parte de un trabajo en OPT consisten<br />
en pasar por estaciones y recorrer tramos entre estaciones. Para llevar a cabo cada<br />
operación es necesario utilizar determinados recursos, que en este caso son <strong>la</strong>s vías<br />
en <strong>la</strong> estación, o <strong>la</strong>s vías en el tramo, según el tipo de operación que se trate.
106 3. Optimizar y P<strong>la</strong>nificar Horarios <strong>para</strong> Trenes, un problema CSOP<br />
El orden entre <strong>la</strong>s operaciones de un mismo trabajo, lo determina el recorrido de<br />
cada tren y constituyen <strong>la</strong>s re<strong>la</strong>ciones de precedencia de un problema de scheduling<br />
tipo Job Shop. El tiempo de procesamiento de una operación está dada por el<br />
tiempo que un tren permanezca en una estación o por el tiempo que un tren emplee<br />
en recorrer un tramo de su recorrido.<br />
Los trenes que viajan en sentido ida utilizan los recursos siguiendo un determi-<br />
nado orden, y los trenes que viajan en sentido vuelta utilizan una parte o los mismos<br />
recursos, pero siguiendo un orden inverso.<br />
Las restricciones definidas en <strong>la</strong> sección 3.4.2 determinan <strong>la</strong>s condiciones en <strong>la</strong>s<br />
cuales se considera factible <strong>la</strong> utilización de los recursos, considerando el conjunto<br />
de operaciones del problema. Así, <strong>la</strong>s restricciones de cruce regu<strong>la</strong>n el uso de aquel-<br />
los recursos que son utilizados por operaciones pertenecientes a trabajos que siguen<br />
un orden inverso. Dichas operaciones no podrán utilizar al mismo tiempo estos re-<br />
cursos e incluso deberá existir un margen de tiempo, considerado como un margen<br />
de seguridad entre el inicio de <strong>la</strong>s operaciones sobre el mismo recurso (tiempo de<br />
recepción) así como entre el intercambio de recursos entre <strong>la</strong>s dos operaciones (tiem-<br />
po de expedición). Esto es equivalente a establecer un orden de prioridades entre<br />
operaciones que pertenecen a diferentes trabajos sobre <strong>la</strong> utilización de un mismo<br />
recurso.<br />
Por otro <strong>la</strong>do existen restricciones sobre <strong>la</strong> utilización de recursos entre opera-<br />
ciones que siguen un mismo orden. Existen recursos que permiten que más de una<br />
operación lo utilice al mismo tiempo siempre y cuando exista una determinada<br />
cantidad de tiempo entre el inicio de una y otra, así como entre el instante de final-<br />
ización de <strong>la</strong>s mismas (sucesión automática). Otros recursos no permiten que dos<br />
operaciones lo utilicen simultáneamente (sucesión manual).<br />
Las estaciones son consideradas centros de trabajo donde existen varias máquinas<br />
que pueden ser utilizadas en <strong>para</strong>lelo (vías). En estos centros de trabajo no está per-<br />
mitido que se lleven a cabo simultáneamente más operaciones que el número máquinas<br />
disponibles (restricción que determina <strong>la</strong> capacidad limitada de cada estación).<br />
Las operaciones de mantenimiento, o el horario de cierre de una estación son<br />
otras de <strong>la</strong>s restricciones que limitan el periodo de tiempo que un recurso puede ser<br />
utilizado por una operación, o al menos limitan los periodos de tiempo en los cuales<br />
dichos recursos pueden ser utilizados teniendo en cuenta su capacidad total.
3.5. El problema OPT, un problema de Scheduling tipo Job Shop 107<br />
En este problema de scheduling tipo Job Shop <strong>la</strong> función objetivo consiste en<br />
minimizar el retraso promedio de cada trabajo con respecto a un tiempo de referencia<br />
y <strong>la</strong> diferencia entre el retraso promedio correspondiente a los trabajos que siguen<br />
un orden en <strong>la</strong> utilización de los recursos y el retraso correspondiente a los trabajos<br />
que siguen el orden inverso. A cada criterio se le asigna un peso.<br />
Job tipo Scheduling de problema un de s Propiedade Shop Job tipo Scheduling de Problema al OPT de encia Correspond Shop<br />
un tren por realizado Recorrido destino - origen Operación Tren un por un tramo de Recorrido - a Dependenci una a Tren un de Visita - Recurso en tramos o as dependenci en as ferroviari Vías Trabajo<br />
de Centro Tramo - a Dependenci - a Precedenci de Re<strong>la</strong>ción un tren visitar debe que as dependenci de ordenada Secuencia Capacidad de n Restricció<br />
Trabajo<br />
Sucesión -Alcance -Cruce - a dependenci una de Capacidad -<br />
Date) (Due Trabajo un de ón FinalizaciDate) (ReleaseTrabajo<br />
un de Inicio Periódicas Salidas - Salida de Intervalo - Máximo Retraso - Llegada de Intervalo - Manual<br />
aplicación dominio en <strong>la</strong> d <strong>la</strong> s s. nes Comercial - no por - de Tiempo - Recepción de Tiempo - ento Ade<strong>la</strong>ntami - nto Mantenimie de Bandas - Cierre de Horario - Automática Sucesión - Time) de (Setup recurso del n<br />
el ) solución de factiblida Pre<strong>para</strong>ció<strong>para</strong> Expedición (necesaria de Adicionale Tiempo Restriccio - Recepción de Tiempo -<br />
Expedición retraso el y Ida sentido en viajan que trenes de promedio retraso el entre diferencia Minimizar - Trenes los de promedio retraso Minimiar - promedio Demora<strong>para</strong>da<br />
prevista Paradadelostrenesqueviajan<br />
en sentido Función Objetivo vuelta<br />
Figura 3.16: Correspondencia entre <strong>la</strong>s propiedades de un Job Shop y el Problema<br />
OPT<br />
En <strong>la</strong> Figura 5.7 se resumen <strong>la</strong>s propiedades de un problema de Scheduling tipo<br />
Job Shop identificando <strong>la</strong> correspondencia de <strong>la</strong>s mismas con <strong>la</strong>s propiedades del<br />
problema OPT.
108 3. Optimizar y P<strong>la</strong>nificar Horarios <strong>para</strong> Trenes, un problema CSOP<br />
3.6. Conclusiones<br />
En este capítulo se ha descrito y formalizado el problema de Optimizar y Programar<br />
Horario <strong>para</strong> Trenes, OPT, como un problema del tipo CSOP tal que OPT= (X, D, C, F C)<br />
[32]. Las variables, dominios, restricciones y funciones de optimización son definidas<br />
mediante los conjuntos X, D, C, y F C, respectivamente.<br />
El problema es definido por una determinada línea ferroviaria (L), un determina-<br />
do conjunto de trenes (Tnew), cuyo horario debe ser optimizado, y un determinado<br />
conjunto de trenes (T C), cuyo horario es conocido y no puede ser modificado. Cada<br />
uno de estos elementos tiene asociado un conjunto de atributos (recorrido, tipo de<br />
bloqueo, número de vías, ...,etc), cuyos valores son conocidos, y por lo tanto tratados<br />
como constantes en el modelo que formu<strong>la</strong> el problema OPT.<br />
En dicho modelo, cada variable xi en X hace referencia al instante de salida o de<br />
llegada, de un tren ti ∈ Tnew en una determinada dependencia de su recorrido. El<br />
valor correspondiente a cada variable del conjunto X será por lo tanto una unidad<br />
de tiempo, lo cual a su vez establece <strong>la</strong> granu<strong>la</strong>ridad, siendo el conjunto de números<br />
naturales el dominio correspondiente a cada variable del problema. Las restricciones<br />
del problema OPT han sido especificadas de tal forma que el conjunto de horarios<br />
resultante sea viable en una línea ferroviaria, teniendo en cuenta su infraestructura,<br />
el tráfico en <strong>la</strong> misma, <strong>la</strong>s condiciones de seguridad y de mantenimiento, así como los<br />
requerimientos comerciales establecidos <strong>para</strong> los trenes considerados. Finalmente, se<br />
han definido <strong>la</strong>s funciones de optimización que forman el conjunto F C, <strong>la</strong>s cuales<br />
determinan que el coste global del problema OPT consiste en medir de forma pon-<br />
derada el retraso promedio de los trenes en Tnew y <strong>la</strong> desviación que existe entre el<br />
retraso promedio de los trenes que viajan en un sentido y el retraso promedio de los<br />
trenes que viajan en sentido opuesto, con respecto al retraso promedio total.<br />
A partir del modelo resultante se deduce que <strong>la</strong> solución del problema OPT con-<br />
siste en hal<strong>la</strong>r un instante de salida y un instante de llegada <strong>para</strong> cada tren ti en<br />
Tnew por cada dependencia de su recorrido. La asignación realizada al conjunto de<br />
variables X debe satisfacer el conjunto de restricciones C y optimizar <strong>la</strong> función de<br />
optimización global F definida por F C <strong>para</strong> OPT. Teniendo en cuenta <strong>la</strong> instancia<br />
del CSOP que nos ocupa, esto quiere decir que <strong>la</strong> solución resultante consista en<br />
una Programación de Horarios factible que optimice <strong>la</strong> utilización de los recursos
3.6. Conclusiones 109<br />
empleados.<br />
En el Capítulo siguiente se presenta <strong>la</strong> revisión de <strong>métodos</strong> propuestos en <strong>la</strong> liter-<br />
atura <strong>para</strong> resolver problemas del tipo Programación de Horarios <strong>para</strong> Trenes, junto<br />
con el análisis que hemos realizado de cada uno. Posteriormente, en el Capítulo 5 se<br />
describe un nuevo método, el que proponemos en esta tesis <strong>para</strong> resolver problemas<br />
del tipo OPT de forma eficiente, adaptando ciertas características de <strong>métodos</strong> ya ex-<br />
istentes e incluyendo nuevas, que ayuden a satisfacer el conjunto de restricciones y<br />
a obtener una solución en el mínimo tiempo posible.
Capítulo 4<br />
Revisión de Métodos <strong>para</strong> <strong>la</strong><br />
Generación de Horarios<br />
4.1. Introducción<br />
En este capítulo revisamos aquellos modelos y <strong>métodos</strong> de solución, publica-<br />
dos en <strong>la</strong> literatura, correspondientes a <strong>la</strong> formu<strong>la</strong>ción y solución de problemas de<br />
generación y optimización de horarios, y en particu<strong>la</strong>r sobre los que aparecen en<br />
el contexto de horarios de trenes. Proporcionamos <strong>la</strong>s características que hemos<br />
identificado en estos trabajos, junto con un análisis de los mismos, indicando los<br />
inconvenientes que hemos encontrado en aplicar dichos <strong>métodos</strong> al problema OPT.<br />
Hoy en día existen numerosos trabajos publicados, pertenecientes a diferentes<br />
áreas de investigación (Ciencias de <strong>la</strong> Computación, Investigación de Operaciones,<br />
Matemática, Inteligencia Artificial), que proponen <strong>métodos</strong> o técnicas <strong>para</strong> resolver<br />
alguno de los aspectos que forman el proceso de p<strong>la</strong>nificación ferroviaria. Los tra-<br />
bajos que se realizan en este contexto se hal<strong>la</strong>n motivados no solo por el desarrollo<br />
de una teoría válida sino también por <strong>la</strong> posibilidad de llevar<strong>la</strong> a <strong>la</strong> práctica en un<br />
sector que requiere <strong>la</strong> aplicación eficiente de <strong>métodos</strong> de optimización. La reciente<br />
liberación del sector público ferroviario en muchas partes del mundo ha incrementa-<br />
do en <strong>la</strong> conciencia de este sector <strong>la</strong> necesidad de ofrecer a los clientes un servicio de<br />
calidad. Bajo <strong>la</strong> presión por mejorar, se han desarrol<strong>la</strong>do herramientas informáticas<br />
<strong>para</strong> ayudar a los p<strong>la</strong>nificadores de horarios a realizar su trabajo más eficientemente<br />
y más rápidamente. En este contexto, <strong>la</strong> p<strong>la</strong>nificación de horarios juega un papel<br />
111
112 4. Revisión de Métodos <strong>para</strong> <strong>la</strong> Generación de Horarios<br />
fundamental en el manejo y operación de un sistema de transporte público. Ac-<br />
tualmente, existen herramientas informáticas que ofrecen soporte efectivo <strong>para</strong> <strong>la</strong><br />
construcción de horarios. Muchas de <strong>la</strong>s herramientas propuestas son de <strong>la</strong> forma<br />
qué pasa si, en <strong>la</strong>s cuales el objetivo es obtener soluciones factibles rápidamente<br />
más bien que obtener una solución óptima. La generación automática de horarios<br />
factibles aún sigue siendo una tarea que consume mucho tiempo, de modo que <strong>la</strong><br />
mayoría de <strong>la</strong>s herramientas existentes <strong>para</strong> generar un horario operacionalmente<br />
viable en realidad son herramientas que modifican un horario particu<strong>la</strong>r y verifican<br />
<strong>la</strong> presencia o no de conflictos a partir de dicha modificación, como puede verse en<br />
el trabajo de Liebchen y Möhring [83].<br />
La p<strong>la</strong>nificación de horarios de trenes es una parte del proceso general de p<strong>la</strong>nifi-<br />
cación de sistemas de tráfico y que generalmente se divide en varias etapas que deben<br />
ser completadas antes de que el scheduling de trenes pueda ser creado. Estas etapas<br />
son: P<strong>la</strong>nificación de <strong>la</strong> Red, P<strong>la</strong>nificación de <strong>la</strong> Línea, P<strong>la</strong>nificación del horario de<br />
trenes, P<strong>la</strong>nificación de los vehículos y el personal. Los problemas re<strong>la</strong>cionados con<br />
el tráfico ferroviario son problemas de elevada complejidad, pertenecen a <strong>la</strong> c<strong>la</strong>se de<br />
problemas NP-hard y por lo tanto, están justificados los esfuerzos en el desarrollo de<br />
nuevas técnicas con heurísticas exactas y eficientes. Un análisis de algunos modelos<br />
y <strong>métodos</strong> aplicados <strong>para</strong> resolver este tipo de problemas es presentado por Bussieck<br />
et. al en [17] y por Cordeau et. al en [29].<br />
En <strong>la</strong> década de los 80, <strong>la</strong> aplicación y desarrollo de modelos matemáticos fue<br />
dificultoso debido a <strong>la</strong>s capacidades computacionales insuficientes y a los problemas<br />
de reunir y organizar datos relevantes, tareas que muchas compañías ferroviarias<br />
no podían abordar. Durante <strong>la</strong> última década, el uso de modelos de optimización<br />
matemática <strong>para</strong> p<strong>la</strong>nificación de transporte ferroviario y por lo tanto <strong>para</strong> <strong>la</strong> com-<br />
putación automática de líneas, horarios, personal, etc. se ha incrementado significa-<br />
tivamente (una revisión es realizada por Cordeau et. al en [29]).<br />
La situación ha cambiado considerablemente durante los últimos años. El in-<br />
cremento en <strong>la</strong> velocidad de procesadores en ordenadores y el progreso en <strong>métodos</strong><br />
matemáticos ha permitido el desarrollo y <strong>la</strong> solución de instancias de problemas más<br />
realistas [16].
4.2. Estado del Arte en <strong>la</strong> Formu<strong>la</strong>ción del Problema 113<br />
4.2. Estado del Arte en <strong>la</strong> Formu<strong>la</strong>ción del Problema<br />
El problema de asignar y optimizar horarios <strong>para</strong> trenes consiste fundamental-<br />
mente en hal<strong>la</strong>r un horario <strong>para</strong> un conjunto de trenes, el cual debe ser factible según<br />
un determinado conjunto de restricciones y debe buscar <strong>la</strong> optimización de criterios<br />
mode<strong>la</strong>dos mediante una función objetivo. La especificación de este problema puede<br />
variar en cuanto a los elementos que forman el conjunto de restricciones, los crite-<br />
rios considerados en <strong>la</strong> función objetivo, y <strong>la</strong> infraestructura ferroviaria subyacente<br />
al problema.<br />
En <strong>la</strong> década de los 70, Szpigel [112] fue el primero en formu<strong>la</strong>r el problema de<br />
scheduling ferroviario en vía única como un problema de programación matemática<br />
disyuntiva.<br />
Además de <strong>la</strong> formu<strong>la</strong>ción, Szpigel también fue el primero en indicar <strong>la</strong> similitud<br />
entre el problema de scheduling ferroviario sobre vía única y el problema de job<br />
shop scheduling (cuando <strong>la</strong> velocidad del tren es fijada a lo <strong>la</strong>rgo del tramo). Sigu-<br />
iendo <strong>la</strong> formu<strong>la</strong>ción disyuntiva de Szpigel, Jovanovic [71] presentó una formu<strong>la</strong>ción<br />
matemática <strong>para</strong> el problema de p<strong>la</strong>nificar trenes con el objetivo de minimizar el<br />
coste ponderado de los retrasos totales. Jovanovic restringió su algoritmo a resolver<br />
<strong>la</strong> instancia del problema en el cual existe un ordenamiento pre establecido entre los<br />
trenes que viajan en un mismo sentido, evitando así el ade<strong>la</strong>ntamiento entre ellos, lo<br />
cual simplifica de gran forma el problema en cuanto a número de soluciones posibles<br />
se refiere.<br />
La forma en que los trenes son manejados a lo <strong>la</strong>rgo de su viaje tiene un gran<br />
impacto en el consumo de combustible que realicen. A <strong>la</strong> luz de esto, Kraay et. al<br />
[75] propusieron un modelo de programación entera mixta no lineal más detal<strong>la</strong>do.<br />
La red considerada estaba compuesta por tramos de vía única. Además de mantener<br />
los retrasos al mínimo, <strong>la</strong> función objetivo apuntaba a regu<strong>la</strong>r <strong>la</strong> velocidad de los<br />
trenes <strong>para</strong> minimizar el consumo de combustible a lo <strong>la</strong>rgo del recorrido del tren.<br />
La función de costo de consumo de combustible propuesta por ellos está re<strong>la</strong>cionada<br />
a <strong>la</strong> cantidad de trabajo <strong>para</strong> mover el vehículo sobre un tramo y toma en cuenta:<br />
<strong>la</strong> inclinación del tramo, <strong>la</strong> resistencia del tramo, <strong>la</strong> velocidad y masa del vehículo.<br />
En su modelo <strong>la</strong> velocidad del vehículo es tratada como una variable.<br />
Una mejora sobre el trabajo de Jovanovic combinado con el modelo de Kraay
114 4. Revisión de Métodos <strong>para</strong> <strong>la</strong> Generación de Horarios<br />
<strong>para</strong> ahorrar combustible, es presentado por Higgins, [64]. Su modelo considera<br />
restricciones tales como: un retraso máximo <strong>para</strong> los trenes, prioridad entre ellos,<br />
mínimo tiempo de distancia entre trenes que viajan en el mismo sentido. A diferencia<br />
del trabajo de Jovanovic, el modelo de Higgins toma como parte del modelo <strong>la</strong><br />
restricción <strong>para</strong> evitar alcances. Se fija un límite inferior y superior <strong>para</strong> <strong>la</strong> velocidad<br />
del tren en cada tramo de su recorrido. Esta restricción limita el tiempo de viaje del<br />
tren en cada tramo, y así en el trayecto completo. Como en el trabajo de Jovanovic<br />
todas estas restricciones son implementadas como parte del método resolvedor, es<br />
decir <strong>la</strong>s restricciones se verifican a medida que se construye el horario de cada tren.<br />
La formu<strong>la</strong>ción de este tipo de problema es llevada a cabo en <strong>la</strong> mayoría de los<br />
trabajos estudiados mediante programación entera mixta no lineal (existen restric-<br />
ciones expresadas mediante ecuaciones no lineales, Kray et. al [75], Higgins et. al [64],<br />
[65]) donde <strong>la</strong>s variables de decisión binarias son utilizadas <strong>para</strong> indicar el orden en el<br />
cual un tramo es utilizado tanto por trenes consecutivos como por trenes que viajan<br />
en sentidos opuestos (tramo formado por una vía <strong>para</strong> ambos sentidos), o mediante<br />
programación entera lineal (Carey [23], [22]) donde se utilizan variables de decisión<br />
entera <strong>para</strong> indicar: si un determinado en<strong>la</strong>ce (punto de <strong>la</strong> red ferroviaria donde n<br />
líneas diferentes se unen, o se bifurcan, comúnmente se denominan n-furcaciones)<br />
forma parte o no de <strong>la</strong> ruta de un determinado tren, si un tren i precede a un tren j<br />
en un en<strong>la</strong>ce, si está permitido que un tren i preceda a un tren j en un en<strong>la</strong>ce. Otro<br />
de los formalismos empleados son los grafos disyuntivos, (Caprara et. al [20], [21],<br />
Brucker y Strotmann [15]). En estos trabajos se considera el problema de programar<br />
horario <strong>para</strong> trenes como un Job Shop, donde los nodos representan <strong>la</strong>s operaciones<br />
y los arcos son divididos en dos conjuntos, arcos conjuntivos (restricciones de prece-<br />
dencia) y arcos disyuntivos que restringen <strong>la</strong> utilización de cada recurso a una única<br />
operación por vez.<br />
Algunas restricciones, tales como:<br />
C1 - Tiempo de Sucesión,<br />
C8 - Tiempo de Recorrido,<br />
C16 - Parada Comercial.<br />
son comunes a todos los trabajos estudiados. Restricciones también consideradas en<br />
el problema OPT, descritas en el Capítulo 3.
4.2. Estado del Arte en <strong>la</strong> Formu<strong>la</strong>ción del Problema 115<br />
El resto de restricciones sin embargo no son consideradas por todos los traba-<br />
jos. Al tratarse de un problema de optimización, existen restricciones que agregan<br />
complejidad al problema porque hacen que aumente el número de soluciones y por<br />
ende el espacio de soluciones donde se debe buscar <strong>la</strong> mejor solución. Un ejemplo<br />
de este tipo de restricción es <strong>la</strong> que evita el cruce en un tramo de vía única en-<br />
tre trenes que viajan en sentido opuesto (restricción C5 - Cruce). Algunos de los<br />
trabajos estudiados, como por ejemplo: Carey [23] y Caprara et. al [20], [21], no<br />
incluyen esta restricción, es decir asumen que en cada vía sólo circu<strong>la</strong>rán trenes del<br />
mismo sentido, por lo tanto en un mismo instante de tiempo dos trenes viajando en<br />
sentido opuesto podrán ocupar el mismo tramo. No será necesario decidir cuál de<br />
los dos deberá esperar, disminuyendo así considerablemente el número de posibles<br />
soluciones del problema.<br />
Evitar alcance entre dos trenes que viajan en el mismo sentido (restricción C6<br />
- Alcance) también puede ser una restricción que contribuya a <strong>la</strong> complejidad ex-<br />
ponencial de este problema. Ya que si se permite que un tren ade<strong>la</strong>nte a otro en<br />
una estación existen dos formas de evitar que un tren alcance a otro consecutivo<br />
en el tramo. En el trabajo de Cai y Goh [18] se evita el alcance por considerar que<br />
todos los trenes tienen el mismo recorrido y todos los trenes tienen <strong>la</strong> misma veloci-<br />
dad en cada tramo de sus correspondientes recorridos. Por lo tanto, en este caso <strong>la</strong><br />
complejidad es menor.<br />
Otras restricciones aumentan <strong>la</strong> complejidad temporal correspondiente a <strong>la</strong> gen-<br />
eración de cada solución, ya que suponen mayor número de operaciones que deben<br />
ser deshechas antes de hal<strong>la</strong>r una asignación válida. Como ejemplo:<br />
C2 - Dependencias con Capacidad Limitada,<br />
C3 - Horario de Cierre,<br />
C4 - Bandas de Mantenimiento<br />
En el problema OPT el número de vías en cada dependencia es un parámetro del<br />
problema, es un valor finito mayor o igual a uno. Durante <strong>la</strong> generación de una<br />
solución en <strong>la</strong> cual se debe satisfacer <strong>la</strong> restricción C2 deberá deshacerse el valor<br />
asignado como instante de llegada a un tren en el caso que dicho instante suponga<br />
<strong>la</strong> llegada del tren a una estación sin vías disponibles. Ciertos trabajos, Kraay et.
116 4. Revisión de Métodos <strong>para</strong> <strong>la</strong> Generación de Horarios<br />
al [75], Cai y Goh [18], Higgins et. al [64], [65], Caprara et. al [20], consideran como<br />
máximo dos el número de vías en cada estación. Otros trabajos consideran el número<br />
de vías como un parámetro (número de vías finito mayor a uno) del problema Cai<br />
y Goh [18], Carey [23], Caprara et. al [21].<br />
Tener en cuenta <strong>la</strong>s operaciones de mantenimiento llevadas a cabo durante un<br />
intervalo de tiempo implica en el trabajo de Caprara et. al [21] prohibir que un tren<br />
llegue a una estación del tramo en un instante perteneciente a dicho intervalo de<br />
mantenimiento. En los demás trabajos estudiados esta restricción no es considerada.<br />
En nuestro trabajo también se considera esta restricción, pero <strong>la</strong> diferencia con <strong>la</strong><br />
formu<strong>la</strong>ción realizada en [21] está en el caso que <strong>la</strong> operación de mantenimiento<br />
se lleve a cabo en un tramo en el que existe más de una vía. En ese caso, en el<br />
problema OPT se utiliza una de <strong>la</strong>s vías <strong>para</strong> circu<strong>la</strong>ción quedando el tramo de vía<br />
doble convertido en un tramo de vía única durante el intervalo de tiempo que dure<br />
<strong>la</strong> operación de mantenimiento. Esta consideración agrega mayor complejidad, ya<br />
que en ciertos intervalos de tiempo una sección de vía se volverá vía única, si era de<br />
vía doble, y fuera de este intervalo seguirá siendo vía doble. En el caso que <strong>la</strong> vía<br />
tenga una so<strong>la</strong> vía, entonces el comportamiento es el mismo que el presentado en<br />
[21].<br />
En cuanto a <strong>la</strong> función objetivo se considera generalmente minimizar el retraso<br />
promedio de los trenes [75], [64], [65]. En [64], [65], otro criterio utilizado en <strong>la</strong><br />
función objetivo es el costo de <strong>la</strong>s operaciones. En [75] cada tren tiene una prioridad<br />
por lo que <strong>la</strong> suma de retrasos en <strong>la</strong> función objetivo es ponderada, en este mismo<br />
trabajo se considera además minimizar el consumo de combustible como otro de<br />
los criterios utilizados en <strong>la</strong> función objetivo. En [23], [22] <strong>la</strong> función objetivo del<br />
problema consiste en minimizar <strong>la</strong> suma de costos asociados al instante de salida, al<br />
instante de llegada, al tiempo de recorrido, y al tiempo de <strong>para</strong>da, por cada tren y<br />
cada en<strong>la</strong>ce utilizado en <strong>la</strong> ruta del mismo. En el problema OPT <strong>la</strong> función objetivo<br />
consta de dos criterios, uno de ellos consiste en minimizar el retraso promedio de<br />
los trenes con respecto a un determinado tiempo de referencia y el otro consiste en<br />
minimizar <strong>la</strong> diferencia de retraso promedio entre los trenes de un sentido y otro.<br />
Cada criterio tiene un peso, el cual es un parámetro más del problema, según sea el<br />
objetivo más importante que se persigue con <strong>la</strong> solución del problema.<br />
En ciertos trabajos como en [23] y [22] el problema de asignar horarios viene
4.2. Estado del Arte en <strong>la</strong> Formu<strong>la</strong>ción del Problema 117<br />
acompañado del problema de encontrar una ruta <strong>para</strong> cada tren, esto es secuencia<br />
de estaciones a través de más de una línea ferroviaria unidas por estructuras de-<br />
nominadas nodos, así como <strong>la</strong> elección de p<strong>la</strong>taformas a utilizar en cada estación<br />
de <strong>la</strong> ruta seleccionada. En otros trabajos sin embargo, [75], [18], [64], [65], [20],<br />
[21], al igual que en OPT se utiliza una determinada línea ferroviaria, es decir una<br />
determinada secuencia de estaciones, en <strong>la</strong> que no existen n-furcaciones y el recor-<br />
rido de todos los trenes consiste en un sub conjunto de dicha secuencia. El objetivo<br />
es optimizar el horario de trenes que se desean agregar en una determinada línea<br />
ferroviaria. La ruta de cada tren ya está definida.<br />
Otra de <strong>la</strong>s características común en los trabajos mencionados es <strong>la</strong> inexisten-<br />
cia de trenes en circu<strong>la</strong>ción previamente. Sin embargo, en <strong>la</strong> práctica es habitual<br />
<strong>la</strong> consideración de un conjunto de trenes previamente p<strong>la</strong>nificados cuyos tiempos<br />
de llegada/salida deben respetarse cuando se considere agregar nuevos trenes a <strong>la</strong><br />
misma línea. El objetivo sería entonces encontrar una p<strong>la</strong>nificación óptima <strong>para</strong> los<br />
nuevos trenes que satisfaga el conjunto de restricciones considerado y que además<br />
no modifique el horario de los trenes p<strong>la</strong>nificados previamente. Esta posibilidad es<br />
contemp<strong>la</strong>da en OPT y por su parte también <strong>la</strong> consideran Caprara et. al en [21].<br />
Otra aproximación utilizada <strong>para</strong> formalizar el problema es <strong>la</strong> programación de<br />
restricciones. Concretamente en el trabajo de Chiu et. al [27], se describe una es-<br />
trategia de rescheduling <strong>para</strong> ser usada en PRACOSY (People’s Republic of China<br />
Railway Computing System), un sistema <strong>para</strong> <strong>la</strong> automatización de los ferrocarriles<br />
chinos. PRACOSY es un sistema interactivo el cual provee al usuario con <strong>la</strong> posibil-<br />
idad de sugerir cambios a un dado horario. Estos cambios son considerados por el<br />
sistema de rescheduling como restricciones adicionales <strong>para</strong> el problema. El principal<br />
objetivo de este sistema es proveer una solución factible al usuario. Cuando esto no<br />
es posible por solo propagar <strong>la</strong>s restricciones del problema, entonces se utiliza un<br />
algoritmo de primero en profundidad <strong>para</strong> buscar una solución. El usuario puede<br />
interrumpir el proceso de búsqueda en cualquier momento, por ejemplo en el caso<br />
que considere excesivo el tiempo empleado <strong>para</strong> obtener una solución factible. En<br />
ese caso el usuario deberá reconsiderar sus cambios al horario. Una topología gen-<br />
eral de <strong>la</strong> red es considerada por el sistema, y seis restricciones son manejadas por<br />
el sistema:<br />
Mínimo Tiempo de Recorrido,
118 4. Revisión de Métodos <strong>para</strong> <strong>la</strong> Generación de Horarios<br />
Tiempo de Sucesión,<br />
Tiempo de Recepción,<br />
Diferencia entre Instantes de Salida,<br />
Evitar Alcances,<br />
Evitar Cruces,<br />
Parada Comercial.<br />
Otro trabajo re<strong>la</strong>cionado es el de Kreuger et. al. [76]. Su trabajo está basado en<br />
utilizar Programación Lógica de Restricciones <strong>para</strong> resolver el problema de schedul-<br />
ing de trenes sobre vía única. Lo considera un problema de scheduling tipo Job<br />
Shop. Su trabajo tiene como objetivo encontrar un scheduling factible por elimi-<br />
nar conflictos entre trenes que son considerados en su problema. No agrega otras<br />
restricciones tales como capacidad de cada estación, horario de cierre en <strong>la</strong>s mis-<br />
mas, tiempos de se<strong>para</strong>ción entre trenes que llegan y salen de una misma estación,<br />
que agregan mucha complejidad al problema y hacen que el conjunto de horarios<br />
entregados como solución tengan una probabilidad mayor de ser operacionalmente<br />
válidos. En su trabajo tampoco se indica <strong>la</strong> cantidad de conflictos que pueden ser<br />
resueltos generalmente, por lo que no se tiene una medida del tamaño de <strong>la</strong> red y<br />
cantidad de trenes considerados. Tampoco se establece un límite <strong>para</strong> <strong>la</strong> cantidad<br />
de tiempo que cada tren deba esperar en una estación <strong>para</strong> evitar un conflicto, ya<br />
que en <strong>la</strong> función objetivo este tiempo no está limitado.<br />
Análisis de los Modelos<br />
En <strong>la</strong> mayoría de los trabajos estudiados se ha utilizado <strong>la</strong> programación matemática<br />
<strong>para</strong> mode<strong>la</strong>r el problema de programar horario <strong>para</strong> trenes, utilizando modelos MIP<br />
(lineal o no lineal) o modelos ILP. En cada uno de estos trabajos se establece el con-<br />
junto de restricciones que se considera <strong>para</strong> decidir si una asignación es o no factible.<br />
De este conjunto de restricciones depende en gran medida <strong>la</strong> utilización o no de este<br />
tipo de formu<strong>la</strong>ción.
4.2. Estado del Arte en <strong>la</strong> Formu<strong>la</strong>ción del Problema 119<br />
En nuestro caso, debido al conjunto de restricciones considerado en el problema<br />
OPT, <strong>la</strong> utilización de un modelo matemático implica un gran esfuerzo en <strong>la</strong> rep-<br />
resentación de ciertas restricciones (Bandas de Mantenimiento, Horarios de Cierre<br />
según el tipo de cierre el comportamiento esperado es distinto, Capacidad limitada<br />
en una estación, Demora por <strong>para</strong>da no prevista, Sucesión Manual implica que <strong>la</strong><br />
siguiente estación debe estar abierta). Además de encontrarnos con una expresivi-<br />
dad limitada en estos modelos, mode<strong>la</strong>r estas restricciones implicaría <strong>la</strong> utilización<br />
de variables de decisión binarias necesariamente. Luego, el esfuerzo que conlleva<br />
expresar cada una de <strong>la</strong>s restricciones mediante un modelo matemático no se justi-<br />
ficaría si no se utiliza un método <strong>para</strong> resolver el modelo que utilice alguna de <strong>la</strong>s<br />
propiedades matemáticas, tales como re<strong>la</strong>jación de Lagrange, un procedimiento de<br />
generación de columnas, p<strong>la</strong>nos de corte, etc. Aplicar estos <strong>métodos</strong> resulta en pro-<br />
cedimientos menos eficientes por <strong>la</strong> gran cantidad de variables binarias que deberían<br />
ser utilizadas <strong>para</strong> mode<strong>la</strong>r el conjunto de restricciones de OPT en una instancia real<br />
del problema.<br />
Consideramos que <strong>la</strong> programación de restricciones es el lenguaje que mejor se<br />
adapta a <strong>la</strong> formu<strong>la</strong>ción del problema OPT. Aun cuando no se utilice una técnica<br />
CSP <strong>para</strong> resolver el modelo, el lenguaje de programación de restricciones permite<br />
utilizar ciertas notaciones que ayudan a formu<strong>la</strong>r <strong>la</strong>s restricciones más complejas<br />
teniendo así un modelo sobre el cual se puede p<strong>la</strong>ntear, sin ambigüedad, un método<br />
<strong>para</strong> resolver el problema subyacente.<br />
Otra de <strong>la</strong>s aproximaciones utilizadas en trabajos re<strong>la</strong>cionados es <strong>la</strong> representación<br />
del problema de programación de horarios utilizando un grafo disyuntivo o un grafo<br />
alternativo, Brucker y Strotmann [15]. En estos trabajos solo se representan dos<br />
tipos de restricciones, <strong>la</strong>s de precedencia y <strong>la</strong>s de exclusividad en el uso del tramo.<br />
No se da ninguna información acerca de cómo representar otras restricciones tam-<br />
bién consideradas en el problema OPT. En el caso que en OPT solo se consideraran<br />
restricciones de precedencia (Tiempo de recorrido) y restricciones de exclusividad<br />
en el tramo (cruce, alcance) el problema OPT podría ser representado por un grafo<br />
simi<strong>la</strong>r al mostrado en <strong>la</strong> Figura 4.1. En el problema OPT determinar <strong>la</strong> secuencia<br />
de operaciones en una máquina es equivalente a determinar <strong>la</strong> secuencia en <strong>la</strong> cual<br />
determinados trenes utilizarán un tramo. En <strong>la</strong> Figura 4.1 se muestra el recorrido<br />
de dos trenes en una línea ferroviaria compuesta por tres tramos, todos ellos de vía
120 4. Revisión de Métodos <strong>para</strong> <strong>la</strong> Generación de Horarios<br />
máquina= trabajo= máquina= trabajo= máquina= 1 1tramo2<br />
2tramo3<br />
3tramo 1 1tren2<br />
2tren 22 tiempo a12<br />
a a31<br />
a21 a V<br />
Figura 4.1: El problema OPT como un problema tipo Job Shop U<br />
estaciones<br />
22 11<br />
a21 a 21 a 11<br />
única. Las actividades aij representan el paso del tren j por el tramo i. Debido a<br />
a a31<br />
que ambos trenes requieren pasar por los tramos 1 y 2, en el grafo de <strong>la</strong> Figura 4.1<br />
se utilizan arcos disyuntivos <strong>para</strong> indicar que debe establecerse un orden en el uso<br />
de dichos tramos, ya que solo disponen de una vía.<br />
El problema tipo Job Shop es un problema de optimización, por lo tanto tiene<br />
una función que evalúa cada solución <strong>para</strong> indicar el nivel de optimalidad de <strong>la</strong><br />
misma. Aunque el criterio a ser utilizado no es un criterio fijo, es decir forma parte<br />
de <strong>la</strong> formu<strong>la</strong>ción que se desee hacer del problema, por lo general, el makespan suele<br />
ser una medida muy utilizada <strong>para</strong> medir <strong>la</strong> optimalidad de soluciones en este tipo<br />
de problemas. En el caso del problema OPT el valor del makespan puede no aportar<br />
muchos datos acerca de <strong>la</strong> calidad de <strong>la</strong> solución entregada, por lo tanto son otros<br />
los criterios que componen <strong>la</strong> función objetivo utilizada por OPT. En <strong>la</strong> Figura 4.2<br />
se da un ejemplo de esta situación. Dos trenes compiten por el uso de un tramo,<br />
es decir dos actividades requieren el uso de una misma máquina a <strong>la</strong> vez. En <strong>la</strong><br />
situación 2 se propone un orden de utilización y en <strong>la</strong> situación 3 se propone un<br />
orden diferente. Según <strong>la</strong> definición de makespan dada por Pinedo [98], el valor del<br />
makespan es el mismo tanto <strong>para</strong> <strong>la</strong> solución entregada en <strong>la</strong> situación 2 como <strong>para</strong> <strong>la</strong><br />
solución entregada en <strong>la</strong> situación 3. Sin embargo el retraso promedio es menor en <strong>la</strong><br />
situación 2. En el problema que consideramos en esta tesis, uno de los componentes
4.3. Estado del Arte - Métodos de Solución 121<br />
estaciones<br />
estaciones<br />
makespan<br />
makespan<br />
tiempo 1<br />
tiempo<br />
2<br />
Figura 4.2: Valor de makespan puede no ser suficiente en <strong>la</strong> función objetivo del<br />
problema OPT<br />
3 makespan tiempo estaciones<br />
de <strong>la</strong> función objetivo no será el makespan, sino el retraso promedio de los trenes.<br />
Una descripción más detal<strong>la</strong>da de <strong>la</strong> función objetivo utilizada en el problema OPT<br />
es dada en <strong>la</strong> Sección 3.4.3 del Capítulo 3.<br />
El consumo de combustible es otro criterio utilizado en algunos trabajos como<br />
parte de <strong>la</strong> función objetivo. Esto es llevado a cabo regu<strong>la</strong>ndo <strong>la</strong> velocidad de los<br />
trenes en los tramos. En el caso del problema OPT <strong>la</strong> regu<strong>la</strong>ción de <strong>la</strong> velocidad,<br />
esto es aceleración/desaceleración, viene dada por otras consideraciones ya fijadas<br />
en cada tramo por el usuario final.<br />
4.3. Estado del Arte - Métodos de Solución<br />
Cada uno de los trabajos estudiados además de formu<strong>la</strong>r el problema propone<br />
un método <strong>para</strong> resolver el modelo correspondiente. Hemos agrupado estos trabajos
122 4. Revisión de Métodos <strong>para</strong> <strong>la</strong> Generación de Horarios<br />
según <strong>la</strong> aproximación utilizada <strong>para</strong> resolver los correspondientes modelos. En cada<br />
sub sección se proporciona una descripción de los mismos junto con un análisis que<br />
identifica sus características y si cabe, inconvenientes <strong>para</strong> aplicarlos al problema<br />
OPT.<br />
4.3.1. Re<strong>la</strong>jación Lagrangiana<br />
Caprara et. al [20] utilizan un modelo en el cual asocian multiplicadores de<br />
Lagrange a cada restricción que es re<strong>la</strong>jada. Las restricciones que son re<strong>la</strong>jadas cor-<br />
responden a aquel<strong>la</strong>s que mode<strong>la</strong>n <strong>la</strong> capacidad del tramo y el tiempo de sucesión.<br />
En <strong>la</strong> función objetivo se utilizan penalizaciones Lagrangianas <strong>para</strong> <strong>la</strong>s nuevas vari-<br />
ables. El procedimiento de optimización consiste en aplicar en cada iteración un<br />
procedimiento de optimización del sub gradiente. A partir del resultado obtenido se<br />
programa el horario de cada tren, uno por vez, según el orden en el que cada tren<br />
quedó en el ranking determinado por el beneficio asociado a cada uno.<br />
4.3.2. Branch and Bound<br />
El trabajo realizado por Szpigel, 1972 fue el primero en considerar <strong>la</strong>s restric-<br />
ciones de cruce y alcance. El método de solución empleado estaba basado sobre<br />
programación lineal, incorporado dentro del algoritmo standard branch-and-bound<br />
<strong>para</strong> problema de scheduling de máquinas. Sin embargo, Szpigel no aplicó ninguna<br />
técnica lower-bound en su método. La <strong>eficiencia</strong> del método era pobre al resolver<br />
problemas con cinco tramos y diez trenes.<br />
Jovanovic y Harker [72] proponen el sistema SCAN I, el cual considera restric-<br />
ciones <strong>para</strong> evitar cruce, alcance y mantener una mínima diferencia de tiempo entre<br />
<strong>la</strong>s llegadas y salidas a/de una estación. El sistema empieza por considerar un sched-<br />
ule propuesto, y verifica si dicho schedule incumple o no alguna de <strong>la</strong>s restricciones<br />
consideradas. El problema es mode<strong>la</strong>do mediante un modelo MIP y es resuelto uti-<br />
lizando un procedimiento branch and bound que obtiene una solución factible. No<br />
se considera ninguna función objetivo.<br />
En el trabajo presentado por Higgins et al. se propone una técnica branch and<br />
bound. Cada nodo representa un conflicto (cruce o alcance) que será resuelto al re-<br />
trasar a un determinado tren de los dos que intervienen en el conflicto. Al seleccionar
4.3. Estado del Arte - Métodos de Solución 123<br />
el tren a retrasar, se calcu<strong>la</strong> el costo de <strong>la</strong> solución sumando al costo por retrasar<br />
los trenes seleccionados hasta el momento una estimación del costo determinado por<br />
los conflictos que faltan por resolver. Cuando todos los conflictos son resueltos se<br />
obtiene el costo de <strong>la</strong> solución. Si ese costo es mejor que el hasta ahora obtenido en-<br />
tonces pasa a ser el límite superior del problema. Cada vez que se selecciona un nodo<br />
y se estima el costo de esa solución. Si esa estimación es mayor al límite superior,<br />
entonces esa solución es abortada.<br />
Figura 4.3: Técnica branch and bound propuesta por Higgins et al. [64] Mejor<br />
del<br />
Higgins et. al [64] presentan un algoritmo tipo branch and bound <strong>para</strong> resolver Solución -LímiteSuperior<br />
CostoReal<br />
C, 1 j Inicio<br />
i C, 2 j C, 2 Real Costo costo del Estimación costo i<br />
el problema de asignar horarios a trenes en una línea con vía única. Proponen una<br />
1 Estimación C,<br />
heurística <strong>para</strong> calcu<strong>la</strong>r el valor de un límite inferior, que representa el mínimo<br />
costo que podría tener resolver todos los conflictos restantes a partir de un punto<br />
de <strong>la</strong> solución. Esto sirve <strong>para</strong> estimar el costo de una solución siendo generada. Si<br />
este valor es mayor al valor del límite superior obtenido hasta entonces, esto es el<br />
valor de <strong>la</strong> mejor solución obtenida hasta entonces. Entonces esta solución debe ser<br />
interrumpida o lo que es lo mismo podar <strong>la</strong> rama del árbol.<br />
En el trabajo de Silva [110], se propone un método heurístico <strong>para</strong> decidir qué ra-<br />
mas podar en un método tipo branch and bound. En este trabajo se asocia el<br />
problema de programación de horarios con un problema tipo Job Shop. Considera<br />
únicamente un sub conjunto de <strong>la</strong>s restricciones consideradas por OPT.
124 4. Revisión de Métodos <strong>para</strong> <strong>la</strong> Generación de Horarios<br />
Análisis de los Métodos matemáticos y el problema OPT<br />
La re<strong>la</strong>jación de Lagrange al igual que otros <strong>métodos</strong> matemáticos como gen-<br />
eración de columnas, branch and cut o branch and price requieren primeramente<br />
que se cuente con un modelo matemático, sobre el cual se pueda trabajar <strong>para</strong> re-<br />
<strong>la</strong>jar aquel<strong>la</strong>s restricciones que implican alternativas de decisión. En nuestro caso<br />
existen muchas restricciones muy difíciles de ser mode<strong>la</strong>das mediante un modelo<br />
matemático, y en el caso que esto sea posible el modelo aumentaría en gran medida<br />
su complejidad debido al incremento en el uso de variables binarias. En el caso de<br />
<strong>la</strong> re<strong>la</strong>jación Lagrangiana sería necesario un elevado número de multiplicadores, y<br />
hal<strong>la</strong>r el valor más adecuado <strong>para</strong> cada uno significaría mucho tiempo de proce-<br />
samiento, que no implicaría necesariamente obtener una solución óptima. En cada<br />
iteración existe una alta probabilidad de que el problema aumente por agregar <strong>la</strong>s<br />
restricciones <strong>para</strong> hacer que el problema dual se convierta en factible, <strong>la</strong> conver-<br />
gencia puede ser muy lenta. Consideramos que empleando <strong>la</strong> misma cantidad de<br />
tiempo se pueden obtener mejores soluciones empleando <strong>métodos</strong> constructivos que<br />
utilicen heurísticas basadas en el conocimiento del problema <strong>para</strong> decidir entre <strong>la</strong>s<br />
alternativas que existen en una programación de horarios.<br />
Aplicar el método branch and bound al problema OPT puede ser considerado<br />
como construir un árbol de búsqueda binario, donde en cada nivel se decide acerca de<br />
un conflicto que requiere una decisión entre dos alternativas (cruce, alcance). Cada<br />
decisión implica reconstruir los horarios hasta que aparezca el siguiente conflicto<br />
en el tiempo, sobre el cual debe tomarse <strong>la</strong> siguiente decisión. Cada rama de este<br />
árbol binario puede ser podada si se re<strong>la</strong>jan todas <strong>la</strong>s restricciones que implican<br />
decisiones binarias y se obtiene un costo superior al mejor obtenido hasta entonces.<br />
La construcción del árbol es realizada de <strong>la</strong> forma primero en profundidad de tal<br />
forma que se asegure <strong>la</strong> optimalidad sin repetir soluciones y utilizando <strong>la</strong> menor<br />
cantidad de espacio computacional. En el caso del problema OPT esto implicaría<br />
recorrer el espacio de soluciones en un orden dado por <strong>la</strong> forma en que se recorre el<br />
árbol, en este caso por utilizar una aproximación primero en profundidad.
4.3. Estado del Arte - Métodos de Solución 125<br />
Figura 4.4: Recorrido Ideal de 4 Trenes, cuyo horario se desea Programar tramo<br />
1 tramo2 tramo3 estaciones<br />
t2<br />
1<br />
P<br />
t2<br />
t<br />
P 4 t 3 t t<br />
tiempo<br />
t t3<br />
t t t3<br />
3 3 4 t 4 t 4 t 4 t 2 t1 1<br />
Figura 4.5: Arbol de Soluciones <strong>para</strong> <strong>la</strong> instancia P del problema OPT<br />
Búsqueda Beam y el Problema OPT<br />
Si modeláramos el problema OPT en función de los cruces, ordenados según el<br />
instante de tiempo en que se producen, <strong>para</strong> <strong>la</strong> instancia ”P”del problema OPT<br />
(Figura 4.4) se obtendría el árbol de búsqueda representado en <strong>la</strong> Figura 4.5.<br />
Cada nivel k de este árbol representa al cruce que aparece en el tiempo en orden<br />
k. Los nodos pertenecientes al nivel k representan a los trenes ti involucrados en<br />
el cruce considerado en dicho nivel. Por ejemplo: en <strong>la</strong> instancia considerada en<br />
<strong>la</strong> Figura 4.4 el cruce que se produce en el menor instante de tiempo es entre los<br />
trenes t1 y t2. Por lo tanto en el nivel 1 del árbol existen dos nodos etiquetados t1<br />
y t2 respectivamente. Seleccionar el nodo t1 significaría retrasar al tren t1 el tiempo<br />
mínimo hasta que t2 libere el tramo 2. Si por el contrario se decide retrasar a t2<br />
hasta que t1 libere el tramo 2, se deberá seleccionar el nodo t2 del árbol de búsqueda.<br />
Cada vez que se resuelve un cruce por retrasar uno u otro tren, se comprueban
126 4. Revisión de Métodos <strong>para</strong> <strong>la</strong> Generación de Horarios<br />
otras restricciones del problema y se actualiza el estado de <strong>la</strong> instancia del problema.<br />
Así en <strong>la</strong> Figura 4.6a se observa el estado actualizado de <strong>la</strong> instancia del problema<br />
luego de retrasar a t1 <strong>para</strong> resolver el cruce. En <strong>la</strong> Figura 4.6b se observa el estado en<br />
el que quedaría <strong>la</strong> instancia considerada luego de retrasar a t2 <strong>para</strong> resolver el primer<br />
cruce considerado. Es el estado actualizado el que se considera <strong>para</strong> determinar el<br />
siguiente cruce a resolver.<br />
tramo(a) En<br />
12<br />
tramo2 tramo3 estaciones<br />
t<br />
el cruce 1 espera el tren t1 t3<br />
t4tiempo<br />
1<br />
t<br />
tramo(b) En<br />
11<br />
tiempo 2<br />
el cruce 1 espera el tren t2 tramo3 tramo2t<br />
estaciones<br />
El árbol de búsqueda correspondiente a <strong>la</strong> instancia del ejemplo determina siete<br />
soluciones <strong>para</strong> <strong>la</strong> misma. Considerando como función objetivo el retraso promedio<br />
de los trenes, en <strong>la</strong> Figura 4.6a se muestra <strong>la</strong> mejor solución obtenida, y en <strong>la</strong><br />
Figura 4.6b <strong>la</strong> peor solución <strong>para</strong> <strong>la</strong> instancia considerada. Como puede verse en<br />
4 t 3 tt<br />
este pequeño ejemplo <strong>la</strong> forma en que es resuelto cada cruce determina el estado en<br />
el cual se encontrará una determinada instancia. Prever cuáles serán los siguientes<br />
estados de una instancia a partir de una determinada decisión es un problema muy<br />
complejo y con un alto costo computacional si uno desea predecir un escenario lo<br />
más cercano al real.<br />
estaciones<br />
t(a) Solución Optima 4t4<br />
t<br />
1<br />
t 4 t 3 t 2<br />
1<br />
t<br />
tiempo<br />
estaciones<br />
t<br />
2 t 4 t 3 t<br />
2 3 t tiempo<br />
1<br />
t 3<br />
t<br />
(b) Peor Solución
4.3. Estado del Arte - Métodos de Solución 127<br />
Es por ello que una búsqueda Beam en <strong>la</strong> cual el aspecto central es el proced-<br />
imiento que decide qué nodos podar en cada nivel, es muy complejo de obtener en<br />
el problema OPT a menos que se opte por un procedimiento menos complejo y se<br />
arriesgue un porcentaje alto de optimalidad.<br />
4.3.3. Búsqueda Local<br />
En el trabajo de Higgins et al. [65] se propone una heurística de búsqueda local<br />
(LSH). Antes de que <strong>la</strong> heurística sea aplicada se obtiene una solución inicial por<br />
aplicar <strong>la</strong> técnica de branch and bound publicada en [64].<br />
A partir de <strong>la</strong> solución inicial, se construye el conjunto CR = {CR1, CR2, ..., CRCO},<br />
donde CRi, 1 ≤ i ≤ CO es <strong>la</strong> descripción de cómo el conflicto i ha sido resuelto,<br />
CRi = {tren retrasado, tren con derecho a via, tramo donde se produce el conflicto<br />
i}. Los conflictos de CR so numeran según el orden en el que aparecen en el tiempo;<br />
CR1 es el primer conflicto y CRCO es el último.<br />
La heurística LSH está basada en reemp<strong>la</strong>zar repetidamente <strong>la</strong> solución actual<br />
por una solución vecina mejorada. El vecindario de una solución se obtiene por<br />
desp<strong>la</strong>zar un conflicto y todos los adyacentes al mismo que además tengan un tren<br />
en común. La selección de los conflictos <strong>para</strong> ser desp<strong>la</strong>zados es realizada en el mismo<br />
orden que aparecen en el tiempo. El nuevo vecindario es definido como sigue: cuando<br />
se considera un conflicto particu<strong>la</strong>r (por ejemplo el conflicto c entre el tren de vuelta<br />
i y el tren de ida j), existen cuatro posibles movimientos. Sea DR ⊂ CR el conjunto<br />
de conflictos restantes del tren i además del conflicto c. Uno de los movimientos<br />
consiste en mover cada uno de los conflictos en DR a una estación anterior, otro<br />
de los movimientos sería mover cada uno de los conflictos en DR a una estación<br />
posterior, y los dos movimientos restantes serían iguales, solo que <strong>para</strong> el tren j. Por<br />
cada uno de estos movimientos se obtiene un vecindario. Se resuelve cada solución<br />
vecina obteniendo el valor de <strong>la</strong> función objetivo. Si es mejor, reemp<strong>la</strong>za a <strong>la</strong> solución<br />
actual.<br />
En el trabajo de Isaai y Singh [68] se describe una heurística híbrida basada en<br />
restricciones y una búsqueda Tabu <strong>para</strong> resolver el problema de scheduling sobre<br />
una red de una so<strong>la</strong> línea, el cual está enfocado en encontrar soluciones rápidas<br />
más bien que soluciones óptimas. Para analizar <strong>la</strong> calidad del scheduling durante
128 4. Revisión de Métodos <strong>para</strong> <strong>la</strong> Generación de Horarios<br />
los experimentos se utilizan tres criterios. El primero es el Promedio del Tiempo de<br />
Espera. Para evitar <strong>la</strong> desventaja de tener muy buenos horarios <strong>para</strong> algunos trenes<br />
a cambio que otros tengan unos horarios muy malos, se ha utilizado el Promedio<br />
de <strong>la</strong> Re<strong>la</strong>ción del Retraso de un tren con respecto a su tiempo de recorrido ideal.<br />
La tercera función de costo toma en cuenta <strong>la</strong> importancia de cada tren asignando<br />
un peso a cada uno. En el modelo de Isaai y Singh no se permite que dos trenes<br />
que viajan en el mismo sentido ocupen un mismo tramo, el primero debe llegar a <strong>la</strong><br />
siguiente estación <strong>para</strong> que el siguiente tren pueda salir de <strong>la</strong> estación anterior. Es<br />
decir solo se considera lo que hemos definido como tiempo de sucesión manual.<br />
Isaai y Singh [68], [69], indican en su trabajo que el problema más grande resuelto<br />
incluye 22 trenes, 51 estaciones, 10 tramos de vía doble y 62 conflictos en los tramos<br />
de vía única. En los trabajos de Isaai se considera que los puntos inicial y final de<br />
un tramo de vía doble es una estación con dos vías en donde en una de el<strong>la</strong>s un<br />
tren puede apartarse y por <strong>la</strong> otra pasar un tren. Por lo tanto, si consideramos cada<br />
tramo de vía doble como una abstracción de una estación con capacidad igual a<br />
dos, en sus trabajos <strong>la</strong> re<strong>la</strong>ción de conflictos a estaciones es cercana a uno <strong>para</strong> el<br />
problema más grande, y de 1:3 por estación en promedio.<br />
En el trabajo de Cai y Goh [18] se considera una línea ferroviaria de <strong>la</strong>rgo<br />
recorrido de vía única con varias estaciones dispuestas en forma fija a lo <strong>la</strong>rgo de <strong>la</strong><br />
línea, N trenes viajando en diferentes sentidos, cada uno con un instante de salida<br />
inicial programado y tienen un instante de llegada máximo a sus respectivos destinos<br />
que debe ser satisfecho. Se asume que en cada estación pueden estar a <strong>la</strong> vez a lo<br />
sumo dos trenes. El posible cruce entre dos trenes en un tramo de vía única puede<br />
ser gestionado únicamente en estaciones, lo cual consiste en detener a uno de los<br />
trenes involucrados un tiempo mayor al de su <strong>para</strong>da programada en <strong>la</strong> estación<br />
que corresponda. El problema consiste en asignar un horario factible de acuerdo a<br />
<strong>la</strong>s restricciones de cruce, alcance e instante de llegada a cada tren minimizando el<br />
costo total debido a los retrasos resultantes de <strong>la</strong>s <strong>para</strong>das no programadas <strong>para</strong><br />
evitar cruces entre trenes que viajan en sentido opuesto.<br />
La variable entera ξik es definida por<br />
⎧<br />
⎨ 1 si el tren i <strong>para</strong> en <strong>la</strong> estación k<br />
ξik =<br />
⎩ 0 si el tren i no <strong>para</strong> en <strong>la</strong> estación k<br />
Se dice que el conjunto de variables enteras ξik es factible si el schedule resultante
4.3. Estado del Arte - Métodos de Solución 129<br />
es factible con respecto a <strong>la</strong>s restricciones de cruce y al número de trenes que puede<br />
haber en cada estación en un mismo instante de tiempo.<br />
Las velocidades de todos los trenes viajando en un mismo sentido son iguales<br />
en los tramos comunes. La primera y <strong>la</strong> última estación son terminales especiales<br />
que pueden mantener tantos trenes como haga falta. Ningún tren puede retroceder,<br />
es decir todos los trenes siguen un determinado sentido desde su estación inicial<br />
hasta su estación final, y no pueden cambiar de sentido durante su recorrido. El<br />
recorrido de todos los trenes está compuesto por el mismo conjunto de estaciones.<br />
Aunque, existen trenes que <strong>la</strong>s recorren en un sentido y otros que <strong>la</strong>s recorren en<br />
el sentido inverso. Debido a que <strong>la</strong> velocidad de todos los trenes es <strong>la</strong> misma en<br />
todos los tramos y que además todos recorren el mismo conjunto de estaciones no<br />
es posible que exista ade<strong>la</strong>ntamientos, por lo tanto <strong>la</strong> complejidad del problema se<br />
reduce considerablemente.<br />
Cada conflicto se resuelve de <strong>la</strong> siguiente manera. Dado dos trenes i y j que<br />
requieran utilizar un mismo tramo de vía única en un mismo instante de tiempo, se<br />
calcu<strong>la</strong> el tiempo que deberá permanecer i en <strong>la</strong> estación que inicia el tramo según su<br />
recorrido, y el tiempo que deberá esperar j en <strong>la</strong> estación que inicia el tramo según<br />
su recorrido, de tal forma que no se produzca el cruce entre ellos. Se selecciona aquel<br />
tren cuya <strong>para</strong>da sea menor.<br />
En el caso que más de dos trenes tengan un conflicto en el mismo tramo se<br />
selecciona el grupo de trenes de un sentido que deberá pasar primero según el mismo<br />
criterio pero en este caso se suman <strong>la</strong>s <strong>para</strong>das de todos los trenes participando en<br />
el conflicto por sentido.<br />
Carey seña<strong>la</strong> en [23] que <strong>la</strong> estrategia básica consiste en seleccionar el camino<br />
que seguirá cada tren a través de <strong>la</strong> red ferroviaria y asignarle un horario en dicha<br />
ruta tren a tren. Para ello se resuelve el problema de programación entera lineal<br />
un tren a <strong>la</strong> vez. Esto es, se fija el orden establecido <strong>para</strong> los trenes seleccionados<br />
previamente sin fijar su horario. Se introducen <strong>la</strong>s variables enteras correspondientes<br />
a <strong>la</strong>s restricciones que involucran al tren, cuyo camino y horario se desea hal<strong>la</strong>r, pero<br />
el resto de variables enteras correspondientes a trenes seleccionados previamente<br />
son incluidas como constantes. El método que utiliza Carey <strong>para</strong> resolver el modelo<br />
descrito en [22] es el mismo que el utilizado en [23] con <strong>la</strong> diferencia que en [22] se<br />
debe impedir que dos trenes con sentido opuesto utilicen un mismo en<strong>la</strong>ce al mismo
130 4. Revisión de Métodos <strong>para</strong> <strong>la</strong> Generación de Horarios<br />
tiempo (cruce).<br />
Análisis<br />
En el caso de <strong>la</strong> aproximación presentada por Higgins et al. se propone modificar<br />
un horario en cada iteración por cambiar <strong>la</strong> forma en que se resuelven determinados<br />
cruces, que se seleccionan en el mismo orden que aparecen en el tiempo. En un prob-<br />
lema de programar horarios <strong>para</strong> trenes en una línea ferroviaria con tramos de vía<br />
única, <strong>la</strong> diferencia entre dos resultados radica en <strong>la</strong> forma en que los cruces fueron<br />
resueltos. Por lo tanto, lo que se busca es <strong>la</strong> mejor combinación, tren espera, tren<br />
pasa primero, tramo en cada gestión de cruce durante <strong>la</strong> programación. Esta aproxi-<br />
mación propone ir probando diferentes alternativas por cada conjunto de cruces (un<br />
tren en común, cruces adyacentes). En el caso del problema OPT, donde el número<br />
de cruces es muy elevado llevar a cabo esta aproximación puede suponer emplear un<br />
tiempo de computo elevado hasta encontrar una buena combinación. Consideramos<br />
que es necesaria una heurística más guiada por <strong>la</strong> función objetivo <strong>para</strong> determinar<br />
cual es <strong>la</strong> mejor combinación.<br />
En el caso del trabajo presentado por Cai y Goh, el objetivo principal es obtener<br />
una programación de horarios buena en el menor tiempo posible. Para ello utilizan<br />
una heurística que se basa únicamente en <strong>la</strong> gestión de cada cruce, sin tener en<br />
cuenta, <strong>la</strong>s decisiones previas ni predicción alguna sobre decisiones futuras. Esta<br />
aproximación genera una única solución. El inconveniente de <strong>la</strong> misma es que existe<br />
una alta probabilidad de que <strong>la</strong> decisión realizada sea <strong>la</strong> mejor <strong>para</strong> el cruce actual,<br />
pero genere una programación posterior cuyas <strong>para</strong>das técnicas sean mucho mayores<br />
a <strong>la</strong>s realmente necesarias.<br />
El trabajo presentado por Carey está centrado en decidir, cuál es <strong>la</strong> mejor com-<br />
binación de líneas <strong>para</strong> cada tren en una red ferroviaria. El horario de cada tren se<br />
hal<strong>la</strong> por fijar el ordenamiento de los trenes precedentes y únicamente dejar libre <strong>la</strong>s<br />
variables enteras correspondientes al tren actual. En el problema OPT esto implica<br />
que si un tren tiene prioridad en el uso de un determinado tramo tanto frente a<br />
trenes que viajan en el mismo sentido como frente a trenes que viajan en sentido<br />
opuesto, tendrá también prioridad sobre todo los tramos siguientes de su recorrido.<br />
Con esta aproximación muchas soluciones no podrán ser probadas y por lo tanto es
4.3. Estado del Arte - Métodos de Solución 131<br />
muy probable que buenas soluciones se pierdan.<br />
4.3.4. Algoritmo de Descomposición<br />
Brucker y Strotmann [15] mode<strong>la</strong>n el problema por medio de un grafo disyuntivo.<br />
A partir de dicho grafo se construyen <strong>la</strong>s l<strong>la</strong>madas áreas locales, es decir un sub-<br />
conjunto de vértices y arcos del grafo completo. Si se alcanza una solución factible<br />
<strong>para</strong> cada área local, el coordinador construye un grafo <strong>para</strong> verificar <strong>la</strong> factibilidad<br />
global. De ser así, una solución es encontrada. En caso contrario el coordinador im-<br />
pone restricciones adicionales a <strong>la</strong>s áreas locales y se repite el proceso hasta que una<br />
solución sea alcanzada.<br />
Análisis<br />
En el trabajo presentado por Brucker y Strotmann [15] se considera una red<br />
ferroviaria. En una red ferroviaria el tráfico en cada línea puede ser considerado en<br />
forma independiente, siendo el instante de llegada a cada punto de unión o nodo de<br />
en<strong>la</strong>ce, los instantes que se deben buscar que minimicen el tiempo de transbordo en<br />
el caso que sean líneas conectadas. En nuestro caso se busca el horario de un conjunto<br />
de trenes en una determinada línea ferroviaria. Por lo tanto es posible descomponer<br />
este conjunto de horarios en partes, aunque en <strong>la</strong> mayoría de <strong>la</strong>s instancias consid-<br />
eradas supondría por otro <strong>la</strong>do un esfuerzo al juntar <strong>la</strong>s partes y comprobar si <strong>la</strong><br />
factibilidad local continua existiendo. Considero que al utilizar un único procesador<br />
<strong>para</strong> resolver cada parte del conjunto de horarios se produce un menor esfuerzo com-<br />
putacional por cada parte, sin embargo estas partes no son computadas en forma<br />
<strong>para</strong>le<strong>la</strong>, sino en forma secuencial. Además es muy difícil que el resultado obtenido<br />
por cada parte al ser combinado con el resto siga siendo un resultado factible, ya<br />
que en una instancia real el horario de un tren está estrechamente conectado con<br />
el horario de uno o más trenes que utilizan los mismos recursos en un intervalo<br />
de tiempo parecido al del primero. Luego, al tiempo computacional empleado en<br />
resolver cada parte, debe sumarse el tiempo requerido <strong>para</strong> hacer que cada parte<br />
factible forme un todo factible. Todo este trabajo es necesario <strong>para</strong> obtener una<br />
solución, si además consideramos que estamos buscando optimizar un resultado, es<br />
muy importante que cada solución sea obtenido de <strong>la</strong> forma más eficiente posible.
132 4. Revisión de Métodos <strong>para</strong> <strong>la</strong> Generación de Horarios<br />
En este caso esta aproximación no presenta dicha característica.<br />
4.3.5. Algoritmo Genético<br />
Otra de <strong>la</strong>s aproximaciones utilizadas <strong>para</strong> resolver problemas re<strong>la</strong>cionados a <strong>la</strong><br />
programación de horarios de trenes son los algoritmos genéticos. Los algoritmos evo-<br />
lutivos constituyen una estrategia adecuada especialmente <strong>para</strong> problemas CSOP,<br />
como es el caso de los problemas de scheduling, en los que se trata de asignar tiem-<br />
pos de inicio a un conjunto de tareas que están sujetas a una serie de restricciones<br />
temporales, de forma que se minimice alguna medida regu<strong>la</strong>r de rendimiento, es<br />
decir, una función no decreciente en el tiempo de finalización de <strong>la</strong>s tareas, Ve<strong>la</strong> et.<br />
al [1].<br />
Para resolver CSPs generales existen algoritmos genéticos genéricos que utilizan<br />
codificaciones binarias, o bien decodifican directamente los valores de <strong>la</strong>s variables<br />
en los cromosomas. Para el caso particu<strong>la</strong>r de los problemas de scheduling, se suelen<br />
utilizar algoritmos genéticos con características diferentes a los algoritmos genéticos<br />
genéricos. Por ejemplo no resulta eficiente codificar directamente los valores de <strong>la</strong>s<br />
variables, dado que los dominios son en general muy grandes, incluso infinitos en<br />
algunos casos, con lo que se realizaría una búsqueda en un espacio de soluciones<br />
potenciales mucho mayor del que en <strong>la</strong> práctica resulta necesario[1]. A continuación<br />
veremos algunos ejemplos de cómo se codifican ciertos problemas <strong>para</strong> posterior-<br />
mente resolverlos mediante <strong>la</strong> utilización de un algoritmo genético.<br />
Nachtigall y Voget [92] consideran una red ferroviaria servida periódicamente<br />
donde todos los trenes llegan y salen cada cierto intervalo de tiempo. Compi<strong>la</strong>r ho-<br />
rarios con pequeños tiempos de espera <strong>para</strong> cambio de pasajeros en puntos de unión<br />
específicos conduce a un ”programa periódico”. En este artículo se dice que méto-<br />
dos de solución exacta (Branch and Bound Nachtigall [91]) a programas periódicos<br />
son únicamente aplicables a problemas de tamaño pequeño. Consideran una red<br />
ferroviaria servida periódicamente dada por un sistema ℓ = L1, ..., Lr de r líneas.<br />
Por una línea entendemos un servicio de transporte donde todos los trenes pasan<br />
por una determinada secuencia de estaciones a intervalos de tiempo constantes y<br />
fijos. Por simplicidad se asume que todas <strong>la</strong>s líneas son servidas con un intervalo de<br />
tiempo común o periodo τ y que el tiempo de recorrido y de <strong>para</strong>da de todos los
4.3. Estado del Arte - Métodos de Solución 133<br />
trenes pertenecientes a Li están fijados. Así, el scheduling de <strong>la</strong> línea Li es realizado<br />
completamente por fijar un instante de salida de <strong>la</strong> estación inicial a un punto de<br />
tiempo πi. Si asumimos una conducta periódica con horizonte infinito, entonces en<br />
cada instante πi + zτ(z ∈ Z) un tren número z de <strong>la</strong> línea Li empezará su recorrido.<br />
El uso de algoritmos genéticos <strong>para</strong> el problema abordado es motivado por <strong>la</strong>s<br />
siguientes propiedades:<br />
Para una solución determinada π, <strong>la</strong> suma con pesos de los tiempos de espera<br />
W (π) puede ser computada rápidamente.<br />
W es una función discontinua.<br />
<strong>la</strong> restricción 0 ≥ π ≤ τ produce una codificación natural del espacio de<br />
búsqueda.<br />
Los algoritmos de optimización estocástica usualmente necesitan muchas l<strong>la</strong>madas<br />
de <strong>la</strong> función objetivo. Especialmente los algoritmos genéticos producen nuevas solu-<br />
ciones <strong>la</strong>s cuales no están en el entorno de los padres. En este caso ninguna informa-<br />
ción acerca del objetivo está disponible <strong>para</strong> el cálculo del objetivo del hijo. Además<br />
ninguna información acerca de derivados son necesarios porque el paso de produc-<br />
ción mezc<strong>la</strong> aleatoriamente partes de diferentes soluciones. Este proceso depende<br />
sensiblemente de <strong>la</strong> codificación del espacio de búsqueda. Se empieza con un con-<br />
junto de 150 individuos desde el espacio de búsqueda Π = {π ∈ Z r |0 ≥ πi ≤ τ − 1}<br />
l<strong>la</strong>mado <strong>la</strong> pob<strong>la</strong>ción. Tomando <strong>la</strong> pob<strong>la</strong>ción como una generación inicial se produce<br />
nuevas generaciones iterativamente en <strong>la</strong> siguiente forma<br />
Desde <strong>la</strong> generación con número t (Pt) se elige primero aleatoriamente dos<br />
pares de vectores π1 y π2. Tomando cada coordenada se<strong>para</strong>damente y con<br />
igual probabilidad desde el vector padre 1 o desde el vector padre 2 se con-<br />
struye un nuevo vector πchild.De esta forma diseñamos π offspring<br />
t<br />
soluciones.<br />
de 150 nuevas<br />
Estos individuos son alterados por pequeñas mutaciones. Esto es hecho por<br />
cambiar <strong>la</strong> coordenada de cada miembro de π offspring<br />
t<br />
probabilidad.<br />
Se seleccionan de los dos conjuntos Pt y P offspring<br />
t<br />
<strong>para</strong> constituir <strong>la</strong> pob<strong>la</strong>ción Pt+1<br />
con una determinada<br />
los mejores 150 individuos
134 4. Revisión de Métodos <strong>para</strong> <strong>la</strong> Generación de Horarios<br />
Se utiliza como criterio de <strong>para</strong>da el número de generaciones o un tiempo de<br />
computación límite.<br />
Dadas r líneas, el objetivo de este trabajo es encontrar un instante de salida <strong>para</strong><br />
cada línea que minimice el tiempo de espera global de los pasajeros en aquel<strong>la</strong>s<br />
estaciones que son utilizadas como estaciones de cambio entre una línea y otra.<br />
Inicialmente se selecciona aleatoriamente un instante de salida <strong>para</strong> una de <strong>la</strong>s<br />
líneas cualquiera, elegida arbitrariamente. La siguiente línea cuyo instante de salida<br />
será calcu<strong>la</strong>do es seleccionada de tal forma que tenga <strong>la</strong> mayor dependencia con<br />
el resto de <strong>la</strong>s líneas seleccionadas, y el instante de salida es seleccionado de tal<br />
forma que minimice el tiempo de espera global teniendo en cuenta <strong>la</strong>s líneas selec-<br />
cionadas hasta ese momento. Para <strong>la</strong>s siguientes iteraciones es utilizado un algoritmo<br />
genético. Donde cada individuo es un vector de r instantes de salida, <strong>la</strong> pob<strong>la</strong>ción<br />
inicial cuenta con 150 individuos. La pob<strong>la</strong>ción inicial es generada con el algoritmo<br />
greedy, Nachtigall y Voget [92]. El resto de generaciones es producida mediante el<br />
cruce, mutación y reducción propios de los algoritmos genéticos.<br />
Este método no explica <strong>la</strong> forma en que realiza el scheduling de los trenes<br />
pertenecientes a una línea r. Dado un instante de salida <strong>para</strong> el tren en <strong>la</strong> línea<br />
r no indica cómo se calcu<strong>la</strong> el horario del tren dentro de r ni <strong>la</strong>s restricciones que<br />
son tenidas en cuenta en cada línea de <strong>la</strong>s r consideradas.<br />
Otro trabajo que utiliza algoritmo genético es el presentado por Higgins et.<br />
al [65]. En este trabajo cada gen de un individuo representa a un conflicto, el cual<br />
está definido por los siguientes atributos: tren que se retrasa, tren que utiliza primero<br />
el tramo, tramo por el cual compiten ambos trenes. Se genera <strong>la</strong> pob<strong>la</strong>ción inicial<br />
con un tamaño P O. Cada individuo de <strong>la</strong> pob<strong>la</strong>ción inicial es una solución, <strong>la</strong> cual<br />
es generada por resolver de forma aleatoria los conflictos según el orden en el que<br />
aparecen en el tiempo. Se proporciona a cada tren involucrado en un conflicto una<br />
determinada probabilidad de ser retrasado.<br />
A cada solución k de una pob<strong>la</strong>ción se le proporciona una probabilidad fk P de<br />
k<br />
fk<br />
ser seleccionada, donde:<br />
Zk es el valor de <strong>la</strong> función objetivo correspondiente a <strong>la</strong> solución k,<br />
Cmax = max(Zk), y<br />
fk = (Cmax − Zk) λ , λ = 2.
4.3. Estado del Arte - Métodos de Solución 135<br />
De <strong>la</strong> pob<strong>la</strong>ción correspondiente a <strong>la</strong> generación actual se seleccionan P O/2<br />
individuos basándose en <strong>la</strong> probabilidad de selección de cada individuo. Se lleva<br />
a cabo <strong>la</strong> mutación sobre <strong>la</strong>s soluciones seleccionadas. Posteriormente se aplica el<br />
operador de cruce. Son eliminados los hijos duplicados y son resueltos los conflictos<br />
generados no existentes en <strong>la</strong> generación origen. Por cada solución se evalúa <strong>la</strong><br />
probabilidad de selección de acuerdo al valor de <strong>la</strong> función objetivo asignada a cada<br />
solución. Este conjunto de soluciones pasa a ser una nueva generación <strong>para</strong> <strong>la</strong> cual<br />
se repite el mismo procedimiento.<br />
El procedimiento finaliza una vez que no se observe un mejoramiento sustancial<br />
en el fitness individual.<br />
Higgins et. al [65] utilizan un algoritmo genético <strong>para</strong> resolver el problema de<br />
asignación de horarios en una línea ferroviaria con vía única. Los genes representan<br />
<strong>la</strong> estructura de un conflicto resuelto, y aparecen en el cromosoma en el mismo<br />
orden que aparecen los conflictos en el tiempo. Esta representación tiene algunos<br />
problemas tales como: no todos los cromosomas tienen <strong>la</strong> misma longitud (en algunas<br />
soluciones hay mayor cantidad de conflictos que en otras), al realizar <strong>la</strong> operación de<br />
cruce pueden generarse hijos no factibles, por lo tanto a ese hijo debe reemp<strong>la</strong>zarlo<br />
uno de los padres, pueden existir genes duplicados, ya que al realizar <strong>la</strong> operación de<br />
cruce, pueden venir tanto del padre como de <strong>la</strong> madre el mismo gen, en este caso se<br />
elimina uno de los genes del cromosoma. Pueden aparecer nuevos conflictos, en este<br />
caso estos son resueltos por retrasar el tren cuya <strong>para</strong>da técnica sea menor. El gen<br />
que representa el conflicto resuelto debe ser incluido en el cromosoma en el lugar<br />
apropiado según el orden en el que aparece en el tiempo.<br />
La pob<strong>la</strong>ción inicial se genera por identificar los conflictos y resolverlos en el<br />
mismo orden que aparece en el tiempo de forma aleatoria. A cada tren i y j que<br />
participa en el conflicto por el tramo p se le asigna una probabilidad P R p B<br />
i,j = A+B de<br />
ser retrasado A y B son los retrasos que tendrían el tren i y el tren j si son retrasados<br />
<strong>para</strong> que el otro ocupe primero el tramo p, respectivamente. De esta forma se generan<br />
N soluciones iniciales que formarán <strong>la</strong> pob<strong>la</strong>ción inicial del algoritmo genético. Como<br />
operador de cruce se utiliza el cruce de un punto con una probabilidad de 0.7. La<br />
mutación se lleva a cabo con una probabilidad de 0.01. Cuando se realiza <strong>la</strong> mutación<br />
de un gen (descripción de un conflicto) el autor aconseja modificar también los genes<br />
re<strong>la</strong>cionados con el primero, es decir que representen a los conflictos con un tren en
136 4. Revisión de Métodos <strong>para</strong> <strong>la</strong> Generación de Horarios<br />
común, ya que se vio que hay mejoras cuando no se cambia so<strong>la</strong>mente un conflicto<br />
sino todos los adyacentes al mismo. Una vez obtenida <strong>la</strong> pob<strong>la</strong>ción descendiente,<br />
sobre esta pob<strong>la</strong>ción se lleva a cabo <strong>la</strong> operación de selección <strong>para</strong> ver cuáles de estos<br />
cromosomas pasarán a formar parte de <strong>la</strong> nueva generación. Esta selección se realiza<br />
en forma aleatoria, asignando a cada cromosoma una probabilidad determinada de<br />
selección.<br />
Kwan y Mistry [78], describen otra aplicación de algoritmo genético. Consideran<br />
como marco de trabajo una simplificada red ferroviaria del Reino Unido. Distinguen<br />
entre dos tipos de horarios, según <strong>la</strong> etapa en <strong>la</strong> que se realicen, Horarios de P<strong>la</strong>n-<br />
ificación y Horarios Operacionales. El primer tipo corresponde a <strong>la</strong> etapa inicial<br />
en <strong>la</strong> cual <strong>la</strong> compañía encargada de <strong>la</strong> infraestructura estudia <strong>la</strong>s ofertas de com-<br />
pañías operadoras y propone una p<strong>la</strong>nificación inicial, en donde un gran número<br />
de restricciones aún son ignoradas. El segundo tipo de horario es obtenido después<br />
de varias etapas de refinamiento y resolución de conflictos del Horario de P<strong>la</strong>nifi-<br />
cación. El trabajo de Kwan y Mistry consiste en un método <strong>para</strong> obtener Horarios<br />
de P<strong>la</strong>nificación.<br />
El método que proponen consiste en generar 3 pob<strong>la</strong>ciones. Cada una de el<strong>la</strong>s<br />
evolucionará según el <strong>para</strong>digma de los algoritmos genéticos. Para producir una<br />
solución se combinarán un individuo de cada una de <strong>la</strong>s pob<strong>la</strong>ciones, razón por<br />
<strong>la</strong> cual denominaron al método Algoritmo Co-evolutivo. Las pob<strong>la</strong>ciones represen-<br />
tan instantes de salida inicial de cada tren Pd, tiempos de recorrido de cada tren<br />
por tramo Pp, y ocupación de cada estación del recorrido Pc, respectivamente. Los<br />
cromosomas de <strong>la</strong> pob<strong>la</strong>ción Pd consisten en un número entero, que representa <strong>la</strong><br />
cantidad de 30 segundos (unidad de tiempo básica) que caben en el instante de<br />
tiempo que representan. El cromosoma de <strong>la</strong> pob<strong>la</strong>ción Pp está formado por una se-<br />
cuencia de ceros y unos. Existen tantos ceros y unos como número de tramos exista<br />
en el recorrido del tren. El valor 0 indica que se utiliza en el tramo, el mínimo tiempo<br />
de recorrido posible, y un valor 1 indica que se utiliza en el tramo el máximo tiempo<br />
de recorrido posible. El cromosoma de <strong>la</strong> pob<strong>la</strong>ción Pc también es una secuencia de<br />
ceros y unos. En este caso dos, indicando, por cada estación del recorrido, si <strong>la</strong> vía<br />
está ocupada (1) o no (0).<br />
Se formu<strong>la</strong>n dos tipos de restricciones, duras y b<strong>la</strong>ndas. Forman el primer grupo:<br />
respetar un mínimo tiempo de sucesión, no exceder el número de vías en una estación
4.3. Estado del Arte - Métodos de Solución 137<br />
con <strong>la</strong> ocupación simultánea de los trenes, y evitar alcance entre dos trenes que<br />
viajan en el mismo sentido. El segundo grupo de restricciones, <strong>la</strong>s restricciones<br />
b<strong>la</strong>ndas consisten en: partir/llegar de <strong>la</strong> estación inicial/final en un instante de<br />
tiempo perteneciente a un determinado intervalo, llegar a determinadas estaciones<br />
dentro de un intervalo de tiempo que minimice el tiempo de espera de los pasajeros<br />
<strong>para</strong> realizar conexiones, establecer una determinada frecuencia de salida en <strong>la</strong>s<br />
estaciones con <strong>para</strong>da comercial.<br />
La función objetivo consiste principalmente en cumplir todas <strong>la</strong>s restricciones<br />
duras, <strong>para</strong> ello se le asigna una penalización de incumplimiento a dichas restric-<br />
ciones. El objetivo es minimizar este valor. Además de este criterio se utiliza también<br />
el fitness producido por <strong>la</strong> solución obtenida al combinar individuos de <strong>la</strong>s 3 pob<strong>la</strong>-<br />
ciones.<br />
El algoritmo co evolutivo consiste en utilizar por cada individuo de <strong>la</strong> pob<strong>la</strong>ción<br />
Pd un individuo de Pp y un individuo de Pc. Posteriormente calcu<strong>la</strong>r <strong>la</strong> función obje-<br />
tivo. El operador genético utilizado <strong>para</strong> evolucionar los individuos de <strong>la</strong> pob<strong>la</strong>ción<br />
Pd es el de mutación conocido como Evolution Estrategy (ES), Hansen y Ostermaier<br />
[60], [95]. Para <strong>la</strong> evolución de <strong>la</strong>s dos pob<strong>la</strong>ciones restantes Pp y Pc se utiliza el<br />
algoritmo genético básico de Goldberg, [54].<br />
4.3.6. Búsqueda Tabú<br />
Como con los <strong>métodos</strong> de búsqueda local, <strong>la</strong> heurística Tabu Search general,<br />
Glover y Talliard [51], [53], está basada en el establecimiento de movimientos que<br />
transformen una solución actual en una solución de su vecindario. Esta heurística<br />
escapa del óptimo local por permitir movimientos de no mejora cuando ningún<br />
movimiento de mejora está disponible.<br />
En el trabajo de Higgins et. al [65], a cada movimiento se le asocia una prob-<br />
abilidad en términos de <strong>la</strong> posibilidad de mejora. La diversificación es utilizada en<br />
búsqueda tabú <strong>para</strong> forzar <strong>la</strong> búsqueda en un camino diferente, evitando así buscar<br />
en una misma región por mucho tiempo, porque existe <strong>la</strong> posibilidad de que sea<br />
una región donde solo existan soluciones pobres. Se aplica diversificación después<br />
de T iteraciones en <strong>la</strong> cual se escoge una de <strong>la</strong>s mejores soluciones obtenidas hasta<br />
ahora y se reemp<strong>la</strong>za por esta <strong>la</strong> solución actual. La diversificación a <strong>la</strong>rgo p<strong>la</strong>zo se
138 4. Revisión de Métodos <strong>para</strong> <strong>la</strong> Generación de Horarios<br />
lleva a cabo por evitar repetir movimientos a <strong>la</strong>rgo p<strong>la</strong>zo. Una forma de hacerlo es<br />
penalizar <strong>la</strong> función objetivo de <strong>la</strong> siguiente forma Z∗ = Z + fq t v × Z × CONST<br />
donde fq t v es el número de veces que aparece el movimiento v hasta <strong>la</strong> iteración t.<br />
Como un resultado de experimentación fue seleccionado el valor 0.01 <strong>para</strong> CONST.<br />
Movimientos que crean soluciones no factibles son descartados. Si aparecen nuevos<br />
conflictos en una solución vecina estos son resueltos por retrasar el tren que pro-<br />
duce menor <strong>para</strong>da técnica. La heurística TS finaliza cuando el número máximo de<br />
iteraciones es alcanzado.<br />
En el trabajo presentado por Nõu [94] se presentaron diferentes alternativas <strong>para</strong><br />
generar soluciones factibles. Una de el<strong>la</strong>s fue aplicar una búsqueda tabú al problema<br />
de hal<strong>la</strong>r diferentes combinaciones de trenes que deberían esperar en cada conflicto<br />
a ser resuelto.<br />
Algoritmos Híbridos: GA + LSH<br />
Higgins et. al [65] proponen modificar un cinco por ciento de <strong>la</strong>s mejores pob<strong>la</strong>-<br />
ciones de una generación utilizando <strong>la</strong> heurística LSH explicada en [65]. Con esto<br />
el autor pretende eliminar uno de los puntos negativos del algoritmo genético prop-<br />
uesto en [65], que era que converge más lentamente a una buena solución aunque<br />
escapa con mayor frecuencia del óptimo local. Esta modificación se realiza después<br />
de aplicar el operador de cruce.<br />
Algoritmos Híbridos: GA + TS<br />
En [65] se aplica <strong>la</strong> heurística TS al realizar <strong>la</strong> operación de cruce. Se elige uno<br />
de los padres utilizando <strong>la</strong> probabilidad de selección asignada a cada cromosoma<br />
pero el otro padre se elige de tal forma que el hijo resultante no sea un miembro de<br />
<strong>la</strong> lista tabú.<br />
Análisis de los Algoritmos de Mejora<br />
Los algoritmos de mejora son procedimientos de búsqueda local que en cada<br />
iteración modifican <strong>la</strong> solución actual buscando mejorar<strong>la</strong>, en cuyo caso reemp<strong>la</strong>za<br />
a <strong>la</strong> solución actual. Consideramos que los algoritmos de mejora pueden producir
4.3. Estado del Arte - Métodos de Solución 139<br />
mejores resultados en <strong>la</strong> búsqueda de soluciones que los algoritmos que utilicen<br />
únicamente heurísticas guiadas por decisiones tomadas en forma local. Estos al-<br />
goritmos permiten explorar el espacio de soluciones de una forma no determinista<br />
permitiendo además con menor probabilidad seleccionar soluciones de una región<br />
poco prometedora, en cuanto a heurísticas locales se refiere. Como principal incon-<br />
veniente podríamos apuntar que luego de haber realizado algunas pruebas, estos<br />
algoritmos codificados <strong>para</strong> el problema OPT ofrecen una convergencia más lenta que<br />
otros <strong>métodos</strong> heurísticos implementados. Otro de los inconvenientes al aplicar este<br />
tipo de algoritmos consiste en que puede dar lugar a un gran número de soluciones<br />
que se repitan en diferentes iteraciones. Por lo tanto, al aplicarlos sería muy conve-<br />
niente encontrar una forma de evitar estas repeticiones, <strong>para</strong> que el tiempo empleado<br />
en resolver cada configuración sea utilizado <strong>para</strong> explorar diferentes soluciones y no<br />
malgastado en generar una misma solución que ya fue analizada previamente.<br />
En el caso del problema OPT, cada cromosoma de un individuo estaba formado<br />
por el par (tren, tramo). Se realizaba <strong>la</strong> verificación de restricciones de un tren en un<br />
tramo en el mismo orden dado por los cromosomas. Cuando aparecía un conflicto,<br />
este era resuelto dando prioridad en el tramo a aquel tren cuyo par (tren, tramo)<br />
aparecía primero en el cromosoma. El schedule vecino, o <strong>la</strong> siguiente generación<br />
de individuos era obtenida por modificar este orden, de tal forma que se respetara<br />
siempre <strong>la</strong> precedencia entre los tramos pertenecientes al recorrido de un mismo<br />
tren.<br />
En el caso de <strong>la</strong> búsqueda tabú el vecindario de un schedule puede estar formado<br />
por más de un schedule vecino, en ese caso el procedimiento que selecciona el sigu-<br />
iente schedule candidato es muy importante, ya que eso determinaría <strong>la</strong> rapidez con<br />
que se llegue a una solución lo suficientemente buena a partir del schedule inicial. Es<br />
muy importante incorporar en cada uno de los procedimientos utilizados <strong>para</strong> crear<br />
vecindario, seleccionar candidato y aceptar/rechazar candidato respectivamente, el<br />
conocimiento suficiente acerca del problema y de <strong>la</strong> función objetivo considerada, de<br />
tal forma a guiar adecuadamente a los procedimientos que determinan <strong>la</strong>s regiones<br />
del espacio de soluciones que serán exploradas.
140 4. Revisión de Métodos <strong>para</strong> <strong>la</strong> Generación de Horarios<br />
4.3.7. Problema de Scheduling de Eventos Periódicos<br />
El Problema de programar eventos periódicos (Periodic Event Scheduling Prob-<br />
lem - PESP) es definido como sigue:<br />
Dado:<br />
un conjunto finito N de n eventos periódicos<br />
un conjunto finito A de restricciones periódicas<br />
encontrar un schedule τ(ε) ∈ Φ, <strong>para</strong> todo ε ∈ N satisfaciendo todas <strong>la</strong>s restricciones<br />
periódicas en A<br />
La presencia de recursos puede complicar el carácter periódico del problema de<br />
programación ya que pueden existir diferentes periodos mT (m ∈ Z) que deben ser<br />
tenidos en cuenta simultáneamente. Por ejemplo, spans del tipo [d − , d + ]mT pueden<br />
estar presentes en el modelo.<br />
Se puede definir el problema extendido de programación de eventos periódicos<br />
de <strong>la</strong> siguiente forma:<br />
Dado:<br />
un periodo T;<br />
una red (N, A);<br />
enteros positivos m(a), ∀a ∈ A;<br />
spans reales D(a, Z), ∀a ∈ A, ∀z ∈ Z donde D(a, z) = [d − + m(a)zT, d + +<br />
m(a)zT ] también denotado como D(a, z) = [d − , d + ] m(a)T ;<br />
el objetivo es encontrar un potencial µ tal que υ(a) ∈ D(a, z(a)) <strong>para</strong> alguna z ∈ Z,<br />
<strong>para</strong> todo a ∈ A. Luego τ(ε) = µ(ε) mod T<br />
Un evento periódico ε es un conjunto de eventos contablemente infinito e(p)<br />
indexado por p ∈ Z, los cuales ocurren en los instantes de tiempo t(e(p)) ∈ R, tal<br />
que por cada p, t(e(p))−t(e(p−1)) = T (Z representa al conjunto de números enteros<br />
y R al conjunto de números reales). T es referido como el periodo y e(p) como <strong>la</strong><br />
ocurrencia número p del evento periódico ε. También es definido t(ε) := t(e(p)) mod<br />
T .
4.3. Estado del Arte - Métodos de Solución 141<br />
Una restricción periódica a es una re<strong>la</strong>ción que involucra un par ordenado de<br />
eventos periódicos (ε − (a), ε + (a)) y un span propio △(a), requiriendo que (τ(ε + (a))−<br />
τ(ε − (a))) ∈ △(a).<br />
Serafini y Ukovich, [109], proponen un algoritmo <strong>para</strong> resolver problemas mod-<br />
e<strong>la</strong>dos mediante el P ESP . El objetivo del algoritmo es hal<strong>la</strong>r una solución factible<br />
al problema. No tiene en cuenta ninguna función objetivo. Los autores hacen no-<br />
tar que es un algoritmo general, por lo tanto puede ser modificado de tal forma<br />
que tenga en cuenta características o conocimientos del problema particu<strong>la</strong>r que se<br />
está mode<strong>la</strong>ndo <strong>para</strong> obtener mejores resultados en cuanto a <strong>eficiencia</strong> se refiere.<br />
Christian Liebchen y Leon Peeters, [84], han publicado un trabajo en el cual<br />
utilizan el modelo P ESP <strong>para</strong> representar el problema de programación de horar-<br />
ios en una red periódica. Específicamente el modelo utilizado es un digrafo en el<br />
cual restricciones temporales sobre los arcos re<strong>la</strong>cionan periódicamente a eventos<br />
recurrentes. Los <strong>métodos</strong> de solución están comúnmente basados en programación<br />
entera; el número de variables enteras es igual a número ciclomático del digrafo.<br />
En <strong>la</strong> programación de horarios <strong>la</strong> mayor pregunta es cómo ordenar <strong>la</strong>s líneas que<br />
comparten un tramo común. En el trabajo de Liebchen y Peeters se muestra que en<br />
este contexto se puede podar vectores enteros no factibles por agregar únicamente<br />
muchas restricciones en forma polinomial. Otro punto de interés considerado por el<br />
trabajo de Liebchen y Peeters es no construir horarios, que por conseguir tiempos<br />
de espera cortos <strong>para</strong> los pasajeros, requieran de una elevada cantidad de material<br />
rodante(trenes) <strong>para</strong> llevar a cabo tal programación.<br />
Análisis<br />
Los problemas de programación horaria considerados en <strong>la</strong> literatura y mode<strong>la</strong>-<br />
dos con el PESP tienen en cuenta únicamente trenes del mismo tipo, viajan a una<br />
misma velocidad promedio y con una determinada frecuencia de salida. La progra-<br />
mación horaria se repite en cada uno de los periodos de tiempo especificados. El<br />
modelo debe ser modificado <strong>para</strong> mode<strong>la</strong>r restricciones disyuntivas necesarias <strong>para</strong><br />
evitar los cruces, alcances, ocupación excesiva de una dependencia, etc. Los proble-<br />
mas vistos en <strong>la</strong> literatura mode<strong>la</strong>dos por el PESP y resueltos mediante heurísticas<br />
que eliminan gran parte de <strong>la</strong>s variables enteras, son problemas que se centran en
142 4. Revisión de Métodos <strong>para</strong> <strong>la</strong> Generación de Horarios<br />
minimizar el tiempo de espera de los pasajeros y en <strong>la</strong> cantidad de intercambio de<br />
vehículos en <strong>la</strong>s estaciones comunes a dos líneas ferroviarias. Nuestro problema se<br />
diferencia en que tenemos en cuenta una so<strong>la</strong> línea en <strong>la</strong> cual pueden existir difer-<br />
entes tipos de trenes con diferentes recorridos, es requerido agregar un grupo de<br />
trenes que pueden ser de diferentes tipos resolviendo una serie de conflictos entre<br />
los nuevos trenes y los que se encuentran en circu<strong>la</strong>ción. La periodicidad no es im-<br />
prescindible en todos los casos y en OPT se consideran restricciones como cierre de<br />
estaciones, o bandas de mantenimiento, que no pueden ser mode<strong>la</strong>das por el PESP<br />
por que impiden el patrón periódico requerido por dicho modelo.<br />
4.3.8. Heurísticas <strong>para</strong> Job Shop y el Problema OPT<br />
En esta sub sección se proporciona un análisis de algunas heurísticas propias de<br />
un Job Shop aplicadas al problema OPT.<br />
Desp<strong>la</strong>zar el Cuello de Botel<strong>la</strong> y el problema OPT<br />
En <strong>la</strong> Figura 4.6 se muestra una instancia del problema OPT en <strong>la</strong> cual se desea<br />
p<strong>la</strong>nificar el horario de 4 trenes en una línea ferroviaria formada por tres tramos,<br />
todos de vía única.<br />
estaciones<br />
Figura 4.6: Makespan mínimo <strong>para</strong> una instancia del problema de programación de<br />
horario <strong>para</strong> trenes makespan tiempo<br />
tramo2 tramo3<br />
1 1 t 2 t<br />
3 t tramo 4<br />
Hemos considerado que cada tren representa un trabajo (j1, j2, j3, j4), cada<br />
t
4.3. Estado del Arte - Métodos de Solución 143<br />
tramo visitado por un tren una actividad correspondiente a dicho trabajo (aij rep-<br />
resenta que el tramo i es visitado por el tren j) y que cada tramo representa una<br />
máquina. Al aplicar <strong>la</strong> heurística, <strong>la</strong> primera máquina seleccionada es <strong>la</strong> máquina<br />
2 (tramo 2 en <strong>la</strong> Figura 4.6) y el orden en el cual debe ser utilizada por <strong>la</strong>s activi-<br />
dades es a22, a21, a24, a23. En <strong>la</strong> Figura 4.7 se observa como aumenta el makespan<br />
con respecto a <strong>la</strong> Figura 4.6 debido a <strong>la</strong> espera que debe realizar el tren 3 hasta que<br />
el tramo 2 sea liberado por el tren 4. Sin embargo en el problema OPT el makespan<br />
dado por este orden realmente sería mayor, ya que un tren no puede utilizar un<br />
tramo en el mismo instante que otro deja de utilizarlo, debe esperar un tiempo al<br />
cual se denomina margen de seguridad. Estos márgenes de seguridad necesarios son<br />
seña<strong>la</strong>dos en <strong>la</strong> Figura 4.8 como recepción y expedición. Siendo así, en <strong>la</strong> Figura<br />
4.7 el margen de seguridad entre el tren 3 y el tren 4 es insuficiente por lo que el<br />
tren 3 debería esperar en <strong>la</strong> estación previa aumentando así considerablemente el<br />
makespan.<br />
Figura 4.7: Primera máquina seleccionada con un orden determinado de operaciones makespan tiempo<br />
tramo2 tramo3<br />
1 1 t 2 t<br />
3 t tramo 4 estaciones<br />
Otros aspectos que se deben incorporar a <strong>la</strong> heurística si esta se utiliza <strong>para</strong><br />
t<br />
resolver una instancia del problema OPT son:<br />
Capacidad finita de <strong>la</strong>s estaciones. Cuando un tren espera en una estación<br />
que el siguiente tramo sea liberado se debe tener en cuenta el número de<br />
vías disponibles en dicha estación en ese instante de tiempo. Si <strong>la</strong> estación no<br />
dispone de vías en el instante considerado, el tren debe realizar <strong>la</strong> espera en <strong>la</strong>
144 4. Revisión de Métodos <strong>para</strong> <strong>la</strong> Generación de Horarios<br />
tramo3 1 2 3 4 estaciones<br />
Figura 4.8: Makespan modificado cuando se considera márgenes de seguridad<br />
exp t recepciónedición tramo2 t t makespan t tiempo tramo<br />
primera estación previa según su recorrido, en <strong>la</strong> que exista por lo menos una<br />
1<br />
vía disponible.<br />
La capacidad de un tramo puede variar por intervalos de tiempo debido a<br />
operaciones de mantenimiento que también deben ser consideradas. Un tramo<br />
de vía única puede quedarse sin vías a efectos de circu<strong>la</strong>ción o un tramo de<br />
vía doble convertirse en un tramo de vía única.<br />
Los trenes que viajan en el mismo sentido pueden estar visitando un mis-<br />
mo tramo en un mismo instante de tiempo. Es decir dos actividades pueden<br />
utilizar una misma máquina. Esto ocurre en el caso de tramos cuyo tipo de<br />
bloqueo no es manual, sino automático, lo cual so<strong>la</strong>mente requiere que exista<br />
una determinada diferencia temporal entre uno y otro tren, pero no impide<br />
que ambos se hallen en el mismo tramo al mismo tiempo.<br />
También es importante notar que <strong>la</strong> solución entregada por <strong>la</strong> heurística es única<br />
y no tiene por qué ser <strong>la</strong> óptima ya que <strong>para</strong> decidir el orden en una máquina no se<br />
tiene en cuenta el resto de máquinas.<br />
El costo computacional también puede ser muy elevado <strong>para</strong> problemas reales,<br />
ya que se requiere: calcu<strong>la</strong>r el orden en el cual una máquina será utilizada, una vez<br />
seleccionada <strong>la</strong> siguiente máquina con un orden establecido es necesario recalcu<strong>la</strong>r<br />
por cada máquina ya seleccionada previamente un nuevo orden teniendo en cuenta<br />
<strong>la</strong> máquina que se acaba de agregar. En el caso de instancias del problema OPT
4.3. Estado del Arte - Métodos de Solución 145<br />
el construir un horario puede implicar operaciones de backtracking <strong>para</strong> satisfacer<br />
restricciones sobre capacidad en estaciones, horarios de cierre, y otros. Generalmente<br />
en una instancia del problema OPT existen 30 trenes a p<strong>la</strong>nificar y unos 50 cruces<br />
por gestionar.<br />
Reg<strong>la</strong>s de Procesamiento y el Problema OPT<br />
Las reg<strong>la</strong>s de procesamiento que han sido revisadas toman decisiones basándose<br />
en aspectos locales en cuanto a <strong>la</strong>s operaciones que requieren una máquina y a<br />
<strong>la</strong> máquina misma. Además debido a <strong>la</strong> forma determinista en <strong>la</strong> que estas reg<strong>la</strong>s<br />
asignan prioridades, <strong>la</strong> aplicación de <strong>la</strong>s mismas conduce a una única solución <strong>para</strong><br />
cada instancia de un problema. En el caso del problema OPT, no puede obtenerse<br />
mediante un algoritmo polinomial una solución óptima, entonces se prefiere obtener<br />
en un periodo corto de tiempo varias soluciones y seleccionar entre estas aquel<strong>la</strong> que<br />
mejor satisfaga el criterio de calidad considerado.<br />
Tanto <strong>la</strong>s reg<strong>la</strong>s de procesamiento básico como <strong>la</strong>s reg<strong>la</strong>s de procesamiento com-<br />
puesto se basan en <strong>la</strong> situación local que existe en el momento de hacer un orde-<br />
namiento. Esto podría ser útil si no se aplicaran <strong>la</strong>s reg<strong>la</strong>s en forma determinista, ya<br />
que lo que puede ser muy bueno <strong>para</strong> <strong>la</strong> situación local que se considera, puede traer<br />
consecuencias muy negativas a <strong>la</strong>s situaciones posteriores en <strong>la</strong>s que vaya cayendo<br />
<strong>la</strong> instancia del problema.<br />
Podemos decir que debido al costo computacional y espacial que supone prever<br />
<strong>la</strong>s consecuencias de cada elección, es muy difícil utilizar reg<strong>la</strong>s procesamiento global,<br />
por lo tanto se desea obtener un procesamiento que utilice el conocimiento anterior<br />
y presente en forma probabilística.<br />
4.3.9. Técnicas CSP y el Problema OPT<br />
En el capítulo 2 se describieron algunas de <strong>la</strong>s técnicas que se utilizan <strong>para</strong> hal<strong>la</strong>r<br />
soluciones a problemas formu<strong>la</strong>dos como un CSP. En esta sub sección indicamos<br />
ciertas características de <strong>la</strong> aplicación de estas técnicas al problema OPT.
146 4. Revisión de Métodos <strong>para</strong> <strong>la</strong> Generación de Horarios<br />
Backmarking<br />
La existencia de backtracking en un algoritmo implica que una misma variable<br />
puede ser instanciada más de una vez. La técnica Backmarking ha sido propuesta<br />
por Gaschnig [46] <strong>para</strong> evitar verificaciones redundantes cada vez que se instancia<br />
una variable, valiéndose de un recuerdo de instanciaciones previas sobre <strong>la</strong> misma.<br />
Para ello se utilizan dos tab<strong>la</strong>s, M y low. En <strong>la</strong> primera existen entradas por cada<br />
variable y por cada uno de los valores de su dominio. En <strong>la</strong> segunda existe una<br />
entrada por cada variable. En Mi,v se almacena j si <strong>la</strong> variable xj fue <strong>la</strong> variable<br />
más temprana en el ordenamiento con <strong>la</strong> cual xi = av produjo un conflicto. En<br />
<strong>la</strong> entrada lowi se almacena <strong>la</strong> variable más temprana modificada desde <strong>la</strong> ultima<br />
instanciación de xi. Cuando se requiere instanciar <strong>la</strong> variable xi se descartan todos<br />
los valores av de su dominio, tales que Mi,v < lowi.<br />
Para resolver el problema OPT es necesario utilizar backtracking <strong>para</strong> resolver<br />
incumplimientos a ciertas restricciones. Aunque consideramos que es necesario uti-<br />
lizar una técnica que evite repetir verificaciones porque se puede conocer de ante<br />
mano su resultado, basándose en instanciaciones previas, también consideramos que<br />
será necesario modificar <strong>la</strong> técnica de backmarking <strong>para</strong> poder aplicar<strong>la</strong> más eficien-<br />
temente al problema OPT. Las modificaciones consisten principalmente en <strong>la</strong> forma<br />
de almacenar aquellos valores que incumplen determinadas restricciones <strong>para</strong> ahor-<br />
rar espacio en memoria y en <strong>la</strong> forma de retroceder cuando se produce un dead-end<br />
durante <strong>la</strong> instanciación de una variable. A continuación detal<strong>la</strong>mos esas modifica-<br />
ciones incluidas en el procedimiento de resolución de OPT.<br />
Para ahorrar espacio se podría utilizar una lista dinámica por cada variable<br />
xi, en donde se mantengan aquel<strong>la</strong>s variables xj, j > i cuyos valores tuvieron que<br />
ser modificados <strong>para</strong> ser consistentes con xi. Cuando el valor de xi es modificado,<br />
únicamente <strong>la</strong>s variables xj son instanciadas con valores av menores a los valores que<br />
actualmente poseen, ya que podría ser que dichos valores anteriormente no factibles<br />
a causa de xi sean ahora factibles, ya que xi fue modificada. Por el tipo de problema<br />
que consideramos, un valor menor factible sería mejor, ya que se busca disminuir el<br />
tiempo total de recorrido de los trenes. Para el resto de variables diferentes a xj se<br />
verifican <strong>la</strong>s restricciones a partir del valor actual de cada variable. No se prueban<br />
los valores inferiores, ya que si estos no han sido usados hasta ahora, es porque<br />
dieron lugar a conflictos con otras variables, cuyo valor no ha sido modificado y por
4.3. Estado del Arte - Métodos de Solución 147<br />
lo tanto seguirían dando dicho conflicto. Este procedimiento sería recursivo, es decir<br />
se modifica xi implica modificar xk, entonces también se vuelven a verificar valores<br />
inferiores <strong>para</strong> todas aquel<strong>la</strong>s variables que tuvieron algún conflicto con xk.<br />
En cuanto a <strong>la</strong> forma de retroceder cuando se produce un dead-end, consider-<br />
amos que siendo posible conocer <strong>la</strong> causa del dead-end, es conveniente retroceder<br />
hasta <strong>la</strong> variable que produjo tal situación, y no a aquel<strong>la</strong> variable inmediatamente<br />
anterior en el ordenamiento, ya que esta variable puede no tener ninguna re<strong>la</strong>ción<br />
con el conflicto que originó el backtracking, por lo tanto aunque sea modificada se<br />
llegaría nuevamente a <strong>la</strong> misma situación. Esto significaría emplear un tiempo en<br />
verificaciones redundantes sin corregir <strong>la</strong> causa del backtracking.<br />
Forward Checking<br />
La técnica de Forward Checking, introducida por Haralick y Elliot [61], y sus<br />
variantes consisten en que cada vez que se realiza <strong>la</strong> asignación de una variable<br />
xi se debe propagar esta asignación a todas <strong>la</strong>s variables futuras, eliminando de<br />
sus respectivos dominios aquellos valores que presentan conflicto con <strong>la</strong> asignación<br />
actual de xi. Si el dominio de alguna variable futura se convierte en un conjunto<br />
vacío, entonces se prueba otro valor <strong>para</strong> xi.<br />
En el problema OPT aunque el dominio de <strong>la</strong>s variables es discreto, no se prue-<br />
ban los valores uno a uno. Debido a <strong>la</strong> naturaleza del problema existe un mínimo<br />
valor por el cual se empieza a probar el valor de una variable y está dado por <strong>la</strong><br />
restricción sobre el instante de salida inicial (cuando se trata de <strong>la</strong> variable que<br />
mode<strong>la</strong> el instante de salida desde <strong>la</strong> estación origen del recorrido), o por <strong>la</strong> restric-<br />
ción de tiempo de recorrido (cuando se trata de <strong>la</strong> variable instante de llegada en<br />
una estación intermedia), o por <strong>la</strong> restricción sobre <strong>para</strong>da comercial (variable que<br />
mode<strong>la</strong> el instante de salida de una estación intermedia, ya que se conoce el valor del<br />
instante de llegada). A partir de este valor, si existe un conflicto con otra variable,<br />
no se prueba el siguiente valor del dominio, sino el valor que evitará el conflicto<br />
con dicha variable. Por lo tanto se realizan <strong>la</strong> misma cantidad de verificaciones que<br />
se realizaría si uno deseara eliminar valores no factibles del dominio de variables<br />
futuras.
148 4. Revisión de Métodos <strong>para</strong> <strong>la</strong> Generación de Horarios<br />
Manteniendo Arco Consistencia (MAC)<br />
Cada vez que se intente asignar un valor a una variable, este algoritmo requiere<br />
<strong>la</strong> comprobación de un conjunto de restricciones de tal forma que se verifique si el<br />
problema es arco consistente con el valor candidato. En el caso del problema de<br />
<strong>la</strong> programación de horarios <strong>para</strong> trenes, tanto el número de restricciones como el<br />
número de variables es elevado, lo cual implica un costo computacional elevado.<br />
Existen variantes de este método que intentan disminuir el costo computacional<br />
utilizando listas dinámicas, lo cual incorpora un aumento de <strong>la</strong> complejidad espacial.<br />
Además estas listas deberán estar actualizadas durante <strong>la</strong> búsqueda.<br />
En el problema OPT <strong>la</strong> selección de un valor supone elegir el mínimo instante<br />
de salida <strong>para</strong> cada tren en cada estación de su recorrido. Si ese instante de salida<br />
no es consistente, re<strong>para</strong>rlo, solo consiste en aumentar su valor en una determinada<br />
cantidad. Consideramos que <strong>la</strong> aproximación de generar un valor y luego verificar<br />
su consistencia permite obtener soluciones en el menor tiempo posible. Dado que se<br />
desea optimizar, es importante que cada solución sea obtenida en forma eficiente.<br />
Ordenamiento de Variables<br />
Considerando que en el problema OPT cada instante de llegada y cada instante<br />
de salida de un tren a una estación de su recorrido es una variable del problema, es<br />
conveniente establecer un ordenamiento previo a <strong>la</strong> búsqueda entre <strong>la</strong>s variables que<br />
corresponden al horario de un tren. La llegada de un tren a una estación debe ser<br />
anterior o igual a su instante de salida, y si un tren va de <strong>la</strong> estación i a <strong>la</strong> estación<br />
i + 1, entonces su instante de llegada a i + 1 debe ser posterior a su instante de<br />
salida de i. Estas restricciones del problema indican un ordenamiento implícito, el<br />
cual es mostrado en <strong>la</strong> Figura 4.9. El recorrido de <strong>la</strong>s líneas punteadas más oscuras<br />
indican un ordenamiento entre <strong>la</strong>s variables que corresponden al horario del tren t1<br />
y <strong>la</strong>s líneas punteadas más c<strong>la</strong>ras un ordenamiento entre <strong>la</strong>s variables del horario<br />
del tren t2.<br />
Consideramos que es conveniente establecer un ordenamiento entre <strong>la</strong>s variables<br />
correspondientes al horario de un mismo tren, ya que <strong>la</strong>s inferencias <strong>para</strong> acotar<br />
el dominio de variables futuras re<strong>la</strong>cionadas por restricciones de precedencia con <strong>la</strong><br />
variable actual requerirán menor cantidad de cálculo. Siendo arr i j+1<br />
el instante de
4.4. Conclusión 149<br />
1<br />
llegada del tren i a <strong>la</strong> estación j + 1, dep 11<br />
i j<br />
estaciones<br />
Figura 4.9: Ordenamiento de Variables en el problema OPT tiempo<br />
413 dep 5 13 dep<br />
212 arr 312 t IIIIIIIVV VI dep<br />
el instante de salida de i de <strong>la</strong> estación<br />
j, y <strong>la</strong>s estaciones j y j + 1 dos estaciones consecutivas del recorrido del tren i, <strong>la</strong><br />
614 arr arr<br />
restricción de precedencia del problema OPT indica que arr i j+1 = depi j + ∆i j→j+1 .<br />
Por lo tanto <strong>para</strong> que <strong>la</strong> propagación de restricciones se lleve a cabo con el menor<br />
número de cálculos posible es conveniente instanciar <strong>la</strong>s variables correspondientes<br />
al horario de un tren en el mismo orden que el tren recorre <strong>la</strong>s estaciones.<br />
Cuando se trata de trenes diferentes, y que además recorren <strong>la</strong> línea ferroviaria en<br />
sentidos opuestos, el ordenamiento de <strong>la</strong>s variables correspondientes a sus respectivos<br />
horarios determina <strong>la</strong> solución del problema. Debido a que el problema OPT es un<br />
problema de optimización, nos interesa obtener cuanto antes una solución de buena<br />
calidad (minimizar valor de <strong>la</strong> función objetivo), por lo tanto el ordenamiento entre<br />
variables que representan horarios de diferentes trenes se lleva a cabo durante <strong>la</strong><br />
búsqueda como una decisión de <strong>la</strong> heurística a emplear.<br />
4.4. Conclusión<br />
El problema de programar horarios <strong>para</strong> trenes en una línea ferroviaria ha sido<br />
tratado en varios trabajos. Según <strong>la</strong>s restricciones que se consideren, el número de
150 4. Revisión de Métodos <strong>para</strong> <strong>la</strong> Generación de Horarios<br />
variables promedio que existan y <strong>la</strong> función objetivo utilizada, <strong>la</strong> complejidad del<br />
problema varia en gran medida, y por lo tanto los <strong>métodos</strong> que sean utilizados <strong>para</strong><br />
resolverlo también deben adecuarse <strong>para</strong> obtener un resultado más eficiente.<br />
Los trabajos descritos en este capítulo, re<strong>la</strong>cionados con el problema OPT, con-<br />
sideran un subconjunto de <strong>la</strong>s restricciones consideradas por OPT, lo cual permite<br />
en algunos casos <strong>la</strong> utilización de modelos y técnicas matemáticas <strong>para</strong> resolverlos<br />
y obtener buenos resultados según <strong>la</strong> definición de los problemas. En otros casos<br />
una técnica enumerativa, tal como branch and bound, obtiene una solución óptima<br />
en un tiempo aceptable ya que el espacio de soluciones es mucho menor al que se<br />
considera en OPT y el tiempo empleado <strong>para</strong> obtener cada solución también porque<br />
existen menos restricciones que verificar. Los <strong>métodos</strong> de búsqueda local requieren<br />
de heurísticas que permitan considerar asignaciones futuras y así evitar caer en<br />
óptimos locales. En cuanto a los algoritmos de mejora, como los del tipo algoritmo<br />
genético, consideramos que es importante mejorar <strong>la</strong> representación de los individ-<br />
uos, así como adaptar <strong>la</strong>s operaciones de cruce, selección y mutación al problema<br />
OPT de tal forma que se acelere <strong>la</strong> convergencia del algoritmo.<br />
Todos estos <strong>métodos</strong> pueden ser modificados de alguna forma <strong>para</strong> que puedan<br />
resolver el problema. Consideramos que en algunos casos estas modificaciones tam-<br />
bién implicarían un empobrecimiento en cuanto a <strong>la</strong> <strong>eficiencia</strong> original de los mismos.<br />
Por lo tanto, atendiendo <strong>la</strong> formu<strong>la</strong>ción del problema y teniendo en cuenta <strong>la</strong>s princi-<br />
pales carencias de los <strong>métodos</strong> existentes, hemos trabajado <strong>para</strong> diseñar y desarrol<strong>la</strong>r<br />
un nuevo método que permita obtener soluciones de alta calidad en forma eficiente.<br />
El resultado es presentado en el siguiente capítulo.
Capítulo 5<br />
Un Procedimiento heurístico<br />
basado en ordenación (PBO)<br />
5.1. Introducción<br />
En el capítulo 4 se ha hecho referencia a una selección de trabajos relevantes,<br />
que proponen <strong>métodos</strong> de solución al problema de programar y optimizar horarios<br />
factibles <strong>para</strong> trenes, el que se ha denotado en esta tesis como OPT. Aunque el<br />
tipo de problema es común a todos estos trabajos, <strong>la</strong> modelización que realiza cada<br />
uno descubre diferencias en cuanto: (i) al conjunto de restricciones, (ii) <strong>la</strong> función<br />
objetivo, y (iii) el tamaño de los casos de prueba utilizados.<br />
Una solución dada por el método de solución de uno de estos trabajos, puede no<br />
ser factible en otro, que modele el problema considerando un conjunto de restric-<br />
ciones más amplio. El problema OPT incluye todas <strong>la</strong>s restricciones consideradas en<br />
los trabajos consultados, sin embargo el conjunto de restricciones de OPT no está in-<br />
cluido en ninguno de ellos. En los <strong>métodos</strong> consultados no se mode<strong>la</strong>n restricciones<br />
sobre el número de vías en estaciones, ni sobre el cierre de <strong>la</strong>s mismas en determi-<br />
nados intervalos de tiempo. Tampoco se restringe <strong>la</strong> circu<strong>la</strong>ción en un tramo que se<br />
hal<strong>la</strong> bajo mantenimiento, ni <strong>la</strong> diferencia de tiempo que debe existir entre los in-<br />
stantes de salida/llegada de trenes utilizando un mismo recurso. Estas restricciones<br />
son muy complejas de mode<strong>la</strong>r mediante un modelo matemático, y de hacerlo re-<br />
querirían una gran cantidad de nuevas variables binarias, lo cual aumentaría aún<br />
más <strong>la</strong> complejidad del modelo, que ya consta de binarias <strong>para</strong> evitar conflictos co-<br />
mo el cruce o el alcance. Si se trataran todas estas restricciones, los <strong>métodos</strong> que<br />
151
152 5. Un Procedimiento heurístico basado en ordenación (PBO)<br />
han sido descritos en el Capítulo 4 perderían bastante <strong>eficiencia</strong>, y en algunos casos<br />
no podrían ser implementados. En particu<strong>la</strong>r, aquellos <strong>métodos</strong> de solución que se<br />
basan en <strong>la</strong>s propiedades matemáticas del modelo, como los que utilizan p<strong>la</strong>nos de<br />
corte <strong>para</strong> acotar el espacio de búsqueda. En este caso no sería factible hal<strong>la</strong>r <strong>la</strong>s<br />
ecuaciones, utilizadas como p<strong>la</strong>nos de corte, debido a <strong>la</strong> complejidad de <strong>la</strong>s expre-<br />
siones necesarias <strong>para</strong> mode<strong>la</strong>r <strong>la</strong>s restricciones mencionadas previamente.<br />
Según el conjunto de restricciones común a todos los trabajos consultados, pode-<br />
mos decir que <strong>la</strong> complejidad viene dada por: (i) <strong>la</strong> cantidad de trenes considerados,<br />
(ii) <strong>la</strong> infraestructura ferroviaria, y (iii) por el número de conflictos (trenes que com-<br />
piten por un mismo tramo). Es necesario un método que sea esca<strong>la</strong>ble. Es decir<br />
que su <strong>eficiencia</strong> no disminuya en <strong>la</strong> misma proporción con <strong>la</strong> que aumenta <strong>la</strong> com-<br />
plejidad del caso de prueba. Debe ser útil tanto <strong>para</strong> programar el horario de un<br />
único tren como <strong>para</strong> programar el horario de los trenes que circu<strong>la</strong>rán en una línea<br />
ferroviaria cada semana.<br />
Una gran parte de <strong>la</strong>s aplicaciones existentes son del tipo simu<strong>la</strong>ción. Esperan que<br />
el usuario introduzca un horario por cada tren, <strong>para</strong> indicar posteriormente aquel<strong>la</strong>s<br />
restricciones que no han sido cumplidas por <strong>la</strong> entrada especificada. Algunas de estas<br />
herramientas re<strong>para</strong>n <strong>la</strong>s restricciones incumplidas, si es posible, otras dejan que el<br />
usuario indique <strong>la</strong> forma en que esta re<strong>para</strong>ción debe ser realizada. De esta forma,<br />
no generan un horario factible <strong>para</strong> cada tren a partir de una <strong>para</strong>metrización, ni<br />
consideran una función objetivo que les permita evaluar <strong>la</strong> calidad de <strong>la</strong> solución<br />
entregada.<br />
Así pues, podemos concluir que los <strong>métodos</strong> de solución, propuestos en los traba-<br />
jos consultados, no pueden ser empleados <strong>para</strong> resolver el problema OPT que consta<br />
de ciertas restricciones, no consideradas por ninguno de los <strong>métodos</strong> estudiados. In-<br />
corporar dichas restricciones en sus modelos, o en sus <strong>métodos</strong> de solución, no es<br />
factible en alguno casos, y en otros implicaría un empobrecimiento en <strong>la</strong> <strong>eficiencia</strong><br />
que no justificaría <strong>la</strong> adaptación.<br />
En este capítulo proponemos un nuevo método de solución <strong>para</strong> el el problema<br />
OPT, el cual es un problema de scheduling tipo Job Shop que consta de <strong>la</strong>s restric-<br />
ciones propias de este tipo de problemas y de otras necesarias <strong>para</strong> asegurar <strong>la</strong><br />
factibilidad de <strong>la</strong> solución en un contexto real.<br />
En <strong>la</strong> Sección 5.3 se proporciona el esquema general del método de solución
5.2. Aplicación de <strong>la</strong>s técnicas CSP en el método de solución propuesto 153<br />
propuesto describiendo sus principales características. Posteriormente, en <strong>la</strong> Sección<br />
5.4, se analiza <strong>la</strong> re<strong>la</strong>ción que existe entre problemas de scheduling tipo Job Shop<br />
y el problema OPT, sobre el cual se aplica el método propuesto. Dicha aplicación<br />
presenta dos variantes, según se trate o no <strong>la</strong> restricción que exige periodicidad en <strong>la</strong>s<br />
salidas de determinados trenes consecutivos (trenes cadenciados). Ambas variantes<br />
se describen en <strong>la</strong> Sección 5.5 proponiendo <strong>la</strong> particu<strong>la</strong>rización del método <strong>para</strong> cada<br />
caso. Finalmente, <strong>la</strong> Sección 5.6 describe <strong>la</strong> aplicación del método al problema OPT<br />
en detalle, tanto <strong>para</strong> el caso en el que se requiere trenes cadenciados como <strong>para</strong><br />
el caso en el cual dicha restricción no está presente. La Sección 5.7 proporciona <strong>la</strong>s<br />
conclusiones de este Capítulo.<br />
5.2. Aplicación de <strong>la</strong>s técnicas CSP en el método de<br />
solución propuesto<br />
La utilización de una herramienta genérica que resuelva CSPs requiere que <strong>la</strong>s<br />
restricciones del problema deban ser especificadas en el lenguaje utilizado por <strong>la</strong><br />
misma, de tal forma que un analizador léxico y un analizador sintáctico puedan<br />
interpretar <strong>la</strong>s restricciones que existen entre <strong>la</strong>s variables del problema, y llevar a<br />
cabo <strong>la</strong>s verificaciones correspondientes durante <strong>la</strong> aplicación del método de solución.<br />
Por lo tanto <strong>para</strong> resolver el problema OPT utilizando Técnicas CSPs, se requiere en<br />
primer lugar poder representar <strong>la</strong>s restricciones del problema en el lenguaje especi-<br />
ficado <strong>para</strong> <strong>la</strong> herramienta. Esto supone un inconveniente, ya que un gran número<br />
de restricciones importantes del problema OPT son complejas de ser especificadas en<br />
lenguajes como el matemático o el de programación de restricciones comúnmente<br />
utilizado. Esta es una de <strong>la</strong>s razones por <strong>la</strong>s cuales no se ha utilizado alguna de <strong>la</strong>s<br />
herramientas disponibles que resuelven CSPs. En el método de solución propuesto<br />
<strong>para</strong> hal<strong>la</strong>r soluciones al problema OPT <strong>la</strong>s propias restricciones que se deben verificar<br />
está implícito en el propio método de solución.<br />
En el capítulo 2 se han presentado <strong>la</strong>s técnicas <strong>para</strong> resolver problemas CSP, más<br />
comúnmente referenciadas en <strong>la</strong> literatura. Los <strong>métodos</strong> híbridos, que combinan in-<br />
ferencia y búsqueda, se encuentran entre los <strong>métodos</strong> más utilizados <strong>para</strong> resolver<br />
eficientemente problemas CSP complejos, ya que proponen una aproximación <strong>para</strong>
154 5. Un Procedimiento heurístico basado en ordenación (PBO)<br />
disminuir el número de backtracking y asignaciones innecesarias. Ejemplos de este<br />
tipo de <strong>métodos</strong> son <strong>la</strong>s técnicas denominadas Forward Checking y MAC. Forward<br />
Checking propaga en forma se<strong>para</strong>da, el efecto de una selección tentativa de valor<br />
a cada variable futura. Si el dominio de una de éstas variables futuras queda vacío,<br />
entonces se rechaza el valor bajo consideración y se prueba el siguiente valor can-<br />
didato (se evita un dead-end). También se consideran <strong>la</strong>s asignaciones previamente<br />
realizadas. En el caso de MAC, <strong>la</strong> propagación se realiza a variables futuras, pero<br />
a su vez el valor de estas variables futuras se vuelve a propagar en <strong>la</strong>s restricciones<br />
cuyo ámbito <strong>la</strong>s incluyen, siendo mayor el nivel de arco consistencia realizado. Estas<br />
técnicas han sido estudiadas <strong>para</strong> comprobar si es posible aplicar<strong>la</strong>s <strong>para</strong> resolver<br />
el problema OPT, llegando a <strong>la</strong> conclusión de que si bien es posible una propagación<br />
de ciertas restricciones, <strong>la</strong> aplicación de los mismos, tal cual han sido formu<strong>la</strong>dos<br />
resultaría ineficiente. El tiempo que se emplea en verificar que cada asignación can-<br />
didata no genere un dead-end es mayor que el tiempo empleado en resolver el total<br />
de backtracking que ocurren en una instancia del problema OPT, siempre consideran-<br />
do el caso promedio. Esto ocurre principalmente porque el tipo de problema no es<br />
propicio a que ocurra un dead-end. Es más, esto solo ocurre cuando una dependencia<br />
se queda sin vías en el instante que llega un tren a <strong>la</strong> misma.<br />
En el método de solución que proponemos, el dominio de <strong>la</strong> variable siendo<br />
asignada se restringe a determinados valores, obtenidos a partir de <strong>la</strong> propagación<br />
de ciertas restricciones unarias y binarias del problema, en cuyos ámbitos se hal<strong>la</strong> <strong>la</strong><br />
variable siendo asignada. En particu<strong>la</strong>r, dado que esta variable representa el instante<br />
de inicio de una tarea perteneciente a un determinado trabajo, se propagarán <strong>la</strong>s<br />
restricciones binarias que <strong>la</strong> re<strong>la</strong>cionen con el instante de inicio o el instante de<br />
finalización de <strong>la</strong> tarea que le precede y que pertenece al mismo trabajo.<br />
J2<br />
( ) 1<br />
1 1, ( )<br />
( ) 2<br />
1 2, ( )<br />
3, ( 4, ) 1<br />
2, C<br />
Figura 5.1: Dominio de una variable siendo asignada filtrado a partir de determinadas<br />
restricciones<br />
0 86400<br />
1<br />
) (x Tiempo J
5.2. Aplicación de <strong>la</strong>s técnicas CSP en el método de solución propuesto 155<br />
En <strong>la</strong> Figura 5.1 se presenta un ejemplo. Han sido asignadas <strong>la</strong>s variables corre-<br />
spondientes a los instantes de inicio y finalización de <strong>la</strong>s tareas (1, 1), (2, 1) y (3, 1)<br />
del trabajo J1 y de <strong>la</strong> tarea (2, 2) perteneciente al trabajo J2. La siguiente variable<br />
seleccionada <strong>para</strong> su asignación es x, y representa el instante de inicio de <strong>la</strong> tarea<br />
(4, 1). Dado que el instante de inicio de <strong>la</strong> tarea (4, 1) debe ser posterior al instante<br />
de finalización de <strong>la</strong> tarea (3, 1), los valores de su dominio son restringidos a [C,<br />
86400] y será a partir del mismo desde donde se seleccione el siguiente valor <strong>para</strong> x. J2<br />
( ) 1<br />
1 1, ( )<br />
1 2, ( )<br />
A+<br />
3, ( 4, ) 1<br />
( 1, ) 2<br />
Figura 5.2: Dominio filtrado a partir de <strong>la</strong> restricción sobre periodicidad en salidas<br />
consecutivas<br />
Otro ejemplo es mostrado en <strong>la</strong> Figura 5.2. Debido a <strong>la</strong> restricción de periodicidad<br />
en salida, <strong>la</strong> primera tarea del trabajo J2 debe iniciarse necesariamente C unidades<br />
de tiempo después que se haya iniciado <strong>la</strong> primera tarea de J1. Por lo tanto en este<br />
caso el dominio inicial de x, [0, 86400] es restringido a [C, 86400].<br />
0 86400<br />
1<br />
) (x Tiempo A C C J<br />
El dominio del instante de finalización de una tarea siempre es reducido a un<br />
único valor posible que es el instante de inicio de <strong>la</strong> tarea a <strong>la</strong> que corresponde más<br />
su tiempo de procesamiento. Esto proporciona un único valor posible. Cuando este<br />
valor no es factible debido a que existe una restricción que limita a un determinado<br />
intervalo los valores factibles <strong>para</strong> finalización de una tarea, entonces es cuando se<br />
produce un backtracking, debiendo modificarse el instante de inicio de <strong>la</strong> misma.<br />
En cuanto a <strong>la</strong>s heurísticas de ordenación de valores consultadas, Mínimo Con-<br />
flicto, Máximo Dominio y Soluciones Estimadas, podemos decir que su aplicación<br />
requiere un gran número de cálculos, ya sea <strong>para</strong> estimar el número de conflictos<br />
por cada valor candidato, o <strong>la</strong> cardinalidad del dominio de <strong>la</strong>s variables futuras a<br />
partir de <strong>la</strong> selección realizada, o bien <strong>la</strong> estimación del número de soluciones según<br />
<strong>la</strong> cardinalidad de los dominios correspondientes a <strong>la</strong>s variables futuras. Consider-<br />
amos que estos cálculos son importantes si se desea obtener una medida acerca de<br />
los valores que nos pueden conducir hacia una solución segura sin tener que resolver<br />
numerosos conflictos o numerosos dead-ends. Sobre todo si se desea hal<strong>la</strong>r una única
156 5. Un Procedimiento heurístico basado en ordenación (PBO)<br />
solución, <strong>para</strong> problemas que buscan factibilidad y no optimalidad. En nuestro ca-<br />
so, el problema que intentamos resolver es un problema de optimización, se requiere<br />
explorar más de una solución, y muchas veces una solución en <strong>la</strong> cual exista un<br />
mayor número de conflictos o un mayor número de dead-ends, puede dar mejores<br />
resultados. El criterio que utilizamos <strong>para</strong> seleccionar un valor es aquel que permita<br />
obtener según <strong>la</strong> ordenación de variables realizada el mejor valor <strong>para</strong> <strong>la</strong> función<br />
objetivo. Por lo tanto, el ordenamiento de los valores de un dominio, una vez ha<br />
sido restringido por <strong>la</strong>s restricciones que se propagan, se realiza de menor a mayor,<br />
ya que representan instantes de tiempo y <strong>la</strong> función objetivo del problema requiere<br />
que cada trabajo sea realizado en el menor tiempo posible. A cada variable se le<br />
asigna el menor valor de su dominio que sea factible con respecto a <strong>la</strong>s restricciones<br />
consideradas y a <strong>la</strong>s asignaciones que le preceden.<br />
En cuanto a <strong>la</strong> heurística que ordena <strong>la</strong>s variables, por un <strong>la</strong>do se utiliza un<br />
determinado ordenamiento entre <strong>la</strong>s variables que representan el instante de inicio<br />
o el instante de finalización de tareas que pertenecen a un mismo trabajo y por<br />
otro <strong>la</strong>do se emplea otro concepto <strong>para</strong> establecer un orden de selección entre <strong>la</strong>s<br />
variables que representan instantes de inicio o instantes de finalización de tareas<br />
pertenecientes a diferentes trabajos. Cada trabajo está definido por un conjunto de<br />
tareas cuya realización debe llevarse a cabo en un orden determinado. Este es el<br />
mismo orden que se utiliza <strong>para</strong> asignar valores a los instantes de inicio de cada<br />
una de <strong>la</strong>s tareas que componen un mismo trabajo. Por lo tanto entre <strong>la</strong>s variables<br />
que representan estos instantes de inicio existe un orden estático pre establecido.<br />
Siempre será seleccionada primero <strong>la</strong> variable que represente el instante de inicio de<br />
aquel<strong>la</strong> tarea que deba ser realizada antes de <strong>la</strong>s demás tareas del mismo trabajo<br />
según el ordenamiento establecido entre el<strong>la</strong>s. Ahora bien, el ordenamiento que se<br />
establece entre dos variables que hacen referencia a trabajos distintos, es dinámico<br />
y tiene en cuenta el estado de <strong>la</strong> solución siendo construida. Específicamente, se<br />
asignan probabilidades de selección a <strong>la</strong>s variables que representan el instante de<br />
inicio de cada tarea que aún no ha sido seleccionada. Las probabilidades de selección<br />
aumentan cuanto mayor sea el retraso que lleve el trabajo al que pertenece <strong>la</strong> tarea,<br />
con respecto a <strong>la</strong> duración ideal del mismo. Esta heurística es descrita en detalle en<br />
<strong>la</strong> Sección 5.6.1.<br />
En <strong>la</strong> Figura 5.3 se representa <strong>la</strong> ordenación tanto de variables como de valores
5.2. Aplicación de <strong>la</strong>s técnicas CSP en el método de solución propuesto 157<br />
VariablesdeOrden<br />
de Orden 4 x Variable Valores<br />
x Variable 6 x Variable 2<br />
x Variable3<br />
Figura 5.3: Ordenación de Variables y Valores en <strong>la</strong> construcción de una solución Variablex8<br />
que es necesaria realizar cuando se construye una solución <strong>para</strong> el problema CSP.<br />
En cada nivel del árbol mostrado en <strong>la</strong> Figura 5.3 existe un conjunto de valores,<br />
pertenecientes al dominio de <strong>la</strong> variable seleccionada <strong>para</strong> ser asignada, uno de estos<br />
valores será elegido. En el método de solución propuesto en esta tesis, y descrito en<br />
este capítulo, según sea <strong>la</strong> variable seleccionada <strong>para</strong> ocupar cada nivel del árbol de<br />
búsqueda durante <strong>la</strong> construcción de una solución, se tendrá un valor u otro en <strong>la</strong><br />
función objetivo correspondiente a dicha solución.
158 5. Un Procedimiento heurístico basado en ordenación (PBO)<br />
5.3. Esquema General del Método de Solución prop-<br />
uesto<br />
En esta sección describiremos el procedimiento empleado <strong>para</strong> asignar una solu-<br />
ción al problema de scheduling tipo Job Shop definido en el Capítulo 3. Cada in-<br />
stancia de este problema consta de una determinada función objetivo y de un con-<br />
junto finito de trabajos, recursos y restricciones. Cada trabajo está formado por<br />
una secuencia ordenada de operaciones, y cada una de estas operaciones necesita un<br />
determinado recurso, del conjunto especificado, <strong>para</strong> ser llevada a cabo.<br />
En <strong>la</strong> Figura 5.4 se proporciona un ejemplo de este tipo de problema. Se consid-<br />
era un conjunto compuesto por cuatro trabajos, {J1, J2, J3, J4}, y un conjunto finito<br />
de recursos {m1, m2, m3, m4, m5}. Se ha utilizado <strong>la</strong> notación (k, i) <strong>para</strong> especificar<br />
que una operación del trabajo Ji necesita utilizar el recurso mk. En <strong>la</strong> tab<strong>la</strong> de <strong>la</strong><br />
Figura 5.4 se indica el orden en el cual <strong>la</strong>s operaciones de cada trabajo utilizan los<br />
recursos. Así, en <strong>la</strong> primera fi<strong>la</strong> de <strong>la</strong> tab<strong>la</strong> se indica que el trabajo J1 consta de<br />
tres operaciones, <strong>la</strong> primera necesita utilizar el recurso m2, <strong>la</strong> segunda el recurso<br />
m3, y <strong>la</strong> tercera, que es <strong>la</strong> última operación de J1, necesita utilizar el recurso m4.<br />
La misma información es proporcionada <strong>para</strong> el resto de trabajos en <strong>la</strong>s siguientes<br />
fi<strong>la</strong>s de <strong>la</strong> misma tab<strong>la</strong>. También se indican los instantes de tiempo en los que se<br />
considera factible que se inicie un trabajo. En <strong>la</strong> Figura 5.4, estos intervalos de tiem-<br />
po son especificados por [I i L , Ii U ] <strong>para</strong> cada trabajo Ji. Los instantes de tiempo que<br />
corresponden a cada intervalo son representados utilizando regiones rectangu<strong>la</strong>res<br />
<strong>para</strong>le<strong>la</strong>s al eje de tiempo x.<br />
El objetivo del método de solución, consiste en asignar a cada operación del<br />
problema, un instante de inicio y un instante de finalización que satisfaga el con-<br />
junto de restricciones especificado y que optimice el valor de <strong>la</strong> función objetivo<br />
considerada.
5.3. Esquema General del Método de Solución propuesto 159<br />
{<br />
) ( 3, )<br />
Máquinas/R 2 m<br />
(<br />
Trabajo<br />
)<br />
ecursos<br />
J4 2 11<br />
( 3,<br />
ecursos m2 m4<br />
( 4, ) ) ( ) 4 44<br />
} 4 3 2 1 5<br />
= , , , ,<br />
, , , J 3m<br />
m{ } m m 4 3 2 1 mm<br />
Máquinas/R<br />
=<br />
J J J Trabajos<br />
J2 J3 J2<br />
1<br />
J3<br />
( J J4<br />
J4L<br />
1<br />
51<br />
m m3 3 mm4<br />
2, ( 4, ) 1<br />
( )<br />
m2<br />
3<br />
2 1, ( )<br />
3 5, ( )<br />
2 2, ( )<br />
2 3, ( )<br />
4, ( 5, ) 2<br />
3 4, ( )<br />
2, ( 1, ) 4<br />
m5 m m3m1<br />
m 2 m 4 m4<br />
3L I3U I 2L 1L I<br />
3, ( 2, ) 3<br />
( ) Tiempox<br />
Figura 5.4: Una instancia del problema de scheduling tipo Job Shop I1U<br />
I<br />
Volviendo al ejemplo de <strong>la</strong> Figura 5.4, en el<strong>la</strong> se indica una solución <strong>para</strong> <strong>la</strong> in- I2U<br />
I 4U I<br />
stancia considerada. Se ha asignado un instante de inicio y un instante de finalización<br />
a cada operación (k, i) de tal forma que se satisfaga el conjunto de restricciones con-<br />
siderado, particu<strong>la</strong>rmente el instante de inicio, <strong>la</strong> secuenciación de <strong>la</strong>s operaciones,<br />
y <strong>la</strong> compartición simultánea de recursos. Así, cuando dos operaciones necesitaron<br />
utilizar un mismo recurso al mismo tiempo, el inicio de una de el<strong>la</strong>s fue retrasado<br />
hasta que <strong>la</strong> otra liberó el recurso requerido. Por ejemplo, <strong>la</strong>s operaciones (2, 1) y<br />
(2, 4) pueden utilizar el mismo recurso m2 al mismo tiempo. Sin embargo, esto no<br />
es posible ya que el mismo puede ser utilizado como máximo por una operación a<br />
<strong>la</strong> vez. Luego, <strong>para</strong> satisfacer esta restricción se retrasa el inicio de (2, 4) hasta que<br />
(2, 1) finalice <strong>la</strong> utilización de m2. La operación (2, 4) no inicia <strong>la</strong> utilización de m2<br />
inmediatamente (2, 1) haya finalizado, porque debe existir un margen de tiempo en-<br />
tre <strong>la</strong> finalización de una operación y el inicio de otra que utiliza un mismo recurso.<br />
Esta misma situación ocurre entre los pares de operaciones (4, 1), (4, 3), y (3, 2),
160 5. Un Procedimiento heurístico basado en ordenación (PBO)<br />
Solución PrimeraInicio<br />
SiguienteSolución<br />
Siguiente Variables Ordenación Inicio Instante Elección Inicio de Instante Elección Heurística OperaciónSolución<br />
Elección una de de Heurística ón Construcci<br />
Restriccio de de<br />
de ón Verificaci s Prioridade sobre Decisión Heurística Tiempo deIntervalo Asignación nes<br />
sobre Decisión Heurística Restricciones<br />
Poda Evaluación Solución Parcial<br />
Figura 5.5: Esquema del Método de Optimización y Satisfacción de Restricciones<br />
<strong>para</strong> un Problema tipo Job Shop<br />
Mejor Solución<br />
Función Solución ó Poda SI Proceso Finalizar NO Objetivo<br />
SI NO<br />
Fin
5.3. Esquema General del Método de Solución propuesto 161<br />
(3, 3).<br />
El método propuesto en esta Tesis <strong>para</strong> <strong>la</strong> resolución de <strong>la</strong> tipología de problemas<br />
p<strong>la</strong>nteada es un procedimiento iterativo que se basa en cuatro aspectos fundamen-<br />
tales:<br />
(i) Utiliza cada iteración <strong>para</strong> construir una solución.<br />
(ii) El procedimiento finaliza cuando una determinada condición, número de it-<br />
eraciones, tiempo de ejecución, coste de <strong>la</strong> función objetivo, es alcanzada.<br />
(iii) La construcción de cada solución se lleva a cabo asignando un horario factible<br />
a cada operación del problema en forma secuencial.<br />
(iv) La construcción de una solución será interrumpida si el procedimiento estima<br />
que su coste será igual o peor que el coste de <strong>la</strong> mejor solución obtenida<br />
hasta entonces.<br />
En <strong>la</strong> Figura 5.5 se proporciona un esquema de este procedimiento. En el<strong>la</strong> se<br />
distingue <strong>la</strong> siguiente secuencia de etapas:<br />
a) Elección Siguiente Operación (criterio heurístico),<br />
b) Elección de Instante de Inicio (criterio heurístico),<br />
c) Asignación Intervalo de Tiempo,<br />
d) Verificación de Restricciones, y<br />
e) Evaluación Solución Parcial (criterio heurístico).<br />
El marco, seña<strong>la</strong>do con <strong>la</strong> etiqueta Construcción de una Solución en <strong>la</strong> Figura<br />
5.5, incluye a <strong>la</strong>s etapas citadas en el párrafo previo, resaltando que su ejecución en el<br />
orden dado, es repetida hasta que se obtenga una solución, o bien hasta que <strong>la</strong> etapa<br />
Evaluación Solución Parcial decida interrumpir <strong>la</strong> construcción de <strong>la</strong> solución actual<br />
(poda). Ambas posibilidades <strong>para</strong> finalizar una iteración son representadas por el<br />
elemento de decisión etiquetado Poda ó Solución en <strong>la</strong> Figura 5.5. La construcción<br />
de una solución es interrumpida cuando <strong>la</strong> etapa Evaluación Solución Parcial estima<br />
que el coste de <strong>la</strong> misma será igual o peor que el coste de <strong>la</strong> mejor solución obtenida<br />
hasta entonces. En uno u otro caso, poda ó solución alcanzada, se inicia una nueva<br />
iteración del procedimiento principal, siempre y cuando <strong>la</strong> condición de <strong>para</strong>da no<br />
haya sido alcanzada (elemento de decisión etiquetado Fin de Proceso en <strong>la</strong> Figura<br />
5.5). Si por el contrario <strong>la</strong> condición de <strong>para</strong>da ha sido cumplida, el procedimiento<br />
principal proporciona <strong>la</strong> mejor solución y finaliza.
162 5. Un Procedimiento heurístico basado en ordenación (PBO)<br />
El procedimiento descrito es pues un método constructivo, guiado heurística-<br />
mente. El método busca <strong>la</strong> construcción de soluciones que cump<strong>la</strong>n <strong>la</strong>s restricciones<br />
del problema y se basa en criterios heurísticos <strong>para</strong> lograr <strong>la</strong> <strong>eficiencia</strong> en <strong>la</strong> con-<br />
strucción de <strong>la</strong> solución y <strong>la</strong> optimalidad de <strong>la</strong> misma.<br />
En los siguientes apartados, describiremos en qué consiste cada etapa de <strong>la</strong> con-<br />
strucción de una solución, según el método de solución propuesto.<br />
a) Elección Siguiente Operación. Heurística <strong>para</strong> Asignar Prioridades a<br />
cada Operación<br />
Elección Siguiente Operación es <strong>la</strong> etapa responsable de seleccionar <strong>la</strong> siguiente<br />
operación del problema a <strong>la</strong> cual se deberá asignar un instante de inicio y un instante<br />
de finalización factible. En el momento que se debe tomar esta decisión existen dos<br />
conjuntos disjuntos de operaciones. Uno de ellos está formado por <strong>la</strong>s operaciones<br />
ya seleccionadas y el otro por <strong>la</strong>s operaciones aún no seleccionadas, siempre con-<br />
siderando <strong>la</strong> construcción de una misma solución. Se utiliza un criterio o heurística<br />
<strong>para</strong> seleccionar uno de los elementos del segundo conjunto. Esta selección se realiza<br />
de forma heurística porque el orden en el cual sean seleccionadas <strong>la</strong>s operaciones de-<br />
terminará el orden de prioridades entre el<strong>la</strong>s. Si <strong>la</strong> operación (k, i) fue seleccionada<br />
antes que <strong>la</strong> operación (k, j), entonces (k, i) tendrá mayor prioridad sobre el recurso<br />
mk que <strong>la</strong> operación (k, j), en el caso que ambas compitieran por el mismo.<br />
Decimos que dos operaciones compiten por un mismo recurso, cuando requieren<br />
utilizarlo al mismo tiempo y <strong>la</strong> capacidad del mismo no permite que sea utilizado<br />
por más de una operación a <strong>la</strong> vez. En ese caso <strong>la</strong> operación cuya prioridad sea<br />
mayor, utilizará primero al recurso. Por lo tanto, es <strong>la</strong> ordenación en <strong>la</strong> selección de<br />
<strong>la</strong>s operaciones <strong>la</strong> que determina <strong>la</strong> calidad de una solución, ya que dependiendo de<br />
qué operación sea priorizada se tendrá una u otra solución. La heurística guía al pro-<br />
cedimiento indicándole qué operación entre <strong>la</strong>s no seleccionadas, debe tener mayor<br />
prioridad. Para ello considera <strong>la</strong> función objetivo y el estado actual del problema.<br />
Si consideramos <strong>la</strong> Figura 5.4 se puede ver que <strong>la</strong>s operaciones (3, 2) y (3, 3), que<br />
necesitan del mismo recurso m3 <strong>para</strong> ser llevadas a cabo, lo compartirían si ambas<br />
se iniciaran en el instante de inicio especificado <strong>para</strong> <strong>la</strong>s mismas. La operación (3, 2)<br />
pertenece al trabajo J2, cuyas operaciones utilizan los recursos en un determinado<br />
orden, y <strong>la</strong> operación (3, 3) pertenece al trabajo J3, cuyas operaciones utilizan los
5.3. Esquema General del Método de Solución propuesto 163<br />
recursos en el orden inverso al utilizado por J2. Por lo tanto, el recurso m3 no puede<br />
ser compartido por (3, 2) y (3, 3). Debido a esta restricción se retrasa el inicio de<br />
<strong>la</strong> operación (3, 3) hasta que (3, 2) libere el recurso m3. En este caso <strong>la</strong> operación<br />
(3, 2) tiene mayor prioridad que <strong>la</strong> operación (3, 3) porque (3, 2) ha sido seleccionada<br />
previamente a (3, 3).<br />
La heurística utilizada consiste en asignar una probabilidad de selección a cada<br />
operación aún no seleccionada, de tal forma que <strong>la</strong> suma de probabilidades sea<br />
igual a uno. Esta asignación de probabilidad a cada operación se hace en base a<br />
una ponderación del retraso que lleva el trabajo al cual pertenece, con respecto a su<br />
tiempo ideal. Cuanto mayor sea el retraso, mayor será <strong>la</strong> probabilidad de selección de<br />
<strong>la</strong> operación que pertenece al mismo. Es importante notar que cuando existe más de<br />
una operación perteneciente al mismo trabajo entre <strong>la</strong>s operaciones no seleccionadas,<br />
solo es considerada aquel<strong>la</strong> operación cuyo orden de ejecución es el menor. Es decir,<br />
se respeta <strong>la</strong> re<strong>la</strong>ción de precedencia entre <strong>la</strong>s operaciones de un mismo trabajo.<br />
La heurística empleada está basada en el procedimiento ”Regret-Based Biased<br />
Random Sampling (RBRS)”propuesta por Drexl, [38] y [39], quien introdujo el con-<br />
cepto de regrets (en español se ha utilizado el término sesgo) en los procedimientos<br />
que realizan un muestreo aleatorio (random sampling). El valor de sesgo v ′ (j) de un<br />
candidato j mide <strong>la</strong> consecuencia que podría resultar, en el peor caso, si otro can-<br />
didato fuera seleccionado. Siendo Dn el conjunto de candidatos y V (Dn) el conjunto<br />
de valores de prioridad, v(j), correspondiente a cada candidato, se calcu<strong>la</strong> el valor<br />
de sesgo como<br />
v ′ ⎧<br />
⎨ maxV (Dn) − v(j) si el objetivo es maximizar<br />
(j) =<br />
⎩ v(j) − minV (Dn) si el objetivo es minimizar<br />
Posteriormente el valor calcu<strong>la</strong>do es modificado a<br />
v ′′ (j) = (v ′ (j) + ε) α<br />
(5.3.1)<br />
(5.3.2)<br />
donde ε ∈ R + y α ≥ 0, α ∈ R. Habiendo determinado estos valores, <strong>la</strong> probabilidad<br />
de selección de cada candidato j es derivada de <strong>la</strong> expresión<br />
p(j) = v′′ (j)<br />
<br />
v ′′ (i)<br />
i∈Dn<br />
(5.3.3)
164 5. Un Procedimiento heurístico basado en ordenación (PBO)<br />
En el caso del problema considerado en esta tesis, el conjunto de candidatos<br />
está formado por los trabajos j que tengan por lo menos una operación a <strong>la</strong> que aún<br />
no se le haya asignado un horario factible. El valor de prioridad v(j) es el retraso que<br />
lleva el trabajo, en el momento que se realiza <strong>la</strong> elección de <strong>la</strong> siguiente operación,<br />
con respecto a su tiempo ideal. Para llevar a cabo tal medición solo se consideran<br />
<strong>la</strong>s operaciones del trabajo a <strong>la</strong>s cuales se ha asignado un horario factible.<br />
El valor ε garantiza que v ′′ (j) no sea igual a cero, ya que de lo contrario aquellos<br />
candidatos con un retraso igual a cero no serían seleccionados. El valor de α permite<br />
aumentar o disminuir <strong>la</strong>s diferencias entre los valores de prioridad, según sea α > 1<br />
o α < 1, respectivamente. Si α = 0, el proceso de selección se vuelve completamente<br />
aleatorio, ya que todos los candidatos compartirán <strong>la</strong> misma probabilidad de ser<br />
seleccionados. Por otro <strong>la</strong>do cuando α tiende a ∞, el proceso se comporta de forma<br />
determinista, ya que <strong>la</strong> probabilidad de <strong>la</strong> operación con probabilidad más alta de<br />
ser seleccionado converge a uno.<br />
Una vez que cada operación tenga asignada una probabilidad de selección p(j),<br />
se obtiene de forma aleatoria, un número entre 0 y 1. Posteriormente, se procede a<br />
sumar, en un orden indeterminado, <strong>la</strong> probabilidad de selección de cada operación<br />
perteneciente al conjunto de candidatos. La suma finaliza cuando se alcanza un valor<br />
igual o mayor que el número aleatorio obtenido. La operación, cuya probabilidad<br />
de selección sea el último valor agregado a <strong>la</strong> suma, será <strong>la</strong> siguiente operación a <strong>la</strong><br />
cual se deba asignar un horario factible.<br />
b) Elección del Instante de Inicio<br />
Una vez seleccionada <strong>la</strong> siguiente operación a <strong>la</strong> cual se deberá asignar <strong>la</strong> uti-<br />
lización del recurso así como un horario factible, el siguiente paso consiste en selec-<br />
cionar un instante de inicio <strong>para</strong> <strong>la</strong> misma. Cuando se trata de <strong>la</strong> primera operación<br />
de un trabajo, el instante de inicio de <strong>la</strong> misma corresponde al instante de inicio<br />
del trabajo al que pertenece. Dado que cada trabajo tiene asignado un conjunto de<br />
valores que corresponden a los instantes de inicio considerados válidos, el instante<br />
de inicio asignado a <strong>la</strong> primera operación del trabajo debe ser un elemento de este<br />
conjunto. El conjunto de instantes de inicio válidos puede ser dado por un intervalo<br />
de valores (desde <strong>la</strong>s 08:00 hasta <strong>la</strong>s 10:00, ambos inclusive) o bien por un único<br />
valor, que significa que se desea que <strong>la</strong> operación se inicie en el primer instante igual
5.3. Esquema General del Método de Solución propuesto 165<br />
o posterior a dicho valor que sea factible con respecto al resto de restricciones. Esta<br />
asignación es realizada de tal forma que se cump<strong>la</strong> <strong>la</strong> restricción C12 - Intervalo de<br />
Salida (Sección 3.4.2).<br />
Si por el contrario, no se trata de <strong>la</strong> primera operación de un trabajo, <strong>la</strong> asig-<br />
nación del instante de inicio es igual al instante de finalización de <strong>la</strong> operación previa<br />
a <strong>la</strong> misma según <strong>la</strong> ordenación de operaciones correspondiente al trabajo al cual<br />
ambas pertenecen.<br />
c) Asignación Intervalo de Tiempo<br />
Cada operación tiene asignado un tiempo de procesamiento (ver restricciones<br />
sobre tiempo de recorrido C8 y sobre <strong>para</strong>da comercial C16 en <strong>la</strong> Sección 3.4.2), por<br />
lo tanto dado un instante de inicio, se suma el tiempo de procesamiento indicado<br />
<strong>para</strong> <strong>la</strong> misma y se obtiene un instante de finalización. La siguiente etapa del método<br />
de solución verifica si es factible que el recurso utilizado por <strong>la</strong> operación sea ocupado<br />
durante el intervalo de tiempo especificado por el horario asignado a <strong>la</strong> misma.<br />
d) Verificación de Restricciones<br />
Una vez que <strong>la</strong> operación tiene un instante de inicio y un instante de finalización,<br />
se procede a verificar si el intervalo de tiempo asignado a <strong>la</strong> misma es válido con<br />
respecto al conjunto de <strong>la</strong>s restricciones consideradas en el problema. Para <strong>la</strong> verifi-<br />
cación de <strong>la</strong>s restricciones solo se tiene en cuenta aquel<strong>la</strong>s operaciones cuyos horarios<br />
de inicio y de fin han sido asignados previamente, y por lo tanto sus prioridades son<br />
mayores con respecto a <strong>la</strong> prioridad de <strong>la</strong> operación siendo asignada actualmente.<br />
Si alguna restricción es incumplida se procede a modificar el instante de inicio<br />
de tal forma que se repare el incumplimiento. Las restricciones no cumplidas por el<br />
horario asignado, se deben principalmente a que los recursos que debería utilizar <strong>la</strong><br />
operación actual, ya están siendo utilizados por otras operaciones en el intervalo de<br />
tiempo asignado. Por lo tanto, <strong>la</strong> re<strong>para</strong>ción consiste en retrasar el instante de inicio<br />
de <strong>la</strong> operación actual hasta el instante en el que el recurso requerido haya sido<br />
liberado por <strong>la</strong>s operaciones que lo estaban ocupando. Luego, se vuelve a verificar<br />
el conjunto de restricciones.<br />
e) Evaluación Solución Parcial - Posibilidad de Poda
166 5. Un Procedimiento heurístico basado en ordenación (PBO)<br />
A medida que el método construye una solución, existe un proceso que evalúa<br />
<strong>la</strong>s asignaciones realizadas hasta el momento y decide si seguir construyendo dicha<br />
solución o interrumpir<strong>la</strong> e iniciar <strong>la</strong> construcción de una nueva.<br />
La evaluación de <strong>la</strong> asignación parcial es realizada <strong>para</strong> evitar emplear tiempo de<br />
cómputo construyendo una solución que finalmente no sería mejor que <strong>la</strong> obtenida<br />
hasta entonces.<br />
La etapa Evaluación Solución Parcial en <strong>la</strong> Figura 5.5 es <strong>la</strong> responsable de<br />
evaluar el conjunto de asignaciones realizadas y decidir si se debe interrumpir o no<br />
<strong>la</strong> construcción actual de una solución.<br />
Este proceso es l<strong>la</strong>mado cada vez que a una operación se le asigna un instante<br />
de inicio y un instante de finalización válidos, es decir que <strong>la</strong> asignación de recursos<br />
que utiliza dicha operación en el intervalo de tiempo es factible con respecto al resto<br />
de tareas que ya han sido asignadas previamente. En términos de un CSOP, cuando<br />
el proceso evaluador es l<strong>la</strong>mado puede existir un conjunto de variables que no estén<br />
asignadas. En ese caso decimos que <strong>la</strong> asignación a evaluar es una asignación parcial.<br />
De no ser asi, todas <strong>la</strong>s variables han sido asignadas, decimos que <strong>la</strong> asignación a<br />
evaluar es una solución del problema.<br />
En el caso que sea una asignación parcial, existirán variables cuyos valores no<br />
han sido asignados, por lo tanto se asume un valor potencial <strong>para</strong> dichas variables.<br />
El valor potencial <strong>para</strong> cada variable sin asignar es determinado de tal forma que<br />
cualquier otro valor factible <strong>para</strong> <strong>la</strong> misma haría que el valor de <strong>la</strong> función objetivo<br />
fuese igual o peor que <strong>la</strong> estimada. Por <strong>la</strong> forma en que se estiman los valores de<br />
<strong>la</strong>s variables sin asignar decimos que <strong>la</strong> estimación es conservadora, ya que si se<br />
dejara terminar <strong>la</strong> construcción de dicha solución el valor real de <strong>la</strong> función objetivo<br />
correspondiente a <strong>la</strong> misma siempre sería igual o peor, pero nunca mejor. Por lo<br />
tanto si el valor estimado de <strong>la</strong> función objetivo de una asignación parcial es peor<br />
que el valor de <strong>la</strong> función objetivo de <strong>la</strong> mejor solución obtenida hasta entonces, es<br />
seguro que finalizar <strong>la</strong> construcción de <strong>la</strong> asignación parcial solo daría una solución<br />
peor que <strong>la</strong> mejor obtenida hasta entonces. Por lo tanto, si <strong>la</strong> estimación indica que<br />
se debe interrumpir, es un ahorro de tiempo que permite obtener un mayor número<br />
de soluciones en menor cantidad de tiempo.<br />
Si consideramos que el árbol de búsqueda de <strong>la</strong> Figura 5.6 representa el proceso<br />
utilizado <strong>para</strong> construir <strong>la</strong>s soluciones del problema, podemos considerar el proceso
5.3. Esquema General del Método de Solución propuesto 167<br />
evaluador como el sistema utilizado <strong>para</strong> podar <strong>la</strong>s ramas del mismo que no aporten<br />
mejores soluciones. Cada rama del árbol representa <strong>la</strong> construcción de una solución.<br />
Cada nodo de una rama corresponde a una asignación y esto a su vez corresponde<br />
a <strong>la</strong> ubicación de una operación del Job Shop en el tiempo. El proceso evaluador es<br />
l<strong>la</strong>mado cada vez que una asignación es realizada. Como puede verse en <strong>la</strong> Figura<br />
5.6, en el instante que este proceso es l<strong>la</strong>mado, puede existir una asignación parcial,<br />
es decir ciertos nodos de <strong>la</strong> rama actual, aún no han sido generados (nodos, cuya cir-<br />
cunferencia está formada por línea de puntos) o puede existir una solución, situación<br />
que se produce cuando todos los nodos de una rama han sido generados. En una de<br />
<strong>la</strong>s ramas de <strong>la</strong> Figura 5.6, el evaluador decide interrumpir, por lo cual <strong>la</strong> rama es<br />
cortada y ningún otro nodo es generado. En otra de <strong>la</strong>s ramas, el evaluador decide<br />
continuar todas <strong>la</strong>s veces que es l<strong>la</strong>mado, hasta el final de <strong>la</strong> generación de <strong>la</strong> rama,<br />
momento en el cual produce el valor real de <strong>la</strong> función objetivo <strong>para</strong> el conjunto de<br />
asignaciones realizadas, es decir <strong>para</strong> <strong>la</strong> solución representada por dicha rama. Este<br />
valor solo puede ser igual o mejor que el valor de <strong>la</strong> función objetivo correspondiente<br />
a <strong>la</strong> mejor solución obtenida hasta entonces.
168 5. Un Procedimiento heurístico basado en ordenación (PBO)<br />
. . . . . .<br />
Figura 5.6: Evaluación Solución Parcial decide sobre <strong>la</strong> poda de una rama del árbol<br />
de búsqueda Fin<br />
Resumiendo, el procedimiento Evaluación Solución Parcial estima el tiempo<br />
que será necesario <strong>para</strong> llevar a cabo un trabajo, cada vez que se asigna un ho-<br />
rario factible a una operación del mismo. Considerando el conjunto de trabajos del<br />
problema y <strong>la</strong>s estimaciones asociadas a cada uno, se calcu<strong>la</strong> el valor de <strong>la</strong> función<br />
objetivo. Si el coste obtenido es mayor o igual que el coste de <strong>la</strong> mejor solución<br />
obtenida hasta entonces, se interrumpe <strong>la</strong> construcción de <strong>la</strong> solución actual.<br />
La estimación realizada por el procedimiento Evaluación Solución Parcial consta<br />
de dos partes, g(n) y h(n). La función g(n) proporciona el tiempo empleado por <strong>la</strong>s n<br />
primeras operaciones del trabajo considerado, deducido a partir del horario factible<br />
que ya ha sido asignado a <strong>la</strong>s mismas. Por otro <strong>la</strong>do, <strong>la</strong> función h(n) estima el tiempo<br />
que emplearán <strong>la</strong>s operaciones restantes, a <strong>la</strong>s cuales no se les ha asignado horario
5.4. El Problema OPT como un Problema de Scheduling tipo Job Shop 169<br />
alguno. Si consideramos que h ∗ (n) es el tiempo real transcurrido desde que se inicia<br />
<strong>la</strong> primera operación hasta que finaliza <strong>la</strong> ultima operación del trabajo considerado,<br />
decimos que el procedimiento Evaluación Solución Parcial es conservador porque el<br />
valor de h(n) siempre será menor o igual que el valor de h ∗ (n). Esto significa que<br />
en ningún caso se interrumpirá <strong>la</strong> construcción de una solución que de haber sido<br />
completada hubiese sido mejor que <strong>la</strong> obtenida hasta entonces. En el caso que <strong>la</strong><br />
estimación realizada h(n) pudiese ser en ciertos casos mayor que h ∗ (n) aumenta <strong>la</strong><br />
posibilidad de que una solución parcial sea interrumpida en una fase más temprana<br />
de su construcción, ya que cuanto mayor sea <strong>la</strong> sobre estimación realizada por h(n)<br />
mayor debería ser <strong>la</strong> optimización realizada durante <strong>la</strong> construcción de una solución,<br />
como <strong>para</strong> que esta no sea interrumpida. La desventaja de una sobre estimación<br />
es que también aumenta en <strong>la</strong> misma proporción, <strong>la</strong> posibilidad de interrumpir<br />
soluciones parciales, que de ser completadas hubiesen sido mejores que <strong>la</strong> obtenida<br />
hasta entonces.<br />
5.4. El Problema OPT como un Problema de Scheduling<br />
tipo Job Shop<br />
El problema OPT ha sido utilizado como marco del trabajo realizado. Hemos<br />
considerado que es un problema tipo Job Shop, que a su vez puede ser mode<strong>la</strong>do<br />
como un problema CSOP, lo cual ha sido descrito con detalle en el Capítulo 2.<br />
En el problema OPT, un trabajo consiste en el recorrido completo que lleva a<br />
cabo un tren. Las operaciones que forman parte de un trabajo en OPT consisten<br />
en pasar por estaciones y recorrer tramos entre estaciones. Para llevar a cabo cada<br />
operación es necesario utilizar determinados recursos, que en este caso son <strong>la</strong>s vías<br />
en <strong>la</strong> estación, o <strong>la</strong>s vías en el tramo, según el tipo de operación que se trate.<br />
El orden entre <strong>la</strong>s operaciones de un mismo trabajo, lo determina el recorrido de<br />
cada tren y constituyen <strong>la</strong>s re<strong>la</strong>ciones de precedencia de un problema de scheduling<br />
tipo Job Shop. El tiempo de procesamiento de una operación está dada por el<br />
tiempo que un tren permanezca en una estación o por el tiempo que un tren emplee<br />
en recorrer un tramo de su recorrido.
170 5. Un Procedimiento heurístico basado en ordenación (PBO)<br />
Los trenes que viajan en sentido ida utilizan los recursos siguiendo un determi-<br />
nado orden, y los trenes que viajan en sentido vuelta utilizan una parte o los mismos<br />
recursos, pero siguiendo un orden inverso.<br />
Las restricciones definidas en <strong>la</strong> sección 3.4.2 determinan <strong>la</strong>s condiciones en <strong>la</strong>s<br />
cuales se considera factible <strong>la</strong> utilización de los recursos, considerando el conjunto<br />
de operaciones del problema. Así, <strong>la</strong>s restricciones de cruce regu<strong>la</strong>n el uso de aquel-<br />
los recursos que son utilizados por operaciones pertenecientes a trabajos que siguen<br />
un orden inverso. Dichas operaciones no podrán utilizar al mismo tiempo estos re-<br />
cursos e incluso deberá existir un margen de tiempo, considerado como un margen<br />
de seguridad entre el inicio de <strong>la</strong>s operaciones sobre el mismo recurso (tiempo de<br />
recepción) así como entre el intercambio de recursos entre <strong>la</strong>s dos operaciones (tiem-<br />
po de expedición). Esto es equivalente a establecer un orden de prioridades entre<br />
operaciones que pertenecen a diferentes trabajos sobre <strong>la</strong> utilización de un mismo<br />
recurso.<br />
Por otro <strong>la</strong>do existen restricciones sobre <strong>la</strong> utilización de recursos entre opera-<br />
ciones que siguen un mismo orden. Existen recursos que permiten que más de una<br />
operación lo utilice al mismo tiempo siempre y cuando exista una determinada<br />
cantidad de tiempo entre el inicio de una y otra, así como entre el instante de final-<br />
ización de <strong>la</strong>s mismas (sucesión automática). Otros recursos no permiten que dos<br />
operaciones lo utilicen simultáneamente (sucesión manual).<br />
Las estaciones son consideradas centros de trabajo donde existen varias máquinas<br />
que pueden ser utilizadas en <strong>para</strong>lelo (vías). En estos centros de trabajo no está per-<br />
mitido que se lleven a cabo simultáneamente más operaciones que el número máquinas<br />
disponibles (restricción que determina <strong>la</strong> capacidad limitada de cada estación).<br />
Las operaciones de mantenimiento, o el horario de cierre de una estación son<br />
otras de <strong>la</strong>s restricciones que limitan el periodo de tiempo que un recurso puede ser<br />
utilizado por una operación, o al menos limitan los periodos de tiempo en los cuales<br />
dichos recursos pueden ser utilizados teniendo en cuenta su capacidad total.<br />
En este problema de scheduling tipo Job Shop <strong>la</strong> función objetivo consiste en<br />
minimizar el retraso promedio de cada trabajo con respecto a un tiempo de referencia<br />
y <strong>la</strong> diferencia entre el retraso promedio correspondiente a los trabajos que siguen<br />
un orden en <strong>la</strong> utilización de los recursos y el retraso correspondiente a los trabajos<br />
que siguen el orden inverso. A cada criterio se le asigna un peso.
5.4. El Problema OPT como un Problema de Scheduling tipo Job Shop 171<br />
Job tipo Scheduling de problema un de s Propiedade Shop Job tipo Scheduling de Problema al OPT de encia Correspond Shop<br />
un tren por realizado Recorrido destino - origen Operación Tren un por un tramo de Recorrido - a Dependenci una a Tren un de Visita - Recurso en tramos o as dependenci en as ferroviari Vías Trabajo<br />
de Centro Tramo - a Dependenci - a Precedenci de Re<strong>la</strong>ción un tren visitar debe que as dependenci de ordenada Secuencia Capacidad de n Restricció<br />
Trabajo<br />
Sucesión -Alcance -Cruce - a dependenci una de Capacidad -<br />
Date) (Due Trabajo un de ón FinalizaciDate) (ReleaseTrabajo<br />
un de Inicio Periódicas Salidas - Salida de Intervalo - Máximo Retraso - Llegada de Intervalo - Manual<br />
aplicación dominio en <strong>la</strong> d <strong>la</strong> s s. nes Comercial - no por - de Tiempo - Recepción de Tiempo - ento Ade<strong>la</strong>ntami - nto Mantenimie de Bandas - Cierre de Horario - Automática Sucesión - Time)<br />
) de (Setup recurso del n<br />
el solución de factiblida Pre<strong>para</strong>ció<strong>para</strong> Expedición (necesaria de Adicionale Tiempo Restriccio - Recepción de Tiempo -<br />
sentido en viajan que trenes de promedio retraso el entre diferencia Minimizar - Trenes los de promedio retraso Expedición Demora<strong>para</strong>da<br />
prevista Parada Idaretraso<br />
promedio delostrenesqueviajan<br />
en sentido<br />
Figura 5.7: Correspondencia entre <strong>la</strong>s propiedades de un Job Shop y el Problema<br />
OPT<br />
Función vuelta el y Minimiar - Objetivo
172 5. Un Procedimiento heurístico basado en ordenación (PBO)<br />
En <strong>la</strong> Figura 5.7 se resumen <strong>la</strong>s propiedades de un problema de Scheduling tipo<br />
Job Shop identificando <strong>la</strong> correspondencia de <strong>la</strong>s mismas con <strong>la</strong>s propiedades del<br />
problema OPT.<br />
5.5. Consideraciones en <strong>la</strong> Aplicación del método al prob-<br />
lema OPT<br />
El método de optimización descrito en este capítulo construye una solución al<br />
problema, al mismo tiempo que verifica un determinado conjunto de restricciones,<br />
el cual puede incluir o no <strong>la</strong> restricción sobre periodicidad en salidas consecutivas<br />
(restricción C15 de <strong>la</strong> Sección 3.4.2).<br />
Cuando se desea que determinados trenes partan de ciertas estaciones con un<br />
periodo de tiempo definido entre sus salidas, se requiere agregar operaciones al<br />
método previamente descrito en <strong>la</strong> Sección 5.3, de forma que asegure el cumplimiento<br />
de <strong>la</strong> restricción sobre periodicidad en salida.<br />
Para poder explicar con mayor facilidad cómo se lleva a cabo <strong>la</strong> satisfacción de<br />
<strong>la</strong> restricción C15, a continuación describiremos ciertos conceptos que son utilizados<br />
en el método de optimización.<br />
5.5.1. La Periodicidad en Salida es incluida en el conjunto de Re-<br />
stricciones<br />
La restricción C15 especifica que debe existir un periodo de tiempo entre <strong>la</strong>s<br />
salidas consecutivas de determinados trenes. Cada sub conjunto de trenes i, cuyas<br />
salidas consecutivas deben ocurrir cada cierto periodo de tiempo, se denomina Grupo<br />
de Trenes Gi ∈ Tnew. Así, Gi representa el iésimo subconjunto de Tnew <strong>para</strong> el cual<br />
se exige un determinado periodo entre <strong>la</strong>s salidas de sus trenes, de determinadas<br />
dependencias.<br />
En una instancia del problema pueden existir como máximo N grupos<br />
(0 ≤ N ≤ |Tnew|<br />
2 ). Cuando N = 0 significa que en esa instancia del problema no<br />
se exige periodicidad entre <strong>la</strong>s salidas de los trenes. Luego, <strong>la</strong> restricción C15 no es<br />
incluida.
5.5. Consideraciones en <strong>la</strong> Aplicación del método al problema OPT 173<br />
La restricción C15 debe aplicarse tantas veces como grupos, G1, G2, ..., GN exista,<br />
teniendo en cuenta <strong>la</strong>s especificaciones realizadas por cada grupo definido.<br />
Todo grupo Gi reúne <strong>la</strong>s siguientes características:<br />
tiene por lo menos dos elementos (dos trenes), ya que de lo contrario no tendría<br />
sentido definir un periodo entre salidas,<br />
si dos trenes forman parte de un mismo grupo, entonces realizan el mismo<br />
recorrido incluyendo el sentido de viaje (Ida o Vuelta).<br />
si existen dos o más grupos, entonces estos deberán ser disjuntos entre sí.<br />
Estos requisitos, que asumimos debe satisfacer todo grupo de trenes sobre los cuales<br />
se desea establecer <strong>la</strong> restricción C15, son mode<strong>la</strong>dos mediante <strong>la</strong> expresión 5.5.1,<br />
donde G = {G1, ..., GN} es el conjunto de grupos especificados sobre Tnew.<br />
∀Gi ∈ G : |Gi| > 1 ∧ Gi ⊆ Tnew ∧ (∀Gj ∈ G : i j → Gi ∩ Gj = ∅)∧<br />
(∀tx ∈ Gi, ∀ty ∈ Gi :<br />
(L = |Jx| ∧ M = |Jy|) → (L = M ∧ (∀j ∈ N : 0 ≤ j < |L| → l x j = l y<br />
j ))) (5.5.1)<br />
Por cada grupo Gi, 1 ≤ i ≤ N, se especifica un intervalo [P i L, P i U] que define el<br />
conjunto de valores válidos <strong>para</strong> el periodo de tiempo (en ade<strong>la</strong>nte, periodo) que<br />
debe existir entre <strong>la</strong>s salidas de los trenes consecutivos que lo forman.<br />
La expresión 5.5.2 formu<strong>la</strong> <strong>la</strong> restricción C15 que debe ser satisfecha por cada<br />
grupo Gi definido en Tnew. En dicha expresión tx y ty son trenes consecutivos en Gi<br />
y Speriodo i es el conjunto de dependencias l i k ∈ Ji, en <strong>la</strong>s cuales todo par de trenes<br />
consecutivos {tx, ty} ⊆ Gi, debe satisfacer un determinado periodo entre sus salidas.<br />
Dicho periodo debe estar comprendido entre P i L y P i U.<br />
El conjunto Speriodo i es definido por cada grupo Gi en una de <strong>la</strong>s dos formas<br />
siguientes:<br />
a)Periodicidad en todas <strong>la</strong>s salidas: Speriodo i = {lk\lk = l i 0 ∨ C i k<br />
> 0}. La peri-<br />
odicidad en <strong>la</strong> salida de los trenes de Gi deberá cumplirse en <strong>la</strong> estación inicial<br />
del recorrido Ji y en toda estación de Ji donde haya sido especificada <strong>para</strong> los<br />
trenes de Gi, una <strong>para</strong>da comercial Ci k mayor a cero.<br />
b) Periodicidad en Salida Inicial: Speriodo = {l i i 0}. La periodicidad en <strong>la</strong> salida
174 5. Un Procedimiento heurístico basado en ordenación (PBO)<br />
de los trenes de Gi deberá cumplirse únicamente en <strong>la</strong> estación inicial de Ji.<br />
∀tx ∈ Gi, ∀ty ∈ Gi, ∀l i k ∈ Speriodo i : (dep ty<br />
k<br />
(∄t ′ ∈ Gi : dep t′<br />
k<br />
> deptx<br />
k<br />
P i L ≤ dep ty<br />
k<br />
∧ dept′<br />
k<br />
> deptx<br />
k ∧<br />
< depty k )) →<br />
− deptx<br />
k ≤ Pi U (5.5.2)<br />
La figura 5.8 muestra el algoritmo empleado <strong>para</strong> obtener una solución al proble-<br />
ma OPT en el caso que el conjunto de restricciones que deba ser considerado incluya<br />
a <strong>la</strong> restricción que exige un determinado periodo de tiempo entre <strong>la</strong>s salidas con-<br />
secutivas de determinados trenes. Es decir, <strong>para</strong> aquel<strong>la</strong>s instancias en <strong>la</strong>s cuales se<br />
haya especificado uno o más grupos Gi de trenes cadenciados.<br />
En este apartado daremos una descripción general del algoritmo presentado en <strong>la</strong><br />
Figura 5.8. En <strong>la</strong> Sección 5.6 se explicará cada paso del algoritmo en detalle así como<br />
<strong>la</strong> correspondencia del mismo con el método de solución general propuesto en este<br />
capítulo.<br />
Cuando el método de solución propuesto debe ser aplicado al problema OPT,<br />
y en el mismo se han especificado grupos de trenes cadenciados, <strong>la</strong> asignación de<br />
horarios se realiza seleccionando un grupo de trenes cadenciados y una parte de<br />
sus correspondientes recorridos por vez (ciclo 2 en <strong>la</strong> Figura 5.8). Una vez todos los<br />
grupos hayan sido seleccionados, se repite el procedimiento <strong>para</strong> <strong>la</strong>s partes siguientes<br />
de los recorridos (ciclo 1 en <strong>la</strong> Figura 5.8). El procedimiento finaliza una vez que<br />
todas <strong>la</strong>s partes de cada recorrido hayan sido consideradas o cuando se interrumpe<br />
<strong>la</strong> iteración actual porque se estima que no conducirá a una solución mejor a <strong>la</strong><br />
obtenida hasta entonces (prune =True en <strong>la</strong> Figura 5.8).<br />
En <strong>la</strong> Figura 5.9 se indica <strong>la</strong> correspondencia entre el método de solución general<br />
y su aplicación al problema OPT, cuando se incluye <strong>la</strong> restricción C15 sobre <strong>la</strong>s salidas<br />
consecutivas de trenes cadenciados.
5.5. Consideraciones en <strong>la</strong> Aplicación del método al problema OPT 175<br />
=<br />
j∅<br />
=<br />
=<br />
=<br />
=<br />
+<br />
ij<br />
≤ prune And =<br />
=<br />
≤<br />
jδ<br />
1 i1 aFalse prune horarios de conjunto // una de ón construcci <strong>la</strong> interrumpe se si indica que e // variabl solución<br />
, , , po( DarHoraGru While i i ini prune,G a , ref s a a=j<br />
j 1 i False<br />
best While And False prune G inumPart<br />
WhileG i≤i il s0 ini=1 =i i While End i0 //recorrid del inicial estación <strong>la</strong> en inicia se grupo cada de parte primera //<strong>la</strong> en do particiona es grupo cada de recorrido //el Function adenciados ProgramarC ) , , (bestnumPart Timetablin As<br />
hasta desde //van estaciones de secuencia //<strong>la</strong> ini j i ini i ref s G a hasta desde recorrido su de estaciones <strong>la</strong>s //en de trenes los a factible horario un de signación // 1 //ciclo2<br />
actual secuencia <strong>la</strong> de final estación <strong>la</strong> con iniciará se de trenes los //<strong>para</strong> horarios asignar deberá se estaciones de secuencia//ciclo<br />
rEstRef ) si , , ) ref Selecciona<br />
//siguient i iref<br />
Endprune<br />
a If FalseThen<br />
return<br />
=i Else Function EndWhile<br />
EndWhile =<br />
+<br />
s= ini1<br />
+<br />
= ∅ return i<br />
j (ininumPart<br />
ono<br />
numParts ol<br />
a // i G l grupo e siguiente<br />
Gδ g<br />
, donde<br />
ref s i<br />
ij<br />
aconsiderar<br />
Figura 5.8: Algoritmo <strong>para</strong> p<strong>la</strong>nificar horarios de Trenes Cadenciados
176 5. Un Procedimiento heurístico basado en ordenación (PBO)<br />
=<br />
j∅<br />
=<br />
=<br />
=<br />
= i<br />
i1<br />
=<br />
ij<br />
≤G i prune<br />
=<br />
) , , (bestnumPart Timetablin As Solución Siguiente Inicio<br />
1 aFalse prune WhileG i≤i il s0 ini=1 =i i While End0 i=i1<br />
sij<br />
(ininumPart , , ) ref SeleccionarEstRef<br />
And False While<br />
= + jδ a<br />
s=<br />
+<br />
+<br />
= ∅ return End<br />
Gδ g<br />
Siguiente Recorrido Siguiente Elección salidas sus entre tiempo de periodo det. un exige se que los entre os consecutiv Trenes Grupo Tarea Elección Siguiente<br />
de Asignación grupo del tren cada por tramos de Secuencia Inicio de Instante de Elección Parte<br />
deIntervalo Asignaciónnes Tiempo Horario Factible<br />
Restriccio de ón ) , Verificaci , , po( DarHoraGru best i i ini prune,G a , ref s a<br />
j i iref ini Function Else return Then False If a prune Evaluacion Continuar SI EndWhile<br />
Fin NO SI<br />
NO<br />
Figura 5.9: Implementación del Método propuesto al problema OPT que incluye <strong>la</strong><br />
restricción sobre Periodicidad en Salida
5.5. Consideraciones en <strong>la</strong> Aplicación del método al problema OPT 177<br />
5.5.2. La Periodicidad en Salida NO es incluida en el conjunto de<br />
Restricciones<br />
Cuando en una instancia del problema el número de grupos definidos a partir<br />
del conjunto Tnew es igual a cero, significa que no se exige periodicidad entre <strong>la</strong>s<br />
salidas de ningún par de trenes pertenecientes a dicho conjunto, y por lo tanto <strong>la</strong><br />
restricción C15 no es un requerimiento en esta instancia del problema. El hecho de no<br />
verificar que un determinado grupo de trenes satisfaga un periodo entre sus salidas<br />
consecutivas cada vez que <strong>la</strong> salida de uno de ellos es modificada, permite que sea<br />
empleado un algoritmo diferente al de <strong>la</strong> Figura 5.8 <strong>para</strong> <strong>la</strong> asignación de horarios<br />
a trenes pertenecientes a Tnew.<br />
En <strong>la</strong> Figura 5.10 se muestra el algoritmo empleado en cada iteración del método<br />
de solución cuando no se incluyen trenes cadenciados. El objetivo del mismo es hal<strong>la</strong>r<br />
una de <strong>la</strong>s soluciones al problema.<br />
Function P<strong>la</strong>nificarSinPeriodo(δbest) As Timetabling<br />
Topen = Tnew; prune =False<br />
While(Topen ∅ And prune =False)<br />
ti =SeleccionarTren()<br />
sec i j =SeleccionarTramo(ti)<br />
ā = ā ∪ AsignarHoraTrenTramo(ti, sec i j )<br />
If(UltimoTramo(ti, sj)) Then Topen = Topen \ {ti}<br />
δest =EstimarCosto(ā)<br />
If (δest > δbest) Then prune =True<br />
End While<br />
If(prune =False) Then return ā Else return ∅<br />
End Function<br />
Figura 5.10: Algoritmo <strong>para</strong> <strong>la</strong> Asignación de Horarios a Trenes No Periódicos<br />
El algoritmo de <strong>la</strong> Figura 5.10 consta de <strong>la</strong> siguiente secuencia de acciones:<br />
Seleccionar un tren ti,<br />
Asignar un horario factible al tren ti en el tramo correspondiente de su recor-<br />
rido,
178 5. Un Procedimiento heurístico basado en ordenación (PBO)<br />
Estimar un coste <strong>para</strong> <strong>la</strong> solución parcial,<br />
que es repetida hasta que todo tren de Tnew tenga asignado un horario factible<br />
en todas <strong>la</strong>s dependencias de sus correspondientes recorridos, o hasta que el coste<br />
estimado de <strong>la</strong> solución parcial indique que esta debe ser interrumpida (poda de una<br />
solución).<br />
En <strong>la</strong>s siguientes secciones describiremos con mayor detalle cada una de éstas<br />
acciones que hacen a <strong>la</strong> búsqueda de una solución.<br />
5.6. Descripción detal<strong>la</strong>da del Método de Solución apli-<br />
cado al Problema OPT<br />
En <strong>la</strong>s secciones previas se ha descrito el esquema general del método de solución<br />
que hemos propuesto <strong>para</strong> resolver problemas de scheduling tipo Job Shop (Figura<br />
5.5). En esta sección se describirá en detalle su aplicación al problema OPT, distin-<br />
guiendo el caso en el cual se incluyen trenes cadenciados del caso en el que no se<br />
especifica ningún grupo de trenes cadenciados.<br />
En <strong>la</strong> Figura 5.9 se indica <strong>la</strong> re<strong>la</strong>ción entre <strong>la</strong>s etapas del método de solución<br />
general, descrito en <strong>la</strong> Sección 5.3, y los procedimientos o pasos que resultan de su<br />
aplicación al problema OPT, específicamente <strong>para</strong> el caso en el cual se han especificado<br />
trenes cadenciados.<br />
Hemos denominado Proceso Basado en Ordenación (PBO) al método de solución<br />
propuesto. En <strong>la</strong> siguientes secciones explicaremos cómo se lleva a cabo cada etapa<br />
de este procedimiento cuando es aplicado <strong>para</strong> resolver el problema OPT.<br />
5.6.1. Primera Etapa: Siguiente Operación<br />
En el problema OPT, elegir <strong>la</strong> siguiente operación, consiste en elegir el siguiente<br />
tramo del recorrido de un tren. Cuando más de un tramo del recorrido de un mismo<br />
tren carece de horario, no todos estos tramos son candidatos a ser seleccionados,<br />
únicamente el tramo por el cual pasaría primero el tren. La elección realizada en<br />
esta etapa determina el orden de prioridades entre los trenes sobre <strong>la</strong>s vías de un<br />
mismo tramo.
5.6. Descripción detal<strong>la</strong>da del Método de Solución aplicado al Problema OPT 179<br />
El hecho de que un horario satisfaga un conjunto determinado de restricciones<br />
puede implicar resolver conflictos entre trenes que compiten por un mismo tramo,<br />
ya sea trenes del mismo sentido o trenes con sentidos opuestos. La forma en que<br />
estos conflictos sean resueltos determinará <strong>la</strong> diferencia entre una solución y otra, y<br />
por lo tanto <strong>la</strong> diferencia entre uno y otro coste de <strong>la</strong> función objetivo F (ā).<br />
En el método que hemos desarrol<strong>la</strong>do, un conflicto es resuelto según <strong>la</strong> prioridad<br />
asignada a cada tren. La prioridad a su vez es asignada según el orden en el que<br />
cada tren haya ocupado un determinado tramo. Es por ello que el hecho de asignar<br />
un horario factible a un tren en una parte de su recorrido y no necesariamente en<br />
todo su recorrido antes de seleccionar un siguiente tren, permite que <strong>la</strong>s prioridades<br />
de los trenes sean establecidas por tramos y no por recorridos. De esta forma se<br />
permite que una región mayor del espacio de búsqueda genere soluciones factibles y<br />
con ello mayor posibilidad de encontrar una solución cercana a <strong>la</strong> óptima.<br />
a) Periodicidad en Salida es incluida en el conjunto de restricciones<br />
En este apartado detal<strong>la</strong>remos cómo se lleva a cabo <strong>la</strong> elección de <strong>la</strong> siguiente<br />
operación, cuando en el problema existen uno o más grupos de trenes cadenciados.<br />
En este caso, no se elige el siguiente tramo correspondiente a un solo tren, sino el<br />
siguiente tramo correspondiente a cada uno de los trenes pertenecientes a un mismo<br />
grupo de trenes cadenciados. Además, puede elegirse más de un tramo del recorrido<br />
de un mismo tren, siempre y cuando sean consecutivos y se respete <strong>la</strong> re<strong>la</strong>ción de<br />
precedencia entre los tramos de un mismo recorrido. Si se eligen n ≥ 1 tramos del<br />
recorrido de un tren que pertenece a un grupo de cadenciados, también deberán ser<br />
elegidos n tramos del recorrido correspondiente al resto de trenes pertenecientes al<br />
mismo grupo.<br />
Como puede verse en <strong>la</strong> Figura 5.8, el método divide el recorrido de cada grupo en<br />
numP art partes. Cada parte es una secuencia ordenada, subconjunto del recorrido<br />
considerado y por cada una se asigna un horario factible a un grupo por vez.<br />
El hecho de permitir que el horario de un tren sea asignado en una parte de<br />
su recorrido antes de seleccionar un siguiente tren, y no necesariamente en todo su<br />
recorrido de una vez, permite que existan más soluciones diferentes y con ello mayor<br />
posibilidad de obtener mejores soluciones.<br />
A cada parte j de un recorrido Ji denominamos Jij . En los siguientes párrafos
180 5. Un Procedimiento heurístico basado en ordenación (PBO)<br />
describiremos cómo es formada cada una de <strong>la</strong>s partes Jij<br />
solución determinada.<br />
correspondientes a una<br />
El conjunto G = {Gi\1 ≤ i ≤ N} define los N grupos a ser considerados. El<br />
método utilizado selecciona un grupo Gi ∈ G por vez en un orden secuencial desde<br />
i = 1 hasta i = N. Cada vez que selecciona un grupo Gi, debe decidir qué tramos<br />
de Ji formarán parte de <strong>la</strong> jésima partición que realiza sobre este recorrido.<br />
Por cada grupo Gi se identifica un conjunto de estaciones de referencia<br />
Si = {sj\sj ∈ Ji ∩S} donde cada elemento del mismo es una dependencia de Ji cuyo<br />
tipo es estación. En <strong>la</strong> figura 5.11 se muestra un ejemplo de conjunto Si <strong>para</strong> un<br />
grupo Gi.<br />
= = 1 1 0 0 2 1 0 4 3 2 1 0 ; J i y x i 24<br />
l<br />
Figura 5.11: Estaciones de Referencia <strong>para</strong> el grupo Gi de trenes ty<br />
t<br />
l3 , } , } , , l l lG<br />
t s S l l l l<br />
El número de particiones que se pueden realizar sobre los recorridos Ji es un<br />
x l ss<br />
t s s s { , , { , { ;} 0<br />
parámetro de cada instancia del problema y está representado por <strong>la</strong> variable numP art<br />
en <strong>la</strong> Figura 5.8. El conjunto de grupos G es recorrido numP art veces y por cada<br />
vez una parte de Ji es definida.<br />
Cada partición Jij , 1 ≤ j ≤ numP art de un recorrido Ji = {li 0 , li 1 , .., li mi } es<br />
una secuencia ordenada finita de dependencias, subconjunto de Ji. Considere que<br />
Ji0 ∪ Ji1 ∪ .. ∪ JinumP art<br />
l2 l4 l1<br />
= Ji.<br />
Las particiones se forman seleccionando numP art estaciones de Si. A cada una<br />
de el<strong>la</strong>s se denomina refij , 1 ≤ j ≤ numP art. Teniendo en cuenta que refinumP art =<br />
lmi , podemos definir una partición Jij como <strong>la</strong> secuencia ordenada de dependencias<br />
{l i x, l i x+1 , .., li x+ni j } donde:<br />
l i x =<br />
⎧<br />
⎪⎨<br />
l i 0<br />
if j = 1,<br />
⎪⎩ refij−1 if j > 1.<br />
=<br />
=<br />
=<br />
⊆
5.6. Descripción detal<strong>la</strong>da del Método de Solución aplicado al Problema OPT 181<br />
l i x+ni j = refij<br />
∀j ∈ N : 1 ≤ j < numP art → Jij ∩ Jij+1 = {refij }<br />
Teniendo en cuenta <strong>la</strong> definición previa, una posible partición <strong>para</strong> Ji siendo<br />
numP art = 3 podría ser Ji1 = {li 0 , .., li k }, Ji2 = {li k , .., li n}, y Ji3 = {li n, .., l i mi }.<br />
Cada jésima parte de un recorrido Ji finaliza con una estación refij ∈ Ji ∩<br />
Si a <strong>la</strong> cual denominamos jésima Estación de Referencia de Gi. La selección de<br />
Estaciones de Referencia <strong>para</strong> un grupo Gi es realizada en forma independiente del<br />
resto de grupos en G. Si consideramos el ejemplo anterior, <strong>la</strong>s estaciones de referencia<br />
correspondientes a <strong>la</strong>s partes j = 1, j = 2 y j = 3 del grupo Gi son <strong>la</strong>s estaciones<br />
lk, ln y lmi , respectivamente. El hecho de ser li k Estación de Referencia de <strong>la</strong> parte<br />
j = 1 de un grupo Gi, no implica que deba ser Estación de Referencia de <strong>la</strong>s partes<br />
j = 1 del resto de grupos en G.<br />
En <strong>la</strong> Figura 5.12 se muestra un ejemplo de cómo se han particionado los recor-<br />
ridos correspondientes a dos grupos de trenes Gi y Gk, siendo numP art = 2. En<br />
este ejemplo, se debe seleccionar dos estaciones de referencia por cada grupo, ya<br />
que el número de particiones es igual a 2. En el caso del grupo Gi, <strong>la</strong> estación de<br />
referencia es si2 , y en el caso del grupo Gk, <strong>la</strong>s estaciones de referencia son sk2 y<br />
sk4 . El grupo Gi consta de una so<strong>la</strong> estación de referencia, porque esta estación es<br />
<strong>la</strong> ultima estación de su recorrido.<br />
La etapa Siguiente Operación selecciona un grupo de trenes, a partir del cual<br />
conoce <strong>la</strong> estación de referencia que debe utilizar como límite del recorrido a ser<br />
seleccionado. Así, si se selecciona al grupo Gi del ejemplo previo, y se trata de <strong>la</strong><br />
primera partición, entonces <strong>la</strong> estación de referencia es si2 , por lo tanto los tramos<br />
seleccionas en esta etapa son los que se hal<strong>la</strong>n entre <strong>la</strong> estación origen de cada tren<br />
de Gi y <strong>la</strong> estación de referencia si2 . Si por el contrario, hubiera sido seleccionado<br />
el grupo Gk, y se tratara de <strong>la</strong> primera partición de los recorridos, entonces los<br />
tramos seleccionados hubieran sido aquellos comprendidos entre <strong>la</strong> estación origen<br />
de cada tren de Gk y <strong>la</strong> estación de referencia sk2 . Cuando vuelva a ser aplicada <strong>la</strong><br />
etapa Siguiente Operación durante <strong>la</strong> construcción de <strong>la</strong> misma solución, el número<br />
de partición será dos. En este caso, ningún tramo perteneciente al recorrido de<br />
los trenes de Gi serán tramos candidatos de ser seleccionados, ya que a todos les<br />
ha sido asignado un horario. Sin embargo, sí estarán como tramos candidatos los
182 5. Un Procedimiento heurístico basado en ordenación (PBO)<br />
pertenecientes al recorrido de los trenes de Gk que se hal<strong>la</strong>ran entre <strong>la</strong>s estaciones<br />
sk2<br />
y sk4 . Al no haber otro grupo en el problema considerado, serán estos los tramos<br />
elegidos. Posteriormente el conjunto de tramos candidatos quedará vacío. Luego,<br />
será <strong>la</strong> última vez que esta etapa sea ejecutada antes de que se inicie una nueva<br />
iteración buscando una nueva solución.<br />
=<br />
=<br />
1 k t 1 t<br />
G=<br />
=<br />
=<br />
=<br />
Figura 5.12: Un Ejemplo de Partición de Recorridos Gi<br />
j<br />
, , { , { , } , 4 2 02 01 1 0 k k k k k k i i i i k k k i i i i s s s s s S s s s S t t G t t t 0 i s1 i s2 i s 0 k s1 k s2 k s3 k s4 k s 0 i t 1 i t 2 i t 0 kj<br />
k G<br />
En <strong>la</strong> Figura 5.8 hemos nombrado como SeleccionarEstRef a <strong>la</strong> función que 1 02 11<br />
3 { , { } , } , , }<br />
determina <strong>la</strong> estación refij <strong>para</strong> cada partición j de un recorrido Ji. Considerando<br />
que si ini = li k y refij = SeleccionarEstRef (siini , j, numP art) =, definimos a esta<br />
función como: refij =<br />
⎧<br />
⎪⎨ l<br />
⎪⎩<br />
i x; k ≤ x ≤ mi ∧ li x ∈ Si if 1 ≤ j < numP art,<br />
li mi<br />
if j = numP art.<br />
b) Cuando <strong>la</strong> Periodicidad en Salida NO es una restricción del problema<br />
En este apartado al conjunto de operaciones pendientes de ser seleccionadas<br />
se denomina Topen. La elección de una operación consiste en elegir un tramo del<br />
recorrido de un tren en el cual aún no se haya especificado un horario <strong>para</strong> el<br />
mismo, respetando siempre <strong>la</strong> re<strong>la</strong>ción de precedencia entre los tramos de un mismo<br />
recorrido.<br />
La selección de un tren se realiza a partir de un conjunto de trenes al cual<br />
denominamos Topen. Este conjunto está formado por los trenes pertenecientes a Tnew<br />
cuyos horarios no han sido completamente especificados por <strong>la</strong> generación actual de<br />
una solución. Es decir, si ti ∈ Topen y Ji = {li 0 , li 1 , .., li mi } es su recorrido, entonces<br />
debe existir una estación l i k ∈ Ji tal que:<br />
un horario factible haya sido asignado en los tramos comprendidos entre l i 0
5.6. Descripción detal<strong>la</strong>da del Método de Solución aplicado al Problema OPT 183<br />
(inicio del recorrido de ti) y l i k ,<br />
reste por asignar un horario factible en los tramos comprendidos entre l i k y li mi<br />
(fin del recorrido de ti), y<br />
l i k = li mi .<br />
Cada tren ti deja de pertenecer al conjunto Topen cuando un horario factible es<br />
asignado al mismo en todas <strong>la</strong>s dependencias de su recorrido, desde li 0 hasta li mi . En<br />
<strong>la</strong> Figura 5.10 esto equivale a que <strong>la</strong> función UltimoTramo(ti, seci j ) devuelva el valor<br />
True.<br />
Si especificamos el recorrido Ji de un tren ti en función de los tramos estación que<br />
lo forman (ver definición de tramos en <strong>la</strong> sección 3.3) tenemos que Ji = {sec i 0, sec i 1 , .., seci ni },<br />
siendo sec i 0 = l i 0 → li x y sec i ni = li mi−ai → li mi . Luego, <strong>la</strong> función UltimoTramo(ti, sec i j )<br />
es definida como:<br />
UltimoTramo(ti, sec i ⎧<br />
⎪⎨<br />
j) =<br />
⎪⎩ False else.<br />
True if sec i j = seci ni<br />
(5.6.1)<br />
Por cada tren ti ∈ Tnew, se define un conjunto al que hemos denominado Sec i done .<br />
Está compuesto por aquellos tramos sec i k ∈ Ji en los cuales un horario factible ha<br />
sido asignado a ti, por <strong>la</strong> generación actual. Al iniciarse <strong>la</strong> generación, cada conjunto<br />
Sec i done , 0 ≤ i < |Tnew| está vacío.<br />
Para llevar a cabo <strong>la</strong> selección de un tren ti de entre todos los trenes pertenecientes<br />
a Topen se tiene en cuenta <strong>la</strong> función objetivo del problema (ver Sección 3.4.3). La<br />
función objetivo del problema tiene dos componentes, el retraso promedio de los<br />
trenes y el equilibrio entre el retraso promedio de los trenes que viajan en sentido<br />
Ida y los trenes que viajan en sentido Vuelta. Para elegir el siguiente tren a ser<br />
considerado se tiene en cuenta <strong>la</strong> primera componente de <strong>la</strong> función objetivo. Para<br />
ello, se asigna a cada tren ti ∈ Topen una probabilidad ρi de ser elegido. La prob-<br />
abilidad asignada a un tren es directamente proporcional al retraso que este lleve<br />
con respecto a su tiempo de referencia considerando los tramos en los que ya tenga<br />
asignando horario factible. Es decir <strong>para</strong> realizar este calculo se tiene en cuenta el<br />
tiempo de referencia y el horario asignado a los tramos sec i k ∈ Seci done .<br />
Por cada tren ti ∈ Topen, se calcu<strong>la</strong> cuál es su retraso parcial δ i partial . Si Seci done =<br />
∅ entonces δi partial = 0, en caso contrario si Seci done = {seci0 , .., secij } entonces el
184 5. Un Procedimiento heurístico basado en ordenación (PBO)<br />
retraso parcial de un tren ti queda definido por <strong>la</strong> siguiente expresión:<br />
δ i partial = arri j − depi 0 − Γ i ref<br />
Γ i ref<br />
(5.6.2)<br />
Considerando el retraso parcial de cada tren ti se obtiene el mínimo retraso parcial<br />
como: δmin = mín ti∈Topen (δi partial ), <strong>la</strong> probabilidad ρi, de que el tren ti sea selec-<br />
cionado es calcu<strong>la</strong>do según <strong>la</strong> siguiente expresión:<br />
(δ<br />
ρi =<br />
i partial − δmin + ε) α<br />
<br />
ti∈Topen (δi partial − δmin + ε) α<br />
(5.6.3)<br />
Dada <strong>la</strong> expresión 5.6.3, <strong>para</strong> calcu<strong>la</strong>r <strong>la</strong> probabilidad de selección de cada tren<br />
se utilizan dos valores α y ε. Para <strong>la</strong> aproximación PBO, estos son valores conocidos,<br />
los cuales son asignados teniendo en cuenta que:<br />
Cuanto mayor sea el valor de α, más determinístico será el proceso de selec-<br />
ción. Es decir, en cada generación de una nueva solución siempre se tenderá a<br />
seleccionar aquel tren que lleve mayor retraso.<br />
Si ε = 0, entonces es posible que aquellos trenes con un retraso cero en el<br />
momento de <strong>la</strong> selección, también formen parte de los trenes elegibles.<br />
A partir del objetivo que cumplen α y ε en <strong>la</strong> expresión 5.6.3, se deduce que si<br />
α = 0, entonces <strong>la</strong> aproximación PBO se convierte en un método constructivo, donde<br />
cada generación de una solución explora una región del espacio de búsqueda elegida<br />
de forma aleatoria sin utilizar ningún criterio de selección. En este caso definimos<br />
como PBO RAND, al método empleado.<br />
Una vez, cada tren tenga asociada una probabilidad de selección entre 0 y 1, el<br />
siguiente paso consiste en seleccionar el tren. La forma en que se selecciona el tren<br />
es dado por el algoritmo de <strong>la</strong> Figura 5.13<br />
Como puede verse en <strong>la</strong> Figura 5.13, <strong>para</strong> seleccionar un tren, no necesariamente<br />
es seleccionado el tren con mayor probabilidad asociada. La selección tiene una<br />
componente aleatoria que es <strong>la</strong> que permite recorrer diferentes regiones del espacio de<br />
búsqueda. Según el algoritmo SeleccionarTren se selecciona un valor aleatorio que<br />
luego es normalizado entre 0 y 1. RAND_MAX es una constante definida <strong>para</strong> el mayor<br />
valor que puede devolver <strong>la</strong> función rand(). Posteriormente se van acumu<strong>la</strong>ndo <strong>la</strong>s<br />
probabilidades de cada tren hasta que el valor acumu<strong>la</strong>do sea igual o mayor que
5.6. Descripción detal<strong>la</strong>da del Método de Solución aplicado al Problema OPT 185<br />
Function SeleccionarTren() As Train<br />
value =rand()/RAND_MAX<br />
i = 0<br />
indice = −1<br />
sumP rob = 0<br />
While(indice < 0)<br />
sumP rob = sumP rob + ρi<br />
If(sumP rob ≥ value) Then indice = i Else i = i + 1<br />
End While<br />
return tindice<br />
End Function<br />
Figura 5.13: Algoritmo <strong>para</strong> Seleccionar un Tren<br />
value, al llegar este momento es el tren ti cuyo valor ρi fue el ultimo valor agregado<br />
a sumP rob, el tren seleccionado <strong>para</strong> que un horario factible sea especificado en un<br />
determinado tramo de su recorrido.<br />
Una vez un tren ti, tal que ti ∈ Topen ha sido seleccionado, el siguiente paso<br />
consiste en especificar el tramo de su recorrido que deberá ser considerado <strong>para</strong> que <strong>la</strong><br />
asignación de un horario factible sea realizada. El horario de cada tren perteneciente<br />
a Tnew es especificado por cada dependencia de su recorrido en forma secuencial en el<br />
mismo orden dado por el recorrido Ji. Es decir, siendo 0 ≤ k < mi, el proceso asigna<br />
un horario factible a ti en <strong>la</strong> dependencia li k+1<br />
un horario factible al mismo en <strong>la</strong> dependencia li k .<br />
si y solo si ha asignado previamente<br />
Dado un tren ti, <strong>la</strong> función SeleccionarTramo(ti) devuelve el tramo sec i k<br />
en el<br />
cual debe asignarse un horario a ti. Esta función es definida mediante <strong>la</strong> expresión<br />
5.6.4.<br />
⎧<br />
⎪⎨<br />
SeleccionarTramo(ti) =<br />
⎪⎩<br />
sec i 0<br />
if Sec i done<br />
= ∅<br />
sec i k+1 if Seci done = {seci 0 , .., seci k }.<br />
(5.6.4)<br />
Hemos mode<strong>la</strong>do el problema como un árbol de búsqueda cuyo nodo raíz (nodo<br />
inicial) representa <strong>la</strong> programación de horarios vacía. Por cada nodo donde no exista<br />
ningún sucesor posible existe un nodo artificial terminal (nodo final). Cada nodo<br />
intermedio está compuesto por un par ordenado (ti, seci j ), el cual indica que un
186 5. Un Procedimiento heurístico basado en ordenación (PBO)<br />
horario factible debe ser encontrado <strong>para</strong> el tren ti ∈ Topen en el tramo sec i j<br />
de su<br />
recorrido. Cada nivel del árbol indica qué parte del horario de cada tren puede ser<br />
generado. El método debe determinar en cada nivel, cuál de los nodos será elegido.<br />
El problema consiste en encontrar un camino en el árbol de búsqueda, (desde el<br />
nodo inicial hasta el nodo final), tal que el orden de prioridades establecido por<br />
este camino produzca el mínimo retraso promedio (Figura 5.14). Un nodo es elegido<br />
según el algoritmo de <strong>la</strong> Figura 5.13, tal que el tren con mayor prioridad no es<br />
necesariamente el tren elegido, debido a <strong>la</strong> componente aleatoria del método.<br />
Si el nodo (ti, seci j ) es seleccionado, entonces el siguiente paso consistirá en asig-<br />
nar el horario al tren ti en el tramo sec i j<br />
siguiente sub sección.<br />
t 1 2,s t 4 3,s t 1,s2,s<br />
t 4 3,s t 1,s2,s<br />
t 3 3,s t 1,s<br />
2,s t 2 3,s t2 3,s t 2 1,s t 2 2,s t 2 2,s 3,s t 1,s 1,s<br />
3,s t 1,s t 2 2,s3,s<br />
t 2 2,s 3,s t2 2,s<br />
2 t 12<br />
t 1 1<br />
t 1 t 2 3 t2 t 2<br />
4 t 2 t 1 2<br />
t3 2,s t2,s<br />
final<br />
initial<br />
de su recorrido, lo cual es descrito en <strong>la</strong><br />
Figura 5.14: Arbol de Búsqueda <strong>para</strong> el Problema de Programación de Horarios final<br />
t4<br />
Las restricciones disyuntivas son <strong>la</strong> principal causa de <strong>la</strong> complejidad de este<br />
initial
5.6. Descripción detal<strong>la</strong>da del Método de Solución aplicado al Problema OPT 187<br />
problema. Estas restricciones son debido a <strong>la</strong> competición entre dos trenes por un<br />
mismo recurso ferroviario. Esto es: un tramo o una vía en una estación. Cuando<br />
hay un conflicto entre dos trenes por el mismo recurso, y uno de ellos es un tren<br />
en circu<strong>la</strong>ción siempre tendrá mayor prioridad el tren en circu<strong>la</strong>ción, y el nuevo<br />
tren será retrasado. Sin embargo cuando el conflicto ocurre entre dos trenes nuevos,<br />
usamos una heurística basada en el orden de selección de los trenes <strong>para</strong> determinar<br />
cuál de los dos trenes tendrá mayor prioridad sobre este recurso. Cada solución<br />
estará determinada por esta asignación de prioridades.<br />
5.6.2. Segunda Etapa: Asignación de Horario Factible<br />
En el sub procedimiento Asignación de Horario Factible se incluyen los sub pro-<br />
cedimientos Siguiente Operación, Elección Instante de Inicio, y Asignación Intervalo<br />
de Tiempo, descritos en <strong>la</strong> sección 5.3, como parte del método de solución propuesto<br />
<strong>para</strong> el problema de scheduling tipo Job Shop.<br />
En esta sub sección describiremos <strong>la</strong> implementación de estos sub procedimien-<br />
tos según el conjunto de restricciones considerado. Se realiza una implementación<br />
cuando <strong>la</strong> restricción sobre periodicidad en salida forma parte del conjunto de re-<br />
stricciones (a), y otra en el caso que dicha restricción no sea incluida (b).<br />
a) Periodicidad en Salida es incluida en el conjunto de restricciones<br />
Dado un grupo Gi y una secuencia ordenada de dependencias Jij (jésima partición<br />
del recorrido Ji), en este apartado explicaremos cómo se realiza <strong>la</strong> asignación<br />
de horarios válidos a cada tren de Gi en <strong>la</strong>s dependencias que forman Jij .<br />
Considerando que Ji = {li 0 , li 1 , .., li mi } es el recorrido de los trenes pertenecientes<br />
a Gi, y Si = {s0, s1, ...sni } es el conjunto de estaciones incluidas en dicho recorrido,<br />
sk, 0 ≤ k ≤ ni, representa <strong>la</strong> késima estación visitada por cada tren de Gi cuando<br />
este realiza su recorrido Ji. Luego, s0 y sni<br />
respectivamente, del recorrido Ji.<br />
son <strong>la</strong> primera y <strong>la</strong> última estación,<br />
En <strong>la</strong> Figura 5.15 se representa el método utilizado <strong>para</strong> <strong>la</strong> asignación de horarios<br />
a los trenes de Gi en el recorrido Jij . Esta operación es realizada mediante <strong>la</strong> función<br />
DarHoraGrupo, cuyos argumentos son detal<strong>la</strong>dos a continuación:<br />
sini y sfin son <strong>la</strong> primera y <strong>la</strong> última dependencia de Jij , respectivamente. La
188 5. Un Procedimiento heurístico basado en ordenación (PBO)<br />
partición considerada es definida como Jij = {li k , li k+1 , .., li k+aj }, donde li k = sini<br />
, en<br />
y l i k+aj = sfin. Como vimos en el apartado anterior, si j = 1, sini = l i 0<br />
caso contrario, si j > 1, sini = refij−1 ; por otro <strong>la</strong>do , sfin = refij ,<br />
δbest, referencia el coste, según <strong>la</strong> función objetivo del problema, de <strong>la</strong> mejor<br />
solución hal<strong>la</strong>da hasta el momento,<br />
ā, es el conjunto de horarios que ha sido asignado a cada tren de Tnew en <strong>la</strong><br />
iteración actual, desde l i 0 hasta refij considerando cada grupo Gi ∈ G,<br />
prune, es una variable de salida, <strong>la</strong> cual determina si <strong>la</strong> presente iteración debe<br />
ser interrumpida (prune =True) o no (prune =False),<br />
Gi, trenes, cuyos horarios deberán ser especificados por esta función en <strong>la</strong>s<br />
dependencias que forman <strong>la</strong> secuencia Jij .<br />
Function DarHoraGrupo(sini, sfin, δbest, ā, prune, Gi) As Timetabling<br />
j = ini<br />
While (sj sfin And prune =False)<br />
dep =Calcu<strong>la</strong>rSalida(sj)<br />
ā = ā ∪ AsignarHorario(sj, dep, Gi)<br />
δest =EstimarCosto(ā)<br />
If (δest > δbest) Then prune =True<br />
j = j + 1<br />
End While<br />
return ā<br />
End Function<br />
Figura 5.15: Asignación de horarios válidos <strong>para</strong> Gi en una partición j de su recorrido<br />
El grupo Gi = {ti1 , ti2 , .., tci } es una secuencia ordenada de ci trenes. El orden<br />
en el cual deben partir dichos trenes de <strong>la</strong>s estaciones sk ∈ Speriodo i establece el<br />
orden de <strong>la</strong> secuencia dada por Gi.<br />
Definimos <strong>la</strong> secuencia ordenada Sij = {sk, sk+1, .., sk+m} como el conjunto de<br />
estaciones incluidas en <strong>la</strong> partición Jij es decir Sij = Jij ∩ Si siendo sk = sini y<br />
sk+m = sfin.<br />
Consideramos que un tramo es <strong>la</strong> secuencia de dependencias por <strong>la</strong>s que debe
5.6. Descripción detal<strong>la</strong>da del Método de Solución aplicado al Problema OPT 189<br />
pasar un tren <strong>para</strong> ir desde una estación sj a <strong>la</strong> siguiente estación sj+1 de su recor-<br />
rido. Teniendo en cuenta <strong>la</strong> secuencia de estaciones existente en el recorrido Ji,<br />
secj = sj → sj+1, 0 ≤ j ≤ (n − 1)i, son los tramos existentes en dicho recorrido. En<br />
+ i l2 k<br />
+ ik<br />
+ k i l3<br />
+ k i l4<br />
Figura 5.16: Asignación de Horarios a Trenes Consecutivos<br />
recorido<br />
<strong>la</strong> Figura 5.16 se muestra un ejemplo donde el tramo secj = sj → sj+1 está formado<br />
0<br />
por <strong>la</strong> secuencia secj = {lik , lik+1 , lik+2 , lik+3 , lik+4 } donde lik = sj y lik+4 = sj+1.<br />
El método que hemos utilizado considera <strong>la</strong> secuencia Sij como una secuencia<br />
de tramos seck, 0 ≤ k < m. Se selecciona un tramo por vez en el mismo orden<br />
i l1k<br />
j s<br />
1 t 1 t Conflicto ÚnicaVía Tiempo l<br />
especificado por Sij y por cada tramo seleccionado se busca asignar un horario<br />
factible a todos los trenes de Gi en dicho tramo. El horario es asignado a cada tren<br />
según el orden especificado por Gi.<br />
La forma en que se lleva a cabo <strong>la</strong> asignación de un horario factible a cada tren<br />
i<br />
P<br />
de Gi en un determinado tramo seck = sk → sk+1 es descrita mediante <strong>la</strong> siguiente<br />
secuencia de pasos:<br />
1. Asignación de instante de salida al tren tiy en <strong>la</strong> estación sk (instanciación de<br />
<strong>la</strong> variable dep iy<br />
k ).<br />
El instante de salida de tiy de <strong>la</strong> estación sk es calcu<strong>la</strong>do según se requiera o<br />
no que los trenes de Gi cump<strong>la</strong>n con una determinada periodicidad Pi en sus<br />
salidas de sk, y según tiy sea o no el primer tren de <strong>la</strong> secuencia Gi (y = 0 o<br />
y > 0, respectivamente).<br />
Las siguientes expresiones, 5.6.5 y 5.6.6, mode<strong>la</strong>n <strong>la</strong>s condiciones que se tienen<br />
en cuenta <strong>para</strong> evaluar el instante de salida de <strong>la</strong> estación sk correspondiente<br />
+ sj
190 5. Un Procedimiento heurístico basado en ordenación (PBO)<br />
al tren tiy.<br />
sk ∈ Speriodo i → dep iy<br />
k =<br />
⎧<br />
⎪⎨<br />
dep<br />
⎪⎩<br />
iy−1<br />
k + Pi if y > 0,<br />
v\v ∈ [Ii L, Ii U]<br />
arr<br />
if k = 0 And y = 0<br />
iy<br />
sk ∈ Si \ Speriodo i → dep iy<br />
k<br />
k + Ci k if k > 0 And y = 0.<br />
(5.6.5)<br />
= arriy<br />
k + Ci k (5.6.6)<br />
2. Ubicación del tren tiy en el tramo seck en función del tiempo, a partir de un<br />
determinado instante de salida dep iy<br />
k .<br />
Dado el instante de salida dep iy<br />
k calcu<strong>la</strong>do en el punto previo, se procede a<br />
calcu<strong>la</strong>r el instante de salida y el instante de llegada del tren tiy en cada una<br />
de <strong>la</strong>s restantes dependencias del tramo seck. Se obtiene con ello un horario<br />
provisional ya que aún resta <strong>la</strong> comprobación de <strong>la</strong> satisfacción de restricciones<br />
dadas por Ch, por parte de este horario.<br />
∀lx ∈ seck \ {sk+1} : arr iy<br />
x+1 = depiy x + ∆ iy<br />
x→(x+1)<br />
∀lx ∈ seck \ {sk, sk+1} : dep iy<br />
x = arr iy<br />
x + C i x<br />
(5.6.7)<br />
(5.6.8)<br />
La expresión 5.6.7 especifica cómo es calcu<strong>la</strong>do el instante de llegada a <strong>la</strong>s<br />
dependencias pertenecientes al tramo seck sin considerar <strong>la</strong> estación que inicia<br />
el tramo sk. El instante de llegada a sk es calcu<strong>la</strong>do cuando se considera el<br />
tramo seck−1 siempre y cuando k > 0. El instante de llegada a sk cuando<br />
sk = s0 no es utilizado ya que es <strong>la</strong> estación inicial del recorrido Ji.<br />
La expresión 5.6.8 especifica cómo es calcu<strong>la</strong>do el instante de salida de cada<br />
dependencia perteneciente a seck, exceptuando <strong>la</strong>s estaciones inicial y final del<br />
tramo, sk y sk+1. El instante de salida de <strong>la</strong> estación sk es calcu<strong>la</strong>do en el punto<br />
previo debido a que el instante de salida en <strong>la</strong>s estaciones que inician un tramo<br />
pueden tener que cumplir restricciones adicionales al resto de dependencias del<br />
tramo. Por otro <strong>la</strong>do el instante de salida de <strong>la</strong> estación sk+1 será calcu<strong>la</strong>do al<br />
considerar el siguiente tramo seck+1.<br />
3. Verificación del horario provisional según <strong>la</strong>s restricciones dadas en Ch. Se<br />
verifica que cada una de <strong>la</strong>s restricciones dadas en Ch sea satisfecha por el
5.6. Descripción detal<strong>la</strong>da del Método de Solución aplicado al Problema OPT 191<br />
horario provisional asignado en el punto previo. Al realizar <strong>la</strong> verificación de<br />
<strong>la</strong>s restricciones, el proceso considera <strong>la</strong> ocupación del tramo considerado según<br />
el horario asignado previamente al resto de trenes en Tnew y al conjunto de<br />
trenes en circu<strong>la</strong>ción TC. Si alguna de <strong>la</strong>s restricciones ha sido incumplida el<br />
proceso va al punto siguiente, de lo contrario el proceso va al punto 5.<br />
4. Re<strong>para</strong>ción del horario provisional. Cuando una de <strong>la</strong>s restricciones de Ch es<br />
incumplida se analiza esta restricción <strong>para</strong> calcu<strong>la</strong>r <strong>la</strong> cantidad de tiempo ∆<br />
que debe ser retrasado el instante de salida de tiy de <strong>la</strong> estación sk <strong>para</strong> que<br />
dicha restricción pueda ser satisfecha.<br />
Si <strong>la</strong> estación sk ∈ Speriodo i significa que los trenes de Gi deben satisfacer una<br />
determinada periodicidad entre sus salidas, por lo tanto se retrasa <strong>la</strong> salida<br />
del primer tren de Gi en <strong>la</strong> cantidad de tiempo dada por ∆. Luego se repite<br />
esta secuencia de pasos desde el paso 2 <strong>para</strong> el tren tiy = ti1<br />
(ver Figura 5.17).<br />
Si sk /∈ Speriodo i entonces, se retrasa <strong>la</strong> salida del tren siendo considerado, tiy,<br />
en ∆ unidades de tiempo. Luego, se vuelve al paso 2.<br />
+ i l2 l3 k<br />
+ i l4 k<br />
+ ik<br />
+ ik<br />
Figura 5.17: Resolución de Conflictos durante <strong>la</strong> Asignación de Horarios a Trenes<br />
Consecutivos<br />
retraso<br />
j s 1 ÚnicaVía salida <strong>la</strong> en recorido<br />
Tiempo t t 1 l<br />
5. Fin de <strong>la</strong> secuencia <strong>para</strong> el tren tiy. Si y < ci entonces se selecciona el tren<br />
0<br />
tiy+1<br />
i l1k<br />
y se repite <strong>la</strong> secuencia desde el paso número 1.<br />
En <strong>la</strong> Figura 5.18 se muestra un ejemplo de cómo <strong>la</strong> asignación de horario a un tren<br />
ya sea perteneciente a Tnew o perteneciente a T C determina una región de prioridad<br />
i<br />
P<br />
+ sj
192 5. Un Procedimiento heurístico basado en ordenación (PBO)<br />
+ ik<br />
+ i l4 k<br />
+ ik<br />
+ ik<br />
i t E<br />
Figura 5.18: Asigación de Prioridades en un Tramo<br />
R<br />
en dicho tramo tal que ningún otro tren podrá ocupar. Como un ejemplo, se puede<br />
ver en <strong>la</strong> Figura 5.18 al tren ti. A dicho tren se le ha asignado un horario según<br />
j s<br />
1 s ÚnicaVía Tiempo t 3 v t i t R 1 v t<br />
l<br />
muestra <strong>la</strong> figura en cada una de <strong>la</strong>s dependencias del tramo seck. Esta asignación<br />
l2 l3 l1<br />
i recorido i t 1 v t 2 v k<br />
de horarios hace que los trenes que viajan en el sentido opuesto no puedan ocupar<br />
<strong>la</strong>s regiones sombreadas de <strong>la</strong> figura, ya que podrían vio<strong>la</strong>r <strong>la</strong>s restricciones <strong>para</strong><br />
evitar cruce o <strong>para</strong> cumplir con un determinado tiempo de recepción o expedición.<br />
El orden en el que se asigna un horario a los trenes determina <strong>la</strong> prioridad de los<br />
mismos en cada tramo. Por ello según <strong>la</strong> forma en que se particionen los recorridos<br />
de cada grupo se determinará el orden en el que los trenes ocupen cada tramo del<br />
recorrido común y con ello <strong>la</strong> prioridad establecida entre ellos. Cuando <strong>la</strong>s particiones<br />
son seleccionadas de forma diferente, <strong>la</strong>s soluciones son diferentes.<br />
b) Periodicidad en Salida NO es incluida en el conjunto de restricciones<br />
Una vez ha sido seleccionado el tren y el correspondiente tramo de su recorrido,<br />
el siguiente paso consiste en asignar al mismo un horario factible, que le genere el<br />
mínimo retraso posible, en el tramo considerado. El objetivo consiste en determinar<br />
<strong>la</strong> ocupación del recurso (tramo) satisfaciendo el conjunto de restricciones Ch de tal<br />
forma que <strong>la</strong> función objetivo sea tenida en cuenta (minimizar el retraso promedio<br />
de los trenes). En <strong>la</strong> Figura 5.10, <strong>la</strong> función AsignarHoraTrenTramo(ti, seci j ) lleva a<br />
cabo esta tarea. En esta sub sección explicaremos cómo esta tarea es llevada a cabo<br />
teniendo en cuenta que el tren seleccionado es ti y sec i j<br />
+ j<br />
es el tramo correspondiente<br />
al recorrido de ti, donde un horario factible debe ser especificado <strong>para</strong> el mismo.
5.6. Descripción detal<strong>la</strong>da del Método de Solución aplicado al Problema OPT 193<br />
Teniendo en cuenta <strong>la</strong> definición de tramo estación dada en <strong>la</strong> sección 3.3 del capítulo<br />
3, considere que sec i j = {li x, .., l i x+ci }, siendo li x y l i x+ci<br />
<strong>la</strong>s estaciones que inician y<br />
finalizan el tramo seci j , respectivamente.<br />
Hemos descrito <strong>la</strong> forma de construir el horario de un tren en un determinado<br />
tramo de su recorrido mediante <strong>la</strong> siguiente secuencia de pasos:<br />
1. Inicio del Intervalo de Ocupación. Dado el tramo seci j = {li x, .., li x+ci }, el primer<br />
paso de esta secuencia consiste en especificar un posible instante de salida <strong>para</strong><br />
el tren ti de <strong>la</strong> estación que inicia el tramo considerado. Es decir se asigna un<br />
valor de partida a <strong>la</strong> variable dep i x, siendo l i x <strong>la</strong> estación que inicia el tramo<br />
seci j . Este valor de partida es calcu<strong>la</strong>do según ha sido formu<strong>la</strong>do en <strong>la</strong> expresión<br />
5.6.9.<br />
dep i x =<br />
⎧<br />
⎪⎨ v\v ∈ [Ii L, Ii U] if x = 0<br />
⎪⎩<br />
arr i x + C i x<br />
if x > 0.<br />
(5.6.9)<br />
Cuando <strong>la</strong> estación l i x, inicio del tramo, es además <strong>la</strong> estación inicial del recor-<br />
rido, el valor asignado a dep i x es un valor v que debe pertenecer al intervalo<br />
[I i L, I i U], el cual es definido por cada tren como el intervalo de valores váli-<br />
dos <strong>para</strong> el instante de salida de <strong>la</strong> estación inicial de sus correspondientes<br />
recorridos (ver restricción 3.4.16).<br />
Si por el contrario l i x es una estación intermedia del recorrido de ti (x > 0), el<br />
instante de salida de ti de dicha estación es especificado a partir de su instante<br />
de llegada (arr i x). Dado que <strong>la</strong> construcción del horario se realiza teniendo<br />
en cuenta <strong>la</strong> función objetivo, y en este caso esta determina que debe existir<br />
el mínimo retraso posible por cada tren, se busca que el tren ti salga de l i x<br />
realizando <strong>la</strong> mínima <strong>para</strong>da posible. Esto significa una vez llegue a l i x apenas<br />
transcurra el mínimo tiempo de <strong>para</strong>da comercial, establecido <strong>para</strong> dicho tren<br />
en <strong>la</strong> estación considerada, ya que <strong>la</strong> restricción 3.4.22 debe ser satisfecha.<br />
El instante de salida establecido en este punto es un valor de partida mediante<br />
el cual se propone mediante el siguiente punto una posible ocupación del tramo<br />
sec i j<br />
por parte del tren ti.<br />
2. Una Propuesta <strong>para</strong> <strong>la</strong> Ocupación del recurso. Dado un determinado instante<br />
de salida dep i x, se construye un horario <strong>para</strong> el tren ti teniendo en cuenta
194 5. Un Procedimiento heurístico basado en ordenación (PBO)<br />
<strong>la</strong>s restricciones sobre tiempo de recorrido y <strong>para</strong>da comercial, restricciones<br />
3.4.14 y 3.4.22, respectivamente. Así, el instante de salida del tren ti de cada<br />
dependencia l i y, x < y < x + ci es calcu<strong>la</strong>do según <strong>la</strong> expresión 5.6.10.<br />
dep i y = arr i y + C i y<br />
(5.6.10)<br />
El instante de salida correspondiente a ti en <strong>la</strong> dependencia que inicia el tramo,<br />
es el instante a partir del cual se calcu<strong>la</strong>n los instantes de salida y de llegada<br />
correspondientes al resto de dependencias incluidas en sec i j .<br />
Este instante es especificado inicialmente en el punto 1 de esta secuencia.<br />
Sin embargo, puede ser modificado. De ser así, el horario en el resto de <strong>la</strong>s<br />
dependencias se vuelve a calcu<strong>la</strong>r de <strong>la</strong> misma forma, pero a partir de un<br />
nuevo valor <strong>para</strong> el instante de salida dep i x.<br />
El instante de salida correspondiente a <strong>la</strong> última estación del tramo (l i x+ci )<br />
no es calcu<strong>la</strong>do al ser considerado el tramo seci j , ya que de no ser <strong>la</strong> última<br />
estación del recorrido su valor será determinado al ser considerado el tramo<br />
sec i j+1 .<br />
El instante de llegada de ti a cada dependencia l i y, x ≤ y < x + ci es calcu<strong>la</strong>do<br />
según <strong>la</strong> expresión 5.6.11.<br />
arr i y+1 = dep i y + ∆ i y→(y+1)<br />
(5.6.11)<br />
El instante de llegada del tren ti a <strong>la</strong> dependencia l i x fue calcu<strong>la</strong>do al ser<br />
considerado el tramo previo sec i j−1 , siempre y cuando li x no fuera <strong>la</strong> estación<br />
inicial del recorrido. De ser así, este instante no es calcu<strong>la</strong>do, ya que el instante<br />
de llegada de un tren a <strong>la</strong> estación inicial de su recorrido no es un requerimiento<br />
de <strong>la</strong> solución del problema.<br />
Una vez obtenido un posible horario <strong>para</strong> el tren ti en el tramo seci j , el siguiente<br />
paso consiste en comprobar su factibilidad según el resto de restricciones<br />
especificadas en Ch.<br />
3. Satisfacción de Restricciones: en este punto se recibe una propuesta de horario<br />
<strong>para</strong> el tren ti en el tramo sec i j<br />
y se verifica si esta es factible según <strong>la</strong>s restric-<br />
ciones especificadas en Ch. Al realizar <strong>la</strong> verificación se considera que dicho<br />
tramo está ocupado por todos los trenes en circu<strong>la</strong>ción y por aquellos trenes
5.6. Descripción detal<strong>la</strong>da del Método de Solución aplicado al Problema OPT 195<br />
pertenecientes a Tnew cuyos horarios en sec i j<br />
han sido asignados previamente<br />
a ti. Si ninguna restricción es incumplida se pasa al punto 5 de esta secuencia.<br />
Si por el contrario, alguna restricción es incumplida, se intenta re<strong>para</strong>r el in-<br />
cumplimiento según es descrito en el siguiente punto de esta misma secuencia.<br />
4. Re<strong>para</strong>ción de Restricciones incumplidas. Cuando una restricción es incumpl-<br />
ida, el proceso analiza <strong>la</strong> restricción <strong>para</strong> determinar <strong>la</strong> mínima cantidad de<br />
tiempo ∆ en <strong>la</strong> que debe ser retrasada <strong>la</strong> salida de ti de <strong>la</strong> estación l i x, de tal<br />
forma a re<strong>para</strong>r <strong>la</strong> restricción incumplida. Luego, se modifica el valor de dep i x<br />
a dep i x = dep i x + ∆, volviendo posteriormente el proceso al punto 2 de esta<br />
secuencia.<br />
Es en este punto donde se puede notar cómo afecta al proceso empleado el<br />
orden en que son seleccionados los trenes pertenecientes a Tnew <strong>para</strong> computar<br />
sus horarios en un determinado tramo.<br />
Cuando una restricción es incumplida, se retrasa <strong>la</strong> salida del tren cuyo horario<br />
se está generando, en este caso ti, es decir si <strong>la</strong> restricción incumplida involucra<br />
a ti y a otro tren tj, se le asigna mayor prioridad a tj. Esto es debido a que<br />
si se tiene en cuenta el horario de tj cuando se está verificando el horario de<br />
ti, significa que el horario de tj fue asignado previamente, por lo tanto debe<br />
tener mayor prioridad que ti.<br />
5. Fin de Asignación de Tramo. Una vez todas <strong>la</strong>s restricciones han sido veri-<br />
ficadas y cumplidas por el horario asignado a ti en seci j , este es añadido al<br />
conjunto de horarios válidos asignados hasta el momento por <strong>la</strong> generación<br />
actual. Este conjunto es representado por <strong>la</strong> variable ā en <strong>la</strong> Figura 5.10.<br />
El hecho de agregar este nuevo horario al conjunto asignación ā significa que<br />
<strong>la</strong> ocupación realizada por el tren ti en el tramo seci j , conforme el horario<br />
asignado, se agrega a <strong>la</strong> lista de ocupación definida hasta el momento <strong>para</strong><br />
dicho tramo. Esto a su vez implica que sucesivos horarios a ser asignados<br />
deberán tener en cuenta el horario establecido <strong>para</strong> ti en sec i j<br />
<strong>la</strong> correspondiente verificación de restricciones.<br />
cuando se realice<br />
Finalmente, el tramo sec i j del recorrido Ji es agregado como último elemento<br />
de <strong>la</strong> secuencia ordenada Sec i done<br />
(ver Figura 5.10), ya que de esta manera el
196 5. Un Procedimiento heurístico basado en ordenación (PBO)<br />
proceso lleva seguimiento de cuáles son los tramos del recorrido de un tren, en<br />
el que ya ha sido asignado un horario factible en el orden en que esta asignación<br />
ha sido realizada.<br />
Cada vez que finaliza <strong>la</strong> asignación de un horario factible a un tren en un tramo<br />
de su recorrido, el siguiente paso del proceso consiste en estimar el coste de <strong>la</strong><br />
solución, considerando el conjunto de horarios especificados hasta el momento por<br />
<strong>la</strong> generación actual. Este procedimiento es descrito en <strong>la</strong> siguiente sub sección.<br />
5.6.3. Tercera Etapa: Evaluación de Solución Parcial<br />
Una vez asignado un horario factible en un tramo seck, a un tren tiy tal que tiy ∈<br />
Gi, el siguiente paso consiste en estimar el coste que tendría <strong>la</strong> solución en proceso<br />
de construcción; lo cual es llevado a cabo con el objetivo de interrumpir aquel<strong>la</strong>s<br />
generaciones donde el coste estimado reve<strong>la</strong>se que <strong>la</strong> solución siendo construida, no<br />
será mejor que <strong>la</strong> obtenida hasta entonces.<br />
Pueden existir variables en X, cuyos valores no hayan sido determinados por el<br />
proceso de búsqueda, en el momento en que se estima el coste. A éstas variables se<br />
les asigna un valor de tal forma que en el horario determinado por el<strong>la</strong>s no exista<br />
<strong>para</strong>da técnica alguna. El valor <strong>para</strong> el resto de <strong>la</strong>s variables en X, corresponde al<br />
valor asignado hasta ese momento por el proceso de búsqueda correspondiente a <strong>la</strong><br />
generación actual. El conjunto de valores, tanto los estimados como los establecidos<br />
por el proceso de búsqueda, <strong>para</strong> cada variable xi en X, forman parte de <strong>la</strong> posible<br />
solución āest.<br />
Siendo F (ābest) el coste correspondiente a <strong>la</strong> mejor solución, ābest, y F (āest,<br />
el coste estimado <strong>para</strong> <strong>la</strong> posible solución āest, si F (āest) > F (ābest), entonces <strong>la</strong><br />
generación de <strong>la</strong> solución actual deberá ser interrumpida, ya que sería una pérdida<br />
de <strong>eficiencia</strong> continuar sabiendo que el menor coste que podría tener <strong>la</strong> solución<br />
resultante ya es mayor que el coste de <strong>la</strong> mejor obtenida hasta entonces.<br />
Para evaluar el coste de una solución, ā, correspondiente al problema OPT, se<br />
utiliza <strong>la</strong> función de coste global F (ā) (sub sección 3.4.3 del capítulo 3). Esta función<br />
mide, a partir de <strong>la</strong> asignación de horarios ā, el retraso promedio del conjunto de<br />
trenes Tnew, con respecto al tiempo de referencia Γi, calcu<strong>la</strong>do por cada tren ti en<br />
Tnew. En esta sección se describirá el proceso empleado <strong>para</strong> calcu<strong>la</strong>r el valor de Γi.
5.6. Descripción detal<strong>la</strong>da del Método de Solución aplicado al Problema OPT 197<br />
Dado un tren ti, tal que ti ∈ Tnew, decimos que Γ i ref<br />
es el límite inferior cor-<br />
respondiente al tiempo que ti puede emplear en realizar su recorrido completo Ji,<br />
satisfaciendo todas <strong>la</strong>s restricciones en Ch. El valor <strong>para</strong> este límite inferior es cal-<br />
cu<strong>la</strong>do utilizando el siguiente algoritmo:<br />
Por cada tramo secj = {l i k , li k+1 , ..., li k+aj }, perteneciente al recorrido Ji de ti se<br />
llevan a cabo los pasos siguientes:<br />
1. se re<strong>la</strong>ja el problema OPT por considerar que T = {ti} ∪ T C<br />
2. se calcu<strong>la</strong> el valor inicial <strong>para</strong> <strong>la</strong> variable dep i k , instante de salida de ti de l i k ,<br />
3. se propaga el valor de dep i k a <strong>la</strong>s variables arri x+1 y depi x, mediante <strong>la</strong>s restric-<br />
ciones 3.4.14 y 3.4.22, siendo k ≤ x < k + aj,<br />
4. considerando todas <strong>la</strong>s restricciones en Ch y <strong>la</strong> re<strong>la</strong>jación realizada sobre el<br />
conjunto T, se verifica que <strong>la</strong> asignación realizada a cada variable arr i x+1 y<br />
dep i x, k ≤ x < k + aj, sea factible,<br />
5. si alguna restricción Ci perteneciente a Ch es incumplida, entonces se incremen-<br />
ta el valor de <strong>la</strong> variable dep i k<br />
de <strong>la</strong> restricción Ci, luego, se vuelve al paso 2,<br />
en <strong>la</strong> mínima cantidad que permita <strong>la</strong> satisfacción<br />
6. si ninguna restricción Ci perteneciente a Ch es incumplida, <strong>la</strong> secuencia de<br />
pasos finaliza <strong>para</strong> el tramo seci. Si li x+aj = li mi , es decir no es <strong>la</strong> estación<br />
destino de ti, se selecciona el siguiente tramo seci+1 y se repite <strong>la</strong> secuencia<br />
de pasos desde el punto 1.<br />
Una vez, todos los tramos seci del recorrido Ji han sido seleccionados, el resultado<br />
consiste en un horario factible <strong>para</strong> ti, teniendo en cuenta que el problema resuelto<br />
es el problema OPT re<strong>la</strong>jado.<br />
En <strong>la</strong> Figura 5.19 se muestra un ejemplo en el cual T C = {t1, t2} y Tnew = {ti, t3}.<br />
En este ejemplo, se muestra el horario obtenido <strong>para</strong> ti, como resultado de aplicar <strong>la</strong><br />
secuencia de pasos descrita previamente. Teniendo en cuenta el horario asignado a ti<br />
en <strong>la</strong> Figura 5.19, Γi es el tiempo empleado por el mismo <strong>para</strong> completar su recorrido.<br />
El horario asignado a ti satisface todas <strong>la</strong>s restricciones en C si se considera que los<br />
únicos trenes existentes en <strong>la</strong> línea son ti y los trenes en circu<strong>la</strong>ción, lo cual no es
198 5. Un Procedimiento heurístico basado en ordenación (PBO)<br />
t∈TC<br />
l4<br />
l1i l2i l3 i l0i<br />
t∈<br />
t∈ 3<br />
ΓT<br />
2 new T i C 1<br />
)(asdependenciY i t<br />
Figura 5.19: Cálculo de Γi. Se re<strong>la</strong>ja el problema por considerar que T = {ti} ∪ TC i<br />
verdadero si el problema OPT NO es re<strong>la</strong>jado, ya que ti y t3 incumplen <strong>la</strong> restricción X(tiempo)<br />
3.4.9, sobre cruce. Este incumplimiento es seña<strong>la</strong>do por un círculo en <strong>la</strong> figura 5.19.<br />
En <strong>la</strong> Figura 5.20 se muestra el mismo problema OPT considerado en <strong>la</strong> Figura<br />
5.19, pero esta vez no se lleva a cabo <strong>la</strong> re<strong>la</strong>jación sobre el mismo. Luego, el horario<br />
asignado a ti satisface todas <strong>la</strong>s restricciones en Ch considerando que T = Tnew ∪T C.<br />
Esto implica resolver el conflicto seña<strong>la</strong>do por un círculo en <strong>la</strong> Figura 5.19. En <strong>la</strong><br />
solución mostrada, se obtiene el horario factible de ti, retrasando <strong>la</strong> salida del mismo<br />
de <strong>la</strong> estación l i 2 . En esta solución el tiempo de recorrido real de ti es Λi, lo cual<br />
supone un determinado retraso con respecto a Γi. Otra posible solución <strong>para</strong> el<br />
mismo problema consistiría en retrasar <strong>la</strong> salida de t3, lo cual haría que ti no tuviera<br />
un retraso sobre su tiempo de referencia, y t3 sí.<br />
Límite Inferior <strong>para</strong> el Coste de una Solución<br />
El coste que se estima <strong>para</strong> <strong>la</strong> solución siendo construida es un límite inferior<br />
<strong>para</strong> el coste real que tendría una vez sea completamente construida por el proceso<br />
de búsqueda. Esto es debido a que <strong>la</strong> función de coste global del problema OPT es<br />
aplicada a <strong>la</strong> asignación āest, en <strong>la</strong> cual parte de sus elementos son valores estimados<br />
y no valores hal<strong>la</strong>dos por el proceso de búsqueda, ya que en el momento que se<br />
produce <strong>la</strong> estimación ciertas variables aún no han sido instanciadas. Decimos que<br />
es un límite inferior porque los valores que se estiman <strong>para</strong> dichas variables hacen
5.6. Descripción detal<strong>la</strong>da del Método de Solución aplicado al Problema OPT 199<br />
t∈<br />
que éstas introduzcan un coste igual a cero en <strong>la</strong> función de coste global, por lo tanto i X(tiempo)<br />
t∈ 3<br />
t∈ l2i l3i<br />
i C T 1 C T 2 new T i t l0i l4<br />
Γ<br />
l1i<br />
4−<br />
Figura 5.20: Retraso del tren ti con respecto a su tiempo de referencia Γi 0 arrdep i i )(asdependenciY<br />
i<br />
Λ<br />
=<br />
sea cual fuere su valor real, el coste que introduzcan deberá ser necesariamente igual<br />
o mayor que el estimado.<br />
Siendo ti un elemento cualesquiera de Tnew y Ji = {li 0 , li 1 , ..., li mi } su recorrido,<br />
el valor <strong>para</strong> cada variable depi j y arri j+1 , 0 ≤ j < mi, es un elemento de āest. Si<br />
en el momento de calcu<strong>la</strong>r un coste estimado <strong>para</strong> <strong>la</strong> solución siendo construida, el<br />
proceso de búsqueda ha asignado un valor a <strong>la</strong>s variables depi j y arri j+1 , 0 ≤ j < k,<br />
entonces el valor de <strong>la</strong>s variables depi j y arri j+1 , k ≤ j < mi, es un valor estimado por<br />
el proceso, de tal forma que el horario que determinan éstas variables no introduzca<br />
<strong>para</strong>da técnica alguna.<br />
Teniendo en cuenta que <strong>la</strong> solución estimada <strong>para</strong> <strong>la</strong> generación actual es āest,<br />
y que Γ i ref es el límite inferior calcu<strong>la</strong>do <strong>para</strong> el tiempo de recorrido de ti, tal que<br />
ti ∈ Tnew, el coste que se estima <strong>para</strong> āest está dado por:<br />
donde F1(āestI ) = ωexc ×<br />
F (āest) = F1(āestI ) + F2(āestV ) + F3(āest)<br />
<br />
ti∈Tnew, I<br />
δ(āestI, i)<br />
|Tnew, I|<br />
representa el retraso promedio de los
200 5. Un Procedimiento heurístico basado en ordenación (PBO)<br />
trenes que viajan en sentido ida con respecto a Γ i ref , ti ∈ Tnew, I,<br />
F2(āestV ) = ωexc ×<br />
<br />
ti∈Tnew,V<br />
|Tnew,V|<br />
δ(āestV, i)<br />
representa el retraso promedio de los<br />
trenes que viajan en sentido vuelta con respecto a Γ i ref , ti ∈ Tnew, V, y<br />
E(āest) = F1(āestI ) + F2(āestV ) es el retraso promedio de todos los trenes en Tnew<br />
con respecto a Γ i ref , ti ∈ Tnew<br />
El retraso de cada tren ti en Tnew con respecto a Γi ref , está dado por<br />
δ(āest dir , i) = arri mi − depi 0 − Γi ref<br />
Γ i ref<br />
× p i<br />
(5.6.12)<br />
Como puede verse en <strong>la</strong> sección 3.4.3 del capítulo 3, <strong>la</strong> función objetivo de este<br />
problema tiene dos componentes, una de el<strong>la</strong>s corresponde al exceso promedio de los<br />
trenes con respecto a sus respectivos tiempos de referencia y <strong>la</strong> otra, al equilibrio que<br />
existe entre el exceso promedio de los trenes que viajan en sentido ida y el exceso<br />
promedio de los trenes que viajan en sentido vuelta. La primera componente ha sido<br />
estimada por (E)( aest). ¯ La segunda componente de <strong>la</strong> función objetivo está dada<br />
por<br />
.<br />
F3(āest) = ωdesv ×<br />
<br />
[F1(āestI ) − E(āest)] 2 + [F2(āestV ) − E(āest)] 2<br />
2<br />
De esta forma se obtiene el coste <strong>para</strong> una posible solución, donde parte de <strong>la</strong><br />
misma es obtenida por el proceso de búsqueda y parte estimada de tal forma que<br />
<strong>la</strong> poda sea conservadora, y no sea interrumpida una generación que finalmente<br />
produzca una mejor solución que ābest.<br />
5.7. Conclusiones<br />
En este capítulo se han descrito dos nuevas aproximaciones <strong>para</strong> resolver el<br />
problema OPT. La diferencia entre ambas aproximaciones consiste en que una de el<strong>la</strong>s<br />
ha sido desarrol<strong>la</strong>da de tal forma que cump<strong>la</strong> eficientemente con el requerimiento<br />
sobre periodicidad en salida. Es decir, además del conjunto de restricciones común a<br />
ambas aproximaciones, una de el<strong>la</strong>s satisface el requerimiento de que todos los trenes
5.7. Conclusiones 201<br />
que pertenezcan a un determinado grupo deberán satisfacer un periodo de tiempo<br />
entre sus salidas consecutivas. Dependiendo de <strong>la</strong> <strong>para</strong>metrización del problema, esta<br />
restricción deberá cumplirse en toda estación con <strong>para</strong>da comercial, o únicamente<br />
en <strong>la</strong> estación inicial del recorrido. Ambas aproximaciones se basan en el orden de<br />
instanciación de <strong>la</strong>s variables xi en X y en el conocimiento acerca del problema.<br />
Las aproximaciones descritas son algoritmos anytime constructivos. En cada<br />
iteración se construye el horario de los trenes, diferenciándose una iteración de otra,<br />
en el orden en el cual son dispuestos los trenes en cada uno de los tramos de sus<br />
respectivos recorridos. Es este orden el que determina <strong>la</strong> prioridad de los mismos en<br />
cada uno de los tramos en caso de conflicto, y con ello sus correspondientes retrasos.<br />
El orden de asignación está dado por medio de una heurística de ordenación de<br />
variables, desarrol<strong>la</strong>da como parte de este trabajo, <strong>la</strong> cual se basa en el estado<br />
actual de <strong>la</strong> solución y en los criterios utilizados en <strong>la</strong> función objetivo. Consta de<br />
una componente aleatoria <strong>para</strong> evitar los óptimos locales.<br />
La construcción de cada solución es realizada por medio de una propagación de<br />
restricciones, una vez se asigna el instante de salida inicial a cada tren. El back-<br />
tracking es llevado a cabo respetando el orden establecido en <strong>la</strong> iteración actual. En<br />
ese caso, solo se deshace el horario de aquellos trenes, en los que sea posible que<br />
el retraso originalmente establecido en determinadas estaciones ya no sea necesario,<br />
debido a que el horario del tren causante de <strong>la</strong>s mismas ha sido modificado. De esta<br />
forma, el tiempo ahorrado es considerable, sobre todo cuando <strong>la</strong> línea consta de un<br />
elevado número de trenes y tramos en cada recorrido.<br />
La forma en que se lleva a cabo <strong>la</strong> verificación de restricciones aporta una efi-<br />
ciencia fundamental en <strong>la</strong> construcción de cada solución, ya que esta no es llevada<br />
a cabo entre todos los trenes, sino únicamente entre aquellos entre los que exista<br />
posibilidad de conflicto. Para ello es importante mantener ordenada, por instantes<br />
de salida y de llegada, <strong>la</strong> ocupación de los trenes en cada dependencia. Por ejemplo,<br />
el tiempo de sucesión entre dos trenes, solo es verificado entre trenes consecutivos,<br />
y no es necesaria <strong>la</strong> verificación con el resto de trenes del problema.<br />
El horario de un tren se construye tramo a tramo, pudiendo establecerse el<br />
horario de un tren en n tramos seguidos, siendo n una variable cuyo valor es aleato-<br />
riamente obtenido cada vez que se selecciona el siguiente tren a optimizar en una<br />
misma iteración. Esto permite obtener todas <strong>la</strong>s combinaciones factibles de horarios,
202 5. Un Procedimiento heurístico basado en ordenación (PBO)<br />
sin que <strong>la</strong> forma de construir los horarios descarte ninguna solución. Sin embargo,<br />
esto también agrega mayor complejidad, ya que si existe un backtracking, muchas<br />
veces será necesario deshacer el horario de más de un tren.<br />
En cada iteración es posible estimar el mínimo coste que supondría completar <strong>la</strong><br />
construcción de <strong>la</strong> solución siendo generada. El coste es estimado de tal forma que<br />
si se finaliza <strong>la</strong> construcción de <strong>la</strong> solución actual, su coste nunca sería menor que<br />
cualquiera de los estimados durante su construcción. Con ello se evita descartar una<br />
solución parcial que de haber sido completada hubiera sido mejor que <strong>la</strong> obtenida<br />
hasta entonces. Si el coste estimado es mayor que el coste de <strong>la</strong> mejor solución<br />
obtenida hasta entonces, <strong>la</strong> solución parcial es descartada, y se inicia una nueva<br />
iteración. En el capítulo se describe detal<strong>la</strong>damente <strong>la</strong> forma en <strong>la</strong> cual se realiza <strong>la</strong><br />
estimación del mínimo coste de <strong>la</strong> solución parcial.<br />
Con éstas aproximaciones se intenta explorar aquel<strong>la</strong>s regiones del espacio de<br />
soluciones que se estimen más prometedoras en cuanto a <strong>la</strong> optimización de <strong>la</strong> fun-<br />
ción de coste global se refiere. En el siguiente capítulo presentamos los resultados<br />
obtenidos con ambas aproximaciones, <strong>para</strong> diferentes instancias del problema OPT.
Capítulo 6<br />
Evaluación Computacional<br />
6.1. Introducción<br />
En éste capítulo evaluaremos el comportamiento de los algoritmos desarrol<strong>la</strong>dos,<br />
tanto al aplicar <strong>la</strong> aproximación PBO, como al aplicar <strong>la</strong> aproximación PBO RAND<br />
a diferentes instancias del problema OPT. La aproximación PBO (Procedimiento<br />
Basado en Ordenación) es el método de solución, descrito en el capítulo 5, <strong>para</strong> el<br />
problema OPT. La diferencia entre este método y el método PBO RAND radica en <strong>la</strong><br />
heurística que se emplea en uno y en otro <strong>para</strong> ordenar <strong>la</strong>s variables a ser asignadas.<br />
En el primero se utiliza una heurística basada en el procedimiento ”Regret-Based Bi-<br />
ased Random Sampling (RBRS)”propuesta por Drexl, [38] y [39], el segundo ordena<br />
<strong>la</strong>s variables pendientes de ser asignadas de forma aleatoria.<br />
Las pruebas, cuyos resultados son mostrados en éste capítulo han sido ejecutadas<br />
en un ordenador con un procesador Pentium IV 3.0 GHz y 512 Mb de memoria<br />
interna, bajo el sistema operativo Windows XP.<br />
Los datos que componen cada caso de prueba fueron provistos por <strong>la</strong> Admin-<br />
istración de Infraestructura Ferroviaria Españo<strong>la</strong> (ADIF). En <strong>la</strong> sección 6.3 se de-<br />
scriben trece casos de prueba, que han sido resueltos utilizando por un <strong>la</strong>do <strong>la</strong> aprox-<br />
imación PBO, y por otro <strong>la</strong> aproximación PBO RAND. Por cada caso de prueba,<br />
hemos proporcionado el número de variables, restricciones y conflictos que <strong>la</strong> carac-<br />
terizan y que indican una medida de <strong>la</strong> complejidad de cada una. Posteriormente,<br />
ya en <strong>la</strong> sección 6.5, indicamos el valor de <strong>la</strong> función objetivo obtenida al cabo de<br />
203
204 6. Evaluación Computacional<br />
dos minutos de ejecución <strong>para</strong> cada uno de los casos de prueba mencionados pre-<br />
viamente. Se obtiene un resultado por cada combinación de parámetros < α, ɛ >,<br />
donde se asigna a α los valores 1, 2, 3, 4 y a ɛ los valores 0.05, 0.15 y 0.3. Además<br />
se lleva a cabo una prueba sobre los 13 casos de estudio considerando α = 0, lo cual<br />
significa que se emplea <strong>la</strong> aproximación PBO RAND, o lo que es lo mismo el orden<br />
de <strong>la</strong>s variables se lleva a cabo de forma aleatoria. Otro aspecto que se considera en<br />
esta sección es <strong>la</strong> cantidad de backtracking que lleva a cabo el método durante <strong>la</strong><br />
solución de cada uno de los trece casos de prueba considerados. Este dato es pro-<br />
porcionado como parte de los resultados obtenidos, ya que es una consecuencia de<br />
<strong>la</strong> forma en <strong>la</strong> cual se implementa <strong>la</strong> verificación de <strong>la</strong>s restricciones. El número de<br />
backtracking que se realice en cada iteración es un factor que tiene mucha influencia<br />
en <strong>la</strong> cantidad de tiempo que se demore el procedimiento en obtener cada una de<br />
<strong>la</strong>s soluciones.<br />
Una de <strong>la</strong>s características del método de solución que describimos en este capítu-<br />
lo, mediante los resultados proporcionados, es su comportamiento Anytime. En <strong>la</strong><br />
Sección 6.6 hemos proporcionado un ejemplo de esta característica, ejecutando el<br />
método de solución sobre los 13 casos de prueba durante 60 minutos. Los resultados<br />
han indicado que aunque el valor de <strong>la</strong> función objetivo va mejorando, el método<br />
de solución puede ser interrumpido en un instante de tiempo inferior al límite es-<br />
tablecido (60 minutos) y de igual manera se obtendría una solución. En <strong>la</strong>s pruebas<br />
realizadas, además se puede observar que durante los primeros minutos de ejecu-<br />
ción se obtienen soluciones de alta calidad, si <strong>la</strong> com<strong>para</strong>mos con <strong>la</strong>s soluciones<br />
obtenidas una vez haya transcurrido un tiempo considerable de tiempo (40 minutos<br />
por ejemplo).<br />
Hemos seleccionado en <strong>la</strong> Sección 6.7 dos ejemplos <strong>para</strong> describir <strong>la</strong>s acciones que<br />
lleva a cabo el método de solución durante <strong>la</strong> optimización, y <strong>la</strong> influencia que tiene<br />
sobre el mismo <strong>la</strong> interre<strong>la</strong>ción que exista entre los trenes y el tipo de infraestructura<br />
de <strong>la</strong> línea considerada. En el primero, existe baja interre<strong>la</strong>ción entre los trenes de<br />
<strong>la</strong> línea, lo cual supone una menor complejidad <strong>para</strong> el método de solución ya que<br />
existe menos posibilidad de conflictos entre ellos, y una mayor posibilidad de que <strong>la</strong><br />
asignación de horarios consista únicamente en <strong>la</strong> propagación de <strong>la</strong>s restricciones.<br />
Sin embargo, en el segundo ejemplo, <strong>la</strong> interre<strong>la</strong>ción es mayor y el número de vías<br />
tanto en estaciones como en los tramos es menor, lo cual produce una instancia más
6.2. Implementación del Sistema de Evaluación 205<br />
compleja que <strong>la</strong> del primer ejemplo. En <strong>la</strong> Sección 6.9 indicamos <strong>la</strong> importancia de<br />
un horario robusto, considerando <strong>la</strong> robustez como una medida de <strong>la</strong> estabilidad que<br />
presenta un horario frente a una incidencia ocurrida durante <strong>la</strong> ejecución del mismo.<br />
Se proporciona una breve descripción de los trabajos publicados acerca de medidas<br />
que indican un nivel de robustez en los problemas de scheduling. Finalmente, se<br />
proporcionan <strong>la</strong>s conclusiones referentes a este capítulo.<br />
6.2. Implementación del Sistema de Evaluación<br />
Con el objetivo de llevar a cabo <strong>la</strong> evaluación computacional del método de<br />
optimización PBO, descrito en el Capítulo 5, se ha llevado a cabo su implementación,<br />
utilizando <strong>para</strong> ello el lenguaje de programación Visual C++ 6.0. El resultado forma<br />
parte de una herramienta software.<br />
Esta herramienta ha sido desarrol<strong>la</strong>da <strong>para</strong> facilitar <strong>la</strong> especificación de los difer-<br />
entes casos de prueba, consistentes en instancias diferentes del problema OPT, así co-<br />
mo <strong>para</strong> facilitar <strong>la</strong> interpretación de los resultados obtenidos. Consta principalmente<br />
de cuatro módulos: 1) Integración de Datos, 2) Parametrización, 3) Programación<br />
y Optimización de Horarios, e 4) Informe de Resultados.<br />
La modu<strong>la</strong>rización ha sido realizada según el objetivo que persigue cada uno.<br />
En <strong>la</strong> Figura 6.1 se representa <strong>la</strong> arquitectura del sistema en función de los módulos<br />
citados y de <strong>la</strong> re<strong>la</strong>ción que existe entre ellos.<br />
1) Módulo Integración de datos. Es el responsable de obtener y estructurar <strong>la</strong><br />
información mediante <strong>la</strong> cual se especifica cada caso de prueba o instancia de OPT.<br />
Específicamente, el sistema obtiene los datos correspondientes a determinados atrib-<br />
utos de cada tren, de cada dependencia, y de cada tramo de <strong>la</strong> línea ferroviaria, sobre<br />
<strong>la</strong> cual se programarán los horarios de los trenes considerados. Los datos correspon-<br />
den a información real facilitada por <strong>la</strong> compañía ferroviaria, que el usuario del<br />
sistema software selecciona indicando <strong>la</strong> línea ferroviaria que desea utilizar. A par-<br />
tir de dicha selección, <strong>la</strong> herramienta obtiene los datos de los trenes que <strong>la</strong> ocupan<br />
(el tipo de operador, el recorrido (secuencia ordenada de dependencias por donde<br />
deberá pasar), <strong>la</strong> <strong>para</strong>da comercial en cada dependencia de su recorrido, el tiempo<br />
que emplea <strong>para</strong> recorrer cada tramo de su recorrido, etc.) y los datos referentes a<br />
<strong>la</strong> secuencia ordenada de dependencias que define <strong>la</strong> línea ferroviaria seleccionada
206 6. Evaluación Computacional<br />
Trenes× Trenes×Tramo<br />
Interfaz Infraestru Interfaz<br />
ón Optimizaci y ón Programaci Resultados ión Configurac Interfaz ación Parametriz<br />
Principal deHorarios MOM<br />
Interfaz ctura Interfaz Datos de Tramos Trenes Estación Integració<br />
Figura 6.1: Arquitectura de <strong>la</strong> herramienta software que implementa el método PBO<br />
LTO<br />
Estaciones<br />
de ión Actualizac datos de n LecturaHorarios<br />
(el tipo de <strong>la</strong> dependencia (permite cruce, o no), número de vías en dependencia y<br />
en tramo, tipo de señalización por tramo, etc.).<br />
2) Módulo de Parametrización. Permite especificar, del conjunto de trenes ex-<br />
istentes en <strong>la</strong> línea ferroviaria, cuáles serán los trenes cuyos horarios deberán ser<br />
programados y optimizados (Interfaz LTO en <strong>la</strong> Figura 6.1). Por cada uno de los<br />
seleccionados, es posible indicar valores <strong>para</strong> los parámetros de <strong>la</strong>s restricciones que<br />
regu<strong>la</strong>rán su horario. Por ejemplo, por cada tren se puede establecer un determinado<br />
intervalo de tiempo <strong>para</strong> su instante de salida inicial ó el máximo retraso que se con-<br />
siderará factible con respecto a su tiempo ideal (Interfaz Principal en <strong>la</strong> Figura 6.1).<br />
Los atributos de <strong>la</strong> infraestructura ferroviaria correspondiente a <strong>la</strong> línea selecciona-<br />
da, también pueden ser modificados una vez hayan sido obtenidos por el módulo<br />
Integración de Datos. Es posible modificar el número de vías en una dependencia,<br />
el tipo de señalización o el número de vías en un tramo, entre otros, pudiendo recu-<br />
perar los valores originales cuando se considere oportuno (Interfaz Infraestructura<br />
en <strong>la</strong> Figura 6.1). Otros parámetros cuyos valores son especificados por el módu-<br />
lo Parametrización corresponden al método empleado <strong>para</strong> programar y optimizar<br />
horarios (Interfaz Configuración en <strong>la</strong> Figura 6.1), tales como: condición de <strong>para</strong>da<br />
(número máximo de iteraciones o tiempo máximo de ejecución), ponderación de los<br />
criterios utilizados en <strong>la</strong> función objetivo, aplicar o no poda, c<strong>la</strong>sificación de tipo de
6.3. Descripción de los Casos de Prueba 207<br />
tren por operador, prioridad en los ade<strong>la</strong>ntamientos, tipo de optimización (standard<br />
o flexible), etc.<br />
3) Módulo de Programación y Optimización de Horarios. Es el responsable de<br />
obtener una solución <strong>para</strong> <strong>la</strong> instancia del problema OPT que haya sido especificada<br />
mediante el módulo Integración de Datos y el módulo Parametrización. La solución<br />
es obtenida mediante <strong>la</strong> aplicación del método PBO. Una vez se satisfaga <strong>la</strong> condi-<br />
ción de <strong>para</strong>da indicada mediante el módulo Configuración, se proporciona <strong>la</strong> mejor<br />
solución hal<strong>la</strong>da entre aquel<strong>la</strong>s que hayan sido construidas por cada iteración. El<br />
módulo Programación y Optimización de Horarios evalúa cada solución construida<br />
a partir de <strong>la</strong> función objetivo establecida <strong>para</strong> el problema OPT. Datos re<strong>la</strong>tivos<br />
al tiempo de ejecución, valor de <strong>la</strong> función objetivo y tiempo promedio de recorri-<br />
do, correspondientes a <strong>la</strong> mejor solución en cada momento, son valores conocidos<br />
durante el tiempo que se ejecuta <strong>la</strong> optimización.<br />
4) Módulo de Informe de Resultados. Muestra datos re<strong>la</strong>tivos a <strong>la</strong> mejor solución<br />
hal<strong>la</strong>da tales como: instante de salida/llegada inicial/final por cada tren y diferen-<br />
cia de tiempo con el instante de salida/llegada preferente, tiempo de recorrido total<br />
por cada tren y diferencia con respecto al mejor tiempo que el mismo podría em-<br />
plear, retraso de cada tren en porcentaje. La mejor solución puede ser almacenada<br />
(Actualización de Horarios en <strong>la</strong> Figura 6.1) <strong>para</strong> su posterior representación gráfica.<br />
6.3. Descripción de los Casos de Prueba<br />
En ésta sección describimos los aspectos más importantes acerca de cada caso<br />
de prueba considerado <strong>para</strong> <strong>la</strong> evaluación computacional, de tal forma que pueda<br />
ser estimada su correspondiente complejidad.<br />
La dimensión que posee cada instancia del problema OPT está dada por el<br />
número de soluciones posibles (espacio de soluciones), así como por <strong>la</strong> dificultad<br />
que supone obtener cada una de el<strong>la</strong>s. Estos factores a su vez son determinados por<br />
<strong>la</strong>s propiedades: de <strong>la</strong> línea ferroviaria (número de estaciones, número de vías por<br />
tramo y estación, tipo de bloqueo por tramo, horarios de cierre, bandas de manten-<br />
imiento,..., etc.), del conjunto de trenes en circu<strong>la</strong>ción (ocupación de <strong>la</strong> línea según<br />
el horario y el recorrido asignado a cada tren en T C), y del conjunto de trenes que se<br />
desea agregar a <strong>la</strong> línea (recorrido, velocidad por tramo, márgenes necesarios,...,etc.
208 6. Evaluación Computacional<br />
por cada tren en Tnew).<br />
Casos<br />
Infraestructura T. en Circu<strong>la</strong>ción Nuevos Trenes<br />
Km. Est. V. Única V.Doble Trenes Tramos Trenes Tramos<br />
1 117.6 12 21 3 0 0 63 243<br />
2 209.1 22 36 0 90 953 26 200<br />
3 177.8 25 37 4 33 253 22 320<br />
4 177.8 25 37 4 0 0 55 573<br />
5 71.6 10 10 0 0 0 52 454<br />
6 189.6 16 39 0 0 0 44 337<br />
7 153.7 18 16 14 0 0 18 146<br />
8 75.7 10 13 0 9 81 19 150<br />
9 286.0 32 39 8 11 97 64 924<br />
10 106.8 14 18 0 69 836 74 608<br />
11 217.0 26 51 0 0 0 42 587<br />
12 271.0 33 51 0 95 1326 37 624<br />
13 75.7 10 13 0 0 0 28 231<br />
Cuadro 6.1: Descripción de 13 instancias del problema OPT<br />
Hemos descrito en cada fi<strong>la</strong> de <strong>la</strong> Tab<strong>la</strong> 6.1, un caso de prueba real en términos<br />
de: i) <strong>la</strong>s principales características de <strong>la</strong> infraestructura de <strong>la</strong> línea ferroviaria cor-<br />
respondiente, ii) del conjunto de trenes que se encuentran en circu<strong>la</strong>ción, T C, y iii)<br />
del conjunto de nuevos trenes a p<strong>la</strong>nificar Tnew.<br />
como:<br />
De <strong>la</strong> infraestructura de <strong>la</strong> línea ferroviaria hemos proporcionado propiedades<br />
Extensión de <strong>la</strong> línea (Km.). Longitud de <strong>la</strong> línea ferroviaria dada en kilómet-<br />
ros.<br />
Número de estaciones (Est.). Determina <strong>la</strong> cantidad de dependencias en <strong>la</strong>s<br />
cuales un tren puede realizar una <strong>para</strong>da técnica <strong>para</strong> evitar conflictos con<br />
otros trenes de <strong>la</strong> línea. Las <strong>para</strong>das técnicas que se deban realizar en una<br />
estación, serán mayores cuanto mayor sea <strong>la</strong> distancia entre esta estación y <strong>la</strong><br />
estación consecutiva en el recorrido del tren.<br />
Número de tramos con vía única (V. Única). Debido a que en un tramo con<br />
vía única no pueden estar dos trenes que viajan en sentido opuesto en un<br />
mismo instante de tiempo, <strong>la</strong> cantidad de <strong>la</strong>s mismas determina <strong>la</strong> cantidad
6.3. Descripción de los Casos de Prueba 209<br />
de restricciones necesarias <strong>para</strong> evitar un cruce entre dos trenes que viajan en<br />
sentidos opuestos.<br />
Número de tramos con vía doble (V.Doble). Permite determinar <strong>la</strong> proporción<br />
de <strong>la</strong> línea L en <strong>la</strong> cual no existirá <strong>la</strong> competencia de dos trenes, viajando en<br />
sentido opuesto, por un mismo tramo.<br />
Del conjunto de trenes en circu<strong>la</strong>ción T C, y del conjunto de trenes nuevos a p<strong>la</strong>nificar<br />
Tnew, se proporciona:<br />
Cantidad de trenes.<br />
Suma de tramos. Corresponde al total de tramos en los que se debe asignar<br />
ó verificar un horario.<br />
En el caso de los trenes en circu<strong>la</strong>ción, estos datos proporcionan una medida de<br />
<strong>la</strong> ocupación que existe en <strong>la</strong> línea, y de <strong>la</strong> ocupación que resta en el<strong>la</strong> (columnas<br />
Trenes y Tramos bajo el encabezado T. en Circu<strong>la</strong>ción).<br />
En el caso de los trenes que se desean agregar a <strong>la</strong> línea L, <strong>la</strong>s columnas Trenes y<br />
Tramos bajo el encabezado Trenes Nuevos, proporcionan una medida de <strong>la</strong> cantidad<br />
de recursos ferroviarios necesarios y del número de conflictos en tramos y estaciones<br />
que deben ser resueltos <strong>para</strong> que <strong>la</strong> asignación realizada sea factible.<br />
Casos Var. Rest. Conf. Sol.<br />
1 434 10740 85 3,86E+25<br />
2 668 12378 151 2,85E+45<br />
3 1086 60781 20 1048576<br />
4 1950 120488 56 7,2E+16<br />
5 1636 222604 126 8,50E+37<br />
6 2782 58589 108 3,24E+32<br />
7 536 4774 77 1,51E+23<br />
8 1008 45968 70 1,18E+21<br />
9 982 294859 17 131072<br />
10 1730 17331 71 2,36E+21<br />
11 688 45086 19 524288<br />
12 2402 1148217 129 6,80E+38<br />
13 2046 132061 136 8,71E+40<br />
Cuadro 6.2: Dimensiones del Modelo <strong>para</strong> cada Caso de Prueba
210 6. Evaluación Computacional<br />
6.4. Complejidad de los Casos de Prueba<br />
Teniendo en cuenta <strong>la</strong> descripción de <strong>la</strong> aproximación PBO dada en el capítulo<br />
5 podemos estimar <strong>la</strong> complejidad de cada caso de prueba basándonos en el número<br />
de variables, número de restricciones y número de conflictos que puedan existir en<br />
cada una de el<strong>la</strong>s. El valor correspondiente a cada uno de éstos factores es dado<br />
por cada caso de prueba en <strong>la</strong> Tab<strong>la</strong> 6.2 bajo <strong>la</strong>s columnas Var., Rest. y Conf.,<br />
respectivamente.<br />
Número de Variables.<br />
Considerando que cada variable del problema OPT corresponde al instante de<br />
llegada o al instante de salida de un tren en una determinada dependencia de<br />
su recorrido, el número de variables correspondiente a cada caso de prueba es<br />
<br />
(|Ji| − 1) × 2. Por cada dependencia del recorrido Ji de un tren ti en<br />
ti∈Tnew<br />
Tnew, existen dos variables, instante de llegada e instante de salida, excepto en<br />
<strong>la</strong> primera y última estación de su recorrido. La suma del conjunto de variables<br />
de cada tren ti en Tnew proporciona el total de variables existente en cada caso<br />
de prueba.<br />
Numero de Restricciones.<br />
A partir de cada restricción definida en <strong>la</strong> Sección 3.4.2 del capítulo 3, se ha<br />
calcu<strong>la</strong>do el número de verificaciones que debe realizar <strong>la</strong> aproximación PBO<br />
<strong>para</strong> comprobar que cada asignación es factible. Este cálculo ha sido realizado<br />
teniendo en cuenta cada restricción, así como el alcance de cada una.<br />
Número de Conflictos y Soluciones.<br />
El número de conflictos indicado por cada caso de prueba en <strong>la</strong> Tab<strong>la</strong> 6.2<br />
corresponde a <strong>la</strong> cantidad de pares de trenes que viajan en sentido opuesto y<br />
se estima requieran ocupar al mismo tiempo un mismo tramo que consta de<br />
única vía <strong>para</strong> circu<strong>la</strong>ción. La estimación de este número se lleva a cabo por<br />
ubicar en <strong>la</strong> línea ferroviaria según su horario ideal (ninguna <strong>para</strong>da técnica) a<br />
cada uno de los trenes que forman parte del problema. Por cada par de trenes<br />
que ocupan un mismo tramo de vía única al mismo tiempo se suma uno al<br />
número de conflictos. Este valor es muy importante ya que <strong>para</strong> cada uno de
6.5. Coste de cada solución en función de <strong>la</strong> <strong>para</strong>metrización < α, ɛ > 211<br />
estos conflictos existe dos formas de resolverlos, es decir que este valor nos<br />
proporciona <strong>la</strong> dimensión aproximada del espacio de búsqueda (columna Sol<br />
en <strong>la</strong> Tab<strong>la</strong> 6.2).<br />
Otro tipo de conflicto, que aunque no aumenta el espacio de búsqueda, sin<br />
embargo sí incrementa el tiempo que emplea el método en hal<strong>la</strong>r cada solución,<br />
es el conflicto por <strong>la</strong>s vías dentro de una estación. Cuando el instante de llegada<br />
que corresponde a un tren en una estación es tal que en dicho instante no hay<br />
vías disponibles, se debe deshacer el horario asignado en el tramo previo,<br />
llevando a un backtracking, en el horario del tren y en el horario de los trenes<br />
que hayan tenido una <strong>para</strong>da técnica causada por el mismo.<br />
6.5. Coste de cada solución en función de <strong>la</strong> <strong>para</strong>metrización<br />
< α, ɛ ><br />
En ésta sección se muestran los resultados obtenidos por PBO, en número de<br />
iteraciones realizadas así como en el coste de cada solución, cuando el mismo es<br />
ejecutado durante 120 segundos. Estos resultados se com<strong>para</strong>n posteriormente, con<br />
los obtenidos por <strong>la</strong> aproximación PBO RAND, el cual es ejecutado durante el<br />
mismo tiempo de ejecución.<br />
El coste de cada caso de prueba viene determinado por <strong>la</strong> longitud de <strong>la</strong>s <strong>para</strong>das<br />
técnicas realizadas por cada tren en Tnew, <strong>la</strong>s cuales son motivadas por <strong>la</strong> limitación<br />
de recursos disponibles (vías en tramos y estaciones). Dado dos trenes nuevos, compi-<br />
tiendo por un mismo recurso, realizará <strong>la</strong> <strong>para</strong>da técnica aquel con menor prioridad<br />
sobre el recurso. Las prioridades se determinan según el orden de asignación de<br />
variables.<br />
Al utilizar <strong>la</strong> aproximación PBO, el orden de instanciación por cada solución lo<br />
determina <strong>la</strong> heurística descrita en <strong>la</strong> Sección 5.6.1 del Capítulo 5, <strong>la</strong> cual utiliza<br />
dos variables, α y ε, con un valor determinado. Por cada fi<strong>la</strong> de <strong>la</strong>s Tab<strong>la</strong>s 6.3 y<br />
6.4 se muestra el coste de <strong>la</strong> mejor solución obtenida por PBO, <strong>para</strong> cada caso de<br />
prueba, al cabo de dos minutos de ejecución, y por cada columna de éstas tab<strong>la</strong>s,<br />
<strong>la</strong> combinación < α, ε > utilizada. Note que <strong>la</strong> primera columna de <strong>la</strong> Tab<strong>la</strong> 6.3<br />
corresponde a los resultados obtenidos por <strong>la</strong> aproximación PBO RAND, donde
212 6. Evaluación Computacional<br />
Casos<br />
α = 0 α = 1 α = 2<br />
ε = 0.05 ε = 0.15 ε = 0.30 ε = 0.05 ε = 0.15 ε = 0.30<br />
1 79,15 68,10 71,50 69,50 67,80 71,00 75,50<br />
2 78,69 75,90 67,90 75,90 74,30 70,20 71,50<br />
3 6,2 6,50 6,70 6,50 6,60 6,50 6,80<br />
4 7,76 7,76 7,76 7,76 7,76 7,76 7,76<br />
5 65,6 54,80 57,20 58,00 58,00 51,90 56,00<br />
6 12,6 12,10 13,00 13,00 12,40 12,60 12,80<br />
7 38,8 35,70 35,70 34,40 35,70 34,40 34,40<br />
8 19,1 18,70 19,00 19,10 18,90 19,20 18,70<br />
9 3,6 3,60 3,60 3,60 4,00 4,10 3,60<br />
10 14,5 12,20 13,70 13,20 14,70 13,20 13,80<br />
11 18,9 19,40 18,90 18,80 18,20 18,80 18,20<br />
12 19,1 18,90 17,20 19,60 18,10 18,40 18,20<br />
13 30,7 27,30 25,70 29,50 28,50 28,60 28,00<br />
Prom. 30,37 27,77 27,53 28,37 28,07 27,44 28,10<br />
Cuadro 6.3: Valor de <strong>la</strong> Función de Coste Global en función de ε y α<br />
α = 0, lo cual significa que el orden de instanciación de <strong>la</strong>s variables en cada caso<br />
de prueba es completamente aleatorio.<br />
En <strong>la</strong> última fi<strong>la</strong> de <strong>la</strong>s Tab<strong>la</strong>s 6.3 y 6.4 se obtiene el coste promedio, considerando<br />
los 13 casos de prueba, <strong>para</strong> cada combinación < α, ε >.<br />
Los diferentes casos de prueba han sido seleccionados de modo que cada uno sea<br />
un escenario bastante diferente del resto de casos y así se pueda evaluar <strong>la</strong> aproxi-<br />
mación PBO <strong>para</strong> diferentes contextos dentro del mismo problema OPT, asegurando<br />
que no exista una combinación de elementos, línea, trenes nuevos y ocupación, que<br />
favorezca al algoritmo empleado.<br />
Com<strong>para</strong>ndo <strong>la</strong> aproximación PBO con <strong>la</strong> aproximación PBO RAND, a partir<br />
de los resultados obtenidos, podemos concluir que es mejor utilizar un criterio <strong>para</strong> el<br />
orden de instanciación de <strong>la</strong>s variables (sección 5.6.1 del capítulo 5), que realizar esa<br />
ordenación en forma completamente aleatoria (α = 0), más aún cuando se dispone<br />
de un tiempo de ejecución mínimo y se requiere que toda solución entregada tienda a<br />
<strong>la</strong> optimalidad establecida por <strong>la</strong> función objetivo utilizada. Particu<strong>la</strong>rmente, según<br />
los datos proporcionados en <strong>la</strong>s Tab<strong>la</strong>s 6.3 y 6.4, el mejor promedio al cabo de dos<br />
minutos de ejecución lo proporciona <strong>la</strong> combinación < α = 3, ε = 0, 05 >.
6.5. Coste de cada solución en función de <strong>la</strong> <strong>para</strong>metrización < α, ɛ > 213<br />
Casos<br />
α = 3 α = 4<br />
ε = 0.05 ε = 0.15 ε = 0.30 ε = 0.05 ε = 0.15 ε = 0.30<br />
1 65,21 71,60 64,80 71,60 64,20 64,17<br />
2 59,88 71,90 73,10 64,30 64,50 72,91<br />
3 6,55 6,50 6,40 6,70 6,50 6,66<br />
4 7,76 7,76 7,76 7,76 7,76 7,76<br />
5 54,95 52,00 53,60 55,00 52,20 56,34<br />
6 11,84 12,30 11,90 12,80 12,60 12,31<br />
7 34,84 34,50 36,00 36,40 32,90 31,25<br />
8 18,24 19,10 18,00 18,70 19,20 18,27<br />
9 3,62 3,60 4,10 3,60 3,90 4,04<br />
10 13,67 13,60 12,70 14,50 14,40 13,75<br />
11 16,68 19,40 19,40 18,10 17,40 18,96<br />
12 17,53 18,00 19,60 19,50 17,20 17,99<br />
13 25,51 27,30 28,10 27,90 24,50 28,49<br />
Prom. 25,87 27,50 27,34 27,45 25,94 27,15<br />
Cuadro 6.4: Valor de <strong>la</strong> Función de Coste Global en función de ε y α<br />
Los diferentes promedios obtenidos entre PBO RAND y <strong>la</strong>s diferentes combina-<br />
ciones < α, ε > utilizando PBO, son representados gráficamente en <strong>la</strong> Figura 6.2.<br />
Cada punto seña<strong>la</strong>do en <strong>la</strong>s líneas de <strong>la</strong> figura, representa el coste promedio obtenido<br />
con una determinada combinación < α, ε >. Todos los puntos unidos por una misma<br />
línea comparten el mismo valor de α.<br />
6.5.1. Backtracking en <strong>la</strong> búsqueda de soluciones<br />
Como vimos en <strong>la</strong> Sección 5.6.2, el método de solución asigna un horario inicial a<br />
un tren en un tramo determinado, y posteriormente verifica que el horario asignado<br />
satisfaga el conjunto de restricciones. Cuando ciertas restricciones son incumplidas<br />
se debe retrasar en una determinada cantidad el instante de salida de <strong>la</strong> estación<br />
inicial del tramo, como <strong>para</strong> que dichas restricciones sean cumplidas. Sin embargo,<br />
otras necesitan que se retrase el instante de salida del tramo anterior al considerado<br />
<strong>para</strong> que sean cumplidas, lo cual provoca que el horario ya asignado en el tramo<br />
previo al considerado deba ser deshecho y vuelto a calcu<strong>la</strong>r. La columna Back. en<br />
<strong>la</strong> Tab<strong>la</strong> 6.2 proporciona el número de veces en promedio, que ésta operación es
214 6. Evaluación Computacional<br />
31,00<br />
30,50<br />
30,00<br />
29,50<br />
29,00<br />
28,50<br />
28,00<br />
27,50<br />
27,00<br />
26,50<br />
26,00<br />
25,50<br />
Epsilon<br />
0 0,05 0,1 0,15 0,2 0,25 0,3 0,35<br />
Figura 6.2: Coste Promedio en función de α <strong>para</strong> diferentes valores de ε<br />
alpha=4<br />
Promedio RAND alpha=1 alpha=2 alpha=3 Costo<br />
realizada en cada caso de prueba <strong>para</strong> obtener cada solución. t1<br />
− k<br />
+ k l l1<br />
)(YLínea 2 t 2<br />
1 time time trenes 3 7 .C rest cumple No 2 ) 1<br />
ng Backtracki<br />
Como un ejemplo considere <strong>la</strong> Figura 6.3, en el<strong>la</strong> se muestran tres situaciones, time Tiempo(X)<br />
l1 k<br />
t2<br />
0<br />
k<br />
N<br />
=<br />
) 3 (<br />
Figura 6.3: Un ejemplo donde se aplica Backtracking<br />
(<br />
0(<br />
) 2<br />
2 trenes<br />
que se pueden producir. En <strong>la</strong> primera, se indica que <strong>la</strong> estación lk está ocupada<br />
por dos trenes durante el intervalo de tiempo [time0, time1]. En <strong>la</strong> segunda, se ha<br />
asignado un horario al tren t2 de tal forma que no se cruce en el tramo de vía única<br />
con los trenes t0 y t1 que tienen mayor prioridad. Por lo tanto el horario asignado<br />
time 1 0<br />
k<br />
N<br />
=<br />
k<br />
N<br />
=
6.6. Comportamiento Anytime 215<br />
a t2 requiere de una <strong>para</strong>da técnica en <strong>la</strong> estación lk. Esta situación hace que <strong>la</strong><br />
estación lk pase a estar ocupada por tres trenes en un determinado instante del<br />
intervalo considerado, lo cual no es posible ya que dicha estación solo cuenta con<br />
dos vías (Nk = 2). Para corregir este incumplimiento se debe retroceder el instante<br />
de salida de t2 en <strong>la</strong> estación previa lk+1, lo cual significa retroceder un tramo en<br />
<strong>la</strong> asignación del horario a t2. Este paso es representado por <strong>la</strong> situación 3 en <strong>la</strong><br />
Figura 6.3. Debe tenerse en cuenta además que una vez se deshace el horario de<br />
un tren, puede ser necesario deshacer el horario de otros trenes. Específicamente,<br />
considerando el ejemplo previo, se deberán deshacer los horarios de todos aquellos<br />
trenes a los cuales t2 hubiera ocasionado una <strong>para</strong>da técnica en los tramos, donde<br />
su horario se ha deshecho.<br />
Aquellos casos de prueba donde existan varias estaciones con un número reducido<br />
de vías (1 ó 2), y donde el número de trenes, así como el número de tramos comunes<br />
entre sus recorridos favorezca a <strong>la</strong> competencia por recursos, tendrán un número<br />
elevado de backtracking y con ello un tiempo de respuesta mayor <strong>para</strong> <strong>la</strong> obtención<br />
de una solución.<br />
6.6. Comportamiento Anytime<br />
El método de solución construye una nueva solución en cada iteración, mante-<br />
niendo siempre aquel<strong>la</strong> solución que proporcione el mejor valor de <strong>la</strong> función objetivo.<br />
El método de solución puede ser interrumpido en cualquier instante durante su eje-<br />
cución y proporcionará <strong>la</strong> mejor solución obtenida hasta entonces. Esta propiedad<br />
lo identifica como un algoritmo Anytime.<br />
Por otro <strong>la</strong>do, si consideramos <strong>la</strong> formu<strong>la</strong>ción del algoritmo PBO, <strong>la</strong> cual fue<br />
realizada en el capítulo 5, en <strong>la</strong> que se mode<strong>la</strong> el problema OPT como un árbol de<br />
búsqueda, donde <strong>la</strong> generación de cada una de sus ramas corresponde a una iteración<br />
del algoritmo, podemos decir que conforme el tiempo de ejecución del algoritmo PBO<br />
aumente, el número de ramas completamente generadas será mayor y <strong>la</strong> distancia<br />
entre el coste de cada generación y el coste óptimo será menor.<br />
Debido al proceso de poda aplicado en <strong>la</strong> aproximación PBO, una iteración<br />
finaliza sin ser interrumpida solo si <strong>la</strong> solución que obtiene genera un coste inferior al<br />
de <strong>la</strong> mejor solución obtenida hasta ese momento. De no ser así, el proceso de poda no
216 6. Evaluación Computacional<br />
permitirá que <strong>la</strong> iteración finalice, es decir podará <strong>la</strong> rama del árbol correspondiente.<br />
Por lo tanto a medida que el tiempo de ejecución aumente, el coste de <strong>la</strong>s soluciones<br />
obtenidas disminuirá.<br />
Esto puede ser visto en <strong>la</strong> Figura 6.4, donde se proporciona el coste de <strong>la</strong> función<br />
objetivo del problema OPT correspondiente a <strong>la</strong> mejor solución obtenida en cada caso<br />
de prueba por cada minuto de ejecución.<br />
En <strong>la</strong> Figura 6.4 se muestra el coste de <strong>la</strong> mejor solución obtenida al cabo de<br />
cada minuto de ejecución en cada caso de prueba, cuando el problema OPT es resuelto<br />
utilizando el algoritmo PBO con α = 3 y ε = 0.05.<br />
Por cada minuto de ejecución, se obtiene un promedio de costes teniendo en<br />
cuenta los 13 casos de prueba. En <strong>la</strong> Figura 6.5 se muestra <strong>la</strong> evolución de éste<br />
coste promedio conforme aumenta el tiempo de ejecución, desde el minuto 1 hasta<br />
el minuto 60.<br />
Por otro <strong>la</strong>do, con el objetivo de indicar <strong>la</strong>s implicaciones que tienen en <strong>la</strong> gen-<br />
eración de soluciones los valores asignados a α y a ε, hemos realizado otra ejecución<br />
del algoritmo PBO con los mismos casos de prueba, pero ésta vez utilizado α = 1 y<br />
ε = 0.05. Se han obtenido resultados por cada caso de prueba y por cada minuto de<br />
ejecución, desde el minuto 1 hasta el minuto 60. El coste promedio considerando los<br />
13 casos de prueba por unidad de tiempo (minuto), es representado gráficamente en<br />
<strong>la</strong> Figura 6.5.
6.6. Comportamiento Anytime 217<br />
12345678910111213<br />
'<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
'<br />
64,09<br />
64,28<br />
64,29<br />
65,21<br />
'<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
' '<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
'<br />
58,05<br />
59,88<br />
'<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
' '<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
'<br />
6,29<br />
6,39<br />
6,52<br />
6,55<br />
6,82<br />
'<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
'<br />
7,76<br />
'<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
'<br />
48,40<br />
49,40<br />
51,97<br />
54,95<br />
'<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
'<br />
11,84<br />
'<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
'<br />
31,32<br />
32,72<br />
32,85<br />
33,46<br />
34,09<br />
34,84<br />
'<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
'<br />
16,88<br />
18,24<br />
19,20<br />
'<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
'<br />
3,60<br />
3,62<br />
3,96<br />
'<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
'<br />
12,53<br />
13,28<br />
13,67<br />
'<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
'<br />
16,68<br />
'<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
'<br />
14,82<br />
17,53<br />
18,81<br />
'<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
'<br />
24,81<br />
25,51<br />
52<br />
51<br />
50<br />
49<br />
48<br />
47<br />
46<br />
45<br />
44<br />
43<br />
42<br />
41<br />
40<br />
39<br />
38<br />
37<br />
36<br />
35<br />
34<br />
33<br />
32<br />
31<br />
30<br />
29<br />
28<br />
27<br />
26<br />
25<br />
24<br />
23<br />
22<br />
21<br />
20<br />
19<br />
18<br />
17<br />
16<br />
15<br />
14<br />
13<br />
12<br />
11<br />
10987654321<br />
60<br />
59<br />
58<br />
57<br />
56<br />
55<br />
54<br />
53 '<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
'<br />
'<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
'<br />
'<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
'<br />
'<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
'<br />
'<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
'<br />
'<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
'<br />
'<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
'<br />
'<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
'<br />
'<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
'<br />
'<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
'<br />
'<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
''<br />
'<br />
(min)<br />
Tiempo 05<br />
0<br />
3 ,<br />
, =<br />
= ε<br />
α<br />
Prueba<br />
de<br />
Casos<br />
Figura 6.4: Función Objetivo por Caso de Prueba y por Unidad de Tiempo<br />
Como puede verse, cuando el valor de α es menor, el algoritmo PBO tiene un
218 6. Evaluación Computacional<br />
Costo Promedio (%)<br />
28,50<br />
28,00<br />
27,50<br />
27,00<br />
26,50<br />
26,00<br />
25,50<br />
25,00<br />
24,50<br />
24,00<br />
0 10 20 30 40 50 60 70<br />
Tiempo (minutos)<br />
Figura 6.5: Valor Promedio de Función Objetivo por Tiempo, < α = 3, ε = 0.05 ><br />
y < α = 1, ε = 0.05 ><br />
comportamiento menos determinístico, lo cual es favorable cuando se dispone de<br />
un tiempo de ejecución prolongado, ya que existe mayor probabilidad de que en<br />
cada generación el orden de instanciación sea diferente, y por lo tanto sea mayor el<br />
espacio de soluciones explorado, retrasando así <strong>la</strong> aparición del óptimo local.<br />
6.7. Casos particu<strong>la</strong>res y descripción de <strong>la</strong>s Soluciones<br />
obtenidas<br />
En esta sección seleccionamos soluciones correspondientes a diferentes instan-<br />
cias del problema OPT. Estas instancias han sido resueltas utilizando el método de<br />
solución al problema OPT, propuesto en esta Tesis. El objetivo en esta sección es de-<br />
scribir los resultados obtenidos, apoyándonos <strong>para</strong> ello en una representación gráfica<br />
de cada solución, en <strong>la</strong> infraestructura ferroviaria de cada caso, y en <strong>la</strong> consideración<br />
hacia <strong>la</strong>s restricciones y <strong>la</strong> función objetivo del problema. En <strong>la</strong>s sub secciones 6.7.1<br />
y 6.7.2 utilizamos instancias diferentes en cuanto a <strong>la</strong> complejidad computacional<br />
de cada una. Esto es llevado a cabo con el objetivo de explicar, y no únicamente<br />
Alpha = 1 Epsilon = 1<br />
Alpha = 3 Epsilon = 0,05
6.7. Casos particu<strong>la</strong>res y descripción de <strong>la</strong>s Soluciones obtenidas 219<br />
enumerar, <strong>la</strong> influencia del número de restricciones, variables, backtrackings, y posi-<br />
bles soluciones, en el tiempo empleado <strong>para</strong> obtener una solución que tenga un coste<br />
aceptable. El método propuesto en esta tesis está pre<strong>para</strong>do <strong>para</strong> resolver instancias<br />
muy comunes en el mundo real, de alta complejidad, pero no por ello utiliza más<br />
tiempo del necesario <strong>para</strong> resolver instancias de menor complejidad computacional.<br />
A continuación proporcionamos el significado de <strong>la</strong>s columnas pertenecientes<br />
a <strong>la</strong>s tab<strong>la</strong>s utilizadas <strong>para</strong> indicar características consideradas en cada línea fer-<br />
roviaria, perteneciente a <strong>la</strong>s instancias que serán descritas en <strong>la</strong>s sub secciones 6.7.1<br />
y 6.7.2.<br />
Dep.: identificador de <strong>la</strong> dependencia en <strong>la</strong> línea,<br />
Km.: distancia en kilómetros desde <strong>la</strong> dependencia en <strong>la</strong> misma fi<strong>la</strong> de <strong>la</strong> tab<strong>la</strong><br />
hasta <strong>la</strong> dependencia que figura en <strong>la</strong> fi<strong>la</strong> anterior de <strong>la</strong> misma,<br />
D/U: cantidad de vías en el tramo formado por <strong>la</strong> dependencia en <strong>la</strong> misma<br />
fi<strong>la</strong> de <strong>la</strong> tab<strong>la</strong> y <strong>la</strong> dependencia que figura en <strong>la</strong> fi<strong>la</strong> anterior de <strong>la</strong> misma,<br />
Bloqueo: tipo de bloqueo, automático o manual, en el tramo,<br />
Vías: cantidad de vías en <strong>la</strong> estación,<br />
Andén: cantidad de vías con andén en <strong>la</strong> estación,<br />
Cierre: intervalos correspondientes al horario de cierre en <strong>la</strong> estación,<br />
Tipo: tipo de cierre en <strong>la</strong> estación.<br />
En <strong>la</strong>s tab<strong>la</strong>s, los identificadores de <strong>la</strong>s dependencias, cuyo tipo es Estación,<br />
están resaltados en negrita.<br />
En <strong>la</strong> sub sección 6.7.3 se describen soluciones obtenidas cuando se requiere<br />
satisfacer un determinado periodo de tiempo entre salidas iniciales consecutivas.<br />
Finalmente, en <strong>la</strong> sub sección 6.7.4 se presentan ejemplos con los cuales se desea<br />
indicar <strong>la</strong> influencia de <strong>la</strong>s características de una infraestructura ferroviaria, tanto<br />
en el tiempo computacional <strong>para</strong> obtener cada solución, como en <strong>la</strong> amplitud del<br />
espacio de soluciones.
220 6. Evaluación Computacional<br />
6.7.1. Baja Interre<strong>la</strong>ción entre los Trenes de <strong>la</strong> Línea<br />
En esta sub sección describimos una instancia del problema OPT en <strong>la</strong> cual se<br />
dan características que hacen que el espacio de soluciones sea reducido así como el<br />
tiempo empleado <strong>para</strong> hal<strong>la</strong>r cada una de estas soluciones.<br />
En <strong>la</strong> Tab<strong>la</strong> 6.5 se indican los atributos de <strong>la</strong> línea ferroviaria correspondiente<br />
a <strong>la</strong> instancia considerada. Al considerar el recorrido de <strong>la</strong> línea ferroviaria en un<br />
determinado sentido, <strong>la</strong> estación origen de <strong>la</strong> misma es <strong>la</strong> dependencia 51003 y su<br />
estación destino es <strong>la</strong> dependencia 43019.<br />
La cantidad de trenes que se desea agregar a <strong>la</strong> línea ferroviaria 51003 - 43019<br />
es igual a 24, de los cuales 8 trenes tienen el mismo recorrido aunque en sentidos<br />
opuestos. El resto de los trenes tiene un recorrido de longitud menor. Se desea opti-<br />
mizar al mismo tiempo tanto trenes del tipo viajero como trenes del tipo mercancía.<br />
En este ejemplo, por cada tren se ha indicado un instante de salida deseado de<br />
su respectiva estación de origen. Ningún tren podrá salir antes de dicho instante y<br />
el tiempo transcurrido desde el instante deseado hasta el instante de salida asignado<br />
por el método, se considerará una <strong>para</strong>da técnica y por lo tanto parte del retraso<br />
del tren. En <strong>la</strong> Figura 6.6 se representa gráficamente en un p<strong>la</strong>no espacio - tiempo<br />
(eje x - eje y) <strong>la</strong> solución óptima <strong>para</strong> esta instancia.<br />
Como puede verse en <strong>la</strong> Tab<strong>la</strong> 6.5, <strong>la</strong> mayoría de los tramos de <strong>la</strong> línea tienen<br />
una so<strong>la</strong> vía de circu<strong>la</strong>ción <strong>para</strong> ambos sentidos. Razón por <strong>la</strong> cual los trenes t2,<br />
t4, t5 y t7 deben realizar <strong>para</strong>das técnicas en <strong>la</strong>s estaciones seña<strong>la</strong>das en <strong>la</strong> Figura<br />
6.6, de tal forma que el tramo de vía única sea liberado por los otros trenes, antes<br />
de que ellos puedan utilizarlos. En este punto podemos seña<strong>la</strong>r que en <strong>la</strong> instancia<br />
considerada en esta sección existen cuatro conflictos, en cada uno un par de trenes<br />
compiten por un tramo. Cada conflicto entre el tren x y el tren y por un mismo<br />
tramo, puede ser resuelto de dos formas, o espera x o espera y. Por lo tanto existen<br />
2 4 soluciones <strong>para</strong> esta instancia. Es esta <strong>la</strong> razón por <strong>la</strong> que consideramos que el<br />
espacio de soluciones <strong>para</strong> esta instancia es muy reducido y puede ser fácilmente<br />
obtenido, por lo tanto también <strong>la</strong> solución óptima puede ser alcanzada fácilmente<br />
por el método descrito en esta Tesis. En este caso <strong>la</strong> razón del bajo número de<br />
conflictos en una línea ferroviaria donde <strong>la</strong> mayoría de sus tramos tienen una so<strong>la</strong><br />
vía, se debe a <strong>la</strong> baja densidad de tráfico en <strong>la</strong> línea durante todo el intervalo de<br />
tiempo considerado.
6.7. Casos particu<strong>la</strong>res y descripción de <strong>la</strong>s Soluciones obtenidas 221<br />
Dep. Km. D/U Bloqueo Vías Andén Cierre Tipo<br />
51003 0 0 - 7 7<br />
B5119 3,1 2 A<br />
B5102 0,9 2 A<br />
B5101 2,2 2 A<br />
B5073 0,8 1 A<br />
43017 1,9 1 A 2 2<br />
B4301 1,4 1 A<br />
43001 2,8 1 A 3 3<br />
43003 14 1 M 2 2 00:00-06:35; 14:25-24:00 AC<br />
D4303 4 1 M<br />
43005 3,9 1 M<br />
43006 9,1 1 M 2 2 00:00-14:35; 22:55-24:00 AC<br />
43007 5,3 1 M<br />
43008 4,9 1 M 2 2<br />
43009 6 1 M 2 2 00:00-24:00 AC<br />
43011 16,8 1 M 2 2<br />
43012 4 1 M<br />
43013 6,4 1 M 2 2 00:00-24:00 AC<br />
43015 1,6 1 M<br />
43016 1,2 1 M<br />
43021 14,3 1 M<br />
43018 0,6 1 M 3 3 00:00-24:00 AC<br />
43023 8 1 M 6 2<br />
43024 0,9 1 M<br />
43019 3,5 1 M 4 4<br />
Cuadro 6.5: Características de <strong>la</strong> Línea Ferroviaria<br />
Aunque <strong>la</strong> mayoría de los tramos de <strong>la</strong> línea ferroviaria, tienen como tipo de<br />
señalización bloqueo manual, esto no afecta al horario de los trenes, ya que los<br />
instantes de salida iniciales de cada uno, hacen que los trenes consecutivos estén lo<br />
suficientemente se<strong>para</strong>dos como <strong>para</strong> que no tengan que esperar en ninguna estación<br />
que el tren anterior abandone el tramo. Por lo tanto no se produce retraso en sus<br />
horarios por esta causa.<br />
El tiempo <strong>para</strong> generar cada solución depende principalmente del número de<br />
backtrackings que deba realizarse, y del número de restricciones a verificar. En este<br />
caso el número de ambos factores es muy bajo, de los 24 trenes, 16 tienen un recorrido<br />
muy corto, por lo tanto generan muchas menos restricciones que los 8 restantes. De
222 6. Evaluación Computacional<br />
estos 8 trenes restantes no todos comparten el mismo intervalo de tiempo en <strong>la</strong><br />
línea, por lo tanto el número de restricciones binarias también es menor. En esta<br />
instancia no se realiza ningún backtracking ya que en ningún momento se incumple<br />
<strong>la</strong> restricción sobre número de vías, ni siquiera durante los horarios de cierre, una<br />
vez más motivado por el bajo número de trenes por cada instante de tiempo en <strong>la</strong><br />
línea.<br />
En menos de un segundo se obtiene un retraso promedio de 3,5 %, <strong>la</strong> solución<br />
óptima se obtiene en 3 minutos y es igual a 3 %.<br />
Figura 6.6: Instancia del Problema OPT de baja complejidad<br />
Si modificamos <strong>la</strong> infraestructura de tal forma que en <strong>la</strong> línea solo existan tramos<br />
con vía doble, entonces obtendríamos un retraso igual a cero en <strong>la</strong> primera iteración<br />
y por supuesto esta sería <strong>la</strong> solución óptima. Esto es debido a que en esta instancia<br />
no existe posibilidad de conflicto entre los trenes del mismo sentido, ya que el número<br />
de trenes del mismo sentido por unidad de tiempo es muy bajo, entonces al aumentar<br />
el número de vías en los tramos también eliminamos <strong>la</strong> posibilidad de conflicto entre
6.7. Casos particu<strong>la</strong>res y descripción de <strong>la</strong>s Soluciones obtenidas 223<br />
los trenes con sentidos opuestos. Por lo tanto, no existen restricciones disyuntivas,<br />
solo restricciones que son satisfechas con <strong>la</strong> propagación del instante de salida inicial<br />
de cada tren, lo cual es obtenido en <strong>la</strong> primera solución, como solo existe una posible<br />
solución, esta es <strong>la</strong> óptima.<br />
6.7.2. Alta Densidad de tráfico en <strong>la</strong> Línea Ferroviaria<br />
Al igual que en <strong>la</strong> instancia anterior, por cada tren se indica cuál es el instante<br />
de salida que se desea parta cada tren de su estación origen. En <strong>la</strong> Figura 6.8, del<br />
conjunto de trenes fueron los seña<strong>la</strong>dos por tx, ty y tz los que no han podido salir<br />
en dicho instante. El tren tx ha sido retrasado un minuto, ty 27 minutos y tz 11<br />
minutos. En el caso de tx este retraso es asignado <strong>para</strong> que satisfaga el tiempo de<br />
expedición igual a un minuto con el tren que viaja en sentido ida y llega antes que<br />
el a su estación de origen.
224 6. Evaluación Computacional<br />
14104 14101<br />
14108 14106 14105 14103 14102 14117 14100 Dep.<br />
14107<br />
14228 14205 D14204 14203 14202 14227 14201 D14200 14114 14113 14112 14111 14109<br />
14234 1423 14233 1422 14115 14110<br />
14206<br />
14207 14208<br />
14221 14219 14218 14216 14213 14210 14209<br />
14230 14231 14237 14220 14217 14236 14215 14214 14212 14211 14232 14235<br />
14223<br />
,<br />
,<br />
,<br />
,<br />
,<br />
,<br />
,<br />
,<br />
,<br />
,<br />
,<br />
,<br />
,<br />
,<br />
,<br />
,<br />
24 76 66 53 57 61 52 74 11 120 Km.<br />
59<br />
,<br />
,<br />
,<br />
,<br />
,<br />
,<br />
,<br />
,<br />
,<br />
261 23 34 449 21 108 07 58 42 56 37 76 49 87 95 65 73<br />
24<br />
,<br />
,<br />
,<br />
,<br />
,<br />
,<br />
,<br />
,<br />
,<br />
,<br />
,<br />
,<br />
,<br />
,<br />
,<br />
,<br />
,<br />
,<br />
,<br />
19 13 24 05 08 06 23 33 64 19 23 32 215 38 31 19 78 09 18<br />
4<br />
,<br />
,<br />
,<br />
,<br />
10<br />
D/U<br />
AM−<br />
Bloqueo<br />
232324 237<br />
Vías<br />
Andén<br />
00 24 45 22 45 06 00 00 00 24 45 23 45 11 00 00 00 02 00 00 00 24 00 00 00 24 00 22 00 14 00 00<br />
: - : ; : - : : - : ; : - : : - : : - : : - : ; : - : Cierre<br />
323232123213232327<br />
Figura 6.7: Datos de <strong>la</strong> Línea Ferroviaria 14100-14223 54232534<br />
En <strong>la</strong> Figura 6.8 se seña<strong>la</strong> con <strong>la</strong> etiqueta Día un tramo que posee una so<strong>la</strong> vía<br />
AC Tipo<br />
AC
6.7. Casos particu<strong>la</strong>res y descripción de <strong>la</strong>s Soluciones obtenidas 225<br />
Figura 6.8: Solución <strong>para</strong> una instancia<br />
Día<br />
2<br />
de circu<strong>la</strong>ción y se hal<strong>la</strong> ocupado en un mismo instante de tiempo, por dos trenes<br />
Día y<br />
que viajan en sentidos opuestos. A simple vista podemos deducir que el horario de<br />
estos trenes no es factible ya que según <strong>la</strong> solución mostrada en <strong>la</strong> Figura se produce<br />
un choque entre los mismos. El método PBO considera entre otros atributos de cada<br />
t z<br />
x<br />
t<br />
t i<br />
t<br />
tren, los días de circu<strong>la</strong>ción asignado a cada uno. Considerando nuevamente a los dos<br />
trenes que participan en el conflicto seña<strong>la</strong>do por <strong>la</strong> etiqueta Día, el tren que viaja<br />
en sentido vuelta tiene como días de circu<strong>la</strong>ción lunes, martes, miércoles, jueves,<br />
viernes y domingo. El tren que viaja en sentido ida tiene como días de circu<strong>la</strong>ción<br />
sábado. Teniendo en cuenta los días que circu<strong>la</strong> cada uno, ninguno de estos trenes<br />
coincidirá en el tramo seña<strong>la</strong>do, por lo tanto el intervalo de tiempo asignado a cada<br />
uno en dicho tramo es válido con respecto a <strong>la</strong> restricción de cruce. Sin embargo, el<br />
mismo tren con sentido ida y el tren seña<strong>la</strong>do como ty sí tienen un día en común,<br />
ya que ty circu<strong>la</strong> todos los días de <strong>la</strong> semana. Es por ello que debe esperar en <strong>la</strong><br />
estación 14216 hasta que el tramo que sigue sea liberado. Tampoco tienen días en<br />
común los trenes que viajan en el mismo sentido y están seña<strong>la</strong>dos por <strong>la</strong> etiqueta
226 6. Evaluación Computacional<br />
14219 14220 14218<br />
14221 14231 14237<br />
14223 14230<br />
14.11<br />
14.19 14.35 14.25 1 t 3<br />
y t min. 5 Recepción 14.16 14.22 14.18<br />
5 t t<br />
=<br />
Figura 6.9: Causa del retraso del tren ty<br />
Falta<br />
Día 2. El horario asignado a ambos es el mismo en los mismo tramos. Esto sería un<br />
14.30 14.10<br />
alcance si ambos tuvieran algún día en común.<br />
En <strong>la</strong> secuencia de Figuras 6.9, 6.10, 6.11, 6.12 y 6.13 se describe el por qué del<br />
retraso final del tren ty con respecto al instante de salida inicial deseado. El instante<br />
de salida inicial deseado <strong>para</strong> el tren ty ha sido establecido en 14:10 hs. Finalmente<br />
en <strong>la</strong> solución obtenida por el método PBO al cabo de un minuto de ejecución,<br />
se obtiene el instante 14:37 hs. En ésta solución es obtenido dicho valor porque se<br />
le asigna mayor prioridad a los trenes t1, t3 y t5 frente al tren ty en los tramos<br />
14218 → 14219, 14219 → 14221 y 14221 → 14223, lo cual hace que siempre que<br />
exista un conflicto entre ty y cualquiera de estos trenes en dichos tramos, el tren que<br />
deba esperar sea ty.<br />
En <strong>la</strong> Figura 6.9 al intentar sacar a ty a <strong>la</strong>s 14:10 hs. de su estación origen,<br />
se incumple <strong>la</strong> restricción sobre tiempo de recepción entre t1 y ty, ya que al ser<br />
t1 un tren tipo mercancías, ty debe llegar cinco minutos después a <strong>la</strong> estación en<br />
conflicto, y no dos minutos como sucede en el caso mostrado en <strong>la</strong> Figura 6.9. Este<br />
incumplimiento es re<strong>para</strong>do por retrasar 3 minutos <strong>la</strong> salida inicial de ty, situación<br />
mostrada en <strong>la</strong> Figura 6.10. En este caso el problema aparece con t3, ya que solo<br />
existe 1 minuto de diferencia entre <strong>la</strong> llegada de ty y <strong>la</strong> llegada de t3, lo cual no es<br />
14.40
6.7. Casos particu<strong>la</strong>res y descripción de <strong>la</strong>s Soluciones obtenidas 227<br />
14219 1421814.11<br />
14231<br />
14.19 14.35 14.28<br />
14.21<br />
14.13 1 t<br />
=<br />
t t 5 3<br />
Recepción Falta 3 14.22 min. 14.16 Recepción<br />
<strong>para</strong> inicial salida en Retraso t satisfacer TiempodeRecepción tren con tOK y<br />
14220 14221 14237<br />
Figura 6.10: Causa del retraso del tren ty 14.30 14.10 14223 14230 1<br />
14.11<br />
14230<br />
14219 14220 14218<br />
14221 14231 14237<br />
14223<br />
1 t 3 t 5 t 14.32<br />
tOK Recepción y X Cruce 14.22 14.16<br />
31<br />
con tren Recepción de Tiempo , con tren Recepción de Tiempo satisfacer <strong>para</strong> inicial salida en Retraso t 14.17<br />
14.19 14.35<br />
14.25<br />
Figura 6.11: Causa del retraso del tren ty<br />
14.30 14.10<br />
14.40<br />
14.40
228 6. Evaluación Computacional<br />
14.11<br />
14221<br />
14219 14220 14218<br />
14231 14237<br />
14223 14230<br />
14.19 14.35<br />
14.39 t t 5 t 1 3 14.22 y 14.16 t<br />
con tren Cruce , con tren Recepción de Tiempo , con tren Recepción de Tiempo satisfacer <strong>para</strong> inicial salida en Retrasot t31<br />
3 14.31<br />
Figura 6.12: Causa del retraso del tren ty<br />
14.30 14.10<br />
14219 14220 14218<br />
14221 14231 14237<br />
14223 14230<br />
14.11<br />
t t 14.35 14.19<br />
14.16 14.22 3 1<br />
5 t14.40<br />
Recepción<br />
Figura 6.13: Causa del retraso del tren ty<br />
14.30 14.10<br />
OK<br />
3 31 con tren Recepción de Tiempo , con tren Cruce , con tren Recepción de Tiempo , con tren Recepción de Tiempo satisfacer <strong>para</strong> inicial salida en Retraso t t t5<br />
14.37<br />
14.46<br />
= Recepción Falta 5min.<br />
14.40<br />
14.45
6.7. Casos particu<strong>la</strong>res y descripción de <strong>la</strong>s Soluciones obtenidas 229<br />
suficiente. Al ser ty un tren tipo viajero requiere tres minutos de diferencia entre<br />
su llegada y <strong>la</strong> llegada de un siguiente tren a <strong>la</strong> misma estación. Por lo tanto debe<br />
volver a retrasar su salida lo suficiente como <strong>para</strong> llegar 3 minutos después que t3 a<br />
dicha estación. Esta situación es mostrada en <strong>la</strong> Figura 6.11. Nuevamente aparece<br />
un conflicto, un cruce con t3, esto es subsanado según muestra <strong>la</strong> Figura 6.12. Sin<br />
embargo ty vuelve a incumplir <strong>la</strong> restricción sobre tiempo de recepción, esta vez con<br />
t5, en lugar de existir 3 minutos de diferencia entre sus instantes de llegada, existe<br />
tan solo un minuto, lo cual no es factible. Esto hace que ty deba ser retrasado lo<br />
suficiente como <strong>para</strong> llegar cinco minutos después que haya llegado t5 a <strong>la</strong> estación<br />
en <strong>la</strong> cual se ha producido el conflicto. Son cinco minutos en lugar de tres, porque t5<br />
es un tren tipo mercancías. Por cada tipo de tren se <strong>para</strong>metriza el valor asignado<br />
al tiempo de recepción , expedición, sucesión automática, etc.<br />
6.7.3. Resultados cuando se requiere Periodicidad en Salidas<br />
En los ejemplos previos, se han considerado instancias del problema OPT en los<br />
cuales no ha sido requerido que trenes consecutivos partan de sus correspondientes<br />
estaciones iniciales o de determinadas estaciones intermedias satisfaciendo un deter-<br />
minado periodo de tiempo entre sus respectivas salidas. Es decir <strong>la</strong> restricción C15<br />
- Salidas Periódicas definida en el capítulo 3, no ha formado parte del conjunto de<br />
restricciones considerado <strong>para</strong> resolver dichas instancias.<br />
En esta subsección mostramos resultados correspondientes a una instancia del<br />
problema OPT en <strong>la</strong> cual si es requerido que el horario asignado a los trenes de <strong>la</strong><br />
instancia considerada satisfaga además del conjunto de restricciones consideradas<br />
en instancias previas, <strong>la</strong> restricción C15.<br />
Consideramos un conjunto de 33 trenes, todos con el mismo recorrido, aunque<br />
una parte de ellos en un sentido y el resto en el sentido opuesto. La línea utilizada<br />
por estos trenes está formada por 32 dependencias, los tramos pertenecientes a<br />
<strong>la</strong> línea constan tanto de vía única como de vía doble, y parte de <strong>la</strong> línea utiliza<br />
bloqueo manual. Mostraremos los resultados obtenidos al resolver esta instancia del<br />
problema en menos de 1 segundo de ejecución. Se realizaron cuatro pruebas con el<br />
mismo conjunto de trenes y <strong>la</strong> misma línea ferroviaria. La diferencia entre <strong>la</strong>s mismas<br />
consistió en <strong>la</strong> cantidad de tiempo requerido como periodo de tiempo entre <strong>la</strong>s salidas
230 6. Evaluación Computacional<br />
Figura 6.14: Periodo de tiempo entre salidas iniciales consecutivas: 20 minutos<br />
iniciales de los trenes consecutivos pertenecientes a <strong>la</strong> instancia considerada.<br />
En <strong>la</strong> Figura 6.14 se muestra el resultado obtenido cuando el periodo de tiempo<br />
entre <strong>la</strong>s salidas iniciales de los trenes consecutivos debe ser igual a 20 minutos.<br />
Como puede verse el método PBO ha asignado el instante de salida del primer tren<br />
que viaja en sentido vuelta, posterior al instante de llegada del último tren que viaja<br />
en sentido ida. Es importante notar que se había indicado como instante de salida<br />
deseado <strong>para</strong> el primer tren que viaja en sentido vuelta, el instante 06:26 hs. Como<br />
puede observarse en <strong>la</strong> solución proporcionada por PBO en <strong>la</strong> Figura 6.14, el primer<br />
tren que viaja en sentido vuelta parte de su estación origen en el instante 13:05 hs.<br />
Este retraso con respecto al instante de salida deseado es debido a que el método<br />
no ha encontrado un instante de salida anterior al asignado que permita que cada<br />
par de trenes consecutivos salgan posteriormente satisfaciendo, además de todas <strong>la</strong>s<br />
restricciones de OPT, el requerimiento de que debe mantener un periodo de tiempo<br />
igual de 20 minutos con respecto a <strong>la</strong> salida del tren previo.<br />
Al aumentar el periodo de tiempo requerido entre <strong>la</strong>s salidas iniciales de trenes
6.7. Casos particu<strong>la</strong>res y descripción de <strong>la</strong>s Soluciones obtenidas 231<br />
Figura 6.15: Periodo de tiempo entre salidas iniciales consecutivas: 30 minutos<br />
consecutivos de 20 minutos a 30 minutos, el método PBO obtiene el resultado<br />
mostrado en <strong>la</strong> Figura 6.15. En este caso sí ha sido posible asignar los instante<br />
de salida deseados, 06:12 hs. <strong>para</strong> el primer tren que parte de <strong>la</strong> estación origen<br />
con sentido ida y 06:26 hs. <strong>para</strong> el primer tren que parte de <strong>la</strong> estación origen con<br />
sentido vuelta.<br />
El retraso promedio disminuye al aumentar el periodo de tiempo a 40 minutos,<br />
ya que debido al instante de salida deseado <strong>para</strong> los primeros trenes, y al periodo<br />
aumentado en 40 minutos, el intervalo de tiempo entre una salida y otra aumenta,<br />
por lo cual los tramos son ocupados por menos trenes por unidad de tiempo, en<br />
consecuencia existen menos conflictos por un mismo tramo. Si se com<strong>para</strong>n los<br />
resultados obtenidos previamente con el periodo de tiempo igual a 30 minutos y el<br />
resultado obtenido con el periodo igual a 40 minutos en <strong>la</strong> Figura 6.16 se observa<br />
que el número de conflictos es diferente.<br />
Finalmente, en <strong>la</strong> Figura 6.17 se muestra <strong>la</strong> solución obtenida cuando el periodo<br />
de tiempo que debe existir entre <strong>la</strong>s salidas iniciales de los trenes consecutivos es
232 6. Evaluación Computacional<br />
Figura 6.16: Periodo de tiempo entre salidas iniciales consecutivas: 40 minutos<br />
igual a 60 minutos.<br />
6.7.4. Simu<strong>la</strong>ción de cambios de infraestructura<br />
En esta sub sección consideramos una nueva instancia del problema OPT en <strong>la</strong><br />
cual se desean agregar 28 nuevos trenes en el intervalo horario de 00:00 a 08:00 hs.<br />
El recorrido de los trenes comprende estaciones de <strong>la</strong> línea ferroviaria 50200-50300.<br />
En <strong>la</strong> Figura 6.18 se muestra el resultado obtenido por el método PBO en el<br />
primer minuto de ejecución <strong>para</strong> <strong>la</strong> instancia considerada en esta sub sección. En<br />
<strong>la</strong> misma figura se seña<strong>la</strong>n <strong>la</strong>s principales características de <strong>la</strong> línea causantes de<br />
<strong>la</strong>s <strong>para</strong>das técnicas más pronunciadas en <strong>la</strong> solución obtenida. El retraso promedio<br />
obtenido en este resultado es de 64,2 %.<br />
Las estaciones 50204 y 50205 seña<strong>la</strong>das con un rectángulo formado por línea<br />
de puntos, constan de una so<strong>la</strong> vía disponible, <strong>la</strong> otra vía se hal<strong>la</strong> en re<strong>para</strong>ción,<br />
por lo tanto ningún tren puede utilizar<strong>la</strong>. Debido a que no se pueden gestionar
6.7. Casos particu<strong>la</strong>res y descripción de <strong>la</strong>s Soluciones obtenidas 233<br />
Figura 6.17: Periodo de tiempo entre salidas iniciales consecutivas: 60 minutos<br />
cruces ni alcances en dichas estaciones, esos cruces o alcances son llevados a <strong>la</strong>s<br />
estaciones precedentes, lo cual genera mayores <strong>para</strong>das técnicas. Vea <strong>para</strong>da técnica<br />
en <strong>la</strong> estación 50206 de <strong>la</strong> Figura 6.18.<br />
El círculo de <strong>la</strong> Figura 6.18 seña<strong>la</strong> otra de <strong>la</strong>s causas que generan un mayor<br />
retraso en <strong>la</strong> solución obtenida. En esos tramos seña<strong>la</strong>dos hay mayor cantidad de<br />
trenes por instante de tiempo. Al ser tramos de vía única, esto obliga a que algunos<br />
de ellos deban realizar <strong>para</strong>das técnicas necesariamente. El hecho de ser más de dos<br />
trenes los que compiten por un mismo tramo, favorece a una mayor <strong>para</strong>da técnica<br />
por parte del tren que espera <strong>la</strong> liberación del tramo.<br />
También seña<strong>la</strong>mos el tipo de bloqueo existente en los tramos de <strong>la</strong> línea 50200-<br />
50300. Como puede observarse, el tipo de bloqueo manual está asignado en los<br />
tramos que contienen a <strong>la</strong>s estaciones cuyo número de vías es igual a uno. Esto hace<br />
que <strong>la</strong> capacidad de estos tramos sea aún menor, ya que además del hecho que <strong>la</strong>s<br />
estaciones que forman parte de dichos tramos solo pueden gestionar un tren a <strong>la</strong> vez,<br />
se suma el hecho de que los tramos tampoco pueden ser ocupados por más de un tren<br />
aún cuando estos viajen en el mismo sentido. Ya que dado dos trenes consecutivos,
234 6. Evaluación Computacional<br />
Congestión<br />
Mayor<br />
Figura 6.18: Causa del retraso del tren ty<br />
Bloqueo Automático Bloqueo<br />
Manual 1Vía 1Bloqueo Automático<br />
el segundo en partir, deberá esperar a que el primero llegue a <strong>la</strong> siguiente estación<br />
abierta, antes de que este pueda salir de <strong>la</strong> estación que inicia el tramo con bloqueo<br />
manual.<br />
En esta sub sección deseamos indicar particu<strong>la</strong>rmente dos características del<br />
método PBO, una de el<strong>la</strong>s es que produce resultados en forma eficiente aún cuando<br />
<strong>la</strong>s características de <strong>la</strong> mal<strong>la</strong> obligan a que el método deba realizar un gran número<br />
de backtrackings hasta lograr obtener en cada iteración un conjunto de horarios<br />
factible. Aún así se obtiene en el primer minuto de ejecución una solución de alta<br />
calidad. Otra de <strong>la</strong>s características que deseamos resaltar en esta sub sección es <strong>la</strong><br />
capacidad de simu<strong>la</strong>r en poco tiempo diferentes características de infraestructura<br />
<strong>para</strong> una misma línea ferroviaria y un mismo conjunto de trenes. Lo cual permite<br />
obtener una serie de conclusiones acerca de <strong>la</strong> infraestructura en muy poco tiempo.<br />
Como ejemplo hemos modificado determinadas características de <strong>la</strong> línea 50200-<br />
50300 original. Hemos elevado a dos el número de vías en <strong>la</strong>s estaciones seña<strong>la</strong>das por<br />
el rectángulo de línea de puntos, hemos aumentando en uno el número de vías en los<br />
tramos entre <strong>la</strong>s estaciones 50201 y 50203, seña<strong>la</strong>dos por el círculo de línea de puntos<br />
en <strong>la</strong> Figura 6.19, y finalmente hemos modificado el tipo de bloqueo de manual a<br />
automático en el tramo seña<strong>la</strong>do en <strong>la</strong> misma figura. Con estas modificaciones se ha<br />
Vía<br />
Unica<br />
Vía
6.8. Algunos ejemplos de instancias complejas 235<br />
Doble<br />
Vía<br />
Figura 6.19: Causa del retraso del tren ty<br />
obtenido un retraso promedio igual a 39,2 %.<br />
2Vías 2 Automático Bloqueo Vías<br />
En <strong>la</strong> Figura 6.19 se observa el resultado obtenido en forma gráfica. En dicha<br />
figura se puede observar cómo <strong>la</strong> capacidad de los tramos aumenta al hacer que<br />
todos ellos tengan un bloqueo automático, al igual que permiten una menor <strong>para</strong>da<br />
técnica <strong>para</strong> los trenes que compiten por lo tramos entre <strong>la</strong>s estaciones 50204 y<br />
50205. Se puede ver que esto ha influido de gran forma en <strong>la</strong> disminución del retraso<br />
promedio, ya que los trenes aprovechan dichas estaciones <strong>para</strong> gestionar en el<strong>la</strong>s los<br />
cruces. Son tramos de mucho tráfico, por lo tanto es importante que dichas estaciones<br />
estén habilitadas <strong>para</strong> recibir a más de un tren a <strong>la</strong> vez. Por lo menos a dos.<br />
6.8. Algunos ejemplos de instancias complejas<br />
Algunos ejemplos de casos de estudio utilizados son mostrados a continuación.<br />
En <strong>la</strong> Figura 6.20 se proporciona un caso en el que se desea obtener el horario de<br />
los trenes que circu<strong>la</strong>n por una línea ferroviaria en <strong>la</strong> cual exiten tanto trenes ca-<br />
denciados (entre todas <strong>la</strong>s salidas consecutivas debe existir un determinado periodo<br />
de tiempo) como de trenes no cadenciados. Se puede indicar al método de solución<br />
<strong>la</strong> prioridad de los mismos. En este caso, se ha indicado que los trenes cadenciados
236 6. Evaluación Computacional<br />
deben tener mayor prioridad que el resto de trenes, por lo tanto al realizar <strong>la</strong> orde-<br />
nación de variables, aquel<strong>la</strong>s que representan sus instantes de salida son <strong>la</strong>s primeras<br />
en ser seleccionadas. La línea ferroviaria está compuesta en su totalidad por tramos<br />
de vía doble, lo que favorece a <strong>la</strong> alta densidad de trenes en <strong>la</strong> misma.
6.8. Algunos ejemplos de instancias complejas 237<br />
Figura 6.20: Línea ferroviaria compuesta por Trenes Cadenciados y Trenes sin Ca-<br />
denciar de diferentes operadores
238 6. Evaluación Computacional<br />
En <strong>la</strong> Figura 6.21, no toda <strong>la</strong> línea está formada por tramos de vía doble. Una<br />
parte de <strong>la</strong> misma consta de vía única. Esto además de hacer que aparezcan nuevos<br />
conflictos, debido a <strong>la</strong> competencia entre trenes que viajan en sentido opuesto, hace<br />
que el número de soluciones factibles sea mayor, que <strong>la</strong>s que habrían si toda <strong>la</strong> línea<br />
fuera únicamente de vía doble. Com<strong>para</strong>ndo los ejemplos de <strong>la</strong>s Figuras 6.20 y 6.21,<br />
podemos indicar que en <strong>la</strong> primera se emplea mayor tiempo <strong>para</strong> obtener cada solu-<br />
ción, ya que consta de mayor número de variables que asignar y de restricciones que<br />
verificar, sin embargo el número de soluciones factibles <strong>para</strong> <strong>la</strong> misma es menor, ya<br />
que al no tener tramos con vía única, el conflicto debido a los cruces no está pre-<br />
sente. Por lo tanto, se requieren menor número de iteraciones <strong>para</strong> explorar mayor<br />
espacio de soluciones.
6.8. Algunos ejemplos de instancias complejas 239<br />
Figura 6.21: Línea con <strong>la</strong> mayor parte de sus tramos en vía doble
240 6. Evaluación Computacional<br />
El ultimo ejemplo que mostramos en <strong>la</strong> Figura 6.22, consta únicamente de trenes<br />
cadenciados. Cada grupo de trenes que debe satisfacer una cadencia se superpone<br />
sobre el otro. No todos comparten días de circu<strong>la</strong>ción, y <strong>la</strong> línea ferroviaria consta<br />
de tramos con vía doble. En este ejemplo <strong>la</strong> principal complicación consiste en<br />
satisfacer un periodo de tiempo determinado entre <strong>la</strong>s salidas consecutivas de un<br />
grupo de trenes, ya que al tener uno de ellos un conflicto con otro tren cualquier del<br />
problema, se debe deshacer el horario del resto de trenes del grupo como <strong>para</strong> que<br />
<strong>la</strong> frecuencia de salida se siga satisfaciendo.
6.8. Algunos ejemplos de instancias complejas 241<br />
Figura 6.22: Trenes Cadenciados superpuestos
242 6. Evaluación Computacional<br />
6.9. Estudio sobre <strong>la</strong> Robustez de Soluciones<br />
Una asignación factible de horarios, ajustada a determinados criterios de calidad,<br />
muchas veces debe ser modificada durante su ejecución debido a incidencias que se<br />
presentan y que no pueden ser previstas durante su p<strong>la</strong>nificación.<br />
Una propiedad deseable <strong>para</strong> los horarios obtenidos es que estas modificaciones<br />
sean <strong>la</strong>s mínimas, produciéndose <strong>la</strong> menor desviación con respecto a <strong>la</strong> solución<br />
originalmente obtenida. Consideramos que cuanto menor sea <strong>la</strong> modificación en una<br />
solución debida a una incidencia, mayor es su robustez.<br />
Una forma de obtener horarios robustos podría ser incorporar como un criterio<br />
más de <strong>la</strong> función objetivo <strong>la</strong> medida de robustez de cada solución. Se han publica-<br />
do trabajos que proponen formas de medir, lo que ellos consideran robustez de un<br />
scheduling de determinadas características. Así, <strong>la</strong> métrica flex seq consiste en contar<br />
el número de pares de actividades de <strong>la</strong> solución que no están recíprocamente re<strong>la</strong>-<br />
cionadas (esto es: no están ordenadas una con respecto a <strong>la</strong> otra por restricciones<br />
de precedencia en POS [100]). Esta métrica provee un análisis de <strong>la</strong> configuración<br />
de <strong>la</strong> solución. El razonamiento que se utiliza <strong>para</strong> ésta medida es que cuando dos<br />
actividades no están re<strong>la</strong>cionadas es posible mover una sin tener que mover <strong>la</strong> otra<br />
[100].<br />
La métrica flexseq ha sido definida en el trabajo de Aloulou y Portmann [3]<br />
con el objetivo de medir <strong>la</strong> flexibilidad de una solución <strong>para</strong> un determinado tipo<br />
de problema. En el trabajo de Aloulou y Portmann se considera el problema de<br />
scheduling con una so<strong>la</strong> máquina con llegada dinámica de trabajos y <strong>la</strong> demora<br />
total y el makespan como funciones objetivo. La máquina está sujeta a trastornos<br />
re<strong>la</strong>cionados a <strong>la</strong> llegada tardía de material y averías en <strong>la</strong> misma. Se ha propuesto<br />
una aproximación proactiva-reactiva <strong>para</strong> tratar con posibles perturbaciones. En <strong>la</strong><br />
fase proactiva en lugar de proveer un schedule encargado de tomar decisiones, se<br />
presenta un conjunto de schedules predictivos. Este conjunto está caracterizado por<br />
un orden parcial de trabajos y un tipo de schedules asociados, que en éste trabajo<br />
se trata de schedules semi activos. Esto permite disponer de alguna flexibilidad en<br />
<strong>la</strong> secuenciación de trabajos y flexibilidad en el tiempo que puede ser usada on-line<br />
por el algoritmo reactivo <strong>para</strong> cubrir contra trastornos no previstos.<br />
Una solución es más flexible a medida que aumente el número de schedules
6.9. Estudio sobre <strong>la</strong> Robustez de Soluciones 243<br />
correspondientes a <strong>la</strong> solución [3]. Esto quiere decir que al tener muchos schedules,<br />
sería posible disponer en forma on-line, cada vez que una decisión tiene que ser<br />
tomada, de más de una alternativa. Esta flexibilidad, l<strong>la</strong>mada flexibilidad en <strong>la</strong><br />
secuenciación de trabajos (job sequencing), puede ser medida por el numero de<br />
diferentes schedules factibles con respecto al orden parcial. Sin embargo, el problema<br />
de calcu<strong>la</strong>r este numero es #P-complete. Es por ello que [3] propone otra medida<br />
flex seq igual al número de ejes no orientados en el grafo transitivo representando el<br />
orden parcial.<br />
Por otro <strong>la</strong>do, <strong>la</strong> métrica fldt es tomada del trabajo de Cesta, Oddi & Smith<br />
[25] y está basada en <strong>la</strong> holgura temporal asociada a cada actividad:<br />
fldt = <br />
h=l<br />
|d(eah , sal ) − d(sal , eah )|<br />
H × Nact × (Nact − 1)<br />
(6.9.1)<br />
En 6.9.1, H es el horizonte de tiempo del problema, Nact es el número de actividades,<br />
y d(tp1, tp2) es <strong>la</strong> distancia entre dos instantes de tiempo. Esta métrica caracteriza<br />
<strong>la</strong> fluidez de una solución. Esto es: <strong>la</strong> habilidad <strong>para</strong> absorber variación temporal en<br />
<strong>la</strong> ejecución de actividades. Cuanto más alto sea el valor de fldt, menor es el riesgo<br />
de un efecto dominó.<br />
En [25], el horizonte H es computado por <strong>la</strong> siguiente expresión:<br />
H = (Njobs − 1) × pbk + Nres<br />
i=1 pi (6.9.2)<br />
<strong>la</strong> cual ha sido adaptada a partir del trabajo de Cheng & Smith [26], pbk es el tiempo<br />
de procesamiento mínimo de <strong>la</strong> actividad en el recurso cuello de botel<strong>la</strong>, y pi es el<br />
tiempo de procesamiento mínimo de <strong>la</strong> actividad en el recurso ri. El recurso cuello<br />
de botel<strong>la</strong> es el recurso con máximo valor de <strong>la</strong> suma del tiempo de procesamiento<br />
mínimo de <strong>la</strong>s actividades que piden el recurso.<br />
En Cesta et al. se considera una c<strong>la</strong>se extendida de problemas de scheduling<br />
donde los recursos tienen capacidad finita <strong>para</strong> soportar más de una actividad.<br />
En el trabajo realizado por Vromans, Dekker & Kroon [117] consideran que el<br />
uso compartido de <strong>la</strong> misma infraestructura por diferentes servicios ferroviarios, con<br />
diferentes orígenes y diferentes destinos, diferentes velocidades y diferentes patrones<br />
de <strong>para</strong>das, es probablemente <strong>la</strong> principal razón <strong>para</strong> <strong>la</strong> propagación de retrasos a<br />
través de <strong>la</strong> red. En [117] se investiga el efecto de <strong>la</strong> heterogeneidad del horario en
244 6. Evaluación Computacional<br />
<strong>la</strong> fiabilidad del sistema ferroviario. Se considera que el tráfico ferroviario es het-<br />
erogéneo cuando los trenes tienen grandes diferencias en <strong>la</strong> velocidad promedio por<br />
tramo, resultante del tiempo de recorrido y de los tiempos de <strong>para</strong>da. La hetero-<br />
geneidad usualmente conduce a muchos tiempos de sucesión pequeños, los cuales<br />
pueden incrementar <strong>la</strong> propagación de retrasos en <strong>la</strong>s operaciones. En éste trabajo<br />
se indica que cuando se investiga heterogeneidad, tramos con vía doble son más<br />
relevantes que tramos con vía única.<br />
Una importante desventaja de medir tiempos de sucesión en únicamente una<br />
dependencia es que esto no dice nada acerca de <strong>la</strong> conducta de los trenes en el tramo<br />
que rodea a <strong>la</strong> dependencia. Por lo tanto se considera los tiempos de sucesión más<br />
pequeños entre dos trenes consecutivos sobre un cierto tramo en lugar de considerar<br />
una so<strong>la</strong> dependencia. Cuando los trenes sobre un cierto tramo son completamente<br />
homogéneos, entonces <strong>la</strong> suma de los tiempos de sucesión más pequeños en éste<br />
tramo es igual al ciclo de tiempo (ciclo de tiempo se l<strong>la</strong>ma a <strong>la</strong> cantidad de tiempo<br />
que pasa hasta que el conjunto de horarios se vuelva a repetir, por ejemplo: 24<br />
horas).<br />
Esto conduce a <strong>la</strong> primera medida de heterogeneidad propuesta por [117], es<br />
definida como sigue:<br />
con h − i<br />
SSHR = n<br />
1<br />
i=1 h − i<br />
siendo el tiempo de sucesión más pequeño entre los trenes consecutivos i e<br />
i + 1 en el tramo considerado.<br />
= 1<br />
=<br />
= + + + = 91 ...<br />
Figura 6.23: Ejemplo de aplicación de <strong>la</strong> métrica SSHR en un tramo<br />
SSHR<br />
9 9 distancia 9 21 21 21 21<br />
hora 1 t 2 t 3 hora por trenes frecuencia4 hora ciclo1 444 , 0 91 91 91 9<br />
t 4<br />
t
6.9. Estudio sobre <strong>la</strong> Robustez de Soluciones 245<br />
=<br />
=<br />
= + + + = 21 2<br />
28 distancia2 1 2 t 3 2 28 t<br />
trenes frecuencia4 hora ciclo14<br />
t<br />
21 21 21 SSHR 28 28<br />
Figura 6.24: Ejemplo de aplicación de <strong>la</strong> métrica SSHR en un tramo porhora<br />
1hora<br />
Según <strong>la</strong> medida SSHR <strong>la</strong> solución mostrada en <strong>la</strong> Figura 6.23 es menos het-<br />
4 t t<br />
erogénea que <strong>la</strong> solución mostrada en <strong>la</strong> Figura 6.24.<br />
Una desventaja de <strong>la</strong> medida SSHR es que los tiempos de sucesión son penaliza-<br />
dos tan duramente en <strong>la</strong> salida como en <strong>la</strong> llegada, aunque según [117] el tiempo de<br />
sucesión en llegada es más importante cuando se trata de medir <strong>la</strong> heterogeneidad de<br />
una solución. La primera razón es que los retrasos en llegada suelen ser más grandes<br />
que los retrasos en salidas. La segunda razón es que los trenes más rapidos de <strong>la</strong>rga<br />
distancia pueden ser alcanzados por detrás por trenes de corta distancia hacia el<br />
final de una sección ferroviaria. Por lo tanto se propone una segunda medida, <strong>la</strong><br />
cual depende únicamente de los tiempos de sucesión en llegada entre cada par de<br />
trenes consecutivos, <strong>la</strong> Suma de los Recíprocos de Tiempos de Sucesión en Llegada<br />
(SAHR):<br />
siendo h A i<br />
SAHR = n<br />
1<br />
i=1 hA i<br />
el tiempo de sucesión en llegada entre los trenes i e i + 1.<br />
En esta línea de trabajo, el objetivo sería hal<strong>la</strong>r durante <strong>la</strong> construcción de un<br />
horario una medida que nos guíe hacia una solución que además tenga <strong>la</strong> propiedad<br />
de poder restablecerse cuanto antes ante una incidencia, o bien que sea posible mod-<br />
ificar el menor número de horarios de operaciones <strong>para</strong> subsanar ciertos trastornos<br />
que ocurran durante el desarrollo de una programación de horarios.<br />
Sin embargo, estas medidas resultan insuficientes cuando deseamos incorporar<strong>la</strong>s<br />
en el problema de asignación y optimización de horarios ferroviarios debido a que
246 6. Evaluación Computacional<br />
no tienen en cuenta muchas de <strong>la</strong>s restricciones, que deben ser consideradas en todo<br />
horario factible <strong>para</strong> este tipo de problema.
6.10. Conclusiones 247<br />
6.10. Conclusiones<br />
A partir de los resultados obtenidos durante <strong>la</strong> evaluación computacional de<br />
<strong>la</strong>s aproximaciones desarrol<strong>la</strong>das en este trabajo, indicamos que estas tienen <strong>la</strong>s<br />
siguientes propiedades:<br />
Evitan los óptimos locales. Los <strong>métodos</strong> desarrol<strong>la</strong>dos son capaces de explo-<br />
rar un amplio espacio de búsqueda, dentro del espacio de soluciones de cada<br />
caso de prueba proporcionado, así como también es capaz de obtener mejores<br />
resultados que una aproximación completamente aleatoria en menos cantidad<br />
de tiempo.<br />
Son eficientes. En un minuto de ejecución, PBO proporciona soluciones, cuyo<br />
coste es cercano al obtenido luego de varios minutos de ejecución donde se<br />
exploran otras varias regiones del espacio de búsqueda, lo cual indica que <strong>la</strong>s<br />
primeras regiones seleccionadas en el espacio de búsqueda, son aquel<strong>la</strong>s donde<br />
el criterio heurístico de PBO determina que hay mayor oportunidad de obtener<br />
un bajo coste <strong>para</strong> <strong>la</strong> función objetivo.<br />
Son adecuadas <strong>para</strong> casos reales. Los casos de prueba utilizados son casos<br />
reales del problema OPT. Un gran número de soluciones son factibles <strong>para</strong><br />
cada uno y <strong>la</strong> obtención de cada una implica <strong>la</strong> verificación de un conjunto<br />
de restricciones amplio y costoso en ciertos casos (número de vías en estación,<br />
horario de cierre, bandas de mantenimiento, demora por <strong>para</strong>da no prevista,<br />
ade<strong>la</strong>ntamientos). Estos factores obligan a buscar <strong>métodos</strong> que resuelvan el<br />
problema utilizando una heurística, basándose en el conocimiento del problema<br />
que se intenta resolver. Proponemos PBO como ese método por su <strong>eficiencia</strong><br />
tanto en tiempo como en optimalidad conseguida.<br />
Pueden ser empleadas como el núcleo de sistemas de soporte de decisiones.<br />
Se pueden implementar aplicaciones que utilicen el método PBO <strong>para</strong> obtener<br />
informaciones con respecto a <strong>la</strong> línea ferroviaria tal como su capacidad prácti-<br />
ca, robustez de <strong>la</strong> línea, mejoras que puedan obtenerse mediante cambios en<br />
<strong>la</strong> infraestructura, y otros datos que un experto pueda obtener mediante <strong>la</strong><br />
obtención de resultados <strong>para</strong>metrizando un determinado conjunto de trenes y<br />
una determinada línea ferroviaria. Esto es posible debido a que se consideran
248 6. Evaluación Computacional<br />
un conjunto de restricciones que permite obtener horarios que resultan útiles<br />
a nivel práctico en muy poco tiempo de ejecución.<br />
La <strong>eficiencia</strong> en <strong>la</strong> resolución de casos de prueba de diversa complejidad, han<br />
probado <strong>la</strong> validez de <strong>la</strong>s heurísticas de ordenación y poda, así como del proceso de<br />
verificación de restricciones. El resultado es un método que a pesar de <strong>la</strong> complejidad<br />
computacional del problema, proporciona resultados válidos y de calidad en un<br />
tiempo razonable, permitiendo su aplicación en un entorno real, como es el sector<br />
ferroviario.
Capítulo 7<br />
Conclusiones<br />
7.1. Introducción<br />
En este capítulo resumimos <strong>la</strong>s principales aportaciones realizadas en esta tesis<br />
en re<strong>la</strong>ción a los objetivos p<strong>la</strong>nteados inicialmente. Estos son:<br />
Definir formalmente el problema de generación y optimización de horarios<br />
ferroviarios, considerando su contexto real de aplicación. Identificación y for-<br />
malización del problema. Análisis de aproximaciones alternativas, de técnicas<br />
CSP y de programación matemática, <strong>para</strong> su modelización y resolución, con-<br />
cluyendo <strong>la</strong> viabilidad y adecuación de <strong>la</strong>s mismas.<br />
Diseñar y desarrol<strong>la</strong>r nuevos <strong>métodos</strong> de solución <strong>para</strong> el problema de gen-<br />
eración y optimización de horarios ferroviarios que permitan obtener soluciones<br />
optimizadas de forma eficiente. Diseño de nuevas heurísticas <strong>para</strong> poder obten-<br />
er <strong>la</strong>s mejores soluciones en el menor tiempo posible.<br />
Evaluación de los <strong>métodos</strong> desarrol<strong>la</strong>dos. Diseño y <strong>para</strong>metrización de los casos<br />
de prueba en base a instancias reales. Desarrollo un sistema software que<br />
incorpore los <strong>métodos</strong> diseñados permite su evaluación.<br />
Se destacarán <strong>la</strong>s principales contribuciones realizadas al respecto. En particu-<br />
<strong>la</strong>r, considerando el problema de asignar recursos en el tiempo teniendo en cuenta<br />
un conjunto de restricciones y criterios <strong>para</strong> evaluar <strong>la</strong> calidad de cada solución,<br />
proponemos en <strong>la</strong> sección 7.3, <strong>la</strong> robustez y <strong>la</strong> rep<strong>la</strong>nificación como líneas de trabajo<br />
249
250 7. Conclusiones<br />
futuro. Finalmente, en <strong>la</strong>s secciones 7.4 y 7.5 citamos <strong>la</strong>s publicaciones que han re-<br />
sultado del trabajo realizado <strong>para</strong> esta Tesis y <strong>la</strong>s conclusiones finales de <strong>la</strong> misma,<br />
respectivamente.<br />
7.2. Contribuciones de este trabajo<br />
En esta sección, proporcionamos <strong>la</strong>s principales aportaciones que hemos realizado<br />
a partir del trabajo llevado a cabo en esta Tesis. Las hemos c<strong>la</strong>sificado en dos<br />
aspectos: (i) el de <strong>la</strong> conceptualización y modelización del problema, y (ii) el del<br />
desarrollo y evaluación de un método computacional <strong>para</strong> resolverlo.<br />
A) Conceptualización y Modelización del Problema<br />
En esta Tesis hemos considerado un problema combinatorio, de optimización,<br />
cuyas características lo definen específicamente como un problema de scheduling<br />
tipo Job Shop. Sin embargo, ciertos requerimientos adicionales añaden mayor com-<br />
plejidad respecto al problema comúnmente estudiado, tanto en su modelización como<br />
en el proceso de solución.<br />
Es importante destacar que <strong>la</strong>s restricciones consideradas corresponden a un<br />
problema real, <strong>para</strong> el que no existía una modelización previa en <strong>la</strong> literatura.<br />
En el capítulo 3 se ha proporcionado <strong>la</strong> descripción formal del problema de<br />
generación y optimización de horarios <strong>para</strong> trenes (OPT), identificando los elementos<br />
que lo definen y formulándolo como un problema de Satisfacción y Optimización<br />
de Restricciones (CSOP). Se han descrito formalmente <strong>la</strong>s variables y sus dominios,<br />
<strong>la</strong>s restricciones y <strong>la</strong> función objetivo, mediante <strong>la</strong> cual se evalúa <strong>la</strong> calidad de cada<br />
solución.<br />
El resultado obtenido es una modelización formal de cada una de <strong>la</strong>s restricciones<br />
y de los componentes funcionales de <strong>la</strong> función objetivo que se consideran en esta<br />
especialización del problema.<br />
Hemos presentado un análisis del estudio realizado sobre aquel<strong>la</strong>s aproximaciones<br />
más referenciadas en <strong>la</strong> literatura, concluyendo que <strong>la</strong> programación matemática no<br />
resulta adecuada <strong>para</strong> mode<strong>la</strong>r el tipo de problema que consideramos en esta tesis.<br />
Ello es debido a <strong>la</strong> complejidad que supone expresar ciertas restricciones del conjunto
7.2. Contribuciones de este trabajo 251<br />
considerado, como por ejemplo:<br />
Capacidad limitada de un recurso. No podrán utilizarlo más de N operaciones<br />
simultáneamente, siendo N <strong>la</strong> máxima capacidad del recurso.<br />
Disminución de <strong>la</strong> capacidad de un recurso durante un determinado intervalo<br />
de tiempo, que puede ser debido a operaciones de mantenimiento, o avería.<br />
Margen de seguridad temporal entre <strong>la</strong>s entradas y <strong>la</strong>s salidas de <strong>la</strong>s opera-<br />
ciones a un determinado centro de trabajo.<br />
Dado dos operaciones que entran a un mismo centro de trabajo y utilizan los<br />
recursos en un mismo orden, debe ser gestionada en primer lugar <strong>la</strong> operación<br />
que entra primero, siempre y cuando <strong>la</strong> prioridad de <strong>la</strong> segunda operación no<br />
sea mayor.<br />
Diferenciar los recursos que pueden ser utilizados por más de una operación<br />
a <strong>la</strong> vez de aquellos que deben ser utilizados como máximo por una operación<br />
a <strong>la</strong> vez. En este caso <strong>la</strong>s operaciones deberán pertenecen siempre a trabajos<br />
que utilizan los recursos en el mismo orden.<br />
Podemos concluir por tanto que los <strong>métodos</strong> que se basan en el modelo matemático<br />
del problema no podrían ser empleados, ya que <strong>la</strong> modelización matemática del<br />
conjunto de restricciones que consideramos no es conocida aún en <strong>la</strong> literatura. Por<br />
otra parte, aún restringiendo el conjunto de restricciones a aquel<strong>la</strong>s que pueden ser<br />
mode<strong>la</strong>das matemáticamente, estos <strong>métodos</strong> de solución resultan ineficientes debido<br />
al gran número de restricciones y variables binarias necesarias <strong>para</strong> mode<strong>la</strong>r un<br />
problema del mundo real.<br />
Por otra parte, también presentamos el resultado del estudio realizado sobre<br />
<strong>la</strong>s técnicas CSPs más representativas <strong>para</strong> resolver problemas formu<strong>la</strong>dos mediante<br />
esta aproximación. Dichas técnicas no han podido ser empleadas directamente, ya<br />
que daban lugar a procedimientos poco eficientes. Sin embargo, conceptos como el<br />
ordenamiento de variables, de valores, así como <strong>la</strong> propagación de restricciones han<br />
sido adaptados al método de solución que hemos desarrol<strong>la</strong>do.<br />
Consideramos que hemos aportado <strong>la</strong> descripción formal de una especialización<br />
de un complejo problema de scheduling tipo Job Shop, necesaria <strong>para</strong> muchos prob-<br />
lemas del mundo real, dejando explícitamente establecidas <strong>la</strong>s restricciones que se
252 7. Conclusiones<br />
consideran en este tipo de problemas, así como <strong>la</strong> complejidad que supone incorporar<br />
cada una de el<strong>la</strong>s en un método general de solución.<br />
B) Diseño y Desarrollo de nuevos <strong>métodos</strong> de resolución<br />
Hemos propuesto nuevos <strong>métodos</strong> que resuelven el problema considerado en esta<br />
Tesis de forma eficiente, obteniendo soluciones de alta calidad en un tiempo razon-<br />
able. Estos <strong>métodos</strong> consideran el conjunto de restricciones definido <strong>para</strong> el complejo<br />
problema Job Shop, y es posible incorporar al método nuevas restricciones sin que<br />
ello afecte al método de solución.<br />
El desarrollo de estos <strong>métodos</strong>, contribuye con nuevas heurísticas <strong>para</strong> ordenar<br />
variables, <strong>para</strong> ordenar valores y podar soluciones, agilizando así <strong>la</strong> construcción de<br />
cada solución y permitiendo con ello <strong>la</strong> obtención de una solución de alta calidad de<br />
forma eficiente.<br />
La heurística <strong>para</strong> ordenar <strong>la</strong>s variables consiste en obtener el retraso que lleva<br />
cada trabajo, previamente a <strong>la</strong> selección de <strong>la</strong> siguiente variable <strong>para</strong> asignación. Pos-<br />
teriormente se asigna una probabilidad de selección, que será mayor cuanto mayor<br />
sea el retraso que lleve el trabajo con respecto a un tiempo de referencia, consistente<br />
en el mínimo tiempo que requiere el mismo <strong>para</strong> ser completado. Así, <strong>la</strong> heurística<br />
<strong>para</strong> ordenar <strong>la</strong>s variables que deben ser asignadas, está basada en el estado ac-<br />
tual del problema (retraso promedio de cada trabajo) y en el conocimiento que se<br />
tiene acerca de <strong>la</strong> función objetivo (minimizar el retraso promedio de los trabajos<br />
y <strong>la</strong> diferencia entre los retrasos de trabajos que siguen un orden opuesto). Esta<br />
heurística incluye una componente aleatoria, ya que <strong>la</strong>s decisiones se llevan a cabo<br />
basándonos en el estado actual del problema. La componente aleatoria permite huir<br />
de los mínimos locales y evitar dirigir siempre <strong>la</strong> solución hacia una misma región<br />
del espacio de búsqueda.<br />
Se propone una forma de propagar ciertas restricciones, específicamente aquel-<br />
<strong>la</strong>s que acotan <strong>la</strong>s variables de un único trabajo. Estas son, por ejemplo, aquel<strong>la</strong>s<br />
restricciones que indican que el instante de finalización de una operación debe ser n<br />
unidades mayor al instante de inicio, siendo n el tiempo de procesamiento de dicha<br />
operación. Estas restricciones acotan a un único valor el dominio de <strong>la</strong>s variables que<br />
representan los instantes de finalización de <strong>la</strong>s operaciones. Otra de <strong>la</strong>s restricciones
7.2. Contribuciones de este trabajo 253<br />
que se utilizan <strong>para</strong> acotar el dominio de una variable es <strong>la</strong> que establece un margen<br />
sobre el instante de inicio de un trabajo.<br />
Se propone una forma de optimizar el proceso de backtracking. Para ello, se<br />
identifica <strong>la</strong> causa directa del dead-end que obliga al backtracking, y se corrige.<br />
Posteriormente, no es necesario rehacer <strong>la</strong>s asignaciones de todas <strong>la</strong>s variables cuyo<br />
orden de asignación es posterior a aquel<strong>la</strong> variable modificada <strong>para</strong> subsanar el dead<br />
end, sino únicamente aquel<strong>la</strong>s variables afectadas, en forma directa o indirecta.<br />
También se introduce una heurística <strong>para</strong> interrumpir <strong>la</strong> construcción de una<br />
solución, si estima que el mejor valor que puede adquirir su función objetivo, una<br />
vez ésta sea completada, es peor o igual que el valor de <strong>la</strong> función objetivo corre-<br />
spondiente a <strong>la</strong> mejor solución construida hasta entonces. En este caso, <strong>la</strong> solución<br />
parcial es abortada y se inicia una nueva búsqueda.<br />
Tras el desarrollo de los <strong>métodos</strong>, en el capítulo 6 se ha realizado un conjunto de<br />
evaluaciones sobre diversas instancias del problema. Cada una de estas instancias son<br />
casos reales que han sido obtenidos mediante <strong>la</strong> co<strong>la</strong>boración de <strong>la</strong> Administración<br />
Españo<strong>la</strong> de Infraestructura Ferroviaria (ADIF). Gracias a esta co<strong>la</strong>boración se ha<br />
podido evaluar <strong>la</strong> <strong>eficiencia</strong> y <strong>la</strong> calidad de <strong>la</strong>s soluciones empleando casos de estudio<br />
que conllevan una elevada complejidad, ya que se deben tener en cuenta aspectos de<br />
<strong>la</strong> infraestructura ferroviaria que obligan a una elevada cantidad de verificaciones,<br />
así como de combinaciones válidas posibles. La cantidad de verificaciones que se<br />
requiere contribuye a <strong>la</strong> alta complejidad temporal <strong>para</strong> obtener cada solución. La<br />
cantidad de combinaciones válidas contribuyen a <strong>la</strong> elevada complejidad temporal<br />
<strong>para</strong> recorrer todo el espacio de soluciones. De esta forma, se resalta <strong>la</strong> importancia<br />
de obtener heurísticas que guíen hacia <strong>la</strong>s regiones más prometedoras del espacio de<br />
soluciones en el menor tiempo posible.<br />
Se ha desarrol<strong>la</strong>do un sistema software que permite integrar <strong>la</strong> definición de <strong>la</strong><br />
infraestructura y de los trenes que se deben considerar al método de optimización.<br />
También permite <strong>la</strong> <strong>para</strong>metrización de <strong>la</strong>s restricciones y del procedimiento de<br />
optimización, haciendo que se obtengan diferentes escenarios con solo modificar<br />
determinados parámetros tales como: número de vías en tramos, tipo de bloqueos,<br />
intervalos de salida inicial, intervalos de llegada a destino, considerar o no bandas<br />
de mantenimiento, tiempo límite de ejecución, etc.<br />
Los resultados obtenidos por este sistema software pueden ser visualizados de
254 7. Conclusiones<br />
forma gráfica indicándose <strong>la</strong> secuencia de estaciones y horarios por los que pasa el<br />
tren. Así, por cada solución obtenida, además de su coste, se puede obtener una<br />
visualización gráfica de <strong>la</strong> misma, que muchas veces es más intuitiva <strong>para</strong> el usuario<br />
final.<br />
7.3. Trabajo Futuro<br />
De acuerdo al estudio realizado en el capítulo 6, <strong>la</strong> generación de horarios opti-<br />
mizados se realiza de forma off-line, previo al proceso propio de aplicación, es decir,<br />
a <strong>la</strong> ejecución de dichos horarios.<br />
Sin embargo, en <strong>la</strong> aplicación de los resultados de un proceso de scheduling es<br />
evidente que pueden surgir incidencias, falta de disponibilidad de recursos, retrasos,<br />
etc. que afecten a <strong>la</strong> programación efectuada y haga necesaria su rep<strong>la</strong>nificación.<br />
Con ello, aparecen dos líneas fundamentales a partir del trabajo realizado en esta<br />
tesis: (i) minimizar <strong>la</strong> afectación de un horario frente a incidencias, y (ii) rep<strong>la</strong>nificar<br />
un horario <strong>para</strong> adecuarlo a <strong>la</strong>s incidencias producidas. El primer punto trata sobre el<br />
concepto de robustez, mientras que el segundo requiere un proceso de re-scheduling.<br />
De esta forma, como áreas de trabajo futuro aparecen <strong>la</strong>s siguientes líneas:<br />
Incorporar Robustez a <strong>la</strong>s soluciones obtenidas. Actualmente <strong>la</strong> construcción<br />
de cada solución es llevada a cabo satisfaciendo un conjunto de restricciones<br />
y considerando que se desea optimizar una determinada función objetivo, sin<br />
que tengamos en cuenta <strong>la</strong> robustez de <strong>la</strong> solución entregada. Es decir, no<br />
medimos cuánto puede afectar a una determinada programación, <strong>la</strong> aparición<br />
de una incidencia durante el desarrollo de <strong>la</strong> misma. Esto es, cómo afectan<br />
<strong>la</strong>s incidencias sobre <strong>la</strong> disponibilidad de recursos o sobre <strong>la</strong> ejecución de <strong>la</strong>s<br />
operaciones a <strong>la</strong> programación de horarios realizada inicialmente.<br />
El objetivo futuro consiste en construir soluciones en <strong>la</strong>s cuales se tenga en<br />
cuenta <strong>la</strong> posible aparición de incidencias durante su aplicación, de forma que<br />
se vean afectados el menor número de trabajos del problema, y que, además,<br />
el trabajo afectado pueda recuperar cuanto antes <strong>la</strong> programación de horarios<br />
inicial que se haya realizado sobre sus operaciones.
7.3. Trabajo Futuro 255<br />
Rep<strong>la</strong>nificación a partir de una incidencia. Además de <strong>la</strong> construcción de ho-<br />
rarios que incluyan entre sus propiedades <strong>la</strong> robustez, sería muy interesante<br />
contar con un procedimiento que pueda subsanar de <strong>la</strong> mejor forma posible<br />
el trastorno producido por una incidencia en una programación de horarios,<br />
y que no haya sido absorbida por <strong>la</strong> robustez de <strong>la</strong> p<strong>la</strong>nificación. Cuando in-<br />
dicamos que sea de <strong>la</strong> mejor forma posible, nos referimos al hecho de modificar<br />
únicamente el horario de aquel<strong>la</strong>s operaciones que se vean afectadas en forma<br />
primaria o secundaria por el trastorno producido.<br />
Cuando un conjunto de trabajos lleva a cabo sus operaciones a partir de un<br />
horario establecido <strong>para</strong> cada una, cabe <strong>la</strong> posibilidad de que durante el desar-<br />
rollo de <strong>la</strong>s mismas se produzca un evento que obligue a modificar sin remedio<br />
el horario de alguna de el<strong>la</strong>. A partir de <strong>la</strong> incidencia, es necesario asignar<br />
un nuevo horario a <strong>la</strong> operación directamente afectada (operación afectada en<br />
forma primaria). Adicionalmente, suele ser necesaria <strong>la</strong> modificación de otras<br />
operaciones que, aunque no estén afectadas directamente por <strong>la</strong> incidencia<br />
ocurrida, sí se vean afectadas (incidencias secundarias) por <strong>la</strong> modificación de<br />
otras operaciones.<br />
El procedimiento que presentamos en esta Tesis <strong>para</strong> programar horarios <strong>para</strong><br />
trenes puede servir <strong>para</strong> rep<strong>la</strong>nificar horarios, a partir del instante en que se<br />
produce <strong>la</strong> incidencia. Sin embargo, de esta forma, se estaría rep<strong>la</strong>nificando el<br />
horario de todas <strong>la</strong>s operaciones cuyos instante de inicio se hal<strong>la</strong>sen a partir de<br />
aquel en el que se produjo <strong>la</strong> incidencia. Sería más eficiente diseñar un proced-<br />
imiento en el cual se recorra <strong>la</strong> línea de tiempo, a partir del instante en que se<br />
produce <strong>la</strong> incidencia, y se verifiquen los conflictos que aparecen, resolviéndo-<br />
los en ese mismo orden, de menor a mayor instante de tiempo, modificando<br />
únicamente el horario de <strong>la</strong>s operaciones afectadas, y decidiendo en base a una<br />
heurística apropiada a <strong>la</strong> función objetivo de <strong>la</strong> rep<strong>la</strong>nificación. Dicha heurísti-<br />
ca debería determinar cuál de <strong>la</strong>s dos operaciones futuras que participan en<br />
cada conflicto debería tener mayor prioridad sobre el recurso en competencia.<br />
La función objetivo durante <strong>la</strong> rep<strong>la</strong>nificación podría ser diferente a <strong>la</strong> de <strong>la</strong><br />
función objetivo de <strong>la</strong> p<strong>la</strong>nificación inicial, <strong>para</strong> el mismo problema, ya que<br />
además de optimizar determinados criterios, propios del problema original, se<br />
pretende modificar el horario de <strong>la</strong>s operaciones de tal forma que los mismos
256 7. Conclusiones<br />
presenten <strong>la</strong>s mínimas diferencias posibles con el horario original.<br />
7.4. Publicaciones re<strong>la</strong>cionadas con <strong>la</strong> Tesis<br />
En esta sección presentamos <strong>la</strong>s publicaciones que están re<strong>la</strong>cionadas con el tra-<br />
bajo de tesis doctoral. Estas publicaciones <strong>la</strong>s hemos c<strong>la</strong>sificado en: artículos en<br />
revista y capítulos de libro, congresos internacionales y congresos nacionales.<br />
Artículos en Revistas y Post selecciones de Congresos<br />
F. Barber, M.A. Salido, L. Ingolotti, M. Abril, A. Lova, and P. Tormos. An Inter-<br />
active Train Scheduling Tool for Solving and Plotting Running Maps. In R. Conejo<br />
et al., editors, Current Topics in Artificial Intelligence. LNAI, Subseries of Lecture<br />
Notes in Computer Science. Selected from CAEPIA 2003, volume 3040 of ISSN:<br />
0302-9743, ISBN: 3-540-22218-9, pages 646–655, Springer Ver<strong>la</strong>g, 2004.<br />
M.A. Salido, M. Abril, F. Barber, P. Tormos, A. Lova, and L. Ingolotti. Optimization<br />
in Railway Scheduling. 2nd International Conference on Informatics in Control,<br />
Automation and Robotics. Selected from ICINCO’05, ISSN: 0302-9743, ISBN: 972-<br />
8865-29-5, pages 188–195, IOS Press, 2005.<br />
L. Ingolotti, F. Barber, P. Tormos, A. Lova, M.A. Salido, and M. Abril. A Schedul-<br />
ing Order-Based Method to solve Timetabling Problems. In R. Marin et al., editors,<br />
Current Topics in Artificial Intelligence. LNAI, Subseries of Lecture Notes in Com-<br />
puter Science. Selected from CAEPIA 2005, volume 4177 of ISSN: 0302-9743, ISBN:<br />
3-540-35453-0, pages 52–61, Springer Ver<strong>la</strong>g, 2006.<br />
F. Barber, P. Tormos, A. Lova, L. Ingolotti, M.A. Salido, and M. Abril. A Decision<br />
Support System for Railway Timetabling Problem (MOM): the Spanish Case. In C.<br />
Brebbia et al., editors, Computer System Design and Operation in the Railway and<br />
Other Transit Systems. Computer in Railways Series., volume 10 of ISSN: 1746-<br />
4498, ISBN: 1-84564-177-9, pages 235–244, WIT Press, 2006.
7.4. Publicaciones re<strong>la</strong>cionadas con <strong>la</strong> Tesis 257<br />
Congresos Internacionales<br />
F. Barber, P. Tormos, A. Lova, L. Ingolotti, M.A. Salido, M. Abril. Train Scheduling:<br />
A Real Case. In L. Kroon, D. Wagner, F. Wagner and C. Zaroliagis, editor, in<br />
Proceedings of Dagstuhl Seminar 04261, volume 1 of ISSN: 1862-4405, pages 5.<br />
http://drops.dagstuhl.de/opus/volltexte/2006/471 , 2004.<br />
L. Ingolotti, P. Tormos, A. Lova, F. Barber, M.A. Salido, and M. Abril. A Decision<br />
Suport System (DSS) for the Railway Scheduling Problem. In M. Bramer and<br />
V. Devedzic, editors, Artificial Intelligence Applications and Innovations, ISBN: 1-<br />
4020-8150-2, pages 465–474, Kluwer Academic, 2004.<br />
L. Ingolotti, F. Barber, P. Tormos, A. Lova, M.A. Salido, and M. Abril. An Effi-<br />
cient Method to Schedule New Trains on a Heavily Loaded Railway Network. In<br />
C. Lemaître et al., editors, Advances in Artificial Intelligence. LNAI, Subseries of<br />
Lecture Notes in Computer Science, volume 3315 of ISSN: 0302-9743, ISBN: 3-540-<br />
23806-9, pages 164–173, Springer Ver<strong>la</strong>g, 2004.<br />
F. Barber, M. Abril, L. Ingolotti, A. Lova, M.A. Salido and P. Tormos. MOM, A<br />
Decision Support System for Railway Scheduling. In Proc. of the 17th International<br />
Triennial Conference in OR/MS (IFORS’05), pages 14–15, 2005.<br />
A. Lova, P. Tormos, F. Barber, L. Ingolotti, M. Abril, and M.A. Salido. An Efficient<br />
Heuristic Technique to Schedule New Trains on a High Loaded Network. In Proc. of<br />
the 17th International Triennial Conference in OR/MS (IFORS’05), pages 14–15,<br />
2005.<br />
P. Tormos, A. Lova, F. Barber, L. Ingolotti, M. Abril, and M.A. Salido. Periodic<br />
Single Track Railway Scheduling: A Sequential Approach. In Proc. of the 17th<br />
International Triennial Conference in OR/MS (IFORS’05), pages 14–15, 2005.<br />
M.A. Salido, M. Abril, F. Barber, P. Tormos, A. Lova, and L. Ingolotti. Optimization<br />
in Railway Scheduling. In Proc. of the 2nd International Conference on Informatics
258 7. Conclusiones<br />
in Control, Automation and Robotics ICINCO’05, 2005.<br />
P. Tormos, A. Lova, L. Ingolotti, F. Barber, M. Abril, and M. A. Salido. A Genetic<br />
Approach to Train Scheduling on a High-Traffic Railway Line. In Proceedings of<br />
the 5th Workshop on Algorithmic Methods and Models for Optimization of Railways<br />
ATMOS 2005 in ALGO 2005, Palma de Mallorca, 2005.<br />
L. Ingolotti, F. Barber, P. Tormos, A. Lova, M.A. Salido, and M. Abril. New Heuris-<br />
tics to solve the CSOP Railway Timetabling Problem. In M. Ali and R. Dapoigny,<br />
editors, Advances in Applied Artificial Intelligence. Lecture Notes in Artificial In-<br />
telligence. Subseries of Lecture Notes in Computer Science., volume 4031 of ISSN:<br />
0302-9743, pages 400–409, Springer Ver<strong>la</strong>g, 2006.<br />
Congresos Nacionales<br />
F. Barber, M.A. Salido, L. Ingolotti, M. Abril, A. Lova, and P. Tormos. A Train<br />
Scheduling Tool for Solving and Plotting Running Maps. In Proc. of TTIA 2003.,<br />
volume 2, pages 379–388, San Sebastian, 2003.<br />
A. Lova, P. Tormos, F. Barber, L. Ingolotti, M. Abril, and M.A. Salido. P<strong>la</strong>nificacion<br />
del trafico ferroviario en una red altamente sobrecargada. in Proceedings of the XVIII<br />
Congreso Nacional de Estadistica e Investigacion Operativa, pages 485–486, Cadiz,<br />
2004.<br />
P. Tormos, A. Lova, F. Barber, L. Ingolotti, M. Abril, and M.A. Salido. Un Sis-<br />
tema de ayuda a <strong>la</strong> toma de decisiones (DSS) <strong>para</strong> el problema de secuenciación de<br />
trenes periódicos. in Proceedings of the XVIII Congreso Nacional de Estadistica e<br />
Investigacion Operativa, pages 489–490, Cadiz, 2004.<br />
M.A. Salido, F. Barber, M. Abril, L. Ingolotti, A. Lova, P. Tormos, and J. Estrada.<br />
Técnicas de Inteligencia Artificial en P<strong>la</strong>nificación Ferroviaria. In Proc. of TTIA<br />
2005., pages 379–388, Granada, 2005.
7.4. Publicaciones re<strong>la</strong>cionadas con <strong>la</strong> Tesis 259<br />
L. Ingolotti, F. Barber, P. Tormos, A. Lova, M.A. Salido, and M. Abril. A Scheduling<br />
Order-based Method to Solve the Train Timetabling Problem. In Proc. of XI Con-<br />
ferencia de <strong>la</strong> Asociación Españo<strong>la</strong> <strong>para</strong> <strong>la</strong> Inteligencia Artificial (CAEPIA 2005).,<br />
volume 1, pages 343–352, Santiago de Composte<strong>la</strong>, 2005.<br />
P. Tormos, A. Lova, F. Barber, L. Ingolotti, M. Abril, and M.A. Salido. Un Sistema<br />
Software <strong>para</strong> <strong>la</strong> Optimización del Tráfico Ferroviario. In Proc. of XXIX Congreso<br />
Nacional de Estadística e Investigación Operativa., pages 535–536, Tenerife, 2006.<br />
A. Lova, P. Tormos, F. Barber, L. Ingolotti, M. Abril, and M.A. Salido. Técnicas<br />
<strong>para</strong> <strong>la</strong> Programación del Tráfico Ferroviario Heterogéneo. In Proc. of XXIX Con-<br />
greso Nacional de Estadística e Investigación Operativa., pages 633–634, Tenerife,<br />
2006.<br />
7.4.1. Otros artículos re<strong>la</strong>cionados con esta Tesis<br />
A continuación se citan otros artículos directamente re<strong>la</strong>cionados con el trabajo<br />
desarrol<strong>la</strong>do en esta Tesis en los que se utilizan, con enfoques específicos, modelos,<br />
<strong>métodos</strong> o procedimientos aquí propuestos.<br />
M. A. Salido, F. Barber, M. Abril, P. Tormos, A. Lova, and L. Ingolotti. A Topo-<br />
logical Model Based on Railway Capacity to Manage Periodic Train Scheduling.<br />
Applications and Innovations in Intelligent Systems. Selected from AI 2006, ISBN:<br />
1-85233-908-X, volume 12, pages 107–120, Springer, 2004.<br />
M. Abril, M. A. Salido, F. Barber, L. Ingolotti, P. Tormos, and A. Lova. Apply-<br />
ing Topological Constraint Optimization Techniques to Periodic Train Scheduling.<br />
In Proceedings of ECAI 2004 Workshop on Constraint Satisfaction Techniques for<br />
P<strong>la</strong>nning and Scheduling Problems, pages 17–26, 2004.<br />
M. A. Salido, M. Abril, F. Barber, L. Ingolotti, P. Tormos, and A. Lova. Topologi-<br />
cal Constraints in Periodic Train Scheduling. P<strong>la</strong>nning, Scheduling and Constraint
260 7. Conclusiones<br />
Satisfaction: From theory to practice. Frontiers in Artificial Intelligence and Ap-<br />
plications, ISSN: 0922-6389, ISBN: 1-58603-484-7, volume 117, pages 11–20, IOS<br />
Press, 2005.<br />
M. Abril, M. A. Salido, F. Barber, L. Ingolotti, A. Lova, and P. Tormos. A Heuristic<br />
Technique for the Capacity Assessment of Periodic Trains. Artificial Intelligence Re-<br />
search and Development. Frontiers in Artificial Intelligence and Applications, ISSN:<br />
0922-6389, ISBN: 1-58603-560-6, volume 131, pages 339–346, IOS Press, 2005.<br />
M. Abril, F. Barber, L. Ingolotti, M. A. Salido, A. Lova, and P. Tormos. Applying<br />
Analytical and Empirical Methods to the Assessment of Railway Capacity. In Pro-<br />
ceedings of the 5th Workshop on Algorithmic Methods and Models for Optimization<br />
of Railways ATMOS 2005 in ALGO 2005, Palma de Mallorca, 2005.<br />
M. Abril, M. A. Salido, F. Barber, L. Ingolotti, A. Lova, and P. Tormos. A Technique<br />
for the Capacity Assessment of Periodic Trains. In Proceedings of the Vuitè Congrés<br />
Català d’Intel.ligència Artificial (CCIA’05), IOS Press, Cerdeña, 2005.<br />
M. A. Salido, M. Abril, F. Barber, P. Tormos, A. Lova, and L. Ingolotti. Técnicas<br />
Distribuidas <strong>para</strong> problemas de scheduling a gran esca<strong>la</strong>. In Proceedings of the III<br />
Workshop sobre P<strong>la</strong>nificación, Scheduling y Razonamiento Temporal, pages 51–59,<br />
Santiago de Composte<strong>la</strong>, 2005.<br />
P. Tormos, M. Abril, M.A. Salido, F. Barber, L. Ingolotti, and A. Lova. Distribut-<br />
ed constraint satisfaction problems to model railway scheduling problems. In A.F.<br />
Rumsey G. Sciutto S. Sone C.J. Goodman J. Al<strong>la</strong>n, C.A. Brebbia, editor, Computer<br />
System Design and Operation in the Railway and Other Transit Systems, volume 10<br />
of Computer in Railways, pages 289–297. 10th Int. Conf. on Computer System De-<br />
sign and Operation in the Railway and Other Transit Systems. Comprail 2006, WIT<br />
Press, 2006.<br />
M. Abril, M.A. Salido, F. Barber, L. Ingolotti, A. Lova, and P. Tormos. Distributed<br />
models in railway industry. In In proc. of the Workshop on Industrial Applications
7.5. Conclusiones Finales 261<br />
of Distributed Intelligent Systems (INADIS 2006), volume 1, pages CD–ROM, 2006.<br />
M. A. Salido, M. Abril, F. Barber, L. Ingolotti, P. Tormos, and A. Lova. Domain-<br />
dependent distributed models for railway scheduling. Journal Knowledge Based<br />
Systems. Selected from AI 2006, ISSN: 0950-7051, Elsevier Science, To Appear.<br />
También cabe destacar los siguientes reconocimientos:<br />
Premio a <strong>la</strong> mejor aplicación de Inteligencia Artificial (Noviembre 2003). Mejor<br />
artículo de Transferencia de Tecnológica en IA. X Conferencia de <strong>la</strong> Asociación<br />
Españo<strong>la</strong> de Inteligencia Artificial. V Jornada de Transferencia Tecnológica de<br />
IA (CAEPIA-TTIA’03). 11 - 14 Noviembre, 2003. San Sebastián.<br />
Premio al mejor trabajo en Transferencia de Tecnológica en IA (Septiembre,<br />
2005). VI Jornada de Transferencia Tecnológica de IA (TTIA’05), celebradas<br />
en el primer Congreso Español de Informática (CEDI’05). Granada.<br />
Best Refereed Application Paper - Application Stream (Junio 2006). In the<br />
26th SGAI International Conference on Innovative Techniques and Applica-<br />
tions of Artificial Intelligence (AI-2006), Cambridge, UK, 2006.<br />
7.5. Conclusiones Finales<br />
En este trabajo hemos aportado una modelización formal de un complejo proble-<br />
ma combinatorio, de optimización, como un caso especial de problemas de scheduling<br />
Job Shop. Una vez formu<strong>la</strong>do el problema, hemos analizado <strong>la</strong>s técnicas y <strong>métodos</strong><br />
ya publicados que se re<strong>la</strong>cionan con el tipo de problema considerado. Estas técnicas<br />
han sido evaluadas, concluyéndose <strong>la</strong> necesidad de nuevos <strong>métodos</strong> de solución que<br />
puedan considerar todo el conjunto de restricciones de problemas reales, a <strong>la</strong> vez<br />
que puedan producir soluciones de alta calidad en el menor tiempo posible.<br />
Proponemos un nuevo método de solución que considera todas <strong>la</strong>s restricciones<br />
propias de un contexto real. Se describen nuevas heurísticas <strong>para</strong> <strong>la</strong> ordenación de<br />
variables, así como procedimientos que fuerzan <strong>la</strong> consistencia entre restricciones sin<br />
que sea necesaria <strong>la</strong> previa ordenación de los valores en sus dominios. Se introducen
262 7. Conclusiones<br />
<strong>métodos</strong> <strong>para</strong> llevar a cabo el backtracking sin tener que deshacer más asignaciones<br />
que <strong>la</strong>s necesarias, así como una heurística de poda de soluciones parciales que<br />
no conduzcan a soluciones mejores que <strong>la</strong> actualmente conseguida. Los <strong>métodos</strong><br />
desarrol<strong>la</strong>dos disponen adicionalmente de una funcionalidad de respuesta anytime.<br />
Los <strong>métodos</strong> y procedimientos presentados se evalúan sobre diversas instancias<br />
del problema, todas el<strong>la</strong>s obtenidas de casos reales. Se han seleccionado casos de<br />
estudio de diferente complejidad que nos han permitido concluir <strong>la</strong> <strong>eficiencia</strong> de los<br />
<strong>métodos</strong> desarrol<strong>la</strong>dos en cuanto a tiempo de respuesta y calidad se refiere.<br />
El trabajo desarrol<strong>la</strong>do p<strong>la</strong>ntea c<strong>la</strong>ras líneas de ampliación. Se propone el estudio<br />
de <strong>la</strong> robustez y su incorporación al proceso de p<strong>la</strong>nificación de horarios, así como el<br />
desarrollo de un método <strong>para</strong> rep<strong>la</strong>nificar horarios a partir de retrasos e incidencias.<br />
Como conclusión final se destacan <strong>la</strong>s aportaciones respecto a <strong>la</strong> p<strong>la</strong>nificación y<br />
modelización de un complejo problema real y el diseño de <strong>métodos</strong> computacionales<br />
eficientes y flexibles.<br />
Las aportaciones realizadas suponen c<strong>la</strong>ras contribuciones a <strong>la</strong> formalización y<br />
resolución computacional de un complejo problema de optimización y satisfacción de<br />
restricciones. Por último, cabe destacar su aplicabilidad real y <strong>la</strong> positiva evaluación<br />
en su entorno de aplicación.
Apéndice A<br />
Sistemas desarrol<strong>la</strong>dos <strong>para</strong> <strong>la</strong><br />
Generación y Optimización de<br />
horarios Ferroviarios<br />
En este Apéndice describimos herramientas software desarrol<strong>la</strong>das <strong>para</strong> facili-<br />
tar <strong>la</strong>s tareas que se deben llevar a cabo como parte del proceso de p<strong>la</strong>nificación<br />
y optimización del uso de una red ferroviaria. Se trata de sistemas desarrol<strong>la</strong>dos<br />
en distintas universidades y centros de investigación (algunos de ellos asociados a<br />
compañías ferroviarias), en los que se implementan técnicas y <strong>métodos</strong> que buscan<br />
principalmente <strong>la</strong> resolución de problemas de optimización, reducir el espacio de<br />
búsqueda y guiar<strong>la</strong> hacia <strong>la</strong>s regiones más prometedoras del espacio de soluciones.<br />
También existen herramientas de simu<strong>la</strong>ción que permiten al p<strong>la</strong>nificador ferroviario<br />
conocer de antemano <strong>la</strong>s consecuencias de determinadas decisiones. En este caso, se<br />
han producido avances tanto en <strong>la</strong> representación gráfica de los resultados, como en<br />
<strong>la</strong> manipu<strong>la</strong>ción de <strong>la</strong> información (<strong>la</strong> administración eficiente de los datos re<strong>la</strong>tivos<br />
a <strong>la</strong> infraestructura ferroviaria y a los trenes es muy importante debido al volumen<br />
que representan).<br />
Por lo general, son sistemas hechos a medida <strong>para</strong> cada compañía ferroviaria,<br />
ya que cada país o región tiene una infraestructura ferroviaria con requerimientos<br />
particu<strong>la</strong>res.<br />
263
264A. Sistemas desarrol<strong>la</strong>dos <strong>para</strong> <strong>la</strong> Generación y Optimización de horarios Ferroviarios<br />
A.1. Sistemas Software re<strong>la</strong>cionados con <strong>la</strong> P<strong>la</strong>nificación<br />
de Horarios Ferroviarios<br />
Actualmente existen diversas herramientas software que proporcionan soporte<br />
en <strong>la</strong> ejecución de determinadas tareas dentro del proceso de p<strong>la</strong>nificación de una<br />
red ferroviaria.<br />
Son herramientas, que por lo general, nacen de requerimientos precisos que <strong>la</strong>s<br />
compañías ferroviarias realizan a institutos tecnológicos, consultoras especializadas,<br />
o universidades. Requerimientos que se originan a partir de <strong>la</strong>s macro tareas (predic-<br />
ción de demanda origen-destino, p<strong>la</strong>nificación de infraestructura, p<strong>la</strong>nificación de<br />
líneas, programación de horarios, asignación de personal, asignación de material ro-<br />
dante, y operaciones de mantenimiento) que deben ser llevadas a cabo dentro de un<br />
proceso de p<strong>la</strong>nificación de red ferroviaria.<br />
Obtener soluciones factibles y alcanzar los objetivos en forma eficiente, opti-<br />
mizando cada uno de los recursos disponibles conlleva una elevada complejidad de-<br />
bido a <strong>la</strong> amplia diversidad de factores que se deben considerar. Es por ello que se re-<br />
curre a centros de trabajo donde se llevan a cabo investigaciones que pueden aportar<br />
técnicas o <strong>métodos</strong> que permitan resolver el problema eficientemente. La <strong>eficiencia</strong><br />
en <strong>la</strong> gestión de una red ferroviaria requiere <strong>la</strong> ayuda que un sistema computacional<br />
puede ofrecer. Hoy en día, gracias a los avances en <strong>la</strong>s diferentes áreas de inves-<br />
tigación re<strong>la</strong>cionadas al problema (informática, inteligencia artificial, matemáticas,<br />
investigación de operaciones), así como en <strong>la</strong> tecnología de procesadores es posible<br />
obtener resultados muy positivos <strong>para</strong> el sector ferroviario y apoyar <strong>la</strong> teoría con<br />
evaluaciones en un entorno real, y sobre todo, con el estímulo que conlleva responder<br />
a una necesidad de un sector muy importante del transporte.<br />
Como ejemplo de herramientas desarrol<strong>la</strong>das <strong>para</strong> <strong>la</strong> gestión y soporte de deci-<br />
siones dentro del sector ferroviario se encuentran:<br />
RAILSYS. Ha sido desarrol<strong>la</strong>do por <strong>la</strong> Universidad de Hannover y Rail Man-<br />
agement Consultants (RMCon). Consta de varios módulos:<br />
• Base de Datos: en <strong>la</strong> base de datos se almacenan datos referente a <strong>la</strong><br />
infraestructura, a los vehículos y tipos de trenes, a los horarios, y a <strong>la</strong>s<br />
reg<strong>la</strong>s de p<strong>la</strong>nificación que utiliza el sistema.
A.1. Sistemas Software re<strong>la</strong>cionados con <strong>la</strong> P<strong>la</strong>nificación de Horarios Ferroviarios265<br />
• Administrador de Infraestructura. Por cada tramo es posible especificar:<br />
longitud, gradiente, velocidad máxima, super elevación, presencia de túne-<br />
les, electrificación, curvatura. Se puede seleccionar el sistema de señal-<br />
ización a partir de varias disponibles como: ATC, MP, Moving Block,<br />
etc. Su función es mode<strong>la</strong>r los elementos de <strong>la</strong> estación y los tramos de<br />
<strong>la</strong> red ferroviaria sobre <strong>la</strong> que se desea trabajar.<br />
• Administrador de Horarios. Los horarios son ingresados tren a tren. Una<br />
vez estos son ingresados se actualiza tanto <strong>la</strong> ocupación en <strong>la</strong>s estaciones<br />
como en los tramos de <strong>la</strong> red. Los datos del horario pueden ser editados<br />
en forma tabu<strong>la</strong>r o en forma gráfica. A medida que se introducen los<br />
horarios, el sistema verifica <strong>la</strong>s restricciones a considerar y muestra los<br />
conflictos que aparecen a partir del horario introducido. Tiene en cuenta<br />
toda <strong>la</strong> red. En este módulo también se elige el tipo de vehículo <strong>para</strong> cada<br />
tren.<br />
• Administrador de los espacios en estación y tramo. Indica <strong>la</strong> ocupación<br />
detal<strong>la</strong>da en un determinado instante de tiempo tanto de <strong>la</strong>s estaciones<br />
como de los tramos de <strong>la</strong> red.<br />
• Simu<strong>la</strong>dor de incidencias. Permite introducir incidencias en <strong>la</strong> red de tal<br />
forma que se conozca el retraso que experimentarán los trenes y cuáles<br />
serán los trenes afectados.<br />
• Administrador de Evaluación.<br />
CADANS. Ha sido desarrol<strong>la</strong>do por el grupo de Optimización Combina-<br />
toria y Algorítmica, perteneciente al Instituto Nacional de Investigación en<br />
Matemáticas y Ciencias de <strong>la</strong> computación de Ho<strong>la</strong>nda, CWI (Centrum voor<br />
Wiskunde en Informatica). La investigación que condujo al desarrollo de esta<br />
herramienta ha sido solicitada por el administrador de infraestructuras fer-<br />
roviarias ho<strong>la</strong>ndesas RailNed.<br />
CADANS es utilizado <strong>para</strong> determinar <strong>la</strong> llegada y <strong>la</strong> salida de cada tren en <strong>la</strong>s<br />
estaciones que visita tomando en cuenta varias restricciones duras y b<strong>la</strong>ndas.<br />
Las restricciones duras deben ser satisfechas en todos los casos, mientras <strong>la</strong>s<br />
b<strong>la</strong>ndas pueden ser re<strong>la</strong>jadas en ciertos casos. El modelo CADANS es resuel-<br />
to por un algoritmo basado en <strong>la</strong> propagación de restricciones y backtracking.
266A. Sistemas desarrol<strong>la</strong>dos <strong>para</strong> <strong>la</strong> Generación y Optimización de horarios Ferroviarios<br />
Para generar un horario que abarque toda <strong>la</strong> nación, el modelo requiere de<br />
una a tres horas de tiempo de CPU. Si CADANS puede obtener un horario<br />
factible, este puede ser mejorado. Por ejemplo, por mejorar <strong>la</strong>s conexiones en<br />
<strong>la</strong>s estaciones ferroviarias. Si CADANS no tuvo éxito en construir horarios<br />
que satisfagan todas <strong>la</strong>s restricciones, duras y b<strong>la</strong>ndas, reporta cuáles fueron<br />
<strong>la</strong>s restricciones que causaron conflictos. Los p<strong>la</strong>nificadores negociarán con <strong>la</strong>s<br />
otras partes involucradas en el proceso de p<strong>la</strong>nificación <strong>para</strong> decidir qué re-<br />
stricciones b<strong>la</strong>ndas deberán re<strong>la</strong>jar <strong>para</strong> llegar así a un horario factible. Si aún<br />
con éstas re<strong>la</strong>jaciones no se produce un horario factible, entonces los usuarios<br />
deben investigar otras posibilidades, tales como modificar el sistema de línea,<br />
o ampliar <strong>la</strong> infraestructura.<br />
STATIONS. Herramienta desarrol<strong>la</strong>da por Zwaneveld et al. [77], [119]. Ver-<br />
ifica estación por estación si los instantes de llegada y salida puestos por<br />
CADANS a cada tren en una estación son factibles según <strong>la</strong> infraestruc-<br />
tura interna de <strong>la</strong> misma (localización de todos los andenes, vías y señales,<br />
y <strong>la</strong> máxima velocidad de los trenes en <strong>la</strong>s vías, restricciones operacionales,<br />
tiempos de distancia entre los trenes). El modelo subyacente es un modelo<br />
ILP (Integer Linear Problem). Requiere solo un par de minutos <strong>para</strong> encon-<br />
trar una solución en <strong>la</strong>s estaciones más complejas de Ho<strong>la</strong>nda. STATIONS<br />
reporta <strong>la</strong> factibilidad como <strong>la</strong> no factibilidad, y sugiere en cuánto deberían<br />
ser modificados los instantes de llegada o salida de los trenes que incumplen<br />
<strong>la</strong>s restricciones <strong>para</strong> lograr <strong>la</strong> factibilidad en <strong>la</strong> estación, si esto es posible.<br />
Luego se debe evaluar si es o no posible realizar tal modificación sugerida.<br />
SImu<strong>la</strong>tion MOdel for NEtworks (SIMONE). ProRail Innovation ha<br />
desarrol<strong>la</strong>do junto con <strong>la</strong> división de Pasajeros de Ferrocarriles Ho<strong>la</strong>ndeses<br />
(NS) e Incontrol Enterprise Dynamics, el test de estabilidad, una metodología<br />
que utiliza <strong>la</strong> simu<strong>la</strong>ción como eje central. Se evalúan diferentes horarios a<br />
partir de <strong>la</strong>s incidencias introducidas en los mismos. Las incidencias pueden<br />
variar en cuanto a <strong>la</strong> cantidad y <strong>la</strong> diferencia temporal en <strong>la</strong> que se suceden.<br />
SIMONE puede llevar a cabo: determinación de <strong>la</strong> robustez de un horario<br />
(cuánto puede resistir un conjunto de horarios una serie de incidencias), mejora<br />
del conjunto de horarios por re<strong>la</strong>cionar el diseño standard y <strong>la</strong> robustez de <strong>la</strong>
A.1. Sistemas Software re<strong>la</strong>cionados con <strong>la</strong> P<strong>la</strong>nificación de Horarios Ferroviarios267<br />
solución en <strong>la</strong> realidad proporcionada por <strong>la</strong> simu<strong>la</strong>ción, seguir el rastro de<br />
cuellos de botel<strong>la</strong> en una red.<br />
Performance Evaluation of Timed Events in Railways (PETER),<br />
Goverde y Odijk [57]). Determinan que los horarios de redes ferroviarias tienen<br />
una estructura intrínseca que es convenientemente mode<strong>la</strong>da mediante el alge-<br />
bra max-plus. Aplican <strong>métodos</strong> de análisis a estos modelos incluyendo análisis<br />
espectral, <strong>métodos</strong> del camino más corto y cálculos de matrices. El análisis de<br />
estabilidad produce indicadores de performance del conjunto de horarios que<br />
forman <strong>la</strong> solución, tales como: tiempo mínimo de ciclo, capacidad, margen de<br />
estabilidad así como resultados acerca de <strong>la</strong> propagación de retrasos.<br />
ROute MAnagement (ROMAN). Desarrol<strong>la</strong>da por <strong>la</strong> división Transporta-<br />
tion Systems de SIEMENS, esta herramienta almacena en una base de datos<br />
información sobre <strong>la</strong> topología del tramo, vehículos y propiedades re<strong>la</strong>cionadas<br />
al personal. A partir de estos datos, calcu<strong>la</strong> el tiempo de recorrido de cada tren<br />
en cada tramo. La interfaz gráfica permite al usuario introducir los horarios<br />
de los trenes y modificarlos conforme <strong>la</strong> herramienta despliega los conflictos<br />
con los otros trenes de <strong>la</strong> red. Utiliza simu<strong>la</strong>ción, sin soportar optimización ni<br />
<strong>la</strong> resolución automática de los conflictos detectados.<br />
VIRIATO. Herramienta desarrol<strong>la</strong>da por SMA und Partner AG, Transporta-<br />
tion Engineers, P<strong>la</strong>nners and Economists. Posee un módulo que realiza <strong>la</strong> ver-<br />
ificación sobre <strong>la</strong> asignación de vehículos y personal (módulo Rostering). De-<br />
scribe los horarios <strong>para</strong> cada tren, indicando <strong>la</strong>s operaciones que son realizadas<br />
<strong>para</strong> evitar cruces y alcances. Proporciona información detal<strong>la</strong>da por cada día<br />
de circu<strong>la</strong>ción en el año. Se indican días festivos, días de menor circu<strong>la</strong>ción,<br />
días en los cuales se aumenta <strong>la</strong> frecuencia de los trenes, etc. Detección de<br />
conflictos basada en el algoritmo CAPRES, propiedad del Laboratorio <strong>para</strong><br />
Intermodalidad, Transporte y P<strong>la</strong>nificación (LITEP) en Lausanne. El módu-<br />
lo de <strong>la</strong> ocupación de cada vía en estación incluye: asignación de p<strong>la</strong>taforma<br />
según el sentido de viaje, longitud y horarios disponibles de cada vía, asig-<br />
nación interactiva de p<strong>la</strong>taforma por operaciones drag-and-drop sobre <strong>la</strong> in-<br />
terfaz gráfica, filtrar <strong>la</strong> ocupación por día de circu<strong>la</strong>ción y periodos de tiempo.<br />
Se puede seleccionar <strong>la</strong> información re<strong>la</strong>tiva al tren que va a ser desplegada,
268A. Sistemas desarrol<strong>la</strong>dos <strong>para</strong> <strong>la</strong> Generación y Optimización de horarios Ferroviarios<br />
como número de tren, día de circu<strong>la</strong>ción, horarios, sentido de viaje. Ofrece <strong>la</strong><br />
definición de varios perfiles de velocidad <strong>para</strong> <strong>la</strong> misma infraestructura, y el<br />
cálculo de los tiempos de recorrido <strong>para</strong> diferentes configuraciones de trenes.<br />
CAPRES. Ha sido desarrol<strong>la</strong>do por el Laboratorio de Intermodalidad, Trans-<br />
porte y P<strong>la</strong>nificación (LITEP) del Instituto Suizo de Tecnología Lausanne<br />
(EFPL) en co<strong>la</strong>boración con los ferrocarriles Federales de Suiza (SBB). Es un<br />
modelo <strong>para</strong> <strong>la</strong> e<strong>la</strong>boración y <strong>la</strong> saturación de variantes de horarios. CAPRES<br />
evalúa el uso de <strong>la</strong> capacidad como el número de trenes adicionales que pueden<br />
utilizar <strong>la</strong> red, cumpliendo con <strong>la</strong> estrategia de saturación definida por el oper-<br />
ador y <strong>la</strong>s restricciones consideradas. La ocupación de los tramos y estaciones<br />
así como los conflictos son resueltos automáticamente durante <strong>la</strong> e<strong>la</strong>boración<br />
y saturación. La saturación consiste en agregar <strong>la</strong> mayor cantidad de trenes<br />
considerando un conjunto determinado de restricciones. El orden en el que los<br />
nuevos trenes son agregados depende de <strong>la</strong> estrategia de saturación, lo cual<br />
asigna prioridades a los trenes.<br />
PLANNING TIMETABLE GENERATOR (PTG). Esta herramienta<br />
ha sido desarrol<strong>la</strong>da por AEA Technology Rail. Permite al operador especificar<br />
restricciones comerciales tales como, intervalo de llegada, intervalo de salida,<br />
mejores horarios <strong>para</strong> <strong>la</strong> salida, <strong>para</strong>das comerciales, entre otros. Además de<br />
estas restricciones, considera restricciones de capacidad y restricciones opera-<br />
cionales teniendo en cuenta tramos con múltiples vías de circu<strong>la</strong>ción. Según<br />
estas restricciones proporciona un horario factible. A medida que se modifican<br />
<strong>la</strong>s restricciones comerciales se generan otros horarios proporcionando reportes<br />
donde se com<strong>para</strong>n varios aspectos de <strong>la</strong>s soluciones entregadas.<br />
FastTrack II. Las consultoras Multimodal y Rail Sciences de At<strong>la</strong>nta, Gior-<br />
gia se han unido <strong>para</strong> desarrol<strong>la</strong>r <strong>la</strong> herramienta FastTrack II, <strong>la</strong> cual puede<br />
ser integrada dentro de <strong>la</strong> herramienta MultiRail de tal forma que los horar-<br />
ios puedan ser importados automáticamente. FastTrack permite evaluar un<br />
horario e indicar si es factible o no según <strong>la</strong>s restricciones que considera. Tam-<br />
bién permite modificar <strong>la</strong> infraestructura de <strong>la</strong> línea, y <strong>la</strong>s características de<br />
los trenes <strong>para</strong> evaluar el impacto de dichos cambios en el horario final. Otra<br />
de sus funcionalidades consiste en realizar un análisis teórico y práctico de <strong>la</strong>
A.1. Sistemas Software re<strong>la</strong>cionados con <strong>la</strong> P<strong>la</strong>nificación de Horarios Ferroviarios269<br />
capacidad de <strong>la</strong> línea.<br />
OPENTRACK. Esta herramienta ha sido desarrol<strong>la</strong>da por el Instituto <strong>para</strong><br />
Sistemas y P<strong>la</strong>nificación de Transporte (IVT). Dicho instituto forma parte del<br />
Instituto Federal Suizo de Tecnología (ETHZ).<br />
A partir de los datos de entrada (trenes, material rodante, infraestructura<br />
y horario), esta herramienta determina <strong>la</strong> ocupación de cada tramo y cada<br />
estación de <strong>la</strong> red. La simu<strong>la</strong>ción puede ser realizada en modo animación,<br />
donde se modifica <strong>la</strong> posición de cada uno de los trenes por unidad de tiempo.<br />
Entre los resultados que proporciona se hal<strong>la</strong>n: gráfico de <strong>la</strong> ocupación de <strong>la</strong>s<br />
vías, horario en formato gráfico y estadísticas realizadas sobre los retrasos.<br />
Durante <strong>la</strong> simu<strong>la</strong>ción se pueden introducir incidencias.<br />
Lipari. Aplicación desarrol<strong>la</strong>da por <strong>la</strong> Sociedad Nacional de Ferrocarriles<br />
Franceses (SNCF - Societe Nationale des Chemins de Fer). Es una herramienta<br />
de simu<strong>la</strong>ción que a partir de <strong>la</strong>s incidencias que ocurren durante el periodo<br />
de simu<strong>la</strong>ción produce un informe sobre <strong>la</strong> calidad de los horarios entrega-<br />
dos originalmente y propone <strong>la</strong>s modificaciones necesarias <strong>para</strong> aumentar <strong>la</strong><br />
robustez del mismo.<br />
FASTA. El sistema software ha sido desarrol<strong>la</strong>do por el Laboratorio de Inter-<br />
modalidad, Transporte y P<strong>la</strong>nificación (LITEP) del Instituto Federal Suizo de<br />
Tecnología Lausanne (EPFL), en cooperación con los Ferrocarriles Federales<br />
Suizos (SBB).<br />
Ha sido desarrol<strong>la</strong>do <strong>para</strong> analizar <strong>la</strong> conducta de una programación de ho-<br />
rarios a nivel de red ferroviaria, identificando y analizando los retrasos a nivel<br />
de red, indicando <strong>la</strong>s causas de los retrasos, su evolución y su distribución<br />
geográfica. La simu<strong>la</strong>ción tiene en cuenta determinadas restricciones tales co-<br />
mo tiempo de sucesión y conexiones entre trenes en estaciones. Puede utilizar<br />
un tiempo de recorrido determinado (modo determinístico) o bien generarlo<br />
utilizando una determinada función (modo estocástico). Utiliza una base de<br />
datos de <strong>la</strong> cual lee los datos que requiere y en <strong>la</strong> cual almacena los resultados<br />
obtenidos.
270A. Sistemas desarrol<strong>la</strong>dos <strong>para</strong> <strong>la</strong> Generación y Optimización de horarios Ferroviarios<br />
DEMIURGE. Es una herramienta que ofrece entre sus funcionalidades: eval-<br />
uar <strong>la</strong> capacidad de <strong>la</strong> red <strong>para</strong> absorber tráfico adicional, localizar cuellos<br />
de botel<strong>la</strong> en <strong>la</strong> red, asistir en <strong>la</strong> toma decisiones acerca de inversiones en<br />
infraestructura, optimizar horarios actuales y futuros, calcu<strong>la</strong>r <strong>la</strong> capacidad<br />
residual de un conjunto de horarios. DEMIURGE ha sido desarrol<strong>la</strong>da por el<br />
departamento de investigación de <strong>la</strong> SNCF.<br />
OPENTIMETABLE. Esta herramienta ha sido desarrol<strong>la</strong>da por el Instituto<br />
<strong>para</strong> Sistemas y P<strong>la</strong>nificación de Transporte (IVT). Dicho instituto forma parte<br />
del Instituto Federal Suizo de Tecnología (ETHZ).<br />
Entre sus funcionalidades cabe destacar que realiza un análisis y un control<br />
de calidad a una determinada programación de horarios, teniendo en cuenta<br />
<strong>la</strong>s incidencias que han ocurrido y los retrasos que se han producido, utiliza<br />
una representación gráfica, proporciona <strong>la</strong> distribución de los retrasos y <strong>la</strong><br />
distribución de <strong>la</strong> capacidad.<br />
AFAIG. Se encarga de <strong>la</strong> p<strong>la</strong>nificación de <strong>la</strong> distribución y de <strong>la</strong>s operaciones<br />
de <strong>la</strong>s principales estaciones de pasajeros. Ha sido desarrol<strong>la</strong>do por el Labo-<br />
ratorio de Intermodalidad, Transporte y P<strong>la</strong>nificación (LITEP) del Instituto<br />
Federal Suizo de Tecnología Lausanne (EPFL) en co<strong>la</strong>boración con <strong>la</strong> Com-<br />
pañía de Ferrocarriles Federales Suizos (SBB).<br />
RAILCAP. La aplicación RAILCAP ha sido desarrol<strong>la</strong>da por <strong>la</strong> compañía<br />
belga STRATEC con el objetivo de evaluar <strong>la</strong> capacidad de una red, en cuanto<br />
a holguras existentes y cuellos de botel<strong>la</strong>. Para ello utilizan <strong>la</strong> simu<strong>la</strong>ción con<br />
incidencias y <strong>la</strong> modificación de infraestructura.<br />
TPS/STRAX. Esta aplicación ha sido desarrol<strong>la</strong>da por <strong>la</strong> compañía alemana<br />
HaCon. Interfaz con otras aplicaciones software (Postcript, Adobe, Microsoft<br />
Office) y con el sistema de información de horarios HAFAS. Optimizado <strong>para</strong><br />
operar con tres pantal<strong>la</strong>s por cliente (Editor de Horarios, representación gráfica<br />
de los horarios, editor de infraestructura). Destacan entre sus funcionalidades:<br />
definición de estación y tramo, sistemas de señalización, mantenimiento de los<br />
datos de infraestructura, construcción de horarios con detección de conflictos,<br />
cálculo del tiempo de recorrido, horarios gráficos interactivos, y realización de
A.2. MOM: Módulo Optimizador de Mal<strong>la</strong>s 271<br />
informes.<br />
SImu<strong>la</strong>teur du SYstème FErroviaire - Rail System Simu<strong>la</strong>tor (SISYFE).<br />
Es una aplicación desarrol<strong>la</strong>da por el departamento de investigación de <strong>la</strong><br />
SNCF. Permite realizar simu<strong>la</strong>ciones precisas de <strong>la</strong> situación dada en <strong>la</strong> red<br />
ferroviaria bajo condiciones normales y bajo condiciones en <strong>la</strong>s cuales existen<br />
incidencias afectando a <strong>la</strong>s operaciones. SISYFE se ejecuta sobre los principios<br />
de <strong>la</strong> simu<strong>la</strong>ción de eventos discretos. También permite <strong>la</strong> evaluación de <strong>la</strong> ro-<br />
bustez de los diagramas de tráfico (esto es, su capacidad <strong>para</strong> tolerar eventos<br />
menores no previstos durante <strong>la</strong>s operaciones ordinarias), estudios técnicos-<br />
económicos <strong>para</strong> nuevos sistemas de control, modificaciones a insta<strong>la</strong>ciones<br />
fijas, definición de estrategias operacionales, y entrenamiento a <strong>la</strong>s personas<br />
que realizan <strong>la</strong> p<strong>la</strong>nificación de horarios y a los contro<strong>la</strong>dores.<br />
A.2. MOM: Módulo Optimizador de Mal<strong>la</strong>s<br />
El Módulo Optimizador de Mal<strong>la</strong>s (MOM) es una herramienta software desar-<br />
rol<strong>la</strong>da <strong>para</strong> evaluar <strong>la</strong> aplicación de los <strong>métodos</strong> y técnicas desarrol<strong>la</strong>dos en esta<br />
Tesis sobre datos reales. Para ello, el sistema tiene 3 componentes fundamentales: (i)<br />
Adquisición de datos, (ii) Resolución del problema, y (iii) Presentación de resulta-<br />
dos. De esta forma, mediante MOM se podrá especificar instancias del problema OPT<br />
(descripción formal en el Capítulo 3), buscar soluciones a <strong>la</strong>s mismas, y desplegar<br />
informes re<strong>la</strong>tivos a <strong>la</strong> solución hal<strong>la</strong>da.<br />
La especificación de cada instancia del problema OPT se realiza mediante un con-<br />
junto de interfaces proporcionadas por MOM. En el<strong>la</strong>s se indica el conjunto de trenes<br />
cuyos horarios se deberán programar y optimizar, el conjunto de trenes que ya se<br />
encuentra en circu<strong>la</strong>ción, cuyos horarios son conocidos y no podrán ser modificados,<br />
<strong>la</strong> secuencia de estaciones o línea ferroviaria junto con sus correspondientes atributos<br />
que definen <strong>la</strong> infraestructura ferroviaria, y <strong>la</strong> <strong>para</strong>metrización a <strong>la</strong>s restricciones y<br />
al proceso de optimización.<br />
MOM realiza <strong>la</strong> búsqueda de soluciones a <strong>la</strong> instancia especificada utilizando los<br />
<strong>métodos</strong> descritos en el Capítulo 5. Durante el proceso de búsqueda, son desplegados
272A. Sistemas desarrol<strong>la</strong>dos <strong>para</strong> <strong>la</strong> Generación y Optimización de horarios Ferroviarios<br />
en <strong>la</strong> interfaz principal datos re<strong>la</strong>tivos al proceso de generación de solución tales co-<br />
mo: el número de soluciones encontradas hasta el momento, el tiempo de ejecución<br />
actual, y el valor de <strong>la</strong> función objetivo correspondiente a <strong>la</strong> mejor solución hal<strong>la</strong>da<br />
hasta entonces. La generación de soluciones puede ser interrumpida por el usuario<br />
utilizando un botón de <strong>la</strong> aplicación, o alcanzando un determinado número de it-<br />
eraciones según el nivel de optimización que haya sido seleccionado previamente, o<br />
cumpliendo el tiempo máximo de ejecución previamente establecido.<br />
Una vez haya finalizado el proceso que genera <strong>la</strong>s soluciones, MOM puede de-<br />
splegar informes re<strong>la</strong>tivos a <strong>la</strong> mejor solución hal<strong>la</strong>da, así como almacenar el horario<br />
de cada tren, definido por dicha solución.<br />
La Figura A.1 representa <strong>la</strong> integración que existe entre MOM y <strong>la</strong> base de datos<br />
de <strong>la</strong> compañía ferroviaria. De <strong>la</strong> base de datos se obtiene los valores correspondientes<br />
a determinados atributos de <strong>la</strong> línea ferroviaria y de los trenes empleados en cada<br />
instancia. El p<strong>la</strong>nificador selecciona <strong>la</strong> línea ferroviaria a <strong>la</strong> cual desea agregar nuevos<br />
trenes, así como el conjunto de trenes a ser considerados, y posteriormente l<strong>la</strong>ma a<br />
<strong>la</strong> aplicación MOM con dicha información. MOM recibe el pedido del p<strong>la</strong>nificador<br />
y presenta una interfaz al p<strong>la</strong>nificador que le permitirá establecer los valores que<br />
desee a los parámetros utilizados durante el proceso de optimización.<br />
No se pretende que <strong>la</strong> programación de horarios proporcionada por MOM sea<br />
llevada a <strong>la</strong> práctica tal cual MOM <strong>la</strong> entrega, sino que sea una base a partir de <strong>la</strong><br />
cual expertos en <strong>la</strong> programación de horarios (en ade<strong>la</strong>nte, p<strong>la</strong>nificadores) puedan<br />
tomar ciertas decisiones con mayor facilidad, a partir de una programación factible<br />
y optimizada.<br />
En <strong>la</strong> sección A.2.1 se describirá cómo se especifica y se <strong>para</strong>metriza cada in-<br />
stancia del problema, y en <strong>la</strong> sección A.2.5 se indicarán los diversos usos que pueden<br />
hacerse de MOM, según el objetivo que se persiga. En todos ellos, MOM actúa como<br />
una herramienta de soporte de decisiones.<br />
A.2.1. Especificación y Parametrización de una Instancia<br />
En esta sección se describirá <strong>la</strong> forma en que una instancia de OPT es definida,<br />
en cuanto a los elementos del problema, trenes y línea ferroviaria, así como a los<br />
recursos, infraestructura, además de los parámetros que pueden ser especificados en
A.2. MOM: Módulo Optimizador de Mal<strong>la</strong>s 273<br />
Ferroviari LíneaTrena<br />
por de de Tramo Tren as de Secuencia vías de DependenciCantidad<br />
andén con vías de Cantidad Tramo por vías de Cantidad Tramo por Bloqueo de Tipo Cierre de Horario Tipodor Identifica Nombre n ID Recorrido Tipo TiempoTren RecorridoTramo<br />
Comercial ParadaCircu<strong>la</strong>ció<br />
de Días nto Mantenimie de Bandas Datos de Base Horarios de ión ActualizacOptimizada Solución OPT por<br />
del Datos Problema<br />
Figura A.1: Datos recibidos por MOM correspondientes al conjunto de trenes y línea<br />
ferroviaria seleccionada por el p<strong>la</strong>nificador<br />
<strong>la</strong>s restricciones y en los criterios de optimización.<br />
Trenes y Recorrido<br />
Una de <strong>la</strong>s interfaces de MOM, a <strong>la</strong> cual denominamos LTS (Lista de Trenes Se-<br />
leccionados), permite seleccionar aquellos trenes cuyos horarios se desea programar<br />
y optimizar. Una vez se confirma <strong>la</strong> elección, los trenes seleccionados desaparecen de<br />
<strong>la</strong> LTS y pasan a formar parte de <strong>la</strong> LTO (Lista de Trenes a Optimizar). Los no se-<br />
leccionados permanecen en <strong>la</strong> LTS, y son considerados trenes en circu<strong>la</strong>ción, es decir,<br />
trenes cuyos horarios deberán ser considerados en el momento de <strong>la</strong> optimización,
274A. Sistemas desarrol<strong>la</strong>dos <strong>para</strong> <strong>la</strong> Generación y Optimización de horarios Ferroviarios<br />
pero no deberán ser modificados.<br />
La información referente a los trenes de <strong>la</strong> LTO es desplegada en el diálogo<br />
principal de MOM.<br />
de Tab<strong>la</strong> Filtradode Criterios Trenes<br />
Figura A.2: Especificar criterios <strong>para</strong> visualizar un subconjunto de los trenes considerados<br />
Resultado<br />
Para facilitar <strong>la</strong> tarea de formar <strong>la</strong> LTO, especialmente en los casos donde el<br />
número de trenes es muy elevado, se proporciona unos criterios mediante los cuales<br />
se filtra del total de trenes desplegados, únicamente aquellos que satisfagan <strong>la</strong> combi-<br />
nación de criterios indicada por el p<strong>la</strong>nificador. Los criterios, seña<strong>la</strong>dos en <strong>la</strong> Figura<br />
A.2 por Criterios de Filtrado son algunas de <strong>la</strong>s características de los trenes como:<br />
tipo de operador, sentido de viaje e identificador. Por ejemplo si el p<strong>la</strong>nificador desea<br />
visualizar solo trenes cuyo tipo sea R”(Regionales), entonces bastará con seleccionar<br />
el valor R”del cuadro de operadores, y posteriormente presionar el botón cuya eti-<br />
queta es Aplicar Filtro. Si además se desea agregar <strong>la</strong> condición que viajen en sentido<br />
”Vuelta”, pues entonces se deberá especificar ambas condiciones y luego presionar
A.2. MOM: Módulo Optimizador de Mal<strong>la</strong>s 275<br />
- 4LTO<br />
visualiza trenes los todos de Elección - 2 dos<br />
<strong>la</strong> de Creación - 3 LTO<br />
- 1Filtro<br />
Figura A.3: Elección y Confirmación de los trenes cuyos horarios se deberán optimizar<br />
el botón con etiqueta Aplicar Filtro. En <strong>la</strong> Figura A.2 se muestra un ejemplo en el<br />
cual el p<strong>la</strong>nificador ha solicitado se desplieguen en <strong>la</strong> tab<strong>la</strong> de trenes, únicamente<br />
aquellos cuyo tipo sea igual a ”L”(Grandes Líneas), su sentido de viaje sea igual a<br />
”Ida”, y su identificador esté formado por <strong>la</strong> secuencia de caracteres ”006*”(identi-<br />
ficador que empiece con los caracteres ”006”seguidos de cualquier otra secuencia de<br />
caracteres). A continuación, se presiona el botón con <strong>la</strong> etiqueta Aplicar Filtro y se<br />
obtiene el resultado mostrado en el diálogo inferior de <strong>la</strong> Figura A.2.<br />
Días de Circu<strong>la</strong>ción<br />
Uno de los atributos que se considera por cada tren son los días que este circu<strong>la</strong><br />
en <strong>la</strong> línea ferroviaria.<br />
El p<strong>la</strong>nificador decide si MOM deberá tenerlos en cuenta o no. En caso afirma-<br />
tivo, MOM verificará <strong>la</strong>s restricciones de tráfico que involucran a dos trenes, sólo
276A. Sistemas desarrol<strong>la</strong>dos <strong>para</strong> <strong>la</strong> Generación y Optimización de horarios Ferroviarios<br />
entre aquellos que tengan algún día de circu<strong>la</strong>ción en común. En el caso que los días<br />
de circu<strong>la</strong>ción no sean tenidos en cuenta, dicha verificación de restricciones será ll-<br />
evada a cabo entre todos los pares de trenes que tengan posibilidad de conflicto,<br />
independientemente del día que circulen, es decir, será equivalente a considerar que<br />
todos los trenes circu<strong>la</strong>n todos los días de <strong>la</strong> semana.<br />
Figura A.4: Trenes considerados durante <strong>la</strong> Optimización utilizando cierta línea<br />
ferroviaria<br />
En <strong>la</strong> Figura A.4 se muestra una determinada línea ferroviaria (eje y), con todos<br />
los trenes que serán considerados durante <strong>la</strong> optimización. Cada uno de estos trenes<br />
tiene asignado un determinado conjunto de días de circu<strong>la</strong>ción. Entre ellos existen<br />
trenes que no compartirán tramos de <strong>la</strong> línea ningún día, por no tener ningún día<br />
de circu<strong>la</strong>ción en común. Así, en <strong>la</strong> Figura A.5 se muestran aquellos trenes de <strong>la</strong><br />
Figura A.4 que tienen entre sus días de circu<strong>la</strong>ción a los días Sábado y Domingo.<br />
Los trenes que no aparecen en <strong>la</strong> Figura A.5, son aquellos que no circu<strong>la</strong>n ni sábados<br />
ni domingos.
A.2. MOM: Módulo Optimizador de Mal<strong>la</strong>s 277<br />
Figura A.5: Trenes considerados durante <strong>la</strong> optimización, cuyos días de circu<strong>la</strong>ción<br />
incluyen Sábado y Domingo<br />
En <strong>la</strong> Figura A.6 se muestra una parte de <strong>la</strong> solución hal<strong>la</strong>da correspondiente a<br />
<strong>la</strong> instancia considerada en <strong>la</strong>s figuras previas. Antes de resolver el problema se ha<br />
decidido tener en cuenta los días de circu<strong>la</strong>ción de los trenes, por lo tanto los trenes<br />
que son seña<strong>la</strong>dos por los círculos 1, 2, y 3 pueden utilizar el mismo tramo al mismo<br />
tiempo, aún cuando los trenes viajan en sentidos opuestos y el tramo consta de una<br />
única vía de circu<strong>la</strong>ción. Esto se considera factible y por lo tanto una solución al<br />
problema debido a que los trenes seña<strong>la</strong>dos no tienen ningún día de circu<strong>la</strong>ción en<br />
común.<br />
Demora por Parada no Prevista<br />
En cada tramo del recorrido de un tren se indica <strong>la</strong> cantidad de tiempo que el<br />
tren deberá emplear en recorrerlo. El valor asignado tiene en cuenta <strong>la</strong> distancia<br />
entre una dependencia y otra del tramo, así como <strong>la</strong> velocidad promedio que el tren<br />
utilizará en el mismo.<br />
Si el tren requiere detenerse en una estación, en <strong>la</strong> cual no estaba prevista <strong>para</strong>da<br />
alguna, su velocidad promedio disminuye, tanto en el tramo anterior como posterior<br />
a dicha estación. En el tramo anterior disminuye <strong>para</strong> lograr el frenado. En el tramo
278A. Sistemas desarrol<strong>la</strong>dos <strong>para</strong> <strong>la</strong> Generación y Optimización de horarios Ferroviarios<br />
1 23 Figura A.6: Cruce entre 3 Trenes sin días de circu<strong>la</strong>ción en común<br />
siguiente disminuye porque se requiere un tiempo <strong>para</strong> pasar de velocidad cero a <strong>la</strong><br />
velocidad promedio establecida inicialmente. MOM ofrece como una opción, tener<br />
en cuenta <strong>la</strong> disminución de velocidad que se produce, con respecto a <strong>la</strong> velocidad<br />
inicialmente especificada <strong>para</strong> el tren en los tramos correspondientes.<br />
k l k l<br />
Figura A.7: Opciones <strong>para</strong> gestionar una Parada no prevista en una estación<br />
l<br />
<strong>para</strong>da ocasiona que Conflicto 2 Opción tramo tramo 1 Opción i t j t i tj t i tj t k<br />
Como un ejemplo a lo expuesto en el párrafo anterior, en <strong>la</strong> Figura A.7 se pro- técnica<br />
porcionan 3 gráficos. Considerándolos de izquierda a derecha, en el primero se indica<br />
que existiría un conflicto entre los trenes ti y tj, si ambos utilizan al mismo tiempo<br />
tramo2 tramo1<br />
tramo2 1<br />
tramo2 1<br />
el tramo 1. Se decide que debe esperar en <strong>la</strong> estación lk el tren ti. Como puede<br />
verse en el primer gráfico, ti no tenía prevista <strong>para</strong>da comercial en lk. Por lo tanto,<br />
una vez se decide detener a ti en lk, existen dos opciones: (i) aumentar el tiempo de
A.2. MOM: Módulo Optimizador de Mal<strong>la</strong>s 279<br />
recorrido en el tramo 1 y en el tramo 2, ya que <strong>la</strong> <strong>para</strong>da implica una disminución de<br />
velocidad en ambos tramos (Opción 1 en <strong>la</strong> Figura A.7), o (ii) obviar <strong>la</strong> <strong>para</strong>da que<br />
se realiza, y utilizar el mismo tiempo de recorrido que el especificado previamente<br />
<strong>para</strong> el tren en ambos tramos (Opción 2 en <strong>la</strong> Figura A.7).<br />
A.2.2. Parametrización de Restricciones Comerciales<br />
Existen ciertas restricciones a <strong>la</strong>s cuales se ha agrupado como restricciones com-<br />
erciales porque tienen que ver directamente con el servicio ofrecido al cliente. Cada<br />
una de estas restricciones tiene un parámetro que es definido por el p<strong>la</strong>nificador. A<br />
continuación se indica <strong>la</strong> forma en que esta <strong>para</strong>metrización es realizada por MOM.<br />
Intervalos de Salida e Intervalos de Llegada<br />
Por cada tren ti de <strong>la</strong> LTO es posible especificar un instante de tiempo Si, que<br />
será utilizado por MOM como una referencia <strong>para</strong> calcu<strong>la</strong>r el instante de salida<br />
del tren, de su estación origen. Así mismo, por cada tren de <strong>la</strong> LTO se especifica<br />
un instante de llegada Li, que será utilizado como referencia <strong>para</strong> determinar si el<br />
instante de llegada del tren es o no factible.<br />
Además de los instantes de tiempo Si y Li es necesario especificar <strong>la</strong> tolerancia<br />
sobre Si y <strong>la</strong> tolerancia sobre Li. Esto es, <strong>la</strong> diferencia que puede existir entre<br />
los instantes de tiempo dados como referencia, Si y Li, y los instantes de tiempo<br />
asignados por MOM, como parte de <strong>la</strong> solución entregada. En MOM se distinguen<br />
tres formas de expresar <strong>la</strong> tolerancia: (i) como un intervalo [m, n], (ii) A Tiempo, o<br />
(iii) Indefinido.<br />
(i) Cuando <strong>la</strong> tolerancia sobre el instante de salida Si es expresada como un<br />
intervalo [m, n], significa que se considerará factible que el tren salga de su estación<br />
origen en cualquier instante perteneciente a [S−m, S+n], ambos inclusive. Si se trata<br />
de <strong>la</strong> tolerancia sobre el instante de llegada Li, determina como factibles cualquier<br />
instante de llegada perteneciente al intervalo [L − m, L + n], ambos inclusive. MOM<br />
deberá decidir entre todos los instantes factibles, aquel que produzca el mejor horario<br />
según <strong>la</strong> función objetivo.<br />
(ii) La tolerancia A Tiempo, sobre el instante de salida inicial de un tren, indica<br />
que si existe un horario factible <strong>para</strong> el mismo, en el cual parta de su estación inicial
280A. Sistemas desarrol<strong>la</strong>dos <strong>para</strong> <strong>la</strong> Generación y Optimización de horarios Ferroviarios<br />
en el instante Si, este deberá ser necesariamente el instante de tiempo asignado por<br />
MOM. En caso contrario, <strong>la</strong> salida inicial del tren deberá ser el menor instante posi-<br />
ble posterior a Si que genere un horario factible <strong>para</strong> ti. Si se trata de <strong>la</strong> tolerancia<br />
sobre el instante de llegada, indica que el tren deberá llegar en el instante Li de ser<br />
posible. En caso contrario deberá llegar en el mayor instante de tiempo anterior a<br />
Li, que sea factible.<br />
(iii) Cuando el tipo de tolerancia es Indefinido significa que no se expresa restric-<br />
ción sobre el instante de salida o sobre el instante de llegada, según corresponda.<br />
MOM no permite que <strong>la</strong> tolerancia sea del tipo Indefinido sobre el instante de salida<br />
y sobre el instante de llegada de un mismo tren.<br />
Retraso Máximo<br />
A cada tren le corresponde un tiempo de recorrido ideal, que es el menor tiem-<br />
po que puede emplear <strong>para</strong> completar su recorrido. Este tiempo está dado por <strong>la</strong><br />
velocidad promedio y <strong>la</strong> distancia en cada tramo, más <strong>la</strong>s <strong>para</strong>das comerciales es-<br />
tablecidas en cada dependencia de su recorrido. Una de <strong>la</strong>s restricciones sobre el<br />
horario impuesto a cada tren consiste en limitar el retraso que pueda llevar el tren<br />
con respecto al tiempo de recorrido ideal. Dado que:<br />
el tiempo de recorrido ideal τi de un tren ti está dado por τi = mi−1 <br />
j=0<br />
∆ i j→j+1 +<br />
C i j, y representa el mínimo tiempo que este puede emplear <strong>para</strong> completar su<br />
recorrido, desde su estación origen hasta su estación destino, cumpliendo con<br />
el tiempo de recorrido establecido por cada tramo, y con <strong>la</strong> <strong>para</strong>da comercial<br />
especificada por cada dependencia.<br />
Λi = arr i mi − depi 0 es el tiempo empleado por ti <strong>para</strong> completar su recorrido,<br />
según el horario asignado por MOM.<br />
El retraso de ti sería Di = Λi−τi . MOM permite especificar el máximo valor permi-<br />
τi<br />
tido <strong>para</strong> Di. MOM permite que el usuario especifique retraso indefinido <strong>para</strong> un<br />
tren, sobre el cual no se requiere limitar su retraso con un valor determinado. En<br />
este caso el retraso del tren estará restringido únicamente por <strong>la</strong> función objetivo del<br />
problema, <strong>la</strong> cual guía hacia un conjunto de horarios con el menor retraso promedio<br />
posible.
A.2. MOM: Módulo Optimizador de Mal<strong>la</strong>s 281<br />
Periodicidad en Salida<br />
Cuando se requiere un determinado periodo de tiempo entre <strong>la</strong>s salidas de dos<br />
trenes consecutivos, MOM permite especificar el grupo o conjunto de trenes entre<br />
los cuales se desea establecer dicha restricción así como <strong>la</strong>s estaciones en <strong>la</strong>s cuales<br />
deberá ser cumplida.<br />
Para ello es posible formar grupos entre los trenes de <strong>la</strong> LTO, ya que <strong>la</strong> restricción<br />
de periodicidad en salida solo afectará a los trenes que formen parte del mismo grupo,<br />
permitiendo además <strong>para</strong>metrizar <strong>la</strong> restricción por cada grupo, con valores que no<br />
tienen por qué ser los mismos.<br />
Una vez se establecen el, o los grupos de trenes, por cada uno es necesario<br />
especificar <strong>la</strong> siguiente información:<br />
el tren de referencia, es decir el tren a partir del cual se calcu<strong>la</strong>rá el instante<br />
de salida de los siguientes trenes del grupo.<br />
periodo de tiempo que deberá cumplirse entre dos salidas consecutivas. El<br />
periodo de tiempo podrá estar dado por un intervalo, o podrá ser del tipo<br />
Múltiple.<br />
En el primer caso se establece un intervalo [a, b], indicando que el periodo de<br />
tiempo entre <strong>la</strong>s salidas consecutivas deberá pertenecer al mismo, siempre y<br />
cuando el promedio de valores establecidos por MOM sea lo más cercano posi-<br />
ble a a+b<br />
2 . Sin embargo, si se selecciona Múltiple, entonces se pueden especificar<br />
n valores, p1, ..., pn, de tal forma que el periodo de tiempo entre los trenes<br />
consecutivos t i mod n y t i+1 mod n sea igual a pi.<br />
estaciones donde se verificará periodicidad. Se puede indicar <strong>la</strong> estación inicial,<br />
o bien, <strong>la</strong> estación inicial y toda estación en <strong>la</strong> cual se haya especificado <strong>para</strong>da<br />
comercial <strong>para</strong> el tren.<br />
Como ejemplo, considere que se han formado dos grupos de trenes a partir<br />
de los trenes de <strong>la</strong> LTO, con el objetivo de que exista un determinado periodo<br />
de tiempo entre <strong>la</strong>s salidas consecutivas de los trenes de cada grupo. En uno de<br />
los grupos se han incluido a todos los trenes que viajan en sentido ida, y en el<br />
otro a todos los trenes que viajan en sentido vuelta. Posteriormente, utilizando los<br />
diálogos mostrados en <strong>la</strong> Figura A.8 hemos <strong>para</strong>metrizado <strong>la</strong> restricción, asignando
282A. Sistemas desarrol<strong>la</strong>dos <strong>para</strong> <strong>la</strong> Generación y Optimización de horarios Ferroviarios<br />
a los trenes del primer grupo, periodos de tiempo múltiple, específicamente, de 20,<br />
30 y 40 minutos (diálogo (a) en <strong>la</strong> Figura A.8). Para los trenes del segundo grupo<br />
se ha seleccionado como periodo de tiempo el intervalo [30, 30] (diálogo (b) en <strong>la</strong><br />
Figura A.8), es decir deberá existir entre <strong>la</strong>s salidas de dos trenes consecutivos de<br />
dicho grupo, exactamente 30 minutos. En ambos diálogos, se ha indicado que se<br />
deberá cumplir dicha restricción solo en <strong>la</strong>s estaciones origen de cada uno de los<br />
trenes.<br />
) (a<br />
Figura A.8: Edición de los parámetros <strong>para</strong> especificar Periodicidad en Salida<br />
(b<br />
)
A.2. MOM: Módulo Optimizador de Mal<strong>la</strong>s 283<br />
En <strong>la</strong> Figura 3.15 se muestra una de <strong>la</strong>s soluciones obtenidas. En el<strong>la</strong> se puede<br />
ver que los trenes que viajan en sentido ida salen de <strong>la</strong> estación origen cada 20, 30<br />
y 40 minutos, repitiéndose esta secuencia cada tres trenes del grupo. Por otro <strong>la</strong>do,<br />
entre <strong>la</strong>s salidas de los trenes que viajan en sentido vuelta, el tiempo que existe es<br />
exactamente igual a 30 minutos. Como referencia, podemos decir que en <strong>la</strong> Figura<br />
3.15 existe una línea vertical cada 30 minutos.<br />
Figura A.9: Solución que satisfacen una determinada periodicidad en salida<br />
A.2.3. Parametrización de <strong>la</strong> Infraestructura Ferroviaria<br />
Otras restricciones son especificadas <strong>para</strong> que se tenga en cuenta <strong>la</strong> capacidad<br />
de <strong>la</strong> infraestructura. Los datos sobre <strong>la</strong> infraestructura son obtenidos desde <strong>la</strong> base<br />
de datos de <strong>la</strong> compañía. Pueden ser utilizados estos datos, o bien, pueden ser<br />
modificados en forma local, según lo describimos a continuación.
284A. Sistemas desarrol<strong>la</strong>dos <strong>para</strong> <strong>la</strong> Generación y Optimización de horarios Ferroviarios<br />
Tiempo de Recorrido<br />
Por cada tren y por cada tramo de su correspondientes recorrido, MOM obtiene<br />
de <strong>la</strong> base de datos dos posibles valores que representan el tiempo que el tren de-<br />
berá emplear en recorrerlo. Los denominamos tiempo de recorrido ’tipo 1 ’, y tiempo<br />
de recorrido ’tipo 2 ’, respectivamente. Se especifican dos valores, ya que de esta<br />
forma es posible indicar otro valor además del tiempo teórico. En ciertos casos, el<br />
p<strong>la</strong>nificador sabe que en determinados tramos, por alguna razón, obras, inclemen-<br />
cias del tiempo, accidentes, no podrá cumplirse el tiempo teórico, entonces establece<br />
como un segundo valor en el mismo tramo, un determinado tiempo, que según su<br />
experiencia produciría un horario más realista.<br />
En <strong>la</strong> Figura A.10 se muestra <strong>la</strong> posición de un mismo tren en función del tiempo,<br />
según emplee como tiempo de recorrido, uno u otro valor especificado como válido en<br />
cada tramo. Las líneas continuas indican <strong>la</strong> posición del tren en función del tiempo<br />
cuando se emplea el tiempo ’tipo 1’. Las líneas de puntos indican <strong>la</strong> posición del<br />
mismo tren en función del tiempo, cuando se emplea el tiempo de recorrido ’tipo 2’.<br />
Antes de iniciar el proceso de optimización es necesario que el p<strong>la</strong>nificador decida<br />
cuál de los dos tipos de tiempo de recorrido utilizará MOM <strong>para</strong> calcu<strong>la</strong>r el horario<br />
de cada tren. Si se selecciona el tipo 1 <strong>para</strong> el tren t, entonces MOM utilizará como<br />
tiempo de recorrido en cada tramo del recorrido de t los valores correspondientes al<br />
tipo 1. Es decir, no podrá utilizar el valor correspondiente al tipo 1 <strong>para</strong> recorrer un<br />
tramo y el valor correspondiente al tipo 2 <strong>para</strong> recorrer otro.<br />
Aumento y Disminución de Estaciones en una misma Línea<br />
La línea ferroviaria a <strong>la</strong> cual se deberán agregar nuevos trenes está formada por<br />
una secuencia de dependencias y cada dependencia a su vez consta de determinados<br />
atributos, entre ellos el tipo al cual pertenece. Cuando una dependencia es del tipo<br />
Estación, se considera factible que un tren se detenga en el<strong>la</strong>, aún cuando no tenga<br />
previsto una <strong>para</strong>da comercial en <strong>la</strong> misma. Es decir, es factible <strong>la</strong> <strong>para</strong>da de un<br />
tren mientras otro libera el tramo que este también requiere utilizar, o mientras se<br />
libera una de <strong>la</strong>s vías de <strong>la</strong> siguiente estación de su recorrido, que en el instante<br />
considerado se hal<strong>la</strong> sin vías disponibles. En los demás tipos de dependencias, no se<br />
considera factible este tipo de operaciones, los trenes no pueden detenerse un tiempo
A.2. MOM: Módulo Optimizador de Mal<strong>la</strong>s 285<br />
( )<br />
(<br />
y asDependenci<br />
Figura A.10: Dos valores <strong>para</strong> el tiempo de recorrido de cada tren en cada tramo de<br />
su recorrido Tiempo Tiempo tipo 2 Tiempo tipo 1<br />
superior al especificado <strong>para</strong> su <strong>para</strong>da comercial.<br />
MOM permite modificar el tipo de cada dependencia del recorrido de un tren.<br />
Esta modificación solo afecta al tren <strong>para</strong> el cual se realiza <strong>la</strong> <strong>para</strong>metrización, <strong>la</strong><br />
cual es llevada a cabo con dos objetivos diferentes, según sea el cambio realizado.<br />
a) Si el tipo de dependencia se modifica de ’Estación’ a ’NO estación’, el objetivo<br />
es impedir que el tren realice cualquier operación técnica en <strong>la</strong> misma. Se desea llevar<br />
<strong>la</strong> operación técnica, que generalmente se haría en dicha estación, a alguna de <strong>la</strong>s<br />
previas, o a alguna de <strong>la</strong>s siguientes.<br />
b) Si <strong>la</strong> modificación consiste en convertir una dependencia tipo ’NO estación’ a<br />
una dependencia tipo ’Estación’, el objetivo es conocer el impacto que causaría en <strong>la</strong><br />
solución global, el incremento de estaciones en <strong>la</strong> línea, y sobre todo en <strong>la</strong> ubicación<br />
seleccionada por el p<strong>la</strong>nificador.<br />
Esta funcionalidad permite contro<strong>la</strong>r <strong>la</strong> gestión de cruces y alcances en cuanto<br />
al lugar donde se desea gestionarlos, así como también permiten evaluar ciertos<br />
cambios en <strong>la</strong> infraestructura, sin que <strong>para</strong> ello se deba realizar un cambio en <strong>la</strong><br />
base de datos central.<br />
) x
286A. Sistemas desarrol<strong>la</strong>dos <strong>para</strong> <strong>la</strong> Generación y Optimización de horarios Ferroviarios<br />
Figura A.11: Modificación del tipo de Dependencia <strong>para</strong> un determinado tren<br />
En <strong>la</strong> Figura A.11, mediante <strong>la</strong> interfaz proporcionada por MOM se establece que<br />
<strong>la</strong> Estación 79601 dejará de serlo <strong>para</strong> el tren 25600, que es el primer tren que viaja<br />
en sentido vuelta en <strong>la</strong> Figura 3.15. Una vez se ejecuta el proceso de optimización,<br />
el resultado obtenido es el mostrado en <strong>la</strong> Figura A.12. De esta manera, el sistema<br />
permite comprobar que no existe un horario factible que satisfaga el periodo de<br />
tiempo de 30 minutos entre salidas consecutivas, si <strong>la</strong> dependencia 79601 no puede<br />
ser utilizada como Estación. Únicamente sería posible si ningún tren de vuelta se<br />
cruza con los trenes que viajan en sentido ida.<br />
Bandas de Mantenimiento<br />
En una línea ferroviaria se indican <strong>la</strong> posición y los instantes de tiempo en<br />
los cuales se prevén operaciones de mantenimiento. En <strong>la</strong>s Figuras A.13 y A.14 el<br />
conjunto de puntos, posición (eje y) y tiempo (eje x), correspondientes a <strong>la</strong>s bandas<br />
de mantenimiento son seña<strong>la</strong>dos mediante <strong>la</strong>s regiones sombreadas, indicando que<br />
en esa posición y en ese instante de tiempo el número de vías disminuye en uno.<br />
En <strong>la</strong>s Figuras A.13 y A.14 se muestra una misma instancia del problema OPT.<br />
Todos los tramos de línea que aparecen en estas figuras son tramos de vía doble. Sin<br />
embargo, si se consideran <strong>la</strong>s bandas de mantenimiento, no podrán ser utilizadas am-<br />
bas vías <strong>para</strong> circu<strong>la</strong>ción en <strong>la</strong>s regiones seña<strong>la</strong>das por <strong>la</strong>s bandas de mantenimiento,<br />
ya que solo quedará disponible una de el<strong>la</strong>s durante un periodo de tiempo.<br />
Si se elige optimizar considerando <strong>la</strong>s bandas de mantenimiento especificadas<br />
en <strong>la</strong> línea, una de <strong>la</strong>s soluciones proporcionadas por MOM es <strong>la</strong> mostrada en <strong>la</strong>
A.2. MOM: Módulo Optimizador de Mal<strong>la</strong>s 287<br />
Figura A.12: Solución en <strong>la</strong> cual <strong>la</strong> dependencia 79601 no se considera Estación<br />
Figura A.13. En este caso no se permite que dos trenes que viajan en sentidos<br />
opuestos utilicen un mismo tramo al mismo tiempo, si dicho tramo se hal<strong>la</strong> bajo<br />
mantenimiento en el instante considerado.<br />
MOM también puede resolver el mismo problema, obviando <strong>la</strong>s bandas de man-<br />
tenimiento especificadas en <strong>la</strong> línea. Esto significa que considerará <strong>la</strong>s dos vías de<br />
circu<strong>la</strong>ción existentes en el tramo, aún cuando se haya especificado mantenimiento<br />
<strong>para</strong> el mismo en el instante considerado. En <strong>la</strong> Figura A.14 se muestra una de <strong>la</strong>s<br />
soluciones obtenidas por MOM <strong>para</strong> <strong>la</strong> misma instancia considerada previamente,<br />
cuando el p<strong>la</strong>nificador decide obtener soluciones sin tener en cuenta <strong>la</strong>s bandas de<br />
mantenimiento de <strong>la</strong> línea utilizada.<br />
Parametrización por Dependencia<br />
MOM recibe <strong>la</strong> especificación de cada dependencia consistente en un conjunto<br />
determinado de atributos con su valor correspondiente. Previamente a cada opti-<br />
mización es posible modificar dicha especificación ya sea <strong>para</strong> una o más dependen-<br />
cias de <strong>la</strong> línea ferroviaria considerada.<br />
MOM proporciona <strong>la</strong> interfaz mostrada en <strong>la</strong> Figura A.15 que permite editar
288A. Sistemas desarrol<strong>la</strong>dos <strong>para</strong> <strong>la</strong> Generación y Optimización de horarios Ferroviarios<br />
Figura A.13: Solución obtenida considerando <strong>la</strong>s Bandas de Mantenimiento<br />
por cada dependencia, los valores correspondientes a los siguientes atributos:<br />
Cantidad Total de Vias,<br />
Cantidad de Vías con Andén,<br />
Horario de Apertura, y<br />
Horario de Cierre<br />
Cuando se modifica <strong>la</strong> cantidad total de vías a un valor inferior al de cantidad<br />
de vías con andén, se modifica automáticamente el valor de este segundo atributo<br />
igualándolo al del primero, ya que no pueden haber menos vías que el número de<br />
vías con andén.<br />
El horario de apertura de una dependencia es editado cuando se desea eliminar<br />
algún intervalo del horario de cierre en <strong>la</strong> misma. Así, si originalmente se establece<br />
que <strong>la</strong> dependencia estará cerrada de 00:00 hs a 06:00 hs, pero se requiere hacer una<br />
prueba en <strong>la</strong> cual el cierre se produzca desde <strong>la</strong>s 04:00 hs, entonces se introduce un<br />
horario de apertura igual a 00:00 hs - 04:00 hs.<br />
El horario de cierre se introduce en una dependencia cuando se desea el efecto<br />
contrario, cerrar por un periodo de tiempo una dependencia que en <strong>la</strong> especificación<br />
original permanece abierta durante dicho intervalo de tiempo.
A.2. MOM: Módulo Optimizador de Mal<strong>la</strong>s 289<br />
Figura A.14: Solución obtenida sin considerar <strong>la</strong>s Bandas de Mantenimiento<br />
Los atributos considerados por cada dependencia pueden ser re-establecidos a<br />
sus valores originales.<br />
Parametrización por Tramo<br />
Al igual que por cada dependencia, MOM recibe <strong>la</strong> especificación de cada tramo,<br />
en cuanto a atributos y valores correspondientes a cada uno.<br />
En <strong>la</strong> Figura A.16 se muestra <strong>la</strong> interfaz que proporciona MOM <strong>para</strong> editar los<br />
atributos de cada tramo de <strong>la</strong> línea ferroviaria considerada.<br />
Por cada tramo y por cada sentido de viaje es posible editar el valor de los<br />
siguientes atributos:<br />
Tipo de Bloqueo: puede ser manual (M ) o automático (A). En el primer caso<br />
no se permite que dos trenes que viajan en el mismo sentido ocupen un mismo<br />
tramo al mismo tiempo. Si el bloqueo es automático, debe existir una deter-<br />
minada diferencia de tiempo entre <strong>la</strong>s salidas y entre <strong>la</strong>s llegadas de los trenes,<br />
al inicio y al final del tramo respectivamente. La cantidad de tiempo <strong>para</strong> <strong>la</strong><br />
sucesión automática es <strong>para</strong>metrizada según se explica en <strong>la</strong> sección A.2.4.<br />
Tiempo Adicional: a partir del tipo de tiempo de recorrido que se establece
290A. Sistemas desarrol<strong>la</strong>dos <strong>para</strong> <strong>la</strong> Generación y Optimización de horarios Ferroviarios<br />
Figura A.15: Edición de atributos correspondientes a dependencias de una línea<br />
<strong>para</strong> cada tramo de una línea, se obtiene el valor que deberá emplear un tren<br />
en recorrerlo. Es posible aumentar este valor en <strong>la</strong> cantidad de segundos que se<br />
especifica como valor de este atributo. Así, si consideramos <strong>la</strong> <strong>para</strong>metrización<br />
realizada en <strong>la</strong> Figura A.16 vemos que se ha indicado que los trenes que viajan<br />
en sentido ida deberán emplear 300 segundos más que el tiempo de recorrido<br />
establecido <strong>para</strong> los mismo en el tramo 64100-B6402.<br />
Tipo de Tiempo de Recorrido: como ha sido descrito en <strong>la</strong> sección A.2.3, por<br />
cada tramo se especifican dos tipos de tiempo de recorrido (tipo 1 y tipo 2 ).<br />
Mediante <strong>la</strong> interfaz mostrada en <strong>la</strong> Figura A.16, es posible indicar cuál de los<br />
dos tipos deberá ser el utilizado por los trenes que viajan en un determinado<br />
sentido.<br />
Por cada tramo también es posible establecer el número de vías, uno o dos, que<br />
se deberán utilizar durante <strong>la</strong> circu<strong>la</strong>ción de los trenes en el tramo. El valor asignado<br />
a este atributo es común a los trenes de ambos sentidos.<br />
Es importante notar, que <strong>la</strong> especificación de los tramos, llevada a cabo mediante<br />
<strong>la</strong> interfaz desplegada en <strong>la</strong> Figura A.16, afectará a todos los trenes del problema,
A.2. MOM: Módulo Optimizador de Mal<strong>la</strong>s 291<br />
Figura A.16: Edición de atributos correspondientes a tramos de una línea<br />
ya que <strong>la</strong> especificación se realiza por tramo, y <strong>para</strong> ciertos atributos, por tramo y<br />
por sentido.<br />
A.2.4. Parametrización de <strong>la</strong> Optimización<br />
En esta sub sección indicamos los parámetros empleados durante <strong>la</strong> optimización<br />
así como <strong>la</strong> forma en que estos son especificados por el p<strong>la</strong>nificador.<br />
Tiempo de Optimización<br />
MOM posee 3 niveles de optimización dados por el número de iteraciones que<br />
deberá realizar. En cada iteración, MOM busca una solución a <strong>la</strong> instancia con-<br />
siderada del problema. Cuantas más iteraciones realice, existe más posibilidad de<br />
acercarse a <strong>la</strong> solución óptima, ya que es mayor el espacio de soluciones explorado.<br />
El p<strong>la</strong>nificador decide el nivel de optimización entre Básica, Avanzada, y Máxima. El<br />
número de iteraciones se calcu<strong>la</strong> en función de <strong>la</strong> complejidad esperada del problema,<br />
fundamentalmente del número de trenes cuyos horarios se deberán optimizar.
292A. Sistemas desarrol<strong>la</strong>dos <strong>para</strong> <strong>la</strong> Generación y Optimización de horarios Ferroviarios<br />
Ponderación de los criterios empleados en <strong>la</strong> Función Objetivo<br />
En <strong>la</strong> función objetivo del problema (sección 3.4.3 del Capítulo 3) se utilizan dos<br />
criterios, el retraso promedio de todos los trenes y <strong>la</strong> diferencia entre los retrasos<br />
promedios, correspondiente a los trenes que viajan en un sentido y el opuesto. MOM<br />
permite que el p<strong>la</strong>nificador especifique el peso que le dará a cada uno de estos crite-<br />
rios, de tal forma que al buscar <strong>la</strong> solución, busque optimizar los horarios conforme<br />
a <strong>la</strong> importancia asignada a cada uno.<br />
Márgenes de Seguridad<br />
Hemos denominado márgenes de seguridad a <strong>la</strong> cantidad de tiempo que debe<br />
existir como mínimo entre <strong>la</strong>s salidas, entre <strong>la</strong>s llegadas, o entre <strong>la</strong>s salidas y <strong>la</strong>s<br />
llegadas de diferentes trenes a, ó de una misma estación. Estos tiempos evitan que<br />
se produzca una colisión entre los trenes cuando estos llegan o salen de una misma<br />
estación.<br />
A estas cantidades, dependiendo de los instantes de tiempo que regulen, se de-<br />
nomina tiempo de recepción, tiempo de expedición, sucesión automática, ó tiempo<br />
de aviso. El significado de cada uno de ellos es dado en <strong>la</strong> sección 3.4.2 del capítulo<br />
3. Los valores, que representarán <strong>la</strong> mínima cantidad de tiempo exigida en cada<br />
caso, pueden ser editados. La Figura A.17 muestra <strong>la</strong> interfaz utilizada <strong>para</strong> ello en<br />
MOM. Los valores son especificados por tipo de tren (viajeros o mercancías).<br />
Por defecto, <strong>la</strong> mínima unidad de tiempo es igual a 30 segundos, si el tren es del<br />
tipo viajero. Si el tren es del tipo mercancías, entonces <strong>la</strong> mínima unidad de tiempo<br />
es igual a 60 segundos.<br />
A.2.5. Usos de <strong>la</strong> Aplicación MOM<br />
El resultado dado por MOM puede ser utilizado <strong>para</strong> alcanzar diferentes obje-<br />
tivos. Entre ellos:<br />
Agregar nuevos trenes a una determinada línea ferroviaria. El objetivo princi-<br />
pal de MOM es asignar a cada tren, de un conjunto determinado, un horario<br />
factible según un determinado conjunto de restricciones, optimizando el valor<br />
correspondiente de <strong>la</strong> función objetivo considerada. Es posible programar el
A.2. MOM: Módulo Optimizador de Mal<strong>la</strong>s 293<br />
de Márgenes Seguridad<br />
tramo ación por<br />
dependenci por ación Parametriza<br />
a tren ación Parametriz tren<br />
Figura A.17: Edición de los parámetros incluidos en <strong>la</strong>s restricciones y en el proceso<br />
de optimizaciónParametriz<br />
horario de todos los trenes que formarán parte de una línea ferroviaria, o bien<br />
agregar nuevos trenes sobre una línea que ya cuente con determinados trenes<br />
en circu<strong>la</strong>ción. En el primer caso, se utiliza MOM <strong>para</strong> <strong>la</strong> formación de una<br />
nueva línea. En el segundo caso, se construye el horario de determinados trenes<br />
<strong>para</strong> responder a una necesidad que surge sobre una línea ya p<strong>la</strong>nificada.<br />
Re-p<strong>la</strong>nificación a partir de una incidencia. La p<strong>la</strong>nificación en una línea fer-<br />
roviaria puede verse afectada por <strong>la</strong> aparición de una incidencia (accidente,<br />
inclemencias meteorológicas, avería en <strong>la</strong> infraestructura o en el material ro-<br />
dante, etc.) durante <strong>la</strong> ejecución de <strong>la</strong> misma, que obligue a retrasar el horario<br />
de uno o más trenes. Será necesario entonces rep<strong>la</strong>nificar los horarios en <strong>la</strong>
294A. Sistemas desarrol<strong>la</strong>dos <strong>para</strong> <strong>la</strong> Generación y Optimización de horarios Ferroviarios<br />
línea, teniendo en cuenta los retrasos que se han producido. MOM permite<br />
llevar a cabo esta tarea, ya que considera el intervalo de estaciones y de tiem-<br />
po que el usuario le indique. A partir del instante de salida especificado <strong>para</strong><br />
cada tren en <strong>la</strong> estación indicada como origen, MOM p<strong>la</strong>nifica los horarios,<br />
optimizándolos de acuerdo a <strong>la</strong> función objetivo, que en este caso incorpo-<br />
ra un criterio adicional, que el horario p<strong>la</strong>nificado se desvíe lo menos posible<br />
del horario originalmente asignado, antes de que se produzca <strong>la</strong> incidencia.<br />
La rep<strong>la</strong>nificación requiere una respuesta rápida, ya que los trenes están en<br />
circu<strong>la</strong>ción. Gracias a <strong>la</strong>s heurísticas empleadas por MOM, es posible obtener<br />
soluciones que respondan a <strong>la</strong>s incidencias producidas, en un tiempo aceptable.<br />
Cálculo de <strong>la</strong> capacidad de una línea. Los horarios resultantes de MOM tam-<br />
bién pueden servir <strong>para</strong> predecir <strong>la</strong> capacidad práctica de una línea en un<br />
determinado intervalo de tiempo, y con una determinada ordenación en <strong>la</strong>s<br />
salidas de los trenes. El p<strong>la</strong>nificador indica a MOM el orden de salida de los<br />
trenes y MOM realiza su proceso de programación y optimización <strong>para</strong> el mis-<br />
mo. A partir del horario resultante se conoce si es posible o no, ubicar en <strong>la</strong><br />
línea con el orden dado, <strong>la</strong> cantidad y el tipo de trenes especificado por el<br />
p<strong>la</strong>nificador.<br />
Evaluación de cambios en <strong>la</strong> infraestructura. MOM también puede ser uti-<br />
lizado <strong>para</strong> evaluar cómo afectarían ciertos cambios en <strong>la</strong> infraestructura, en<br />
cuanto a <strong>la</strong> calidad de los horarios asignados. Los cambios son realizados en<br />
forma local mediante <strong>la</strong> interfaz proporcionada por <strong>la</strong> aplicación, cambios tales<br />
como: número de vías en un tramo o en una estación, número de vías con andén<br />
en una estación, horarios de cierre en estación, o tipo de señalización en un<br />
tramo. Estos cambios son realizados, y posteriormente se pide que MOM con-<br />
struya los horarios teniendo en cuenta dichas modificaciones. Posteriormente<br />
se evalúa el resultado entregado, conforme los cambios realizados.<br />
En <strong>la</strong> Figura A.18 hemos indicado <strong>la</strong>s funcionalidades más destacadas con-<br />
siderando todas <strong>la</strong>s aplicaciones revisadas.<br />
Evaluación de horarios: proporciona una medida de determinados criterios,<br />
entre ellos <strong>la</strong> robustez, de cada solución.
A.2. MOM: Módulo Optimizador de Mal<strong>la</strong>s 295<br />
Análisis de Capacidad: dado un intervalo de tiempo, atributos que definen <strong>la</strong><br />
infraestructura ferroviaria, y tipos de trenes, proporciona <strong>la</strong> cantidad máxima<br />
de trenes que caben. Se tiene en cuenta un conjunto determinado de restric-<br />
ciones.<br />
Simu<strong>la</strong>ción: muestra un horario factible <strong>para</strong> cada tren a partir de <strong>la</strong> entra-<br />
da determinada por el usuario. En algunos casos, re<strong>para</strong> los horarios que in-<br />
cumplen con alguna de <strong>la</strong>s restricciones consideradas.<br />
P<strong>la</strong>nificación en <strong>la</strong> estaciones: Es capaz de p<strong>la</strong>nificar el tráfico dentro de <strong>la</strong>s<br />
estaciones, considerando paridad de los trenes, número de vías, p<strong>la</strong>taformas y<br />
señales.<br />
Generación de horarios/Optimización: Construye los horarios <strong>para</strong> determina-<br />
dos trenes considerando una o más líneas ferroviarias. Considera un conjunto<br />
de restricciones que debe ser satisfecho <strong>para</strong> que <strong>la</strong> solución sea considerada<br />
factible. Si además utiliza una función objetivo, entonces, <strong>la</strong> generación de<br />
horarios se lleva a cabo optimizando el valor de <strong>la</strong> misma.<br />
Para cada sistema concreto hemos resaltado con un círculo aquel<strong>la</strong>s funcionali-<br />
dades que es capaz de realizar.<br />
De <strong>la</strong> Figura A.18 se concluye <strong>la</strong> posición destacada del sistema desarrol<strong>la</strong>do<br />
y su utilidad como un sistema de ayuda a <strong>la</strong> generación y optimización de mal-<br />
<strong>la</strong>s ferroviarias. Según diversas referencias consultadas, es de los escasos sistemas<br />
computacionales utilizados en entornos reales de explotación.
296A. Sistemas desarrol<strong>la</strong>dos <strong>para</strong> <strong>la</strong> Generación y Optimización de horarios Ferroviarios<br />
SIMONE:<br />
ROMAN<br />
PTG CADANS AFAIGSTATIONS : DONS SISYFE<br />
BLE OPENTIMETA TPS/STRAX RAILCAP PETER FASTA<br />
LIPARI VIRIATO RAILSYS CAPRESII FASTTRACK<br />
Aplicaciones<br />
Online/ DEMIURGE<br />
Figura A.18: Resumen de <strong>la</strong>s principales Funcionalidades de <strong>la</strong>s Aplicaciones Comerciales<br />
estudiadasHorarios<br />
de Evaluación Simu<strong>la</strong>ción MOM (Robustez) Análisis de Capacidad P<strong>la</strong>nificación<br />
en <strong>la</strong>sEstacionesGeneracióndeHorarios/<br />
Optimizaci ón<br />
Funcionalidades
Bibliografía<br />
[1] Computación evolutiva <strong>para</strong> resolución de csps. Inteligencia Artificial, Revista<br />
Iberoamericana de Inteligencia Artificial, 3(20):34–52, 2001.<br />
[2] J. Adams, E. Ba<strong>la</strong>s, and D. Zawack. The shifting bottleneck procedure for job<br />
shop scheduling. Management Science, 34(3):391–401, 1988.<br />
[3] M. Aloulou and M. Portmann. An efficient proactive reactive scheduling ap-<br />
proach to hedge against shop floor disturbances. In Proceedings of MISTA<br />
2003, 2003.<br />
[4] D. Applegate, R. Bixby, V. Chvátal, and W. Cook. The traveling salesman<br />
problem. Technical report, DIMACS, Rutgers University, New Brunswick, NJ,<br />
pages 1–19, 1994.<br />
[5] F. Bacchus and A. Grove. On the forward checking algorithm. Principles<br />
and Practice of Constraint Programming (CP-95). Lecture Notes in Computer<br />
Science.<br />
[6] F. Bacchus and P. Van Run. Dynamic variable ordering in csps. Principles<br />
and Practice of Constraint Programming (CP-95). Lecture Notes in Computer<br />
Science.<br />
[7] F. Barber and M. A. Salido. Introducción a <strong>la</strong> programación de restricciones.<br />
Inteligencia Artificial. Revista Iberoamericana de IA, (20):13–30, 2003.<br />
297
298 BIBLIOGRAF ÍA<br />
[8] C. Barnhart, E.L. Johnson, G.L. Nemhauser, M.W.P. Savelsbergh, and P.H.<br />
Vance. Branch-and-price: Column generation for solving huge integer pro-<br />
grams. Operations Research, 46(3):316–329, 1998.<br />
[9] J.E. Beasley. Modern heuristic techniques for combinatorial problems, chapter<br />
Lagrangean re<strong>la</strong>xation, pages 243–303. Halsted Press, 1993.<br />
[10] R. Bellman. Dynamic Programming. Princeton University Press, Princeton,<br />
New Jersey, 1957.<br />
[11] C. Bessière. Arc-consistency in dynamic constraint satisfaction problems. In<br />
M. T. Maybury, editor, in Proceedings of the 9th National Conference on Ar-<br />
tificial Intelligence, volume 1 of ISBN 0-262-51059-6, pages 221–226. AAAI<br />
Press / The MIT Press, 1991.<br />
[12] C. Bessière. Arc-consistency and arc-consistency again. Artificial Intelligence,<br />
65(1):179–190, 1994.<br />
[13] J. R. Bitner and E. M. Reingold. Backtrack programming techniques. Com-<br />
munications of the ACM, 18(11):651–656, 1975.<br />
[14] D. Bre<strong>la</strong>z. New methods to color the vertices of a graph. Journal of ACM,<br />
22(4):251–256, 1979.<br />
[15] P. Brucker and Strotmann C. Decomposition of railway scheduling problem.<br />
OR2003 - Symposium on Operational Research, 2003.<br />
[16] M.R. Bussieck. Optimal Lines in Public Rail Transport. PhD thesis, Technis-<br />
che Universität Braunschweig, 1998.<br />
[17] M.R. Bussieck, T. Winter, and U.T. Zimmermann. Discrete optimization in<br />
public rail transport. Math. Programming, 79(1-3):415–444, 1997.<br />
[18] X. Cai and C. J. Goh. A fast heuristic for the train scheduling problem.<br />
Computers and Operation Research, 21(5):499–510, 1994.
BIBLIOGRAFÍA 299<br />
[19] A. Caprara and M. Fischetti. Annotated Bibliographies in Combinatorial Op-<br />
timization, chapter Branch and Cut Algorithms, pages 45–64. John Wiley &<br />
Sons, 1997.<br />
[20] A. Caprara, M. Fischetti, and P. Toth. Modeling and solving the train<br />
timetabling problem. Operations Research, 50:851–861, 2002.<br />
[21] A. Caprara, M. Monaci, P. Toth, and P. Guida. A <strong>la</strong>grangian heuristic algo-<br />
rithm for a real -world train timetabling problem. Discrete Applied Mathe-<br />
matics, 154:738–753, 2006.<br />
[22] M. Carey. Extending a train pathing model from one-way to two-way track.<br />
Transportation Research B, 28(5):395–400, 1994.<br />
[23] M. Carey. A model and strategy for train pathing with choice of lines, p<strong>la</strong>t-<br />
forms, and routes. Transportation Research B, 28(5):333–353, 1994.<br />
[24] V. Cerny. Thermodynamical approach to the traveling salesman problem: An<br />
efficient simu<strong>la</strong>tion algorithm. Journal of Optimization Theory and Applica-<br />
tions, 45(1):41–51, 1985.<br />
[25] A. Cesta, A. Oddi, and S. F. Smith. Profile based algorithms to solve multiple<br />
capacitated metric scheduling problems. In Proceedings of AIPS 1998, 1998.<br />
[26] C. Cheng and S. F. Smith. Generating feasible schedules under complex metric<br />
constraints. In Proceedings of 12th National Conference on AI (AAAI-94),<br />
1994.<br />
[27] C.K. Chiu, C.M. Chou, J.H.M. Lee, H.F. Leung, and Leung Y.W. A constraint<br />
based interactive train rescheduling tool. Constraints, 7:167–198, 2002.<br />
[28] E. Chvátal. Edmonds polytopes and a hierarchy of combinatorial problems.<br />
Discrete Mathematics, 4:305–337, 1973.<br />
[29] J.F. Cordeau, P. Toth, and D. Vigo. A survey of optimization models for train<br />
routing and scheduling. Transportation Science, 32(4):380–404, 1998.
300 BIBLIOGRAF ÍA<br />
[30] S. Dasgupta, C.H. Papadimitriou, and U.V. Vazirani. Algorithms. McGraw<br />
Hill, 2006.<br />
[31] R. Dechter. Enhancement schemes for constraint processing: Backjumping,<br />
learning and cutset decomposition. Artificial Intelligence, 41(3):273–312, 1990.<br />
[32] R. Dechter. Constraint Processing. Morgan Kaufmann, 2003.<br />
[33] R. Dechter and J. Pearl. Network-based heuristics for constraint-satisfaction<br />
problems. Artificial Intelligence, 34(1):1–38, 1987.<br />
[34] M.J. Dent and R.E. Mercer. Minimal forward checking. In ICTAI, pages<br />
432–438, 1994.<br />
[35] J. Desrosiers, Y. Dumas, M.M. Solomon, and F. Soumis. Handbooks in Opera-<br />
tions Research and Management Science: Network Routing, volume 8, chapter<br />
Time constrained routing and scheduling, pages 35–140. Elsevier, Amsterdam,<br />
1995.<br />
[36] Y. Deville and P. Van Hentenryck. An efficient arc consistency algorithm for<br />
a c<strong>la</strong>ss of csp problems. In R. Reiter J. Mylopoulos, editor, in Proceedings<br />
of the 12th International Joint Conference on Artificial Intelligence, ISBN<br />
1-55860-160-0, pages 325–330. Morgan Kaufmann, 1991.<br />
[37] V. Dhar and N. Ranganathan. Integer programming vs. expert systems: An<br />
experimental comparison. Communications of the ACM, 33(3):323–336, 1990.<br />
[38] A. Drexl. Scheduling of project networks by job assignment. Management<br />
Science, 37(12):1590–1602, 1991.<br />
[39] A. Drexl and J. Grünewald. Nonpreemptive multi-mode resource-constrained<br />
project scheduling. IIE Transactions, 25(5):74–81, 1993.<br />
[40] P. Fleming and R.C. Purshouse. Evolutionary algorithms in control systems<br />
engineering: a survey. Control Engineering Practice, 10:1223–1241, 2002.
BIBLIOGRAFÍA 301<br />
[41] M.S. Fox. Constraint-Directed Search: A Case Study of Job-Shop Schedul-<br />
ing. Research Notes in Artificial Intelligence. Morgan Kaufmann, Los Altos,<br />
California, 1 edition, 1987.<br />
[42] E.C. Freuder. Backtrack-free and backtrack-bounded search. Search in Arti-<br />
ficial Intelligence, pages 343–369, 1988.<br />
[43] D. Frost and R. Dechter. Dead-end driven learning. In AAAI ’94: Proceedings<br />
of the 12th National Conference on Artificial Intelligence, volume 1, pages<br />
294–300. American Association for Artificial Intelligence, 1994.<br />
[44] M.R. Garey, D.S. Johnson, and R. Sethi. The complexity of flowshop and job<br />
shop scheduling. Mathematical Operation Research, 1:117–129, 1976.<br />
[45] A. Garrido, M.A. Salido, F. Barber, and M.A. Lopez. Heuristic methods for<br />
solving job-shop scheduling problems. In Proceedings of the 14th Workshop<br />
”New Results in P<strong>la</strong>nning, Scheduling and Design, 2000.<br />
[46] J. Gaschnig. A general backtracking algorithm that eliminates most redun-<br />
dant tests. In Procceedings of the International Joint Conference on Artifical<br />
Intelligence (IJCAI), page 457, 1977.<br />
[47] J. Gaschnig. Performance measurement and analysis of search algorithms.<br />
Technical Report CMU-CS-79-124, Carnegie Mellon University, 1979.<br />
[48] P.A. Geelen. Dual viewpoint heuristics for the binary constraint satisfaction<br />
problem. In Proceedings of ECAI 1992, pages 31–35, 1992.<br />
[49] I.P. Gent, MacIntyre E., P. Prosser, B.M. Smith, and T. Walsh. An empirical<br />
study of dynamic variable ordering heuristics for constraint satisfaction prob-<br />
lems. In Principles and Practice of Constraint Programming, pages 179–193,<br />
1996.<br />
[50] F. Glover. Tabú search part i. ORSA, Journal on Computing, 1(3):190–206,<br />
1989.
302 BIBLIOGRAF ÍA<br />
[51] F. Glover. Tabu search: A tutorial. Interfaces, 20(4):74–94, 1990.<br />
[52] F. Glover and M. Laguna. Tabu search. In C. Reeves, editor, Modern Heuris-<br />
tic Techniques for Combinatorial Problems, Oxford, Eng<strong>la</strong>nd, 1993. B<strong>la</strong>ckwell<br />
Scientific Publishing.<br />
[53] F. Glover and E. Talliard. A users guide to tabu search. Annals of Operations<br />
Research, 41:3–28, 1993.<br />
[54] D.E. Goldberg. Genetic Algorithms in Search, Optimization and Machine<br />
Learning. Adison Wesley, 1989.<br />
[55] D.E. Goldberg. The Design of Innovation : Lessons from and for Competent<br />
Genetic Algorithms. Springer, 2002.<br />
[56] R.E. Gomory. Recent Advances in Mathematical Programming, chapter An<br />
algorithm for integer solutions to linear programs, pages 269–302. McGraw-<br />
Hill, New York, 1963.<br />
[57] R.M.P. Goverde and M.A. Odijk. Computers in Railways VIII, chapter Per-<br />
formance evaluation of networks timetables. WIT Press, 2002.<br />
[58] M. Grötschel and O. Hol<strong>la</strong>nd. Solution of <strong>la</strong>rge-scale travelling salesman prob-<br />
lems. Mathematical Programming, 51(2):141–202, 1991.<br />
[59] C.C. Han and C.H. Lee. Comments on mohr and henderson’s path consistency<br />
algorithm. Artificial Intelligence, 36(1):125–130, 1988.<br />
[60] N. Hansen and A. Ostermeier. Completely derandomized self-adaptation in<br />
evolution strategies. Evolutionary Computation, 9(2):159–195, 2001.<br />
[61] R.M. Haralick and G.L. Elliot. Increasing tree search efficiency for constraint<br />
satisfaction problems. Artificial Intelligence, 14(3):263–313, 1980.<br />
[62] M. Held and R.M. Karp. The traveling salesman problem and minimum span-<br />
ning trees. Operations Research, 18(6):1138–1162, 1970.
BIBLIOGRAFÍA 303<br />
[63] M. Held and R.M. Karp. The traveling salesman problem and minimum span-<br />
ning trees: Part ii. Mathematical Programming, 1(1):6–25, 1971.<br />
[64] A. Higgins, E. Kozan, and L. Ferreira. Optimal scheduling of trains on a single<br />
line track. Transportation Research, 30(2):147–161, 1996.<br />
[65] A. Higgins, E. Kozan, and L. Ferreira. Heuristic techniques for single line train<br />
scheduling. Journal of Heuristics, 3(1):43–62, 1997.<br />
[66] J. Hol<strong>la</strong>nd. Adaptation in Natural and Artificial Systems: An Introductory<br />
Analysis with Applications to Biology, Control, and Artificial Intelligence. The<br />
MIT Press, 2 edition, 1992.<br />
[67] O. Holthaus and C. Rajendran. Efficient dispatching ruies for scheduling in a<br />
job shop. International Journal of Produclion Economics, 48(1):87–105, 1997.<br />
[68] M. T. Isaai and M. G. Singh. An intelligent constraint-based search method<br />
for a single-line passenger-train scheduling problems. In The International<br />
Conference on the Practical Application of Constraint Technologies and Logic<br />
Programming, pages 79–91, 2000.<br />
[69] M. T. Isaai and M. G. Singh. An object-oriented, constraint-based heuristic<br />
for a c<strong>la</strong>ss of passenger-train scheduling problems. IEEE Transactions on<br />
Systems, Man and Cybernetics-Part C: Applications and Review, 39(1):12–21,<br />
2000.<br />
[70] M. Jünger, G. Reinelt, and S. Thienel. Practical problem solving with cut-<br />
ting p<strong>la</strong>ne algorithms in combinatorial optimization. In Combinatorial Opti-<br />
mization: DIMACS Series in Discrete Mathematics and Theoretical Computer<br />
Science, 20:111–152, 1995.<br />
[71] D. Jovanovic. Improving Railroad On-Time Performance: Models, Algorithms<br />
and Applications. PhD thesis, The Wharton School, University of Pennsylva-<br />
nia, 1989.
304 BIBLIOGRAF ÍA<br />
[72] D. Jovanovic and P. T. Harker. Tactical scheduling of rail operations: The<br />
scan i system. Transportation Science, 25(1):46–64, 1991.<br />
[73] S. Kirkpatrick, C.D. Ge<strong>la</strong>tt, and M.P. Vecchi. Optimization by simu<strong>la</strong>ted<br />
annealing. Science.<br />
[74] J. Koza, M. Keane, M. Streeter, W. Mydlowec, J. Yu, and G. Lanza. Genetic<br />
Programming IV:Routine Human-Competitive Machine Intelligence. Kluwer<br />
Academic, 2003.<br />
[75] D. Kraay, P. T. Harker, and B. Chen. Optimal pacing of trains in freight<br />
railroads: Model formu<strong>la</strong>tion and solution. Operations Research, 39(1):82–99,<br />
1991.<br />
[76] P. Kreuger, M. Carlson, J. Olsson, T. Sjö<strong>la</strong>nd, and E. Asrö. Trips scheduling on<br />
single track networks - the tuff train scheduler. CP’97 Workshop on Industrial<br />
Constraint - Directed Scheduling, pages 1–12, 1997.<br />
[77] L.G. Kroon and P.J. Zwaneveld. Stations: Final report of phase 1. ERASM<br />
Management Report Series 201, Rotterdam School of Management, Erasmus<br />
University, Rotterdam, Nether<strong>la</strong>nds, 1995.<br />
[78] R. K. S. Kwan and P. Mistry. A co-evolutionary algorithm for train<br />
timetabling. In IEEE Press, editor, Congress on Evolutionary Computation,<br />
pages 2142–2148, 2003.<br />
[79] A.H. Land and A.G. Doig. An automatic method for solving discrete pro-<br />
gramming problems. Econometrica, 28(3):497–520, 1960.<br />
[80] J. Larrosa. Boosting search with variable elimination. In Principles and Prac-<br />
tice of Constraint Programming, pages 291–305, 2000.<br />
[81] J. Larrosa and T. Schiex. In the quest of the best form of local consistency<br />
for weighted csp. IJCAI 2003, 2003.
BIBLIOGRAFÍA 305<br />
[82] S. Lawrence. Supplement to resource constrained project scheduling: An ex-<br />
perimental investigation of heuristic scheduling techniques. Technical report,<br />
Graduate School of Industrial Administration, Camegie Mellon University,<br />
Pittsburgh, USA, 1984.<br />
[83] C. Liebchen and R. Möhring. A case study in periodic timetabling. Electronic<br />
Notes in Theoretical Computer Science, 66(6), 2002.<br />
[84] C. Liebchen and L. Peeters. Some practical aspects of periodic timetabling.<br />
Operations Research 2001, 2002.<br />
[85] A.K. Mackworth. Consistency in networks of re<strong>la</strong>tions. Artificial Intelligence,<br />
8(1):99–118, 1977.<br />
[86] A.K. Mackworth and E.C. Freuder. The complexity of some polynomial net-<br />
work consistency algorithms for constraint satisfaction problems. Artificial<br />
Intelligence, 25(1):65–74, 1985.<br />
[87] T.L. Magnanti and Wong R.T. Discrete Location Theory, chapter Decom-<br />
position Methods for Facility Location Problems, pages 209–262. Wiley-<br />
Interscience, 1990.<br />
[88] J. E. Mitchell. Branch-and-cut algorithms for combinatorial optimization<br />
problems. In P. M. Pardalos and M. G. C. Resende, editors, Handbook of<br />
Applied Optimization, pages 65–77. Oxford University Press, 2002.<br />
[89] M. Mitchell. An Introduction to Genetic Algorithms. MIT Press, 1996.<br />
[90] R. Mohr and T.C. Henderson. Arc and path consistency revisited. Artificial<br />
Intelligence, 28(2):225–233, 1986.<br />
[91] K. Ñachtigall. Exact solution methods for periodic programs. Hildesheimer<br />
Informatik-Berichte, (14), 1993.<br />
[92] K. Ñachtigall and S. Voget. A genetic algorithm approach to periodic railway<br />
synchronization. Computers and Operations Research, 23:453–463, 1996.
306 BIBLIOGRAF ÍA<br />
[93] G.L. Nemhauser and L.A. Wolsey. Integer and Combinatorial Optimization.<br />
John Wiley & Sons, 1988.<br />
[94] A. Ñõu. Railway timetabling - <strong>la</strong>grangian heuristics. Technical Report<br />
TRITA/MAT-97-OS12, Royal Institute of Technology, Stockholm, Sweeden,<br />
1997.<br />
[95] A. Ostermeier, A. Gawelczyk, and N. Hansen. A derandomized approach to self<br />
adaptation of evolutionary strategies. Evolutionary Computation, 2(4):369–<br />
380, 1994.<br />
[96] M. Padberg and G. Rinaldi. A branch-and-cut algorithm for the resolution of<br />
<strong>la</strong>rge-scale symmetric traveling salesman problems. SIAM Review, 33(1):60–<br />
100, 1991.<br />
[97] M. Perlin. Arc-consistency for factorable re<strong>la</strong>tions. Artificial Intelligence,<br />
53(2-3), 1992.<br />
[98] M. Pinedo. P<strong>la</strong>nning and Scheduling in Manufacturing and Services. 2005.<br />
[99] M. Pinedo and M. Singer. A Shifting Bottleneck Heuristic for Minimizing the<br />
Total Weighted Tardiness in a Job Shop, volume 46, pages 1 – 17. John Wiley<br />
& Sons, Inc., 1999.<br />
[100] N. Policel<strong>la</strong>, S.F. Smith, A. Cesta, and A. Oddi. Generating robust schedules<br />
through temporal flexibility. In Proceedings of 14th International Conference<br />
on Automated P<strong>la</strong>nning & Scheduling, ICAPS04, pages 209–218, 2004.<br />
[101] C. Poojari, G. Mitra, and C. Siamitros. Revisiting <strong>la</strong>grange re<strong>la</strong>xation for<br />
processing <strong>la</strong>rge-scale mixed integer programming problems. In In Proceedings<br />
of IFORS 2005, 2005.<br />
[102] P. Prosser. A reactive scheduling agent. In In Proceedings of the 11th Inter-<br />
national Joint Conference on Artificial Intelligence, pages 1004–1009, Menlo<br />
Park, California, 1989. International Joint Conferences on Artificial Intelli-<br />
gence.
BIBLIOGRAFÍA 307<br />
[103] P. Prosser. Hybrid algorithms for constraint satisfaction problems. Computa-<br />
tional Intelligence, 9(3):268–299, 1993.<br />
[104] P. Prosser. Constraint Processing, LNCS 923, pages 185–204. Springer Ver<strong>la</strong>g,<br />
1995.<br />
[105] P.W. Purdom Jr. Search rearragement backtracking and polynomial average<br />
time. Artificial Intelligence, 21(1-2):117–133, 1983.<br />
[106] D. Sabin and E. C. Freuder. Contradicting conventional wisdom in constraint<br />
satisfaction. In A<strong>la</strong>n Borning, editor, Proceedings of the Second International<br />
Workshop on Principles and Practice of Constraint Programming, PPCP’94,<br />
Rosario, Orcas Is<strong>la</strong>nd, Washington, USA, volume 874, pages 10–20, 1994.<br />
[107] N.M. Sadeh, K. Sycara, and Y. Xiong. Backtracking techniques for the job-<br />
shop scheduling constraint satisfaction problem. Artificial Intelligence, 76:455–<br />
480, 1995.<br />
[108] M. Savelsbergh. A branch-and-price algorithm for the generalized assignment<br />
problem. Operations Research, 45(6):831–841, 1997.<br />
[109] P. Serafini and W. Ukovich. A mathematical model for periodic scheduling<br />
problems. SIAM J. on Discrete Mathematics, 2:550–581, 1989.<br />
[110] E. Silva de Oliveira. Solving Single-Track Railway Scheduling Problem Using<br />
Constraint Programming. PhD thesis, The University of Leeds, School of<br />
Computing, September 2001.<br />
[111] M. Singh. Path consistency revised. In in Proceedings of the 7th IEEE In-<br />
ternational Conference on Tools with Artificial Intelligence, pages 318–325,<br />
1995.<br />
[112] B. Szpigel. Optimal train scheduling on a single track railway. In M. In Roos,<br />
editor, Proceedings of IFORS Conference on Operational Research’72, pages<br />
343–352, 1972.
308 BIBLIOGRAF ÍA<br />
[113] Lindner Thomas. Train Schedule Optimization in Public Rail Transport. PhD<br />
thesis, Technische Universitat Braunschweig, June 2000.<br />
[114] P. Van Hentenryck, Y. Deville, and C.M. Teng. A generic arc-consistency<br />
algorithm and its specializations. Artificial Intelligence, 57(2-3):291–321, 1992.<br />
[115] F. Vanderbeck and L.A. Wolsey. An exact algorithm for ip column generation.<br />
Operations Research Letters, 19(4):151–159, 1996.<br />
[116] A. Vepsa<strong>la</strong>nen and T. Morton. Priority rules for job shops with weighted<br />
tardiness costs. Management Science, 33(8):1035–1047, 1987.<br />
[117] M. Vromans, R. Dekker, and L. Kroon. Reliability and heterogeneity of railway<br />
services. European Journal of Operation Research, 172(2):647–655, 2006.<br />
[118] D.L. Waltz. in The Psychology of Computer Vision, chapter Understanding<br />
line drawings of scenes with shadows, pages 19–91. McGraw-Hill, New York,<br />
1975.<br />
[119] P.J. Zwaneveld, L.G. Kroon, and H.W. Ambergen. Railway Systems and Man-<br />
agement, volume 2 of Computers in Railway, chapter A decision support sys-<br />
tem for routing trains through railway stations, pages 217–226. Computational<br />
Mechanics Publications, 1996.