07.05.2013 Views

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

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!