MODELIZACIÓN Y MÉTODOS PARA LA OPTIMIZACIÓN FERROVIARIOS

Tamaño: px
Comenzar la demostración a partir de la página:

Download "MODELIZACIÓN Y MÉTODOS PARA LA OPTIMIZACIÓN FERROVIARIOS"

Transcripción

1 MODELIZACIÓN Y MÉTODOS PARA LA OPTIMIZACIÓN Y EFICIENCIA DE LA PROGRAMACIÓN DE HORARIOS FERROVIARIOS Autor: Laura Paola Ingolotti Hetter Directores: Dr. D. Federico Barber Sanchís Dra. Da. Pilar Tormos Juan Departamento de Sistemas Informáticos y Computación UNIVERSIDAD POLITÉCNICA DE VALENCIA Valencia, España FEBRERO 2007

2 ii

3 A mi familia. iii

4 iv

5 Tabla de Contenidos Tabla de Contenidos Lista de Tablas Lista de Figuras Agradecimientos Acrónimos, Notación y Lista de Variables Resumen Abstract Resum V IX X XV XVII XXIII XXVII XXIX 1. Introducción Introduccíón El problema de Scheduling tipo Job Shop y su Formulación como un CSOP Marco de Trabajo: Generación Optimizada de Horarios. Aplicación a Horarios Ferroviarios Introducción al Problema de Optimizar y Programar horarios para Trenes Motivaciones Objetivos de la Tesis Esquema de la Tesis Métodos para resolver Problemas tipo Job Shop Introducción El Problema de Scheduling tipo Job Shop Formulación de un Job Shop utilizando Programación Matemática. 21 v

6 2.4. Métodos de Optimización Exacta Programación Dinámica Branch and Bound Branch and Bound y la Relajación Lagrangiana Branch and Cut Branch-and-price Métodos Heurísticos Desplazar el Cuello de Botella Reglas de Procesamiento Básico Reglas de Procesamiento Compuesto Formulación de un Job Shop como un CSOP Búsqueda: Algoritmo Backtracking Inferencia Inferencia + Búsqueda Estrategias Look Back Ordenamiento de Valores Ordenamiento de Variables Métodos Heurísticos Genéricos Búsqueda Beam Simulated Annealing Búsqueda Tabú Algoritmos Genéticos Conclusiones Optimizar y Planificar Horarios para Trenes, un problema CSOP Introducción El Problema OPT Conceptos Básicos Formulación del Problema como un CSOP Variables y Dominios Restricciones Función Objetivo El problema OPT, un problema de Scheduling tipo Job Shop Conclusiones Revisión de Métodos para la Generación de Horarios Introducción Estado del Arte en la Formulación del Problema Estado del Arte - Métodos de Solución Relajación Lagrangiana Branch and Bound vi

7 Búsqueda Local Algoritmo de Descomposición Algoritmo Genético Búsqueda Tabú Problema de Scheduling de Eventos Periódicos Heurísticas para Job Shop y el Problema OPT Técnicas CSP y el Problema OPT Conclusión Un Procedimiento heurístico basado en ordenación (PBO) Introducción Aplicación de las técnicas CSP en el método de solución propuesto Esquema General del Método de Solución propuesto El Problema OPT como un Problema de Scheduling tipo Job Shop Consideraciones en la Aplicación del método al problema OPT La Periodicidad en Salida es incluida en el conjunto de Restricciones La Periodicidad en Salida NO es incluida en el conjunto de Restricciones Descripción detallada del Método de Solución aplicado al Problema OPT Primera Etapa: Siguiente Operación Segunda Etapa: Asignación de Horario Factible Tercera Etapa: Evaluación de Solución Parcial Conclusiones Evaluación Computacional Introducción Implementación del Sistema de Evaluación Descripción de los Casos de Prueba Complejidad de los Casos de Prueba Coste de cada solución en función de la parametrización < α, ɛ > Backtracking en la búsqueda de soluciones Comportamiento Anytime Casos particulares y descripción de las Soluciones obtenidas Baja Interrelación entre los Trenes de la Línea Alta Densidad de tráfico en la Línea Ferroviaria Resultados cuando se requiere Periodicidad en Salidas Simulación de cambios de infraestructura Algunos ejemplos de instancias complejas Estudio sobre la Robustez de Soluciones vii

8 6.10. Conclusiones Conclusiones Introducción Contribuciones de este trabajo Trabajo Futuro Publicaciones relacionadas con la Tesis Otros artículos relacionados con esta Tesis Conclusiones Finales A. Sistemas desarrollados para la Generación y Optimización de horarios Ferroviarios 263 A.1. Sistemas Software relacionados con la Planificación de Horarios Ferroviarios A.2. MOM: Módulo Optimizador de Mallas A.2.1. Especificación y Parametrización de una Instancia A.2.2. Parametrización de Restricciones Comerciales A.2.3. Parametrización de la Infraestructura Ferroviaria A.2.4. Parametrización de la Optimización A.2.5. Usos de la Aplicación MOM Bibliografía 297 viii

9 Índice de cuadros 1.1. Niveles de Planificación Descripción de 13 instancias del problema OPT Dimensiones del Modelo para cada Caso de Prueba Valor de la Función de Coste Global en función de ε y α Valor de la Función de Coste Global en función de ε y α Características de la Línea Ferroviaria ix

10 Índice de figuras 1.1. Ordenación de tareas y recursos establecidos para cada trabajo de un problema de scheduling tipo Job Shop Ordenación de tareas y recursos establecidos para cada trabajo de un problema de scheduling tipo Flow Shop Grafo Dirigido para Job Shop con el makespan como el objetivo Proceso de Planificación Jerárquica Esquema de los Métodos estudiados para resolver un Job Shop Esquema de Técnicas utilizadas en la resolución de CSPs Grafo Dirigido para Job Shop con el makespan como el objetivo Flujo de los Trabajos Relación entre los sub problemas al aplicar Programación Dinámica hacia adelante Orden en la obtención de la solución óptima de cada sub problema Relación entre los sub problemas al aplicar Programación Dinámica hacia atrás Orden en la obtención de la solución óptima de cada sub problema Aplicación del método Branch and Bound a un determinado problema Árbol de Búsqueda Algoritmo de Backtracking Algoritmo VES Algoritmo de Forward Checking Algoritmo MAC x

11 2.15. Secuencia de Operaciones características de un Algoritmo Genético standard Clasificación del Problema considerado en la Tesis Retraso del Tiempo de Recorrido Real con respecto al Tiempo Ideal del mismo tren Banda de Mantenimiento en un Tramo de Vía Única Banda de Mantenimiento en un Tramo de Vía Doble Terminología del problema Sucesión en un tramo con Bloqueo Automático, menor velocidad para el primer tren Sucesión en un tramo con Bloqueo Automático, menor velocidad para el segundo tren Sucesión en un tramo con Bloqueo Manual Ocupación de una dependencia durante un determinado intervalo de tiempo Adelantamiento del tren t j al tren t i en la estación l k Satisfacción de Recepción y Expedición considerando que t i llega primero a la estación Satisfacción de Recepción y Expedición considerando que t j llega primero a la estación Un ejemplo de aplicación de demora por parada no prevista Retraso del Tiempo de Recorrido Real con respecto al Tiempo Ideal del mismo tren Dos grupos de trenes, cuyas salidas iniciales deben satisfacer un determinado periodo de tiempo Correspondencia entre las propiedades de un Job Shop y el Problema OPT El problema OPT como un problema tipo Job Shop Valor de makespan puede no ser suficiente en la función objetivo del problema OPT xi

12 4.3. Técnica branch and bound propuesta por Higgins et al. [64] Recorrido Ideal de 4 Trenes, cuyo horario se desea Programar Arbol de Soluciones para la instancia P del problema OPT Makespan mínimo para una instancia del problema de programación de horario para trenes Primera máquina seleccionada con un orden determinado de operaciones Makespan modificado cuando se considera márgenes de seguridad Ordenamiento de Variables en el problema OPT Dominio de una variable siendo asignada filtrado a partir de determinadas restricciones Dominio filtrado a partir de la restricción sobre periodicidad en salidas consecutivas Ordenación de Variables y Valores en la construcción de una solución Una instancia del problema de scheduling tipo Job Shop Esquema del Método de Optimización y Satisfacción de Restricciones para un Problema tipo Job Shop Evaluación Solución Parcial decide sobre la poda de una rama del árbol de búsqueda Correspondencia entre las propiedades de un Job Shop y el Problema OPT Algoritmo para planificar horarios de Trenes Cadenciados Implementación del Método propuesto al problema OPT que incluye la restricción sobre Periodicidad en Salida Algoritmo para la Asignación de Horarios a Trenes No Periódicos Estaciones de Referencia para el grupo G i de trenes Un Ejemplo de Partición de Recorridos Algoritmo para Seleccionar un Tren Arbol de Búsqueda para el Problema de Programación de Horarios Asignación de horarios válidos para G i en una partición j de su recorrido Asignación de Horarios a Trenes Consecutivos xii

13 5.17. Resolución de Conflictos durante la Asignación de Horarios a Trenes Consecutivos Asigación de Prioridades en un Tramo Cálculo de Γ i. Se relaja el problema por considerar que T = {t i } T C Retraso del tren t i con respecto a su tiempo de referencia Γ i Arquitectura de la herramienta software que implementa el método PBO Coste Promedio en función de α para diferentes valores de ε Un ejemplo donde se aplica Backtracking Función Objetivo por Caso de Prueba y por Unidad de Tiempo Valor Promedio de Función Objetivo por Tiempo, < α = 3, ε = 0.05 > y < α = 1, ε = 0.05 > Instancia del Problema OPT de baja complejidad Datos de la Línea Ferroviaria Solución para una instancia Causa del retraso del tren t y Causa del retraso del tren t y Causa del retraso del tren t y Causa del retraso del tren t y Causa del retraso del tren t y Periodo de tiempo entre salidas iniciales consecutivas: 20 minutos Periodo de tiempo entre salidas iniciales consecutivas: 30 minutos Periodo de tiempo entre salidas iniciales consecutivas: 40 minutos Periodo de tiempo entre salidas iniciales consecutivas: 60 minutos Causa del retraso del tren t y Causa del retraso del tren t y Línea ferroviaria compuesta por Trenes Cadenciados y Trenes sin Cadenciar de diferentes operadores Línea con la mayor parte de sus tramos en vía doble Trenes Cadenciados superpuestos Ejemplo de aplicación de la métrica SSHR en un tramo xiii

14 6.24. Ejemplo de aplicación de la métrica SSHR en un tramo A.1. Datos recibidos por MOM correspondientes al conjunto de trenes y línea ferroviaria seleccionada por el planificador A.2. Especificar criterios para visualizar un subconjunto de los trenes considerados A.3. Elección y Confirmación de los trenes cuyos horarios se deberán optimizar A.4. Trenes considerados durante la Optimización utilizando cierta línea ferroviaria A.5. Trenes considerados durante la optimización, cuyos días de circulación incluyen Sábado y Domingo A.6. Cruce entre 3 Trenes sin días de circulación en común A.7. Opciones para gestionar una Parada no prevista en una estación A.8. Edición de los parámetros para especificar Periodicidad en Salida A.9. Solución que satisfacen una determinada periodicidad en salida A.10.Dos valores para el tiempo de recorrido de cada tren en cada tramo de su recorrido A.11.Modificación del tipo de Dependencia para un determinado tren A.12.Solución en la cual la dependencia no se considera Estación. 287 A.13.Solución obtenida considerando las Bandas de Mantenimiento A.14.Solución obtenida sin considerar las Bandas de Mantenimiento A.15.Edición de atributos correspondientes a dependencias de una línea. 290 A.16.Edición de atributos correspondientes a tramos de una línea A.17.Edición de los parámetros incluidos en las restricciones y en el proceso de optimización A.18.Resumen de las principales Funcionalidades de las Aplicaciones Comerciales estudiadas xiv

15 Agradecimientos A mis directores de Tesis, el Dr. Federico Barber Sanchís y la Dra. Pilar Tormos Juan, en primer lugar por haberme proporcionado la oportunidad de ser su alumna de tesis, y por haberme ayudado desde el inicio de este trabajo y durante toda la realización del mismo. Han leído pacientemente cada capítulo de este trabajo, y no se han cansado de indicarme modificaciones, demostrando la mejor voluntad para que este trabajo saliera adelante de la mejor forma posible. Mil gracias. Quisiera agradecer al Dr. Antonio Lova por todos sus consejos, ideas, conocimientos, experiencia, y lo más importante constante apoyo para llevar a cabo cada uno de los pasos durante la implementación del método de solución. Mil gracias a mi esposo Carlos, a mis padres Yuyo y Emilce y a mis hermanas Andre y Cati, por su apoyo incondicional, por estar siempre a mi lado, por la confianza. Son mi referencia y ejemplo, son mi motivo de superación. A mi querida amiga Adri, quien me permitió llegar hasta el Grupo de Planificación y Scheduling. Gracias porque siempre me ha demostrado su amistad, me ha brindado su ayuda en todos los momentos que la necesité, y me ha permitido compartir con ella hermosos momentos. A todos mis queridos amigos, sin querer olvidar a ninguno, quisiera agradecer especialmente a la Su por ser siempre como una hermana para mi, a Lili por su apoyo incondicional, a Oscaring por todo lo que me ayudó apenas llegué a Valencia con los programas en su querido C++, y con su espectacular forma de ser que espero no cambie nunca. Agradecer también a las chicas del laboratorio, por ser tan buenas compañeras de trabajo. Por último, agradecer a las Instituciones Españolas por el apoyo económico que brindan a las investigaciones, y a aquellas personas que directamente o indirectamente me han ayudado a llevar a cabo este trabajo. Valencia, España Febrero, 2007 Laura Paola Ingolotti Hetter xv

16

17 Acrónimos, Notación y Lista de Variables CSOP - Problema de Optimización y Satisfacción de Restricciones OPT - Optimizar y Programar horario para Trenes (i, j) - procesamiento del trabajo j en la máquina i p ij - tiempo de procesamiento del trabajo j en la máquina i C max - makespan del problema y ij inicio de la operación (i, j) R - red de restricciones X - conjunto finito de variables en un CSOP D - conjunto finito de dominios en un CSOP C - conjunto finito de restricciones en un CSOP C i - definición de la restricción i de un CSOP xvii

18 xviii F i - componente funcional que evalúa a valores reales Q i - ámbito del componente funcional F i ā - asignación factible a las variables del conjunto X a i - asignación de las variables x j X, 1 j i x i variable, elemento de X C - red de costos F C - conjunto de funciones que forman la función de costo de un CSOP l i - identificador de una dependencia N i - cantidad de vías en la dependencia l i de la línea L N P i - cantidad de vías con andén en la dependencia l i de la línea L HC i - horario de cierre de la dependencia l i A i j - inicio del intervalo de cierre j de la dependencia l i B i j - fin del intervalo de cierre j de la dependencia l i type i j - tipo de cierre correspondiente al intervalo j en la dependencia l i AC - tipo de cierre Apto para Circulación

19 xix NC - tipo de cierre NO Apto para Circulación l i l i+1 - sección de vía entre las dependencias l i y l i L - línea ferroviaria, secuencia ordenada de dependencias S - conjunto de estaciones en la línea ferroviaria L sec i - secuencia de secciones de vía entre dos estaciones consecutivas T - conjunto de trenes T C - conjunto de trenes en circulación T new - conjunto de trenes nuevos l j i - dependencia i del recorrido del tren j J i - recorrido del tren t i T D - trenes que viajan en sentido ida T U - trenes que viajan en sentido vuelta T newd - trenes nuevos que viajan en sentido ida T newu - trenes nuevos que viajan en sentido vuelta C j i - parada comercial de t j en la dependencia l j i de su recorrido ϕ dep x,k - mínimo tiempo de sucesión requerido entre las salidas de trenes consecutivos de la dependencia l k

20 xx - mínimo tiempo de sucesión requerido entre las llegadas de trenes consecutivos a la dependencia l k ϕ arr x,k 84 S i,j - estaciones comunes a los recorridos de t i y t j T ti - trenes de T que tienen alguna dependencia en común con t i T Uj - trenes de T que viajan en sentido vuelta y tienen alguna dependencia en común con t j Γ i - cantidad en la que aumenta el tiempo de recorrido de un tren t i en un tramo cuando existe una parada no prevista en las dependencias adyacentes 97 R i - mínimo tiempo de recepción requerido por t i p j prioridad asignada a t j E i - mínimo tiempo de expedición requerido por t i [I i L, I i U] - intervalo de tiempo en el cual es factible que t i parta de la estación origen de su recorrido [F i L, F i U] - intervalo de tiempo en el cual es factible que t i llegue a la estación final de su recorrido D max i - retraso máximo permitido a t i con respecto a su tiempo de recorrido ideal 99 τ i - tiempo de recorrido ideal del tren t i Λ i tiempo de recorrido real empleado por el tren t i para realizar su recorrido completo G i - grupo de trenes consecutivos entre los cuales debe cumplirse un determinado periodo de tiempo entre sus salidas [P i L, P i U] - intervalo de tiempo al que debe pertenecer el periodo exigido entre las salidas de trenes consecutivos

21 xxi S periodoi - conjunto de estaciones en las que debe cumplirse una determinada frecuencia de salida de los trenes que forman el grupo G i X I - variables que denotan instantes de llegada/salida de trenes que viajan en sentido ida X V - variables que denotan instantes de llegada/salida de trenes que viajan en sentido vuelta Γ i ref - mejor tiempo que se puede obtener para el tren t i δ(ā dir, i ) retraso de t i con respecto al tiempo promedio de los trenes que viajan en sentido dir ω exc - peso proporcionado al retraso promedio de los trenes en la función de costo global del CSOP ω desv - peso proporcionado a la desviación standard de los retrasos promedio de cada sentido de viaje con respecto al retraso promedio total t i - identificador de un tren arr i j+1 instante de llegada del tren t i a la dependencia j + 1 de su recorrido dep i j instante de salida del tren t i de la dependencia j de su recorrido i j j+1 - tiempo que emplea t i en ir desde l i j hasta li j T open conjunto de trenes nuevos que aún no tienen un horario en todo su recorrido 182 Sec i done tramos pertenecientes al recorrido de t i en los que se ha especificado un horario factible ρ i probabilidad de que el siguiente tramo del recorrido de t i sea seleccionado para la asignación de horario δ i partial retraso del tren t i con respecto al tiempo de referencia Γ i teniendo en cuenta los tramos a los que se ha asignado hasta entonces un horario δ min - retraso parcial mínimo entre los retrasos parciales de los trenes nuevos, en un determinado instante de tiempo

22 xxii - parámetro que representa un valor muy pequeño, utilizado para que ninguna probabilidad ρ i sea igual a cero ε - parámetro que se utiliza para escalar una probabilidad. Cuanto mayor es α este valor la diferencia entre las probabilidades también aumenta en forma exponencial J ij partición j del recorrido J i J ij partición j del recorrido J i

23 Resumen Los problemas de optimización y satisfacción de restricciones son extraordinariamente complejos y variados. Al mismo tiempo, son problemas de alto interés, tanto en el aspecto científico-técnico como en el aplicado. Por ello, poder disponer de soluciones algorítmicas eficientes y flexibles supone un alto valor añadido en muy diferentes entornos de aplicación. Entre los más típicos problemas de este tipo, se encuentran los problemas de scheduling, que implican la ejecución de acciones que requieren recursos cuya disponibilidad está limitada y por tanto deben asignarse de modo eficiente. Problemas de este tipo aparecen en numerosos contextos, entre los que se encuentran la generación optimizada de horarios. Concretamente, el problema considerado en esta tesis corresponde a la generación optimizada de horarios ferroviarios. Este problema puede asimilarse a un problema de scheduling tipo Job Shop, aunque con unas características particulares y especialmente complejas. Se han publicado muchos trabajos en relación al problema de scheduling tipo Job Shop genérico, la mayoría de ellos modelando el problema mediante programación entera mixta y resolviéndolo mediante la utilización de métodos matemáticos. En otros casos, se ha considerado la aplicación de técnicas CSPs híbridas, donde se fuerza la consistencia de las restricciones hasta un determinado nivel, combinando el procedimiento con búsqueda heurística. Sin embargo, en todos los trabajos revisados se considera un subconjunto reducido de las restricciones del problema que consideramos en esta Tesis. Esto claramente disminuye la complejidad del problema, razón por la cual en los métodos matemáticos puede utilizarse la relajación Lagrangiana o los planos de corte para xxiii

24 xxiv disminuir el espacio de búsqueda. Sin embargo, cuando se incorporan los complejos tipos de restricciones que aparecen en los contextos reales, la programación matemática ya no es viable, pues los métodos de solución matemáticos se vuelven impracticables. Por otra parte, en el caso de los métodos basados en técnicas CSPs, es necesaria una adecuación de las mismas para disminuir el espacio de búsqueda. De lo contrario, el tiempo empleado para prevenir o realizar backtrackings, o para ordenar variables o valores en la búsqueda, hace inviable su aplicación en el complejo entorno propuesto. En resumen, es necesario adecuar y ampliar las técnicas citadas, desarrollando nuevos métodos y heurísticas que permitan una resolución eficiente ante los problemas reales y complejos como el que se plantea en esta Tesis, de forma que pueda desarrollarse un sistema computacional de utilidad en una variada tipología de problemas. Nuestro objetivo es obtener una asignación optimizada de recursos en un complejo problema de scheduling tipo Job Shop. Particularmente, hemos diseñado y desarrollado nuevos métodos para un problema de asignación de horarios (timetabling) en el contexto del transporte ferroviario. En primer lugar, realizamos una modelización formal del problema, original en su ámbito, especificando el conjunto de variables, dominios y restricciones que lo definen. Tras la revisión de propuestas previas, orientadas a la resolución de estos problemas, y análisis de sus carencias, proponemos un nuevo método de solución que considera todas las restricciones propias de un contexto real. Se describen nuevas heurísticas para la ordenación de variables, así como procedimientos que fuerzan la consistencia entre restricciones sin que sea necesaria la previa ordenación de los valores en sus dominios. Se introducen métodos para llevar a cabo el backtracking sin tener que deshacer más asignaciones que las necesarias, así como una heurística de poda de soluciones parciales que no conduzcan a soluciones mejores que la actualmente conseguida. Los métodos desarrollados disponen adicionalmente de una funcionalidad de respuesta anytime. Los métodos y procedimientos presentados se evalúan sobre diversas instancias del problema, todas ellas obtenidas de casos reales. Se han seleccionado casos de estudio de diferente complejidad que nos han permitido concluir la eficiencia de los

25 métodos desarrollados en cuanto a tiempo de respuesta y calidad se refiere. xxv

26

27 Abstract Constraint Satisfaction and Optimization Problems are extraordinarily complex and varied. At the same time, these problems have a high interest, as well in the scientific-technic aspect, as in the applied aspect. Thus, having efficient and flexible algorithmic solutions supposes a high extra value in different contexts of application. Scheduling problems are one of the more typical problems of this type, which imply the execution of actions that requiere resources whose availability is limited, and therefore it must be assigned efficiently. Problems of this type appear in numerous contexts, for example the optimized generation of timetables. Concretely, the considered problem in this thesis corresponds to the optimized generation of railway timetables. We consider this problem as a specialization of the Job Shop Scheduling Problem, although with a complex and specific characteristics. Many works related to the generic Job Shop scheduling problem have been published. Most of them model the problem using mixed integer programming and solving it using mathematical procedures. In other cases, the application of hybrid CSP techniques have been considered, where the enforcing consistency of constraints is employed until a given level, combining the procedure with heuristic search. However, in all the reviewed works are considered a reduced subset of constraints with respect to the set of constraints that we consider in this thesis. This reduces considerably the problem complexity and allows the use of mathematical methods such as the Lagrangian relaxation or the cut planes, that are used to minimize the search space. But, when complex types of constraints, suitable for real contexts, are incorporated, the mathematical methods are not viable. These methods become impracticable. In the other hand, in the case of CSP techniques based methods, xxvii

28 xxviii is necessary its adaptation in order to reduce the search space. If this adaptation is not performed, the time employed to prevent, perform backtracking, and order variables or values during the search, implies an impracticable process of search in the complex domain that we propose. In summary, it is necessary to adapt and to extend the reviewed techniques, developing new methods and heuristics that allow and efficient solving considering real and complex problems, such as the proposed in this thesis. In this way, will be possible implement a practical computational system for diverse problem types. Our objective is to obtain an optimized assignment of resources in a complex Job Shop scheduling problem. In particular, we have designed and developed new methods to solve the optimization and generation of timetables problem in the railway transport context. First, we model the problem formally specifying the variable set, domains and constraints that define it. After a review of previous proposals, oriented to solve these problems, and after an analysis of their deficiencies, we propose a new method of solution that considers all the constraints suitable for a real context of application. New heuristics for variable ordering, as well as procedures for the consistency enforcing of constraints without a previous value ordering are described. New techniques to perform backtracking are introduced, where the minimal undo operations are carried out, and a procedure to estimate the cost of each partial solution is used to discard it if its cost is equal or worse than the best solution obtained until this time. The new methods have additionally a response functionality anytime. The proposed methods and procedures are evaluated using diverse instances of the problem, all them have been obtained from real cases. Cases of study with different complexity have allowed us conclude on the new methods efficiency regards to response time and quality are concerned.

29 Resum Els problemes d optimització i satisfacció de restriccions són extraordinàriament complexos i variats. Al mateix temps, són problemes d alt interés, tant en l aspecte cientificotècnic com en l aplicat. Per això, poder disposar de solucions algorítmicas eficients i flexibles suposa un alt valor afegit en molt diferents entorns d aplicació. Entre els més típics problemes d este tipus, es troben els problemes de scheduling, que impliquen l execució d accions que requerixen recursos la disponibilitat dels quals està limitada i per tant han d assignar-se de manera eficient. Problemes d este tipus apareixen en nombrosos contextos, entre els que es troben la generació optimitzada d horaris. Concretament, el problema considerat en esta tesi correspon a la generació optimitzada d horaris ferroviaris. Este problema pot assimilar-se a un problema de scheduling tipus Job Shop, encara que amb unes característiques particularsment i especialment complexes. S han publicat molts treballs en relació al problema de scheduling tipus Job Shop genèric, la majoria d ells modelant el problema per mitjà de programació sencera mixta i resolent-ho per mitjà de la utilització de mètodes matemàtics. En altres casos, s ha considerat l aplicació de tècniques CSPs híbrides, on es força la consistència de les restriccions fins a un determinat nivell, combinant el procediment amb busca heurística. No obstant això, en tots els treballs revisats es considera un subconjunt reduït de les restriccions del problema que considerem en esta Tesi. Açò clarament disminuïx la complexitat del problema, raó per la qual en els mètodes matemàtics pot utilitzar-se la relaxació Lagrangiana o els plans de talle per a disminuir l espai de busca. No obstant això, quan s incorporen els complexos tipus de restriccions que xxix

30 xxx apareixen en els contextos reals, la programació matemàtica ja no és viable, perquè els mètodes de solució matemàtics es tornen impracticables. D altra banda, en el cas dels mètodes basats en tècniques CSPs, és necessària una adequació de les mateixes per a disminuir l espai de busca. De el contrari, el temps emprat per a previndre o realitzar backtrackings, o per a ordenar variables o valors en la busca, fa inviable la seua aplicació en el complex entorn proposat. En resum, és necessari adequar i ampliar les tècniques citades, desenvolupant nous mètodes i heurístiques que permeten una resolució eficient davant dels problemes reals i complexos com el que es planteja en esta Tesi, de manera que puga desenvolupar-se un sistema computacional d utilitat en una variada tipologia de problemes. El nostre objectiu és obtindre una assignació optimitzada de recursos en un complex problema de scheduling tipus Job Shop. Particularment, hem dissenyat i desenvolupat nous mètodes per a un problema de assignació d horaris (timetabling) en el context del transport ferroviari. En primer lloc, realitzem una modelització formal del problema, original en el seu àmbit, especificant el conjunt de variables, dominis i restriccions que ho definixen. Després de la revisió de propostes prèvies, orientades a la resolució d estos problemes, i anàlisi de les seues carències, proposem un nou mètode de solució que considera totes les restriccions pròpies d un context real. Es descriuen noves heurístiques per a l ordenació de variables, així com a procediments que forcen la consistència entre restriccions sense que siga necessària la prèvia ordenació dels valors en els seus dominis. S introduïxen mètodes per a dur a terme el backtracking sense haver de desfer més assignacions que les necessàries, així com una heurística de poda de solucions parcials que no conduïsquen a solucions millors que l actualment aconseguida. Els mètodes desenvolupats disposen addicionalment d una funcionalitat de resposta anytime. Els mètodes i procediments presentats s avaluen sobre diverses instàncies del problema, totes elles obtingudes de casos reals. Se han seleccionat casos d estudi de diferent complexitat que nos han permés concloure l eficiència dels mètodes desenvolupats en quant a temps de resposta i qualitat es referix.

31 Capítulo 1 Introducción 1.1. Introduccíón Los problemas de optimización y satisfacción de restricciones son extraordinariamente complejos y variados. Al mismo tiempo se trata de problemas de un alto interés, tanto en el ámbito científico-técnico como aplicado. Disponer de soluciones algorítmicas eficientes y flexibles supone un alto valor añadido en muy diferentes entornos de aplicación. Entre estos problemas, se encuentran los de scheduling que implican, en términos generales, la secuenciación de tareas que requieren para su ejecución, la asignación de recursos escasos. Esta asignación de recursos debe hacerse de modo que se optimicen determinados criterios de eficiencia. Muchos problemas que se presentan en la práctica son problemas de scheduling. Entre ellos se encuentran los problemas de generación optimizada de horarios de ferrocarril. De hecho, el desplazamiento de pasajeros y mercancías (movilidad) ha crecido de forma continuada en España a lo largo de los pasados años y está previsto que esta tendencia continúe. Teniendo en cuenta que algunos de los sistemas de transporte se están utilizando al límite de su capacidad (carreteras, ferrocarriles y sistemas de transporte aéreo), este crecimiento supone un importante reto para las partes implicadas, tales como gestores de infraestructuras, operadores de transporte de pasajeros y operadores de mercancías. En particular, en el transporte ferroviario actual, una expansión ilimitada de la infraestructura ferroviaria ya no se ve como una solución para el problema de 1

32 2 1. Introducción la movilidad por una serie de razones, incluyendo el impacto medioambiental: la solución debe venir de un uso racional de las infraestructuras existentes en combinación con una expansión limitada de las mismas. Parte del crecimiento de la movilidad deberá ser facilitado por el sistema de ferrocarriles. Sin embargo con el fin de adecuar este crecimiento o incluso un incremento del mercado compartido del sistema de ferrocarril, deben llevarse a cabo mejoras en la calidad de los servicios y eficiencia de los sistemas. Estos últimos también son necesarios por la entrada de la competencia de mercados libres de ferrocarril por las regulaciones recientes de la Comisión Europea: los operadores de ferrocarril deberán operar como organizaciones comerciales y únicamente es responsabilidad de los gobiernos la gestión de las infraestructuras ferroviarias. La generación automática de horarios optimizados supone una mejora relevante tanto en la calidad del servicio ofrecido al usuario como del uso de la infraestructura ferroviaria existente. El problema de generación de horarios optimizados es un problema combinatorio de optimización. Es un problema combinatorio porque puede existir más de una combinación factible de valores que corresponda a una solución al mismo. Por otra parte, es un problema de optimización porque, de entre todas las combinaciones de valores factibles, se requiere hallar la mejor, o una suficientemente optimizada, según un determinado criterio de optimización. Visto como un problema de scheduling, los problemas de generación de horarios constan de un determinado conjunto de operaciones que deben ser ejecutadas. Cada una de estas operaciones requiere utilizar un determinado tipo de recurso para llevar a cabo su objetivo. Existe un conjunto de restricciones que debe ser satisfecho simultáneamente por las asignaciones realizadas para que estas sean consideradas factibles y por ende una solución del problema. De esta forma, el objetivo es hallar un instante de inicio y un instante de finalización para cada operación, satisfaciendo el conjunto de restricciones correspondiente y optimizando una determinada función objetivo. Como veremos más adelante, el problema considerado en esta tesis corresponde a un particular problema de scheduling tipo Job Shop. En consecuencia, hemos revisado los trabajos previos sobre dichos problemas, analizando sus características y las principales técnicas desarrolladas para resolver un problema de este tipo. En algunos trabajos, se utiliza la programación matemática para la modelización de

33 1.2. El problema de Scheduling tipo Job Shop y su Formulación como un CSOP 3 estos problemas. En otros, la formulación del problema se realiza mediante técnicas de programación de restricciones, tratándolo como un Problema de Optimización y Satisfacción de Restricciones (CSOP, siglas en inglés). Sin embargo, ciertos tipos de restricciones del problema de generación de horarios que tratamos, son muy difíciles de modelar tanto en forma matemática como en el lenguaje de la programación de restricciones. Ello conduce a que los métodos genéricos que resuelven modelos matemáticos o bien que utilizan técnicas para resolver CSOPs no puedan ser utilizados directamente para la modelización de las restricciones existentes en el problema. Por otra parte, las restricciones a tratar dan lugar a una gran complejidad computacional, ya que su presencia implica mayor número de alternativas que estudiar. De esta forma, obtener una solución rápida y de buena calidad puede requerir un excesivo tiempo de cálculo, lo cual no es viable en los entornos de aplicación reales. En consecuencia, tras la revisión de los modelos y métodos orientados hacia la resolución del tipo de problema planteado, es necesario el desarrollo de nuevo métodos que permitan modelar adecuadamente las restricciones existentes y puedan obtener soluciones optimizadas de forma eficiente. El resultado obtenido es descrito en esta Tesis. En las siguientes secciones de este capítulo se introduce el tipo de problema que se plantea resolver en esta tesis, su marco como un problema de scheduling tipo Job Shop y su formulación como un problema CSOP. También se detallan las motivaciones que condujeron al desarrollo de esta tesis, los objetivos concretos de la misma y un esquema de los capítulos que contiene El problema de Scheduling tipo Job Shop y su Formulación como un CSOP Scheduling es el problema de asignar a un conjunto de tareas, un conjunto de recursos, sujeto a un conjunto de restricciones. Ejemplos de restricciones de scheduling incluyen: deadlines (el trabajo i debe ser completado antes que se cumpla el instante t), limitada cantidad de recursos (existen cuatro taladros), restricciones de precedencia (una pieza debe ser pulida antes de ser pintada), prioridades sobre las tareas

34 4 1. Introducción (terminar el trabajo j cuanto antes), entre otras. Uno de los criterios utilizados T3 T4 T2 1 R4 R1 23R5 R3 R4 R5R R3 para clasificar 1 5 R4R2 5 los problemas de scheduling es el patrón de flujo, el cual consiste en la secuencia de ordenación de las operaciones. Teniendo en cuenta este criterio el problema de scheduling puede ser: Job Shop (J-S). Por cada trabajo se establece una ordenación determinada entre sus tareas. En la Figura 1.1 se muestra un ejemplo de este tipo de problema, donde T i - 1 i 4 es un trabajo, y R j - 1 j 5 es el recurso que emplea la tarea j que lo compone. T4TT3 T2 1R 1 R 2 R4 3 R R 5 Figura 1.1: Ordenación de tareas y recursos establecidos para cada trabajo de un problema de scheduling tipo Job Shop Flow Shop (F-S). Todos los trabajos tienen la misma secuencia de ordenación de las operaciones. Es un caso particular del J-S. En la Figura 1.2 se muestra un ejemplo de este tipo de problema. Como puede verse, existen cuatro trabajos y en todos ellos se requiere utilizar los recursos del problema en el mismo orden. Figura 1.2: Ordenación de tareas y recursos establecidos para cada trabajo de un problema de scheduling tipo Flow Shop Permutation Flow Shop (P). Hay una ordenación determinada de las operaciones para cada uno de los trabajos, y también hay un orden de uso de cada uno de los recursos por parte de las operaciones. Open Shop (O). No hay ninguna restricción de ordenación.

35 1.2. El problema de Scheduling tipo Job Shop y su Formulación como un CSOP 5 En particular, el problema objeto de esta tesis es un problema de scheduling que corresponde a un tipo específico de Job Shop. En un problema de scheduling tipo Job Shop existen n trabajos, cada uno formado por una secuencia ordenada de operaciones que visita un número de máquinas siguiendo una ruta pre determinada. En algunos modelos de Job Shop, un trabajo puede visitar una determinada máquina a lo sumo una vez, en otros modelos una misma máquina puede ser visitada más de una vez por un mismo trabajo. En el último caso se dice que el trabajo está sujeto a re circulación. El procesamiento del trabajo j en la máquina i es referido como una operación (i, j) y su duración es p ij. El objetivo es minimizar el makespan C max. En general, en un Job Shop cada máquina Origen puede U00 0 procesar 2, como máximo una operación a la vez. En el trabajo publicado por Dechter en [32], el problema de minimizar el makespan un Job Shop sin re circulación es representado por medio de un grafo disyuntivo. Se considera un grafo dirigido 1 1, 2 G con un conjunto 2, 34, 2p43 42p de nodos N y 32p43VTerminal dos conjuntos de arcos A y B.,2,3 p23 3, 4, 3, Figura 1.3: Grafo Dirigido para Job Shop con el makespan como el objetivo Los nodos N corresponden a todas las operaciones (i, j) que deben ser llevadas a cabo en los n trabajos. Los arcos del conjunto A, llamados arcos conjuntivos representan las rutas de los trabajos. Si el arco (i, j) (h, j) es parte de A, entonces el trabajo j tiene que ser procesado en la máquina i antes de ser procesado en la máquina h. Esto significa que la operación (i, j) precede a la operación (h, j). Dos operaciones, que pertenecen a dos trabajos diferentes y que deben ser procesadas por la misma máquina, están

36 6 1. Introducción conectadas una a otra por los llamados arcos disyuntivos en direcciones opuestas. El conjunto de arcos disyuntivos B forma m cliques de arcos dobles, un clique por cada máquina. Todos los arcos, conjuntivos o disyuntivos, saliendo de un nodo tienen como longitud el tiempo de procesamiento de la operación representada por el nodo. Además hay un nodo origen U y un nodo terminal V, los cuales son nodos artificiales. El nodo origen U tiene n arcos conjuntivos que parten del mismo hacia las primeras operaciones de los n trabajos, y el nodo terminal V tiene n arcos conjuntivos entrantes desde las últimas operaciones. Los arcos salientes del nodo U tienen longitud cero, ver Figura 2.3. Este grafo es denotado por G = (N, A, B). Una de las aproximaciones empleadas para modelar este tipo de problemas consiste en formularlo como un CSOP, el cual es definido por una cuadrupla de: (i) variables, (ii) dominio de las variables, (iii) restricciones y (iv) función objetivo. En un CSOP el objetivo es asignar un valor a cada variable de tal forma que dicho valor pertenezca al dominio de la variable y que la asignación simultánea de las variables del problema satisfagan el conjunto de restricciones considerado. De ser así, una solución es obtenida. La calidad de la misma es medida por la función objetivo, cuyo dominio de aplicación es la asignación realizada. Al modelar un Job Shop como un CSOP, las variables son el instante de inicio y el instante de fin de cada operación definida en el Job Shop. El conjunto de restricciones está formada por los requerimientos de precedencia entre operaciones de un mismo trabajo, requerimientos de capacidad de un recurso o centro de trabajo, así como cualquier otro requerimiento que se desee establecer entre las operaciones o entre los trabajos que componen el Job Shop. El dominio de las variables es el conjunto de valores que pueden servir como unidad de tiempo y la función objetivo puede ser minimizar el makespan, minimizar la demora de determinados trabajos, minimizar el uso de determinados recursos, o cualquier otra función que signifique optimización dentro del dominio en el que se aplica el problema. Se ha realizado una revisión de los métodos y técnicas para resolver problemas de scheduling tipo Job Shop genéricos así como problemas formulados como CSP. Podemos indicar que los principales problemas abiertos consisten en que muchas de las restricciones, necesarias para que la solución sea viable en un entorno real, no son tenidas en cuenta en los trabajos publicados. Al agregar estas restricciones muchos

37 1.3. Marco de Trabajo: Generación Optimizada de Horarios. Aplicación a Horarios Ferroviarios7 métodos, específicamente los que conllevan programación matemática no pueden ser aplicados. Otros métodos basados en heurísticas dejan de ser eficientes, ya que consideran que el backtracking no es necesario, o bien proveen formas de evitar el mismo que al ser aplicados elevan la complejidad temporal de cada generación junto con su complejidad espacial, debido a las estructuras de datos que proponen para recordar cada incumplimiento que implica un backtracking Marco de Trabajo: Generación Optimizada de Horarios. Aplicación a Horarios Ferroviarios El Problema de Optimizar y Programar horarios para Trenes (OPT) puede ser considerado como un problema de scheduling tipo Job Shop. Esta correspondencia es detallada en el Capítulo 3. Sin embargo, el problema reúne un conjunto de características que agregan tal complejidad que las aproximaciones existentes resultan inadecuadas, ya sea por la imposibilidad de formular el problema o por la degradación en la eficiencia del método de solución. El problema OPT es uno de los problemas que deben ser resueltos a la hora de realizar una planificación dentro del sector ferroviario. El sistema de tráfico ferroviario es muy complejo, por lo que el proceso de planificación es dividido en varios pasos (Bussieck, [16]). En la Figura 1.4 se muestra un diagrama de esta descomposición jerárquica. En un primer paso, se estima la cantidad de pasajeros deseando ir desde ciertos puntos origen hasta ciertos puntos destino. A partir de dicha información se planifican las líneas, empezando por la infraestructura necesaria y continuando por los tipos de trenes que operarán en cada línea, y la frecuencia que deberá existir entre los trenes según el tipo al que correspondan. La siguiente tarea consiste en determinar el horario que se asociará a cada tren en cada línea. Es este el problema para el cual proponemos un método de solución en este trabajo, y para el cual proporcionamos una modelización que lo define formalmente. Finalmente se debe realizar una asignación de las máquinas y vagones a cada tren así como del personal que se deberá incluir en cada tren. Cada paso único en este proceso es una tarea difícil. Una descripción más detallada de cada uno es proporcionada por Thomas Lindner en [113].

38 AnálisisdeDemanda delínea 8 1. Introducción Planificac Material Personal Rodante PlanificacióndeHorarios Manejode iónde paratrenes Figura 1.4: Proceso de Planificación Jerárquica Otro clásico punto de vista es la partición del proceso de planificación en planificación estratégica, táctica y operacional [113]. Ver Tabla 1.1. Nivel de Planificación Horizonte de Tiempo Objetivo Estratégica 5-15 años Adquisición de Recursos Táctica 1-5 años Asignación de Recursos Operacional 24h - 1 año Decisiones diarias Cuadro 1.1: Niveles de Planificación En el nivel de planificación estratégica, se examinan posibles inversiones de infraestructura. El objetivo es decidir acerca de la adquisición de recursos. Tales proyectos pueden tener una duración de 5-15 años, y por lo tanto la visión de futuro juega un papel muy importante. El análisis de la demanda de pasajeros y el diseño de las líneas pertenecen a este nivel de planificación. También es posible examinar horarios de trenes en este punto de la planificación, para examinar el efecto de una cierta propuesta de infraestructura en el tiempo de viaje.

39 1.3. Marco de Trabajo: Generación Optimizada de Horarios. Aplicación a Horarios Ferroviarios9 La planificación táctica está enfocada a la asignación de recursos a medio plazo. En esta etapa, el patrón general de flujo de tráfico es derivado de la infraestructura invariable y de los datos acerca de las demandas de clientes. Se realiza una planificación de líneas y horarios de trenes más detallados así como patrones generales para la circulación de material rodante y manejo del personal. Decisiones diarias constituyen el nivel de planificación operacional. En esta etapa de la planificación, partes de un horario o parte de la planificación de material rodante y personal deben ser re planificados, debido a eventos inesperados como averías, requerimiento de trenes especiales, o cambios en la infraestructura por cortos periodos de tiempo, causados por la construcción en ciertos sitios. El método de solución que proponemos en esta Tesis podrá ser utilizado tanto para llevar a cabo una Planificación Táctica como Operacional en cuanto a la asignación de horarios se refiere Introducción al Problema de Optimizar y Programar horarios para Trenes En el Problema de Optimizar y Programar horarios para Trenes (OPT) se considera un conjunto de trenes y una línea ferroviaria, la cual está formada por una secuencia ordenada de dependencias (apeaderos, estaciones, bifurcaciones, cargaderos,..., etc.). Cada tren tiene definido un recorrido sobre la misma, que no tiene por qué ser el mismo para todos. Se deberá asignar un horario factible, según un determinado conjunto de restricciones, a cada tren, optimizando una determinada función objetivo. El orden entre las dependencias determina el orden en el cual deben ser visitadas por los trenes que viajan en un determinado sentido, al cual denominamos ida. Cuando los trenes viajan en el sentido opuesto, decimos que viajan en sentido vuelta. Las restricciones, que deben ser satisfechas por la programación de horarios entregada, tienen en cuenta la capacidad de la infraestructura ferroviaria, el tráfico que existe en la línea, las condiciones de mantenimiento, el servicio propuesto al cliente, y las condiciones establecidas por el planificador de horarios para guiar hacia un tipo de resultado la solución que se obtenga. La infraestructura ferroviaria está dada por el número de vías en la dependencia

40 10 1. Introducción y entre dependencias consecutivas, así como por el tipo de señalización que existe en cada tramo. Las restricciones que tienen en cuenta el mantenimiento de la línea incluyen los horarios de cierre en las estaciones y los intervalos de tiempo correspondientes a las operaciones de mantenimiento. En cuanto a las restricciones de tráfico, se debe considerar que puede existir más de un tren en la línea, por lo tanto se deberá evitar colisiones entre ellos o cualquier otro tipo de operación que ponga en riesgo al vehículo y a sus ocupantes. En cuanto al servicio al cliente, puede ser requerida una determinada frecuencia de salida entre trenes consecutivos de determinadas estaciones, o una mínima parada comercial que permita el ascenso y descenso de pasajeros en determinadas estaciones o apeaderos. Además, el planificador podrá especificar por cada tren, un intervalo de instantes de tiempo factibles para que el tren parta de su estación origen y podrá restringir el instante de llegada a su estación destino a un determinado intervalo de tiempo. Otro requerimiento que puede ser añadido es el de un máximo retraso permitido con respecto a un tiempo de referencia para el tren. En cada dependencia se especifica un número total de vías y la cantidad de estas vías que poseen andén. Un tren no podrá llegar a una dependencia en la cual no exista por lo menos una vía disponible. Además, deberá poseer andén si el tren que llega tiene previsto realizar una parada comercial en ella. Otro de los atributos asociados a una dependencia es el horario de cierre, formado por un conjunto de intervalos de tiempo, que señalan cada uno, los instantes en los que dicha dependencia permanece cerrada. Consideramos dos tipos de cierre: apto para circulación y no apto para circulación. Si se da el primer caso, significa que mientras dure el cierre, solo una vía de la dependencia estará disponible, lo cual a su vez significa que no podrá ser ocupada al mismo tiempo, por más de un tren. Si el cierre es del segundo tipo, significa que ningún tren podrá pasar por la dependencia mientras dure el cierre especificado para la misma. Entre dos dependencias consecutivas pueden existir una o dos vías de circulación. Si existe una sola vía de circulación, entonces tanto los trenes que viajan en sentido ida como los trenes que viajan en sentido vuelta deberán utilizar la misma vía para ir de una dependencia a otra. En este caso se deberá tener en cuenta que dos trenes viajando en sentido opuesto no podrán utilizar dicho tramo al mismo tiempo, para evitar una colisión entre los mismos. Cuando dos trenes que viajan en sentido opuesto

41 1.3. Marco de Trabajo: Generación Optimizada de Horarios. Aplicación a Horarios Ferroviarios11 tienen la posibilidad de ocupar un mismo tramo al mismo tiempo, se deberá decidir cuál de ellos lo ocupará primero, haciendo que el otro tren espere hasta que el tramo sea liberado. La decisión que sea tomada cada vez que aparece un conflicto de este tipo, condiciona la calidad de la programación de horarios. Cuando dos trenes que viajan en sentidos opuestos llegan a una misma estación, desde tramos que constan de única vía, es importante que exista un mínimo tiempo entre sus llegadas (tiempo de recepción) así como entre la llegada de un tren y la salida del tren con sentido de viaje opuesto (tiempo de expedición). Estos tiempos aseguran que no se produzcan colisiones entre trenes que viajan en sentidos opuestos, a la entrada o a la salida de una estación que posea una única vía de salida o de llegada. Cuando existen dos vías de circulación entre dos dependencias consecutivas, se dedica cada vía a la circulación en un determinado sentido, de tal forma que dos trenes viajando en sentido opuesto no utilizarán la misma vía de circulación en dicho tramo. Cuando dos trenes viajan en el mismo sentido y son consecutivos entre sí, por razones de seguridad se requiere que exista una diferencia de tiempo entre ellos. Según sea el sistema de señalización empleado en un tramo, a esta diferencia de tiempo la denominamos sucesión automática o sucesión manual. En el primer caso se requiere que exista una mínima cantidad de tiempo entre las salidas y las llegadas de los trenes consecutivos de y a las estaciones del tramo. En el segundo caso, el tramo no podrá ser ocupado al mismo tiempo por dos trenes. El segundo tren deberá esperar hasta que el primero llegue a la siguiente estación abierta y se produzca el aviso de llegada. Es necesario que la estación a la cual llegue el primer tren se encuentre abierta para que un operario pueda avisar por teléfono al segundo tren que ya puede salir. Si los dos trenes necesitan realizar una parada en alguna estación común a sus recorridos, siempre que ambos trenes puedan salir al mismo tiempo de la estación, deberá salir primero aquel tren que hubiera llegado primero a la misma, es decir, en estos casos no se permite adelantamientos entre trenes consecutivos. Existen intervalos de tiempo en los que se prevé mantenimiento para un determinado tramo. En los instantes de tiempo pertenecientes a dicho intervalo se considera que el número de vías para circulación en el tramo, disminuye en uno. Es decir, si el tramo consta de una sola vía de circulación, no podrá pasar ningún tren por el

42 12 1. Introducción tramo mientras dure el mantenimiento. Si el tramo consta de dos vías, el tramo quedará reducido a un tramo de única vía mientras dure el mantenimiento. Por cada tren se especifica una velocidad promedio por tramo, sin embargo cuando el tren debe detenerse en una estación en la cual no tenía previsto parar, la velocidad promedio del tramo previo a la estación y la velocidad promedio del tramo posterior a la misma deberá disminuir con respecto a la velocidad previamente especificada, ya que el tren deberá frenar y posteriormente deberá ponerse en marcha para continuar su viaje. Siendo así, se deberá incrementar el tiempo de recorrido inicialmente especificado para el tren en los tramos anterior y posterior a la estación donde se produce la parada no prevista. El intervalo de tiempo dentro del cual se lleva a cabo la optimización es un parámetro del problema. El intervalo máximo permitido es el correspondiente a un día de planificación, [0, 86400] segundos. Los trenes pueden pertenecer a diferentes tipos, esto es diferentes velocidades, diferentes recorridos, diferentes paradas especificadas en las estaciones,...etc. Se considera la posibilidad de que la línea ferroviaria ya se halle ocupada por otros trenes, a los cuales se denomina trenes en circulación porque ya tienen un horario determinado el cual no podrá ser modificado para introducir a los nuevos trenes. El horario de los nuevos trenes deberá tener en cuenta la ocupación que realicen los trenes en circulación de los tramos y las estaciones consideradas Motivaciones La asignación optimizada de horarios es un problema que supone un reto en el desarrollo de sistemas computacionales, por lo que ha sido objeto de estudio de diversos trabajos en el área. Los trabajos realizados proponen distintos métodos de solución para problemas de asignación, contemplando determinados conjuntos de restricciones. Sin embargo, el conjunto de restricciones que consideran resulta incompleto para algunos dominios de aplicación, como el problema de optimización de horarios ferroviarios que se plantea en esta tesis. Más concretamente, en este problema subyacen restricciones muy complejas para las que no se han desarrollado métodos capaces de gestionarlas adecuadamente. El problema planteado corresponde a un problema real en el que se deben tratar las

43 1.5. Objetivos de la Tesis 13 restricciones que realmente subyacen en el mismo. La revisión de métodos de solución para problemas relacionados al considerado, así como de aquellas técnicas generales más referenciadas, tanto en el campo de la Investigación de Operaciones como en el campo de la Inteligencia Artificial, nos ha permitido distinguir aquellas propiedades que son necesarias, así como aquellas características que nos impiden utilizarlos como tales en la resolución de este problema. En consecuencia, el diseño y desarrollo de sistemas capaces de contemplar las complejas restricciones que subyacen en un problema real de asignación optimizada de horarios en un entorno ferroviario supone un importante reto científico. Además, desde un punto de vista práctico, para que estas soluciones sean utilizables, es deseable una resolución eficiente de los problemas de forma que se encuentren soluciones optimizadas en un tiempo razonable. Por todo lo anterior, la motivación principal de esta tesis consiste en desarrollar un método que resuelva el problema planteado de forma eficiente, considerando un conjunto de restricciones que es necesario tratar para la obtención de soluciones factibles para dicho problema. De esta forma se obtendrían soluciones viables en el contexto de aplicación real correspondiente. Bajo otro punto de vista, ofrecer una solución de alta calidad al problema OPT responde a una necesidad real ya que hoy en día la planificación del transporte ferroviario es una tarea altamente compleja. Muchos objetos, que interactúan unos con otros, deben ser manejados simultáneamente. Existen varios sub problemas de diferente naturaleza tales como el diseño de red, scheduling, planificación de líneas, etc. y las soluciones para algunos de estos sub problemas dependen de las soluciones del resto de sub problemas considerados. La programación de horarios es una de las tareas que deben ser llevadas a cabo dentro del proceso de planificación. Consideramos que llevarla a cabo de forma eficiente, tanto en tiempo como en utilización de recursos, contribuye a que el proceso de planificación completo tenga buenos resultados, lo cual tiene un interés en el sector socio económico y en el sector ambiental Objetivos de la Tesis Los principales objetivos de esta Tesis son los siguientes:

44 14 1. Introducción 1. Definir formalmente el problema de generación y optimización de horarios ferroviarios, considerando las variables, restricciones y criterios que subyacen en el contexto real de aplicación. En primer lugar, es necesario identificar el problema como un problema de scheduling Job Shop. Posteriormente, se deberán incorporar nuevas restricciones a las comúnmente contempladas en los problemas genéricos de scheduling Job Shop. Para ello, deberán identificarse y formalizarse las específicas y complejas restricciones que subyacen en el problema de generación y optimización de horarios ferroviarios. La identificación del problema como un problema de scheduling tipo Job Shop nos permitirá evaluar las aproximaciones realizadas para la modelización y resolución de problemas Job Shop genéricos. Es necesario identificar las ventajas e inconvenientes de su aplicación, analizando su viabilidad y adecuación. Ello nos permitirá además justificar la necesidad de desarrollar nuevos modelos y métodos más adecuados a la tipología del problema planteado. 2. Diseñar y desarrollar nuevos métodos de solución para el problema de generación y optimización de horarios ferroviarios. El objetivo es desarrollar un método que permita obtener soluciones optimizadas de forma eficiente. Para ello, será necesario diseñar nuevas heurísticas capaces de guiar el proceso de búsqueda hacia soluciones que optimicen la función objetivo. Se deberán desarrollar heurísticas, para una adecuada ordenación de variables, valores de instanciación y generación eficiente de soluciones. El objetivo es obtener las mejores soluciones en el menor tiempo posible. Como paso previo, se deberán analizar las técnicas CSP y de programación matemática, revisando su adecuación y/o aplicabilidad al problema. 3. Evaluación de los métodos desarrollados. Diseño de casos de prueba. La evaluación de los métodos desarrollados se debe llevar a cabo utilizando instancias reales del problema considerado, más que problemas-tipo de laboratorio. Ello requerirá el desarrollo de un sistema software que incorpore los métodos diseñados y facilite la parametrización de los casos de pruebas y la evaluación de los resultados obtenidos.

45 1.6. Esquema de la Tesis Esquema de la Tesis Asumiendo que el problema de generación y optimización de horarios es un problema de scheduling Job Shop con determinadas características adicionales, hemos estudiado este tipo de problema, así como los modelos y métodos de solución que han sido publicados en la literatura. En el capítulo 2 proporcionamos el resultado de este estudio. Indicamos las características de un problema de scheduling Job Shop, la programación matemática y la programación de restricciones como las dos aproximaciones que han sido más utilizadas para modelar el tipo de problema considerado. Entre los métodos de optimización exacta se destacan aquellos que aprovechan las propiedades matemáticas de los modelos formulados mediante programación matemática. Entre los métodos heurísticos se distingue entre los que utilizan las propiedades de CSPs para proponer heurísticas, los que están basados en las propiedades de un Job Shop y aquellos propuestos para resolver problemas de optimización combinatorios genéricos. En el capítulo 3, describimos formalmente el problema que se considera en esta Tesis. Lo formulamos como un Problema de Satisfacción de Restricciones, identificando las variables, dominio de las mismas, restricciones y función objetivo, para posteriormente realizar una correspondencia entre el mismo y el problema de scheduling Job Shop, indicando aquellas características que aumentan su complejidad y que hacen necesario la búsqueda de nuevos métodos que lo resuelvan más eficientemente. En el capítulo 4, se describen los modelos y métodos de solución relacionados. También se proporciona un análisis sobre los mismos y la justificación de por qué su utilización no sería factible. En el Capítulo 5, se propone y se describe en detalle un nuevo método de solución, que además de considerar todas las restricciones necesarias en este tipo de problema, es capaz de obtener soluciones optimizadas de modo eficiente. El método se basa en la ordenación de variables para lo cual utiliza una heurística basada en el estado actual el problema, y en la función objetivo del problema. Es un método de ordenación de variables dinámico. Se propone además de una heurística de ordenación, una heurística para podar soluciones parciales que se estima serán peores o iguales a al mejor solución obtenida hasta entonces. El procedimiento propuesto es un método

46 16 1. Introducción que construye una solución en cada iteración y devuelve la mejor solución hasta el momento en que se cumple la condición de parada. Este capítulo junto con el capítulo 3 contienen las principales aportaciones de este trabajo. En el capítulo 6, se proporcionan los resultados obtenidos a partir de la evaluación del método de solución. Para ello se han utilizado instancias reales del problema. En el capítulo 7, se presentan las conclusiones y posibles líneas de trabajos futuros. En el Apéndice final de esta tesis se describe el sistema software que hemos desarrollado y al cual hemos denominado Módulo Optimizador de Mallas (MOM). Se trata de una herramienta software implementada para evaluar la aplicación de los métodos y técnicas desarrollados en esta Tesis sobre datos reales. Dicha herramienta se contrasta con otros sistemas similares, desarrollados en centros tecnológicos internacionales, comparando sus funcionalidades y adecuación al problema.

47 Capítulo 2 Métodos para resolver Problemas tipo Job Shop 2.1. Introducción El problema de scheduling tipo Job Shop descrito formalmente en numerosos trabajos utilizando generalmente modelos matemáticos o redes de restricciones. MétodosHeurístic Métodososusadospararesolver Métodos unjobshop En este capítulo se presentan las aproximaciones más utilizadas para formular este tipo de problema así como algunos de los métodos más representativos para Desplazar resolverlo. Cuello Métodos MétodosDeMejora BranchCut Exacta Se ha realizado un estudio acerca de los mismos BranchP Bound con el objetivo de determinar Búsqueda debotella su aplicabilidad Beam SimulatedTabú Annealing al tipo de BúsquedaGenético problema considerado. ReglasP derocesamiento andricea Dinámica Figura 2.1: Esquema de los Métodos estudiados para resolver un Job Shop Constructivos Algoritmo deoptimización Programación RelajaciónLagrangian A partir del estudio que hemos realizado, clasificamos los métodos para resolver el problema. En primer lugar, se realiza una clasificación de lo métodos de resolución 17

48 18 2. Métodos para resolver Problemas tipo Job Shop todevariables Ordenamienad. en la que se diferencia entre métodos optimización exacta y métodos heurísticos Dinámico Estático (Figura 2.1). Los métodos optimización exacta a los cuales se hace referencia en dicha Aleatoried figura son empleados generalmente para resolver problemas que han sido modelados mediante programación matemática. Entre los métodos heurísticos de la misma figura AsignaciónEjOrdenamienad. : se puede diferenciar entre aquellos cuya heurística está basada en las propiedades un Job Shop (Desplazar Búsqueda Cuello de Botella y Reglas de Procesamiento), y entre aquellos que son comunes a la resolución de cualquier problema de optimización Backtrackimejorado BacktrackiBásico Aleatoried Estimated Maximum Solutions Domain (MC), (MD), (ES), combinatorio. Ej : EjHíbrido : Variable Maintainin Forward : Checking Búsqueda(FC) Inferencia CompletaLocal Algoritmosg, Backmarking, Backjumpin (VES) Incompletaia Nodo ArcoConsistenc o e. ia + Ej:ElprimeroqueFalla, devariables MinimumConflict todevalores deaprendizaj Elimination garcconsistency Search (MAC) CaminoConsistenc Figura 2.2: Esquema de Técnicas utilizadas en la resolución de CSPs Si se consideran los métodos para resolver CSPs, el criterio de clasificación se puede basar en la relación que existe entre el proceso de búsqueda y las técnicas, que utilizando propiedades de un CSP, buscan disminuir el espacio de búsqueda (Figura 2.2). Un CSP también puede ser resuelto por un procedimiento heurístico de búsqueda local, tales como los citados en la Figura 2.2. El análisis crítico de los métodos presentados en este capítulo, respecto a su aportación al problema tipo planteado en esta tesis, se llevará a cabo en un capítulo posterior a la descripción formal del problema OPT, de tal forma que se conozca con mayor detalle todos los requerimientos que debe satisfacer la solución del mismo y así se puedan realizar las comparaciones con mayor claridad.

49 2.2. El Problema de Scheduling tipo Job Shop El Problema de Scheduling tipo Job Shop En esta sección indicamos en qué consiste el problema de scheduling tipo Job Shop, según lo establecido por el área de Investigación de Operaciones. Se indican los conceptos que definen esta tipología de problema con el objeto de establecer posteriormente un paralelismo con las características del problema, para el cual proponemos una solución en esta tesis. Como hemos visto en la Sección 1.2 del Capítulo 1, Job Shop es uno de los tipos de scheduling que existe, si consideramos al patrón de flujo como criterio de clasificación. En un problema de scheduling tipo Job Shop existen n trabajos, cada uno formado por una secuencia ordenada de operaciones. Cada operación consiste en realizar una determinada tarea utilizando una de las M máquinas existentes en el problema. Se utiliza el concepto de máquina para representar un recurso en general. En algunos modelos de Job Shop, un trabajo puede utilizar una determinada máquina a lo sumo una vez, en otros modelos una misma máquina puede ser utilizada más de una vez por un mismo trabajo. En el último caso se dice que el trabajo está sujeto a re-circulación. El procesamiento del trabajo j en la máquina i es referido como una operación (i, j) y su duración es p ij. El objetivo es minimizar el makespan (tiempo transcurrido desde el instante en que se inicia el primer trabajo y el instante en que finaliza el último trabajo) C max. La capacidad de cada máquina es un factor a tener en cuenta. Cuando la capacidad es n, la máquina puede ser utilizada a lo sumo por n operaciones simultáneamente. En general, en un Job Shop cada máquina puede procesar como máximo una operación a la vez (máquina con capacidad n = 1). En [32], Dechter representa el problema de minimizar el makespan en un Job Shop sin re-circulación por medio de un grafo disyuntivo. Se considera un grafo dirigido G con un conjunto de nodos N y dos conjuntos de arcos A y B. Un ejemplo de este tipo de grafo es mostrado en la Figura 2.3. Los nodos N corresponden a todas las operaciones (i, j) que deben ser llevadas a cabo en los n trabajos. Los arcos del conjunto A, llamados arcos conjuntivos representan las rutas de los trabajos. Si el arco (i, j) (h, j) es parte de A, entonces el trabajo j tiene que ser procesado en la máquina i antes de ser procesado en la máquina h. Esto significa

50 20 2. Métodos para resolver Problemas tipo Job Shop que la operación (i, j) precede a la operación (h, j). Dos operaciones, (i, j), (i, k), que pertenecen a dos trabajos diferentes, j y k, y que deben ser procesadas por la misma máquina i, están conectadas una a otra por los llamados arcos disyuntivos en direcciones opuestas. El conjunto de arcos disyuntivos B forman m cliques 1 de arcos dobles, un clique por cada máquina. Todos los arcos, conjuntivos o disyuntivos, saliendo de un nodo tienen como etiqueta el tiempo de procesamiento de la operación representada por el nodo. Además hay un nodo origen U y un nodo terminal V, los cuales son nodos artificiales. El nodo origen U tiene n arcos conjuntivos que parten del mismo hacia las primeras operaciones de los n trabajos, y el nodo terminal V tiene n arcos conjuntivos OrigenU entrantes desde las últimas operaciones. Los arcos salientes del nodo U tienen etiqueta cero. En el grafo G = (N, A, B) de la Figura 2.3, se representa un problema de scheduling tipo Job Shop con cuatro máquinas y tres trabajos. En la 1 Figura 2.4 se indica la secuencia TrabajoMáquina 1, 22, 34, 2 32 V de operaciones que componen cada trabajo, y la máquina requerida por cada una p43 42p p43 Terminal de estas operaciones Figura 2.3: Grafo Dirigido para Job Shop con el makespan como el objetivo,2,1,3 p23 3, 4, 3, Figura 2.4: Flujo de los Trabajos 1 Un clique en un grafo es el menor conjunto de vértices, donde todos son adyacentes entre si

51 2.3. Formulación de un Job Shop utilizando Programación Matemática Formulación de un Job Shop utilizando Programación Matemática La programación matemática es uno de los métodos más comunmente utilizados para modelar un problema tipo Job Shop. En esta sección proporcionaremos un modelo que formula el problema representado por el grafo G en la sección previa. Obtener una solución para un problema de scheduling corresponde a la selección de uno de los arcos disyuntivos por cada par existente en el grafo, de tal forma que el mismo resulte finalmente en un grafo dirigido acíclico. Tal selección determina la secuencia en la cual las operaciones van a ser llevadas a cabo sobre cada máquina. Si D denota el subconjunto de los arcos disyuntivos seleccionados en la solución del problema y el grafo G(D) es definido por el conjunto de arcos conjuntivos y el subconjunto D, entonces D corresponde a una solución si y solo si G(D) no contiene ningún ciclo dirigido. El makespan de una solución es determinado por el camino más largo en G(D) desde el nodo origen U al nodo terminal V. Este camino más largo está formado por un conjunto de operaciones, donde la primera de ellas empieza en el instante cero, y la última finaliza en el instante del makespan. Cada operación en este camino está inmediatamente seguida ya sea por la siguiente operación sobre la misma máquina o por la siguiente operación del mismo trabajo en otra máquina. El problema de minimizar el makespan es reducido a encontrar una selección de arcos disyuntivos que minimice la longitud del camino más largo (esto es, el camino crítico). Hay varias formulaciones de programación matemática para job shop sin recirculación, incluyendo un número de formulaciones de programación entera. Sin embargo, la formulación usada más frecuentemente es la llamada formulación de programación disyuntiva. Esta formulación de programación disyuntiva está relacionada cercanamente con la representación del job shop por medio de grafos disyuntivos. Para presentar la formulación de programación matemática, consideremos que la variable y ij denota el inicio de la operación (i, j). Teniendo en cuenta que N es el conjunto de nodos del grafo G y A es el conjunto de arcos (i, j) (h, j), el siguiente modelo matemático minimiza el makespan. En esta formulación, el primer conjunto de restricciones asegura que la operación (h, j) no puede ser iniciada antes de que la operación (i, j) sea completada. El tercer

52 22 2. Métodos para resolver Problemas tipo Job Shop minimize C max subject to y hj y ij p ij for all (i, j) (h, j) A (1 C max y ij p ij for all (i, j) N (2 y ij y ik p ik y ik y ij p ij for all (i, k) and (i, j), i = 1,..., m (3 y ij 0 for all (i, j) N (4 conjunto de restricciones agrupa a las llamadas restricciones disyuntivas, mediante las cuales se asegura que exista algún ordenamiento en medio de las operaciones de diferentes trabajos que tienen que ser procesadas sobre la misma máquina. Debido a estas restricciones, esta formulación es referida como una formulación de programación disyuntiva. Que un problema de scheduling pueda ser formulado como un programa disyuntivo no implica que haya procedimientos de solución standard disponibles que siempre trabajen satisfactoriamente. Minimizar el makespan en un job shop es un problema muy difícil y procedimientos de solución están basados ya sea en procedimientos enumerativos o en procedimientos heurísticos. La complejidad de un problema de scheduling tipo Job Shop es NP-hard (Garey et. al [44]) Métodos de Optimización Exacta En esta sección describimos algunos de los métodos empleados para resolver problemas de optimización combinatorios modelados mediante la programación matemática, obteniendo la solución óptima del problema si este tiene solución Programación Dinámica El término Programación Dinámica fue acuñado por Richard Bellman [10] en la década de El término programación en ese entonces no se refería a la programación en ordenadores, era utilizado para denotar planificación (programación lineal, mixta,..,etc. tienen una etimología similar). La programación dinámica fue creada con el objetivo de planificar en forma óptima procesos multi-etapas. En el trabajo realizado por Dasgupta [30], se explican varios ejemplos de este tipo de procesos, resueltos utilizando Programación Dinámica.

53 2.4. Métodos de Optimización Exacta 23 Este método es un paradigma algorítmico, basado en el principio de optimalidad de Bellman Cualquier sub secuencia de decisiones de una secuencia óptima de decisiones que resuelve un problema, también debe ser óptima respecto al sub problema que resuelve. Para resolver un problema utilizando Programación Dinámica, es necesario identificar tanto los sub problemas que lo forman, como la relación que existe entre ellos. La relación establece un orden para resolver los sub problemas, ya que la solución de uno es necesaria para resolver otro. Así, el sub problema más pequeño es aquel que no requiere de la solución de ningún otro, sin embargo, su solución sí es necesaria para el siguiente sub problema en el orden. El sub problema más grande, es aquel cuya solución requiere la solución del resto de sub problemas identificados. Resolviendo el último sub problema, el problema original es resuelto. El método Programación Dinámica está caracterizado por tres tipos de ecuaciones, particularmente: (i) condiciones iniciales, (ii) relación recursiva, y (iii) una función del valor óptimo. En scheduling se puede seleccionar entre programación dinámica hacia delante y programación dinámica hacia atrás, las cuales son analizados a continuación. Formulación de Programación Dinámica hacia adelante Se dice que el método de Programación Dinámica se aplica hacia adelante, cuando la ecuación que establece la relación entre un sub problema j y un sub problema j + 1, es definida de tal forma, que la solución óptima de j depende de la solución óptima de j + 1. Como ejemplo, describiremos la forma en que un determinado problema es resuelto utilizando programación dinámica hacia adelante. El problema que consideramos es el problema de la mochila M(1, n, C). En este problema se debe decidir si el objeto i, 1 i n será introducido o no en la mochila, cuya capacidad máxima es igual a C. Cada objeto i ocupa una capacidad igual a p i en la mochila y el beneficio de su utilización es igual a b i. Considerando que x i indica la fracción del objeto i introducida en la mochila, y que los objetos no pueden ser fraccionados, a continuación se especifica el problema de la mochila mediante un

54 24 2. Métodos para resolver Problemas tipo Job Shop modelo matemático. maximize n b i x i i=1 subject to n p i x i C (1 i=1 b i > 0 for all 1 i n (2 x i {0, 1} for all 1 i n (3 Cada sub problema j consiste en hallar una solución a M(j, n, c). Esto quiere decir que se debe tomar una decisión sobre incluir o no los objetos i, j i n, considerando que la capacidad restante en la mochila es igual a c y que el conjunto de decisiones debe producir el máximo beneficio. Así, el sub problema j = 1 consiste en hallar la solución óptima al sub problema M(1, n, C). En este caso, el sub problema 1 es el problema original y el sub problema j = n es el sub problema más pequeño. Considerando que el sub problema es M(j, n, c), la ecuación que establece la relación recursiva entre los sub problemas es f j (c) = max{f j+1 (c), f j+1 (c p j ) + b j }. Como puede verse en la expresión, el máximo beneficio obtenido en cada sub problema j depende de la decisión de incluir o no el objeto j en la mochila y de las decisiones que se lleven a cabo en el resto de sub problemas. Si no se incluyera el objeto j en la mochila, entonces el beneficio asociado al problema j correspondería al obtenido a partir de las decisiones llevadas a cabo en el resto de sub problemas. Si por el contrario, se decidiera incluir el objeto j, entonces b j sería parte del beneficio obtenido, pero en este caso la capacidad de la mochila a la hora de decidir sobre el siguiente objeto j + 1 estaría disminuida en p j unidades. Hemos considerado que f n+1 (c) = 0 y que f j (0) = 0, 1 j n. En la Figura 2.5 se representa la relación de dependencia que existe entre un sub problema y otro a través de la expresión que define la relación existente entre ellos. En la Figura 2.6 se describe cómo el problema original es resuelto desde el sub problema más pequeño al sub problema más grande. Para ello hemos utilizado una instancia del problema de la mochila, tal que el número de objetos sea igual a 3, la capacidad máxima de la mochila sea igual a 15 (esto es M(1, 3, 15)), el beneficio de utilizar cada objeto esté dado por (b 1, b 2, b 3 ) = (38, 40, 24), y la capacidad ocupada por cada objeto sea (p 1, p 2, p 3 ) = (9, 6, 5).

55 2 f315f3f f Métodos de Optimización Exacta 25 f f f f10 415f f f 924 f49f4936f f36f36640 f 6f46f46f ( ) = max{ ( ), ( ) + } ( ) = max{ ( ), ( ) + } ( ) = max{ ( ), ( ) + } ( ) = max{ ( ), ( ) + } ( ) = max{ ( ), ( ) + } f3= ( f f ( ) = max{ ( ), ( ) + } 4= 4= ( 4= f4= ( 4= 4= ( Figura 2.5: Relación entre los sub problemas al aplicar Programación Dinámica hacia adelante f 15f315 f f 99) f f 6)000f = max, + = = max, + = = max, + = = max, + = = max, + = f3= ( ( = max, + = 4= 4= ( f( 4= f4= ( f( 4= 4= ( Figura 2.6: Orden en la obtención de la solución óptima de cada sub problema )0 ( )0 ( )0 )0 )0 )0 }78 )0 ( ( }24 )0 }24 ( ) { ( ) { ) { }64 )0}24 )0 ( ) { ( ) { ( ) { }40 )0 )0 Formulación de Programación Dinámica hacia atrás Cuando se aplica Programación Dinámica hacia atrás, el sub problema inicial representa el estado final del problema original. Por lo tanto, la ecuación que establece la relación entre los sub problemas es tal, que el sub problema j requiere de la solución hallada al sub problema j 1. En el caso del problema de la mochila, utilizado en el apartado anterior, si el primer sub problema es considerado el estado en el cual se ha decidido acerca de todos los objetos y solo falta por decidir la acción a tomar sobre el objeto n, entonces se estaría resolviendo el mismo problema hacia atrás. En la Figura 2.7 se indica la expresión que relaciona en este caso, a los sub problemas. En la Figura 2.8 se muestra cómo la solución óptima de cada sub problema

56 215 f115f 3 f f40 215f Métodos para resolver Problemas tipo Job Shop genera finalmente la solución óptima al problema original, en este caso aplicando Programación f 15 f 115 f f0 Dinámica 615f0f 1159f hacia 9938f09f atrás. 0 99f 1 f f110f f 10 f010f f ( ) = max{ ( ), ( ) + } ( ) = max{ ( ), ( ) + } ( ) = max{ ( ), ( ) + } ( ) = max{ ( ), ( ) + } ( ) = max{ ( ), ( ) + } f1= ( ( ) = max{ ( ), ( ) + } 115 f f = 0= ( 0= f0= ( 0= 0= ( Figura 2.7: Relación entre los sub problemas al aplicar Programación Dinámica hacia atrás f 15)00f f 9) f f 10)000f = max, + = = max, + = = max, + = = max, + = = max, + = f1= ( ( = max, + = f( 0= 0= ( f( 0= f0= ( f( 0= 0= ( Figura 2.8: Orden en la obtención de la solución óptima de cada sub problema ( )0 )0 ( )0 )0 ( )0 )0 }78 }78 )0 }38 )0 }38 )0 }38 ( ) { ( ) { ( ) { ( ) { ) { }40 )0 ( ) { )0

57 2.4. Métodos de Optimización Exacta Branch and Bound El método Branch and Bound (B & B) fue introducido en 1960 por Land y Doig [79], en un trabajo en el cual describían al nuevo método como una aproximación para hallar soluciones óptimas a problemas de optimización discretos y combinatorios. Los problemas de optimización discretos son problemas en los cuales las variables de decisión asumen valores discretos desde un conjunto específico; cuando este conjunto es el conjunto de los números enteros, se tiene un problema de programación entera. Los problemas de optimización combinatorios, por otro lado, son problemas en los cuales se debe elegir la mejor combinación factible de valores para las variables del problema, de tal forma que la función objetivo sea evaluada al valor óptimo. Un procedimiento B&B básico se inicia resolviendo el modelo matemático original sin las restricciones que obligan a instanciar determinadas variables únicamente con valores enteros (restricciones de integralidad). Al modelo sin las restricciones de integralidad se denomina relajación LP (Linear Program) de un problema IP (Integer Program). Denominamos X 0 = (< x 1, a 1 >,..., < x n, a n >) a la asignación de las n variables del problema, mediante la cual se obtiene el valor óptimo de la función objetivo. Si la solución de la relajación LP es una solución entera, es decir los valores asignados a las variables enteras son valores pertenecientes al conjunto de números enteros, entonces esta solución es óptima para el programa original también (problema en el cual se incluyen las restricciones de integralidad). Si x 0 no es entera, entonces el valor de la solución óptima de la relajación LP, CX 0 sirve como un límite inferior, el objetivo es minimizar, o un límite superior, el objetivo es maximizar, para el valor de la solución óptima al programa entero original. Si una de las variables en X 0, no es entera, por decir x j = r, entonces el procedimiento branch and bound procede como sigue. El problema de programación entera es dividido en dos sub problemas SP(1), SP(2), por agregar dos restricciones mutuamente exclusivas y mutuamente exhaustivas. En el sub problema SP(1), el programa entero original es modificado por agregar la restricción adicional x j r, donde r denota el entero más grande más pequeño que r, mientras que en el sub problema SP(2), el programa entero original es modificado por agregar la restricción

58 28 2. Métodos para resolver Problemas tipo Job Shop adicional x j r, donde r denota el entero más pequeño más grande que r. El procedimiento branch and bound ahora considera la relajación LP de uno de los sub problemas, por decir de SP(1), y lo resuelve. Si la solución es entera, entonces esta rama del árbol ya no tiene que ser explorada posteriormente, ya que esta solución es la óptima para la versión de programación entera de SP(1). Si por el contrario, la solución no es entera, SP(1) tiene que ser dividido en dos sub problemas, SP(1,1) y SP(1,2), a través de la adición de restricciones mutuamente exclusivas y exhaustivas. Desde cada nodo que corresponde a una solución no entera ocurre una ramificación a otros dos nodos y así sucesivamente. Si una solución en un nodo es no entera, entonces este valor proporciona un limite inferior (ó superior según se minimice o maximice) para todas las soluciones de sus descendientes. El procedimiento branch and bound finaliza cuando todos los nodos del árbol o bien tienen una solución entera o bien tienen una solución no entera que es mayor a las soluciones enteras de otros nodos. El nodo con la mejor solución entera provee una solución óptima al programa entero original.

59 2.4. Métodos de Optimización Exacta 29 Considere como ejemplo el siguiente programa entero: maximize 8x x 2 + 6x 3 + 4x 4 subject to 5x 1 + 7x 2 + 4x 3 + 3x 4 14 (1 x i {0, 1} for all 1 i 4 (2 Empezamos por eliminar el grupo de restricciones de integralidad, en el ejemplo son las restricciones del grupo 2 del modelo matemático previo. Resolvemos este modelo relajado y obtenemos 22 como valor de la función objetivo y la asignación X 0 = (< x 1, 1 >, < x 2, 1 >, < x 3, 0.5 >, < x 4, 0 >). La solución obtenida incumple la restricción de integralidad del problema original, por lo tanto no es factible. En este caso a partir del problema relajado actual, se generan dos nuevos sub problemas, SP(1) y SP(2). En SP(1) se agrega la restricción x 3 = 0 y en SP(2) se agrega la restricción x 3 = 1. Al resolver los sub problemas se obtiene como solución de SP(1) X 0 = (< x 1, 1 >, < x 2, 1 >, < x 3, 0 >, < x 4, >) y como solución de SP(2) X 0 = (< x 1, 1 >, < x 2, >, < x 3, 1 >, < x 4, 0 >), siendo y el valor de la función objetivo de SP(1) y SP(2), respectivamente. Dado que ninguna de las dos soluciones es factible, se vuelve a generar a partir del sub problema SP(2) (es el que proporciona mayor valor de función objetivo) dos sub problemas SP(2,1) y SP(2,2). En el primero se agregará la restricción x 2 = 0 y en el segundo, la restricción x 2 = 1. La solución obtenida para SP(2,1) es X 0 = (< x 1, 1 >, < x 2, 0 >, < x 3, 1 >, < x 4, 1 >), siendo 18 el valor de la función objetivo. Al resolver el problema SP(2,2) se obtiene como solución X 0 = (< x 1, 0.6 >, < x 2, 1 >, < x 3, 1 >, < x 4, 0 >), asignación no factible para el problema original (la asignación de x 1 no es entera). Luego, la solución para el problema original es la solución del problema relajado SP(2,1). La Figura 2.9 muestra el proceso B&B utilizado para resolver el problema del ejemplo, mediante una estructura de árbol, en donde cada nodo representa una versión relajada del problema original. Con el método branch and bound se intenta eliminar un nodo por determinar un límite inferior para el valor de la función objetivo de todos las soluciones correspondientes a la descendencia de dicho nodo. Si el límite inferior obtenido es mayor al valor de la función objetivo de una solución ya obtenida previamente, entonces ese nodo y toda su descendencia es descartada de la búsqueda. El árbol es podado. Sin

60 NoFactible X22x11x21x305x Métodos para resolver Problemas tipo Job Shop CXxSP x165 1x21x30x40667CXxSP x185 1x20714x31x40 = (,,,,,.,, ) 0= CXxSP 0218x11x20x31x41CXxSP2 NoFactible SOLUCIÓN 23021x1806x21x31x40 ( ) ( ) X= X= = (,,,,,,,. ) = (,,,.,,,, ) =. =. (, ) (, ) X= X= 23= = = = (,,,,,,, ) = (,.,,,,,, ) =. 101 NoFactible 21 NoFactible Figura 2.9: Aplicación del método Branch and Bound a un determinado problema embargo, aún cuando es posible podar un árbol de búsqueda utilizando el método branch and bound, el número de nodos a evaluar en un problema real puede ser muy elevado. La ventaja de este método es que luego de que todos los nodos que no hayan sido descartados, han sido evaluados, garantiza que la solución obtenida sea la óptima Branch and Bound y la Relajación Lagrangiana La Relajación Lagrangiana (RL), también conocida como Descomposición Lagrangiana, fue introducida al inicio de la década de 1970 por medio del trabajo pionero de Held y Karp [62], [63]. Utilizaron el problema del vendedor viajante como marco de trabajo. RL es una técnica de descomposición dirigida por la función de optimización. Magnanti y Wong han denominado a esta técnica Directiva del coste [87]. En primera instancia, esta técnica reduce y simplifica el problema por relajar determinadas restricciones. Muchos problemas de optimización combinatorios consisten en un problema fácil complicado por determinadas restricciones. Aplicar Relajación Lagrangiana a estos problemas incluye identificar estas restricciones que aumentan la complejidad del problema, eliminarlas como restricción del problema, y absorverlas

61 2.4. Métodos de Optimización Exacta 31 en la función objetivo, penalizándolas con un factor al cual se denomina multiplicador de Lagrange. El siguiente objetivo consiste en hallar un límite inferior o superior, según la función de optimización, lo más cercano al valor óptimo. Para alcanzar este objetivo se procede a resolver iterativamente, una secuencia de sub problemas modificados. Considerando el proceso que define la Relajación Lagrangiana, Beasley en [9] indicó que la Relajación Lagrangiana requiere dirigir dos aspectos importantes; uno es un aspecto estratégico, y el otro es un aspecto táctico. En el primero incluyó la clasificación y relajación de las restricciones, en el segundo, la selección de una buena técnica para actualizar los multiplicadores de Lagrange. Han habido dos técnicas principalmente, que han sido aplicadas para hallar valores a los multiplicadores de Lagrange en una amplia variedad de problemas. Estos son Optimización del Subgradiente y Ajuste del Multiplicador. En el trabajo realizado por Poojari et. al [101] se realiza una descripción detallada de cómo es llevada a cabo la selección de restricciones que se deberán relajar así como también el método de optimización del sub gradiente para hallar los valores más adecuados de los multiplicadores de Lagrange Branch and Cut Los métodos Branch and Cut son una combinación de Branch and Bound y Planos de Corte. Son utilizados para resolver problemas de programación entera mediante la relajación de las restricciones de integralidad (Branch and Bound) y mediante la acotación del espacio de búsqueda para impedir soluciones no enteras (planos de corte). Los planos de corte son desigualdades válidas, esto es, cualquier desigualdad π T x π 0 que sea satisfecha por los puntos factibles del programa entero original. Al espacio convexo de todas las soluciones del problema de programación entera se denomina poliedro. Los algoritmos de Plano de Corte fueron propuestos inicialmente por Gomory [56], y en esa primera aproximación no eran muy eficientes porque no acotaban suficientemente el espacio de búsqueda, por lo tanto la convergencia a soluciones enteras era muy lenta. En la década de 1980, se produjo el desarrollo de

62 32 2. Métodos para resolver Problemas tipo Job Shop la teoría de poliedros y la especificación de planos de corte específicos para determinados tipos de problemas, mediante los cuales los métodos de planos de corte resurgieron como técnicas para acotar el espacio de búsqueda de un problema relajado. Los planos de corte obtenidos según la descripción realizada por Gomory [56] y Chvátal [28] fue denominada Planos de Corte Gomory-Chvátal. Estos planos de corte eran obtenidos por combinar desigualidades del problema original y explotar el requerimiento de integralidad de determinadas variables. Se puede ver el desarrollo de un ejemplo en el trabajo de Mitchell [88]. Por otro lado, existen varios trabajos, Applegate [4], Grötschell y Holland [58], Padberg y Rinaldi [96], Caprara y Fischetti [19], Jünger et. al [70], o Nemhauser y Wolsey [93], en los cuales se han desarrollado desigualdades válidas para determinados tipos de problemas, como por ejemplo el problema de la mochila, o el problema del vendedor viajante. En estos trabajos se ha combinado la técnica para generar planos de corte Gomory-Chvátal con la teoría de poliedros que proporciona un método para obtener desigualdades que definan una de las caras del poliedro que representa el conjunto de soluciones del problema relajado Branch-and-price Si consideramos la representación vectorial de un modelo matemático, donde cada fila representa una restricción y cada columna una variable, la principal diferencia entre Branch and Price y Branch and Cut es que, con el objeto de relajar el problema original, en el primero se eliminan columnas y en el segundo, sin embargo, se eliminan filas. El término Branch-and-Price fue utilizado por primera vez en el trabajo de Savelsbergh [108] y descrito con mayor detalle en el trabajo de Barnhart et. al [8]. Al igual que los métodos previos, Branch-and-price es frecuentemente utilizado para resolver programas enteros que tienen un alto número de variables (columnas). Un algoritmo branch-and-price siempre trabaja con un problema restringido en el sentido que únicamente un subconjunto de las variables es tenido en cuenta; las variables fuera del subconjunto son fijadas a cero y las columnas correspondientes son ignoradas. Si después de resolver este problema para hallar una solución óptima,

63 2.5. Métodos Heurísticos 33 cada variable que no está incluida en el problema restringido tiene un ahorro potencial negativo, entonces se halla una solución óptima para el problema original. Sin embargo, si alguna de las variables no consideradas en el problema restringido tiene un ahorro potencial positivo, entonces debe ser incluida en el problema restringido. La idea principal por detrás de la generación de columnas es que la existencia de variables con ahorro potencial positivo no es verificada por enumerar todas las variables, sino más bien por resolver un problema de optimización. Vanderbeck et. al [115] proporcionan una importante fuente de información, en la cual se discuten varios esquemas generales de ramificación y acotación o poda. Desrosiers et. al [35] describen este método y proporcionan resultados de su aplicación a problemas de planificar rutas y scheduling Métodos Heurísticos En esta sección se describe un número de técnicas de propósito general que han probado ser útiles en los sistemas de scheduling industriales. La mayoría de estos métodos no garantizan típicamente la solución óptima; su objetivo es encontrar una solución razonablemente buena en un periodo de tiempo relativamente corto. Aunque existen muchas de tales técnicas, se resumen las más representativas Desplazar el Cuello de Botella Adams et. al [2] propusieron la heurística Desplazar el Cuello de Botella, en la cual M denota el conjunto de las m máquinas consideradas en el job shop. En la descripción de una iteración de la heurística es asumido que en iteraciones previas ha sido fijado un orden de utilización sobre determinadas máquinas de M, las cuales están agrupadas en el subconjunto M 0. Una iteración resulta en la inclusión de una máquina del conjunto M \ M 0 al conjunto M 0 y de la secuencia en que serán procesadas las operaciones que requieran de la misma. Para determinar qué máquina de M \M 0 debería ser incluida, se analiza cuál de ellas es la que causa en un sentido o en otro el trastorno más severo. Para determinar esto, el grafo dirigido original G es modificado borrando todos los arcos disyuntivos de las máquinas pertenecientes a M \ M 0 y manteniendo únicamente

64 34 2. Métodos para resolver Problemas tipo Job Shop los arcos disyuntivos relevantes de las máquinas en M 0 (uno de cada par). El grafo resultante es denominado G. Borrar todos los arcos disyuntivos de una máquina específica implica que todas las operaciones en esta máquina, las cuales originalmente deben ser realizadas una tras otra, ahora pueden ser realizadas en paralelo (como si la máquina tuviera capacidad infinita, o lo que es igual, que cada operación tuviera su propia máquina). El grafo G tiene uno o más caminos críticos que determinan el correspondiente makespan. A lo que se llama C max (M 0 ). Se considera cada una de las máquinas en M \ M 0 como un problema de una sola máquina con instantes de inicio mínimo (release date) e instantes de finalización (due date) y con la demora máxima que debe ser minimizada. El mínimo valor de L max en el problema de única máquina correspondiente a la máquina i es denotado por L max (i) y es una medida de lo crítico que resulta el procesamiento en la máquina i. Después de resolver todos estos problemas de única máquina, la maquina i con la mayor demora mínima L max (i) es elegida. A esta máquina se la etiqueta h, a su máxima demora L max (h) y la secuencia de operaciones a ser procesadas es dada por la solución del problema de máquina única asociada, cuyo costo fue L max (h). Si los arcos disyuntivos que especifican la secuencia de las operaciones en la máquina h son insertados en el grafo G, entonces el makespan de la solución parcial actual se incrementa en al menos L max (h), esto es: C max (M 0 h) C max + L max (h) Antes de empezar la siguiente iteración y determinar la siguiente máquina a ser programada, un paso adicional debe ser realizado dentro de la iteración actual. En este paso adicional todas las máquinas en el conjunto original M 0 son re secuenciadas una a una para ver si el makespan puede ser reducido. Esto es, una máquina, por decir la máquina l es retirada del conjunto M 0 y un grafo G es construido por modificar el grafo G a través de la inclusión de los arcos disyuntivos que especifican la secuencia de operaciones en la maquina h y la exclusión de los arcos asociados con la máquina l. La máquina l es re secuenciada por resolver el correspondiente problema de demora máxima para única máquina con el instante de inicio y de finalización determinados por los caminos críticos en el grafo G. Resecuenciar cada una de las máquinas en el conjunto original completa la iteración. En la siguiente iteración el procedimiento completo es repetido y otra máquina es agregada al conjunto actual M 0 h.

65 2.5. Métodos Heurísticos 35 La estructura de la heurística Desplazar el Cuello de Botella muestra la relación entre el concepto de cuello de botella y los conceptos más combinatorios tales como el camino crítico (camino más largo) y la demora máxima. Un camino crítico indica la ubicación y el timing de un cuello de botella. La máxima demora da una indicación de la cantidad en la que es incrementado el makespan cuando una determinada máquina es añadida al conjunto de máquinas ya programadas. Esta heurística no garantiza que la solución generada sea la solución óptima. En [99], Pinedo y Singer proponen un método utilizando esta heurística para minimizar el retraso total ponderado Reglas de Procesamiento Básico Una regla de procesamiento es una regla que asigna prioridades a todos los trabajos que están esperando ser procesados por una máquina. El esquema de prioridades puede tomar en cuenta los atributos del trabajo, los atributos de la máquina así como el instante de tiempo actual. Siempre y cuando una máquina ha sido liberada, una regla de procesamiento selecciona, entre los trabajos esperando por dicha máquina, aquel trabajo con la mayor prioridad. En los trabajos de Lawrence [82] y de Holthaus [67] se proporciona una descripción de varias reglas para asignar prioridades. Reglas de procesamiento pueden ser clasificadas de varias formas. Por ejemplo, una distinción puede ser realizada entre reglas de procesamiento estáticas y reglas de procesamiento dinámicas. Las reglas de procesamiento estáticas no son dependientes del tiempo, son una función de los datos relacionados al trabajo y/o a la máquina. Un ejemplo de regla dinámica es la regla de la Mínima Holgura primero (MS) la cual ordena trabajos según la holgura restante de los mismos. La holgura restante es definida como max(d j p j t, 0) donde d j es el instante de finalización del trabajo j, p j su tiempo de procesamiento, y t el instante de tiempo actual. Esto implica que en algún instante de tiempo el trabajo j puede tener mayor prioridad que el trabajo k y en otro instante de tiempo puede darse lo contrario. Una segunda forma de clasificar las reglas de procesamiento es según la información sobre la cual están basadas. Una regla local únicamente considera información perteneciente ya sea a la cola donde el trabajo está esperando o a la máquina donde el trabajo está en cola. Las reglas globales usan información relacionadas con otras máquinas. A continuación se enumeran algunas reglas de procesamiento básico.

66 36 2. Métodos para resolver Problemas tipo Job Shop Regla de Servicio en Orden Aleatorio primero (SIRO): el siguiente trabajo es seleccionado en forma aleatoria de entre los trabajos esperando utilizar la máquina. Regla de Instante de Inicio más Temprano primero (ERD): selecciona al trabajo que llega primero a la máquina. Regla de Instante de Finalización más Temprano primero (EDD): selecciona el trabajo cuyo instante de finalización (due date) es más próximo. Regla de Mínima Holgura primero (MS): aquel trabajo con la mínima holgura es el siguiente trabajo seleccionado para usar la máquina. Regla de Tiempo de procesamiento Ponderado más Corto primero (WSPT): los trabajos son seleccionados en orden decreciente según el valor de w j /p j, siendo w j el peso asignado al trabajo j en la función objetivo y p j su tiempo de procesamiento en la máquina considerada. Regla de Tiempo de Procesamiento más Largo primero (LPT): se selecciona primero aquel trabajo con tiempo de procesamiento mayor en la máquina considerada. Regla de Tiempo de Setup más Corto primero (SST): siempre y cuando una máquina es liberada el siguiente trabajo pasa a ser aquel con el tiempo de configuración más corto. Regla de Trabajo menos Flexible primero (LFJ): esta regla es utilizada en el caso que existan máquinas no idénticas en paralelo. Cada trabajo j puede ser procesado por un subconjunto M j de las máquinas en paralelo. Aquel trabajo que pueda ser procesado por el menor subconjunto M j es el siguiente trabajo seleccionado. Regla de Camino Crítico (CP): aquel trabajo cuyo tiempo de procesamiento total considerando únicamente las actividades precedentes a la actual, es mayor, es el trabajo que es seleccionado primero. Regla de Número Mayor de Sucesores (LNS): selecciona como siguiente trabajo aquel que tenga el mayor número de trabajos siguiéndolo.

67 2.5. Métodos Heurísticos 37 Regla de Cola más Corta en la Siguiente Operación (SQNO): siempre y cuando una máquina es liberada el trabajo con la cola de trabajos más corta en la siguiente máquina es seleccionado Reglas de Procesamiento Compuesto Las reglas de procesamiento básico son útiles cuando uno intenta encontrar una solución razonablemente buena con respecto a un único objetivo tal como el makespan, la suma de los instantes en que los trabajos han sido completados, o la máxima demora. Sin embargo, en la práctica los objetivos son mucho más complicados. Un objetivo realista puede ser una combinación de varios objetivos y puede ser también una función del tiempo o una función del conjunto de trabajos esperando ser procesados. Según Dechter en [32], ordenar los trabajos en base a uno o dos parámetros puede conducir a soluciones no aceptables. Reglas de procesamiento más elaboradas que consideran un número de parámetros pueden dirigir mejor cuando se utilizan funciones objetivos más complicadas. Una regla de procesamiento compuesto es una expresión en la cual se combina ciertas reglas de procesamiento básico, cada una con un peso determinado. La medida en la que un determinado atributo afecta a la prioridad total de un trabajo es determinada por la regla de procesamiento básico que lo utiliza y un parámetro de escala. Cada regla básica en la regla compuesta tiene su propio parámetro de escala que es utilizado según la contribución que se desee de la regla básica a la expresión de ranking total. El parámetro de escala puede ser fijado por el diseñador de la regla o puede ser variable y una función del conjunto de trabajos particular a ser programado. Un ejemplo de una regla de procesamiento compuesto es la regla Costo del Retraso Aparente (ATC), es una regla para una máquina y n trabajos (todos disponibles en el instante cero), siendo la suma de los retrasos de cada trabajo w j T j el objetivo. En [98], Pinedo proporciona más detalles acerca de esta regla de procesamiento. Vepsalanen y Morton han realizado en [116] un estudio y pruebas de varias reglas de procesamiento tales como EDD, WSPT, COVERT, y ATC.

68 38 2. Métodos para resolver Problemas tipo Job Shop 2.6. Formulación de un Job Shop como un CSOP En un problema tipo Job Shop están presentes determinadas restricciones que son obligatorias para que un problema sea considerado de ese tipo, por ejemplo, la precedencia entre una operación y otra de un trabajo o el ordenamiento secuencial que debe existir en el uso de una misma máquina entre los diferentes trabajos que la requieran. Pero además de estas restricciones, pueden existir otras que sean necesarias para obtener una asignación de recursos factible de aplicación en el dominio considerado. Muchas de estas restricciones pueden ser difíciles de modelar mediante la programación matemática o pueden significar aumentar el modelo con un gran número de variables de decisión binarias. Los Problemas de Satisfacción de Restricciones (CSPs), muy estudiados en el campo de la Inteligencia Artificial, ofrecen otra alternativa para formular problemas, así como técnicas para realizar la búsqueda de una o más soluciones. Consideramos que un Job Shop puede ser modelado mediante un CSP, el cual es descrito brevemente en esta sección. Los problemas de satisfacción de restricciones, en general, constan de dos componentes principales, las variables con sus correspondientes dominios, y las restricciones. Las variables son objetos o items que pueden tomar una variedad de valores. El conjunto de posibles valores para una variable determinada es considerado su dominio. Por ejemplo, si tratamos de encontrar una disposición adecuada para los asientos en una cena, las variables pueden ser las sillas y el dominio de cada una, la lista de invitados. El segundo componente es el conjunto de restricciones. Las restricciones son reglas que imponen una limitación sobre los valores que pueden ser asignados a una variable o a una combinación de variables. Considerando el ejemplo anterior, si los dueños de casa deben estar sentados en los extremos de la mesa, entonces sus elecciones de asientos están restringidas. Así como si dos invitados están enemistados entre sí, no pueden sentarse uno junto a otro, ni uno frente a otro. Esta sería otra restricción para el problema del ejemplo. Un modelo que incluya variables, sus dominios y restricciones es llamado una red de restricciones o también un problema de restricciones. Una solución es una asignación de un único valor a cada variable, tal que dicho valor pertenezca al dominio de la variable y satisfaga simultáneamente con el resto de valores asignados

69 2.6. Formulación de un Job Shop como un CSOP 39 el conjunto de restricciones del problema. Formalmente, una red de restricciones R consiste de un conjunto finito de variables X = {x 1,.., x i,.., x n } con sus respectivos dominios D = {D 1,..., D n } los cuales listan los posibles valores para cada variable D i = {v 1,..., v k }, y un conjunto de restricciones C = {C 1,..., C t }. Así, una red de restricciones puede ser vista como una tupla de tres elementos (X, D, C). Una restricción C i es una relación definida sobre un subconjunto de variables S i, S i X. La relación C i denota las asignaciones legales simultáneas realizadas al conjunto de variables S i. S i es el ámbito de la relación. Si S i = {x i1,..., x ir }, entonces C i es un subconjunto del producto cartesiano D i1... D ir. El conjunto de ámbitos S = {S i,..., S t } es denominado red de esquemas. La aridad de una restricción C i se refiere a la cardinalidad S i de su ámbito. Una red de restricciones binaria tiene únicamente restricciones unarias y/o restricciones binarias. Cuando deseamos especificar explícitamente el ámbito S i de una restricción C i, utilizamos la notación C Si, propuesta por Dechter en [32]. Las tareas típicas sobre una red de restricciones son determinar si una solución existe, encontrar una o todas las soluciones, encontrar si una instanciación parcial puede ser extendida a una solución completa. Cada una de estas tareas son referidas como un Problema de Satisfacción de Restricciones ó CSP. Cuando la tarea a llevar a cabo sobre una red de restricciones consiste en encontrar una solución óptima relativa a un determinado criterio, el cual es modelado mediante una función de optimización, se la conoce como un Problema de Optimización y Satisfacción de Restricciones (CSOP). La solución de un CSOP consiste en una asignación factible de valores a todas las variables, satisfaciendo el conjunto de restricciones y optimizando una función de optimización global. Sea X = {x 1,..., x n } un conjunto de variables, F i, 1 i l componentes funcionales que evalúan a valores reales, definidas sobre los ámbitos Q j, 1 j l, Q j X, ā = (a 1,..., a n ), donde a i está en el dominio de x i, y a i la asignación de valores a las primeras i variables de ā.

70 40 2. Métodos para resolver Problemas tipo Job Shop D ij La función de optimización global es definida por F (ā) = l F j(ā) j=1 donde F j (ā) significa que F j es aplicada a las asignaciones en ā restringido al ámbito de F j. Esto es, F j (ā) = F j (ā[q j ]). Se puede ver a un problema de optimización de restricciones como un problema definido sobre una red de restricciones extendida llamada una red de optimización. Una red de optimización es una 4-tupla C = {X, D, C, F C}, donde (X, D, C) es una red de restricciones y F C = {F Q1,..., F Ql } es un conjunto adicional de componentes de optimización definidos sobre los ámbitos Q 1,..., Q l, Q i = {x i1,..., x il }, F Qi : l j=1 Reales + (números reales no negativos). Funciones en F C son llamadas restricciones blandas. La tarea de optimización es encontrar ā 0 = (a 1,..., a n ), satisfaciendo todas las restricciones, tales que, F (ā 0 ) = maxāf (ā) o F (ā 0 ) = mināf (ā). En un problema de scheduling tipo Job Shop el conjunto X de variables está formado por los instantes de inicio y por los instantes de finalización correspondientes a cada operación del problema. Los dominios de estas variables, pueden estar formados por el conjunto de números naturales, o si se desea mayor precisión por el conjunto de números reales positivos. Considere que el trabajo j consta de la siguiente secuencia de operaciones (i 1, j),..., (i n, j). Denominamos s ik j al instante en el que se inicia la operación (i k, j). El tiempo de procesamiento asignado a cada operación es igual a p ik j. El conjunto de restricciones está formado por: Restricción sobre el tiempo de inicio. Por cada operación se establece el mínimo y el máximo instante de tiempo en el cual es factible el inicio y la finalización, respectivamente, de la operación. Sea s ij el mínimo instante de tiempo en el cual es factible el inicio de la operación (i, j) y e ij el máximo instante de tiempo en el cual es factible que (i, j) finalice. La siguiente expresión establece la ventana de tiempo dentro de la cual es factible el inicio de la operación (i, j), de tal forma que también sea factible el instante en que esta finalice. s ij s ij e ij p ij.

71 2.6. Formulación de un Job Shop como un CSOP 41 Restricción sobre la duración de una operación. Una determinada cantidad de tiempo es especificada por cada operación indicando la duración de la misma. Esta restricción indica que una operación (i, j) cuyo instante de inicio es s ij debe finalizar en el instante e ij. El cual es obtenido según lo indica la siguiente expresión: e ij = s ij + p ij Restricción de precedencia: La restricción mediante la cual se establece un ordenamiento entre las operaciones de un mismo trabajo está dada por la expresión: s ik+1 j s ik j + p ik j Restricciones de Capacidad: para establecer que como máximo una operación podrá utilizar cada recurso en un mismo instante de tiempo se considera la restricción especificada mediante la siguiente expresión: s ij > s ik + p ik s ik > s ij + p ij Como un ejemplo, considere el problema tipo Job Shop representado mediante las Figuras 2.3 y 2.4. En este caso el siguiente conjunto de restricciones modela el ordenamiento que debe existir entre las operaciones del trabajo 2. s 12 s 22 + p 22 s 42 s 12 + p 12 s 32 s 42 + p 42 El siguiente conjunto de restricciones indica que una misma máquina o recurso no puede ser utilizado por más de un trabajo a la vez. En este caso, los trabajos 2 y 3 requieren utilizar la máquina 4. La utilización de la misma no podrá realizarse al mismo tiempo, sino en forma secuencial. s 42 s 43 + p 43 s 43 s 42 + p 42 En la literatura existen numerosos trabajos donde se formula el problema de scheduling como un problema de satisfacción de restricciones, Dhar y Ranganathan

72 42 2. Métodos para resolver Problemas tipo Job Shop [37], Fox [41], Sadeh et. al. [107], Garrido et. al [45], Prosser [102]. Se aplican heurísticas para reducir el espacio de búsqueda tales como métodos de clausura, heurísticas para el ordenamiento de variables y valores, mejoras en el backtracking o en técnicas look-ahead. En las siguientes secciones de este capítulo se describirán las aproximaciones algorítmicas estudiadas para resolver CSPs. En la Figura 2.2 se proporciona un resumen de estos métodos Búsqueda: Algoritmo Backtracking El algoritmo Backtracking es un método propuesto por Gaschnig [46] en 1977 para resolver CSPs. Consiste en explorar el espacio de estados del CSP hasta: encontrar una o más soluciones, demostrar que no existe solución, o agotar los recursos computacionales. La búsqueda que realiza este algoritmo puede ser completa, si el recorrido del espacio de estados es sistemática, o incompleta, si se utilizan estrategias de búsqueda local. Posteriormente han sido propuestas numerosas heurísticas 0, para acelerar la búsqueda de forma significativa. Una descripción de las mismas es ),,) realizada por Larrosa y Meseguer en [81]. Para describir este algoritmo se emplea un árbol de búsqueda. En la Figura 2.10 se muestra un árbol de búsqueda (,)( en ) el cual ),)) cada nodo representa la asignación de una variable. Al recorrer las ramas del árbol, recorremos el espacio de estados del problema. ( ( ( ( ( Figura 2.10: Árbol de Búsqueda ( 0,0,0) 0,0,1) 0,1,0(0,1,1(1,0,0) (1,0,1)(1,1,0) 1,1, (1,1,1) En el trabajo de Barber y Salido [7] se ha encontrado una descripción del árbol de búsqueda como representación del espacio de búsqueda de un CSP. Siendo n el

73 2.6. Formulación de un Job Shop como un CSOP 43 número de variables del problema, si se asume que el orden de las variables es estático y no cambia durante la búsqueda, entonces el nodo en el nivel k del árbol representa un estado donde las variables x 1,..., x k están asignadas y el resto x k+1,..., x n no lo están. Cada nodo del árbol representa una asignación de variables, definida por el camino que une el nodo con la raíz. La raíz del árbol de búsqueda representa la tupla vacía, donde ninguna variable tiene asignado valor alguno y los nodos en el nivel n, que son las hojas del árbol, son n tuplas, donde cada una es una asignación de las n variables del problema. Cada nodo hoja es un elemento del producto cartesiano D 1... D n, siendo D i, 1 i n el dominio de la variable x i del problema. De esta manera si una n tupla es consistente, entonces es solución del problema. Este árbol se puede recorrer de varias formas. A menudo se utiliza la búsqueda en profundidad, ya que tiene una complejidad espacial lineal y el árbol tiene profundidad acotada debido al número finito de variables del problema. Según la descripción realizada por Dechter en [32], Bitner y Reingold en [13], o Larrosa y Meseguer en [81], el algoritmo Backtracking cruza el espacio de estados de instancias parciales de una forma primero en profundidad. Backtracking tiene dos fases. La primera es una fase hacia delante durante la cual las variables son seleccionadas en secuencia, y una solución parcial actual es extendida por asignar un valor consistente, si existe uno, a la siguiente variable. La segunda fase es hacia atrás en la cual cuando no existe ninguna solución consistente para la variable actual, el algoritmo vuelve a la variable cuyo valor fue asignado previamente. La Figura 2.11 describe el algoritmo Backtracking de Gaschnig. El algoritmo mostrado en la Figura 2.11 finaliza cuando encuentra una solución, pero puede ser modificado para que encuentre todas las soluciones al problema o bien que finalice cuando encuentre un número determinado de ellas. Este algoritmo no especifica el orden de las variables en una rama ni el orden en que se seleccionan los valores para una variable. Estos aspectos se resuelven por medio de heurísticas de selección de variable y selección de valor. Estos criterios son descritos en las sub secciones y

74 iix 1D11 i n X,D,C Métodos para resolver Problemas tipo Job Shop i ii=i inconsiste Dinte Function Backtracking ( R= ( )) = D= ' While i = e IfxiSelectValu NULL Else + D= ' End If End While =0is selecciona D'i 1 dex,..., 1 ai r, 1xarbitrario a y eliminar aa' If return Else return { } valorese End If End Function Function SelectValu While a If Consistent( i= ) Then return End While return NULL End Function r un elemento instanciados D'i, xn de Di Figura 2.11: Algoritmo de Backtracking Inferencia El problema de la existencia de soluciones en una red de restricciones es NP- Completo, Bessière [12]. Dada esta complejidad, se ha estudiado formas de propagar las restricciones de los CSPs en una sub red, obteniendo mediante ello información sobre la consistencia de dicha sub red. A este proceso se denomina inferencia. La inferencia en una red de restricciones consiste en deducir nuevas restricciones a partir de las existentes. Estas nuevas restricciones son redundantes con las anteriores, en el sentido de que no incorporan nuevo conocimiento. La deducción de restricciones se puede ver como el proceso de hacer explícitas ciertas restricciones que están implícitas en la red. En el límite, la inferencia trata de sintetizar una

75 2.6. Formulación de un Job Shop como un CSOP 45 única restricción global como conjunción de todas las restricciones explícitas de la red. Dicha restricción reemplaza a todas las restricciones explícitas, que capturan el conocimiento contenido en cada una de ellas. Obviamente, las tuplas que la satisfacen son las soluciones de la red. Para más información ver el trabajo presentado por Larrosa y Schiex en [81]. El proceso de sintetizar una única restricción global se denomina inferencia completa. Si la restricción global es diferente a vacío, se garantiza la consistencia global. Posterior a la obtención de la restricción, las soluciones se obtienen de forma directa. Otras formas de inferencia están agrupadas bajo la etiqueta de consistencia local. Se trata de métodos de inferencia incompleta, capaces de hacer aflorar restricciones implícitas, pero que no sintetizan la única restricción global, y por ello no generan de forma directa las soluciones. Normalmente, la inferencia incompleta se ha de combinar con búsqueda para resolver una red de restricciones. Sintetizar una única restricción global que capture el conocimiento contenido en todas las restricciones del problema es conceptualmente simple. Basta con calcular la restricción n-aria ci C c 2 i en donde todas las tuplas que la satisfacen son las soluciones del problema. Sin embargo, calcular esa restricción es costoso en tiempo y en espacio (exponencial en n), y es más de lo necesario para resolver el problema sin búsqueda. Un problema inicialmente más asequible es el de resolver subredes de un tamaño prefijado, por ejemplo, subredes de una variable, subredes de dos variables, etc. Formalmente, una subred (X, D, C ) de una red de restricciones (X, D, C), está definida por un subconjunto de variables X = {x 1,..., x k }, X X, sobre los dominios originales D = {D 1,..., D k }, bajo el conjunto de restricciones C = {C i \C i C S i X }. Encontrar la solución de una subred no garantiza que el problema tenga solución. Sin embargo, los resultados negativos encontrados en este proceso sí se pueden aplicar a la red inicial. Si resolviendo una subred se encuentra que ciertos valores o combinaciones de valores no aparecen en ninguna solución de la subred, estos tampoco aparecerán en las soluciones de la red. La justificación es directa: todas las restricciones de la subred están presenten en la red inicial C C, luego todos los valores o combinaciones prohibidos por la subred también lo serán 2 El operador es utilizado por Dechter en [32] para expresar la operación join entre dos restricciones

76 46 2. Métodos para resolver Problemas tipo Job Shop por la red inicial. Si la subred no tiene solución, la red no tiene solución. Con este proceso, denominado de consistencia local no se encuentra la solución del problema pero se deducen nuevas restricciones que se añaden al problema y permiten acelerar la búsqueda de la solución global. Si se deduce la restricción vacía, el problema no tiene solución. Los niveles de consistencia más utilizados son nodo consistencia, arco consistencia, y camino consistencia. Los niveles se diferencian en el tamaño de la sub red para la cual garantizan la consistencia. Nodo-Consistencia (NC) Una variable x i es nodo consistente si y solo si todo valor de su dominio D i satisface las restricciones unarias en cuyos ámbitos se incluye a x i. Una red de restricciones es nodo consistente si y solo si toda variable es nodo consistente: x i X, C j{x} C, a D i : (a) C i Arco-Consistencia (AC) Dada una red de restricciones R = (X, D, C), con C k{xi,x j } C, una variable x i es arco-consistente relativo a x j si y solo si por cada valor a i D i existe un valor a j D j tal que (a i, a j ) C k{xi,x j }. La subred (alternativamente, el arco) definido por {x i, x j } es arco-consistente si y solo si x i es arco-consistente relativo a x j y x j es arco-consistente relativo a x i. Una red de restricciones es llamado arco-consistente si y solo si todos sus arcos (ej: subredes de tamaño 2) son arco-consistentes: x i, x j X, C k{xi,x j } C, a i D i, a j D j : (a i, a j ) C k Camino-Consistencia (PC) Dada una red de restricciones R = (X, D, C), un conjunto de dos variables {x i, x j } es camino-consistente relativo a la variable x k si y solo si por cada asignación consistente ( x i, a i, x j, a j ) hay un valor a k D k tal que la asignación ( x i, a i, x k, a k ) sea consistente y la asignación ( x k, a k, x j, a j ) sea consistente. Alternativamente una restricción binaria C z{xi,x j } es camino consistente relativo a

77 2.6. Formulación de un Job Shop como un CSOP 47 x k si y solo si para cada par (a i, a j ) C z{xi,x j }, donde a i y a j pertenecen a sus respectivos dominios, hay un valor a k D k tal que (a i, a k ) C z{xi,x k } y (a k, a j ) C z{xk,x j }. Una subred sobre tres variables {x i, x j, x k } es camino-consistente si y solo si para cualquier permutación de (i, j, k), C z{xi,x j } es camino-consistente relativo a x k. Una red es camino-consistente si y solo si para cada C z{xi,x j } (incluyendo relaciones binaria universal) y para cada k i, j C z{xi,x j } es camino-consistente relativo a x k : x i, x j X, x k X, C z{xi,x j } C, C z {x i,x k } C, C z {x k,x j } C a i D i, a j D j, a k D k : (a i, a j ) C z (a i, a k ) C z (a k, a j ) C z Diversos métodos, que implementan las propiedades de arco consistencia y camino consistencia, han sido publicados. Entre las propiedades de inferencia, la arco consistencia es la más utilizada. Waltz [118] desarrolló un algoritmo de búsqueda utilizando AC para resolver problemas de visión por ordenador. A partir de este trabajo, ha sido estudiado por varios autores, entre ellos, Mackworth y Freuder [85], [86] (AC-3), Mohr y Henderson [90]. Estos últimos han propuesto un algoritmo cuya complejidad temporal en el peor caso es O(ed 2 ), donde e es el número de restricciones y d es la cardinalidad del dominio del problema con mayor número de elementos. En [11], Bessière ha extendido su uso a redes de restricciones dinámicas. Van Hentenryck, Deville and Teng [36], [114] han propuesto un algoritmo genérico el cual puede ser implementado con todas las técnicas conocidas, y han extraído clases de redes sobre las cuales existen algoritmos corriendo arco consistencia con complejidad O(ed). En 1992, Perlin [97] ha dado propiedades de arco consistencia sobre relaciones factorables. El algoritmo AC-6 es propuesto por Bessière en [12]. El autor del mismo indica que aunque mantiene la misma complejidad temporal de AC-4 para el peor caso O(ed 2 ), la complejidad espacial de AC-6 es O(ed) y en promedio la complejidad temporal es menor que la de AC-4. Entre otros, ejemplos de algoritmos de búsqueda que implementan la propiedad de camino consistencia son: PC-2 Mackworth [85], PC-3 Mohr y Henderson [90], PC-4 Han y Lee [59], PC-5 Sing [111]. Partiendo del trabajo de Freuder [42] sobre problemas libres de backtracking, Dechter y Pearl han propuesto el algoritmo ADC (adaptive consistency) [33]. Este algoritmo usa un orden estático de variables. Para cada variable, el algoritmo infiere

78 48 2. Métodos para resolver Problemas tipo Job Shop una nueva restricción que reemplaza el efecto de la variable en el resto del problema. Dicha variable se sustituye por esa nueva restricción obteniendo un problema equivalente con una variable menos. Este proceso, denominado eliminación de variables se repiten eliminado una variable cada vez hasta que el problema se resuelve trivialmente. Si no se ha encontrado la restricción vacía, el problema tiene solución, la cual se construye de formad directa, sin búsqueda Inferencia + Búsqueda Esquemas Look-ahead son invocados siempre y cuando el algoritmo se está preparando para seleccionar la siguiente variable o el siguiente valor. Estos esquemas buscan descubrir, mediante una cantidad restringida de propagación de restricciones (consistencia local), cómo decisiones actuales acerca de la selección de variable y valor afectarán a futuras búsquedas. Específicamente, la decisión para aceptar o rechazar un valor de la variable actual está basada en el impacto que la asignación tiene cuando la propagación de restricciones es aplicada a las variables futuras no instanciadas. Una vez se completa cierta cantidad de razonamiento a través de la propagación de restricciones, el algoritmo puede usar los resultados para decidir qué variable será la siguiente a instanciar, si el orden no está pre determinado, y qué valor asignar a dicha variable. Estrategias Look-ahead incurren en un costo extra para cada pedido de instanciación, pero pueden proveer importantes beneficios. Por ejemplo, si todos los valores de una variable no instanciada son eliminados del conjunto de valores posibles por aplicar el procedimiento Look-ahead, entonces la actual instanciación no puede ser parte de una solución y el algoritmo sabe que debe aplicar backtracking y seleccionar otro valor para la variable actual. Consecuentemente, dead-ends ocurren más temprano en la búsqueda, y porciones mucho más pequeñas del espacio de búsqueda necesitan ser exploradas. En general, cuanto más fuerte es el nivel de propagación de restricciones usada por el look-ahead, menor es el espacio de búsqueda explorado y mayor es la sobre carga computacional. Finalmente, por eliminar de los dominios de cada variable futura todos los valores inconsistentes con la instanciación parcial actual, via propagación de restricciones, se elimina la necesidad de verificar la consistencia de valores de la variable actual

79 2.6. Formulación de un Job Shop como un CSOP 49 con los valores de las variables previamente instanciadas. El desafío es encontrar un equilibrio práctico entre la efectividad de acotar los dominios por aplicar una propagación de restricciones previamente y la sobre carga computacional que esto implica. Variable Elimination Search (VES) Como ejemplo de combinación de búsqueda completa e inferencia completa está el algoritmo V ES (variable elimination search) descrito en detalle en el trabajo presentado por Larrosa en [80]. Eliminar una variable, que es el paso básico de la inferencia completa, tiene un coste espacial y temporal exponencial en la anchura de la variable (número de variables restringidas con ella y anteriores en el orden). Cuando la anchura de la variable es pequeña, este proceso se puede realizar, pero si la anchura es grande el coste es prohibitivo. Por otra parte, asignar una variable modifica la topología del grafo una vez propagado el efecto de la asignación, por lo que se puede utilizar para disminuir la anchura de ciertas variables. El algoritmo V ES combina estas ideas, usando un orden estático de variables. Este algoritmo es dado en la Figura Se trata de la función booleana VES(S, k, P, F, E, D, C), que recibe como parámetros el procedimiento S de búsqueda, el parámetro k, las variables pasadas P, las variables futuras F, las variables eliminadas E, los dominios actuales D y las restricciones actuales C. Esta función devuelve TRUE si existe una solución, en otro caso devuelve FALSE. Si el conjunto F es vacío, se ha encontrado una solución. Sino, se escoge la última variable x i de F y se calcula su anchura. Si esta es menor o igual que k, se elimina la variable con la función varelim. Sino, se realiza la búsqueda sobre los valores de la variable con la función varbranch. Cuando se realizan con éxito, ambas funciones llaman a las funciones VES con el sub problema que queda.

80 Bj i RSkCS kxfipsfjedsi C Si kkxxppffeeddcc Métodos para resolver Problemas tipo Job Shop Function VES (,,,,,, ) If = Then return TRUE Else xultima( F= R>< A ) R A R jbrs isjrxisi kxpfedc = { \ } IfBi Then return varelim(,,,,,,, ) Else return varbranch(,,,,,,, ) End If End If End Function NewDSkPFxi xidcra SSi kkpsi xxpafxi PEF DC xienewdc Function varelim (,,,,,,, ) S { } = π If = Then return FALSE Else return VES (,,, { }, { },, { }) End Function Function varbranch(,,,,,,, ) For eacha do NewDlookahead = (,,,,, ) If Then return VES (,, { }, { },,, ) End If End For return FALSE End Function Sj j Bi = Di Figura 2.12: Algoritmo VES Forward Checking El algoritmo Forward Checking ha sido introducido por Haralick y Elliot en [61]. Este algoritmo combina el proceso de búsqueda del algoritmo backtracking con el método inferencial de arco consistencia. El objetivo de este método es reducir el

81 2.6. Formulación de un Job Shop como un CSOP 51 dominio de las variables futuras por eliminar de los mismos aquellos valores inconsistentes con las variables asignadas e identificar dead-ends sin tener que probarlos a través del proceso de backtracking. Considerando un árbol de búsqueda en el cual cada nodo representa una variable instanciada, el algoritmo Forward Checking sigue una búsqueda en profundidad, Ccf ai PastD realizando en cada nodo un proceso de arco consistencia entre la variable actual y variables futuras (aún no NewD cij instanciadas). En el caso de restricciones binarias, tras asignar una variable, se eliminan icij+1x Ci de Past ijxn los dominios xnewd adidnccf de las variables futuras los valores incompatibles con aquella recién asignada, según las restricciones que las incluyen en su ámbito. Function FC (,, = {,..., }) For eacha do Ifi= Then return TRUE Else = { \, < } NewDAC = ({,..., }, { },,..., }, ) If Then If FC (, { i, } ) Then return TRUE End If End If End For End Function xi=n Di Di Dn +1 Figura 2.13: Algoritmo de Forward Checking En la Figura 2.13 se representa el algoritmo Forward Checking para CSPs binarios con una función boolena FC(i, P ast, D = {D i,..., D n }). La función recibe como parámetros el índice i, que identifica la variable actual, el conjunto de variables asignadas P ast, y el conjunto de dominios de las variables futuras, D. La función FC devuelve TRUE si para cada variable ha sido posible hallar un valor de su dominio, tal que la variable actual haya sido arco consistente en relación a cada variable incluida en P ast y en relación a cada variable futura. De no ser así, la función FC devuelve FALSE. Si x i es la ultima variable, significa que se ha hallado una solución, ya que los

82 52 2. Métodos para resolver Problemas tipo Job Shop valores de su dominio son arco consistentes con las variables previamente asignadas. Si no es la última variable, la función AC({x i,..., x n }, {{a}, D i+1,..., D n }, C cf ) realiza un proceso de arco consistencia considerando el subconjunto de restricciones C cf = {c ij \c ij C, i < j}, formado por aquellas restricciones que conectan la variable actual con las futuras. Como resultado, se obtienen los nuevos dominios futuros N ewd, eliminando aquellos valores arco inconsistentes con el recién asignado. Si ningún dominio futuro resulta vacío, se realiza la llamada recursiva, incluyendo x i en P ast con los nuevos dominios NewD. Si se han probado todos los valores de x i sin éxito, no existe solución que incluya a P ast. Bacchus y Grove, en [5] realizan un estudio teórico del algoritmo Forward Checking. Dent y Mercer describen una modificación posible al algoritmo Forward Checking en [34], de tal forma que se realicen menos verificaciones de arco consistencia, con el riesgo de que un mayor backtracking pueda ocurrir. MAC: Manteniendo Arco Consistencia El algoritmo MAC (acrónimo de Maintaining Arc Consistency) propuesto por Sabin y Freuder en [106], mantiene la arco consistencia en los sub problemas que genera. Nos referimos a sub problemas, porque al menos el dominio de una variable ha sido modificado a un solo valor antes de realizar la operación de arco consistencia. Dicha modificación es llevada a cabo para comprobar si el único valor es consistente con las asignaciones posibles del resto de variables. En la Figura 2.14 se describe el algoritmo MAC por medio de la función booleana MAC(i, D), la cual recibe como parámetros el índice i de la variable actual y el vector D = [D 1,..., D n ], correspondiente a todos los dominios del problema. La función MAC(i, D) devuelve TRUE si existe una solución entre los valores de D, de no ser así, devuelve FALSE. En este algoritmo, asignar una variable es equivalente a reducir su dominio a un solo valor. Inicialmente, el algoritmo realiza una copia de cada dominio D j de las variables futuras x j (aún no instanciadas), al conjunto de valores auxiliar D j, i < j n. La función MAC(i, D) va probando los valores posibles de x i. Para cada valor a de x i, el algoritmo considera dos posibilidades: 1. D i = {a} (x i toma el valor a). Si x i es la última variable, hemos encontrado

83 ,1 j i DiD1n jdj 2.6. Formulación de un Job Di a Shop como un CSOP 53 idda X1 D i i n Function MAC ( = {,..., }) For each = +... j D' dod= i1di ndidnnewd Cj For each do Di= Ifi= Then return TRUE ElseNewDAC ' ' = (, = {,...,,,..., }, ) IfNewDThen If MAC( + ) Then return TRUE End If i { } D= ' NewDAC ' ' = (, = {,...,,,..., }, ) IfNewDThen break Else ' For each = +... dodj= [ ] End If End If End For End For return FALSE End Function 'n }a Di =i { Dn i,newd Figura 2.14: Algoritmo MAC una solución. Si no es la última variable, la función AC(X, D, C) realiza un proceso de arco consistencia sobre el conjunto C de todas las restricciones del problema, considerando D = [D 1,..., D i 1, D i,..., D n], los dominios actuales de las variables. Como resultado, se obtienen los nuevos dominios futuros N ewd, eliminando aquellos valores arcos inconsistentes. Si no hay un dominio futuro vacío, se realiza la llamada recursiva, con los nuevos dominios NewD. Si esta llamada devuelve TRUE, significa que se ha encontrado una solución por lo que devuelve TRUE a su vez. Si no, se continúa con la segunda opción. 2. D i = D i {a} (x i no puede tomar el valor a). Tanto si existe un dominio vacío en NewD como si la llamada recursiva retorna FALSE, a ya no es un valor posible para x i. Se realiza arco consistencia AC(X, D, C) sobre el nuevo dominio de x i. Como resultado AC calcula los nuevos dominios futuros NewD, eliminando aquellos valores arco inconsistentes. Si no hay un dominio futuro vacío, se copian los nuevos dominios futuros en D j y se continúa el bucle. En

84 54 2. Métodos para resolver Problemas tipo Job Shop caso contrario, hay que salir del bucle, no hay solución en la rama actual que incluya un valor de D i. Cuando se sale del bucle, se han probado todas las opciones para x i sin éxito, por lo que no hay solución en la rama actual Estrategias Look Back Esta sección introduce otra clase de esquemas de mejora que intenta contrarrestar la propensión del backtracking para re descubrir repetidamente las mismas inconsistencias y éxitos parciales durante la búsqueda. Estos esquemas son invocados cuando el algoritmo llega a un dead-end y se prepara para deshacer una o varias asignaciones realizadas previamente. Colectivamente, son llamados esquemas lookback, y pueden ser divididos en dos categorías principales. El objetivo del primer tipo es mejorar sobre la política standard de retroceder solo un paso hacia atrás cuando se encuentra un dead-end. Analizando las razones del dead-end, puntos de backtracking sin relevancia pueden ser evitados frecuentemente y hacer que el algoritmo retroceda directamente al origen del fallo, en lugar de retroceder solamente hasta la variable anterior según el ordenamiento que se sigue. El objetivo del segundo tipo del esquema look-back llamado almacenamiento de restricciones o aprendizaje incorrecto es guardar las razones por las que se produjeron el dead-end en la forma de nuevas restricciones, tal que los mismos conflictos no aparezcan otra vez más tarde en la búsqueda. En esta sección se describirán varios algoritmos que ejemplifican algunas de las muchas formas en las cuales estas dos categorías de esquemas de mejora pueden ser implementadas. Backmarking El algoritmo Backmarking es descrito en detalle en los trabajos publicados por Gaschning en [46], Dechter en [32], o por Prosser en [104]. Al producirse un dead-end el algoritmo backtracking retrocede, por lo tanto la asignación de una misma variable puede ser realizada más de una vez. Considere que se desea asignar un valor a la variable x i, y dicha asignación no es la primera vez que se realiza durante la búsqueda. La asignación de x p es anterior a la asignación de x i y entre las variables que han sido modificadas desde la última asignación de x i, x p es la variable que aparece más temprano en el ordenamiento. Mediante la técnica

85 2.6. Formulación de un Job Shop como un CSOP 55 Backmarking no se verificarán las restricciones que involucren a x i y cualquier variable anterior a x p en el ordenamiento, ya que la verificación de restricciones dará el mismo resultado que en asignaciones previas. Backmarking lleva un rastro de los valores que incumplen determinadas restricciones entre una variable y otra, de tal forma que cuando se deba volver sobre la misma variable, se conoce cuáles son las restricciones que ya no necesitan ser verificadas, siempre y cuando la asignación de la otra variable que aparece antes en el ordenamiento no haya sido modificada. Si en asignaciones previas la asignación x i, y ha incumplido una o más restricciones R {i} S, S X del problema, y ninguna de las variables en S han sido modificadas desde entonces, cuando se vuelve a asignar un valor a x i no se asigna el valor y sino el último valor válido asignado, ya que este deberá ser igualmente válido. Con ello se evita realizar nuevamente la verificación de restricciones entre ciertas variables del problema cuando se regresa de un backtracking. Backjumping Esquemas Backjumping son una de las herramientas primarias para reducir la desafortunada tendencia de los algoritmos de backtracking a repetir los mismos dead-ends. Un dead-end ocurre si a x i no le quedan valores en su dominio que permitan una asignación consistente con respecto a la solución parcial actual, en cuyo caso el algoritmo de backtracking retrocederá a la variable x i 1. Suponga que un nuevo valor para x i 1 existe y que no existe ninguna restricción en cuyo alcance se encuentren las variables x i y x i 1. En este caso x i 1 no puede ser la causa del dead-end en x i, por lo que un dead-end será alcanzado nuevamente en x i por cada valor de x i 1 hasta que todos los valores de x i 1 hayan sido probados. Esta situación puede ser mejorada por identificar la variable inculpada responsable del dead-end, y luego inmediatamente saltar hacia atrás y re instanciar la variable inculpada, en lugar de instanciar repetidamente la variable previa cronológicamente. La identificación de variables inculpadas está basada en la noción de conjuntos de conflicto. Entre las variantes de Backjumping, se encuentran Backjumping de Gaschnig [47], Backjumping basado en grafos descrito por Dechter en [31], y Backjumping dirigido por conflictos descrito por Prosser en [103].

86 56 2. Métodos para resolver Problemas tipo Job Shop Algoritmos de Aprendizaje Una determinada combinación no factible de valores asignada a determinadas variables, cuya asignación es realizada en base a un cierto ordenamiento, es denominado el conjunto de conflictos. Esta asignación puede ser repetida varias veces durante la búsqueda si el algoritmo explora diferentes caminos dentro del grafo de búsqueda. Si se restringe de forma explícita, la combinación que causó el conflicto o dead-end a medida que aparecen, se evitaría repetir la asignación. A la técnica de introducir nuevas restricciones en el modelo, con el objetivo de evitar repetir asignaciones que producen dead-end, se conoce como registro de restricciones o aprendizaje de restricciones. La oportunidad de saber qué restricción se debe agregar se presenta siempre y cuando el algoritmo backtracking encuentra un dead-end, esto es, cuando la instanciación actual a i tiene un conflicto con x i+1. Si el a i contiene uno o más subconjuntos que están en conflicto con x i+1, registrar estos conjuntos de conflictos más pequeños como restricciones puede resultar útil durante lo que quede de la búsqueda, estados futuros pueden contener estos conjuntos de conflictos, así como también excluirían conjuntos de conflictos más grandes que lo contengan. En los algoritmos de aprendizaje, el ahorro producido por una búsqueda que poda los caminos que llevan a un dead-end debe estar equilibrado con la sobre carga de procesar en cada generación de un nodo un conjunto más grande de restricciones. Los algoritmos de aprendizaje pueden estar caracterizados por la forma en la cual identifican los conjuntos de conflictos más pequeños. El aprendizaje puede ser profundo o superficial. El primero insiste en registrar únicamente restricciones que evitan obtener los conjuntos de conflictos mínimos, lo cual requiere de un análisis más costoso. El segundo registra restriccione aunque estas no representen el conjunto de conflictos mínimos que se desee evitar. Los algoritmos de aprendizaje también están caracterizados por la forma en que limitan la aridad de las restricciones generadas. Las restricciones cuyo ámbito incluye a muchas variables, son generalmente menos aplicables. Existen tres tipos primarios de aprendizaje: graph-based learning (Dechter [31]) deep learning, y jumpback learning (Frost [43]). Cada uno de estos puede ser restringido por limitar la cantidad de restricciones que va agregando, lo cual es referido como aprendizaje acotado. Estos algoritmos ejemplifican las principales alternativas,

87 2.6. Formulación de un Job Shop como un CSOP 57 aunque existen numerosas variaciones posibles Ordenamiento de Valores También es posible utilizar la información reunida de la propagación de restricciones para construir un ranking ordenado de valores prometedores que no han sido rechazados mediante la estimación de sus correspondientes probabilidades de conducir hacia una solución. En el trabajo de Dechter [32] se enumeran las siguientes heurísticas como ejemplo de heurísticas de ordenación de valores. Mínimo Conflictos (MC). Elige el valor que elimina el menor número de valores de los dominios de variables futuras. Particularmente, considera cada valor en el dominio de la variable actual y le asocia el número total de valores en los dominios de variables futuras con las que tiene algún conflicto pero que son consistentes con la asignación parcial actual. Los valores de la variable actual son luego seleccionados en orden creciente teniendo en cuenta el valor de este contador. Dominio de Tamaño Máximo (MD). Está inspirada por la intuición de que es más probable que un sub problema que incluya variables con dominios pequeños sea inconsistente. Esta heurística prefiere el valor de la variable actual que cree el dominio mínimo de mayor tamaño entre los dominios mínimos de las variables futuras. Por ejemplo, si después de instanciar x i con valor a el min j {i+1,...,n} D j es 2, y con x i = b, el mínimo es 1, entonces a será preferida. Soluciones Estimadas (ES). La heurística ES intenta estimar el número de soluciones en cada sub problema potencial. ES calcula un límite superior para el número de soluciones multiplicando el tamaño de los dominios de las variables futuras, luego de eliminar de los mismos aquellos valores que producen inconsistencia con el valor asignado a la variable actual. El valor que conduce al límite superior más alto sobre el número de soluciones es seleccionado primero.

88 58 2. Métodos para resolver Problemas tipo Job Shop Ordenamiento de Variables Una red de restricciones puede tener diferentes espacios de búsqueda, dependiendo del ordenamiento de las variables. Ya que el espacio de búsqueda incluye todas las soluciones, una forma de evaluar si su tamaño es excesivo es contando el número de dead-ends que deja. El ordenamiento de variables puede ser: Estático: en el cual el orden de las variables es especificado antes que se inicie la búsqueda, y no es cambiado mientras esta se realiza, o bien Dinámico:en el cual la elección de la siguiente variable a ser considerada en algún punto de la búsqueda depende del estado actual de la misma. Haralick y Elliot en [61] así como Purdom en [105] describen las propiedades y las ventajas de un ordenamiento dinámico de variables. Cuando se determina en forma dinámica el ordenamiento de las variables durante la búsqueda, una heurística conocida como el primero que falla es descrita en el trabajo de Haralick y Elliot en [61]. Consiste en seleccionar como la siguiente variable aquella que más restrinja el espacio de búsqueda. Siendo iguales todos los otros factores, la variable con el menor número de valores viables en su dominio actual tendrá el menor número de sub árboles cuyas raíces corresponderán a estos valores, y por lo tanto el menor espacio de búsqueda bajo ellos. Bacchus y Van Run proponen en [6] la heurística MRV para realizar un ordenamiento dinámico de variables. En esta heurística, la siguiente variable a ser seleccionada es aquella en cuyo dominio exista la menor cantidad de valores consistentes considerando las variables previamente instanciadas. Otras heurísticas de ordenamiento dinámico son: BZ [14], GEL [48], KP [49]. Debido a que el ordenamiento de valores y variables puede tener un efecto dramático en la eficiencia de un algoritmo de backtracking, y considerando también que hallar una heurística que trabaje bien en todos los casos es poco probable, una estrategia alternativa explora la aleatoriedad en la selección de variables y valores. Por ejemplo, cuando el algoritmo necesita seleccionar una variable, puede utilizar una heurística para la selección de la siguiente variable, pero puede romper los empates en forma aleatoria. Lo mismo puede darse para la selección de valores de una variable, puede ser seleccionado en forma aleatoria, o puede utilizarse la aleatoriedad

89 2.7. Métodos Heurísticos Genéricos 59 para romper empates entre valores luego de aplicar alguna de las heurísticas para seleccionar valores para una variable Métodos Heurísticos Genéricos Búsqueda Beam Los métodos branch and bound enumerativos son actualmente uno de los métodos más utilizados para obtener soluciones óptimas a problemas de scheduling NPhard. La desventaja del branch and bound es que puede ser un método que consuma mucho tiempo cuando el número de nodos a explorar es elevado. El método Beam Search es un derivado del branch and bound, el cual trata de eliminar ramas de forma inteligente, tal que no todas las ramas del árbol deban ser exploradas para hallar una solución al problema. El tiempo de computo es menor pero no garantiza que la solución hallada sea la solución óptima. Con la búsqueda Beam únicamente los nodos más prometedores del nivel k son seleccionados para ser expandidos. Los nodos restantes en ese nivel son descartados permanentemente. Se denomina anchura beam al número de nodos seleccionados en el nivel k para ser expandidos en los siguientes niveles. El proceso que decide qué nodos seleccionar es un componente crucial de este método. Evaluar cada nodo cuidadosamente, para obtener una estimación lo más exacta posible del potencial de todos sus descendientes, puede consumir una cantidad de tiempo muy elevada. Debe haber una negociación entre una predicción rudimentaria, que puede ser muy rápida, pero también puede descartar soluciones buenas, y entre una predicción muy minuciosa, que aunque puede dar mejores resultados, puede consumir una cantidad de tiempo muy elevada. En [98], Pinedo propone una aproximación de dos etapas. En la primera, se realiza una estimación rudimentaria. A partir de estos resultados se seleccionan n nodos, y con los n nodos seleccionados se realiza una estimación más minuciosa y según estos segundos resultados son seleccionados los m nodos cuyas ramas serán generadas. El número de nodos seleccionados en la primera etapa se conoce como la anchura de filtrado. La anchura de filtrado debe ser mayor a la anchura beam.

90 60 2. Métodos para resolver Problemas tipo Job Shop Este método no realiza una búsqueda completa, por lo tanto la solución óptima no puede ser garantizada. A cambio, propone una buena solución en un periodo de tiempo menor. Consideramos que la calidad de la solución dependerá fundamentalmente de la heurística empleada para seleccionar el sub conjunto de estados que serán revisados durante la búsqueda. Es un método práctico, ya que una búsqueda completa en muchos problemas combinatorios no es viable, pero como todo método de búsqueda local, la clave del éxito en su implementación se basa en la elección correcta de aquellos nodos que serán expandidos, y de aquellas ramas del árbol de búsqueda correspondiente, que nunca serán generadas Simulated Annealing El algoritmo Simulated Annealing es un algoritmo del tipo mejora que es conceptualmente diferente a los algoritmos del tipo constructivo. Ha sido introducido en la literatura por Cerny en [24] y por Kirkpatrick en [73]. Este método selecciona en forma arbitraria una solución e intenta mejorarla mediante determinadas modificaciones realizadas en la misma. Los procedimientos de búsqueda local son una importante clase de algoritmos tipo mejora. Un procedimiento de búsqueda local no garantiza una solución óptima. Usualmente intenta encontrar una solución mejor que la actual por explorar su correspondiente vecindario. Dos soluciones son vecinas si una de ellas puede ser obtenida a través de modificaciones bien definidas de la otra. En cada iteración un procedimiento de búsqueda local lleva a cabo una búsqueda dentro del vecindario y evalúa las soluciones halladas. El procedimiento acepta o rechaza una solución candidata para ser la siguiente solución considerada referencia en la búsqueda (esto significa que a partir de dicha solución se creará el vecindario), basándose en un criterio de aceptación/rechazo. Los procedimientos de búsqueda local pueden ser comparados sobre los siguientes criterios de diseño: (i) La representación de la solución que sea apropiada para el procedimiento. (ii) El diseño del vecindario. (iii) El proceso de búsqueda dentro del vecindario. (iv) El criterio de aceptación/rechazo. El procedimiento Simulated Annealing va a través de un número de iteraciones.

91 2.7. Métodos Heurísticos Genéricos 61 En la iteración k del procedimiento, existe una solución a la cual denominamos S k y una solución que corresponde a la mejor solución obtenida hasta entonces, a la cual denominamos S 0. Considere que G(S k ) y G(S 0 ) denotan los correspondientes valores de la función objetivo para la solución S k y para la solución S 0, respectivamente y que G(S k ) G(S 0 ) (función objetivo consiste en minimizar). En la iteración k, una búsqueda para una nueva solución es conducida dentro del vecindario de S k. Primero, una solución a la cual se denomina solución candidata, S c, es seleccionada del vecindario. Esta selección de una solución candidata puede ser realizada en forma aleatoria o en forma organizada, posiblemente secuencial. Si G(S c ) < G(S k ), la siguiente solución de referencia pasará a ser S c, esto es S k+1 = S c. Si G(S c ) < G(S 0 ), entonces S 0 = S c. Sin embargo si G(S c ) G(S k ), la solución candidata S c pasará a ser la solución de referencia en la siguiente iteración con probabilidad P (S k, S c ) = exp( G(S k) G(S c ) β k ) Con probabilidad 1 P (S k, S c ) la solución candidata S c es rechazada en favor de la solución de referencia actual S k, estableciendo S k+1 = S k. Los valores β 1 β 2... > 0 son parámetros de control referidos como parámetros de enfriamiento. Frecuentemente β k pasa a ser a k para algún valor de a entre 0 y 1. Están permitidos los movimientos a soluciones peores. La razón para permitir estos movimientos es dar al procedimiento la oportunidad de salir de un mínimo local y encontrar una mejor solución en iteraciones posteriores. Debido a que β k decrece con k, la probabilidad de aceptación de una solución que no mejore la actual es más baja a medida que aumenta el número de iteraciones del proceso de búsqueda. La definición de la probabilidad de aceptación también asegura que si un vecino es significativamente peor, su probabilidad de aceptación es muy baja y es poco probable que el movimiento a esta solución sea realizado. Varios criterios de parada son usados para este procedimiento. Una forma es dejar al procedimiento correr por un número específico de iteraciones. Otro criterio es dejar al procedimiento correr hasta que ninguna mejora sea obtenida en un número determinado de iteraciones sucesivas.

92 62 2. Métodos para resolver Problemas tipo Job Shop Búsqueda Tabú La búsqueda Tabú es en muchas formas similar al método Simulated Annealing, por ejemplo, también es posible el movimiento desde una solución a otra peor. Por cada solución S se define un vecindario, esto es: conjunto de soluciones que pueden ser generadas a partir de S a través de modificaciones bien definidas realizadas en la misma. Un aspecto importante del método es la forma en que se realiza la búsqueda de un vecino dentro del vecindario, como un candidato potencial para ser la siguiente solución a la cual se mueva el procedimiento. El siguiente vecino puede ser elegido en forma aleatoria o en forma organizada. La diferencia básica entre Simulated Annealing y búsqueda Tabú descansa en el mecanismo que es utilizado para aceptar o rechazar una solución candidata. En la búsqueda Tabú el mecanismo no es probabilístico sino más bien determinista. En cualquier etapa del proceso, es mantenida una lista tabú de mutaciones, las cuales no están permitidas en el proceso. La lista tabú tiene un número fijo de entradas lo cual depende de la aplicación. Cada vez que se realiza un movimiento en la solución actual, se ingresa el movimiento inverso en el tope de la lista tabú; el resto de entradas son movidas una posición menos en la lista, y el último elemento es eliminado de la misma. El movimiento inverso es puesto puesto en la lista tabú para evitar volver a un mínimo local que haya sido visitado antes. Este método de búsqueda fue propuesto por Glover en [50]. Tutoriales acerca de este método han sido publicados posteriormente por Glover en [51] y junto con Talliard en [53]. Glover y Laguna presentan un trabajo en el cual describen las principales características y aplicaciones de este método en [52] Algoritmos Genéticos Los algoritmos genéticos han sido introducidos por John Holland en 1975 [66]. Posteriormente Goldberg [54], [55], uno de sus estudiantes también colaboró para que pudieran ser utilizados en la resolución de problemas más complejos. Un algoritmo genético (o AG para abreviar) es una técnica de programación que imita a la evolución biológica como estrategia para resolver problemas. Dado un problema específico a resolver, la entrada del AG es un conjunto de soluciones potenciales a ese problema, codificadas de alguna manera, y una métrica llamada función de aptitud que permite evaluar cuantitativamente a cada candidata. Estas

93 2.7. Métodos Heurísticos Genéricos 63 candidatas pueden ser soluciones que ya se sabe que funcionan, con el objetivo de que el AG las mejore, pero se suelen generar aleatoriamente. Luego el AG evalúa cada candidata de acuerdo con la función de aptitud. En un acervo de candidatas generadas aleatoriamente, por supuesto, la mayoría no funcionarán en absoluto, y serán eliminadas. Sin embargo, por puro azar, unas pocas pueden ser prometedoras -pueden mostrar actividad, aunque sólo sea actividad débil e imperfecta, hacia la solución del problema. Estas candidatas prometedoras se conservan y se les permite reproducirse. Se realizan múltiples copias de ellas, pero las copias no son perfectas; se introducen cambios aleatorios durante el proceso de copia. Luego, esta descendencia digital prosigue con la siguiente generación, formando un nuevo acervo de soluciones candidatas, y son sometidas a una ronda de evaluación de aptitud. Las candidatas que han empeorado o no han mejorado con los cambios en su código son eliminadas de nuevo; pero, de nuevo, por puro azar, las variaciones aleatorias introducidas en la población pueden haber mejorado a algunos individuos, convirtiéndolos en mejores soluciones del problema, más completas o más eficientes. De nuevo, se seleccionan y copian estos individuos vencedores hacia la siguiente generación con cambios aleatorios, y el proceso se repite. Las expectativas son que la aptitud media de la población se incrementará en cada ronda y, por tanto, repitiendo este proceso cientos o miles de rondas, pueden descubrirse soluciones muy buenas del problema. Antes de que un algoritmo genético pueda ponerse a trabajar en un problema, se necesita un método para codificar las soluciones potenciales del problema de forma que un ordenador pueda procesarlas. Un enfoque común es codificar las soluciones como cadenas binarias: secuencias de 1s y 0s, donde el dígito de cada posición representa el valor de algún aspecto de la solución. Otro método similar consiste en codificar las soluciones como cadenas de enteros o números decimales, donde cada posición, de nuevo, representa algún aspecto particular de la solución. Este método permite una mayor precisión y complejidad que el método comparativamente restringido de utilizar sólo números binarios, y a menudo está intuitivamente más cerca del espacio de problemas (Fleming y Purshouse [40]). Esta técnica se utilizó, por ejemplo, en el trabajo de Steffen Schulze-Kremer, que escribió un algoritmo genético para predecir la estructura tridimensional de una proteína, basándose en la secuencia de aminoácidos que la componen (Mitchell [89]).

94 64 2. Métodos para resolver Problemas tipo Job Shop Un tercer método consiste en representar a los individuos de un AG como cadenas de letras, donde cada letra, de nuevo, representa un aspecto específico de la solución. Un ejemplo de esta técnica es el método basado en codificación gramática de Hiroaki Kitano, en el que a un AG se le encargó la tarea de evolucionar un sencillo conjunto de reglas llamadas gramática libre de contexto, que a su vez se utilizaban para generar redes neuronales para una variedad de problemas. La virtud de estos tres métodos es que facilitan la definición de operadores que causen los cambios aleatorios en las candidatas seleccionadas: cambiar un 0 por un 1 o viceversa, sumar o restar al valor de un número una cantidad elegida al azar, o cambiar una letra por otra. Otra estrategia, desarrollada principalmente por John Koza, de la Universidad de Stanford, y denominada programación genética, representa a los programas como estructuras de datos ramificadas llamadas árboles (Koza et. al. [74]). En este método, los cambios aleatorios pueden generarse cambiado el operador o alterando el valor de un cierto nodo del árbol, o sustituyendo un subárbol por otro. Es importante señalar que los algoritmos evolutivos no necesitan representar las soluciones candidatas como cadenas de datos de una longitud fija. Algunos las representan de esta manera, pero otros no; por ejemplo, la codificación gramatical de Kitano, explicada arriba, puede escalarse eficientemente para crear redes neuronales grandes y complejas, y los árboles de programación genética de Koza pueden crecer arbitrariamente tanto como sea necesario para resolver cualquier problema que se les pida. Un algoritmo genético puede utilizar muchas técnicas diferentes para seleccionar a los individuos que deben copiarse hacia la siguiente generación, a continuación se listan algunos de los más comunes. Selección elitista: se garantiza la selección de los miembros más aptos de cada generación. (La mayoría de los AGs no utilizan elitismo puro, sino que usan una forma modificada por la que el individuo mejor, o algunos de los mejores, son copiados hacia la siguiente generación en caso de que no surja nada mejor). Selección proporcional a la aptitud: los individuos más aptos tienen más probabilidad de ser seleccionados, pero no la certeza. Selección por rueda de ruleta: una forma de selección proporcional a la aptitud

95 2.7. Métodos Heurísticos Genéricos 65 en la que la probabilidad de que un individuo sea seleccionado es proporcional a la diferencia entre su aptitud y la de sus competidores. (Conceptualmente, esto puede representarse como un juego de ruleta -cada individuo obtiene una sección de la ruleta, pero los más aptos obtienen secciones mayores que las de los menos aptos. Luego la ruleta se hace girar, y en cada vez se elige al individuo que posea la sección en la que se pare la ruleta). Selección escalada: al incrementarse la aptitud media de la población, la fuerza de la presión selectiva también aumenta y la función de aptitud se hace más discriminadora. Este método puede ser útil para seleccionar más tarde, cuando todos los individuos tengan una aptitud relativamente alta y sólo les distingan pequeñas diferencias en la aptitud. Selección por torneo: se eligen subgrupos de individuos de la población, y los miembros de cada subgrupo compiten entre ellos. Sólo se elige a un individuo de cada subgrupo para la reproducción. Selección por rango: a cada individuo de la población se le asigna un rango numérico basado en su aptitud, y la selección se basa en este ranking, en lugar de las diferencias absolutas en aptitud. La ventaja de este método es que puede evitar que individuos muy aptos ganen dominancia al principio a expensas de los menos aptos, lo que reduciría la diversidad genética de la población y podría obstaculizar la búsqueda de una solución aceptable. Selección generacional: la descendencia de los individuos seleccionados en cada generación se convierte en toda la siguiente generación. No se conservan individuos entre las generaciones. Selección por estado estacionario: la descendencia de los individuos seleccionados en cada generación vuelven al acervo genético preexistente, reemplazando a algunos de los miembros menos aptos de la siguiente generación. Se conservan algunos individuos entre generaciones. Selección jerárquica: los individuos atraviesan múltiples rondas de selección en cada generación. Las evaluaciones de los primeros niveles son más rápidas y menos discriminatorias, mientras que los que sobreviven hasta niveles más

96 66 2. Métodos para resolver Problemas tipo Job Shop altos son evaluados más rigurosamente. La ventaja de este método es que reduce el tiempo total de cálculo al utilizar una evaluación más rápida y menos selectiva para eliminar a la mayoría de los individuos que se muestran poco o nada prometedores, y sometiendo a una evaluación de aptitud más rigurosa y computacionalmente más costosa sólo a los que sobreviven a esta prueba inicial. Algunos de estos métodos son mutuamente exclusivos, pero otros pueden utilizarse en combinación, algo que se hace a menudo. Una vez que la selección ha elegido a los individuos aptos, éstos deben ser alterados aleatoriamente con la esperanza de mejorar su aptitud para la siguiente generación. Existen dos estrategias básicas para llevar esto a cabo. La primera y más sencilla se llama mutación. Al igual que una mutación en los seres vivos cambia un gen por otro, una mutación en un algoritmo genético también causa pequeñas alteraciones en puntos concretos del código de un individuo. El segundo método se llama cruce, e implica elegir a dos individuos para que intercambien segmentos de su código, produciendo una descendencia artificial cuyos individuos son combinaciones de sus padres. Este proceso pretende simular el proceso análogo de la recombinación que se da en los cromosomas durante la reproducción sexual. Las formas comunes de cruce incluyen al cruce de un punto, en el que se establece un punto de intercambio en un lugar aleatorio del genoma de los dos individuos, y uno de los individuos contribuye todo su código anterior a ese punto y el otro individuo contribuye todo su código a partir de ese punto para producir una descendencia, y al cruce uniforme, en el que el valor de una posición dada en el genoma de la descendencia corresponde al valor en esa posición del genoma de uno de los padres o al valor en esa posición del genoma del otro padre, elegido con un 50 % de probabilidad. En la Figura 2.15 se indica a alto nivel la secuencia de las operaciones que distinguen a un algoritmo genético y que se repiten iteración tras iteración hasta que una determinada condición de fin se cumpla. Los gráficos mostrados junto a cada operación en la Figura 2.15 representan el resultado de aplicar las operaciones, indican cómo de una población de individuos se puede obtener la siguiente generación mediante un proceso de selección, reproducción y mutación.

97 ProcedimientoGA() Evaluar el Población Fitnesscorrespondientea Inicial Población 105 Operador Operador de decruce 8, Fin ProcedimientoGA quesecumplalacondición Fitnesscorrespondientea definalizaci Figura 2.15: Secuencia de Operaciones características de un Algoritmo Genético standard Generar Población Inicial 2.8. Conclusiones 67 Repetir Selecciona r Individuos cadaindividuo Población Inicial 15 6 Aplicar Aplicar Población Intermedia Evaluar el Mutación NuevaGeneración Intermedia Hasta cadaindividuo ón Nueva Conclusiones Se han revisado diversos métodos para resolver un problema tipo Job Shop, analizando al mismo tiempo su adaptación y conveniencia para resolver el problema OPT. En particular, los métodos de optimización exacta no pueden ser utilizados para resolver el problema OPT ya que el espacio de soluciones de una instancia real de este problema es muy grande aún cuando se permita la relajación o la poda en los diversos métodos. Debido a la naturaleza del problema, es preferible obtener varias soluciones con una calidad aceptable en poco tiempo que una solución óptima que se demore un tiempo no factible para fines prácticos. En el caso de la Programación

98 68 2. Métodos para resolver Problemas tipo Job Shop Dinámica además se debería hallar un particionamiento del problema que cumpla con la hipótesis principal de este método que es hallar la solución óptima para cada sub problema supone hallar la solución óptima para el problema completo. Hallar la forma de dividir el problema completo en sub problemas que cumplan con esta hipótesis de la programación dinámica en un problema OPT es muy difícil, ya que las actividades están fuertemente interrelacionadas. En el caso de los métodos heurísticos constructivos se obtendría una única solución basándose en aspectos locales de la solución parcial. Las heurísticas empleadas tanto para decidir qué nodos descartar en una búsqueda beam, o para decidir el orden en que deben ejecutarse un conjunto de actividades en las reglas de procesamiento, deben ser muy potentes como para que la única solución entregada sea lo suficientemente buena que no justifique una nueva búsqueda en otra región del espacio de soluciones. Sin embargo, es muy complicado de obtener una heurística muy potente en un problema OPT que considere únicamente aspectos locales como es el caso en los métodos heurísticos. Debido al tamaño del espacio de soluciones y la interrelación que existe entre las actividades que utilizan diferentes máquinas dentro del job shop, consideramos que las propiedades de los métodos heurísticos de mejora pueden ser utilizadas para obtener un proceso de solución que se adapte a las características de Job Shop del problema OPT así como a las características propias del dominio de este problema. Asignar un horario a cada tren en forma factible, requiere de poco tiempo computacional, aún cuando la solución obtenida no sea cercana a la óptima, los métodos de mejora permiten moverse de una región de soluciones a otra. Si se consigue obtener una buena guía para esos movimientos, se podría alcanzar una mejora en un tiempo computacional aceptable.

99 Capítulo 3 Optimizar y Planificar Horarios para Trenes, un problema CSOP 3.1. Introducción En los capítulos previos se ha hecho una revisión acerca de los problemas de scheduling tipo Job Shop, se han identificado aquellas propiedades que son comunes a todo problema de este tipo, así como los modelos y métodos de solución genéricos que existen en la literatura. El objetivo de este capítulo es describir el problema OPT, marco de trabajo de esta tesis, con el suficiente nivel de detalle y de formalidad, necesarios para establecer que es una especialización de problemas de scheduling tipo Job Shop, con características específicas del dominio al que pertenece, y que su complejidad es NP-hard. La descripción de OPT se inicia en la Sección 3.2, en la cual introducimos el problema tratando de dar una visión global del mismo, en cuanto a sus elementos, requerimientos y complejidad se refiere, dejando para las secciones posteriores una descripción más detallada y formal de cada uno de estos puntos. Antes de iniciar la especificación formal del problema, en la Sección 3.3 se proporciona el significado dado a determinados términos empleados para definir a OPT, junto con sus sus principales características, las cuales deberán ser tenidas en cuenta en el momento de formular el problema. Al tiempo que se presentan los diferentes elementos del problema OPT, también se indica la correspondencia entre estos y los elementos de un problema de scheduling tipo Job Shop (trabajo, operación, recurso). La descripción formal del problema OPT es proporcionada en la Sección 3.4 donde 69

100 70 3. Optimizar y Planificar Horarios para Trenes, un problema CSOP el mismo es modelado mediante una red de optimización (X, D, C, F C) y formulado como un Problema de Optimización y Satisfacción de Restricciones (CSOP). Se identifican las variables (X) y el dominio de las mismas (D), las restricciones (C), y la función objetivo (F C) de OPT. Finalmente, en la Sección 3.5 y a partir de la formulación realizada de OPT, se agrupan sus características y elementos, proporcionando a cada grupo un significado, que permite clasificarlos como propiedades típicas de un problema de scheduling tipo Job Shop El Problema OPT En el Problema de Optimizar y Programar horarios para Trenes (OPT) se considera un conjunto de trenes y una línea ferroviaria, la cual está formada por una secuencia ordenada de dependencias (apeaderos, estaciones, bifurcaciones, cargaderos,..., etc.). Cada tren tiene definido un recorrido sobre la misma, que no tiene por qué ser el mismo para todos. Se deberá asignar un horario factible, según un determinado conjunto de restricciones, a cada tren, optimizando una determinada función objetivo. El orden entre las dependencias determina el orden en el cual deben ser visitadas por los trenes que viajan en un determinado sentido, al cual denominamos ida. Cuando los trenes viajan en el sentido opuesto, decimos que viajan en sentido vuelta. Las restricciones, que deben ser satisfechas por la programación de horarios entregada, tienen en cuenta la capacidad de la infraestructura ferroviaria, el tráfico que existe en la línea, las condiciones de mantenimiento, el servicio propuesto al cliente, y las condiciones establecidas por el planificador de horarios para guiar hacia un tipo de resultado la solución que se obtenga. La infraestructura ferroviaria está dada por el número de vías en la dependencia y entre dependencias consecutivas, así como por el tipo de señalización que existe en cada tramo. Las restricciones que tienen en cuenta el mantenimiento de la línea incluyen los horarios de cierre en las estaciones y los intervalos de tiempo correspondientes a las operaciones de mantenimiento. En cuanto a las restricciones de tráfico, se debe considerar que puede existir más de un tren en la línea, por lo tanto

101 3.2. El Problema OPT 71 se deberá evitar colisiones entre ellos o cualquier otro tipo de operación que ponga en riesgo al vehículo y a sus ocupantes. En cuanto al servicio al cliente, puede ser requerida una determinada frecuencia de salida entre trenes consecutivos de determinadas estaciones, o una mínima parada comercial que permita el ascenso y descenso de pasajeros en determinadas estaciones o apeaderos. Además, el planificador podrá especificar por cada tren, un intervalo de instantes de tiempo factibles para que el tren parta de su estación origen y podrá restringir el instante de llegada a su estación destino a un determinado intervalo de tiempo. Otro requerimiento que puede ser añadido es el de un máximo retraso permitido con respecto a un tiempo de referencia para el tren. En cada dependencia se especifica un número total de vías y la cantidad de estas vías que poseen andén. Un tren no podrá llegar a una dependencia en la cual no exista por lo menos una vía disponible. Además, deberá poseer andén si el tren que llega tiene previsto realizar una parada comercial en ella. Otro de los atributos asociados a una dependencia es el horario de cierre, formado por un conjunto de intervalos de tiempo, que señalan cada uno, los instantes en los que dicha dependencia permanece cerrada. Consideramos dos tipos de cierre: apto para circulación y no apto para circulación. Si se da el primer caso, significa que mientras dure el cierre, solo una vía de la dependencia estará disponible, lo cual a su vez significa que no podrá ser ocupada al mismo tiempo, por más de un tren. Si el cierre es del segundo tipo, significa que ningún tren podrá pasar por la dependencia mientras dure el cierre especificado para la misma. Entre dos dependencias consecutivas pueden existir una o dos vías de circulación. Si existe una sola vía de circulación, entonces tanto los trenes que viajan en sentido ida como los trenes que viajan en sentido vuelta deberán utilizar la misma vía para ir de una dependencia a otra. En este caso se deberá tener en cuenta que dos trenes viajando en sentido opuesto no podrán utilizar dicho tramo al mismo tiempo, para evitar una colisión entre los mismos. Cuando dos trenes que viajan en sentido opuesto tienen la posibilidad de ocupar un mismo tramo al mismo tiempo, se deberá decidir cuál de ellos lo ocupará primero, haciendo que el otro tren espere hasta que el tramo sea liberado. La decisión que sea tomada cada vez que aparece un conflicto de este tipo, condiciona la calidad de la programación de horarios. Cuando dos trenes que viajan en sentidos opuestos llegan a una misma estación,

102 72 3. Optimizar y Planificar Horarios para Trenes, un problema CSOP desde tramos que constan de única vía, es importante que exista un mínimo tiempo entre sus llegadas (tiempo de recepción) así como entre la llegada de un tren y la salida del tren con sentido de viaje opuesto (tiempo de expedición). Estos tiempos aseguran que no se produzcan colisiones entre trenes que viajan en sentidos opuestos, a la entrada o a la salida de una estación que posea una única vía de salida o de llegada. Cuando existen dos vías de circulación entre dos dependencias consecutivas, se dedica cada vía a la circulación en un determinado sentido, de tal forma que dos trenes viajando en sentido opuesto no utilizarán la misma vía de circulación en dicho tramo. Cuando dos trenes viajan en el mismo sentido y son consecutivos entre sí, por razones de seguridad se requiere que exista una diferencia de tiempo entre ellos. Según sea el sistema de señalización empleado en un tramo, a esta diferencia de tiempo la denominamos sucesión automática o sucesión manual. En el primer caso se requiere que exista una mínima cantidad de tiempo entre las salidas y las llegadas de los trenes consecutivos de y a las estaciones del tramo. En el segundo caso, el tramo no podrá ser ocupado al mismo tiempo por dos trenes. El segundo tren deberá esperar hasta que el primero llegue a la siguiente estación abierta y se produzca el aviso de llegada. Es necesario que la estación a la cual llegue el primer tren se encuentre abierta para que un operario pueda avisar por teléfono al segundo tren que ya puede salir. Si los dos trenes necesitan realizar una parada en alguna estación común a sus recorridos, siempre que ambos trenes puedan salir al mismo tiempo de la estación, deberá salir primero aquel tren que hubiera llegado primero a la misma, es decir, en estos casos no se permite adelantamientos entre trenes consecutivos. Existen intervalos de tiempo en los que se prevé mantenimiento para un determinado tramo. En los instantes de tiempo pertenecientes a dicho intervalo se considera que el número de vías para circulación en el tramo, disminuye en uno. Es decir, si el tramo consta de una sola vía de circulación, no podrá pasar ningún tren por el tramo mientras dure el mantenimiento. Si el tramo consta de dos vías, el tramo quedará reducido a un tramo de única vía mientras dure el mantenimiento. Por cada tren se especifica una velocidad promedio por tramo, sin embargo cuando el tren debe detenerse en una estación en la cual no tenía previsto parar, la velocidad promedio del tramo previo a la estación y la velocidad promedio del

103 3.2. El Problema OPT 73 tramo posterior a la misma deberá disminuir con respecto a la velocidad previamente especificada, ya que el tren deberá frenar y posteriormente deberá ponerse en marcha para continuar su viaje. Siendo así, se deberá incrementar el tiempo de recorrido inicialmente especificado para el tren en los tramos anterior y posterior a la estación donde se produce la parada no prevista. El intervalo de tiempo dentro del cual se lleva a cabo la optimización es un parámetro del problema. El intervalo máximo permitido es el correspondiente a un día de planificación, [0, 86400] segundos. Los trenes pueden pertenecer a diferentes tipos, esto es diferentes velocidades, diferentes recorridos, diferentes paradas especificadas en las estaciones,...etc. Se considera la posibilidad de que la línea ferroviaria ya se halle ocupada por otros trenes, a los cuales se denomina trenes en circulación porque ya tienen un horario determinado el cual no podrá ser modificado para introducir a los nuevos trenes. El horario de los nuevos trenes deberá tener en cuenta la ocupación que realicen los trenes en circulación de los tramos y las estaciones consideradas. En un marco global, el problema considerado corresponde al tipo de problemas combinatorios de optimización. Decimos que es combinatorio porque puede existir más de una combinación factible de valores que corresponda a la solución del mismo, y es un problema de optimización porque entre todas las combinaciones de valores factibles se requiere hallar la mejor, según un determinado conjunto de criterios, que evalúan cada solución a través de una función objetivo definida para el problema. Además de las características expresadas previamente, este problema, consta de un conjunto determinado de operaciones que deben ser ejecutadas. Cada una de estas operaciones requiere utilizar un determinado tipo de recurso para llevar a cabo su objetivo. Existe un conjunto de restricciones que debe ser satisfecho simultáneamente por las asignaciones realizadas, para que estas sean consideradas factibles y por ende una solución del problema, es decir el objetivo es hallar un instante de inicio y un instante de fin para cada operación satisfaciendo dicho conjunto de restricciones y optimizando una determinada función objetivo. Luego, el problema considerado es un problema de scheduling tipo Job Shop. La Figura 3.1 indica al problema OPT como una especialización de problemas de asignación de horarios para trenes, que a su vez son considerados problemas de scheduling tipo Job Shop y por ende problemas combinatorios de optimización.

104 Planificac ProblemasShop de parahorarios tiposcheduling Combinatorios OPT Job Trenes de Optimizar y Planificar para Trenes, un problema CSOP Optimización ión de Figura 3.1: Clasificación del Problema considerado en la Tesis 3.3. Conceptos Básicos Esperando facilitar la lectura de este trabajo, en esta sección se proporciona el significado que hemos asignado a ciertos términos y cierta notación general, utilizada en el mismo. La notación específica a determinadas secciones o capítulos será definida previo uso, en la sección o capítulo correspondiente. El problema de asignar horarios para trenes puede ser un problema con muchas variantes según las características que se consideren. En este apartado proporcionaremos el significado que hemos dado tanto a determinados elementos que forman el problema OPT así como a la notación utilizada para formalizar dicho problema. Para introducir estos conceptos hemos establecido su correspondencia con los componentes del problema Job Shop. Recursos En el problema OPT, los recursos están formados por las vías ferroviarias, necesarias para que el tren pueda movilizarse y cumplir con un determinado recorrido. Si consideramos a las vías, como las máquinas de un problema de Scheduling, a continuación proporcionaremos las características de los centros de trabajo en los cuales se hallan dichas máquinas. En el problema OPT encontramos dos tipos de centros de trabajo, a uno de ellos se lo conoce como Dependencia y al otro como Tramo Dependencia. l i - Dependencia.

105 3.3. Conceptos Básicos 75 Es un espacio físico situado en una determinada posición geográfica, construido con el objeto de llevar a cabo determinadas operaciones ferroviarias, ya sean comerciales o técnicas. Una dependencia además de ser un lugar por donde pasan trenes, cumple con funciones específicas tales como: señalización, posición donde se produce un cambio en las propiedades del tramo, ascenso v1 y descenso de pasajeros, lugar donde un tren puede apartarse, posición donde SALi 0i1 una línea ferroviaria se divide, etc. Dependiendo de las características y funcionalidades cada dependencia, estas son agrupadas por tipo.en este trabajo clasificamos las dependencias en dos tipos: C21i12v22i233ii34v34i45v45i56 l3i l0ii Estación, y Otros (Bifurcación, Apeadero, Apartadero, Cargadero,etc.). l4i l1i l2iv1 dep0i C4i = + + = = + = + l5i v2paradatecnica C2i ParadaTecnica l6 Mi v1 v23v3v4c5i C4iParadaTecnica v4 idepi C5i = Λ ici Ci C Ci arr 0 = 6 Ci arr6i Figura 3.2: Retraso del Tiempo de Recorrido Real con respecto al Tiempo Ideal del mismo tren Un tren puede detenerse en una dependencia para llevar a cabo una operación comercial (parada comercial), para la cual se ha reservado previamente una

106 76 3. Optimizar y Planificar Horarios para Trenes, un problema CSOP determinada cantidad de tiempo. Un tren también puede detenerse en una dependencia obligado por las condiciones del tráfico en la línea, habiendo o no previsto parada comercial en ella. En este caso, hablamos de una parada técnica, la cual consiste en el tiempo que un tren permanece en una dependencia, a partir del instante en que su parada comercial ha sido cumplida (ver Figura 3.2). Este tipo de parada surge para evitar conflictos con otros trenes en un tramo siguiente, o bien por limitaciones de infraestructura en otras dependencias del recorrido de un tren. En el problema OPT, una parada técnica es posible solo en dependencias tipo Estación. Sin embargo, paradas comerciales son posibles tanto en estaciones como en apeaderos. Los demás tipos de dependencias permitirán únicamente el paso de trenes. En el problema OPT por cada dependencia se consideran los siguientes atributos: Tipo: el tipo que corresponde a cada dependencia determina la factibilidad de realizar determinadas operaciones en la misma. N i - Cantidad total de vías en l i. N Pi - Cantidad de Vías con andén en una dependencia l i. HC i - Horario de Cierre de la dependencia l i. El horario de cierre de cada dependencia está definido por un conjunto de elementos de la forma HC i = {(A i j, B i j, type i j )} 1 j M i, donde A i j es el instante en que se inicia el cierre de la dependencia i, B i j es el instante en que finaliza el cierre de la dependencia i, y type i j es el tipo de cierre. Pueden definirse M i intervalos de cierre para cada dependencia cada uno con un tipo determinado. Si HC i =, la dependencia l i permanece abierta 24 horas. De lo contrario, se definen M i 1 intervalos de tiempo. El límite inferior del intervalo A i j indica el instante en el que se inicia el horario de cierre j en l i, y el límite superior B i j, indica el instante en el que este cierre finaliza. Si type i j = AC, el cierre durante este intervalo es Apto para Circulación, lo cual implica que durante este intervalo el número de vías en l i será igual

107 3.3. Conceptos Básicos 77 a uno. Si por el contrario type i j = NC, el cierre durante el intervalo j es No apto para Circulación, lo cual implica que durante este intervalo el número de vías en l i será igual a cero. L - Línea Ferroviaria. Es definida como una secuencia ordenada de N dependencias, L = {l 0, l 1,..., l N 1 }. Cada dependencia l i es nombrada de tal forma que el sub índice i indica la posición que esta ocupa con respecto al resto de dependencias, en el trayecto que realiza un tren cuando utiliza la línea L. Así, si un tren debe llegar a l i+1, 0 i < N 1, y está utilizando la línea L, solo existen dos dependencias en L desde las cuales puede partir, l i ó l i+2, el tren deberá pasar previamente por una de estas dos dependencias antes de alcanzar la dependencia l i+1 dependiendo del sentido que corresponda al viaje del tren. S - Estaciones. Subconjunto de L. Secuencia finita y ordenada de dependencias cuyo tipo es Unica Vía(Y) asdependenci l i Estación. 1 sinvías (y x, ) ( i Mi2 ( li+ M+ M+ Figura 3.3: Banda de Mantenimiento en un Tramo de Vía Única 1)1 Mi1 1) tiempo(x) l i l i+1 - Tramo Dependencia.

108 78 3. Optimizar y Planificar Horarios para Trenes, un problema CSOP Considerando la línea ferroviaria L = {l 0, l 1,.., l N 1 }, definimos un tramo dependencia como la sección de vía existente entre dos dependencias consecutivas l i y l i+1, 0 i < N 1. Según la definición de línea, decimos que l i y l i+1 son dependencias consecutivas en L, ya que un tren que utiliza la línea ferroviaria L y va desde l i a l i+1, o viceversa, no pasa por ninguna otra dependencia en L. Por cada tramo dependencia de una línea L, al cual representamos por medio de l i l i+1, 0 i < N 1, se consideran los siguientes atributos: N i i+1 - Cantidad de vías entre la dependencia l i y la dependencia l i+1. Puede ser un tramo de vía única o un tramo de vía doble. Tipo de bloqueo: según sea el tipo de bloqueo, automático ó manual, en el tramo l i l i+1 se obtiene la distancia temporal que debe existir entre dos trenes consecutivos en dicho tramo. Banda de Mantenimiento: en un tramo l i l i+1 se define un conjunto finito de bandas de mantenimiento, que puede ser un conjunto vacío, lo que Doble Vía(Y) asdependenci li significaría 1 que no se prevé Unica Vía mantenimiento para dicho tramo. ( i Mi2 ( tiempo(x) li+ M+ M+ Figura 3.4: Banda de Mantenimiento en un Tramo de Vía Doble 1)1 Mi1 1)

109 3.3. Conceptos Básicos 79 Una banda de mantenimiento determina la sección de vía que se encuentra bajo mantenimiento por cada instante de tiempo de un determinado intervalo, lo cual implica disminuir en uno la cantidad de vías en dicha sección. Esto significa que en ese instante de tiempo una sección de vía doble se convierte en una sección de vía única y una sección de vía única queda sin vías. En las figuras 3.3 y 3.4 se observa un ejemplo. En ellas, las regiones de color gris representan gráficamente a una de las bandas de mantenimiento asociadas al tramo l i l i+1. La figura 3.3 muestra el caso de un tramo de vía única, en el cual las posiciones y quedan sin vías en los instantes x si y solo si (x, y) pertenece a la región definida por la banda de mantenimiento (región coloreada con gris). En la misma figura puede verse que ningún tren pasa por los puntos (x, y) pertenecientes a la región, ya que en el instante x no existen vías en la posición y. En la figura 3.4, es posible el paso de trenes porque de las dos vías queda habilitada una, sin embargo no pueden existir en las secciones de vía definidas por la banda de mantenimiento, dos trenes viajando en sentido opuesto al mismo tiempo. sec i - Tramo Estación. Considerando que L = {l 0, l 1,.., l N 1 }, S = {s 0, s 1,.., s M }, s i = l x y s i+1 = l x+a, sec i = {l j \l j S L x j x + a} es un tramo estación en L, el cual está formado por las estaciones s i, s i+1, y las dependencias no estación (l j, x < j < x + a), que deben ser visitadas para ir desde s i hasta s i+1. Trabajos El recorrido que debe realizar cada tren constituye un Trabajo en el problema OPT. Por cada tren son considerados determinados atributos que regulan en parte la realización de cada trabajo. A continuación estos atributos son descritos proporcionando previamente una clasificación entre los trenes del problema, la cual es realizada a partir de ciertos atributos comunes a todos los trenes pertenecientes al mismo conjunto.

110 80 3. Optimizar y Planificar Horarios para Trenes, un problema CSOP T - Trenes en el Problema. T C - Trenes en Circulación. Conjunto de trenes que ya se encuentran en circulación en L en el momento que se desea asignar horarios a nuevos trenes. El horario de estos trenes no puede ser modificado. T C T, T C 0. T new - Trenes Nuevos. Conjunto de trenes a los que se debe asignar un horario factible en L, teniendo en cuenta a los trenes en circulación que existen en la misma. Note que T new T C = y T new T C = T. t i - Identificador de un tren. Operador. Según las características de cada tren: velocidad promedio, tipo de vagones, tipo de motor, equipamiento, recorrido, peso, funcionalidad,...,etc., se le asigna un determinado operador. En OPT hemos clasificado a los operadores en dos grupos. A uno de ellos hemos denominado Viajeros y al otro Mercancías. En adelante nos referiremos a estos grupos como tipos de trenes. l j i - Dependencia por Recorrido. Dependencia que ocupa la posición i dentro de la secuencia ordenada de dependencias que forman el recorrido de un tren t j. En adelante para abreviar utilizaremos dependencia i del recorrido del tren. J i - Recorrido. Sea J i = {l0, i l1 i,..., li m i } el recorrido de un tren t i. Esta secuencia ordenada de elementos determina las dependencias que deberá visitar en su trayecto y el orden en el que deberá hacerlo. El orden establecido por J i determina que t i no podrá alcanzar la dependencia lj+1 i desde otra dependencia que no sea li j, siendo 0 j < m i. La dependencia l i 0 y la dependencia lm i i son el origen y el destino del recorrido de t i, respectivamente. Considere que: t i T J i L T D - Trenes que viajan en sentido ida. A cada tren t i en T le corresponde un sentido de viaje, el cual puede ser: o bien ida, o bien vuelta. Si t i T y t i viaja en sentido ida entonces t i pertenece

111 3.3. Conceptos Básicos 81 al conjunto T D, el cual es definido como: T D = {t i \t i T ( lj i J i \ {lm i i }, l k L \ {l N 1 } : lj i = l k lj+1 i = l k+1)}. T U - Trenes que viajan en sentido vuelta. Si t i T y t i viaja en sentido vuelta entonces t i pertenece al conjunto T U, el cual es definido como: T U = {t i \t i T ( lj i J i \ {lm i i }, l k L \ {l 0 } : lj i = l k lj+1 i = l k 1)}. T newd - Trenes nuevos que viajan en sentido ida. T newu - Trenes nuevos que viajan en sentido vuelta. Operaciones Considerando que un trabajo consiste en que un tren lleve a cabo el recorrido asignado, se considera una operación, tanto la visita de un tren a una dependencia, incluyendo la cantidad de tiempo que deba estar detenido en la misma, como el recorrido que realice el tren desde una dependencia a la siguiente, según el recorrido que le ha sido asignado. Las operaciones son realizadas en forma ordenada, según las relaciones de precedencia establecidas por el recorrido de cada tren. Si la operación a ser llevada a cabo consiste en visitar una dependencia, se exige un mínimo tiempo de procesamiento al cual se denomina Parada Comercial C j i, este tiempo de procesamiento puede ser extendido para evitar conflictos ocasionados por el tráfico en la línea, en este caso la parada se vuelve técnica. El tiempo de procesamiento cuando la operación consiste en ir desde una dependencia a la siguiente del recorrido lo constituye el tiempo de recorrido del tren j i (i+1), calculado según la velocidad promedio establecida para el tren en el tramo y la distancia entre una dependencia y otra. En la figura 3.5 se señalan los principales términos definidos en esta sección. Considerando las características de los diferentes tipos de scheduling, según el patrón de flujo de cada uno (Sección 1.2), se puede observar que OPT es un problema de scheduling que pertenece al tipo Job Shop ya que por cada tren (trabajo) se especifica un recorrido (secuencia de tareas) que no tiene por qué ser el mismo para todos.

112 l Optimizar y Planificar Horarios para Trenes, un problema CSOP 10(Y) asdependenci l5 l3 l4 l2 L32 Parada 4l8 l7 l9 l6 = s= 56 Horario Cierre t0t1 0t2 t3 s= l Tramo Tramoa Dependencidel4t ParadaTécnicadeRecorridot l Estación t2sentidovuelta de0recorridot Sentido lidade s= s= tiempo(x) s= s= s= Ferroviaria Línea 3 s7 Comercialde l l Figura 3.5: Terminología del problema 3.4. Formulación del Problema como un CSOP En esta sección se proporciona un modelo para el problema OPT, el cual es formulado como un problema tipo CSOP. Se considera que OPT = (X, D, C, F C), siendo: X = {x 1, x 2,..., x m } el conjunto de variables del problema, D = {D 1,.., D m } el conjunto de dominios D i correspondiente a cada variable x i X, C = {C 1, C 2,.., C n }, el conjunto de restricciones del problema, y F C = {F Q1,..., F Ql } el conjunto de funciones de coste del problema. Luego, el problema OPT consiste en encontrar una solución que además de proporcionar un valor para cada variable x i X, que pertenezca al dominio D i y satisfaga toda restricción C i C, debe optimizar la función objetivo F, definida a partir de las funciones de coste en F C.

113 3.4. Formulación del Problema como un CSOP 83 Habiendo definido en qué consiste cada conjunto de la 4-tupla (X, D, C, F C para un problema CSOP, en las siguientes sub secciones pasaremos de la formulación general de un CSOP a la formulación específica para el problema OPT, proporcionando el significado de cada elemento a partir del contexto sobre el cual se desarrolla este problema Variables y Dominios En el problema OPT, cada variable x i X representa un instante, de salida o de llegada, correspondiente a un tren t i T en una determinada dependencia lj i de su recorrido J i. Las variables, elementos del conjunto X en un problema CSOP, quedan definidas por: X = {arrj i\t i T lj i (J i \ {l0 i })} {depi j \t i T lj i (J i \ {l i })} mi para el problema OPT. Los valores posibles para estas variables están expresados en segundos, por lo tanto hemos definido el conjunto de números naturales como el dominio correspondiente a cada variable del problema. Esto quiere decir que: D i D : D i = {0, 1, 2,..., 86400}. Las variables dep i j y arri j representan al instante de salida y al instante de llegada de un tren t i T, de/a una dependencia lj i, respectivamente. Si t i T C, las variables dep i j y arri j son tratadas como constantes en el modelo del problema OPT, ya que el horario de t i es un dato conocido para el problema y no una incógnita de su solución Restricciones En esta sub sección se describe en qué consiste cada restricción del conjunto C para el problema OPT. Cada restricción es descrita de forma cualitativa y modelada mediante una expresión matemática. El conjunto de restricciones para el problema OPT ha sido definido en base a los requerimientos establecidos por la Administración de Infraestructura Ferroviaria Española, ADIF, de tal forma que la solución proporcionada sea considerada viable a efectos prácticos. Por lo tanto, se destaca que el problema, marco de trabajo de esta Tesis, corresponde a un problema real. Las restricciones obedecen a diferentes requerimientos dentro de una red ferroviaria, las hemos agrupado según la naturaleza de éstos requerimientos en: 1. Restricciones de Infraestructura,

114 84 3. Optimizar y Planificar Horarios para Trenes, un problema CSOP 2. Restricciones de Mantenimiento, 3. Restricciones de Tráfico, 4. Restricciones del Tren, y 5. Restricciones Comerciales. Restricciones de infraestructura C 1 - Tiempo de sucesión: es la mínima cantidad de tiempo que debe existir entre las salidas/llegadas (tiempo de sucesión en salida/tiempo de sucesión en llegada), de dos trenes consecutivos, que parten/llegan de/a una misma estación. Considerando que: t i y t j son dos trenes consecutivos en T, donde por lo menos uno de ellos pertenece a T new, S i,j = {l k \l k S l k J i J j } es el conjunto de estaciones comunes a los recorridos de t i y t j, ϕ dep x,k es el tiempo de sucesión en salida especificado para el tren t x en el tramo que se inicia con la estación l k. ϕ arr x,k es el tiempo de sucesión en llegada especificado para el tren t x en el tramo que finaliza con la estación l k, la restricción C 1 es descrita formalmente mediante la expresión {t i, t j } T, {l k, l k+1 } S i,j : (({t i, t j } T D {t i, t j } T U ) {t i, t j } T C l i k = l k l j k = l k ) ((dep j k dep i k ϕdep i,k arrj k arr i k ϕarr i,k ) (dep i k depj k ϕ dep j,k arri k arrj k ϕ arr j,k )) (3.4.1) Dados dos trenes consecutivos, t i y t j, y un determinado tramo sec k, el tiempo de sucesión que deberá existir entre sus salidas y entre sus llegadas, respectivamente, dependerá del tipo de tren que parta primero y del tipo de bloqueo que corresponda al tramo sec k, cuya estación inicial es l k.

115 3.4. Formulación del Problema como un CSOP 85 En el problema OPT consideramos dos tipos de bloqueo, Automático y Manual. Para todo tramo estación sec k cuyo tipo de bloqueo es Automático se define un valor constante para ϕ x,k y para ϕarr x,k, según sea el tipo que corresponda al tren t x (Viajeros ó Mercancías). En las Figuras 3.6 y 3.7 se describen dos ejemplos, en el cual dos trenes consecutivos, t i (Y) asdependenci l3 l2 ikdep y t j kj, circulan por un determinado tramo, sec k = {l k, l k+1, l k+2, l k+3 }, cuyo tipo de bloqueo es Automático. l tk dep' dep' i arrtiempo kj(x) k+ k+ k+l1k ϕi,k ti 'j arr3 ' + ϕi,k arr3 + Figura 3.6: Sucesión en un tramo con Bloqueo Automático, menor velocidad para el primer tren En ambos ejemplos, el horario de los trenes satisfacen la restricción sobre tiempo de sucesión. En la Figura 3.6 el tren t i, cuya velocidad en el tramo es menor que la de t j, parte antes que t j de la estación l k, por lo que t j deberá ser el tren que espere por lo menos ϕ dep i,k unidades de tiempo antes que pueda salir de la misma estación l k. Debido a que t i es más lento, t j no puede salir apenas se cumpla ϕ dep i,k unidades de tiempo desde la salida de t i, ya que de ser así no cumpliría con el tiempo de sucesión en llegada ϕ arr i,k. Si, por el contrario consideramos la Figura 3.7 en la cual es t j el tren que parte primero de l k, vemos que t i puede partir apenas se cumpla el tiempo de sucesión establecido para t j, y aún así llega en un instante superior al mínimo

116 (Y) asdependenci l l3 Optimizar y Planificar Horarios para Trenes, un problema CSOP l tjik ki dep' tiempo(x) k+ k+ k+l1k kj dep' ' depk ϕj, arr3 kj + tiarrk ϕj, arr3 '+ Figura 3.7: Sucesión en un tramo con Bloqueo Automático, menor velocidad para el segundo tren permitido por el tiempo de sucesión en llegada establecido para t j. Con estas figuras se ha querido dar un ejemplo de cómo puede afectar el ordenamiento de los trenes que viajan en un mismo sentido en cuanto a la satisfacción del tiempo de sucesión se refiere. Tanto en la Figura 3.6 como en la Figura 3.7 se utiliza un rectángulo sombreado para indicar los instantes de tiempo en los que no es factible que un tren consecutivo al tren que va delante parta de la estación l k en el caso del bloqueo automático. Así mismo, en la parte inferior de la misma figura se señala con otro rectángulo sombreado los instantes de tiempo en los cuales no es factible la llegada de un tren consecutivo al tren que va delante a la estación l k+3. Como puede verse en estas figuras, al ser un bloqueo Automático es posible que dos trenes ocupen el mismo tramo en un mismo instante de tiempo, aunque cumpliendo con una distancia de seguridad entre ellos impuesta por el tiempo de sucesión en salida y en llegada, establecidos según el tipo de tren que va delante. Por otro lado, cuando el tipo de bloqueo de un tramo sec k es Manual, la cantidad de tiempo asignada a ϕ dep x,k debe ser tal que dos trenes, viajando en

117 3.4. Formulación del Problema como un CSOP 87 el mismo sentido, no puedan ocupar el mismo tramo sec k durante el mismo tiempo. Así, si t j parte detrás de t i de la estación l k, e inicia un tramo cuyo tipo de bloqueo es Manual, entonces t j podrá salir de l k una vez que t i haya llegado a la siguiente estación abierta del recorrido y el aviso de llegada se haya producido. Luego, el tiempo asignado a ϕ dep i,k es el tiempo que transcurre entre la salida de t i de l k, y su llegada la siguiente estación abierta de su recorrido más el tiempo necesario para realizar el aviso de llegada. Cuando decimos que un tren llega a una estación abierta, nos referimos al hecho de que el instante de llegada del tren a dicha estación no pertenece a ninguno de los intervalos que componen el horario de cierre de la misma. En la Figura 3.8, el tipo de bloqueo del tramo sec k es manual, por lo tanto no pueden recorrer dicho tramo dos trenes del mismo sentido en un mismo instante de tiempo. En este caso el tiempo de sucesión en salida entre dos trenes, es igual al tiempo que demora el primer tren en recorrer el tramo considerado más el tiempo que se demora en dar aviso al segundo tren que el primero ha llegado (E unidades de tiempo). El tren t j de la Figura 3.8 cumple con esta restricción ya que parte de la estación l k luego de que hayan transcurrido E unidades de tiempo de la llegada de t i a la siguiente estación abierta l k+3. C 2 - Dependencias con Capacidad Limitada: una dependencia no deberá ser ocupada en forma simultánea, por más trenes que el número de vías especificado para la misma. La expresión define formalmente la restricción C 2. En ella se especifica que un tren t i, perteneciente a T new, podrá llegar a una dependencia l i j J i si y solo si existe por lo menos una vía disponible en lj i, que deberá poseer andén si t i tiene previsto parada comercial mayor a cero segundos en la misma (C i j > 0). Como se ha indicado en la Sección 3.3, cada dependencia l i L tiene asignadas N i vías, de las cuales N P i t i T new, l k J i : t j T ti Meet(t i, t j, l k ) + poseen andén. t j T ti Meet P (t i, t j, l k ) < N k

118 (Y) asdependenci l1 likik Optimizar y Planificar Horarios para Trenes, un problema CSOP l2 l3 ik depik depedepj kj arr3 t tiempo arr ϕk ti ϕk ki kj(x) + ik+ Figura 3.8: Sucesión en un tramo con Bloqueo Manual C i k > 0 Meet P (t i, t j, l k ) < N P (3.4.2) k t j T ti Considerando que: el conjunto T ti = {t j /t j T J j J i } como el conjunto de trenes t j, cuyo recorrido tiene alguna dependencia en común con el recorrido del tren t i La función Meet(t i, t j, l k ), definida por la expresión 3.4.3, devuelve 1 si el tren t i y el tren t j coinciden en la dependencia l k en algún instante y si el otro tren, en este caso t j no realiza parada comercial (C j k = 0). 1 if [arrk i, depi k ] [arrj k, depj k ] Cj k = 0 t x T ti Meet(t i, t j, l k ) = (arrk i < depx k < arrj k arrj k < depx k < arri k ) 0 else (3.4.3) La función Meet P (t i, t j, l k ) devuelve 1 si los trenes t i y t j coinciden en la dependencia l k en algún instante y si el tren t j realiza parada comercial

119 3.4. Formulación del Problema como un CSOP 89 en l k. Ver expresión Meet P kl123 1 if [arrk i, depi k ] [arrj k, depj k ] Cj k > 0 t x T (t (Y)(vías) en DisponibleCapacidad i, t 0 ti j, l k ) = (arrk i < depx k < arrj k arrj k < depx k < arri k ) 0 else (3.4.4) (Y) asdependencik ty xt tiempo(x) l tx tyt z tiempo(x) Figura 3.9: Ocupación de una dependencia durante un determinado intervalo de tiempo En la Figura 3.9 se proporcionan dos gráficos. En la parte inferior de la figura, se utiliza un gráfico espacio-tiempo para indicar el instante de llegada y el instante de salida de tres trenes, t x, t y y t z a una dependencia l k. En dicho gráfico se describe el tiempo que permanecen estos trenes en l k. Considerando que l k posee 3 vías, en el gráfico superior de la Figura 3.9 se representa la

120 90 3. Optimizar y Planificar Horarios para Trenes, un problema CSOP capacidad disponible de l k durante el intervalo de tiempo que t x, t y y t z ocupan l k. En el intervalo de tiempo considerado, la capacidad disponible de l k va cambiando conforme se modifica su ocupación por los trenes que van llegando y saliendo de la misma. Dada la restricción C 2, ningún tren podrá llegar a l k en el intervalo de tiempo en el cual el número de vías disponibles es cero (y = 0 en el gráfico superior de la Figura 3.9), esto es durante el tiempo en el cual los tres trenes t x, t y y t z permanezcan en l k. Restricciones de Mantenimiento En este apartado definimos aquellas restricciones que sean debidas a operaciones de mantenimiento especificadas en determinados tramos o dependencias de la línea considerada. C 3 - Horario de Cierre: ningún tren podrá pasar por una dependencia durante un determinado intervalo de tiempo, si este pertenece al horario de cierre de la misma, siempre y cuando el tipo de cierre en dicho intervalo de tiempo sea No Apto para Circulación. Si por el contrario, el tipo de cierre es Apto para Circulación, se deberá considerar y respetar que el número de vías en la dependencia, mientras dure el cierre, es igual a uno. Con el objeto de dar una especificación formal a esta restricción se considera que por cada dependencia l i en L se especifica un conjunto de intervalos de tiempo HC i, que determinan los horarios de cierre de l i. Si l i permanece abierta durante todo el día, HC i =. Cada intervalo de tiempo, en un horario de cierre HC i, tiene asignado un tipo, type i j, el cual puede ser: o bien AC o bien NC. Durante dicho intervalo de tiempo, se considera que el número de vías en l i es uno si type i j = AC, si no, se considera que el número de vías es cero. Considerando estas condiciones para cada dependencia l i cuyo horario de cierre HC i, la restricción C 3 queda definida mediante las expresiones y 3.4.6, según sea el tipo de cierre del intervalo considerado. t j T new, l i J j, (A i k, Bi k, typei k ) HC i :

121 3.4. Formulación del Problema como un CSOP 91 (l j i = l i dep j i > A i k arrj i < B i k ) Meet(t j, t x, l i ) + Meet P (t j, t x, l i ) < 1 (3.4.5) t x T tj t x T tj t j T new, l i J j, (A i k, Bi k, typei k ) HC i : l j i = l i (arr j i B i k depj i < A i k ) (3.4.6) C 4 - Bandas de Mantenimiento: el número de vías en un tramo disminuye en uno mientras duren las operaciones de mantenimiento en el mismo. Formalmente, una banda de mantenimiento en un tramo dependencia l i l i+1 está dada por los intervalos de tiempo [M i1, M i2 ] establecidos en la dependencia l i, y por el intervalo de tiempo [M (i+1)1, M (i+1)2 ], establecido en la dependencia l i+1 (Figuras 3.3 y 3.4). El número de vías en l i l i+1 es disminuido en uno en la región delimitada por las bandas de mantenimiento. Por lo tanto la restricción C 4 es modelada por las expresiones y Considerando que BM i = [M i1 M i2 ] [M (i+1)1, M (i+1)2 ], y T U j = {t k \ J j J k 2 t j t k t k T U } es el conjunto de los trenes que viajan en sentido vuelta y tienen por lo menos un tramo dependencia en común con el tren t j. t j T newd, t k T U j, l i J j \ {l j m j } : N i i+1 = 2 l k i = lj i = l i [dep j i, arr j i +1 ] [depk i, arrk i +1 ] BM i (3.4.7) t j T new, l i J j \ {lm j j } : N i i+1 = 1 (l j i = l i [dep j i, arr j i +1 ] BM i (3.4.8) Restricciones de Tráfico Hemos agrupado en restricciones de tráfico aquellas restricciones que regulan las condiciones de seguridad de un tren con respecto al resto de trenes que se hallan en

122 92 3. Optimizar y Planificar Horarios para Trenes, un problema CSOP una misma línea o en una misma estación. Las condiciones de seguridad son establecidas por cada tren según las características del mismo, las cuales son diferenciadas por el tipo de operador al que pertenece el tren. C 5 - Cruce: si el número de vías entre dos dependencias es igual a uno, no será factible que dos trenes, que viajen en sentidos opuestos, ocupen dicho tramo en un mismo instante de tiempo. Dado un tren cualesquiera t j perteneciente al conjunto T D se define el conjunto T Uj = {t k \ J j J k 2} como el conjunto de trenes que viajan en sentido vuelta y que tienen por lo menos un tramo dependencia en común con el tren t j. Luego, la restricción C 5, es definida por la expresión t j T D, t k T, l U j i, l i+1 J j J k : arr j i+1 < depk i+1 arri k < dep j i (3.4.9) C 6 - Alcance: no se considera factible que dos trenes, viajando en el mismo sentido, ocupen una misma posición dentro de la línea ferroviaria, en un mismo instante de tiempo. Esta restricción es establecida para evitar un alcance entre dos trenes que realizan su trayecto en el mismo sentido.

123 3.4. Formulación del Problema como un CSOP 93 t j T new, t k T : (({t j, t k } T D {t j, t k } T U ) {l j i, lj i+1 } J j J k ) (dep j i < depk i arr j i+1 < arrk i+1) (3.4.10) C 7 - Adelantamiento: un tren solo podrá adelantar en una estación a otro tren que viaje en el mismo sentido si tiene una prioridad mayor. Considerando que p j y p i son las prioridades asignadas a cada tren t j y t i, respectivamente, se formula la restricción C 7 mediante la expresión t i, t j T, l i k J i J j : {t i, t j } T C p j p i (dep j k < depi k arrj k < arri k ) (3.4.11) Trenti Estaciónlk Considerando la Figura 3.10, si t j es un tren perteneciente a T new y su prior- Trentj Figura 3.10: Adelantamiento del tren t j al tren t i en la estación l k. idad es inferior o igual a la del tren t i, entonces decimos que no es factible el adelantamiento realizado por t j al tren t i en la estación l k. Luego, la restricción C 7 es incumplida y por lo tanto el horario es no factible. C 8 - Tiempo de recepción: es el mínimo tiempo que debe existir entre las llegadas de dos trenes, que viajan en sentidos opuestos, a una misma estación. R i es el tiempo de recepción establecido por cada tren t i T, especifica la distancia temporal que debe existir entre las llegadas de dos trenes, a una misma dependencia. Se considera que los trenes viajan en sentidos opuestos.

124 94 likikias)(dependency 3. Optimizar y Planificar Horarios para Trenes, un problema CSOP El tiempo de recepción es dado por motivos de seguridad y depende de cuál l1 titj sea el tipo de tren. X Ri Ej + (tiempo) Figura 3.11: Satisfacción de Recepción y Expedición considerando que t i primero a la estación llega Dado un tren cualesquiera t i T new, el conjunto T Si = {t j \t j T t j t i J i J j {t i, t j } T I {t i, t j } T V } es definido como el conjunto de trenes que viaja en sentido opuesto a t i y tiene por lo menos una dependencia en común con el recorrido de dicho tren. Al asignar un horario a un tren t i T new, el tiempo de recepción asignado al mismo y al resto de trenes en T debe ser tenido en cuenta, según lo especifica la siguiente expresión. t i T new, t j T Si, l i k (J i J j ) \ {l i 0} : arr i k arrj k arrj k arri k R i arr j k arri k arri k arrj k R j (3.4.12) En la figura 3.11, el tramo entre las dependencias lk i y li k+1 consta de una sola vía de circulación. Si los trenes t i y t j salen en cuanto pueden de las estaciones lk i y de li k+1, respectivamente, se produciría un cruce entre ellos, lo cual no es factible. Para evitar el conflicto se decide detener a t i en lk i, hasta que t j libere el tramo lk i li k+1. Habiendo llegado t i primero a lk i, el mínimo tiempo que

125 3.4. Formulación del Problema como un CSOP 95 debe transcurrir desde que llega t i, hasta que llega t j, está dado por R i, que es el tiempo de recepción establecido para todos los trenes del mismo tipo que t i (Viajeros o Mercancías, asignado según el operador de t i ). En la Figura 3.12 se decide resolver el conflicto, descrito previamente, retrasando la salida de t j de lk+1 i hasta que el tramo li k li k+1 sea liberado por t i. En este caso, el instante de llegada de t i será factible, una vez haya transcurrido R j unidades de tiempo desde la llegada de t j. El tiempo de recepción considerado depende del tipo de tren al que pertenece t j, ya que es este el tren que llega primero a la estación donde se gestiona el cruce. C 9 - Tiempo de Expedición: es el mínimo tiempo que debe transcurrir desde la llegada de un tren a una determinada estación para que se considere segura la salida de otro tren de la misma estación. Se considera que estos trenes viajan en sentidos opuestos y el número de vías en el tramo utilizado, por el tren que llega a la estación y por el tren que sale de la estación, respectivamente, es igual a uno. E i es el tiempo de expedición establecido para cada tren t i T. Especifica la distancia temporal que debe existir entre la salida y la llegada de dos trenes, en una misma dependencia. Se considera que dichos trenes viajan en sentidos opuestos. Dado un tren cualesquiera t i T new, el conjunto T Si = {t j \t j T t j t i J i J j {t i, t j } T I {t i, t j } T V } es definido como el conjunto de trenes que viaja en sentido opuesto a t i y tiene por lo menos una dependencia en común con el recorrido de dicho tren. Considerando que N k (k+1) es el número de vías en el tramo dependencia lk i li k+1, la restricción C 9 sobre tiempo de expedición es definida mediante la expresión t i T new, t j T Si, lk i (J i J j ) \ {lm i i, l j 0 } : (N k (k+1) = 1 dep i k arrj k ) depi k arrj k E j (3.4.13) En la Figura 3.11 el tren t i espera en lk i que t j libere el tramo lk i li k+1. Una vez que t j llega a lk i, t i debe esperar por lo menos E j unidades de tiempo hasta que pueda partir de lk i. Es el tiempo que se considera necesario para que t j,

126 likikias)(dependency Optimizar y Planificar Horarios para Trenes, un problema CSOP l1 Rjt i tj X Ei (tiempo) + Figura 3.12: Satisfacción de Recepción y Expedición considerando que t j primero a la estación llega por el tipo de tren al que pertenece, libere el tramo de salida de la estación l i k y no se produzca una colisión entre ambos trenes a la salida de la misma. En la Figura 3.12, el tiempo de expedición depende del tipo de tren de t i, ya que t j es el tren que se halla esperando en la estación l i k+1 y t i es el que llega en segundo término. Una vez que llega t i, t j debe esperar por lo menos E i unidades de tiempo como para que su salida se considere segura considerando la llegada de t i a la misma estación. Restricciones del tren Ciertas propiedades son establecidas por tipo de tren, según las características de cada uno (longitud, motor, peso, capacidad de frenado,...,etc.). Las restricciones que se citan en este apartado son establecidas para que dichas propiedades sean tenidas en cuenta al asignar un horario, de tal forma que este sea viable. C 10 - Tiempo de Recorrido: por cada tren y por cada tramo de su recorrido, se determina la cantidad de tiempo que el tren debe emplear para ir desde el inicio hasta el final de un tramo de su recorrido. Siendo J i = {l 0, l 1,.., l mi } el recorrido correspondiente a un tren t i cualesquiera

127 3.4. Formulación del Problema como un CSOP 97 perteneciente a T new, se establece que, t i debe emplear i k (k+1) unidades de tiempo para ir desde lk i hasta li k+1, donde 0 k < m i. El tiempo de recorrido i k (k+1) es establecido por cada tren t i y por cada tramo dependencia lk i l i k+1 de su correspondiente recorrido. Este tiempo solo puede ser modificado durante la búsqueda de una solución si el tren realiza una parada no prevista en alguna dependencia de su recorrido. Para más detalles sobre este punto en particular ver la restricción C 11. La expresión formula la restricción C 10 sobre el tiempo de recorrido asignado a un tren t i en un tramo dependencia lk i correspondiente. li k+1 de su recorrido t i T new, l i k J i \ {l i m i } : arr i k+1 = depi k + i k (k+1) (3.4.14) C 11 - Demora por parada no prevista: por cada tren se establece en cada tramo de su recorrido una determinada cantidad de tiempo que este debe emplear para recorrerlo (restricción C 10 ). Sin embargo si el tren se debe detener en una estación, en la cual no estaba prevista su parada, debe realizar un frenado en el tramo previo a la estación, lo cual significaría un aumento del tiempo de recorrido especificado en dicho tramo, ya que su velocidad no será la prevista en todo el tramo, deberá ir disminuyendo hasta lograr el frenado. Lo mismo ocurre en el tramo posterior a la estación donde se produce la parada técnica, el tren se pone en marcha y va aumentando su velocidad hasta llegar a la velocidad especificada en el tramo, esto también supone un aumento del tiempo de recorrido originalmente previsto para dicho tramo. Para especificar formalmente esta restricción hemos utilizado la expresión En dicha expresión se considera que un tren t i que pertenece a T new se detiene en una estación lk i de su recorrido, en la cual ninguna parada comercial fue prevista (C i k = 0), entonces debe incrementarse el tiempo de recorrido del tren tanto en el tramo anterior (se considera el tiempo que emplea el tren en detenerse) como en el tramo posterior a lk i (se considera el tiempo que demora el tren en alcanzar la velocidad promedio del tramo). El incremento realizado en el tiempo de recorrido se denomina demora por parada no prevista, Γ i. Su valor es conocido y es establecido por cada tipo de

128 98 3. Optimizar y Planificar Horarios para Trenes, un problema CSOP operador presente en el problema OPT. )(asdependenciy t i T new, lk i J i \ {l 0, l mi } : (C i k = 0 depi k arri k > 0) (arrk i = depi k 1 + i (k 1) k + Γ i arrk+1 i = depi k + i k (k+1) + Γ i) (3.4.15) En la Figura 3.13 se puede ver un ejemplo de la aplicación de la demora Γ i en el tiempo de recorrido de un tren t i por una parada no prevista en lk i. l1 l1 ik Conflicto ticrucetj l1 lik tj l1 l1 ik SolucióntiiAplicación tjdedemorai 0i X + Γ Γ + Γ = likik l1 likik + Solución Paradatécnicadet ti Cik (tiempo) Figura 3.13: Un ejemplo de aplicación de demora por parada no prevista Restricciones Comerciales A continuación se describen las restricciones en que permiten establecer en el horario de un tren las condiciones del servicio que se ofrece al cliente. C 12 - Intervalo de Salida: por cada tren se establece un intervalo de tiempo al cual debe pertenecer su instante de salida inicial. La expresión define formalmente esta restricción. t i T new : I i L dep i 0 I i U (3.4.16) Todo tren t i, tal que t i T new, debe partir de su estación origen l0, i en un instante de tiempo perteneciente al intervalo de salida inicial [I i L, I i U]. Este intervalo es especificado por cada tren t i T new.

129 3.4. Formulación del Problema como un CSOP 99 C 13 - Intervalo de Llegada: por cada tren se especifica un intervalo de tiempo al cual debe pertenecer su instante de llegada. La expresión define esta restricción formalmente. F i L arr i m i F i U (3.4.17) Todo tren t i, tal que t i T new, debe llegar a su estación destino l i m i, en un instante de tiempo perteneciente al intervalo [F i L, F i U], el cual es definido por cada tren t i T new. C 14 - Retraso máximo: por cada tren se establece el máximo retraso permitido con respecto a su tiempo de recorrido ideal. Considerando que t i T new, el tiempo que emplea t i en completar su recorrido J i, desde su estación origen l i 0 hasta su estación destino lm i i está limitado por el retraso máximo, Di max, establecido con respecto a su tiempo de recorrido ideal τ i. El tiempo de recorrido ideal τ i es el mínimo tiempo que puede emplear t i para completar su recorrido desde su estación origen hasta su estación destino cumpliendo con el tiempo de recorrido establecido por cada tramo, y con la parada comercial especificada por cada dependencia. Así, t i demora τ i unidades de tiempo en realizar su recorrido si y solo si no realiza parada técnica alguna durante el mismo. La expresión define el tiempo de recorrido ideal para t i. τ i = m i 1 j=0 Teniendo en cuenta que Λ i = arr i m i dep i 0 i j j+1 + C i j (3.4.18) es el tiempo empleado por t i en realizar su recorrido J i, satisfaciendo todas las restricciones en C, medimos el retraso de este tren con respecto a su tiempo ideal de recorrido según la expresión ( t i ) Tnew (D i = Λ i τ i τ i ) (3.4.19) La restricción C 14 determina que el retraso de cada tren con respecto a su tiempo ideal de recorrido no puede ser mayor a Di max. Esta restricción es

130 v1sali 0i Optimizar y Planificar Horarios para Trenes, un problema CSOP C21i12v22i233ii34v34i45v45i56 l3i l0ii definida mediante la expresión t i T new : D i Di max (3.4.20) l4i l1i l2iv1 dep0i C4i = + + = = + = + l5i v2paradatecnica C2i ParadaTecnica l6 Mi v1 v23v3v4c5i C4iParadaTecnica v4 idepi C5i = Λ ici Ci C Ci arr 0 = 6 Ci arr6i Figura 3.14: Retraso del Tiempo de Recorrido Real con respecto al Tiempo Ideal del mismo tren En la figura 3.14 se muestra la posición del tren t en función del tiempo en dos situaciones distintas, en la primera, se asigna un horario al tren de tal forma que su tiempo de recorrido sea el ideal, sin considerar el resto de trenes en T (línea más clara), y en la segunda situación, se asigna un horario al tren t satisfaciendo todas las restricciones en C (línea más oscura). En el segundo caso el tiempo de recorrido es mayor debido a las paradas técnicas necesarias para satisfacer ciertas restricciones. Pues bien, la restricción sobre el Retraso Máximo limita el exceso que pueda tener el tiempo de recorrido dado por un horario válido sobre el tiempo de recorrido ideal del mismo tren. C 15 - Salidas Periódicas: En un problema OPT pueden ser especificados 0 N Tnew 2 subconjuntos de T new, disjuntos entre si. Cada subconjunto es

131 3.4. Formulación del Problema como un CSOP 101 especificado con el objetivo de identificar a los trenes, cuyos instantes de salida deben cumplir con determinadas condiciones, cuando se trate de salidas consecutivas de una misma estación. A cada subconjunto denominamos grupo G i, 1 i N. Cada grupo G i tiene asociado los siguientes atributos: Intervalo del Periodo. Por cada grupo G i es determinado un intervalo de tiempo [P i L, P i U], el cual define los valores válidos para el periodo de tiempo que debe existir entre las salidas de trenes consecutivos pertenecientes a G i, y Estaciones con Periodo. Considerando que J i es el recorrido de los trenes en G i, S periodoi es el conjunto de estaciones, subconjunto de J i, en las cuales debe cumplirse un periodo de tiempo determinado entre las salidas de los trenes consecutivos pertenecientes a G i. En un problema puede ser especificado más de un grupo para permitir establecer diferentes valores a sus correspondientes atributos. Además en un mismo problema OPT pueden existir trenes con diferentes recorridos o diferentes sentidos de viaje, por lo tanto, aunque compartan valores para sus atributos, deben ser agrupados en subconjuntos distintos. Si N > 0, cada grupo G i en OPT, siendo 1 i N, debe satisfacer la restricción C 15 C, la cual es definida mediante la expresión Si N = 0, entonces C 15 / C. t x G i, t y G i, l i k S periodo i : (dep t y k > dept x k ( t G i : dep t k > dept x k dep t k < dept y k )) P i L dep ty k dept x k P i U (3.4.21) En la Figura 3.15 se describe una instancia del problema OPT, en la cual se han especificado dos grupos de trenes. Los trenes cuyo recorrido en función del tiempo está representado por líneas oblicuas continuas, forman el grupo G 1. El grupo G 2 está formado por los trenes cuyo recorrido en función del tiempo está dado por líneas oblicuas de puntos. Los trenes pertenecientes a

132 102 l2 (Y) asdependenci k P1 P1 P1 P1 P1 P1 P1 3. Optimizar y Planificar Horarios para Trenes, un problema CSOP l4 l5 l6 l3 k l7 + P2 P2 P2 P2 P2 P k+ + Figura 3.15: Dos grupos de trenes, cuyas salidas iniciales deben satisfacer un determinado periodo de tiempo lk l1 + tiempo(x) G 1 parten de su estación inicial cada P 1 unidades de tiempo, y los trenes de G 2, cada P 2 unidades de tiempo, es decir [P 1, P 1 ], y [P 2, P 2 ] son los intervalos de periodo para G 1 y para G 2, respectivamente. En esta instancia de OPT se exige el periodo de tiempo entre las salidas de trenes consecutivos únicamente en las estaciones iniciales del recorrido considerado. Es por ello que se considera factible el instante de salida del último tren del grupo G 2 de la estación l k+1. El tren sale en cuanto puede y no espera hasta satisfacer el periodo de tiempo de salida P 2, ya que en dicha estación no es requerida la periodicidad en salida para los trenes que pertenecen a G 2. C 16 - Parada Comercial: cada tren t i, que pertenezca al conjunto T new, debe permanecer en cada dependencia lj i de su recorrido, por lo menos Ci j unidades de tiempo. El valor de C i j es un valor constante, establecido por cada tren t i en T new y por cada dependencia lj i de su recorrido. Si Ci j > 0 significa que

133 3.4. Formulación del Problema como un CSOP 103 t i requiere realizar operaciones comerciales en la dependencia lj i, por ejemplo: el ascenso y descenso de pasajeros. Siendo, J i = {l0 i, li 1,.., li m i } el recorrido correspondiente al tren t i, la expresión modela la restricción C 16 C. t i T new, l i j J i \ {l i 0, l i m i } : dep i j arr i j C i j (3.4.22) Función Objetivo Habiendo descrito en qué consisten las componentes X, D y C del problema OPT= (X, D, C, F C), resta por definir la componente F C. Para ello, empezaremos por considerar la definición dada en [32]. Un problema de optimización de restricciones es una red de restricciones (X, D, C) aumentada con una función de optimización global F. Considerando que: X = {x 1,..., x n }, F 1,..., F l son componentes funcionales que retornan valores reales, definidos sobre los ámbitos Q 1,..., Q l, Q j X, y ā = (a 1,..., a n ), donde a i está en el dominio de x i. La función de optimización global F es definida por l F (ā) = F j (ā) j=1 donde F j (ā) significa F j aplicada a las asignaciones en ā restringidas al ámbito de F j. Esto es F j (ā) = F j (ā[q j ]). La componente F C = {F Q1,..., F Ql } es un conjunto de componentes de optimización, adicional a la red de restricciones (X, D, C). Cada función de optimización F Qi está definida sobre el ámbito Q i = {x i1,..., x il }, F Qi : l j=1 D i j Reales +. En el problema OPT, hemos considerado tres funciones, F 1, F 2, y F 3 como los elementos del conjunto F C, cuyos ámbitos son Q 1, Q 2 y Q 3, respectivamente. A continuación especificamos cuáles son las variables de X que corresponden a cada uno de los ámbitos considerados en OPT. Q 1 = X I, es el conjunto de variables del problema correspondientes al horario de los trenes que viajan en sentido ida. Considere que X I = {x j \(x j = arrk+1 i x j = dep i k ) t i T newd lk i J i \ {l mi }}

134 Optimizar y Planificar Horarios para Trenes, un problema CSOP Q 2 = X V, es el conjunto de variables del problema correspondientes al horario de los trenes que viajan en sentido vuelta. Considere que X V = {x j \(x j = arr i k+1 x j = dep i k ) t i T newu l i k J i \ {l mi }} Q 3 = X, es el conjunto de variables que representan el horario de los trenes pertenecientes a T new. La componente F C del problema OPT es definida como F C = {F 1, F 2, F 3 }, F 1 (ā) = F 1 (ā[x I ]), F 2 (ā) = F 2 (ā[x V ]) y F 3 (ā) = F 3 (ā[x]). Considerando que ā = ā I ā V, donde ā I cada variable x i X I, y ā V es el conjunto de valores asignados a es el conjunto de valores asignados a cada variable x i X V, las funciones F 1 y F 2 son definidas por las expresiones y , respectivamente. δ(ā I, i ) t i Tnew F 1 (ā I ) = D T newd (3.4.23) La función F 1 mide el retraso promedio de los trenes que viajan en sentido ida. δ(ā V, i ) t i T newu F 2 (ā V ) = (3.4.24) T newu La función F 2 mide el retraso promedio de los trenes que viajan en sentido vuelta. La asignación ā dir, i = (a i1,..., a ini ) indica que el valor a ij ha sido asignado a la variable x ij, la cual a su vez corresponde al instante de llegada o al instante de salida de un tren t i en una determinada dependencia de su recorrido. Se considera que el tren t i viaja en sentido dir (dir = ida o dir = vuelta). Es decir, ā dir,i representa un horario factible asignado a un tren t i T new. A partir de un horario factible, la función δ(ā dir, i ), mide el retraso del tren t i con respecto al tiempo de referencia Γ i ref. El tiempo de referencia es calculado por cada tren como el mínimo tiempo que emplearía t i para ir desde l0 i hasta li m i si los únicos trenes en la línea considerada fueran {t i } T C y todas las restricciones en C fueran satisfechas. Es decir, para calcular el tiempo de referencia de un tren t i, se ignora el resto de trenes nuevos T new \ {t i }. Luego el retraso promedio de un tren con respecto a su tiempo de referencia Γ i ref es definido por la expresión δ(ā dir, i ) = arri m i dep i 0 Γ i ref Γ i ref p i (3.4.25)

135 3.5. El problema OPT, un problema de Scheduling tipo Job Shop 105 Siendo E(ā) = F 1 (ā I ) + F 2 (ā V ), la función F 3, definida por la expresión , mide la desviación standard de los retrasos promedios por sentido (F 1 y F 2 ) con respecto al retraso promedio total (E). F 3 (ā) = [F1 (ā I ) E(ā)] 2 + [F 2 (ā V ) E(ā)] 2 2 (3.4.26) Habiendo especificado en qué consiste cada función de optimización en el problema OPT, definimos su función de optimización global como F (ā) = ω exc (F 1 (ā I ) + F 2 (ā V )) + ωdesv F 3 (ā) (3.4.27) Tanto el retraso promedio de los trenes que viajan en sentido ida como el retraso promedio de los trenes que viajan en sentido vuelta es multiplicado por un valor constante ω exc. Este valor corresponde al peso dado en la función de optimización global al retraso promedio de los trenes. Es un valor especificado para el problema y puede ser definido por cada instancia del mismo. El valor ω desv corresponde al peso asignado a la función F 3 en la función de optimización global. Es un valor definido por cada instancia del problema OPT. Luego, la tarea de optimizar, consiste en hallar una asignación factible ā o tal que F (ā o ) = mināf (ā) El problema OPT, un problema de Scheduling tipo Job Shop Según hemos visto en el Capítulo 2, un problema de scheduling tipo Job Shop posee determinadas características, que lo distinguen como un tipo de problema. En esta sección identificamos estas características en el problema que hemos definido en este capítulo como marco de trabajo de la tesis. En el problema OPT un trabajo consiste en el recorrido completo que lleva a cabo un tren. Las operaciones que forman parte de un trabajo en OPT consisten en pasar por estaciones y recorrer tramos entre estaciones. Para llevar a cabo cada operación es necesario utilizar determinados recursos, que en este caso son las vías en la estación, o las vías en el tramo, según el tipo de operación que se trate.

136 Optimizar y Planificar Horarios para Trenes, un problema CSOP El orden entre las operaciones de un mismo trabajo, lo determina el recorrido de cada tren y constituyen las relaciones de precedencia de un problema de scheduling tipo Job Shop. El tiempo de procesamiento de una operación está dada por el tiempo que un tren permanezca en una estación o por el tiempo que un tren emplee en recorrer un tramo de su recorrido. Los trenes que viajan en sentido ida utilizan los recursos siguiendo un determinado orden, y los trenes que viajan en sentido vuelta utilizan una parte o los mismos recursos, pero siguiendo un orden inverso. Las restricciones definidas en la sección determinan las condiciones en las cuales se considera factible la utilización de los recursos, considerando el conjunto de operaciones del problema. Así, las restricciones de cruce regulan el uso de aquellos recursos que son utilizados por operaciones pertenecientes a trabajos que siguen un orden inverso. Dichas operaciones no podrán utilizar al mismo tiempo estos recursos e incluso deberá existir un margen de tiempo, considerado como un margen de seguridad entre el inicio de las operaciones sobre el mismo recurso (tiempo de recepción) así como entre el intercambio de recursos entre las dos operaciones (tiempo de expedición). Esto es equivalente a establecer un orden de prioridades entre operaciones que pertenecen a diferentes trabajos sobre la utilización de un mismo recurso. Por otro lado existen restricciones sobre la utilización de recursos entre operaciones que siguen un mismo orden. Existen recursos que permiten que más de una operación lo utilice al mismo tiempo siempre y cuando exista una determinada cantidad de tiempo entre el inicio de una y otra, así como entre el instante de finalización de las mismas (sucesión automática). Otros recursos no permiten que dos operaciones lo utilicen simultáneamente (sucesión manual). Las estaciones son consideradas centros de trabajo donde existen varias máquinas que pueden ser utilizadas en paralelo (vías). En estos centros de trabajo no está permitido que se lleven a cabo simultáneamente más operaciones que el número máquinas disponibles (restricción que determina la capacidad limitada de cada estación). Las operaciones de mantenimiento, o el horario de cierre de una estación son otras de las restricciones que limitan el periodo de tiempo que un recurso puede ser utilizado por una operación, o al menos limitan los periodos de tiempo en los cuales dichos recursos pueden ser utilizados teniendo en cuenta su capacidad total.

137 3.5. El problema OPT, un problema de Scheduling tipo Job Shop 107 En este problema de scheduling tipo Job Shop la función objetivo consiste en minimizar el retraso promedio de cada trabajo con respecto a un tiempo de referencia y la diferencia entre el retraso promedio correspondiente a los trabajos que siguen un orden en la Operación Trabajo Propiedade utilización de los recursos y el retraso correspondiente a los trabajos que siguen el orden Recurso de Scheduling s origen- un tren inverso. A cada Vías Visita al unadependenci Tren criterio ferroviari Problemase as le asigna oen Shop peso. Centro Relación debe Tramo Dependenci visitar un atren tramos Inicio Restricció -Alcance -Cruce Sucesión Manualdependencia (Due FinalizaciDate) Restriccio aplicación de (necesaria Preparació (ReleaseTrabajo Trabajo SalidasPeriódicas (SetupTime) nesrecurso ) dominiode -RetrasoMáximo Parada Demora Adelantami Automática Llegada Cierre Comercial Expedición Recepción Expedición Recepción ento nto Función Objetivo de promedio - prevista retrasovuelta deun tipojobshop problema detrabajo deprecedencia deun ón n decapacidad deun lasolución spara n del Adicionales. en lafactiblidad el -Recorridodeun deun Correspondencia Tren descheduling tramoadestinorealizadopor dependencias deopt un tipojoba Secuenciaordenadadedependenciasque Capacidaddeuna -Sucesión Intervalode Tiempode Tiempode BandasdeMantenimie Horariode -Minimizar Minimiar trenesqueviajan delos por retrasopromediodelos diferencia paradano trenesqueviajan entreel sentidoida retrasopromedio en y Trenes el sentido Figura 3.16: Correspondencia entre las propiedades de un Job Shop y el Problema OPT En la Figura 5.7 se resumen las propiedades de un problema de Scheduling tipo Job Shop identificando la correspondencia de las mismas con las propiedades del problema OPT.

138 Optimizar y Planificar Horarios para Trenes, un problema CSOP 3.6. Conclusiones En este capítulo se ha descrito y formalizado el problema de Optimizar y Programar Horario para Trenes, OPT, como un problema del tipo CSOP tal que OPT= (X, D, C, F C) [32]. Las variables, dominios, restricciones y funciones de optimización son definidas mediante los conjuntos X, D, C, y F C, respectivamente. El problema es definido por una determinada línea ferroviaria (L), un determinado conjunto de trenes (T new ), cuyo horario debe ser optimizado, y un determinado conjunto de trenes (T C ), cuyo horario es conocido y no puede ser modificado. Cada uno de estos elementos tiene asociado un conjunto de atributos (recorrido, tipo de bloqueo, número de vías,...,etc), cuyos valores son conocidos, y por lo tanto tratados como constantes en el modelo que formula el problema OPT. En dicho modelo, cada variable x i en X hace referencia al instante de salida o de llegada, de un tren t i T new en una determinada dependencia de su recorrido. El valor correspondiente a cada variable del conjunto X será por lo tanto una unidad de tiempo, lo cual a su vez establece la granularidad, siendo el conjunto de números naturales el dominio correspondiente a cada variable del problema. Las restricciones del problema OPT han sido especificadas de tal forma que el conjunto de horarios resultante sea viable en una línea ferroviaria, teniendo en cuenta su infraestructura, el tráfico en la misma, las condiciones de seguridad y de mantenimiento, así como los requerimientos comerciales establecidos para los trenes considerados. Finalmente, se han definido las funciones de optimización que forman el conjunto F C, las cuales determinan que el coste global del problema OPT consiste en medir de forma ponderada el retraso promedio de los trenes en T new y la desviación que existe entre el retraso promedio de los trenes que viajan en un sentido y el retraso promedio de los trenes que viajan en sentido opuesto, con respecto al retraso promedio total. A partir del modelo resultante se deduce que la solución del problema OPT consiste en hallar un instante de salida y un instante de llegada para cada tren t i en T new por cada dependencia de su recorrido. La asignación realizada al conjunto de variables X debe satisfacer el conjunto de restricciones C y optimizar la función de optimización global F definida por F C para OPT. Teniendo en cuenta la instancia del CSOP que nos ocupa, esto quiere decir que la solución resultante consista en una Programación de Horarios factible que optimice la utilización de los recursos

139 3.6. Conclusiones 109 empleados. En el Capítulo siguiente se presenta la revisión de métodos propuestos en la literatura para resolver problemas del tipo Programación de Horarios para Trenes, junto con el análisis que hemos realizado de cada uno. Posteriormente, en el Capítulo 5 se describe un nuevo método, el que proponemos en esta tesis para resolver problemas del tipo OPT de forma eficiente, adaptando ciertas características de métodos ya existentes e incluyendo nuevas, que ayuden a satisfacer el conjunto de restricciones y a obtener una solución en el mínimo tiempo posible.

140

141 Capítulo 4 Revisión de Métodos para la Generación de Horarios 4.1. Introducción En este capítulo revisamos aquellos modelos y métodos de solución, publicados en la literatura, correspondientes a la formulación y solución de problemas de generación y optimización de horarios, y en particular sobre los que aparecen en el contexto de horarios de trenes. Proporcionamos las características que hemos identificado en estos trabajos, junto con un análisis de los mismos, indicando los inconvenientes que hemos encontrado en aplicar dichos métodos al problema OPT. Hoy en día existen numerosos trabajos publicados, pertenecientes a diferentes áreas de investigación (Ciencias de la Computación, Investigación de Operaciones, Matemática, Inteligencia Artificial), que proponen métodos o técnicas para resolver alguno de los aspectos que forman el proceso de planificación ferroviaria. Los trabajos que se realizan en este contexto se hallan motivados no solo por el desarrollo de una teoría válida sino también por la posibilidad de llevarla a la práctica en un sector que requiere la aplicación eficiente de métodos de optimización. La reciente liberación del sector público ferroviario en muchas partes del mundo ha incrementado en la conciencia de este sector la necesidad de ofrecer a los clientes un servicio de calidad. Bajo la presión por mejorar, se han desarrollado herramientas informáticas para ayudar a los planificadores de horarios a realizar su trabajo más eficientemente y más rápidamente. En este contexto, la planificación de horarios juega un papel 111

142 Revisión de Métodos para la Generación de Horarios fundamental en el manejo y operación de un sistema de transporte público. Actualmente, existen herramientas informáticas que ofrecen soporte efectivo para la construcción de horarios. Muchas de las herramientas propuestas son de la forma qué pasa si, en las cuales el objetivo es obtener soluciones factibles rápidamente más bien que obtener una solución óptima. La generación automática de horarios factibles aún sigue siendo una tarea que consume mucho tiempo, de modo que la mayoría de las herramientas existentes para generar un horario operacionalmente viable en realidad son herramientas que modifican un horario particular y verifican la presencia o no de conflictos a partir de dicha modificación, como puede verse en el trabajo de Liebchen y Möhring [83]. La planificación de horarios de trenes es una parte del proceso general de planificación de sistemas de tráfico y que generalmente se divide en varias etapas que deben ser completadas antes de que el scheduling de trenes pueda ser creado. Estas etapas son: Planificación de la Red, Planificación de la Línea, Planificación del horario de trenes, Planificación de los vehículos y el personal. Los problemas relacionados con el tráfico ferroviario son problemas de elevada complejidad, pertenecen a la clase de problemas NP-hard y por lo tanto, están justificados los esfuerzos en el desarrollo de nuevas técnicas con heurísticas exactas y eficientes. Un análisis de algunos modelos y métodos aplicados para resolver este tipo de problemas es presentado por Bussieck et. al en [17] y por Cordeau et. al en [29]. En la década de los 80, la aplicación y desarrollo de modelos matemáticos fue dificultoso debido a las capacidades computacionales insuficientes y a los problemas de reunir y organizar datos relevantes, tareas que muchas compañías ferroviarias no podían abordar. Durante la última década, el uso de modelos de optimización matemática para planificación de transporte ferroviario y por lo tanto para la computación automática de líneas, horarios, personal, etc. se ha incrementado significativamente (una revisión es realizada por Cordeau et. al en [29]). La situación ha cambiado considerablemente durante los últimos años. El incremento en la velocidad de procesadores en ordenadores y el progreso en métodos matemáticos ha permitido el desarrollo y la solución de instancias de problemas más realistas [16].

143 4.2. Estado del Arte en la Formulación del Problema Estado del Arte en la Formulación del Problema El problema de asignar y optimizar horarios para trenes consiste fundamentalmente en hallar un horario para un conjunto de trenes, el cual debe ser factible según un determinado conjunto de restricciones y debe buscar la optimización de criterios modelados mediante una función objetivo. La especificación de este problema puede variar en cuanto a los elementos que forman el conjunto de restricciones, los criterios considerados en la función objetivo, y la infraestructura ferroviaria subyacente al problema. En la década de los 70, Szpigel [112] fue el primero en formular el problema de scheduling ferroviario en vía única como un problema de programación matemática disyuntiva. Además de la formulación, Szpigel también fue el primero en indicar la similitud entre el problema de scheduling ferroviario sobre vía única y el problema de job shop scheduling (cuando la velocidad del tren es fijada a lo largo del tramo). Siguiendo la formulación disyuntiva de Szpigel, Jovanovic [71] presentó una formulación matemática para el problema de planificar trenes con el objetivo de minimizar el coste ponderado de los retrasos totales. Jovanovic restringió su algoritmo a resolver la instancia del problema en el cual existe un ordenamiento pre establecido entre los trenes que viajan en un mismo sentido, evitando así el adelantamiento entre ellos, lo cual simplifica de gran forma el problema en cuanto a número de soluciones posibles se refiere. La forma en que los trenes son manejados a lo largo de su viaje tiene un gran impacto en el consumo de combustible que realicen. A la luz de esto, Kraay et. al [75] propusieron un modelo de programación entera mixta no lineal más detallado. La red considerada estaba compuesta por tramos de vía única. Además de mantener los retrasos al mínimo, la función objetivo apuntaba a regular la velocidad de los trenes para minimizar el consumo de combustible a lo largo del recorrido del tren. La función de costo de consumo de combustible propuesta por ellos está relacionada a la cantidad de trabajo para mover el vehículo sobre un tramo y toma en cuenta: la inclinación del tramo, la resistencia del tramo, la velocidad y masa del vehículo. En su modelo la velocidad del vehículo es tratada como una variable. Una mejora sobre el trabajo de Jovanovic combinado con el modelo de Kraay

144 Revisión de Métodos para la Generación de Horarios para ahorrar combustible, es presentado por Higgins, [64]. Su modelo considera restricciones tales como: un retraso máximo para los trenes, prioridad entre ellos, mínimo tiempo de distancia entre trenes que viajan en el mismo sentido. A diferencia del trabajo de Jovanovic, el modelo de Higgins toma como parte del modelo la restricción para evitar alcances. Se fija un límite inferior y superior para la velocidad del tren en cada tramo de su recorrido. Esta restricción limita el tiempo de viaje del tren en cada tramo, y así en el trayecto completo. Como en el trabajo de Jovanovic todas estas restricciones son implementadas como parte del método resolvedor, es decir las restricciones se verifican a medida que se construye el horario de cada tren. La formulación de este tipo de problema es llevada a cabo en la mayoría de los trabajos estudiados mediante programación entera mixta no lineal (existen restricciones expresadas mediante ecuaciones no lineales, Kray et. al [75], Higgins et. al [64], [65]) donde las variables de decisión binarias son utilizadas para indicar el orden en el cual un tramo es utilizado tanto por trenes consecutivos como por trenes que viajan en sentidos opuestos (tramo formado por una vía para ambos sentidos), o mediante programación entera lineal (Carey [23], [22]) donde se utilizan variables de decisión entera para indicar: si un determinado enlace (punto de la red ferroviaria donde n líneas diferentes se unen, o se bifurcan, comúnmente se denominan n-furcaciones) forma parte o no de la ruta de un determinado tren, si un tren i precede a un tren j en un enlace, si está permitido que un tren i preceda a un tren j en un enlace. Otro de los formalismos empleados son los grafos disyuntivos, (Caprara et. al [20], [21], Brucker y Strotmann [15]). En estos trabajos se considera el problema de programar horario para trenes como un Job Shop, donde los nodos representan las operaciones y los arcos son divididos en dos conjuntos, arcos conjuntivos (restricciones de precedencia) y arcos disyuntivos que restringen la utilización de cada recurso a una única operación por vez. Algunas restricciones, tales como: C 1 - Tiempo de Sucesión, C 8 - Tiempo de Recorrido, C 16 - Parada Comercial. son comunes a todos los trabajos estudiados. Restricciones también consideradas en el problema OPT, descritas en el Capítulo 3.

145 4.2. Estado del Arte en la Formulación del Problema 115 El resto de restricciones sin embargo no son consideradas por todos los trabajos. Al tratarse de un problema de optimización, existen restricciones que agregan complejidad al problema porque hacen que aumente el número de soluciones y por ende el espacio de soluciones donde se debe buscar la mejor solución. Un ejemplo de este tipo de restricción es la que evita el cruce en un tramo de vía única entre trenes que viajan en sentido opuesto (restricción C 5 - Cruce). Algunos de los trabajos estudiados, como por ejemplo: Carey [23] y Caprara et. al [20], [21], no incluyen esta restricción, es decir asumen que en cada vía sólo circularán trenes del mismo sentido, por lo tanto en un mismo instante de tiempo dos trenes viajando en sentido opuesto podrán ocupar el mismo tramo. No será necesario decidir cuál de los dos deberá esperar, disminuyendo así considerablemente el número de posibles soluciones del problema. Evitar alcance entre dos trenes que viajan en el mismo sentido (restricción C 6 - Alcance) también puede ser una restricción que contribuya a la complejidad exponencial de este problema. Ya que si se permite que un tren adelante a otro en una estación existen dos formas de evitar que un tren alcance a otro consecutivo en el tramo. En el trabajo de Cai y Goh [18] se evita el alcance por considerar que todos los trenes tienen el mismo recorrido y todos los trenes tienen la misma velocidad en cada tramo de sus correspondientes recorridos. Por lo tanto, en este caso la complejidad es menor. Otras restricciones aumentan la complejidad temporal correspondiente a la generación de cada solución, ya que suponen mayor número de operaciones que deben ser deshechas antes de hallar una asignación válida. Como ejemplo: C 2 - Dependencias con Capacidad Limitada, C 3 - Horario de Cierre, C 4 - Bandas de Mantenimiento En el problema OPT el número de vías en cada dependencia es un parámetro del problema, es un valor finito mayor o igual a uno. Durante la generación de una solución en la cual se debe satisfacer la restricción C 2 deberá deshacerse el valor asignado como instante de llegada a un tren en el caso que dicho instante suponga la llegada del tren a una estación sin vías disponibles. Ciertos trabajos, Kraay et.

146 Revisión de Métodos para la Generación de Horarios al [75], Cai y Goh [18], Higgins et. al [64], [65], Caprara et. al [20], consideran como máximo dos el número de vías en cada estación. Otros trabajos consideran el número de vías como un parámetro (número de vías finito mayor a uno) del problema Cai y Goh [18], Carey [23], Caprara et. al [21]. Tener en cuenta las operaciones de mantenimiento llevadas a cabo durante un intervalo de tiempo implica en el trabajo de Caprara et. al [21] prohibir que un tren llegue a una estación del tramo en un instante perteneciente a dicho intervalo de mantenimiento. En los demás trabajos estudiados esta restricción no es considerada. En nuestro trabajo también se considera esta restricción, pero la diferencia con la formulación realizada en [21] está en el caso que la operación de mantenimiento se lleve a cabo en un tramo en el que existe más de una vía. En ese caso, en el problema OPT se utiliza una de las vías para circulación quedando el tramo de vía doble convertido en un tramo de vía única durante el intervalo de tiempo que dure la operación de mantenimiento. Esta consideración agrega mayor complejidad, ya que en ciertos intervalos de tiempo una sección de vía se volverá vía única, si era de vía doble, y fuera de este intervalo seguirá siendo vía doble. En el caso que la vía tenga una sola vía, entonces el comportamiento es el mismo que el presentado en [21]. En cuanto a la función objetivo se considera generalmente minimizar el retraso promedio de los trenes [75], [64], [65]. En [64], [65], otro criterio utilizado en la función objetivo es el costo de las operaciones. En [75] cada tren tiene una prioridad por lo que la suma de retrasos en la función objetivo es ponderada, en este mismo trabajo se considera además minimizar el consumo de combustible como otro de los criterios utilizados en la función objetivo. En [23], [22] la función objetivo del problema consiste en minimizar la suma de costos asociados al instante de salida, al instante de llegada, al tiempo de recorrido, y al tiempo de parada, por cada tren y cada enlace utilizado en la ruta del mismo. En el problema OPT la función objetivo consta de dos criterios, uno de ellos consiste en minimizar el retraso promedio de los trenes con respecto a un determinado tiempo de referencia y el otro consiste en minimizar la diferencia de retraso promedio entre los trenes de un sentido y otro. Cada criterio tiene un peso, el cual es un parámetro más del problema, según sea el objetivo más importante que se persigue con la solución del problema. En ciertos trabajos como en [23] y [22] el problema de asignar horarios viene

147 4.2. Estado del Arte en la Formulación del Problema 117 acompañado del problema de encontrar una ruta para cada tren, esto es secuencia de estaciones a través de más de una línea ferroviaria unidas por estructuras denominadas nodos, así como la elección de plataformas a utilizar en cada estación de la ruta seleccionada. En otros trabajos sin embargo, [75], [18], [64], [65], [20], [21], al igual que en OPT se utiliza una determinada línea ferroviaria, es decir una determinada secuencia de estaciones, en la que no existen n-furcaciones y el recorrido de todos los trenes consiste en un sub conjunto de dicha secuencia. El objetivo es optimizar el horario de trenes que se desean agregar en una determinada línea ferroviaria. La ruta de cada tren ya está definida. Otra de las características común en los trabajos mencionados es la inexistencia de trenes en circulación previamente. Sin embargo, en la práctica es habitual la consideración de un conjunto de trenes previamente planificados cuyos tiempos de llegada/salida deben respetarse cuando se considere agregar nuevos trenes a la misma línea. El objetivo sería entonces encontrar una planificación óptima para los nuevos trenes que satisfaga el conjunto de restricciones considerado y que además no modifique el horario de los trenes planificados previamente. Esta posibilidad es contemplada en OPT y por su parte también la consideran Caprara et. al en [21]. Otra aproximación utilizada para formalizar el problema es la programación de restricciones. Concretamente en el trabajo de Chiu et. al [27], se describe una estrategia de rescheduling para ser usada en PRACOSY (People s Republic of China Railway Computing System), un sistema para la automatización de los ferrocarriles chinos. PRACOSY es un sistema interactivo el cual provee al usuario con la posibilidad de sugerir cambios a un dado horario. Estos cambios son considerados por el sistema de rescheduling como restricciones adicionales para el problema. El principal objetivo de este sistema es proveer una solución factible al usuario. Cuando esto no es posible por solo propagar las restricciones del problema, entonces se utiliza un algoritmo de primero en profundidad para buscar una solución. El usuario puede interrumpir el proceso de búsqueda en cualquier momento, por ejemplo en el caso que considere excesivo el tiempo empleado para obtener una solución factible. En ese caso el usuario deberá reconsiderar sus cambios al horario. Una topología general de la red es considerada por el sistema, y seis restricciones son manejadas por el sistema: Mínimo Tiempo de Recorrido,

148 Revisión de Métodos para la Generación de Horarios Tiempo de Sucesión, Tiempo de Recepción, Diferencia entre Instantes de Salida, Evitar Alcances, Evitar Cruces, Parada Comercial. Otro trabajo relacionado es el de Kreuger et. al. [76]. Su trabajo está basado en utilizar Programación Lógica de Restricciones para resolver el problema de scheduling de trenes sobre vía única. Lo considera un problema de scheduling tipo Job Shop. Su trabajo tiene como objetivo encontrar un scheduling factible por eliminar conflictos entre trenes que son considerados en su problema. No agrega otras restricciones tales como capacidad de cada estación, horario de cierre en las mismas, tiempos de separación entre trenes que llegan y salen de una misma estación, que agregan mucha complejidad al problema y hacen que el conjunto de horarios entregados como solución tengan una probabilidad mayor de ser operacionalmente válidos. En su trabajo tampoco se indica la cantidad de conflictos que pueden ser resueltos generalmente, por lo que no se tiene una medida del tamaño de la red y cantidad de trenes considerados. Tampoco se establece un límite para la cantidad de tiempo que cada tren deba esperar en una estación para evitar un conflicto, ya que en la función objetivo este tiempo no está limitado. Análisis de los Modelos En la mayoría de los trabajos estudiados se ha utilizado la programación matemática para modelar el problema de programar horario para trenes, utilizando modelos MIP (lineal o no lineal) o modelos ILP. En cada uno de estos trabajos se establece el conjunto de restricciones que se considera para decidir si una asignación es o no factible. De este conjunto de restricciones depende en gran medida la utilización o no de este tipo de formulación.

149 4.2. Estado del Arte en la Formulación del Problema 119 En nuestro caso, debido al conjunto de restricciones considerado en el problema OPT, la utilización de un modelo matemático implica un gran esfuerzo en la representación de ciertas restricciones (Bandas de Mantenimiento, Horarios de Cierre según el tipo de cierre el comportamiento esperado es distinto, Capacidad limitada en una estación, Demora por parada no prevista, Sucesión Manual implica que la siguiente estación debe estar abierta). Además de encontrarnos con una expresividad limitada en estos modelos, modelar estas restricciones implicaría la utilización de variables de decisión binarias necesariamente. Luego, el esfuerzo que conlleva expresar cada una de las restricciones mediante un modelo matemático no se justificaría si no se utiliza un método para resolver el modelo que utilice alguna de las propiedades matemáticas, tales como relajación de Lagrange, un procedimiento de generación de columnas, planos de corte, etc. Aplicar estos métodos resulta en procedimientos menos eficientes por la gran cantidad de variables binarias que deberían ser utilizadas para modelar el conjunto de restricciones de OPT en una instancia real del problema. Consideramos que la programación de restricciones es el lenguaje que mejor se adapta a la formulación del problema OPT. Aun cuando no se utilice una técnica CSP para resolver el modelo, el lenguaje de programación de restricciones permite utilizar ciertas notaciones que ayudan a formular las restricciones más complejas teniendo así un modelo sobre el cual se puede plantear, sin ambigüedad, un método para resolver el problema subyacente. Otra de las aproximaciones utilizadas en trabajos relacionados es la representación del problema de programación de horarios utilizando un grafo disyuntivo o un grafo alternativo, Brucker y Strotmann [15]. En estos trabajos solo se representan dos tipos de restricciones, las de precedencia y las de exclusividad en el uso del tramo. No se da ninguna información acerca de cómo representar otras restricciones también consideradas en el problema OPT. En el caso que en OPT solo se consideraran restricciones de precedencia (Tiempo de recorrido) y restricciones de exclusividad en el tramo (cruce, alcance) el problema OPT podría ser representado por un grafo similar al mostrado en la Figura 4.1. En el problema OPT determinar la secuencia de operaciones en una máquina es equivalente a determinar la secuencia en la cual determinados trenes utilizarán un tramo. En la Figura 4.1 se muestra el recorrido de dos trenes en una línea ferroviaria compuesta por tres tramos, todos ellos de vía

150 estaciones 3tramo 2tramo Revisión de Métodos para la Generación de Horarios 11 a a22 22 a21 11a 12 21a31 a a1tren 2tren U V tiempo trabajo= 1tramo1 32 máquina= máquina= trabajo= 2 máquina= 1 Figura 4.1: El problema OPT como un problema tipo Job Shop única. Las actividades a ij representan el paso del tren j por el tramo i. Debido a que ambos trenes requieren pasar por los tramos 1 y 2, en el grafo de la Figura 4.1 se utilizan arcos disyuntivos para indicar que debe establecerse un orden en el uso de dichos tramos, ya que solo disponen de una vía. El problema tipo Job Shop es un problema de optimización, por lo tanto tiene una función que evalúa cada solución para indicar el nivel de optimalidad de la misma. Aunque el criterio a ser utilizado no es un criterio fijo, es decir forma parte de la formulación que se desee hacer del problema, por lo general, el makespan suele ser una medida muy utilizada para medir la optimalidad de soluciones en este tipo de problemas. En el caso del problema OPT el valor del makespan puede no aportar muchos datos acerca de la calidad de la solución entregada, por lo tanto son otros los criterios que componen la función objetivo utilizada por OPT. En la Figura 4.2 se da un ejemplo de esta situación. Dos trenes compiten por el uso de un tramo, es decir dos actividades requieren el uso de una misma máquina a la vez. En la situación 2 se propone un orden de utilización y en la situación 3 se propone un orden diferente. Según la definición de makespan dada por Pinedo [98], el valor del makespan es el mismo tanto para la solución entregada en la situación 2 como para la solución entregada en la situación 3. Sin embargo el retraso promedio es menor en la situación 2. En el problema que consideramos en esta tesis, uno de los componentes

151 estaciones 4.3. Estado del Arte - Métodos de Solución 121 estaciones makespan tiempo 1 estaciones makespan tiempo 2 makespan tiempo 3 Figura 4.2: Valor de makespan puede no ser suficiente en la función objetivo del problema OPT de la función objetivo no será el makespan, sino el retraso promedio de los trenes. Una descripción más detallada de la función objetivo utilizada en el problema OPT es dada en la Sección del Capítulo 3. El consumo de combustible es otro criterio utilizado en algunos trabajos como parte de la función objetivo. Esto es llevado a cabo regulando la velocidad de los trenes en los tramos. En el caso del problema OPT la regulación de la velocidad, esto es aceleración/desaceleración, viene dada por otras consideraciones ya fijadas en cada tramo por el usuario final Estado del Arte - Métodos de Solución Cada uno de los trabajos estudiados además de formular el problema propone un método para resolver el modelo correspondiente. Hemos agrupado estos trabajos

152 Revisión de Métodos para la Generación de Horarios según la aproximación utilizada para resolver los correspondientes modelos. En cada sub sección se proporciona una descripción de los mismos junto con un análisis que identifica sus características y si cabe, inconvenientes para aplicarlos al problema OPT Relajación Lagrangiana Caprara et. al [20] utilizan un modelo en el cual asocian multiplicadores de Lagrange a cada restricción que es relajada. Las restricciones que son relajadas corresponden a aquellas que modelan la capacidad del tramo y el tiempo de sucesión. En la función objetivo se utilizan penalizaciones Lagrangianas para las nuevas variables. El procedimiento de optimización consiste en aplicar en cada iteración un procedimiento de optimización del sub gradiente. A partir del resultado obtenido se programa el horario de cada tren, uno por vez, según el orden en el que cada tren quedó en el ranking determinado por el beneficio asociado a cada uno Branch and Bound El trabajo realizado por Szpigel, 1972 fue el primero en considerar las restricciones de cruce y alcance. El método de solución empleado estaba basado sobre programación lineal, incorporado dentro del algoritmo standard branch-and-bound para problema de scheduling de máquinas. Sin embargo, Szpigel no aplicó ninguna técnica lower-bound en su método. La eficiencia del método era pobre al resolver problemas con cinco tramos y diez trenes. Jovanovic y Harker [72] proponen el sistema SCAN I, el cual considera restricciones para evitar cruce, alcance y mantener una mínima diferencia de tiempo entre las llegadas y salidas a/de una estación. El sistema empieza por considerar un schedule propuesto, y verifica si dicho schedule incumple o no alguna de las restricciones consideradas. El problema es modelado mediante un modelo MIP y es resuelto utilizando un procedimiento branch and bound que obtiene una solución factible. No se considera ninguna función objetivo. En el trabajo presentado por Higgins et al. se propone una técnica branch and bound. Cada nodo representa un conflicto (cruce o alcance) que será resuelto al retrasar a un determinado tren de los dos que intervienen en el conflicto. Al seleccionar

153 4.3. Estado del Arte - Métodos de Solución 123 el tren a retrasar, se calcula el costo de la solución sumando al costo por retrasar los trenes seleccionados hasta el momento una estimación del costo determinado por los conflictos que faltan por resolver. Cuando todos los conflictos son resueltos se obtiene el costo de la solución. Si ese costo es mejor que el hasta ahora obtenido entonces pasa a ser el límite superior del problema. Cada vez que se selecciona un nodo 1 Inicio y se estima el costo esa solución. Si esa estimación es mayor al límite superior, entonces esa solución 2 C, 1j es abortada. Costo Estimación Realdelcosto C, 2j Estimacióndelcosto -LímiteSuperior CostoReal Mejor Solución C,i C,i Figura 4.3: Técnica branch and bound propuesta por Higgins et al. [64] Higgins et. al [64] presentan un algoritmo tipo branch and bound para resolver el problema de asignar horarios a trenes en una línea con vía única. Proponen una heurística para calcular el valor de un límite inferior, que representa el mínimo costo que podría tener resolver todos los conflictos restantes a partir de un punto de la solución. Esto sirve para estimar el costo de una solución siendo generada. Si este valor es mayor al valor del límite superior obtenido hasta entonces, esto es el valor de la mejor solución obtenida hasta entonces. Entonces esta solución debe ser interrumpida o lo que es lo mismo podar la rama del árbol. En el trabajo de Silva [110], se propone un método heurístico para decidir qué ramas podar en un método tipo branch and bound. En este trabajo se asocia el problema de programación de horarios con un problema tipo Job Shop. Considera únicamente un sub conjunto de las restricciones consideradas por OPT.

154 Revisión de Métodos para la Generación de Horarios Análisis de los Métodos matemáticos y el problema OPT La relajación de Lagrange al igual que otros métodos matemáticos como generación de columnas, branch and cut o branch and price requieren primeramente que se cuente con un modelo matemático, sobre el cual se pueda trabajar para relajar aquellas restricciones que implican alternativas de decisión. En nuestro caso existen muchas restricciones muy difíciles de ser modeladas mediante un modelo matemático, y en el caso que esto sea posible el modelo aumentaría en gran medida su complejidad debido al incremento en el uso de variables binarias. En el caso de la relajación Lagrangiana sería necesario un elevado número de multiplicadores, y hallar el valor más adecuado para cada uno significaría mucho tiempo de procesamiento, que no implicaría necesariamente obtener una solución óptima. En cada iteración existe una alta probabilidad de que el problema aumente por agregar las restricciones para hacer que el problema dual se convierta en factible, la convergencia puede ser muy lenta. Consideramos que empleando la misma cantidad de tiempo se pueden obtener mejores soluciones empleando métodos constructivos que utilicen heurísticas basadas en el conocimiento del problema para decidir entre las alternativas que existen en una programación de horarios. Aplicar el método branch and bound al problema OPT puede ser considerado como construir un árbol de búsqueda binario, donde en cada nivel se decide acerca de un conflicto que requiere una decisión entre dos alternativas (cruce, alcance). Cada decisión implica reconstruir los horarios hasta que aparezca el siguiente conflicto en el tiempo, sobre el cual debe tomarse la siguiente decisión. Cada rama de este árbol binario puede ser podada si se relajan todas las restricciones que implican decisiones binarias y se obtiene un costo superior al mejor obtenido hasta entonces. La construcción del árbol es realizada de la forma primero en profundidad de tal forma que se asegure la optimalidad sin repetir soluciones y utilizando la menor cantidad de espacio computacional. En el caso del problema OPT esto implicaría recorrer el espacio de soluciones en un orden dado por la forma en que se recorre el árbol, en este caso por utilizar una aproximación primero en profundidad.

155 estaciones tramo3 tramo2 1t2 1t t3 t Estado del Arte - Métodos de Solución 125 tiempop t1 2 Figura 4.4: Recorrido Ideal de 4 Trenes, cuyo horario se desea Programar 3t1t4 34t42 3t P t t t t t Figura 4.5: Arbol de Soluciones para la instancia P del problema OPT t t3 4 Búsqueda Beam y el Problema OPT Si modeláramos el problema OPT en función de los cruces, ordenados según el instante de tiempo en que se producen, para la instancia P del problema OPT (Figura 4.4) se obtendría el árbol de búsqueda representado en la Figura 4.5. Cada nivel k de este árbol representa al cruce que aparece en el tiempo en orden k. Los nodos pertenecientes al nivel k representan a los trenes t i involucrados en el cruce considerado en dicho nivel. Por ejemplo: en la instancia considerada en la Figura 4.4 el cruce que se produce en el menor instante de tiempo es entre los trenes t 1 y t 2. Por lo tanto en el nivel 1 del árbol existen dos nodos etiquetados t 1 y t 2 respectivamente. Seleccionar el nodo t 1 significaría retrasar al tren t 1 el tiempo mínimo hasta que t 2 libere el tramo 2. Si por el contrario se decide retrasar a t 2 hasta que t 1 libere el tramo 2, se deberá seleccionar el nodo t 2 del árbol de búsqueda. Cada vez que se resuelve un cruce por retrasar uno u otro tren, se comprueban

156 Revisión de Métodos para la Generación de Horarios otras estaciones restricciones del problema y se actualiza el estado de la instancia del problema. Así tramo2 en la Figura 4.6a se observa el estado actualizado de la instancia del problema luego de retrasar a t 1 para resolver el cruce. En la Figura 4.6b se observa el estado en tramo3 1t2 t el que quedaría la instancia considerada 4 estaciones tramo2 luego de retrasar a t 2 para resolver el primer cruce considerado. Es el estado actualizado el que se considera para determinar el siguiente cruce a resolver. tiempo tramo3 1t1 t2 t4tiempo tramo(a) tramo(b) En En t1 t3 t3 el cruce 1 espera el tren t1 el cruce 1 espera el tren t2 El árbol de búsqueda correspondiente a la instancia del ejemplo determina siete soluciones para la misma. Considerando como función objetivo el retraso promedio de los trenes, en la Figura 4.6a se muestra la mejor solución obtenida, y en la Figura 4.6b la peor solución para la instancia considerada. Como puede verse en este pequeño ejemplo la forma en que es resuelto cada cruce determina el estado en estaciones el cual se encontrará una determinada instancia. Prever cuáles serán los siguientes 2 estados de una instancia a partir de una determinada decisión es un problema muy t estaciones complejo y con un alto costo computacional si uno desea predecir un escenario lo más cercano al real. t14t4 tiempo t1 t2 t4 tiempo t3 2 3 t t t(a) Solución Optima (b) Peor Solución t t1 t3 4 t 3

157 4.3. Estado del Arte - Métodos de Solución 127 Es por ello que una búsqueda Beam en la cual el aspecto central es el procedimiento que decide qué nodos podar en cada nivel, es muy complejo de obtener en el problema OPT a menos que se opte por un procedimiento menos complejo y se arriesgue un porcentaje alto de optimalidad Búsqueda Local En el trabajo de Higgins et al. [65] se propone una heurística de búsqueda local (LSH). Antes de que la heurística sea aplicada se obtiene una solución inicial por aplicar la técnica de branch and bound publicada en [64]. A partir de la solución inicial, se construye el conjunto CR = {CR 1, CR 2,..., CR CO }, donde CR i, 1 i CO es la descripción de cómo el conflicto i ha sido resuelto, CR i = {tren retrasado, tren con derecho a via, tramo donde se produce el conflicto i}. Los conflictos de CR so numeran según el orden en el que aparecen en el tiempo; CR 1 es el primer conflicto y CR CO es el último. La heurística LSH está basada en reemplazar repetidamente la solución actual por una solución vecina mejorada. El vecindario de una solución se obtiene por desplazar un conflicto y todos los adyacentes al mismo que además tengan un tren en común. La selección de los conflictos para ser desplazados es realizada en el mismo orden que aparecen en el tiempo. El nuevo vecindario es definido como sigue: cuando se considera un conflicto particular (por ejemplo el conflicto c entre el tren de vuelta i y el tren de ida j), existen cuatro posibles movimientos. Sea DR CR el conjunto de conflictos restantes del tren i además del conflicto c. Uno de los movimientos consiste en mover cada uno de los conflictos en DR a una estación anterior, otro de los movimientos sería mover cada uno de los conflictos en DR a una estación posterior, y los dos movimientos restantes serían iguales, solo que para el tren j. Por cada uno de estos movimientos se obtiene un vecindario. Se resuelve cada solución vecina obteniendo el valor de la función objetivo. Si es mejor, reemplaza a la solución actual. En el trabajo de Isaai y Singh [68] se describe una heurística híbrida basada en restricciones y una búsqueda Tabu para resolver el problema de scheduling sobre una red de una sola línea, el cual está enfocado en encontrar soluciones rápidas más bien que soluciones óptimas. Para analizar la calidad del scheduling durante

158 Revisión de Métodos para la Generación de Horarios los experimentos se utilizan tres criterios. El primero es el Promedio del Tiempo de Espera. Para evitar la desventaja de tener muy buenos horarios para algunos trenes a cambio que otros tengan unos horarios muy malos, se ha utilizado el Promedio de la Relación del Retraso de un tren con respecto a su tiempo de recorrido ideal. La tercera función de costo toma en cuenta la importancia de cada tren asignando un peso a cada uno. En el modelo de Isaai y Singh no se permite que dos trenes que viajan en el mismo sentido ocupen un mismo tramo, el primero debe llegar a la siguiente estación para que el siguiente tren pueda salir de la estación anterior. Es decir solo se considera lo que hemos definido como tiempo de sucesión manual. Isaai y Singh [68], [69], indican en su trabajo que el problema más grande resuelto incluye 22 trenes, 51 estaciones, 10 tramos de vía doble y 62 conflictos en los tramos de vía única. En los trabajos de Isaai se considera que los puntos inicial y final de un tramo de vía doble es una estación con dos vías en donde en una de ellas un tren puede apartarse y por la otra pasar un tren. Por lo tanto, si consideramos cada tramo de vía doble como una abstracción de una estación con capacidad igual a dos, en sus trabajos la relación de conflictos a estaciones es cercana a uno para el problema más grande, y de 1:3 por estación en promedio. En el trabajo de Cai y Goh [18] se considera una línea ferroviaria de largo recorrido de vía única con varias estaciones dispuestas en forma fija a lo largo de la línea, N trenes viajando en diferentes sentidos, cada uno con un instante de salida inicial programado y tienen un instante de llegada máximo a sus respectivos destinos que debe ser satisfecho. Se asume que en cada estación pueden estar a la vez a lo sumo dos trenes. El posible cruce entre dos trenes en un tramo de vía única puede ser gestionado únicamente en estaciones, lo cual consiste en detener a uno de los trenes involucrados un tiempo mayor al de su parada programada en la estación que corresponda. El problema consiste en asignar un horario factible de acuerdo a las restricciones de cruce, alcance e instante de llegada a cada tren minimizando el costo total debido a los retrasos resultantes de las paradas no programadas para evitar cruces entre trenes que viajan en sentido opuesto. La variable entera ξ ik es definida por 1 si el tren i para en la estación k ξ ik = 0 si el tren i no para en la estación k Se dice que el conjunto de variables enteras ξ ik es factible si el schedule resultante

159 4.3. Estado del Arte - Métodos de Solución 129 es factible con respecto a las restricciones de cruce y al número de trenes que puede haber en cada estación en un mismo instante de tiempo. Las velocidades de todos los trenes viajando en un mismo sentido son iguales en los tramos comunes. La primera y la última estación son terminales especiales que pueden mantener tantos trenes como haga falta. Ningún tren puede retroceder, es decir todos los trenes siguen un determinado sentido desde su estación inicial hasta su estación final, y no pueden cambiar de sentido durante su recorrido. El recorrido de todos los trenes está compuesto por el mismo conjunto de estaciones. Aunque, existen trenes que las recorren en un sentido y otros que las recorren en el sentido inverso. Debido a que la velocidad de todos los trenes es la misma en todos los tramos y que además todos recorren el mismo conjunto de estaciones no es posible que exista adelantamientos, por lo tanto la complejidad del problema se reduce considerablemente. Cada conflicto se resuelve de la siguiente manera. Dado dos trenes i y j que requieran utilizar un mismo tramo de vía única en un mismo instante de tiempo, se calcula el tiempo que deberá permanecer i en la estación que inicia el tramo según su recorrido, y el tiempo que deberá esperar j en la estación que inicia el tramo según su recorrido, de tal forma que no se produzca el cruce entre ellos. Se selecciona aquel tren cuya parada sea menor. En el caso que más de dos trenes tengan un conflicto en el mismo tramo se selecciona el grupo de trenes de un sentido que deberá pasar primero según el mismo criterio pero en este caso se suman las paradas de todos los trenes participando en el conflicto por sentido. Carey señala en [23] que la estrategia básica consiste en seleccionar el camino que seguirá cada tren a través de la red ferroviaria y asignarle un horario en dicha ruta tren a tren. Para ello se resuelve el problema de programación entera lineal un tren a la vez. Esto es, se fija el orden establecido para los trenes seleccionados previamente sin fijar su horario. Se introducen las variables enteras correspondientes a las restricciones que involucran al tren, cuyo camino y horario se desea hallar, pero el resto de variables enteras correspondientes a trenes seleccionados previamente son incluidas como constantes. El método que utiliza Carey para resolver el modelo descrito en [22] es el mismo que el utilizado en [23] con la diferencia que en [22] se debe impedir que dos trenes con sentido opuesto utilicen un mismo enlace al mismo

160 Revisión de Métodos para la Generación de Horarios tiempo (cruce). Análisis En el caso de la aproximación presentada por Higgins et al. se propone modificar un horario en cada iteración por cambiar la forma en que se resuelven determinados cruces, que se seleccionan en el mismo orden que aparecen en el tiempo. En un problema de programar horarios para trenes en una línea ferroviaria con tramos de vía única, la diferencia entre dos resultados radica en la forma en que los cruces fueron resueltos. Por lo tanto, lo que se busca es la mejor combinación, tren espera, tren pasa primero, tramo en cada gestión de cruce durante la programación. Esta aproximación propone ir probando diferentes alternativas por cada conjunto de cruces (un tren en común, cruces adyacentes). En el caso del problema OPT, donde el número de cruces es muy elevado llevar a cabo esta aproximación puede suponer emplear un tiempo de computo elevado hasta encontrar una buena combinación. Consideramos que es necesaria una heurística más guiada por la función objetivo para determinar cual es la mejor combinación. En el caso del trabajo presentado por Cai y Goh, el objetivo principal es obtener una programación de horarios buena en el menor tiempo posible. Para ello utilizan una heurística que se basa únicamente en la gestión de cada cruce, sin tener en cuenta, las decisiones previas ni predicción alguna sobre decisiones futuras. Esta aproximación genera una única solución. El inconveniente de la misma es que existe una alta probabilidad de que la decisión realizada sea la mejor para el cruce actual, pero genere una programación posterior cuyas paradas técnicas sean mucho mayores a las realmente necesarias. El trabajo presentado por Carey está centrado en decidir, cuál es la mejor combinación de líneas para cada tren en una red ferroviaria. El horario de cada tren se halla por fijar el ordenamiento de los trenes precedentes y únicamente dejar libre las variables enteras correspondientes al tren actual. En el problema OPT esto implica que si un tren tiene prioridad en el uso de un determinado tramo tanto frente a trenes que viajan en el mismo sentido como frente a trenes que viajan en sentido opuesto, tendrá también prioridad sobre todo los tramos siguientes de su recorrido. Con esta aproximación muchas soluciones no podrán ser probadas y por lo tanto es

161 4.3. Estado del Arte - Métodos de Solución 131 muy probable que buenas soluciones se pierdan Algoritmo de Descomposición Brucker y Strotmann [15] modelan el problema por medio de un grafo disyuntivo. A partir de dicho grafo se construyen las llamadas áreas locales, es decir un subconjunto de vértices y arcos del grafo completo. Si se alcanza una solución factible para cada área local, el coordinador construye un grafo para verificar la factibilidad global. De ser así, una solución es encontrada. En caso contrario el coordinador impone restricciones adicionales a las áreas locales y se repite el proceso hasta que una solución sea alcanzada. Análisis En el trabajo presentado por Brucker y Strotmann [15] se considera una red ferroviaria. En una red ferroviaria el tráfico en cada línea puede ser considerado en forma independiente, siendo el instante de llegada a cada punto de unión o nodo de enlace, los instantes que se deben buscar que minimicen el tiempo de transbordo en el caso que sean líneas conectadas. En nuestro caso se busca el horario de un conjunto de trenes en una determinada línea ferroviaria. Por lo tanto es posible descomponer este conjunto de horarios en partes, aunque en la mayoría de las instancias consideradas supondría por otro lado un esfuerzo al juntar las partes y comprobar si la factibilidad local continua existiendo. Considero que al utilizar un único procesador para resolver cada parte del conjunto de horarios se produce un menor esfuerzo computacional por cada parte, sin embargo estas partes no son computadas en forma paralela, sino en forma secuencial. Además es muy difícil que el resultado obtenido por cada parte al ser combinado con el resto siga siendo un resultado factible, ya que en una instancia real el horario de un tren está estrechamente conectado con el horario de uno o más trenes que utilizan los mismos recursos en un intervalo de tiempo parecido al del primero. Luego, al tiempo computacional empleado en resolver cada parte, debe sumarse el tiempo requerido para hacer que cada parte factible forme un todo factible. Todo este trabajo es necesario para obtener una solución, si además consideramos que estamos buscando optimizar un resultado, es muy importante que cada solución sea obtenido de la forma más eficiente posible.

162 Revisión de Métodos para la Generación de Horarios En este caso esta aproximación no presenta dicha característica Algoritmo Genético Otra de las aproximaciones utilizadas para resolver problemas relacionados a la programación de horarios de trenes son los algoritmos genéticos. Los algoritmos evolutivos constituyen una estrategia adecuada especialmente para problemas CSOP, como es el caso de los problemas de scheduling, en los que se trata de asignar tiempos de inicio a un conjunto de tareas que están sujetas a una serie de restricciones temporales, de forma que se minimice alguna medida regular de rendimiento, es decir, una función no decreciente en el tiempo de finalización de las tareas, Vela et. al [1]. Para resolver CSPs generales existen algoritmos genéticos genéricos que utilizan codificaciones binarias, o bien decodifican directamente los valores de las variables en los cromosomas. Para el caso particular de los problemas de scheduling, se suelen utilizar algoritmos genéticos con características diferentes a los algoritmos genéticos genéricos. Por ejemplo no resulta eficiente codificar directamente los valores de las variables, dado que los dominios son en general muy grandes, incluso infinitos en algunos casos, con lo que se realizaría una búsqueda en un espacio de soluciones potenciales mucho mayor del que en la práctica resulta necesario[1]. A continuación veremos algunos ejemplos de cómo se codifican ciertos problemas para posteriormente resolverlos mediante la utilización de un algoritmo genético. Nachtigall y Voget [92] consideran una red ferroviaria servida periódicamente donde todos los trenes llegan y salen cada cierto intervalo de tiempo. Compilar horarios con pequeños tiempos de espera para cambio de pasajeros en puntos de unión específicos conduce a un programa periódico. En este artículo se dice que métodos de solución exacta (Branch and Bound Nachtigall [91]) a programas periódicos son únicamente aplicables a problemas de tamaño pequeño. Consideran una red ferroviaria servida periódicamente dada por un sistema l = L 1,..., L r de r líneas. Por una línea entendemos un servicio de transporte donde todos los trenes pasan por una determinada secuencia de estaciones a intervalos de tiempo constantes y fijos. Por simplicidad se asume que todas las líneas son servidas con un intervalo de tiempo común o periodo τ y que el tiempo de recorrido y de parada de todos los

163 4.3. Estado del Arte - Métodos de Solución 133 trenes pertenecientes a L i están fijados. Así, el scheduling de la línea L i es realizado completamente por fijar un instante de salida de la estación inicial a un punto de tiempo π i. Si asumimos una conducta periódica con horizonte infinito, entonces en cada instante π i + zτ(z Z) un tren número z de la línea L i empezará su recorrido. El uso de algoritmos genéticos para el problema abordado es motivado por las siguientes propiedades: Para una solución determinada π, la suma con pesos de los tiempos de espera W (π) puede ser computada rápidamente. W es una función discontinua. la restricción 0 π τ produce una codificación natural del espacio de búsqueda. Los algoritmos de optimización estocástica usualmente necesitan muchas llamadas de la función objetivo. Especialmente los algoritmos genéticos producen nuevas soluciones las cuales no están en el entorno de los padres. En este caso ninguna información acerca del objetivo está disponible para el cálculo del objetivo del hijo. Además ninguna información acerca de derivados son necesarios porque el paso de producción mezcla aleatoriamente partes de diferentes soluciones. Este proceso depende sensiblemente de la codificación del espacio de búsqueda. Se empieza con un conjunto de 150 individuos desde el espacio de búsqueda Π = {π Z r 0 π i τ 1} llamado la población. Tomando la población como una generación inicial se produce nuevas generaciones iterativamente en la siguiente forma Desde la generación con número t (P t ) se elige primero aleatoriamente dos pares de vectores π 1 y π 2. Tomando cada coordenada separadamente y con igual probabilidad desde el vector padre 1 o desde el vector padre 2 se construye un nuevo vector π child.de esta forma diseñamos π offspring t soluciones. de 150 nuevas Estos individuos son alterados por pequeñas mutaciones. Esto es hecho por cambiar la coordenada de cada miembro de π offspring t probabilidad. con una determinada Se seleccionan de los dos conjuntos P t y P offspring t los mejores 150 individuos para constituir la población P t+1

164 Revisión de Métodos para la Generación de Horarios Se utiliza como criterio de parada el número de generaciones o un tiempo de computación límite. Dadas r líneas, el objetivo de este trabajo es encontrar un instante de salida para cada línea que minimice el tiempo de espera global de los pasajeros en aquellas estaciones que son utilizadas como estaciones de cambio entre una línea y otra. Inicialmente se selecciona aleatoriamente un instante de salida para una de las líneas cualquiera, elegida arbitrariamente. La siguiente línea cuyo instante de salida será calculado es seleccionada de tal forma que tenga la mayor dependencia con el resto de las líneas seleccionadas, y el instante de salida es seleccionado de tal forma que minimice el tiempo de espera global teniendo en cuenta las líneas seleccionadas hasta ese momento. Para las siguientes iteraciones es utilizado un algoritmo genético. Donde cada individuo es un vector de r instantes de salida, la población inicial cuenta con 150 individuos. La población inicial es generada con el algoritmo greedy, Nachtigall y Voget [92]. El resto de generaciones es producida mediante el cruce, mutación y reducción propios de los algoritmos genéticos. Este método no explica la forma en que realiza el scheduling de los trenes pertenecientes a una línea r. Dado un instante de salida para el tren en la línea r no indica cómo se calcula el horario del tren dentro de r ni las restricciones que son tenidas en cuenta en cada línea de las r consideradas. Otro trabajo que utiliza algoritmo genético es el presentado por Higgins et. al [65]. En este trabajo cada gen de un individuo representa a un conflicto, el cual está definido por los siguientes atributos: tren que se retrasa, tren que utiliza primero el tramo, tramo por el cual compiten ambos trenes. Se genera la población inicial con un tamaño P O. Cada individuo de la población inicial es una solución, la cual es generada por resolver de forma aleatoria los conflictos según el orden en el que aparecen en el tiempo. Se proporciona a cada tren involucrado en un conflicto una determinada probabilidad de ser retrasado. A cada solución k de una población se le proporciona una probabilidad ser seleccionada, donde: Z k es el valor de la función objetivo correspondiente a la solución k, C max = max(z k ), y f k = (C max Z k ) λ, λ = 2. f k Pk f k de

165 4.3. Estado del Arte - Métodos de Solución 135 De la población correspondiente a la generación actual se seleccionan P O/2 individuos basándose en la probabilidad de selección de cada individuo. Se lleva a cabo la mutación sobre las soluciones seleccionadas. Posteriormente se aplica el operador de cruce. Son eliminados los hijos duplicados y son resueltos los conflictos generados no existentes en la generación origen. Por cada solución se evalúa la probabilidad de selección de acuerdo al valor de la función objetivo asignada a cada solución. Este conjunto de soluciones pasa a ser una nueva generación para la cual se repite el mismo procedimiento. El procedimiento finaliza una vez que no se observe un mejoramiento sustancial en el fitness individual. Higgins et. al [65] utilizan un algoritmo genético para resolver el problema de asignación de horarios en una línea ferroviaria con vía única. Los genes representan la estructura de un conflicto resuelto, y aparecen en el cromosoma en el mismo orden que aparecen los conflictos en el tiempo. Esta representación tiene algunos problemas tales como: no todos los cromosomas tienen la misma longitud (en algunas soluciones hay mayor cantidad de conflictos que en otras), al realizar la operación de cruce pueden generarse hijos no factibles, por lo tanto a ese hijo debe reemplazarlo uno de los padres, pueden existir genes duplicados, ya que al realizar la operación de cruce, pueden venir tanto del padre como de la madre el mismo gen, en este caso se elimina uno de los genes del cromosoma. Pueden aparecer nuevos conflictos, en este caso estos son resueltos por retrasar el tren cuya parada técnica sea menor. El gen que representa el conflicto resuelto debe ser incluido en el cromosoma en el lugar apropiado según el orden en el que aparece en el tiempo. La población inicial se genera por identificar los conflictos y resolverlos en el mismo orden que aparece en el tiempo de forma aleatoria. A cada tren i y j que participa en el conflicto por el tramo p se le asigna una probabilidad P R p i,j = B A+B de ser retrasado A y B son los retrasos que tendrían el tren i y el tren j si son retrasados para que el otro ocupe primero el tramo p, respectivamente. De esta forma se generan N soluciones iniciales que formarán la población inicial del algoritmo genético. Como operador de cruce se utiliza el cruce de un punto con una probabilidad de 0.7. La mutación se lleva a cabo con una probabilidad de Cuando se realiza la mutación de un gen (descripción de un conflicto) el autor aconseja modificar también los genes relacionados con el primero, es decir que representen a los conflictos con un tren en

166 Revisión de Métodos para la Generación de Horarios común, ya que se vio que hay mejoras cuando no se cambia solamente un conflicto sino todos los adyacentes al mismo. Una vez obtenida la población descendiente, sobre esta población se lleva a cabo la operación de selección para ver cuáles de estos cromosomas pasarán a formar parte de la nueva generación. Esta selección se realiza en forma aleatoria, asignando a cada cromosoma una probabilidad determinada de selección. Kwan y Mistry [78], describen otra aplicación de algoritmo genético. Consideran como marco de trabajo una simplificada red ferroviaria del Reino Unido. Distinguen entre dos tipos de horarios, según la etapa en la que se realicen, Horarios de Planificación y Horarios Operacionales. El primer tipo corresponde a la etapa inicial en la cual la compañía encargada de la infraestructura estudia las ofertas de compañías operadoras y propone una planificación inicial, en donde un gran número de restricciones aún son ignoradas. El segundo tipo de horario es obtenido después de varias etapas de refinamiento y resolución de conflictos del Horario de Planificación. El trabajo de Kwan y Mistry consiste en un método para obtener Horarios de Planificación. El método que proponen consiste en generar 3 poblaciones. Cada una de ellas evolucionará según el paradigma de los algoritmos genéticos. Para producir una solución se combinarán un individuo de cada una de las poblaciones, razón por la cual denominaron al método Algoritmo Co-evolutivo. Las poblaciones representan instantes de salida inicial de cada tren P d, tiempos de recorrido de cada tren por tramo P p, y ocupación de cada estación del recorrido P c, respectivamente. Los cromosomas de la población P d consisten en un número entero, que representa la cantidad de 30 segundos (unidad de tiempo básica) que caben en el instante de tiempo que representan. El cromosoma de la población P p está formado por una secuencia de ceros y unos. Existen tantos ceros y unos como número de tramos exista en el recorrido del tren. El valor 0 indica que se utiliza en el tramo, el mínimo tiempo de recorrido posible, y un valor 1 indica que se utiliza en el tramo el máximo tiempo de recorrido posible. El cromosoma de la población P c también es una secuencia de ceros y unos. En este caso dos, indicando, por cada estación del recorrido, si la vía está ocupada (1) o no (0). Se formulan dos tipos de restricciones, duras y blandas. Forman el primer grupo: respetar un mínimo tiempo de sucesión, no exceder el número de vías en una estación

167 4.3. Estado del Arte - Métodos de Solución 137 con la ocupación simultánea de los trenes, y evitar alcance entre dos trenes que viajan en el mismo sentido. El segundo grupo de restricciones, las restricciones blandas consisten en: partir/llegar de la estación inicial/final en un instante de tiempo perteneciente a un determinado intervalo, llegar a determinadas estaciones dentro de un intervalo de tiempo que minimice el tiempo de espera de los pasajeros para realizar conexiones, establecer una determinada frecuencia de salida en las estaciones con parada comercial. La función objetivo consiste principalmente en cumplir todas las restricciones duras, para ello se le asigna una penalización de incumplimiento a dichas restricciones. El objetivo es minimizar este valor. Además de este criterio se utiliza también el fitness producido por la solución obtenida al combinar individuos de las 3 poblaciones. El algoritmo co evolutivo consiste en utilizar por cada individuo de la población P d un individuo de P p y un individuo de P c. Posteriormente calcular la función objetivo. El operador genético utilizado para evolucionar los individuos de la población P d es el de mutación conocido como Evolution Estrategy (ES), Hansen y Ostermaier [60], [95]. Para la evolución de las dos poblaciones restantes P p y P c se utiliza el algoritmo genético básico de Goldberg, [54] Búsqueda Tabú Como con los métodos de búsqueda local, la heurística Tabu Search general, Glover y Talliard [51], [53], está basada en el establecimiento de movimientos que transformen una solución actual en una solución de su vecindario. Esta heurística escapa del óptimo local por permitir movimientos de no mejora cuando ningún movimiento de mejora está disponible. En el trabajo de Higgins et. al [65], a cada movimiento se le asocia una probabilidad en términos de la posibilidad de mejora. La diversificación es utilizada en búsqueda tabú para forzar la búsqueda en un camino diferente, evitando así buscar en una misma región por mucho tiempo, porque existe la posibilidad de que sea una región donde solo existan soluciones pobres. Se aplica diversificación después de T iteraciones en la cual se escoge una de las mejores soluciones obtenidas hasta ahora y se reemplaza por esta la solución actual. La diversificación a largo plazo se

168 Revisión de Métodos para la Generación de Horarios lleva a cabo por evitar repetir movimientos a largo plazo. Una forma de hacerlo es penalizar la función objetivo de la siguiente forma Z = Z + fqv t Z CONST donde fqv t es el número de veces que aparece el movimiento v hasta la iteración t. Como un resultado de experimentación fue seleccionado el valor 0.01 para CONST. Movimientos que crean soluciones no factibles son descartados. Si aparecen nuevos conflictos en una solución vecina estos son resueltos por retrasar el tren que produce menor parada técnica. La heurística TS finaliza cuando el número máximo de iteraciones es alcanzado. En el trabajo presentado por Nõu [94] se presentaron diferentes alternativas para generar soluciones factibles. Una de ellas fue aplicar una búsqueda tabú al problema de hallar diferentes combinaciones de trenes que deberían esperar en cada conflicto a ser resuelto. Algoritmos Híbridos: GA + LSH Higgins et. al [65] proponen modificar un cinco por ciento de las mejores poblaciones de una generación utilizando la heurística LSH explicada en [65]. Con esto el autor pretende eliminar uno de los puntos negativos del algoritmo genético propuesto en [65], que era que converge más lentamente a una buena solución aunque escapa con mayor frecuencia del óptimo local. Esta modificación se realiza después de aplicar el operador de cruce. Algoritmos Híbridos: GA + TS En [65] se aplica la heurística TS al realizar la operación de cruce. Se elige uno de los padres utilizando la probabilidad de selección asignada a cada cromosoma pero el otro padre se elige de tal forma que el hijo resultante no sea un miembro de la lista tabú. Análisis de los Algoritmos de Mejora Los algoritmos de mejora son procedimientos de búsqueda local que en cada iteración modifican la solución actual buscando mejorarla, en cuyo caso reemplaza a la solución actual. Consideramos que los algoritmos de mejora pueden producir

169 4.3. Estado del Arte - Métodos de Solución 139 mejores resultados en la búsqueda de soluciones que los algoritmos que utilicen únicamente heurísticas guiadas por decisiones tomadas en forma local. Estos algoritmos permiten explorar el espacio de soluciones de una forma no determinista permitiendo además con menor probabilidad seleccionar soluciones de una región poco prometedora, en cuanto a heurísticas locales se refiere. Como principal inconveniente podríamos apuntar que luego de haber realizado algunas pruebas, estos algoritmos codificados para el problema OPT ofrecen una convergencia más lenta que otros métodos heurísticos implementados. Otro de los inconvenientes al aplicar este tipo de algoritmos consiste en que puede dar lugar a un gran número de soluciones que se repitan en diferentes iteraciones. Por lo tanto, al aplicarlos sería muy conveniente encontrar una forma de evitar estas repeticiones, para que el tiempo empleado en resolver cada configuración sea utilizado para explorar diferentes soluciones y no malgastado en generar una misma solución que ya fue analizada previamente. En el caso del problema OPT, cada cromosoma de un individuo estaba formado por el par (tren, tramo). Se realizaba la verificación de restricciones de un tren en un tramo en el mismo orden dado por los cromosomas. Cuando aparecía un conflicto, este era resuelto dando prioridad en el tramo a aquel tren cuyo par (tren, tramo) aparecía primero en el cromosoma. El schedule vecino, o la siguiente generación de individuos era obtenida por modificar este orden, de tal forma que se respetara siempre la precedencia entre los tramos pertenecientes al recorrido de un mismo tren. En el caso de la búsqueda tabú el vecindario de un schedule puede estar formado por más de un schedule vecino, en ese caso el procedimiento que selecciona el siguiente schedule candidato es muy importante, ya que eso determinaría la rapidez con que se llegue a una solución lo suficientemente buena a partir del schedule inicial. Es muy importante incorporar en cada uno de los procedimientos utilizados para crear vecindario, seleccionar candidato y aceptar/rechazar candidato respectivamente, el conocimiento suficiente acerca del problema y de la función objetivo considerada, de tal forma a guiar adecuadamente a los procedimientos que determinan las regiones del espacio de soluciones que serán exploradas.

170 Revisión de Métodos para la Generación de Horarios Problema de Scheduling de Eventos Periódicos El Problema de programar eventos periódicos (Periodic Event Scheduling Problem - PESP) es definido como sigue: Dado: un conjunto finito N de n eventos periódicos un conjunto finito A de restricciones periódicas encontrar un schedule τ(ε) Φ, para todo ε N satisfaciendo todas las restricciones periódicas en A La presencia de recursos puede complicar el carácter periódico del problema de programación ya que pueden existir diferentes periodos mt (m Z) que deben ser tenidos en cuenta simultáneamente. Por ejemplo, spans del tipo [d, d + ] mt pueden estar presentes en el modelo. Se puede definir el problema extendido de programación de eventos periódicos de la siguiente forma: Dado: un periodo T; una red (N, A); enteros positivos m(a), a A; spans reales D(a, Z), a A, z Z donde D(a, z) = [d + m(a)zt, d + + m(a)zt ] también denotado como D(a, z) = [d, d + ] m(a)t ; el objetivo es encontrar un potencial µ tal que υ(a) D(a, z(a)) para alguna z Z, para todo a A. Luego τ(ε) = µ(ε) mod T Un evento periódico ε es un conjunto de eventos contablemente infinito e(p) indexado por p Z, los cuales ocurren en los instantes de tiempo t(e(p)) R, tal que por cada p, t(e(p)) t(e(p 1)) = T (Z representa al conjunto de números enteros y R al conjunto de números reales). T es referido como el periodo y e(p) como la ocurrencia número p del evento periódico ε. También es definido t(ε) := t(e(p)) mod T.

171 4.3. Estado del Arte - Métodos de Solución 141 Una restricción periódica a es una relación que involucra un par ordenado de eventos periódicos (ε (a), ε + (a)) y un span propio (a), requiriendo que (τ(ε + (a)) τ(ε (a))) (a). Serafini y Ukovich, [109], proponen un algoritmo para resolver problemas modelados mediante el P ESP. El objetivo del algoritmo es hallar una solución factible al problema. No tiene en cuenta ninguna función objetivo. Los autores hacen notar que es un algoritmo general, por lo tanto puede ser modificado de tal forma que tenga en cuenta características o conocimientos del problema particular que se está modelando para obtener mejores resultados en cuanto a eficiencia se refiere. Christian Liebchen y Leon Peeters, [84], han publicado un trabajo en el cual utilizan el modelo P ESP para representar el problema de programación de horarios en una red periódica. Específicamente el modelo utilizado es un digrafo en el cual restricciones temporales sobre los arcos relacionan periódicamente a eventos recurrentes. Los métodos de solución están comúnmente basados en programación entera; el número de variables enteras es igual a número ciclomático del digrafo. En la programación de horarios la mayor pregunta es cómo ordenar las líneas que comparten un tramo común. En el trabajo de Liebchen y Peeters se muestra que en este contexto se puede podar vectores enteros no factibles por agregar únicamente muchas restricciones en forma polinomial. Otro punto de interés considerado por el trabajo de Liebchen y Peeters es no construir horarios, que por conseguir tiempos de espera cortos para los pasajeros, requieran de una elevada cantidad de material rodante(trenes) para llevar a cabo tal programación. Análisis Los problemas de programación horaria considerados en la literatura y modelados con el PESP tienen en cuenta únicamente trenes del mismo tipo, viajan a una misma velocidad promedio y con una determinada frecuencia de salida. La programación horaria se repite en cada uno de los periodos de tiempo especificados. El modelo debe ser modificado para modelar restricciones disyuntivas necesarias para evitar los cruces, alcances, ocupación excesiva de una dependencia, etc. Los problemas vistos en la literatura modelados por el PESP y resueltos mediante heurísticas que eliminan gran parte de las variables enteras, son problemas que se centran en

172 Revisión de Métodos para la Generación de Horarios minimizar el tiempo de espera de los pasajeros y en la cantidad de intercambio de vehículos en las estaciones comunes a dos líneas ferroviarias. Nuestro problema se diferencia en que tenemos en cuenta una sola línea en la cual pueden existir diferentes tipos de trenes con diferentes recorridos, es requerido agregar un grupo de trenes que pueden ser de diferentes tipos resolviendo una serie de conflictos entre los nuevos trenes y los que se encuentran en circulación. La periodicidad no es imprescindible en todos los casos y en OPT se consideran restricciones como cierre de estaciones, o bandas de mantenimiento, que no pueden ser modeladas por el PESP por que impiden el patrón periódico requerido por dicho modelo Heurísticas para Job Shop y el Problema OPT En esta sub sección se proporciona un análisis de algunas heurísticas propias de un Job Shop aplicadas al problema OPT. estaciones Desplazar el Cuello tramo2 de Botella y el problema OPT En la Figura 4.6 se muestra una instancia del problema OPT en la cual se desea planificar el horario tramo3 1 de 4 trenes en una línea ferroviaria formada por tres tramos, todos de vía única. t1 tt makespan 3 4 tiempo Figura 4.6: Makespan mínimo para una instancia del problema de programación de horario para trenes t2 Hemos considerado que cada tren representa un trabajo (j 1, j 2, j 3, j 4 ), cada

173 4.3. Estado del Arte - Métodos de Solución 143 tramo visitado por un tren una actividad correspondiente a dicho trabajo (a ij representa que el tramo i es visitado por el tren j) y que cada tramo representa una máquina. Al aplicar la heurística, la primera máquina seleccionada es la máquina 2 (tramo 2 en la Figura 4.6) y el orden en el cual debe ser utilizada por las actividades es a 22, a 21, a 24, a 23. En la Figura 4.7 se observa como aumenta el makespan con respecto a la Figura 4.6 debido a la espera que debe realizar el tren 3 hasta que el tramo 2 sea liberado por el tren 4. Sin embargo en el problema OPT el makespan dado por este orden realmente sería mayor, ya que un tren no puede utilizar un tramo en el mismo estaciones instante que otro deja de utilizarlo, debe esperar un tiempo al cual se denomina margen de seguridad. Estos márgenes de seguridad necesarios son señalados en la Figura tramo2 4.8 como recepción y expedición. Siendo así, en la Figura el margen de seguridad entre el tren 3 y el tren 4 es insuficiente por lo que el tren 3 debería esperar en la estación previa aumentando así considerablemente el tramo3 makespan. t1 tt makespan 3 4 tiempo Figura 4.7: Primera máquina seleccionada con un orden determinado de operaciones t2 Otros aspectos que se deben incorporar a la heurística si esta se utiliza para resolver una instancia del problema OPT son: Capacidad finita de las estaciones. Cuando un tren espera en una estación que el siguiente tramo sea liberado se debe tener en cuenta el número de vías disponibles en dicha estación en ese instante de tiempo. Si la estación no dispone de vías en el instante considerado, el tren debe realizar la espera en la

174 estaciones tramo Revisión de Métodos para la Generación de Horarios tramo3 2 t1makespan recepciónedición exp t tiempo Figura 4.8: Makespan modificado cuando se considera márgenes de seguridad t t4 3 primera estación previa según su recorrido, en la que exista por lo menos una vía disponible. La capacidad de un tramo puede variar por intervalos de tiempo debido a operaciones de mantenimiento que también deben ser consideradas. Un tramo de vía única puede quedarse sin vías a efectos de circulación o un tramo de vía doble convertirse en un tramo de vía única. Los trenes que viajan en el mismo sentido pueden estar visitando un mismo tramo en un mismo instante de tiempo. Es decir dos actividades pueden utilizar una misma máquina. Esto ocurre en el caso de tramos cuyo tipo de bloqueo no es manual, sino automático, lo cual solamente requiere que exista una determinada diferencia temporal entre uno y otro tren, pero no impide que ambos se hallen en el mismo tramo al mismo tiempo. También es importante notar que la solución entregada por la heurística es única y no tiene por qué ser la óptima ya que para decidir el orden en una máquina no se tiene en cuenta el resto de máquinas. El costo computacional también puede ser muy elevado para problemas reales, ya que se requiere: calcular el orden en el cual una máquina será utilizada, una vez seleccionada la siguiente máquina con un orden establecido es necesario recalcular por cada máquina ya seleccionada previamente un nuevo orden teniendo en cuenta la máquina que se acaba de agregar. En el caso de instancias del problema OPT

175 4.3. Estado del Arte - Métodos de Solución 145 el construir un horario puede implicar operaciones de backtracking para satisfacer restricciones sobre capacidad en estaciones, horarios de cierre, y otros. Generalmente en una instancia del problema OPT existen 30 trenes a planificar y unos 50 cruces por gestionar. Reglas de Procesamiento y el Problema OPT Las reglas de procesamiento que han sido revisadas toman decisiones basándose en aspectos locales en cuanto a las operaciones que requieren una máquina y a la máquina misma. Además debido a la forma determinista en la que estas reglas asignan prioridades, la aplicación de las mismas conduce a una única solución para cada instancia de un problema. En el caso del problema OPT, no puede obtenerse mediante un algoritmo polinomial una solución óptima, entonces se prefiere obtener en un periodo corto de tiempo varias soluciones y seleccionar entre estas aquella que mejor satisfaga el criterio de calidad considerado. Tanto las reglas de procesamiento básico como las reglas de procesamiento compuesto se basan en la situación local que existe en el momento de hacer un ordenamiento. Esto podría ser útil si no se aplicaran las reglas en forma determinista, ya que lo que puede ser muy bueno para la situación local que se considera, puede traer consecuencias muy negativas a las situaciones posteriores en las que vaya cayendo la instancia del problema. Podemos decir que debido al costo computacional y espacial que supone prever las consecuencias de cada elección, es muy difícil utilizar reglas procesamiento global, por lo tanto se desea obtener un procesamiento que utilice el conocimiento anterior y presente en forma probabilística Técnicas CSP y el Problema OPT En el capítulo 2 se describieron algunas de las técnicas que se utilizan para hallar soluciones a problemas formulados como un CSP. En esta sub sección indicamos ciertas características de la aplicación de estas técnicas al problema OPT.

176 Revisión de Métodos para la Generación de Horarios Backmarking La existencia de backtracking en un algoritmo implica que una misma variable puede ser instanciada más de una vez. La técnica Backmarking ha sido propuesta por Gaschnig [46] para evitar verificaciones redundantes cada vez que se instancia una variable, valiéndose de un recuerdo de instanciaciones previas sobre la misma. Para ello se utilizan dos tablas, M y low. En la primera existen entradas por cada variable y por cada uno de los valores de su dominio. En la segunda existe una entrada por cada variable. En M i,v se almacena j si la variable x j fue la variable más temprana en el ordenamiento con la cual x i = a v produjo un conflicto. En la entrada low i se almacena la variable más temprana modificada desde la ultima instanciación de x i. Cuando se requiere instanciar la variable x i se descartan todos los valores a v de su dominio, tales que M i,v < low i. Para resolver el problema OPT es necesario utilizar backtracking para resolver incumplimientos a ciertas restricciones. Aunque consideramos que es necesario utilizar una técnica que evite repetir verificaciones porque se puede conocer de ante mano su resultado, basándose en instanciaciones previas, también consideramos que será necesario modificar la técnica de backmarking para poder aplicarla más eficientemente al problema OPT. Las modificaciones consisten principalmente en la forma de almacenar aquellos valores que incumplen determinadas restricciones para ahorrar espacio en memoria y en la forma de retroceder cuando se produce un dead-end durante la instanciación de una variable. A continuación detallamos esas modificaciones incluidas en el procedimiento de resolución de OPT. Para ahorrar espacio se podría utilizar una lista dinámica por cada variable x i, en donde se mantengan aquellas variables x j, j > i cuyos valores tuvieron que ser modificados para ser consistentes con x i. Cuando el valor de x i es modificado, únicamente las variables x j son instanciadas con valores a v menores a los valores que actualmente poseen, ya que podría ser que dichos valores anteriormente no factibles a causa de x i sean ahora factibles, ya que x i fue modificada. Por el tipo de problema que consideramos, un valor menor factible sería mejor, ya que se busca disminuir el tiempo total de recorrido de los trenes. Para el resto de variables diferentes a x j se verifican las restricciones a partir del valor actual de cada variable. No se prueban los valores inferiores, ya que si estos no han sido usados hasta ahora, es porque dieron lugar a conflictos con otras variables, cuyo valor no ha sido modificado y por

177 4.3. Estado del Arte - Métodos de Solución 147 lo tanto seguirían dando dicho conflicto. Este procedimiento sería recursivo, es decir se modifica x i implica modificar x k, entonces también se vuelven a verificar valores inferiores para todas aquellas variables que tuvieron algún conflicto con x k. En cuanto a la forma de retroceder cuando se produce un dead-end, consideramos que siendo posible conocer la causa del dead-end, es conveniente retroceder hasta la variable que produjo tal situación, y no a aquella variable inmediatamente anterior en el ordenamiento, ya que esta variable puede no tener ninguna relación con el conflicto que originó el backtracking, por lo tanto aunque sea modificada se llegaría nuevamente a la misma situación. Esto significaría emplear un tiempo en verificaciones redundantes sin corregir la causa del backtracking. Forward Checking La técnica de Forward Checking, introducida por Haralick y Elliot [61], y sus variantes consisten en que cada vez que se realiza la asignación de una variable x i se debe propagar esta asignación a todas las variables futuras, eliminando de sus respectivos dominios aquellos valores que presentan conflicto con la asignación actual de x i. Si el dominio de alguna variable futura se convierte en un conjunto vacío, entonces se prueba otro valor para x i. En el problema OPT aunque el dominio de las variables es discreto, no se prueban los valores uno a uno. Debido a la naturaleza del problema existe un mínimo valor por el cual se empieza a probar el valor de una variable y está dado por la restricción sobre el instante de salida inicial (cuando se trata de la variable que modela el instante de salida desde la estación origen del recorrido), o por la restricción de tiempo de recorrido (cuando se trata de la variable instante de llegada en una estación intermedia), o por la restricción sobre parada comercial (variable que modela el instante de salida de una estación intermedia, ya que se conoce el valor del instante de llegada). A partir de este valor, si existe un conflicto con otra variable, no se prueba el siguiente valor del dominio, sino el valor que evitará el conflicto con dicha variable. Por lo tanto se realizan la misma cantidad de verificaciones que se realizaría si uno deseara eliminar valores no factibles del dominio de variables futuras.

178 Revisión de Métodos para la Generación de Horarios Manteniendo Arco Consistencia (MAC) Cada vez que se intente asignar un valor a una variable, este algoritmo requiere la comprobación de un conjunto de restricciones de tal forma que se verifique si el problema es arco consistente con el valor candidato. En el caso del problema de la programación de horarios para trenes, tanto el número de restricciones como el número de variables es elevado, lo cual implica un costo computacional elevado. Existen variantes de este método que intentan disminuir el costo computacional utilizando listas dinámicas, lo cual incorpora un aumento de la complejidad espacial. Además estas listas deberán estar actualizadas durante la búsqueda. En el problema OPT la selección de un valor supone elegir el mínimo instante de salida para cada tren en cada estación de su recorrido. Si ese instante de salida no es consistente, repararlo, solo consiste en aumentar su valor en una determinada cantidad. Consideramos que la aproximación de generar un valor y luego verificar su consistencia permite obtener soluciones en el menor tiempo posible. Dado que se desea optimizar, es importante que cada solución sea obtenida en forma eficiente. Ordenamiento de Variables Considerando que en el problema OPT cada instante de llegada y cada instante de salida de un tren a una estación de su recorrido es una variable del problema, es conveniente establecer un ordenamiento previo a la búsqueda entre las variables que corresponden al horario de un tren. La llegada de un tren a una estación debe ser anterior o igual a su instante de salida, y si un tren va de la estación i a la estación i + 1, entonces su instante de llegada a i + 1 debe ser posterior a su instante de salida de i. Estas restricciones del problema indican un ordenamiento implícito, el cual es mostrado en la Figura 4.9. El recorrido de las líneas punteadas más oscuras indican un ordenamiento entre las variables que corresponden al horario del tren t 1 y las líneas punteadas más claras un ordenamiento entre las variables del horario del tren t 2. Consideramos que es conveniente establecer un ordenamiento entre las variables correspondientes al horario de un mismo tren, ya que las inferencias para acotar el dominio de variables futuras relacionadas por restricciones de precedencia con la variable actual requerirán menor cantidad de cálculo. Siendo arrj+1 i el instante de

179 estaciones 4.4. Conclusión 149 dep 11 arr 212 dep 312 arr413 arr 614 t1 IIIIIIIVV VI tiempo 5dep Figura 4.9: Ordenamiento de Variables en el problema OPT llegada del tren i a la estación j + 1, dep i j el instante de salida de i de la estación j, y las estaciones j y j + 1 dos estaciones consecutivas del recorrido del tren i, la restricción de precedencia del problema OPT indica que arrj+1 i = depi j + i j j+1. Por lo tanto para que la propagación de restricciones se lleve a cabo con el menor número de cálculos posible es conveniente instanciar las variables correspondientes al horario de un tren en el mismo orden que el tren recorre las estaciones. Cuando se trata de trenes diferentes, y que además recorren la línea ferroviaria en sentidos opuestos, el ordenamiento de las variables correspondientes a sus respectivos horarios determina la solución del problema. Debido a que el problema OPT es un problema de optimización, nos interesa obtener cuanto antes una solución de buena calidad (minimizar valor de la función objetivo), por lo tanto el ordenamiento entre variables que representan horarios de diferentes trenes se lleva a cabo durante la búsqueda como una decisión de la heurística a emplear Conclusión El problema de programar horarios para trenes en una línea ferroviaria ha sido tratado en varios trabajos. Según las restricciones que se consideren, el número de

180 Revisión de Métodos para la Generación de Horarios variables promedio que existan y la función objetivo utilizada, la complejidad del problema varia en gran medida, y por lo tanto los métodos que sean utilizados para resolverlo también deben adecuarse para obtener un resultado más eficiente. Los trabajos descritos en este capítulo, relacionados con el problema OPT, consideran un subconjunto de las restricciones consideradas por OPT, lo cual permite en algunos casos la utilización de modelos y técnicas matemáticas para resolverlos y obtener buenos resultados según la definición de los problemas. En otros casos una técnica enumerativa, tal como branch and bound, obtiene una solución óptima en un tiempo aceptable ya que el espacio de soluciones es mucho menor al que se considera en OPT y el tiempo empleado para obtener cada solución también porque existen menos restricciones que verificar. Los métodos de búsqueda local requieren de heurísticas que permitan considerar asignaciones futuras y así evitar caer en óptimos locales. En cuanto a los algoritmos de mejora, como los del tipo algoritmo genético, consideramos que es importante mejorar la representación de los individuos, así como adaptar las operaciones de cruce, selección y mutación al problema OPT de tal forma que se acelere la convergencia del algoritmo. Todos estos métodos pueden ser modificados de alguna forma para que puedan resolver el problema. Consideramos que en algunos casos estas modificaciones también implicarían un empobrecimiento en cuanto a la eficiencia original de los mismos. Por lo tanto, atendiendo la formulación del problema y teniendo en cuenta las principales carencias de los métodos existentes, hemos trabajado para diseñar y desarrollar un nuevo método que permita obtener soluciones de alta calidad en forma eficiente. El resultado es presentado en el siguiente capítulo.

181 Capítulo 5 Un Procedimiento heurístico basado en ordenación (PBO) 5.1. Introducción En el capítulo 4 se ha hecho referencia a una selección de trabajos relevantes, que proponen métodos de solución al problema de programar y optimizar horarios factibles para trenes, el que se ha denotado en esta tesis como OPT. Aunque el tipo de problema es común a todos estos trabajos, la modelización que realiza cada uno descubre diferencias en cuanto: (i) al conjunto de restricciones, (ii) la función objetivo, y (iii) el tamaño de los casos de prueba utilizados. Una solución dada por el método de solución de uno de estos trabajos, puede no ser factible en otro, que modele el problema considerando un conjunto de restricciones más amplio. El problema OPT incluye todas las restricciones consideradas en los trabajos consultados, sin embargo el conjunto de restricciones de OPT no está incluido en ninguno de ellos. En los métodos consultados no se modelan restricciones sobre el número de vías en estaciones, ni sobre el cierre de las mismas en determinados intervalos de tiempo. Tampoco se restringe la circulación en un tramo que se halla bajo mantenimiento, ni la diferencia de tiempo que debe existir entre los instantes de salida/llegada de trenes utilizando un mismo recurso. Estas restricciones son muy complejas de modelar mediante un modelo matemático, y de hacerlo requerirían una gran cantidad de nuevas variables binarias, lo cual aumentaría aún más la complejidad del modelo, que ya consta de binarias para evitar conflictos como el cruce o el alcance. Si se trataran todas estas restricciones, los métodos que 151

182 Un Procedimiento heurístico basado en ordenación (PBO) han sido descritos en el Capítulo 4 perderían bastante eficiencia, y en algunos casos no podrían ser implementados. En particular, aquellos métodos de solución que se basan en las propiedades matemáticas del modelo, como los que utilizan planos de corte para acotar el espacio de búsqueda. En este caso no sería factible hallar las ecuaciones, utilizadas como planos de corte, debido a la complejidad de las expresiones necesarias para modelar las restricciones mencionadas previamente. Según el conjunto de restricciones común a todos los trabajos consultados, podemos decir que la complejidad viene dada por: (i) la cantidad de trenes considerados, (ii) la infraestructura ferroviaria, y (iii) por el número de conflictos (trenes que compiten por un mismo tramo). Es necesario un método que sea escalable. Es decir que su eficiencia no disminuya en la misma proporción con la que aumenta la complejidad del caso de prueba. Debe ser útil tanto para programar el horario de un único tren como para programar el horario de los trenes que circularán en una línea ferroviaria cada semana. Una gran parte de las aplicaciones existentes son del tipo simulación. Esperan que el usuario introduzca un horario por cada tren, para indicar posteriormente aquellas restricciones que no han sido cumplidas por la entrada especificada. Algunas de estas herramientas reparan las restricciones incumplidas, si es posible, otras dejan que el usuario indique la forma en que esta reparación debe ser realizada. De esta forma, no generan un horario factible para cada tren a partir de una parametrización, ni consideran una función objetivo que les permita evaluar la calidad de la solución entregada. Así pues, podemos concluir que los métodos de solución, propuestos en los trabajos consultados, no pueden ser empleados para resolver el problema OPT que consta de ciertas restricciones, no consideradas por ninguno de los métodos estudiados. Incorporar dichas restricciones en sus modelos, o en sus métodos de solución, no es factible en alguno casos, y en otros implicaría un empobrecimiento en la eficiencia que no justificaría la adaptación. En este capítulo proponemos un nuevo método de solución para el el problema OPT, el cual es un problema de scheduling tipo Job Shop que consta de las restricciones propias de este tipo de problemas y de otras necesarias para asegurar la factibilidad de la solución en un contexto real. En la Sección 5.3 se proporciona el esquema general del método de solución

183 5.2. Aplicación de las técnicas CSP en el método de solución propuesto 153 propuesto describiendo sus principales características. Posteriormente, en la Sección 5.4, se analiza la relación que existe entre problemas de scheduling tipo Job Shop y el problema OPT, sobre el cual se aplica el método propuesto. Dicha aplicación presenta dos variantes, según se trate o no la restricción que exige periodicidad en las salidas de determinados trenes consecutivos (trenes cadenciados). Ambas variantes se describen en la Sección 5.5 proponiendo la particularización del método para cada caso. Finalmente, la Sección 5.6 describe la aplicación del método al problema OPT en detalle, tanto para el caso en el que se requiere trenes cadenciados como para el caso en el cual dicha restricción no está presente. La Sección 5.7 proporciona las conclusiones de este Capítulo Aplicación de las técnicas CSP en el método de solución propuesto La utilización de una herramienta genérica que resuelva CSPs requiere que las restricciones del problema deban ser especificadas en el lenguaje utilizado por la misma, de tal forma que un analizador léxico y un analizador sintáctico puedan interpretar las restricciones que existen entre las variables del problema, y llevar a cabo las verificaciones correspondientes durante la aplicación del método de solución. Por lo tanto para resolver el problema OPT utilizando Técnicas CSPs, se requiere en primer lugar poder representar las restricciones del problema en el lenguaje especificado para la herramienta. Esto supone un inconveniente, ya que un gran número de restricciones importantes del problema OPT son complejas de ser especificadas en lenguajes como el matemático o el de programación de restricciones comúnmente utilizado. Esta es una de las razones por las cuales no se ha utilizado alguna de las herramientas disponibles que resuelven CSPs. En el método de solución propuesto para hallar soluciones al problema OPT las propias restricciones que se deben verificar está implícito en el propio método de solución. En el capítulo 2 se han presentado las técnicas para resolver problemas CSP, más comúnmente referenciadas en la literatura. Los métodos híbridos, que combinan inferencia y búsqueda, se encuentran entre los métodos más utilizados para resolver eficientemente problemas CSP complejos, ya que proponen una aproximación para

184 Un Procedimiento heurístico basado en ordenación (PBO) disminuir el número de backtracking y asignaciones innecesarias. Ejemplos de este tipo de métodos son las técnicas denominadas Forward Checking y MAC. Forward Checking propaga en forma separada, el efecto de una selección tentativa de valor a cada variable futura. Si el dominio de una de éstas variables futuras queda vacío, entonces se rechaza el valor bajo consideración y se prueba el siguiente valor candidato (se evita un dead-end). También se consideran las asignaciones previamente realizadas. En el caso de MAC, la propagación se realiza a variables futuras, pero a su vez el valor de estas variables futuras se vuelve a propagar en las restricciones cuyo ámbito las incluyen, siendo mayor el nivel de arco consistencia realizado. Estas técnicas han sido estudiadas para comprobar si es posible aplicarlas para resolver el problema OPT, llegando a la conclusión de que si bien es posible una propagación de ciertas restricciones, la aplicación de los mismos, tal cual han sido formulados resultaría ineficiente. El tiempo que se emplea en verificar que cada asignación candidata no genere un dead-end es mayor que el tiempo empleado en resolver el total de backtracking que ocurren en una instancia del problema OPT, siempre considerando el caso promedio. Esto ocurre principalmente porque el tipo de problema no es propicio a que ocurra un dead-end. Es más, esto solo ocurre cuando una dependencia se queda sin vías en el instante que llega un tren a la misma. En el método de solución que proponemos, el dominio de la variable siendo asignada se restringe a determinados valores, obtenidos a partir de la propagación de ciertas restricciones unarias y binarias del problema, en cuyos ámbitos se halla la J J variable siendo asignada. En particular, dado que esta variable representa el instante de inicio de una tarea perteneciente a un determinado C trabajo, se propagarán las Tiempo(x restricciones binarias que la relacionen con el instante de inicio o el instante de finalización de la tarea que le precede y que pertenece al mismo trabajo. ( 1, ) ( 2, ) ( 3, ) ( ) ( 2, ) ) Figura 5.1: Dominio de una variable siendo asignada filtrado a partir de determinadas restricciones ,1

185 5.2. Aplicación de las técnicas CSP en el método de solución propuesto 155 En la Figura 5.1 se presenta un ejemplo. Han sido asignadas las variables correspondientes a los instantes de inicio y finalización de las tareas (1, 1), (2, 1) y (3, 1) del trabajo J 1 J J y de la tarea (2, 2) perteneciente al trabajo J 2. La siguiente variable seleccionada para su asignación es x, y representa el instante de inicio de la tarea Tiempo(x (4, 1). Dado que el instante de inicio de la tarea (4, 1) debe ser posterior al instante de finalización de la tarea (3, 1), los valores de su dominio son restringidos a [C, 86400] y será a partir del mismo desde donde se seleccione el siguiente valor para x. ( 1, ) ( 2, ) ( 3, ) ( ) ( ) A+ ) Figura 5.2: Dominio filtrado a partir de la restricción sobre periodicidad en salidas consecutivas A C C1,2 Otro ejemplo es mostrado en la Figura 5.2. Debido a la restricción de periodicidad en salida, la primera tarea del trabajo J 2 debe iniciarse necesariamente C unidades de tiempo después que se haya iniciado la primera tarea de J 1. Por lo tanto en este caso el dominio inicial de x, [0, 86400] es restringido a [C, 86400]. El dominio del instante de finalización de una tarea siempre es reducido a un único valor posible que es el instante de inicio de la tarea a la que corresponde más su tiempo de procesamiento. Esto proporciona un único valor posible. Cuando este valor no es factible debido a que existe una restricción que limita a un determinado intervalo los valores factibles para finalización de una tarea, entonces es cuando se produce un backtracking, debiendo modificarse el instante de inicio de la misma. En cuanto a las heurísticas de ordenación de valores consultadas, Mínimo Conflicto, Máximo Dominio y Soluciones Estimadas, podemos decir que su aplicación requiere un gran número de cálculos, ya sea para estimar el número de conflictos por cada valor candidato, o la cardinalidad del dominio de las variables futuras a partir de la selección realizada, o bien la estimación del número de soluciones según la cardinalidad de los dominios correspondientes a las variables futuras. Consideramos que estos cálculos son importantes si se desea obtener una medida acerca de los valores que nos pueden conducir hacia una solución segura sin tener que resolver numerosos conflictos o numerosos dead-ends. Sobre todo si se desea hallar una única 4,1

186 Un Procedimiento heurístico basado en ordenación (PBO) solución, para problemas que buscan factibilidad y no optimalidad. En nuestro caso, el problema que intentamos resolver es un problema de optimización, se requiere explorar más de una solución, y muchas veces una solución en la cual exista un mayor número de conflictos o un mayor número de dead-ends, puede dar mejores resultados. El criterio que utilizamos para seleccionar un valor es aquel que permita obtener según la ordenación de variables realizada el mejor valor para la función objetivo. Por lo tanto, el ordenamiento de los valores de un dominio, una vez ha sido restringido por las restricciones que se propagan, se realiza de menor a mayor, ya que representan instantes de tiempo y la función objetivo del problema requiere que cada trabajo sea realizado en el menor tiempo posible. A cada variable se le asigna el menor valor de su dominio que sea factible con respecto a las restricciones consideradas y a las asignaciones que le preceden. En cuanto a la heurística que ordena las variables, por un lado se utiliza un determinado ordenamiento entre las variables que representan el instante de inicio o el instante de finalización de tareas que pertenecen a un mismo trabajo y por otro lado se emplea otro concepto para establecer un orden de selección entre las variables que representan instantes de inicio o instantes de finalización de tareas pertenecientes a diferentes trabajos. Cada trabajo está definido por un conjunto de tareas cuya realización debe llevarse a cabo en un orden determinado. Este es el mismo orden que se utiliza para asignar valores a los instantes de inicio de cada una de las tareas que componen un mismo trabajo. Por lo tanto entre las variables que representan estos instantes de inicio existe un orden estático pre establecido. Siempre será seleccionada primero la variable que represente el instante de inicio de aquella tarea que deba ser realizada antes de las demás tareas del mismo trabajo según el ordenamiento establecido entre ellas. Ahora bien, el ordenamiento que se establece entre dos variables que hacen referencia a trabajos distintos, es dinámico y tiene en cuenta el estado de la solución siendo construida. Específicamente, se asignan probabilidades de selección a las variables que representan el instante de inicio de cada tarea que aún no ha sido seleccionada. Las probabilidades de selección aumentan cuanto mayor sea el retraso que lleve el trabajo al que pertenece la tarea, con respecto a la duración ideal del mismo. Esta heurística es descrita en detalle en la Sección En la Figura 5.3 se representa la ordenación tanto de variables como de valores

187 devalores 5.2. Aplicación de las técnicas CSP en el método de solución propuesto 157 VariablesdeOrden Variablex Variable Variablex2 Variablex3 Variable Orden 4 x6 x8 Figura 5.3: Ordenación de Variables y Valores en la construcción de una solución que es necesaria realizar cuando se construye una solución para el problema CSP. En cada nivel del árbol mostrado en la Figura 5.3 existe un conjunto de valores, pertenecientes al dominio de la variable seleccionada para ser asignada, uno de estos valores será elegido. En el método de solución propuesto en esta tesis, y descrito en este capítulo, según sea la variable seleccionada para ocupar cada nivel del árbol de búsqueda durante la construcción de una solución, se tendrá un valor u otro en la función objetivo correspondiente a dicha solución.

188 Un Procedimiento heurístico basado en ordenación (PBO) 5.3. Esquema General del Método de Solución propuesto En esta sección describiremos el procedimiento empleado para asignar una solución al problema de scheduling tipo Job Shop definido en el Capítulo 3. Cada instancia de este problema consta de una determinada función objetivo y de un conjunto finito de trabajos, recursos y restricciones. Cada trabajo está formado por una secuencia ordenada de operaciones, y cada una de estas operaciones necesita un determinado recurso, del conjunto especificado, para ser llevada a cabo. En la Figura 5.4 se proporciona un ejemplo de este tipo de problema. Se considera un conjunto compuesto por cuatro trabajos, {J 1, J 2, J 3, J 4 }, y un conjunto finito de recursos {m 1, m 2, m 3, m 4, m 5 }. Se ha utilizado la notación (k, i) para especificar que una operación del trabajo J i necesita utilizar el recurso m k. En la tabla de la Figura 5.4 se indica el orden en el cual las operaciones de cada trabajo utilizan los recursos. Así, en la primera fila de la tabla se indica que el trabajo J 1 consta de tres operaciones, la primera necesita utilizar el recurso m 2, la segunda el recurso m 3, y la tercera, que es la última operación de J 1, necesita utilizar el recurso m 4. La misma información es proporcionada para el resto de trabajos en las siguientes filas de la misma tabla. También se indican los instantes de tiempo en los que se considera factible que se inicie un trabajo. En la Figura 5.4, estos intervalos de tiempo son especificados por [IL i, Ii U ] para cada trabajo J i. Los instantes de tiempo que corresponden a cada intervalo son representados utilizando regiones rectangulares paralelas al eje de tiempo x. El objetivo del método de solución, consiste en asignar a cada operación del problema, un instante de inicio y un instante de finalización que satisfaga el conjunto de restricciones especificado y que optimice el valor de la función objetivo considerada.

189 Trabajos Máquinas/R J21ecursos m m4 m2 J 54 1m3 J m4 23Jm3m2 m4 m J1ecursos 4m5 m1m 2 m3m4m Esquema General del Método de Solución propuesto 159 J3J J4 J3 = {,,,, } J4L J = m{,,, } I4 I4U1L I2LI3U I3L1UI2U3I43 3Tiempox ( 2, ) ( ) ( ) ( 1, ) ( 2, ) ( 3, ) ( 4, ) ( ) ( 5, ) ( 4, ) ( 3, ) ( ) ( 4, ) ( ) ( 2, ) ( ) ( ) 2Máquinas/R m3 3,4 m2 3,1 1,4 4,1 5,22,3 Figura 5.4: Una instancia del problema de scheduling tipo Job Shop Volviendo al ejemplo de la Figura 5.4, en ella se indica una solución para la instancia considerada. Se ha asignado un instante de inicio y un instante de finalización a cada operación (k, i) de tal forma que se satisfaga el conjunto de restricciones considerado, particularmente el instante de inicio, la secuenciación de las operaciones, y la compartición simultánea de recursos. Así, cuando dos operaciones necesitaron utilizar un mismo recurso al mismo tiempo, el inicio de una de ellas fue retrasado hasta que la otra liberó el recurso requerido. Por ejemplo, las operaciones (2, 1) y (2, 4) pueden utilizar el mismo recurso m 2 al mismo tiempo. Sin embargo, esto no es posible ya que el mismo puede ser utilizado como máximo por una operación a la vez. Luego, para satisfacer esta restricción se retrasa el inicio de (2, 4) hasta que (2, 1) finalice la utilización de m 2. La operación (2, 4) no inicia la utilización de m 2 inmediatamente (2, 1) haya finalizado, porque debe existir un margen de tiempo entre la finalización de una operación y el inicio de otra que utiliza un mismo recurso. Esta misma situación ocurre entre los pares de operaciones (4, 1), (4, 3), y (3, 2),

190 Un Procedimiento Inicio heurístico basado en ordenación (PBO) Ordenación devariables Siguiente Elección Heurística Instante Restriccio deinicio nes Asignación Instante Elección deintervalo Tiempo Inicio de Construcci Soluciónón Decisión Heurística sobre HeurísticaPoda Solución deverificaci Evaluación Restriccio Parcial ón nes Función ObjetivoFinalizarSISolución Poda Proceso ó NO FinSI NO PrimeraSolución Decisión Prioridades sobre Mejor Solución SiguienteOperación unasolución Figura 5.5: Esquema del Método de Optimización y Satisfacción de Restricciones para un Problema tipo Job Shop

191 5.3. Esquema General del Método de Solución propuesto 161 (3, 3). El método propuesto en esta Tesis para la resolución de la tipología de problemas planteada es un procedimiento iterativo que se basa en cuatro aspectos fundamentales: (i) Utiliza cada iteración para construir una solución. (ii) El procedimiento finaliza cuando una determinada condición, número de iteraciones, tiempo de ejecución, coste de la función objetivo, es alcanzada. (iii) La construcción de cada solución se lleva a cabo asignando un horario factible a cada operación del problema en forma secuencial. (iv) La construcción de una solución será interrumpida si el procedimiento estima que su coste será igual o peor que el coste de la mejor solución obtenida hasta entonces. En la Figura 5.5 se proporciona un esquema de este procedimiento. En ella se distingue la siguiente secuencia de etapas: a) Elección Siguiente Operación (criterio heurístico), b) Elección de Instante de Inicio (criterio heurístico), c) Asignación Intervalo de Tiempo, d) Verificación de Restricciones, y e) Evaluación Solución Parcial (criterio heurístico). El marco, señalado con la etiqueta Construcción de una Solución en la Figura 5.5, incluye a las etapas citadas en el párrafo previo, resaltando que su ejecución en el orden dado, es repetida hasta que se obtenga una solución, o bien hasta que la etapa Evaluación Solución Parcial decida interrumpir la construcción de la solución actual (poda). Ambas posibilidades para finalizar una iteración son representadas por el elemento de decisión etiquetado Poda ó Solución en la Figura 5.5. La construcción de una solución es interrumpida cuando la etapa Evaluación Solución Parcial estima que el coste de la misma será igual o peor que el coste de la mejor solución obtenida hasta entonces. En uno u otro caso, poda ó solución alcanzada, se inicia una nueva iteración del procedimiento principal, siempre y cuando la condición de parada no haya sido alcanzada (elemento de decisión etiquetado Fin de Proceso en la Figura 5.5). Si por el contrario la condición de parada ha sido cumplida, el procedimiento principal proporciona la mejor solución y finaliza.

192 Un Procedimiento heurístico basado en ordenación (PBO) El procedimiento descrito es pues un método constructivo, guiado heurísticamente. El método busca la construcción de soluciones que cumplan las restricciones del problema y se basa en criterios heurísticos para lograr la eficiencia en la construcción de la solución y la optimalidad de la misma. En los siguientes apartados, describiremos en qué consiste cada etapa de la construcción de una solución, según el método de solución propuesto. a) Elección Siguiente Operación. Heurística para Asignar Prioridades a cada Operación Elección Siguiente Operación es la etapa responsable de seleccionar la siguiente operación del problema a la cual se deberá asignar un instante de inicio y un instante de finalización factible. En el momento que se debe tomar esta decisión existen dos conjuntos disjuntos de operaciones. Uno de ellos está formado por las operaciones ya seleccionadas y el otro por las operaciones aún no seleccionadas, siempre considerando la construcción de una misma solución. Se utiliza un criterio o heurística para seleccionar uno de los elementos del segundo conjunto. Esta selección se realiza de forma heurística porque el orden en el cual sean seleccionadas las operaciones determinará el orden de prioridades entre ellas. Si la operación (k, i) fue seleccionada antes que la operación (k, j), entonces (k, i) tendrá mayor prioridad sobre el recurso m k que la operación (k, j), en el caso que ambas compitieran por el mismo. Decimos que dos operaciones compiten por un mismo recurso, cuando requieren utilizarlo al mismo tiempo y la capacidad del mismo no permite que sea utilizado por más de una operación a la vez. En ese caso la operación cuya prioridad sea mayor, utilizará primero al recurso. Por lo tanto, es la ordenación en la selección de las operaciones la que determina la calidad de una solución, ya que dependiendo de qué operación sea priorizada se tendrá una u otra solución. La heurística guía al procedimiento indicándole qué operación entre las no seleccionadas, debe tener mayor prioridad. Para ello considera la función objetivo y el estado actual del problema. Si consideramos la Figura 5.4 se puede ver que las operaciones (3, 2) y (3, 3), que necesitan del mismo recurso m 3 para ser llevadas a cabo, lo compartirían si ambas se iniciaran en el instante de inicio especificado para las mismas. La operación (3, 2) pertenece al trabajo J 2, cuyas operaciones utilizan los recursos en un determinado orden, y la operación (3, 3) pertenece al trabajo J 3, cuyas operaciones utilizan los

193 5.3. Esquema General del Método de Solución propuesto 163 recursos en el orden inverso al utilizado por J 2. Por lo tanto, el recurso m 3 no puede ser compartido por (3, 2) y (3, 3). Debido a esta restricción se retrasa el inicio de la operación (3, 3) hasta que (3, 2) libere el recurso m 3. En este caso la operación (3, 2) tiene mayor prioridad que la operación (3, 3) porque (3, 2) ha sido seleccionada previamente a (3, 3). La heurística utilizada consiste en asignar una probabilidad de selección a cada operación aún no seleccionada, de tal forma que la suma de probabilidades sea igual a uno. Esta asignación de probabilidad a cada operación se hace en base a una ponderación del retraso que lleva el trabajo al cual pertenece, con respecto a su tiempo ideal. Cuanto mayor sea el retraso, mayor será la probabilidad de selección de la operación que pertenece al mismo. Es importante notar que cuando existe más de una operación perteneciente al mismo trabajo entre las operaciones no seleccionadas, solo es considerada aquella operación cuyo orden de ejecución es el menor. Es decir, se respeta la relación de precedencia entre las operaciones de un mismo trabajo. La heurística empleada está basada en el procedimiento Regret-Based Biased Random Sampling (RBRS) propuesta por Drexl, [38] y [39], quien introdujo el concepto de regrets (en español se ha utilizado el término sesgo) en los procedimientos que realizan un muestreo aleatorio (random sampling). El valor de sesgo v (j) de un candidato j mide la consecuencia que podría resultar, en el peor caso, si otro candidato fuera seleccionado. Siendo D n el conjunto de candidatos y V (D n ) el conjunto de valores de prioridad, v(j), correspondiente a cada candidato, se calcula el valor de sesgo como v maxv (D n ) v(j) (j) = v(j) minv (D n ) si el objetivo es maximizar si el objetivo es minimizar Posteriormente el valor calculado es modificado a (5.3.1) v (j) = (v (j) + ε) α (5.3.2) donde ε R + y α 0, α R. Habiendo determinado estos valores, la probabilidad de selección de cada candidato j es derivada de la expresión p(j) = v (j) i D n v (i) (5.3.3)

194 Un Procedimiento heurístico basado en ordenación (PBO) En el caso del problema considerado en esta tesis, el conjunto de candidatos está formado por los trabajos j que tengan por lo menos una operación a la que aún no se le haya asignado un horario factible. El valor de prioridad v(j) es el retraso que lleva el trabajo, en el momento que se realiza la elección de la siguiente operación, con respecto a su tiempo ideal. Para llevar a cabo tal medición solo se consideran las operaciones del trabajo a las cuales se ha asignado un horario factible. El valor ε garantiza que v (j) no sea igual a cero, ya que de lo contrario aquellos candidatos con un retraso igual a cero no serían seleccionados. El valor de α permite aumentar o disminuir las diferencias entre los valores de prioridad, según sea α > 1 o α < 1, respectivamente. Si α = 0, el proceso de selección se vuelve completamente aleatorio, ya que todos los candidatos compartirán la misma probabilidad de ser seleccionados. Por otro lado cuando α tiende a, el proceso se comporta de forma determinista, ya que la probabilidad de la operación con probabilidad más alta de ser seleccionado converge a uno. Una vez que cada operación tenga asignada una probabilidad de selección p(j), se obtiene de forma aleatoria, un número entre 0 y 1. Posteriormente, se procede a sumar, en un orden indeterminado, la probabilidad de selección de cada operación perteneciente al conjunto de candidatos. La suma finaliza cuando se alcanza un valor igual o mayor que el número aleatorio obtenido. La operación, cuya probabilidad de selección sea el último valor agregado a la suma, será la siguiente operación a la cual se deba asignar un horario factible. b) Elección del Instante de Inicio Una vez seleccionada la siguiente operación a la cual se deberá asignar la utilización del recurso así como un horario factible, el siguiente paso consiste en seleccionar un instante de inicio para la misma. Cuando se trata de la primera operación de un trabajo, el instante de inicio de la misma corresponde al instante de inicio del trabajo al que pertenece. Dado que cada trabajo tiene asignado un conjunto de valores que corresponden a los instantes de inicio considerados válidos, el instante de inicio asignado a la primera operación del trabajo debe ser un elemento de este conjunto. El conjunto de instantes de inicio válidos puede ser dado por un intervalo de valores (desde las 08:00 hasta las 10:00, ambos inclusive) o bien por un único valor, que significa que se desea que la operación se inicie en el primer instante igual

195 5.3. Esquema General del Método de Solución propuesto 165 o posterior a dicho valor que sea factible con respecto al resto de restricciones. Esta asignación es realizada de tal forma que se cumpla la restricción C 12 - Intervalo de Salida (Sección 3.4.2). Si por el contrario, no se trata de la primera operación de un trabajo, la asignación del instante de inicio es igual al instante de finalización de la operación previa a la misma según la ordenación de operaciones correspondiente al trabajo al cual ambas pertenecen. c) Asignación Intervalo de Tiempo Cada operación tiene asignado un tiempo de procesamiento (ver restricciones sobre tiempo de recorrido C 8 y sobre parada comercial C 16 en la Sección 3.4.2), por lo tanto dado un instante de inicio, se suma el tiempo de procesamiento indicado para la misma y se obtiene un instante de finalización. La siguiente etapa del método de solución verifica si es factible que el recurso utilizado por la operación sea ocupado durante el intervalo de tiempo especificado por el horario asignado a la misma. d) Verificación de Restricciones Una vez que la operación tiene un instante de inicio y un instante de finalización, se procede a verificar si el intervalo de tiempo asignado a la misma es válido con respecto al conjunto de las restricciones consideradas en el problema. Para la verificación de las restricciones solo se tiene en cuenta aquellas operaciones cuyos horarios de inicio y de fin han sido asignados previamente, y por lo tanto sus prioridades son mayores con respecto a la prioridad de la operación siendo asignada actualmente. Si alguna restricción es incumplida se procede a modificar el instante de inicio de tal forma que se repare el incumplimiento. Las restricciones no cumplidas por el horario asignado, se deben principalmente a que los recursos que debería utilizar la operación actual, ya están siendo utilizados por otras operaciones en el intervalo de tiempo asignado. Por lo tanto, la reparación consiste en retrasar el instante de inicio de la operación actual hasta el instante en el que el recurso requerido haya sido liberado por las operaciones que lo estaban ocupando. Luego, se vuelve a verificar el conjunto de restricciones. e) Evaluación Solución Parcial - Posibilidad de Poda

196 Un Procedimiento heurístico basado en ordenación (PBO) A medida que el método construye una solución, existe un proceso que evalúa las asignaciones realizadas hasta el momento y decide si seguir construyendo dicha solución o interrumpirla e iniciar la construcción de una nueva. La evaluación de la asignación parcial es realizada para evitar emplear tiempo de cómputo construyendo una solución que finalmente no sería mejor que la obtenida hasta entonces. La etapa Evaluación Solución Parcial en la Figura 5.5 es la responsable de evaluar el conjunto de asignaciones realizadas y decidir si se debe interrumpir o no la construcción actual de una solución. Este proceso es llamado cada vez que a una operación se le asigna un instante de inicio y un instante de finalización válidos, es decir que la asignación de recursos que utiliza dicha operación en el intervalo de tiempo es factible con respecto al resto de tareas que ya han sido asignadas previamente. En términos de un CSOP, cuando el proceso evaluador es llamado puede existir un conjunto de variables que no estén asignadas. En ese caso decimos que la asignación a evaluar es una asignación parcial. De no ser asi, todas las variables han sido asignadas, decimos que la asignación a evaluar es una solución del problema. En el caso que sea una asignación parcial, existirán variables cuyos valores no han sido asignados, por lo tanto se asume un valor potencial para dichas variables. El valor potencial para cada variable sin asignar es determinado de tal forma que cualquier otro valor factible para la misma haría que el valor de la función objetivo fuese igual o peor que la estimada. Por la forma en que se estiman los valores de las variables sin asignar decimos que la estimación es conservadora, ya que si se dejara terminar la construcción de dicha solución el valor real de la función objetivo correspondiente a la misma siempre sería igual o peor, pero nunca mejor. Por lo tanto si el valor estimado de la función objetivo de una asignación parcial es peor que el valor de la función objetivo de la mejor solución obtenida hasta entonces, es seguro que finalizar la construcción de la asignación parcial solo daría una solución peor que la mejor obtenida hasta entonces. Por lo tanto, si la estimación indica que se debe interrumpir, es un ahorro de tiempo que permite obtener un mayor número de soluciones en menor cantidad de tiempo. Si consideramos que el árbol de búsqueda de la Figura 5.6 representa el proceso utilizado para construir las soluciones del problema, podemos considerar el proceso

197 5.3. Esquema General del Método de Solución propuesto 167 evaluador como el sistema utilizado para podar las ramas del mismo que no aporten mejores soluciones. Cada rama del árbol representa la construcción de una solución. Cada nodo de una rama corresponde a una asignación y esto a su vez corresponde a la ubicación de una operación del Job Shop en el tiempo. El proceso evaluador es llamado cada vez que una asignación es realizada. Como puede verse en la Figura 5.6, en el instante que este proceso es llamado, puede existir una asignación parcial, es decir ciertos nodos de la rama actual, aún no han sido generados (nodos, cuya circunferencia está formada por línea de puntos) o puede existir una solución, situación que se produce cuando todos los nodos de una rama han sido generados. En una de las ramas de la Figura 5.6, el evaluador decide interrumpir, por lo cual la rama es cortada y ningún otro nodo es generado. En otra de las ramas, el evaluador decide continuar todas las veces que es llamado, hasta el final de la generación de la rama, momento en el cual produce el valor real de la función objetivo para el conjunto de asignaciones realizadas, es decir para la solución representada por dicha rama. Este valor solo puede ser igual o mejor que el valor de la función objetivo correspondiente a la mejor solución obtenida hasta entonces.

198 Un Procedimiento heurístico basado en ordenación (PBO) Fin Figura 5.6: Evaluación Solución Parcial decide sobre la poda de una rama del árbol de búsqueda Resumiendo, el procedimiento Evaluación Solución Parcial estima el tiempo que será necesario para llevar a cabo un trabajo, cada vez que se asigna un horario factible a una operación del mismo. Considerando el conjunto de trabajos del problema y las estimaciones asociadas a cada uno, se calcula el valor de la función objetivo. Si el coste obtenido es mayor o igual que el coste de la mejor solución obtenida hasta entonces, se interrumpe la construcción de la solución actual. La estimación realizada por el procedimiento Evaluación Solución Parcial consta de dos partes, g(n) y h(n). La función g(n) proporciona el tiempo empleado por las n primeras operaciones del trabajo considerado, deducido a partir del horario factible que ya ha sido asignado a las mismas. Por otro lado, la función h(n) estima el tiempo que emplearán las operaciones restantes, a las cuales no se les ha asignado horario

199 5.4. El Problema OPT como un Problema de Scheduling tipo Job Shop 169 alguno. Si consideramos que h (n) es el tiempo real transcurrido desde que se inicia la primera operación hasta que finaliza la ultima operación del trabajo considerado, decimos que el procedimiento Evaluación Solución Parcial es conservador porque el valor de h(n) siempre será menor o igual que el valor de h (n). Esto significa que en ningún caso se interrumpirá la construcción de una solución que de haber sido completada hubiese sido mejor que la obtenida hasta entonces. En el caso que la estimación realizada h(n) pudiese ser en ciertos casos mayor que h (n) aumenta la posibilidad de que una solución parcial sea interrumpida en una fase más temprana de su construcción, ya que cuanto mayor sea la sobre estimación realizada por h(n) mayor debería ser la optimización realizada durante la construcción de una solución, como para que esta no sea interrumpida. La desventaja de una sobre estimación es que también aumenta en la misma proporción, la posibilidad de interrumpir soluciones parciales, que de ser completadas hubiesen sido mejores que la obtenida hasta entonces El Problema OPT como un Problema de Scheduling tipo Job Shop El problema OPT ha sido utilizado como marco del trabajo realizado. Hemos considerado que es un problema tipo Job Shop, que a su vez puede ser modelado como un problema CSOP, lo cual ha sido descrito con detalle en el Capítulo 2. En el problema OPT, un trabajo consiste en el recorrido completo que lleva a cabo un tren. Las operaciones que forman parte de un trabajo en OPT consisten en pasar por estaciones y recorrer tramos entre estaciones. Para llevar a cabo cada operación es necesario utilizar determinados recursos, que en este caso son las vías en la estación, o las vías en el tramo, según el tipo de operación que se trate. El orden entre las operaciones de un mismo trabajo, lo determina el recorrido de cada tren y constituyen las relaciones de precedencia de un problema de scheduling tipo Job Shop. El tiempo de procesamiento de una operación está dada por el tiempo que un tren permanezca en una estación o por el tiempo que un tren emplee en recorrer un tramo de su recorrido.

200 Un Procedimiento heurístico basado en ordenación (PBO) Los trenes que viajan en sentido ida utilizan los recursos siguiendo un determinado orden, y los trenes que viajan en sentido vuelta utilizan una parte o los mismos recursos, pero siguiendo un orden inverso. Las restricciones definidas en la sección determinan las condiciones en las cuales se considera factible la utilización de los recursos, considerando el conjunto de operaciones del problema. Así, las restricciones de cruce regulan el uso de aquellos recursos que son utilizados por operaciones pertenecientes a trabajos que siguen un orden inverso. Dichas operaciones no podrán utilizar al mismo tiempo estos recursos e incluso deberá existir un margen de tiempo, considerado como un margen de seguridad entre el inicio de las operaciones sobre el mismo recurso (tiempo de recepción) así como entre el intercambio de recursos entre las dos operaciones (tiempo de expedición). Esto es equivalente a establecer un orden de prioridades entre operaciones que pertenecen a diferentes trabajos sobre la utilización de un mismo recurso. Por otro lado existen restricciones sobre la utilización de recursos entre operaciones que siguen un mismo orden. Existen recursos que permiten que más de una operación lo utilice al mismo tiempo siempre y cuando exista una determinada cantidad de tiempo entre el inicio de una y otra, así como entre el instante de finalización de las mismas (sucesión automática). Otros recursos no permiten que dos operaciones lo utilicen simultáneamente (sucesión manual). Las estaciones son consideradas centros de trabajo donde existen varias máquinas que pueden ser utilizadas en paralelo (vías). En estos centros de trabajo no está permitido que se lleven a cabo simultáneamente más operaciones que el número máquinas disponibles (restricción que determina la capacidad limitada de cada estación). Las operaciones de mantenimiento, o el horario de cierre de una estación son otras de las restricciones que limitan el periodo de tiempo que un recurso puede ser utilizado por una operación, o al menos limitan los periodos de tiempo en los cuales dichos recursos pueden ser utilizados teniendo en cuenta su capacidad total. En este problema de scheduling tipo Job Shop la función objetivo consiste en minimizar el retraso promedio de cada trabajo con respecto a un tiempo de referencia y la diferencia entre el retraso promedio correspondiente a los trabajos que siguen un orden en la utilización de los recursos y el retraso correspondiente a los trabajos que siguen el orden inverso. A cada criterio se le asigna un peso.

201 5.4. El Problema OPT como un Problema de Scheduling tipo Job Shop 171 Operación Trabajo Propiedade Recurso de Scheduling s Vías Visita al ferroviari Problema origen as-unadependenci Tren oen Shop tramos un tren Centro Relación debe Tramo Dependenci visitar un a Restricció -Alcance -Cruce Sucesión Manual tren Inicio dependencia (Due FinalizaciDate) Restriccio aplicación de (necesaria Preparació (ReleaseTrabajo Trabajo SalidasPeriódicas (SetupTime) nesrecurso ) dominiode -RetrasoMáximo Parada Demora Adelantami Automática Llegada Cierre Comercial Expedición Recepción Expedición Recepción ento nto Función Objetivo de promedio - prevista retrasovuelta deun tipojobshop problema detrabajo deprecedencia deun ón n decapacidad deun lasolución spara n del Adicionales. en lafactiblidad el -Recorridodeun deun Correspondencia Tren descheduling tramoadestinorealizadopor dependencias deopt un tipojoba Secuenciaordenadadedependenciasque Capacidaddeuna -Sucesión Intervalode Tiempode Tiempode BandasdeMantenimie Horariode -Minimizar Minimiar trenesqueviajan delos por retrasopromediodelos diferencia paradano trenesqueviajan entreel sentidoida retrasopromedio en y Trenes el sentido Figura 5.7: Correspondencia entre las propiedades de un Job Shop y el Problema OPT

202 Un Procedimiento heurístico basado en ordenación (PBO) En la Figura 5.7 se resumen las propiedades de un problema de Scheduling tipo Job Shop identificando la correspondencia de las mismas con las propiedades del problema OPT Consideraciones en la Aplicación del método al problema OPT El método de optimización descrito en este capítulo construye una solución al problema, al mismo tiempo que verifica un determinado conjunto de restricciones, el cual puede incluir o no la restricción sobre periodicidad en salidas consecutivas (restricción C 15 de la Sección 3.4.2). Cuando se desea que determinados trenes partan de ciertas estaciones con un periodo de tiempo definido entre sus salidas, se requiere agregar operaciones al método previamente descrito en la Sección 5.3, de forma que asegure el cumplimiento de la restricción sobre periodicidad en salida. Para poder explicar con mayor facilidad cómo se lleva a cabo la satisfacción de la restricción C 15, a continuación describiremos ciertos conceptos que son utilizados en el método de optimización La Periodicidad en Salida es incluida en el conjunto de Restricciones La restricción C 15 especifica que debe existir un periodo de tiempo entre las salidas consecutivas de determinados trenes. Cada sub conjunto de trenes i, cuyas salidas consecutivas deben ocurrir cada cierto periodo de tiempo, se denomina Grupo de Trenes G i T new. Así, G i representa el iésimo subconjunto de T new para el cual se exige un determinado periodo entre las salidas de sus trenes, de determinadas dependencias. En una instancia del problema pueden existir como máximo N grupos (0 N T new 2 ). Cuando N = 0 significa que en esa instancia del problema no se exige periodicidad entre las salidas de los trenes. Luego, la restricción C 15 no es incluida.

203 5.5. Consideraciones en la Aplicación del método al problema OPT 173 La restricción C 15 debe aplicarse tantas veces como grupos, G 1, G 2,..., G N exista, teniendo en cuenta las especificaciones realizadas por cada grupo definido. Todo grupo G i reúne las siguientes características: tiene por lo menos dos elementos (dos trenes), ya que de lo contrario no tendría sentido definir un periodo entre salidas, si dos trenes forman parte de un mismo grupo, entonces realizan el mismo recorrido incluyendo el sentido de viaje (Ida o Vuelta). si existen dos o más grupos, entonces estos deberán ser disjuntos entre sí. Estos requisitos, que asumimos debe satisfacer todo grupo de trenes sobre los cuales se desea establecer la restricción C 15, son modelados mediante la expresión 5.5.1, donde G = {G 1,..., G N } es el conjunto de grupos especificados sobre T new. G i G : G i > 1 G i T new ( G j G : i <> j G i G j = ) ( t x G i, t y G i : (L = J x M = J y ) (L = M ( j N : 0 j < L lj x = l y j ))) (5.5.1) Por cada grupo G i, 1 i N, se especifica un intervalo [P i L, P i U] que define el conjunto de valores válidos para el periodo de tiempo (en adelante, periodo) que debe existir entre las salidas de los trenes consecutivos que lo forman. La expresión formula la restricción C 15 que debe ser satisfecha por cada grupo G i definido en T new. En dicha expresión t x y t y son trenes consecutivos en G i y S periodoi es el conjunto de dependencias l i k J i, en las cuales todo par de trenes consecutivos {t x, t y } G i, debe satisfacer un determinado periodo entre sus salidas. Dicho periodo debe estar comprendido entre P i L y P i U. El conjunto S periodoi siguientes: es definido por cada grupo G i en una de las dos formas a)periodicidad en todas las salidas: S periodoi = {l k \l k = l i 0 Ck i > 0}. La periodicidad en la salida de los trenes de G i deberá cumplirse en la estación inicial del recorrido J i y en toda estación de J i donde haya sido especificada para los trenes de G i, una parada comercial C i k mayor a cero. b) Periodicidad en Salida Inicial: S periodoi = {l0}. i La periodicidad en la salida

204 Un Procedimiento heurístico basado en ordenación (PBO) de los trenes de G i deberá cumplirse únicamente en la estación inicial de J i. t x G i, t y G i, l i k S periodo i : (dep ty k > dept x k ( t G i : dep t k > deptx k dept k < dept y k )) P i L dep ty k deptx k Pi U (5.5.2) La figura 5.8 muestra el algoritmo empleado para obtener una solución al problema OPT en el caso que el conjunto de restricciones que deba ser considerado incluya a la restricción que exige un determinado periodo de tiempo entre las salidas consecutivas de determinados trenes. Es decir, para aquellas instancias en las cuales se haya especificado uno o más grupos G i de trenes cadenciados. En este apartado daremos una descripción general del algoritmo presentado en la Figura 5.8. En la Sección 5.6 se explicará cada paso del algoritmo en detalle así como la correspondencia del mismo con el método de solución general propuesto en este capítulo. Cuando el método de solución propuesto debe ser aplicado al problema OPT, y en el mismo se han especificado grupos de trenes cadenciados, la asignación de horarios se realiza seleccionando un grupo de trenes cadenciados y una parte de sus correspondientes recorridos por vez (ciclo 2 en la Figura 5.8). Una vez todos los grupos hayan sido seleccionados, se repite el procedimiento para las partes siguientes de los recorridos (ciclo 1 en la Figura 5.8). El procedimiento finaliza una vez que todas las partes de cada recorrido hayan sido consideradas o cuando se interrumpe la iteración actual porque se estima que no conducirá a una solución mejor a la obtenida hasta entonces (prune =True en la Figura 5.8). En la Figura 5.9 se indica la correspondencia entre el método de solución general y su aplicación al problema OPT, cuando se incluye la restricción C 15 sobre las salidas consecutivas de trenes cadenciados.

205 5.5. Consideraciones en la Aplicación del método al problema OPT 175 Function WhileG prune afalse i1 While 1ProgramarC i i While ref inumpart GAnd prune False False = End conjunto adenciados End s0 i ini=1 =i //la //el //recorrid recorrido prune primerai0 parte dehorarios (bestnumpart, decada grupo, grupo esparticiona ) AsdolaTimetablin en g estación inicialdel = = j (ininumpart si =, j ) = Endiaini1 =i While adarhoragrupo( sini, refi, best, //ciclo2 a, prune,g 1 Gδ //ciclo//la //van isecuencia ) desde //en signación lass ini iestaciones dehasta estaciones derefdeaconsiderar factibledesde alostrenes s inihasta deref iij + = End Ifprune //para l asiguiente lostrenes Function aelse secuencia de return Gisede iniciará donde estación sedeberá finalde asignar lasecuencia horarios actual + jδ s= + = Figura 5.8: Algoritmo para planificar horarios de Trenes Cadenciados =1j irefi =j ij=seleccionarestref FalseThen //siguientegrupo return // variablequeindica ol siseinterrumpe seinicia onoen la construcción numpartsdeunasolución estaciones, con la un ij horario a su recorrido G

206 Un Procedimiento heurístico basado en ordenación (PBO) (bestnumpart,, As) Timetablin Siguiente Inicio gsolución WhileG i11 End0 afalse ii s0 ref ini=1 =i ij i i +1 igand prunefalse Siguiente Elección Parte Elección Recorrido Siguiente Grupo Tarea salidas Trenes los periodo queseexige consecutivos detiempoentre un det. entre sus Gδ =SeleccionarEstRef(ininumPart si, j, ) prune= Asignaciónnes Instante Horario Asignación Elección deintervalo Factible Inicio de Tiempo Secuencia por cadatren detramos delgrupo = aadarhoragrupo( sini, refi, best, a, prune,gi) deverificaci SIEvaluacion Restriccio If End prune Function ini irefi While False jthen return aelsereturn Continuar Fin NO SI = = = j = = + End = + jδ s= Figura 5.9: Implementación del Método propuesto al problema OPT que incluye la restricción sobre Periodicidad en Salida

207 5.5. Consideraciones en la Aplicación del método al problema OPT La Periodicidad en Salida NO es incluida en el conjunto de Restricciones Cuando en una instancia del problema el número de grupos definidos a partir del conjunto T new es igual a cero, significa que no se exige periodicidad entre las salidas de ningún par de trenes pertenecientes a dicho conjunto, y por lo tanto la restricción C 15 no es un requerimiento en esta instancia del problema. El hecho de no verificar que un determinado grupo de trenes satisfaga un periodo entre sus salidas consecutivas cada vez que la salida de uno de ellos es modificada, permite que sea empleado un algoritmo diferente al de la Figura 5.8 para la asignación de horarios a trenes pertenecientes a T new. En la Figura 5.10 se muestra el algoritmo empleado en cada iteración del método de solución cuando no se incluyen trenes cadenciados. El objetivo del mismo es hallar una de las soluciones al problema. Function PlanificarSinPeriodo(δ best ) As Timetabling T open = T new ; prune =False While(T open <> And prune =False) t i =SeleccionarTren() sec i j =SeleccionarTramo(t i) ā = ā AsignarHoraTrenTramo(t i, sec i j ) If(UltimoTramo(t i, s j )) Then T open = T open \ {t i } δ est =EstimarCosto(ā) If (δ est > δ best ) Then prune =True End While If(prune =False) Then return ā Else return End Function Figura 5.10: Algoritmo para la Asignación de Horarios a Trenes No Periódicos El algoritmo de la Figura 5.10 consta de la siguiente secuencia de acciones: Seleccionar un tren t i, Asignar un horario factible al tren t i en el tramo correspondiente de su recorrido,

208 Un Procedimiento heurístico basado en ordenación (PBO) Estimar un coste para la solución parcial, que es repetida hasta que todo tren de T new tenga asignado un horario factible en todas las dependencias de sus correspondientes recorridos, o hasta que el coste estimado de la solución parcial indique que esta debe ser interrumpida (poda de una solución). En las siguientes secciones describiremos con mayor detalle cada una de éstas acciones que hacen a la búsqueda de una solución Descripción detallada del Método de Solución aplicado al Problema OPT En las secciones previas se ha descrito el esquema general del método de solución que hemos propuesto para resolver problemas de scheduling tipo Job Shop (Figura 5.5). En esta sección se describirá en detalle su aplicación al problema OPT, distinguiendo el caso en el cual se incluyen trenes cadenciados del caso en el que no se especifica ningún grupo de trenes cadenciados. En la Figura 5.9 se indica la relación entre las etapas del método de solución general, descrito en la Sección 5.3, y los procedimientos o pasos que resultan de su aplicación al problema OPT, específicamente para el caso en el cual se han especificado trenes cadenciados. Hemos denominado Proceso Basado en Ordenación (PBO) al método de solución propuesto. En la siguientes secciones explicaremos cómo se lleva a cabo cada etapa de este procedimiento cuando es aplicado para resolver el problema OPT Primera Etapa: Siguiente Operación En el problema OPT, elegir la siguiente operación, consiste en elegir el siguiente tramo del recorrido de un tren. Cuando más de un tramo del recorrido de un mismo tren carece de horario, no todos estos tramos son candidatos a ser seleccionados, únicamente el tramo por el cual pasaría primero el tren. La elección realizada en esta etapa determina el orden de prioridades entre los trenes sobre las vías de un mismo tramo.

209 5.6. Descripción detallada del Método de Solución aplicado al Problema OPT 179 El hecho de que un horario satisfaga un conjunto determinado de restricciones puede implicar resolver conflictos entre trenes que compiten por un mismo tramo, ya sea trenes del mismo sentido o trenes con sentidos opuestos. La forma en que estos conflictos sean resueltos determinará la diferencia entre una solución y otra, y por lo tanto la diferencia entre uno y otro coste de la función objetivo F (ā). En el método que hemos desarrollado, un conflicto es resuelto según la prioridad asignada a cada tren. La prioridad a su vez es asignada según el orden en el que cada tren haya ocupado un determinado tramo. Es por ello que el hecho de asignar un horario factible a un tren en una parte de su recorrido y no necesariamente en todo su recorrido antes de seleccionar un siguiente tren, permite que las prioridades de los trenes sean establecidas por tramos y no por recorridos. De esta forma se permite que una región mayor del espacio de búsqueda genere soluciones factibles y con ello mayor posibilidad de encontrar una solución cercana a la óptima. a) Periodicidad en Salida es incluida en el conjunto de restricciones En este apartado detallaremos cómo se lleva a cabo la elección de la siguiente operación, cuando en el problema existen uno o más grupos de trenes cadenciados. En este caso, no se elige el siguiente tramo correspondiente a un solo tren, sino el siguiente tramo correspondiente a cada uno de los trenes pertenecientes a un mismo grupo de trenes cadenciados. Además, puede elegirse más de un tramo del recorrido de un mismo tren, siempre y cuando sean consecutivos y se respete la relación de precedencia entre los tramos de un mismo recorrido. Si se eligen n 1 tramos del recorrido de un tren que pertenece a un grupo de cadenciados, también deberán ser elegidos n tramos del recorrido correspondiente al resto de trenes pertenecientes al mismo grupo. Como puede verse en la Figura 5.8, el método divide el recorrido de cada grupo en nump art partes. Cada parte es una secuencia ordenada, subconjunto del recorrido considerado y por cada una se asigna un horario factible a un grupo por vez. El hecho de permitir que el horario de un tren sea asignado en una parte de su recorrido antes de seleccionar un siguiente tren, y no necesariamente en todo su recorrido de una vez, permite que existan más soluciones diferentes y con ello mayor posibilidad de obtener mejores soluciones. A cada parte j de un recorrido J i denominamos J ij. En los siguientes párrafos

210 Un Procedimiento heurístico basado en ordenación (PBO) l ;}0 ; 4 describiremos cómo es formada cada una de las partes J ij correspondientes a una solución determinada. El conjunto G = {G i \1 i N} define los N grupos a ser considerados. El método utilizado selecciona un grupo G i G por vez en un orden secuencial desde i = 1 hasta i = N. Cada vez que selecciona un grupo, debe decidir qué tramos de J i formarán parte de la jésima partición que realiza sobre este recorrido. Por cada grupo G i se identifica un conjunto de estaciones de referencia S i = {s j \s j J i S} donde cada elemento del mismo es una dependencia de J i cuyo tipo es estación. En la figura 5.11 se muestra un ejemplo de conjunto S i para un grupo G i l1 l2 l3 l4 0 txty { ssjt0i x, t ly{ 0sl0, sls 1G1, lsi2 l, } 1l3, l4s} 2l. = = = = = Figura 5.11: Estaciones de Referencia para el grupo G i de trenes El número de particiones que se pueden realizar sobre los recorridos J i es un parámetro de cada instancia del problema y está representado por la variable nump art en la Figura 5.8. El conjunto de grupos G es recorrido nump art veces y por cada vez una parte de J i es definida. Cada partición J ij, 1 j nump art de un recorrido J i = {l0 i, li 1,.., li m i } es una secuencia ordenada finita de dependencias, subconjunto de J i. Considere que J i0 J i1.. J inump art = J i. Las particiones se forman seleccionando nump art estaciones de S i. A cada una de ellas se denomina ref ij, 1 j nump art. Teniendo en cuenta que ref inump art = l mi, podemos definir una partición J ij como la secuencia ordenada de dependencias {lx, i lx+1 i,.., li x+n ij } donde: l lx i 0 i if j = 1, = ref ij 1 if j > 1.

211 5.6. Descripción detallada del Método de Solución aplicado al Problema OPT 181 l i x+n ij = ref ij j N : 1 j < nump art J ij J ij+1 = {ref ij } Teniendo en cuenta la definición previa, una posible partición para J i siendo nump art = 3 podría ser J i1 = {l0 i,.., li k }, J i 2 = {lk i,.., li n}, y J i3 = {ln, i.., lm i i }. Cada jésima parte de un recorrido J i finaliza con una estación ref ij J i S i a la cual denominamos jésima Estación de Referencia de G i. La selección de Estaciones de Referencia para un grupo G i es realizada en forma independiente del resto de grupos en G. Si consideramos el ejemplo anterior, las estaciones de referencia correspondientes a las partes j = 1, j = 2 y j = 3 del grupo G i son las estaciones l k, l n y l mi, respectivamente. El hecho de ser lk i Estación de Referencia de la parte j = 1 de un grupo G i, no implica que deba ser Estación de Referencia de las partes j = 1 del resto de grupos en G. En la Figura 5.12 se muestra un ejemplo de cómo se han particionado los recorridos correspondientes a dos grupos de trenes G i y G k, siendo nump art = 2. En este ejemplo, se debe seleccionar dos estaciones de referencia por cada grupo, ya que el número de particiones es igual a 2. En el caso del grupo G i, la estación de referencia es s i2, y en el caso del grupo G k, las estaciones de referencia son s k2 y s k4. El grupo G i consta de una sola estación de referencia, porque esta estación es la ultima estación de su recorrido. La etapa Siguiente Operación selecciona un grupo de trenes, a partir del cual conoce la estación de referencia que debe utilizar como límite del recorrido a ser seleccionado. Así, si se selecciona al grupo G i del ejemplo previo, y se trata de la primera partición, entonces la estación de referencia es s i2, por lo tanto los tramos seleccionas en esta etapa son los que se hallan entre la estación origen de cada tren de G i y la estación de referencia s i2. Si por el contrario, hubiera sido seleccionado el grupo G k, y se tratara de la primera partición de los recorridos, entonces los tramos seleccionados hubieran sido aquellos comprendidos entre la estación origen de cada tren de G k y la estación de referencia s k2. Cuando vuelva a ser aplicada la etapa Siguiente Operación durante la construcción de la misma solución, el número de partición será dos. En este caso, ningún tramo perteneciente al recorrido de los trenes de G i serán tramos candidatos de ser seleccionados, ya que a todos les ha sido asignado un horario. Sin embargo, sí estarán como tramos candidatos los

212 Un Procedimiento heurístico basado en ordenación (PBO) s1 s2 pertenecientes al recorrido de los trenes de que se hallaran entre las estaciones s k2 i y ts k4. Al ti1 no haber ti2 tk0j 1Gk s1 otro grupo en el problema considerado, serán estos los tramos elegidos. Posteriormente el conjunto de tramos candidatos quedará vacío. Luego, j G S ik{ { s ti k01 ik 0, 02, s, t it i1 k 1, s, t} isk} 2, sk3, sk4} será la última vez que Gi s3 s4 s2 k esta etapa sea ejecutada antes de que se inicie una nueva iteración buscando una nueva solución. = = = G= si0i0 tk 0 =1 sk =1 Figura 5.12: Un Ejemplo de Partición de Recorridos En la Figura 5.8 hemos nombrado como SeleccionarEstRef a la función que determina la estación ref ij para cada partición j de un recorrido J i. Considerando que s i ini = li k y ref i j = SeleccionarEstRef (s i ini, j, nump art) =, definimos a esta lx; i k x m i lx i S i if 1 j < nump art, función como: ref ij = if j = nump art. l i m i b) Cuando la Periodicidad en Salida NO es una restricción del problema En este apartado al conjunto de operaciones pendientes de ser seleccionadas se denomina T open. La elección de una operación consiste en elegir un tramo del recorrido de un tren en el cual aún no se haya especificado un horario para el mismo, respetando siempre la relación de precedencia entre los tramos de un mismo recorrido. La selección de un tren se realiza a partir de un conjunto de trenes al cual denominamos T open. Este conjunto está formado por los trenes pertenecientes a T new cuyos horarios no han sido completamente especificados por la generación actual de una solución. Es decir, si t i T open y J i = {l0 i, li 1,.., li m i } es su recorrido, entonces debe existir una estación lk i J i tal que: un horario factible haya sido asignado en los tramos comprendidos entre l0 i

213 5.6. Descripción detallada del Método de Solución aplicado al Problema OPT 183 (inicio del recorrido de t i ) y l i k, reste por asignar un horario factible en los tramos comprendidos entre l i k y li m i (fin del recorrido de t i ), y l i k li m i. Cada tren t i deja de pertenecer al conjunto T open cuando un horario factible es asignado al mismo en todas las dependencias de su recorrido, desde l i 0 hasta li m i. En la Figura 5.10 esto equivale a que la función UltimoTramo(t i, sec i j ) devuelva el valor True. Si especificamos el recorrido J i de un tren t i en función de los tramos estación que lo forman (ver definición de tramos en la sección 3.3) tenemos que J i = {sec i 0, sec i 1,.., seci n i }, siendo sec i 0 = l i 0 li x y sec i n i = l i m i a i l i m i. Luego, la función UltimoTramo(t i, sec i j ) es definida como: UltimoTramo(t i, sec i True j) = False if sec i j = seci n i else. (5.6.1) Por cada tren t i T new, se define un conjunto al que hemos denominado Sec i done. Está compuesto por aquellos tramos sec i k J i en los cuales un horario factible ha sido asignado a t i, por la generación actual. Al iniciarse la generación, cada conjunto Sec i done, 0 i < T new está vacío. Para llevar a cabo la selección de un tren t i de entre todos los trenes pertenecientes a T open se tiene en cuenta la función objetivo del problema (ver Sección 3.4.3). La función objetivo del problema tiene dos componentes, el retraso promedio de los trenes y el equilibrio entre el retraso promedio de los trenes que viajan en sentido Ida y los trenes que viajan en sentido Vuelta. Para elegir el siguiente tren a ser considerado se tiene en cuenta la primera componente de la función objetivo. Para ello, se asigna a cada tren t i T open una probabilidad ρ i de ser elegido. La probabilidad asignada a un tren es directamente proporcional al retraso que este lleve con respecto a su tiempo de referencia considerando los tramos en los que ya tenga asignando horario factible. Es decir para realizar este calculo se tiene en cuenta el tiempo de referencia y el horario asignado a los tramos sec i k Seci done. Por cada tren t i T open, se calcula cuál es su retraso parcial δ i partial. Si Seci done = entonces δpartial i = 0, en caso contrario si Sec i done = {seci 0,.., seci j } entonces el

214 Un Procedimiento heurístico basado en ordenación (PBO) retraso parcial de un tren t i queda definido por la siguiente expresión: δ i partial = arri j depi 0 Γ i ref Γ i ref (5.6.2) Considerando el retraso parcial de cada tren t i se obtiene el mínimo retraso parcial como: δ min = mín ti T open (δ i partial ), la probabilidad ρ i, de que el tren t i sea seleccionado es calculado según la siguiente expresión: ρ i = (δ i partial δ min + ε) α t i T open (δ i partial δ min + ε) α (5.6.3) Dada la expresión 5.6.3, para calcular la probabilidad de selección de cada tren se utilizan dos valores α y ε. Para la aproximación PBO, estos son valores conocidos, los cuales son asignados teniendo en cuenta que: Cuanto mayor sea el valor de α, más determinístico será el proceso de selección. Es decir, en cada generación de una nueva solución siempre se tenderá a seleccionar aquel tren que lleve mayor retraso. Si ε 0, entonces es posible que aquellos trenes con un retraso cero en el momento de la selección, también formen parte de los trenes elegibles. A partir del objetivo que cumplen α y ε en la expresión 5.6.3, se deduce que si α = 0, entonces la aproximación PBO se convierte en un método constructivo, donde cada generación de una solución explora una región del espacio de búsqueda elegida de forma aleatoria sin utilizar ningún criterio de selección. En este caso definimos como PBO RAND, al método empleado. Una vez, cada tren tenga asociada una probabilidad de selección entre 0 y 1, el siguiente paso consiste en seleccionar el tren. La forma en que se selecciona el tren es dado por el algoritmo de la Figura 5.13 Como puede verse en la Figura 5.13, para seleccionar un tren, no necesariamente es seleccionado el tren con mayor probabilidad asociada. La selección tiene una componente aleatoria que es la que permite recorrer diferentes regiones del espacio de búsqueda. Según el algoritmo SeleccionarTren se selecciona un valor aleatorio que luego es normalizado entre 0 y 1. RAND_MAX es una constante definida para el mayor valor que puede devolver la función rand(). Posteriormente se van acumulando las probabilidades de cada tren hasta que el valor acumulado sea igual o mayor que

215 5.6. Descripción detallada del Método de Solución aplicado al Problema OPT 185 Function SeleccionarTren() As Train value =rand()/rand_max i = 0 indice = 1 sump rob = 0 While(indice < 0) sump rob = sump rob + ρ i If(sumP rob value) Then indice = i Else i = i + 1 End While return t indice End Function Figura 5.13: Algoritmo para Seleccionar un Tren value, al llegar este momento es el tren t i cuyo valor ρ i fue el ultimo valor agregado a sump rob, el tren seleccionado para que un horario factible sea especificado en un determinado tramo de su recorrido. Una vez un tren t i, tal que t i T open ha sido seleccionado, el siguiente paso consiste en especificar el tramo de su recorrido que deberá ser considerado para que la asignación de un horario factible sea realizada. El horario de cada tren perteneciente a T new es especificado por cada dependencia de su recorrido en forma secuencial en el mismo orden dado por el recorrido J i. Es decir, siendo 0 k < m i, el proceso asigna un horario factible a t i en la dependencia lk+1 i si y solo si ha asignado previamente un horario factible al mismo en la dependencia l i k. Dado un tren t i, la función SeleccionarTramo(t i ) devuelve el tramo sec i k en el cual debe asignarse un horario a t i. Esta función es definida mediante la expresión sec i 0 if Sec i done SeleccionarTramo(t i ) = = (5.6.4) sec i k+1 if Sec i done = {seci 0,.., seci k }. Hemos modelado el problema como un árbol de búsqueda cuyo nodo raíz (nodo inicial) representa la programación de horarios vacía. Por cada nodo donde no exista ningún sucesor posible existe un nodo artificial terminal (nodo final). Cada nodo intermedio está compuesto por un par ordenado (t i, sec i j ), el cual indica que un

216 Un Procedimiento heurístico basado en ordenación (PBO) horario factible debe ser encontrado para el tren t i T open en el tramo sec i j de su recorrido. Cada nivel del árbol indica qué parte del horario de cada tren puede ser generado. El método debe determinar en cada nivel, cuál de los nodos será elegido. El problema consiste en encontrar un camino en el árbol de búsqueda, (desde el nodo inicial hasta el nodo final), tal que el orden de prioridades establecido por este camino produzca el mínimo retraso promedio (Figura 5.14). Un nodo es elegido según el algoritmo de la Figura 5.13, tal que el tren con mayor prioridad no es necesariamente el tren elegido, debido a la componente aleatoria del método. Si el nodo (t i, sec i j ) es seleccionado, entonces el siguiente paso consistirá en asignar el horario al tren t i t 2,s 1initial 2,s4 4 en el tramo sec i j de su recorrido, lo cual es descrito en la siguiente sub sección. t 2,s1t2,s13 initial t2t 2t2 3,s2 tt t3 2t2 t3,s 2,s1 2 t4 final 2,s final Figura 5.14: Arbol de Búsqueda para el Problema de Programación de Horarios 1,s21,s1 2,s2t1,s4 t3,s1,s3 t2,s t3,s t3,s 1,s2 2,s2 t2,s t3,s t3,s t3,s Las restricciones disyuntivas son la principal causa de la complejidad de este

217 5.6. Descripción detallada del Método de Solución aplicado al Problema OPT 187 problema. Estas restricciones son debido a la competición entre dos trenes por un mismo recurso ferroviario. Esto es: un tramo o una vía en una estación. Cuando hay un conflicto entre dos trenes por el mismo recurso, y uno de ellos es un tren en circulación siempre tendrá mayor prioridad el tren en circulación, y el nuevo tren será retrasado. Sin embargo cuando el conflicto ocurre entre dos trenes nuevos, usamos una heurística basada en el orden de selección de los trenes para determinar cuál de los dos trenes tendrá mayor prioridad sobre este recurso. Cada solución estará determinada por esta asignación de prioridades Segunda Etapa: Asignación de Horario Factible En el sub procedimiento Asignación de Horario Factible se incluyen los sub procedimientos Siguiente Operación, Elección Instante de Inicio, y Asignación Intervalo de Tiempo, descritos en la sección 5.3, como parte del método de solución propuesto para el problema de scheduling tipo Job Shop. En esta sub sección describiremos la implementación de estos sub procedimientos según el conjunto de restricciones considerado. Se realiza una implementación cuando la restricción sobre periodicidad en salida forma parte del conjunto de restricciones (a), y otra en el caso que dicha restricción no sea incluida (b). a) Periodicidad en Salida es incluida en el conjunto de restricciones Dado un grupo G i y una secuencia ordenada de dependencias J ij (jésima partición del recorrido J i ), en este apartado explicaremos cómo se realiza la asignación de horarios válidos a cada tren de G i en las dependencias que forman J ij. Considerando que J i = {l0 i, li 1,.., li m i } es el recorrido de los trenes pertenecientes a G i, y S i = {s 0, s 1,...s ni } es el conjunto de estaciones incluidas en dicho recorrido, s k, 0 k n i, representa la késima estación visitada por cada tren de G i cuando este realiza su recorrido J i. Luego, s 0 y s ni son la primera y la última estación, respectivamente, del recorrido J i. En la Figura 5.15 se representa el método utilizado para la asignación de horarios a los trenes de G i en el recorrido J ij. Esta operación es realizada mediante la función DarHoraGrupo, cuyos argumentos son detallados a continuación: s ini y s fin son la primera y la última dependencia de J ij, respectivamente. La

218 Un Procedimiento heurístico basado en ordenación (PBO) partición considerada es definida como J ij = {lk i, li k+1,.., li k+a j }, donde lk i = s ini y lk+a i j = s fin. Como vimos en el apartado anterior, si j = 1, s ini = l0 i, en caso contrario, si j > 1, s ini = ref ij 1 ; por otro lado, s fin = ref ij, δ best, referencia el coste, según la función objetivo del problema, de la mejor solución hallada hasta el momento, ā, es el conjunto de horarios que ha sido asignado a cada tren de T new en la iteración actual, desde l0 i hasta ref i j considerando cada grupo G i G, prune, es una variable de salida, la cual determina si la presente iteración debe ser interrumpida (prune =True) o no (prune =False), G i, trenes, cuyos horarios deberán ser especificados por esta función en las dependencias que forman la secuencia J ij. Function DarHoraGrupo(s ini, s fin, δ best, ā, prune, G i ) As Timetabling j = ini While (s j <> s fin And prune =False) dep =CalcularSalida(s j ) ā = ā AsignarHorario(s j, dep, G i ) δ est =EstimarCosto(ā) If (δ est > δ best ) j = j + 1 End While return ā End Function Then prune =True Figura 5.15: Asignación de horarios válidos para G i en una partición j de su recorrido El grupo G i = {t i1, t i2,.., tc i } es una secuencia ordenada de c i trenes. El orden en el cual deben partir dichos trenes de las estaciones s k S periodoi establece el orden de la secuencia dada por G i. Definimos la secuencia ordenada S ij = {s k, s k+1,.., s k+m } como el conjunto de estaciones incluidas en la partición J ij es decir S ij = J ij S i siendo s k = s ini y s k+m = s fin. Consideramos que un tramo es la secuencia de dependencias por las que debe

219 recorido 5.6. Descripción detallada del Método de Solución aplicado al Problema OPT 189 pasar un tren para ir desde una estación s j a la siguiente estación s j+1 de su recorrido. Teniendo en cuenta la secuencia de estaciones existente en el recorrido J i, sec j = s j s j+1 l3 l2 l4 l1 l, 0 j (n 1) i t0 Conflicto t1 j, son los tramos existentes en dicho recorrido. En Tiempo ÚnicaVía ik+ ik+ ik+ ik+ ik Pi s 1 + sj Figura 5.16: Asignación de Horarios a Trenes Consecutivos la Figura 5.16 se muestra un ejemplo donde el tramo sec j = s j s j+1 está formado por la secuencia sec j = {l ik, l ik+1, l ik+2, l ik+3, l ik+4 } donde l ik = s j y l ik+4 = s j+1. El método que hemos utilizado considera la secuencia S ij como una secuencia de tramos sec k, 0 k < m. Se selecciona un tramo por vez en el mismo orden especificado por S ij y por cada tramo seleccionado se busca asignar un horario factible a todos los trenes de G i en dicho tramo. El horario es asignado a cada tren según el orden especificado por G i. La forma en que se lleva a cabo la asignación de un horario factible a cada tren de G i en un determinado tramo sec k = s k s k+1 es descrita mediante la siguiente secuencia de pasos: 1. Asignación de instante de salida al tren t iy en la estación s k (instanciación de la variable dep iy k ). El instante de salida de t iy de la estación s k es calculado según se requiera o no que los trenes de G i cumplan con una determinada periodicidad P i en sus salidas de s k, y según t iy y > 0, respectivamente). sea o no el primer tren de la secuencia G i (y = 0 o Las siguientes expresiones, y 5.6.6, modelan las condiciones que se tienen en cuenta para evaluar el instante de salida de la estación s k correspondiente

220 Un Procedimiento heurístico basado en ordenación (PBO) al tren t iy. s k S periodoi dep i y k = dep i y 1 k + P i if y > 0, v\v [I i L, I i U] if k = 0 And y = 0 arr i y k + Ci k if k > 0 And y = 0. (5.6.5) s k S i \ S periodoi dep i y k = arri y k + Ci k (5.6.6) 2. Ubicación del tren t iy en el tramo sec k en función del tiempo, a partir de un determinado instante de salida dep i y k. Dado el instante de salida dep i y k calculado en el punto previo, se procede a calcular el instante de salida y el instante de llegada del tren t iy en cada una de las restantes dependencias del tramo sec k. Se obtiene con ello un horario provisional ya que aún resta la comprobación de la satisfacción de restricciones dadas por C h, por parte de este horario. l x sec k \ {s k+1 } : arr i y x+1 = depi y x + i y x (x+1) (5.6.7) l x sec k \ {s k, s k+1 } : dep i y x = arr i y x + C i x (5.6.8) La expresión especifica cómo es calculado el instante de llegada a las dependencias pertenecientes al tramo sec k sin considerar la estación que inicia el tramo s k. El instante de llegada a s k es calculado cuando se considera el tramo sec k 1 siempre y cuando k > 0. El instante de llegada a s k cuando s k = s 0 no es utilizado ya que es la estación inicial del recorrido J i. La expresión especifica cómo es calculado el instante de salida de cada dependencia perteneciente a sec k, exceptuando las estaciones inicial y final del tramo, s k y s k+1. El instante de salida de la estación s k es calculado en el punto previo debido a que el instante de salida en las estaciones que inician un tramo pueden tener que cumplir restricciones adicionales al resto de dependencias del tramo. Por otro lado el instante de salida de la estación s k+1 será calculado al considerar el siguiente tramo sec k Verificación del horario provisional según las restricciones dadas en C h. Se verifica que cada una de las restricciones dadas en C h sea satisfecha por el

221 5.6. Descripción detallada del Método de Solución aplicado al Problema OPT 191 horario provisional asignado en el punto previo. Al realizar la verificación de las restricciones, el proceso considera la ocupación del tramo considerado según el horario asignado previamente al resto de trenes en T new y al conjunto de trenes en circulación T C. Si alguna de las restricciones ha sido incumplida el proceso va al punto siguiente, de lo contrario el proceso va al punto Reparación del horario provisional. Cuando una de las restricciones de C h es incumplida se analiza esta restricción para calcular la cantidad de tiempo que debe ser retrasado el instante de salida de t iy de la estación s k para que recorido dicha restricción pueda ser satisfecha. Si la estación s k S periodoi significa que los trenes de G i deben satisfacer una determinada periodicidad entre sus salidas, por lo tanto se retrasa la salida del primer tren de G i en la cantidad de tiempo dada por. Luego se repite esta secuencia de pasos desde el paso 2 para el tren t iy = t i1 (ver Figura 5.17). Si s k / S periodoi l3 l2 l4 l1 entonces, se retrasa la salida del tren siendo considerado, t iy, l t0 retrasot1salidaj en unidades de tiempo. Luego, se vuelve al paso 2. Tiempo ÚnicaVía ik+ ik+ ik+ ik+ ik Pi enla s 1 + sj Figura 5.17: Resolución de Conflictos durante la Asignación de Horarios a Trenes Consecutivos 5. Fin de la secuencia para el tren t iy. Si y < c i entonces se selecciona el tren t iy+1 y se repite la secuencia desde el paso número 1. En la Figura 5.18 se muestra un ejemplo de cómo la asignación de horario a un tren ya sea perteneciente a T new o perteneciente a T C determina una región de prioridad

222 recorido l3 l2 l4 l1 192 l t Rtv2 tii3j 5. Un Procedimiento heurístico basado en j ordenación (PBO) Tiempo s ÚnicaVía ik+ ik+ ik+ ik+ ik v1 tv1 Rti Et tv s 1 + Figura 5.18: Asigación de Prioridades en un Tramo en dicho tramo tal que ningún otro tren podrá ocupar. Como un ejemplo, se puede ver en la Figura 5.18 al tren t i. A dicho tren se le ha asignado un horario según muestra la figura en cada una de las dependencias del tramo sec k. Esta asignación de horarios hace que los trenes que viajan en el sentido opuesto no puedan ocupar las regiones sombreadas de la figura, ya que podrían violar las restricciones para evitar cruce o para cumplir con un determinado tiempo de recepción o expedición. El orden en el que se asigna un horario a los trenes determina la prioridad de los mismos en cada tramo. Por ello según la forma en que se particionen los recorridos de cada grupo se determinará el orden en el que los trenes ocupen cada tramo del recorrido común y con ello la prioridad establecida entre ellos. Cuando las particiones son seleccionadas de forma diferente, las soluciones son diferentes. b) Periodicidad en Salida NO es incluida en el conjunto de restricciones Una vez ha sido seleccionado el tren y el correspondiente tramo de su recorrido, el siguiente paso consiste en asignar al mismo un horario factible, que le genere el mínimo retraso posible, en el tramo considerado. El objetivo consiste en determinar la ocupación del recurso (tramo) satisfaciendo el conjunto de restricciones C h de tal forma que la función objetivo sea tenida en cuenta (minimizar el retraso promedio de los trenes). En la Figura 5.10, la función AsignarHoraTrenTramo(t i, sec i j ) lleva a cabo esta tarea. En esta sub sección explicaremos cómo esta tarea es llevada a cabo teniendo en cuenta que el tren seleccionado es t i y sec i j es el tramo correspondiente al recorrido de t i, donde un horario factible debe ser especificado para el mismo.

223 5.6. Descripción detallada del Método de Solución aplicado al Problema OPT 193 Teniendo en cuenta la definición de tramo estación dada en la sección 3.3 del capítulo 3, considere que sec i j = {li x,.., l i x+c i }, siendo l i x y l i x+c i las estaciones que inician y finalizan el tramo sec i j, respectivamente. Hemos descrito la forma de construir el horario de un tren en un determinado tramo de su recorrido mediante la siguiente secuencia de pasos: 1. Inicio del Intervalo de Ocupación. Dado el tramo sec i j = {li x,.., l i x+c i }, el primer paso de esta secuencia consiste en especificar un posible instante de salida para el tren t i de la estación que inicia el tramo considerado. Es decir se asigna un valor de partida a la variable dep i x, siendo l i x la estación que inicia el tramo sec i j. Este valor de partida es calculado según ha sido formulado en la expresión dep i v\v [I i L, I i U] if x = 0 x = arrx i + C i x if x > 0. (5.6.9) Cuando la estación l i x, inicio del tramo, es además la estación inicial del recorrido, el valor asignado a dep i x es un valor v que debe pertenecer al intervalo [I i L, I i U], el cual es definido por cada tren como el intervalo de valores válidos para el instante de salida de la estación inicial de sus correspondientes recorridos (ver restricción ). Si por el contrario l i x es una estación intermedia del recorrido de t i (x > 0), el instante de salida de t i de dicha estación es especificado a partir de su instante de llegada (arr i x). Dado que la construcción del horario se realiza teniendo en cuenta la función objetivo, y en este caso esta determina que debe existir el mínimo retraso posible por cada tren, se busca que el tren t i salga de l i x realizando la mínima parada posible. Esto significa una vez llegue a l i x apenas transcurra el mínimo tiempo de parada comercial, establecido para dicho tren en la estación considerada, ya que la restricción debe ser satisfecha. El instante de salida establecido en este punto es un valor de partida mediante el cual se propone mediante el siguiente punto una posible ocupación del tramo sec i j por parte del tren t i. 2. Una Propuesta para la Ocupación del recurso. Dado un determinado instante de salida dep i x, se construye un horario para el tren t i teniendo en cuenta

224 Un Procedimiento heurístico basado en ordenación (PBO) las restricciones sobre tiempo de recorrido y parada comercial, restricciones y , respectivamente. Así, el instante de salida del tren t i de cada dependencia l i y, x < y < x + c i es calculado según la expresión dep i y = arr i y + C i y (5.6.10) El instante de salida correspondiente a t i en la dependencia que inicia el tramo, es el instante a partir del cual se calculan los instantes de salida y de llegada correspondientes al resto de dependencias incluidas en sec i j. Este instante es especificado inicialmente en el punto 1 de esta secuencia. Sin embargo, puede ser modificado. De ser así, el horario en el resto de las dependencias se vuelve a calcular de la misma forma, pero a partir de un nuevo valor para el instante de salida dep i x. El instante de salida correspondiente a la última estación del tramo (l i x+c i ) no es calculado al ser considerado el tramo sec i j, ya que de no ser la última estación del recorrido su valor será determinado al ser considerado el tramo sec i j+1. El instante de llegada de t i a cada dependencia l i y, x y < x + c i es calculado según la expresión arr i y+1 = dep i y + i y (y+1) (5.6.11) El instante de llegada del tren t i a la dependencia l i x fue calculado al ser considerado el tramo previo sec i j 1, siempre y cuando li x no fuera la estación inicial del recorrido. De ser así, este instante no es calculado, ya que el instante de llegada de un tren a la estación inicial de su recorrido no es un requerimiento de la solución del problema. Una vez obtenido un posible horario para el tren t i en el tramo sec i j, el siguiente paso consiste en comprobar su factibilidad según el resto de restricciones especificadas en C h. 3. Satisfacción de Restricciones: en este punto se recibe una propuesta de horario para el tren t i en el tramo sec i j y se verifica si esta es factible según las restricciones especificadas en C h. Al realizar la verificación se considera que dicho tramo está ocupado por todos los trenes en circulación y por aquellos trenes

225 5.6. Descripción detallada del Método de Solución aplicado al Problema OPT 195 pertenecientes a T new cuyos horarios en sec i j han sido asignados previamente a t i. Si ninguna restricción es incumplida se pasa al punto 5 de esta secuencia. Si por el contrario, alguna restricción es incumplida, se intenta reparar el incumplimiento según es descrito en el siguiente punto de esta misma secuencia. 4. Reparación de Restricciones incumplidas. Cuando una restricción es incumplida, el proceso analiza la restricción para determinar la mínima cantidad de tiempo en la que debe ser retrasada la salida de t i de la estación l i x, de tal forma a reparar la restricción incumplida. Luego, se modifica el valor de dep i x a dep i x = dep i x +, volviendo posteriormente el proceso al punto 2 de esta secuencia. Es en este punto donde se puede notar cómo afecta al proceso empleado el orden en que son seleccionados los trenes pertenecientes a T new para computar sus horarios en un determinado tramo. Cuando una restricción es incumplida, se retrasa la salida del tren cuyo horario se está generando, en este caso t i, es decir si la restricción incumplida involucra a t i y a otro tren t j, se le asigna mayor prioridad a t j. Esto es debido a que si se tiene en cuenta el horario de t j cuando se está verificando el horario de t i, significa que el horario de t j fue asignado previamente, por lo tanto debe tener mayor prioridad que t i. 5. Fin de Asignación de Tramo. Una vez todas las restricciones han sido verificadas y cumplidas por el horario asignado a t i en sec i j, este es añadido al conjunto de horarios válidos asignados hasta el momento por la generación actual. Este conjunto es representado por la variable ā en la Figura El hecho de agregar este nuevo horario al conjunto asignación ā significa que la ocupación realizada por el tren t i en el tramo sec i j, conforme el horario asignado, se agrega a la lista de ocupación definida hasta el momento para dicho tramo. Esto a su vez implica que sucesivos horarios a ser asignados deberán tener en cuenta el horario establecido para t i en sec i j cuando se realice la correspondiente verificación de restricciones. Finalmente, el tramo sec i j del recorrido J i es agregado como último elemento de la secuencia ordenada Sec i done (ver Figura 5.10), ya que de esta manera el

226 Un Procedimiento heurístico basado en ordenación (PBO) proceso lleva seguimiento de cuáles son los tramos del recorrido de un tren, en el que ya ha sido asignado un horario factible en el orden en que esta asignación ha sido realizada. Cada vez que finaliza la asignación de un horario factible a un tren en un tramo de su recorrido, el siguiente paso del proceso consiste en estimar el coste de la solución, considerando el conjunto de horarios especificados hasta el momento por la generación actual. Este procedimiento es descrito en la siguiente sub sección Tercera Etapa: Evaluación de Solución Parcial Una vez asignado un horario factible en un tramo sec k, a un tren t iy tal que t iy G i, el siguiente paso consiste en estimar el coste que tendría la solución en proceso de construcción; lo cual es llevado a cabo con el objetivo de interrumpir aquellas generaciones donde el coste estimado revelase que la solución siendo construida, no será mejor que la obtenida hasta entonces. Pueden existir variables en X, cuyos valores no hayan sido determinados por el proceso de búsqueda, en el momento en que se estima el coste. A éstas variables se les asigna un valor de tal forma que en el horario determinado por ellas no exista parada técnica alguna. El valor para el resto de las variables en X, corresponde al valor asignado hasta ese momento por el proceso de búsqueda correspondiente a la generación actual. El conjunto de valores, tanto los estimados como los establecidos por el proceso de búsqueda, para cada variable x i en X, forman parte de la posible solución ā est. Siendo F (ā best ) el coste correspondiente a la mejor solución, ā best, y F (ā est, el coste estimado para la posible solución ā est, si F (ā est ) > F (ā best ), entonces la generación de la solución actual deberá ser interrumpida, ya que sería una pérdida de eficiencia continuar sabiendo que el menor coste que podría tener la solución resultante ya es mayor que el coste de la mejor obtenida hasta entonces. Para evaluar el coste de una solución, ā, correspondiente al problema OPT, se utiliza la función de coste global F (ā) (sub sección del capítulo 3). Esta función mide, a partir de la asignación de horarios ā, el retraso promedio del conjunto de trenes T new, con respecto al tiempo de referencia Γ i, calculado por cada tren t i en T new. En esta sección se describirá el proceso empleado para calcular el valor de Γ i.

227 5.6. Descripción detallada del Método de Solución aplicado al Problema OPT 197 Dado un tren t i, tal que t i T new, decimos que Γ i ref es el límite inferior correspondiente al tiempo que t i puede emplear en realizar su recorrido completo J i, satisfaciendo todas las restricciones en C h. El valor para este límite inferior es calculado utilizando el siguiente algoritmo: Por cada tramo sec j = {lk i, li k+1,..., li k+a j }, perteneciente al recorrido J i de t i se llevan a cabo los pasos siguientes: 1. se relaja el problema OPT por considerar que T = {t i } T C 2. se calcula el valor inicial para la variable dep i k, instante de salida de t i de lk i, 3. se propaga el valor de dep i k a las variables arri x+1 y depi x, mediante las restricciones y , siendo k x < k + a j, 4. considerando todas las restricciones en C h y la relajación realizada sobre el conjunto T, se verifica que la asignación realizada a cada variable arrx+1 i y dep i x, k x < k + a j, sea factible, 5. si alguna restricción C i perteneciente a C h es incumplida, entonces se incrementa el valor de la variable dep i k en la mínima cantidad que permita la satisfacción de la restricción C i, luego, se vuelve al paso 2, 6. si ninguna restricción C i perteneciente a C h es incumplida, la secuencia de pasos finaliza para el tramo sec i. Si lx+a i j lm i i, es decir no es la estación destino de t i, se selecciona el siguiente tramo sec i+1 y se repite la secuencia de pasos desde el punto 1. Una vez, todos los tramos sec i del recorrido J i han sido seleccionados, el resultado consiste en un horario factible para t i, teniendo en cuenta que el problema resuelto es el problema OPT relajado. En la Figura 5.19 se muestra un ejemplo en el cual T C = {t 1, t 2 } y T new = {t i, t 3 }. En este ejemplo, se muestra el horario obtenido para t i, como resultado de aplicar la secuencia de pasos descrita previamente. Teniendo en cuenta el horario asignado a t i en la Figura 5.19, Γ i es el tiempo empleado por el mismo para completar su recorrido. El horario asignado a t i satisface todas las restricciones en C si se considera que los únicos trenes existentes en la línea son t i y los trenes en circulación, lo cual no es

228 )(asdependenciy l0ii l4 l3 l1i il2i 1C 2C3new Un Procedimiento heurístico basado en ordenación (PBO) tit T Γi t T t T X(tiempo) Figura 5.19: Cálculo de Γ i. Se relaja el problema por considerar que T = {t i } T C verdadero si el problema OPT NO es relajado, ya que t i y t 3 incumplen la restricción 3.4.9, sobre cruce. Este incumplimiento es señalado por un círculo en la figura En la Figura 5.20 se muestra el mismo problema OPT considerado en la Figura 5.19, pero esta vez no se lleva a cabo la relajación sobre el mismo. Luego, el horario asignado a t i satisface todas las restricciones en C h considerando que T = T new T C. Esto implica resolver el conflicto señalado por un círculo en la Figura En la solución mostrada, se obtiene el horario factible de t i, retrasando la salida del mismo de la estación l2 i. En esta solución el tiempo de recorrido real de t i es Λ i, lo cual supone un determinado retraso con respecto a Γ i. Otra posible solución para el mismo problema consistiría en retrasar la salida de t 3, lo cual haría que t i no tuviera un retraso sobre su tiempo de referencia, y t 3 sí. Límite Inferior para el Coste de una Solución El coste que se estima para la solución siendo construida es un límite inferior para el coste real que tendría una vez sea completamente construida por el proceso de búsqueda. Esto es debido a que la función de coste global del problema OPT es aplicada a la asignación ā est, en la cual parte de sus elementos son valores estimados y no valores hallados por el proceso de búsqueda, ya que en el momento que se produce la estimación ciertas variables aún no han sido instanciadas. Decimos que es un límite inferior porque los valores que se estiman para dichas variables hacen

229 l0ii ti )(asdependenciy l4 l3i l1i l2i 1C 5.6. Descripción detallada del Método de Solución i2c3new aplicado al Problema OPT 199 iarridep0i Γ Λ = 4 Figura 5.20: Retraso del tren t i con respecto a su tiempo de referencia Γ i t T t T t T X(tiempo) que éstas introduzcan un coste igual a cero en la función de coste global, por lo tanto sea cual fuere su valor real, el coste que introduzcan deberá ser necesariamente igual o mayor que el estimado. Siendo t i un elemento cualesquiera de T new y J i = {l0 i, li 1,..., li m i } su recorrido, el valor para cada variable dep i j y arri j+1, 0 j < m i, es un elemento de ā est. Si en el momento de calcular un coste estimado para la solución siendo construida, el proceso de búsqueda ha asignado un valor a las variables dep i j y arri j+1, 0 j < k, entonces el valor de las variables dep i j y arri j+1, k j < m i, es un valor estimado por el proceso, de tal forma que el horario que determinan éstas variables no introduzca parada técnica alguna. Teniendo en cuenta que la solución estimada para la generación actual es ā est, y que Γ i ref es el límite inferior calculado para el tiempo de recorrido de t i, tal que t i T new, el coste que se estima para ā est está dado por: F (ā est ) = F 1 (ā esti ) + F 2 (ā estv ) + F 3 (ā est ) δ(ā esti, i) t i T new, I donde F 1 (ā esti ) = ω exc representa el retraso promedio de los T new, I

230 Un Procedimiento heurístico basado en ordenación (PBO) trenes que viajan en sentido ida con respecto a Γ i ref, t i T new, I, δ(ā estv, i) t i T new,v F 2 (ā estv ) = ω exc representa el retraso promedio de los T new,v trenes que viajan en sentido vuelta con respecto a Γ i ref, t i T new, V, y E(ā est ) = F 1 (ā esti ) + F 2 (ā estv ) es el retraso promedio de todos los trenes en T new con respecto a Γ i ref, t i T new El retraso de cada tren t i en T new con respecto a Γ i ref, está dado por δ(ā estdir, i) = arri m i dep i 0 Γi ref Γ i ref p i (5.6.12) Como puede verse en la sección del capítulo 3, la función objetivo de este problema tiene dos componentes, una de ellas corresponde al exceso promedio de los trenes con respecto a sus respectivos tiempos de referencia y la otra, al equilibrio que existe entre el exceso promedio de los trenes que viajan en sentido ida y el exceso promedio de los trenes que viajan en sentido vuelta. La primera componente ha sido estimada por (E)( a est ). La segunda componente de la función objetivo está dada por. F 3 (ā est ) = ωdesv [F1 (ā esti ) E(ā est )] 2 + [F 2 (ā estv ) E(ā est )] 2 De esta forma se obtiene el coste para una posible solución, donde parte de la misma es obtenida por el proceso de búsqueda y parte estimada de tal forma que la poda sea conservadora, y no sea interrumpida una generación que finalmente produzca una mejor solución que ā best Conclusiones En este capítulo se han descrito dos nuevas aproximaciones para resolver el problema OPT. La diferencia entre ambas aproximaciones consiste en que una de ellas ha sido desarrollada de tal forma que cumpla eficientemente con el requerimiento sobre periodicidad en salida. Es decir, además del conjunto de restricciones común a ambas aproximaciones, una de ellas satisface el requerimiento de que todos los trenes

231 5.7. Conclusiones 201 que pertenezcan a un determinado grupo deberán satisfacer un periodo de tiempo entre sus salidas consecutivas. Dependiendo de la parametrización del problema, esta restricción deberá cumplirse en toda estación con parada comercial, o únicamente en la estación inicial del recorrido. Ambas aproximaciones se basan en el orden de instanciación de las variables x i en X y en el conocimiento acerca del problema. Las aproximaciones descritas son algoritmos anytime constructivos. En cada iteración se construye el horario de los trenes, diferenciándose una iteración de otra, en el orden en el cual son dispuestos los trenes en cada uno de los tramos de sus respectivos recorridos. Es este orden el que determina la prioridad de los mismos en cada uno de los tramos en caso de conflicto, y con ello sus correspondientes retrasos. El orden de asignación está dado por medio de una heurística de ordenación de variables, desarrollada como parte de este trabajo, la cual se basa en el estado actual de la solución y en los criterios utilizados en la función objetivo. Consta de una componente aleatoria para evitar los óptimos locales. La construcción de cada solución es realizada por medio de una propagación de restricciones, una vez se asigna el instante de salida inicial a cada tren. El backtracking es llevado a cabo respetando el orden establecido en la iteración actual. En ese caso, solo se deshace el horario de aquellos trenes, en los que sea posible que el retraso originalmente establecido en determinadas estaciones ya no sea necesario, debido a que el horario del tren causante de las mismas ha sido modificado. De esta forma, el tiempo ahorrado es considerable, sobre todo cuando la línea consta de un elevado número de trenes y tramos en cada recorrido. La forma en que se lleva a cabo la verificación de restricciones aporta una eficiencia fundamental en la construcción de cada solución, ya que esta no es llevada a cabo entre todos los trenes, sino únicamente entre aquellos entre los que exista posibilidad de conflicto. Para ello es importante mantener ordenada, por instantes de salida y de llegada, la ocupación de los trenes en cada dependencia. Por ejemplo, el tiempo de sucesión entre dos trenes, solo es verificado entre trenes consecutivos, y no es necesaria la verificación con el resto de trenes del problema. El horario de un tren se construye tramo a tramo, pudiendo establecerse el horario de un tren en n tramos seguidos, siendo n una variable cuyo valor es aleatoriamente obtenido cada vez que se selecciona el siguiente tren a optimizar en una misma iteración. Esto permite obtener todas las combinaciones factibles de horarios,

232 Un Procedimiento heurístico basado en ordenación (PBO) sin que la forma de construir los horarios descarte ninguna solución. Sin embargo, esto también agrega mayor complejidad, ya que si existe un backtracking, muchas veces será necesario deshacer el horario de más de un tren. En cada iteración es posible estimar el mínimo coste que supondría completar la construcción de la solución siendo generada. El coste es estimado de tal forma que si se finaliza la construcción de la solución actual, su coste nunca sería menor que cualquiera de los estimados durante su construcción. Con ello se evita descartar una solución parcial que de haber sido completada hubiera sido mejor que la obtenida hasta entonces. Si el coste estimado es mayor que el coste de la mejor solución obtenida hasta entonces, la solución parcial es descartada, y se inicia una nueva iteración. En el capítulo se describe detalladamente la forma en la cual se realiza la estimación del mínimo coste de la solución parcial. Con éstas aproximaciones se intenta explorar aquellas regiones del espacio de soluciones que se estimen más prometedoras en cuanto a la optimización de la función de coste global se refiere. En el siguiente capítulo presentamos los resultados obtenidos con ambas aproximaciones, para diferentes instancias del problema OPT.

233 Capítulo 6 Evaluación Computacional 6.1. Introducción En éste capítulo evaluaremos el comportamiento de los algoritmos desarrollados, tanto al aplicar la aproximación PBO, como al aplicar la aproximación PBO RAND a diferentes instancias del problema OPT. La aproximación PBO (Procedimiento Basado en Ordenación) es el método de solución, descrito en el capítulo 5, para el problema OPT. La diferencia entre este método y el método PBO RAND radica en la heurística que se emplea en uno y en otro para ordenar las variables a ser asignadas. En el primero se utiliza una heurística basada en el procedimiento Regret-Based Biased Random Sampling (RBRS) propuesta por Drexl, [38] y [39], el segundo ordena las variables pendientes de ser asignadas de forma aleatoria. Las pruebas, cuyos resultados son mostrados en éste capítulo han sido ejecutadas en un ordenador con un procesador Pentium IV 3.0 GHz y 512 Mb de memoria interna, bajo el sistema operativo Windows XP. Los datos que componen cada caso de prueba fueron provistos por la Administración de Infraestructura Ferroviaria Española (ADIF). En la sección 6.3 se describen trece casos de prueba, que han sido resueltos utilizando por un lado la aproximación PBO, y por otro la aproximación PBO RAND. Por cada caso de prueba, hemos proporcionado el número de variables, restricciones y conflictos que la caracterizan y que indican una medida de la complejidad de cada una. Posteriormente, ya en la sección 6.5, indicamos el valor de la función objetivo obtenida al cabo de 203

234 Evaluación Computacional dos minutos de ejecución para cada uno de los casos de prueba mencionados previamente. Se obtiene un resultado por cada combinación de parámetros < α, ɛ >, donde se asigna a α los valores 1, 2, 3, 4 y a ɛ los valores 0.05, 0.15 y 0.3. Además se lleva a cabo una prueba sobre los 13 casos de estudio considerando α = 0, lo cual significa que se emplea la aproximación PBO RAND, o lo que es lo mismo el orden de las variables se lleva a cabo de forma aleatoria. Otro aspecto que se considera en esta sección es la cantidad de backtracking que lleva a cabo el método durante la solución de cada uno de los trece casos de prueba considerados. Este dato es proporcionado como parte de los resultados obtenidos, ya que es una consecuencia de la forma en la cual se implementa la verificación de las restricciones. El número de backtracking que se realice en cada iteración es un factor que tiene mucha influencia en la cantidad de tiempo que se demore el procedimiento en obtener cada una de las soluciones. Una de las características del método de solución que describimos en este capítulo, mediante los resultados proporcionados, es su comportamiento Anytime. En la Sección 6.6 hemos proporcionado un ejemplo de esta característica, ejecutando el método de solución sobre los 13 casos de prueba durante 60 minutos. Los resultados han indicado que aunque el valor de la función objetivo va mejorando, el método de solución puede ser interrumpido en un instante de tiempo inferior al límite establecido (60 minutos) y de igual manera se obtendría una solución. En las pruebas realizadas, además se puede observar que durante los primeros minutos de ejecución se obtienen soluciones de alta calidad, si la comparamos con las soluciones obtenidas una vez haya transcurrido un tiempo considerable de tiempo (40 minutos por ejemplo). Hemos seleccionado en la Sección 6.7 dos ejemplos para describir las acciones que lleva a cabo el método de solución durante la optimización, y la influencia que tiene sobre el mismo la interrelación que exista entre los trenes y el tipo de infraestructura de la línea considerada. En el primero, existe baja interrelación entre los trenes de la línea, lo cual supone una menor complejidad para el método de solución ya que existe menos posibilidad de conflictos entre ellos, y una mayor posibilidad de que la asignación de horarios consista únicamente en la propagación de las restricciones. Sin embargo, en el segundo ejemplo, la interrelación es mayor y el número de vías tanto en estaciones como en los tramos es menor, lo cual produce una instancia más

235 6.2. Implementación del Sistema de Evaluación 205 compleja que la del primer ejemplo. En la Sección 6.9 indicamos la importancia de un horario robusto, considerando la robustez como una medida de la estabilidad que presenta un horario frente a una incidencia ocurrida durante la ejecución del mismo. Se proporciona una breve descripción de los trabajos publicados acerca de medidas que indican un nivel de robustez en los problemas de scheduling. Finalmente, se proporcionan las conclusiones referentes a este capítulo Implementación del Sistema de Evaluación Con el objetivo de llevar a cabo la evaluación computacional del método de optimización PBO, descrito en el Capítulo 5, se ha llevado a cabo su implementación, utilizando para ello el lenguaje de programación Visual C El resultado forma parte de una herramienta software. Esta herramienta ha sido desarrollada para facilitar la especificación de los diferentes casos de prueba, consistentes en instancias diferentes del problema OPT, así como para facilitar la interpretación de los resultados obtenidos. Consta principalmente de cuatro módulos: 1) Integración de Datos, 2) Parametrización, 3) Programación y Optimización de Horarios, e 4) Informe de Resultados. La modularización ha sido realizada según el objetivo que persigue cada uno. En la Figura 6.1 se representa la arquitectura del sistema en función de los módulos citados y de la relación que existe entre ellos. 1) Módulo Integración de datos. Es el responsable de obtener y estructurar la información mediante la cual se especifica cada caso de prueba o instancia de OPT. Específicamente, el sistema obtiene los datos correspondientes a determinados atributos de cada tren, de cada dependencia, y de cada tramo de la línea ferroviaria, sobre la cual se programarán los horarios de los trenes considerados. Los datos corresponden a información real facilitada por la compañía ferroviaria, que el usuario del sistema software selecciona indicando la línea ferroviaria que desea utilizar. A partir de dicha selección, la herramienta obtiene los datos de los trenes que la ocupan (el tipo de operador, el recorrido (secuencia ordenada de dependencias por donde deberá pasar), la parada comercial en cada dependencia de su recorrido, el tiempo que emplea para recorrer cada tramo de su recorrido, etc.) y los datos referentes a la secuencia ordenada de dependencias que define la línea ferroviaria seleccionada

236 206 dehorarios Principal 6. Evaluación Computacional Trenes Tramo Estaciones Tramos Estación LecturaHorarios Interfazde LTOdatos InterfazInfraestructura óninterfazresultados ión MOM Actualización Integración de dedatos Programación y Optimizaci InterfazConfigurac Parametrización Figura 6.1: Arquitectura de la herramienta software que implementa el método PBO (el tipo de la dependencia (permite cruce, o no), número de vías en dependencia y en tramo, tipo de señalización por tramo, etc.). 2) Módulo de Parametrización. Permite especificar, del conjunto de trenes existentes en la línea ferroviaria, cuáles serán los trenes cuyos horarios deberán ser programados y optimizados (Interfaz LTO en la Figura 6.1). Por cada uno de los seleccionados, es posible indicar valores para los parámetros de las restricciones que regularán su horario. Por ejemplo, por cada tren se puede establecer un determinado intervalo de tiempo para su instante de salida inicial ó el máximo retraso que se considerará factible con respecto a su tiempo ideal (Interfaz Principal en la Figura 6.1). Los atributos de la infraestructura ferroviaria correspondiente a la línea seleccionada, también pueden ser modificados una vez hayan sido obtenidos por el módulo Integración de Datos. Es posible modificar el número de vías en una dependencia, el tipo de señalización o el número de vías en un tramo, entre otros, pudiendo recuperar los valores originales cuando se considere oportuno (Interfaz Infraestructura en la Figura 6.1). Otros parámetros cuyos valores son especificados por el módulo Parametrización corresponden al método empleado para programar y optimizar horarios (Interfaz Configuración en la Figura 6.1), tales como: condición de parada (número máximo de iteraciones o tiempo máximo de ejecución), ponderación de los criterios utilizados en la función objetivo, aplicar o no poda, clasificación de tipo de

237 6.3. Descripción de los Casos de Prueba 207 tren por operador, prioridad en los adelantamientos, tipo de optimización (standard o flexible), etc. 3) Módulo de Programación y Optimización de Horarios. Es el responsable de obtener una solución para la instancia del problema OPT que haya sido especificada mediante el módulo Integración de Datos y el módulo Parametrización. La solución es obtenida mediante la aplicación del método PBO. Una vez se satisfaga la condición de parada indicada mediante el módulo Configuración, se proporciona la mejor solución hallada entre aquellas que hayan sido construidas por cada iteración. El módulo Programación y Optimización de Horarios evalúa cada solución construida a partir de la función objetivo establecida para el problema OPT. Datos relativos al tiempo de ejecución, valor de la función objetivo y tiempo promedio de recorrido, correspondientes a la mejor solución en cada momento, son valores conocidos durante el tiempo que se ejecuta la optimización. 4) Módulo de Informe de Resultados. Muestra datos relativos a la mejor solución hallada tales como: instante de salida/llegada inicial/final por cada tren y diferencia de tiempo con el instante de salida/llegada preferente, tiempo de recorrido total por cada tren y diferencia con respecto al mejor tiempo que el mismo podría emplear, retraso de cada tren en porcentaje. La mejor solución puede ser almacenada (Actualización de Horarios en la Figura 6.1) para su posterior representación gráfica Descripción de los Casos de Prueba En ésta sección describimos los aspectos más importantes acerca de cada caso de prueba considerado para la evaluación computacional, de tal forma que pueda ser estimada su correspondiente complejidad. La dimensión que posee cada instancia del problema OPT está dada por el número de soluciones posibles (espacio de soluciones), así como por la dificultad que supone obtener cada una de ellas. Estos factores a su vez son determinados por las propiedades: de la línea ferroviaria (número de estaciones, número de vías por tramo y estación, tipo de bloqueo por tramo, horarios de cierre, bandas de mantenimiento,..., etc.), del conjunto de trenes en circulación (ocupación de la línea según el horario y el recorrido asignado a cada tren en T C ), y del conjunto de trenes que se desea agregar a la línea (recorrido, velocidad por tramo, márgenes necesarios,...,etc.

238 Evaluación Computacional por cada tren en T new ). Casos Km. Est. Infraestructura T. en Circulación Nuevos Trenes V.Única V.Doble Trenes Tramos Trenes Tramos Cuadro 6.1: Descripción de 13 instancias del problema OPT Hemos descrito en cada fila de la Tabla 6.1, un caso de prueba real en términos de: i) las principales características de la infraestructura de la línea ferroviaria correspondiente, ii) del conjunto de trenes que se encuentran en circulación, T C, y iii) del conjunto de nuevos trenes a planificar T new. De la infraestructura de la línea ferroviaria hemos proporcionado propiedades como: Extensión de la línea (Km.). Longitud de la línea ferroviaria dada en kilómetros. Número de estaciones (Est.). Determina la cantidad de dependencias en las cuales un tren puede realizar una parada técnica para evitar conflictos con otros trenes de la línea. Las paradas técnicas que se deban realizar en una estación, serán mayores cuanto mayor sea la distancia entre esta estación y la estación consecutiva en el recorrido del tren. Número de tramos con vía única (V.Única). Debido a que en un tramo con vía única no pueden estar dos trenes que viajan en sentido opuesto en un mismo instante de tiempo, la cantidad de las mismas determina la cantidad

239 6.3. Descripción de los Casos de Prueba 209 de restricciones necesarias para evitar un cruce entre dos trenes que viajan en sentidos opuestos. Número de tramos con vía doble (V.Doble). Permite determinar la proporción de la línea L en la cual no existirá la competencia de dos trenes, viajando en sentido opuesto, por un mismo tramo. Del conjunto de trenes en circulación T C, y del conjunto de trenes nuevos a planificar T new, se proporciona: Cantidad de trenes. Suma de tramos. Corresponde al total de tramos en los que se debe asignar ó verificar un horario. En el caso de los trenes en circulación, estos datos proporcionan una medida de la ocupación que existe en la línea, y de la ocupación que resta en ella (columnas Trenes y Tramos bajo el encabezado T. en Circulación). En el caso de los trenes que se desean agregar a la línea L, las columnas Trenes y Tramos bajo el encabezado Trenes Nuevos, proporcionan una medida de la cantidad de recursos ferroviarios necesarios y del número de conflictos en tramos y estaciones que deben ser resueltos para que la asignación realizada sea factible. Casos Var. Rest. Conf. Sol ,86E ,85E ,2E ,50E ,24E ,51E ,18E ,36E ,80E ,71E+40 Cuadro 6.2: Dimensiones del Modelo para cada Caso de Prueba

240 Evaluación Computacional 6.4. Complejidad de los Casos de Prueba Teniendo en cuenta la descripción de la aproximación PBO dada en el capítulo 5 podemos estimar la complejidad de cada caso de prueba basándonos en el número de variables, número de restricciones y número de conflictos que puedan existir en cada una de ellas. El valor correspondiente a cada uno de éstos factores es dado por cada caso de prueba en la Tabla 6.2 bajo las columnas Var., Rest. y Conf., respectivamente. Número de Variables. Considerando que cada variable del problema OPT corresponde al instante de llegada o al instante de salida de un tren en una determinada dependencia de su recorrido, el número de variables correspondiente a cada caso de prueba es t i T new ( J i 1) 2. Por cada dependencia del recorrido J i de un tren t i en T new, existen dos variables, instante de llegada e instante de salida, excepto en la primera y última estación de su recorrido. La suma del conjunto de variables de cada tren t i en T new proporciona el total de variables existente en cada caso de prueba. Numero de Restricciones. A partir de cada restricción definida en la Sección del capítulo 3, se ha calculado el número de verificaciones que debe realizar la aproximación PBO para comprobar que cada asignación es factible. Este cálculo ha sido realizado teniendo en cuenta cada restricción, así como el alcance de cada una. Número de Conflictos y Soluciones. El número de conflictos indicado por cada caso de prueba en la Tabla 6.2 corresponde a la cantidad de pares de trenes que viajan en sentido opuesto y se estima requieran ocupar al mismo tiempo un mismo tramo que consta de única vía para circulación. La estimación de este número se lleva a cabo por ubicar en la línea ferroviaria según su horario ideal (ninguna parada técnica) a cada uno de los trenes que forman parte del problema. Por cada par de trenes que ocupan un mismo tramo de vía única al mismo tiempo se suma uno al número de conflictos. Este valor es muy importante ya que para cada uno de

241 6.5. Coste de cada solución en función de la parametrización < α, ɛ > 211 estos conflictos existe dos formas de resolverlos, es decir que este valor nos proporciona la dimensión aproximada del espacio de búsqueda (columna Sol en la Tabla 6.2). Otro tipo de conflicto, que aunque no aumenta el espacio de búsqueda, sin embargo sí incrementa el tiempo que emplea el método en hallar cada solución, es el conflicto por las vías dentro de una estación. Cuando el instante de llegada que corresponde a un tren en una estación es tal que en dicho instante no hay vías disponibles, se debe deshacer el horario asignado en el tramo previo, llevando a un backtracking, en el horario del tren y en el horario de los trenes que hayan tenido una parada técnica causada por el mismo Coste de cada solución en función de la parametrización < α, ɛ > En ésta sección se muestran los resultados obtenidos por PBO, en número de iteraciones realizadas así como en el coste de cada solución, cuando el mismo es ejecutado durante 120 segundos. Estos resultados se comparan posteriormente, con los obtenidos por la aproximación PBO RAND, el cual es ejecutado durante el mismo tiempo de ejecución. El coste de cada caso de prueba viene determinado por la longitud de las paradas técnicas realizadas por cada tren en T new, las cuales son motivadas por la limitación de recursos disponibles (vías en tramos y estaciones). Dado dos trenes nuevos, compitiendo por un mismo recurso, realizará la parada técnica aquel con menor prioridad sobre el recurso. Las prioridades se determinan según el orden de asignación de variables. Al utilizar la aproximación PBO, el orden de instanciación por cada solución lo determina la heurística descrita en la Sección del Capítulo 5, la cual utiliza dos variables, α y ε, con un valor determinado. Por cada fila de las Tablas 6.3 y 6.4 se muestra el coste de la mejor solución obtenida por PBO, para cada caso de prueba, al cabo de dos minutos de ejecución, y por cada columna de éstas tablas, la combinación < α, ε > utilizada. Note que la primera columna de la Tabla 6.3 corresponde a los resultados obtenidos por la aproximación PBO RAND, donde

242 Evaluación Computacional Casos α = 0 α = 1 α = 2 ε = 0.05 ε = 0.15 ε = 0.30 ε = 0.05 ε = 0.15 ε = ,15 68,10 71,50 69,50 67,80 71,00 75, ,69 75,90 67,90 75,90 74,30 70,20 71,50 3 6,2 6,50 6,70 6,50 6,60 6,50 6,80 4 7,76 7,76 7,76 7,76 7,76 7,76 7, ,6 54,80 57,20 58,00 58,00 51,90 56, ,6 12,10 13,00 13,00 12,40 12,60 12, ,8 35,70 35,70 34,40 35,70 34,40 34, ,1 18,70 19,00 19,10 18,90 19,20 18,70 9 3,6 3,60 3,60 3,60 4,00 4,10 3, ,5 12,20 13,70 13,20 14,70 13,20 13, ,9 19,40 18,90 18,80 18,20 18,80 18, ,1 18,90 17,20 19,60 18,10 18,40 18, ,7 27,30 25,70 29,50 28,50 28,60 28,00 Prom. 30,37 27,77 27,53 28,37 28,07 27,44 28,10 Cuadro 6.3: Valor de la Función de Coste Global en función de ε y α α = 0, lo cual significa que el orden de instanciación de las variables en cada caso de prueba es completamente aleatorio. En la última fila de las Tablas 6.3 y 6.4 se obtiene el coste promedio, considerando los 13 casos de prueba, para cada combinación < α, ε >. Los diferentes casos de prueba han sido seleccionados de modo que cada uno sea un escenario bastante diferente del resto de casos y así se pueda evaluar la aproximación PBO para diferentes contextos dentro del mismo problema OPT, asegurando que no exista una combinación de elementos, línea, trenes nuevos y ocupación, que favorezca al algoritmo empleado. Comparando la aproximación PBO con la aproximación PBO RAND, a partir de los resultados obtenidos, podemos concluir que es mejor utilizar un criterio para el orden de instanciación de las variables (sección del capítulo 5), que realizar esa ordenación en forma completamente aleatoria (α = 0), más aún cuando se dispone de un tiempo de ejecución mínimo y se requiere que toda solución entregada tienda a la optimalidad establecida por la función objetivo utilizada. Particularmente, según los datos proporcionados en las Tablas 6.3 y 6.4, el mejor promedio al cabo de dos minutos de ejecución lo proporciona la combinación < α = 3, ε = 0, 05 >.

243 6.5. Coste de cada solución en función de la parametrización < α, ɛ > 213 Casos α = 3 α = 4 ε = 0.05 ε = 0.15 ε = 0.30 ε = 0.05 ε = 0.15 ε = ,21 71,60 64,80 71,60 64,20 64, ,88 71,90 73,10 64,30 64,50 72,91 3 6,55 6,50 6,40 6,70 6,50 6,66 4 7,76 7,76 7,76 7,76 7,76 7, ,95 52,00 53,60 55,00 52,20 56, ,84 12,30 11,90 12,80 12,60 12, ,84 34,50 36,00 36,40 32,90 31, ,24 19,10 18,00 18,70 19,20 18,27 9 3,62 3,60 4,10 3,60 3,90 4, ,67 13,60 12,70 14,50 14,40 13, ,68 19,40 19,40 18,10 17,40 18, ,53 18,00 19,60 19,50 17,20 17, ,51 27,30 28,10 27,90 24,50 28,49 Prom. 25,87 27,50 27,34 27,45 25,94 27,15 Cuadro 6.4: Valor de la Función de Coste Global en función de ε y α Los diferentes promedios obtenidos entre PBO RAND y las diferentes combinaciones < α, ε > utilizando PBO, son representados gráficamente en la Figura 6.2. Cada punto señalado en las líneas de la figura, representa el coste promedio obtenido con una determinada combinación < α, ε >. Todos los puntos unidos por una misma línea comparten el mismo valor de α Backtracking en la búsqueda de soluciones Como vimos en la Sección 5.6.2, el método de solución asigna un horario inicial a un tren en un tramo determinado, y posteriormente verifica que el horario asignado satisfaga el conjunto de restricciones. Cuando ciertas restricciones son incumplidas se debe retrasar en una determinada cantidad el instante de salida de la estación inicial del tramo, como para que dichas restricciones sean cumplidas. Sin embargo, otras necesitan que se retrase el instante de salida del tramo anterior al considerado para que sean cumplidas, lo cual provoca que el horario ya asignado en el tramo previo al considerado deba ser deshecho y vuelto a calcular. La columna Back. en la Tabla 6.2 proporciona el número de veces en promedio, que ésta operación es

244 Evaluación Computacional Costo Promedio RAND alpha=1 alpha=2 alpha=3 alpha=4 31,00 30,50 30,00 29,50 29,00 Epsilon 28,50 28,00 27,50 27,00 26,50 26,00 25,50 )(YLínea 0 0,05 0,1 0,15 0,2 0,25 0,3 0,35 l1 t2 t10 Figura 6.2: Coste Promedio en función de α para diferentes valores de ε k 2 realizada en cada caso de prueba para obtener cada solución. time0trenes 2time1 time0trenes 3 7 time1 k = = lk+ Figura 6.3: Un ejemplo donde se aplica Backtracking t( 1) Nk=2 Nocumplerest.C () Nk2 (3) Nk2 Tiempo(X) Backtracking Como un ejemplo considere la Figura 6.3, en ella se muestran tres situaciones, que se pueden producir. En la primera, se indica que la estación l k está ocupada por dos trenes durante el intervalo de tiempo [time 0, time 1 ]. En la segunda, se ha asignado un horario al tren t 2 de tal forma que no se cruce en el tramo de vía única con los trenes t 0 y t 1 que tienen mayor prioridad. Por lo tanto el horario asignado

245 6.6. Comportamiento Anytime 215 a t 2 requiere de una parada técnica en la estación l k. Esta situación hace que la estación l k pase a estar ocupada por tres trenes en un determinado instante del intervalo considerado, lo cual no es posible ya que dicha estación solo cuenta con dos vías (N k = 2). Para corregir este incumplimiento se debe retroceder el instante de salida de t 2 en la estación previa l k+1, lo cual significa retroceder un tramo en la asignación del horario a t 2. Este paso es representado por la situación 3 en la Figura 6.3. Debe tenerse en cuenta además que una vez se deshace el horario de un tren, puede ser necesario deshacer el horario de otros trenes. Específicamente, considerando el ejemplo previo, se deberán deshacer los horarios de todos aquellos trenes a los cuales t 2 hubiera ocasionado una parada técnica en los tramos, donde su horario se ha deshecho. Aquellos casos de prueba donde existan varias estaciones con un número reducido de vías (1 ó 2), y donde el número de trenes, así como el número de tramos comunes entre sus recorridos favorezca a la competencia por recursos, tendrán un número elevado de backtracking y con ello un tiempo de respuesta mayor para la obtención de una solución Comportamiento Anytime El método de solución construye una nueva solución en cada iteración, manteniendo siempre aquella solución que proporcione el mejor valor de la función objetivo. El método de solución puede ser interrumpido en cualquier instante durante su ejecución y proporcionará la mejor solución obtenida hasta entonces. Esta propiedad lo identifica como un algoritmo Anytime. Por otro lado, si consideramos la formulación del algoritmo PBO, la cual fue realizada en el capítulo 5, en la que se modela el problema OPT como un árbol de búsqueda, donde la generación de cada una de sus ramas corresponde a una iteración del algoritmo, podemos decir que conforme el tiempo de ejecución del algoritmo PBO aumente, el número de ramas completamente generadas será mayor y la distancia entre el coste de cada generación y el coste óptimo será menor. Debido al proceso de poda aplicado en la aproximación PBO, una iteración finaliza sin ser interrumpida solo si la solución que obtiene genera un coste inferior al de la mejor solución obtenida hasta ese momento. De no ser así, el proceso de poda no

246 Evaluación Computacional permitirá que la iteración finalice, es decir podará la rama del árbol correspondiente. Por lo tanto a medida que el tiempo de ejecución aumente, el coste de las soluciones obtenidas disminuirá. Esto puede ser visto en la Figura 6.4, donde se proporciona el coste de la función objetivo del problema OPT correspondiente a la mejor solución obtenida en cada caso de prueba por cada minuto de ejecución. En la Figura 6.4 se muestra el coste de la mejor solución obtenida al cabo de cada minuto de ejecución en cada caso de prueba, cuando el problema OPT es resuelto utilizando el algoritmo PBO con α = 3 y ε = Por cada minuto de ejecución, se obtiene un promedio de costes teniendo en cuenta los 13 casos de prueba. En la Figura 6.5 se muestra la evolución de éste coste promedio conforme aumenta el tiempo de ejecución, desde el minuto 1 hasta el minuto 60. Por otro lado, con el objetivo de indicar las implicaciones que tienen en la generación de soluciones los valores asignados a α y a ε, hemos realizado otra ejecución del algoritmo PBO con los mismos casos de prueba, pero ésta vez utilizado α = 1 y ε = Se han obtenido resultados por cada caso de prueba y por cada minuto de ejecución, desde el minuto 1 hasta el minuto 60. El coste promedio considerando los 13 casos de prueba por unidad de tiempo (minuto), es representado gráficamente en la Figura 6.5.

247 6.6. Comportamiento Anytime ' ' 64,09 64,28 64,29 65,21 ' ' ' ' 58,05 59,88 ' ' ' ' 6,29 6,39 6,52 6,55 6,82 ' ' 7,76 ' ' 48,40 49,40 51,97 54,95 ' ' 11,84 ' ' 31,32 32,72 32,85 33,46 34,09 34,84 ' ' 16,88 18,24 19,20 ' ' 3,60 3,62 3,96 ' ' 12,53 13,28 13,67 ' ' 16,68 ' ' 14,82 17,53 18,81 ' ' 24,81 25, ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' (min) Tiempo ,, = = ε α CasosdePrueba Figura 6.4: Función Objetivo por Caso de Prueba y por Unidad de Tiempo Como puede verse, cuando el valor de α es menor, el algoritmo PBO tiene un

248 Evaluación Computacional 28,50 28,00 27,50 Costo Promedio (%) 27,00 26,50 26,00 25,50 25,00 Alpha = 1 Epsilon = 1 Alpha = 3 Epsilon = 0,05 24,50 24, Tiempo (minutos) Figura 6.5: Valor Promedio de Función Objetivo por Tiempo, < α = 3, ε = 0.05 > y < α = 1, ε = 0.05 > comportamiento menos determinístico, lo cual es favorable cuando se dispone de un tiempo de ejecución prolongado, ya que existe mayor probabilidad de que en cada generación el orden de instanciación sea diferente, y por lo tanto sea mayor el espacio de soluciones explorado, retrasando así la aparición del óptimo local Casos particulares y descripción de las Soluciones obtenidas En esta sección seleccionamos soluciones correspondientes a diferentes instancias del problema OPT. Estas instancias han sido resueltas utilizando el método de solución al problema OPT, propuesto en esta Tesis. El objetivo en esta sección es describir los resultados obtenidos, apoyándonos para ello en una representación gráfica de cada solución, en la infraestructura ferroviaria de cada caso, y en la consideración hacia las restricciones y la función objetivo del problema. En las sub secciones y utilizamos instancias diferentes en cuanto a la complejidad computacional de cada una. Esto es llevado a cabo con el objetivo de explicar, y no únicamente

249 6.7. Casos particulares y descripción de las Soluciones obtenidas 219 enumerar, la influencia del número de restricciones, variables, backtrackings, y posibles soluciones, en el tiempo empleado para obtener una solución que tenga un coste aceptable. El método propuesto en esta tesis está preparado para resolver instancias muy comunes en el mundo real, de alta complejidad, pero no por ello utiliza más tiempo del necesario para resolver instancias de menor complejidad computacional. A continuación proporcionamos el significado de las columnas pertenecientes a las tablas utilizadas para indicar características consideradas en cada línea ferroviaria, perteneciente a las instancias que serán descritas en las sub secciones y Dep.: identificador de la dependencia en la línea, Km.: distancia en kilómetros desde la dependencia en la misma fila de la tabla hasta la dependencia que figura en la fila anterior de la misma, D/U: cantidad de vías en el tramo formado por la dependencia en la misma fila de la tabla y la dependencia que figura en la fila anterior de la misma, Bloqueo: tipo de bloqueo, automático o manual, en el tramo, Vías: cantidad de vías en la estación, Andén: cantidad de vías con andén en la estación, Cierre: intervalos correspondientes al horario de cierre en la estación, Tipo: tipo de cierre en la estación. En las tablas, los identificadores de las dependencias, cuyo tipo es Estación, están resaltados en negrita. En la sub sección se describen soluciones obtenidas cuando se requiere satisfacer un determinado periodo de tiempo entre salidas iniciales consecutivas. Finalmente, en la sub sección se presentan ejemplos con los cuales se desea indicar la influencia de las características de una infraestructura ferroviaria, tanto en el tiempo computacional para obtener cada solución, como en la amplitud del espacio de soluciones.

250 Evaluación Computacional Baja Interrelación entre los Trenes de la Línea En esta sub sección describimos una instancia del problema OPT en la cual se dan características que hacen que el espacio de soluciones sea reducido así como el tiempo empleado para hallar cada una de estas soluciones. En la Tabla 6.5 se indican los atributos de la línea ferroviaria correspondiente a la instancia considerada. Al considerar el recorrido de la línea ferroviaria en un determinado sentido, la estación origen de la misma es la dependencia y su estación destino es la dependencia La cantidad de trenes que se desea agregar a la línea ferroviaria es igual a 24, de los cuales 8 trenes tienen el mismo recorrido aunque en sentidos opuestos. El resto de los trenes tiene un recorrido de longitud menor. Se desea optimizar al mismo tiempo tanto trenes del tipo viajero como trenes del tipo mercancía. En este ejemplo, por cada tren se ha indicado un instante de salida deseado de su respectiva estación de origen. Ningún tren podrá salir antes de dicho instante y el tiempo transcurrido desde el instante deseado hasta el instante de salida asignado por el método, se considerará una parada técnica y por lo tanto parte del retraso del tren. En la Figura 6.6 se representa gráficamente en un plano espacio - tiempo (eje x - eje y) la solución óptima para esta instancia. Como puede verse en la Tabla 6.5, la mayoría de los tramos de la línea tienen una sola vía de circulación para ambos sentidos. Razón por la cual los trenes t 2, t 4, t 5 y t 7 deben realizar paradas técnicas en las estaciones señaladas en la Figura 6.6, de tal forma que el tramo de vía única sea liberado por los otros trenes, antes de que ellos puedan utilizarlos. En este punto podemos señalar que en la instancia considerada en esta sección existen cuatro conflictos, en cada uno un par de trenes compiten por un tramo. Cada conflicto entre el tren x y el tren y por un mismo tramo, puede ser resuelto de dos formas, o espera x o espera y. Por lo tanto existen 2 4 soluciones para esta instancia. Es esta la razón por la que consideramos que el espacio de soluciones para esta instancia es muy reducido y puede ser fácilmente obtenido, por lo tanto también la solución óptima puede ser alcanzada fácilmente por el método descrito en esta Tesis. En este caso la razón del bajo número de conflictos en una línea ferroviaria donde la mayoría de sus tramos tienen una sola vía, se debe a la baja densidad de tráfico en la línea durante todo el intervalo de tiempo considerado.

251 6.7. Casos particulares y descripción de las Soluciones obtenidas 221 Dep. Km. D/U Bloqueo Vías Andén Cierre Tipo B5119 3,1 2 A B5102 0,9 2 A B5101 2,2 2 A B5073 0,8 1 A ,9 1 A 2 2 B4301 1,4 1 A ,8 1 A M :00-06:35; 14:25-24:00 AC D M ,9 1 M ,1 1 M :00-14:35; 22:55-24:00 AC ,3 1 M ,9 1 M M :00-24:00 AC ,8 1 M M ,4 1 M :00-24:00 AC ,6 1 M ,2 1 M ,3 1 M ,6 1 M :00-24:00 AC M ,9 1 M ,5 1 M 4 4 Cuadro 6.5: Características de la Línea Ferroviaria Aunque la mayoría de los tramos de la línea ferroviaria, tienen como tipo de señalización bloqueo manual, esto no afecta al horario de los trenes, ya que los instantes de salida iniciales de cada uno, hacen que los trenes consecutivos estén lo suficientemente separados como para que no tengan que esperar en ninguna estación que el tren anterior abandone el tramo. Por lo tanto no se produce retraso en sus horarios por esta causa. El tiempo para generar cada solución depende principalmente del número de backtrackings que deba realizarse, y del número de restricciones a verificar. En este caso el número de ambos factores es muy bajo, de los 24 trenes, 16 tienen un recorrido muy corto, por lo tanto generan muchas menos restricciones que los 8 restantes. De

252 Evaluación Computacional estos 8 trenes restantes no todos comparten el mismo intervalo de tiempo en la línea, por lo tanto el número de restricciones binarias también es menor. En esta instancia no se realiza ningún backtracking ya que en ningún momento se incumple la restricción sobre número de vías, ni siquiera durante los horarios de cierre, una vez más motivado por el bajo número de trenes por cada instante de tiempo en la línea. En menos de un segundo se obtiene un retraso promedio de 3,5 %, la solución óptima se obtiene en 3 minutos y es igual a 3 %. Figura 6.6: Instancia del Problema OPT de baja complejidad Si modificamos la infraestructura de tal forma que en la línea solo existan tramos con vía doble, entonces obtendríamos un retraso igual a cero en la primera iteración y por supuesto esta sería la solución óptima. Esto es debido a que en esta instancia no existe posibilidad de conflicto entre los trenes del mismo sentido, ya que el número de trenes del mismo sentido por unidad de tiempo es muy bajo, entonces al aumentar el número de vías en los tramos también eliminamos la posibilidad de conflicto entre

253 6.7. Casos particulares y descripción de las Soluciones obtenidas 223 los trenes con sentidos opuestos. Por lo tanto, no existen restricciones disyuntivas, solo restricciones que son satisfechas con la propagación del instante de salida inicial de cada tren, lo cual es obtenido en la primera solución, como solo existe una posible solución, esta es la óptima Alta Densidad de tráfico en la Línea Ferroviaria Al igual que en la instancia anterior, por cada tren se indica cuál es el instante de salida que se desea parta cada tren de su estación origen. En la Figura 6.8, del conjunto de trenes fueron los señalados por t x, t y y t z los que no han podido salir en dicho instante. El tren t x ha sido retrasado un minuto, t y 27 minutos y t z 11 minutos. En el caso de t x este retraso es asignado para que satisfaga el tiempo de expedición igual a un minuto con el tren que viaja en sentido ida y llega antes que el a su estación de origen.

254 Evaluación Computacional D D Dep. Km D/U 10 BloqueoVías Andén :- AM,,,,, ,,,,,,,, 23,,,,,,, : Cierre -;: -: Tipo AC,,,,,,,,,,,,,,, 4,,,,,,,,,,,,, Figura 6.7: Datos de la Línea Ferroviaria En la Figura 6.8 se señala con la etiqueta Día un tramo que posee una sola vía

255 6.7. Casos particulares y descripción de las Soluciones obtenidas 225 t y Día tx tz ti Día2 Figura 6.8: Solución para una instancia de circulación y se halla ocupado en un mismo instante de tiempo, por dos trenes que viajan en sentidos opuestos. A simple vista podemos deducir que el horario de estos trenes no es factible ya que según la solución mostrada en la Figura se produce un choque entre los mismos. El método PBO considera entre otros atributos de cada tren, los días de circulación asignado a cada uno. Considerando nuevamente a los dos trenes que participan en el conflicto señalado por la etiqueta Día, el tren que viaja en sentido vuelta tiene como días de circulación lunes, martes, miércoles, jueves, viernes y domingo. El tren que viaja en sentido ida tiene como días de circulación sábado. Teniendo en cuenta los días que circula cada uno, ninguno de estos trenes coincidirá en el tramo señalado, por lo tanto el intervalo de tiempo asignado a cada uno en dicho tramo es válido con respecto a la restricción de cruce. Sin embargo, el mismo tren con sentido ida y el tren señalado como t y sí tienen un día en común, ya que t y circula todos los días de la semana. Es por ello que debe esperar en la estación hasta que el tramo que sigue sea liberado. Tampoco tienen días en común los trenes que viajan en el mismo sentido y están señalados por la etiqueta

256 14.19t Evaluación Computacional t t ty Falta Recepción 5min = Figura 6.9: Causa del retraso del tren t y Día 2. El horario asignado a ambos es el mismo en los mismo tramos. Esto sería un alcance si ambos tuvieran algún día en común. En la secuencia de Figuras 6.9, 6.10, 6.11, 6.12 y 6.13 se describe el por qué del retraso final del tren t y con respecto al instante de salida inicial deseado. El instante de salida inicial deseado para el tren t y ha sido establecido en 14:10 hs. Finalmente en la solución obtenida por el método PBO al cabo de un minuto de ejecución, se obtiene el instante 14:37 hs. En ésta solución es obtenido dicho valor porque se le asigna mayor prioridad a los trenes t 1, t 3 y t 5 frente al tren t y en los tramos , y , lo cual hace que siempre que exista un conflicto entre t y y cualquiera de estos trenes en dichos tramos, el tren que deba esperar sea t y. En la Figura 6.9 al intentar sacar a t y a las 14:10 hs. de su estación origen, se incumple la restricción sobre tiempo de recepción entre t 1 y t y, ya que al ser t 1 un tren tipo mercancías, t y debe llegar cinco minutos después a la estación en conflicto, y no dos minutos como sucede en el caso mostrado en la Figura 6.9. Este incumplimiento es reparado por retrasar 3 minutos la salida inicial de t y, situación mostrada en la Figura En este caso el problema aparece con t 3, ya que solo existe 1 minuto de diferencia entre la llegada de t y y la llegada de t 3, lo cual no es

257 14.19t Recepción tok 3min en derecepción salidacon tren Casos t 1 particulares y descripción de las Soluciones obtenidas t Tiempo Retraso y Falta Recepción inicialparasatisfacer t1 = Figura 6.10: Causa del retraso del tren t t y t Recepción tok 14.17y Tiempo Retraso parasatisfacer t1 3, 14.19t CruceX en derecepción salidainicial con tren Figura 6.11: Causa del retraso del tren t y

258 14.19t ty en derecepción salidacon tren Evaluación Computacional t t Falta Recepción Tiempo Cruce Retrasot con tren 3inicialparasatisfacer t31, = Figura 6.12: Causa del retraso del tren t t1 t3 y Recepción 14.40OK Retraso Cruce Tiempocon tren t3, parasatisfacer t531, t5 en derecepción salidainicial con tren 5min. Figura 6.13: Causa del retraso del tren t y

259 6.7. Casos particulares y descripción de las Soluciones obtenidas 229 suficiente. Al ser t y un tren tipo viajero requiere tres minutos de diferencia entre su llegada y la llegada de un siguiente tren a la misma estación. Por lo tanto debe volver a retrasar su salida lo suficiente como para llegar 3 minutos después que t 3 a dicha estación. Esta situación es mostrada en la Figura Nuevamente aparece un conflicto, un cruce con t 3, esto es subsanado según muestra la Figura Sin embargo t y vuelve a incumplir la restricción sobre tiempo de recepción, esta vez con t 5, en lugar de existir 3 minutos de diferencia entre sus instantes de llegada, existe tan solo un minuto, lo cual no es factible. Esto hace que t y deba ser retrasado lo suficiente como para llegar cinco minutos después que haya llegado t 5 a la estación en la cual se ha producido el conflicto. Son cinco minutos en lugar de tres, porque t 5 es un tren tipo mercancías. Por cada tipo de tren se parametriza el valor asignado al tiempo de recepción, expedición, sucesión automática, etc Resultados cuando se requiere Periodicidad en Salidas En los ejemplos previos, se han considerado instancias del problema OPT en los cuales no ha sido requerido que trenes consecutivos partan de sus correspondientes estaciones iniciales o de determinadas estaciones intermedias satisfaciendo un determinado periodo de tiempo entre sus respectivas salidas. Es decir la restricción C 15 - Salidas Periódicas definida en el capítulo 3, no ha formado parte del conjunto de restricciones considerado para resolver dichas instancias. En esta subsección mostramos resultados correspondientes a una instancia del problema OPT en la cual si es requerido que el horario asignado a los trenes de la instancia considerada satisfaga además del conjunto de restricciones consideradas en instancias previas, la restricción C 1 5. Consideramos un conjunto de 33 trenes, todos con el mismo recorrido, aunque una parte de ellos en un sentido y el resto en el sentido opuesto. La línea utilizada por estos trenes está formada por 32 dependencias, los tramos pertenecientes a la línea constan tanto de vía única como de vía doble, y parte de la línea utiliza bloqueo manual. Mostraremos los resultados obtenidos al resolver esta instancia del problema en menos de 1 segundo de ejecución. Se realizaron cuatro pruebas con el mismo conjunto de trenes y la misma línea ferroviaria. La diferencia entre las mismas consistió en la cantidad de tiempo requerido como periodo de tiempo entre las salidas

260 Evaluación Computacional Figura 6.14: Periodo de tiempo entre salidas iniciales consecutivas: 20 minutos iniciales de los trenes consecutivos pertenecientes a la instancia considerada. En la Figura 6.14 se muestra el resultado obtenido cuando el periodo de tiempo entre las salidas iniciales de los trenes consecutivos debe ser igual a 20 minutos. Como puede verse el método PBO ha asignado el instante de salida del primer tren que viaja en sentido vuelta, posterior al instante de llegada del último tren que viaja en sentido ida. Es importante notar que se había indicado como instante de salida deseado para el primer tren que viaja en sentido vuelta, el instante 06:26 hs. Como puede observarse en la solución proporcionada por PBO en la Figura 6.14, el primer tren que viaja en sentido vuelta parte de su estación origen en el instante 13:05 hs. Este retraso con respecto al instante de salida deseado es debido a que el método no ha encontrado un instante de salida anterior al asignado que permita que cada par de trenes consecutivos salgan posteriormente satisfaciendo, además de todas las restricciones de OPT, el requerimiento de que debe mantener un periodo de tiempo igual de 20 minutos con respecto a la salida del tren previo. Al aumentar el periodo de tiempo requerido entre las salidas iniciales de trenes

261 6.7. Casos particulares y descripción de las Soluciones obtenidas 231 Figura 6.15: Periodo de tiempo entre salidas iniciales consecutivas: 30 minutos consecutivos de 20 minutos a 30 minutos, el método PBO obtiene el resultado mostrado en la Figura En este caso sí ha sido posible asignar los instante de salida deseados, 06:12 hs. para el primer tren que parte de la estación origen con sentido ida y 06:26 hs. para el primer tren que parte de la estación origen con sentido vuelta. El retraso promedio disminuye al aumentar el periodo de tiempo a 40 minutos, ya que debido al instante de salida deseado para los primeros trenes, y al periodo aumentado en 40 minutos, el intervalo de tiempo entre una salida y otra aumenta, por lo cual los tramos son ocupados por menos trenes por unidad de tiempo, en consecuencia existen menos conflictos por un mismo tramo. Si se comparan los resultados obtenidos previamente con el periodo de tiempo igual a 30 minutos y el resultado obtenido con el periodo igual a 40 minutos en la Figura 6.16 se observa que el número de conflictos es diferente. Finalmente, en la Figura 6.17 se muestra la solución obtenida cuando el periodo de tiempo que debe existir entre las salidas iniciales de los trenes consecutivos es

262 Evaluación Computacional Figura 6.16: Periodo de tiempo entre salidas iniciales consecutivas: 40 minutos igual a 60 minutos Simulación de cambios de infraestructura En esta sub sección consideramos una nueva instancia del problema OPT en la cual se desean agregar 28 nuevos trenes en el intervalo horario de 00:00 a 08:00 hs. El recorrido de los trenes comprende estaciones de la línea ferroviaria En la Figura 6.18 se muestra el resultado obtenido por el método PBO en el primer minuto de ejecución para la instancia considerada en esta sub sección. En la misma figura se señalan las principales características de la línea causantes de las paradas técnicas más pronunciadas en la solución obtenida. El retraso promedio obtenido en este resultado es de 64,2 %. Las estaciones y señaladas con un rectángulo formado por línea de puntos, constan de una sola vía disponible, la otra vía se halla en reparación, por lo tanto ningún tren puede utilizarla. Debido a que no se pueden gestionar

263 6.7. Casos particulares y descripción de las Soluciones obtenidas 233 Figura 6.17: Periodo de tiempo entre salidas iniciales consecutivas: 60 minutos cruces ni alcances en dichas estaciones, esos cruces o alcances son llevados a las estaciones precedentes, lo cual genera mayores paradas técnicas. Vea parada técnica en la estación de la Figura El círculo de la Figura 6.18 señala otra de las causas que generan un mayor retraso en la solución obtenida. En esos tramos señalados hay mayor cantidad de trenes por instante de tiempo. Al ser tramos de vía única, esto obliga a que algunos de ellos deban realizar paradas técnicas necesariamente. El hecho de ser más de dos trenes los que compiten por un mismo tramo, favorece a una mayor parada técnica por parte del tren que espera la liberación del tramo. También señalamos el tipo de bloqueo existente en los tramos de la línea Como puede observarse, el tipo de bloqueo manual está asignado en los tramos que contienen a las estaciones cuyo número de vías es igual a uno. Esto hace que la capacidad de estos tramos sea aún menor, ya que además del hecho que las estaciones que forman parte de dichos tramos solo pueden gestionar un tren a la vez, se suma el hecho de que los tramos tampoco pueden ser ocupados por más de un tren aún cuando estos viajen en el mismo sentido. Ya que dado dos trenes consecutivos,

264 Congestión Mayor Evaluación Computacional 1Vía1 Automático Manual Bloqueo Automático BloqueoUnica Vía Figura 6.18: Causa del retraso del tren t y el segundo en partir, deberá esperar a que el primero llegue a la siguiente estación abierta, antes de que este pueda salir de la estación que inicia el tramo con bloqueo manual. En esta sub sección deseamos indicar particularmente dos características del método PBO, una de ellas es que produce resultados en forma eficiente aún cuando las características de la malla obligan a que el método deba realizar un gran número de backtrackings hasta lograr obtener en cada iteración un conjunto de horarios factible. Aún así se obtiene en el primer minuto de ejecución una solución de alta calidad. Otra de las características que deseamos resaltar en esta sub sección es la capacidad de simular en poco tiempo diferentes características de infraestructura para una misma línea ferroviaria y un mismo conjunto de trenes. Lo cual permite obtener una serie de conclusiones acerca de la infraestructura en muy poco tiempo. Como ejemplo hemos modificado determinadas características de la línea original. Hemos elevado a dos el número de vías en las estaciones señaladas por el rectángulo de línea de puntos, hemos aumentando en uno el número de vías en los tramos entre las estaciones y 50203, señalados por el círculo de línea de puntos en la Figura 6.19, y finalmente hemos modificado el tipo de bloqueo de manual a automático en el tramo señalado en la misma figura. Con estas modificaciones se ha

265 Doble Vía 6.8. Algunos ejemplos de instancias complejas Vías Automático Bloqueo Figura 6.19: Causa del retraso del tren t y obtenido un retraso promedio igual a 39,2 %. En la Figura 6.19 se observa el resultado obtenido en forma gráfica. En dicha figura se puede observar cómo la capacidad de los tramos aumenta al hacer que todos ellos tengan un bloqueo automático, al igual que permiten una menor parada técnica para los trenes que compiten por lo tramos entre las estaciones y Se puede ver que esto ha influido de gran forma en la disminución del retraso promedio, ya que los trenes aprovechan dichas estaciones para gestionar en ellas los cruces. Son tramos de mucho tráfico, por lo tanto es importante que dichas estaciones estén habilitadas para recibir a más de un tren a la vez. Por lo menos a dos Algunos ejemplos de instancias complejas Algunos ejemplos de casos de estudio utilizados son mostrados a continuación. En la Figura 6.20 se proporciona un caso en el que se desea obtener el horario de los trenes que circulan por una línea ferroviaria en la cual exiten tanto trenes cadenciados (entre todas las salidas consecutivas debe existir un determinado periodo de tiempo) como de trenes no cadenciados. Se puede indicar al método de solución la prioridad de los mismos. En este caso, se ha indicado que los trenes cadenciados

266 Evaluación Computacional deben tener mayor prioridad que el resto de trenes, por lo tanto al realizar la ordenación de variables, aquellas que representan sus instantes de salida son las primeras en ser seleccionadas. La línea ferroviaria está compuesta en su totalidad por tramos de vía doble, lo que favorece a la alta densidad de trenes en la misma.

267 6.8. Algunos ejemplos de instancias complejas 237 Figura 6.20: Lı nea ferroviaria compuesta por Trenes Cadenciados y Trenes sin Cadenciar de diferentes operadores

268 Evaluación Computacional En la Figura 6.21, no toda la línea está formada por tramos de vía doble. Una parte de la misma consta de vía única. Esto además de hacer que aparezcan nuevos conflictos, debido a la competencia entre trenes que viajan en sentido opuesto, hace que el número de soluciones factibles sea mayor, que las que habrían si toda la línea fuera únicamente de vía doble. Comparando los ejemplos de las Figuras 6.20 y 6.21, podemos indicar que en la primera se emplea mayor tiempo para obtener cada solución, ya que consta de mayor número de variables que asignar y de restricciones que verificar, sin embargo el número de soluciones factibles para la misma es menor, ya que al no tener tramos con vía única, el conflicto debido a los cruces no está presente. Por lo tanto, se requieren menor número de iteraciones para explorar mayor espacio de soluciones.

269 6.8. Algunos ejemplos de instancias complejas Figura 6.21: Lı nea con la mayor parte de sus tramos en vı a doble 239

270 Evaluación Computacional El ultimo ejemplo que mostramos en la Figura 6.22, consta únicamente de trenes cadenciados. Cada grupo de trenes que debe satisfacer una cadencia se superpone sobre el otro. No todos comparten días de circulación, y la línea ferroviaria consta de tramos con vía doble. En este ejemplo la principal complicación consiste en satisfacer un periodo de tiempo determinado entre las salidas consecutivas de un grupo de trenes, ya que al tener uno de ellos un conflicto con otro tren cualquier del problema, se debe deshacer el horario del resto de trenes del grupo como para que la frecuencia de salida se siga satisfaciendo.

271 6.8. Algunos ejemplos de instancias complejas Figura 6.22: Trenes Cadenciados superpuestos 241

272 Evaluación Computacional 6.9. Estudio sobre la Robustez de Soluciones Una asignación factible de horarios, ajustada a determinados criterios de calidad, muchas veces debe ser modificada durante su ejecución debido a incidencias que se presentan y que no pueden ser previstas durante su planificación. Una propiedad deseable para los horarios obtenidos es que estas modificaciones sean las mínimas, produciéndose la menor desviación con respecto a la solución originalmente obtenida. Consideramos que cuanto menor sea la modificación en una solución debida a una incidencia, mayor es su robustez. Una forma de obtener horarios robustos podría ser incorporar como un criterio más de la función objetivo la medida de robustez de cada solución. Se han publicado trabajos que proponen formas de medir, lo que ellos consideran robustez de un scheduling de determinadas características. Así, la métrica flex seq consiste en contar el número de pares de actividades de la solución que no están recíprocamente relacionadas (esto es: no están ordenadas una con respecto a la otra por restricciones de precedencia en POS [100]). Esta métrica provee un análisis de la configuración de la solución. El razonamiento que se utiliza para ésta medida es que cuando dos actividades no están relacionadas es posible mover una sin tener que mover la otra [100]. La métrica flex seq ha sido definida en el trabajo de Aloulou y Portmann [3] con el objetivo de medir la flexibilidad de una solución para un determinado tipo de problema. En el trabajo de Aloulou y Portmann se considera el problema de scheduling con una sola máquina con llegada dinámica de trabajos y la demora total y el makespan como funciones objetivo. La máquina está sujeta a trastornos relacionados a la llegada tardía de material y averías en la misma. Se ha propuesto una aproximación proactiva-reactiva para tratar con posibles perturbaciones. En la fase proactiva en lugar de proveer un schedule encargado de tomar decisiones, se presenta un conjunto de schedules predictivos. Este conjunto está caracterizado por un orden parcial de trabajos y un tipo de schedules asociados, que en éste trabajo se trata de schedules semi activos. Esto permite disponer de alguna flexibilidad en la secuenciación de trabajos y flexibilidad en el tiempo que puede ser usada on-line por el algoritmo reactivo para cubrir contra trastornos no previstos. Una solución es más flexible a medida que aumente el número de schedules

273 6.9. Estudio sobre la Robustez de Soluciones 243 correspondientes a la solución [3]. Esto quiere decir que al tener muchos schedules, sería posible disponer en forma on-line, cada vez que una decisión tiene que ser tomada, de más de una alternativa. Esta flexibilidad, llamada flexibilidad en la secuenciación de trabajos (job sequencing), puede ser medida por el numero de diferentes schedules factibles con respecto al orden parcial. Sin embargo, el problema de calcular este numero es #P-complete. Es por ello que [3] propone otra medida flex seq igual al número de ejes no orientados en el grafo transitivo representando el orden parcial. Por otro lado, la métrica fldt es tomada del trabajo de Cesta, Oddi & Smith [25] y está basada en la holgura temporal asociada a cada actividad: fldt = h l d(e ah, s al ) d(s al, e ah ) H N act (N act 1) (6.9.1) En 6.9.1, H es el horizonte de tiempo del problema, N act es el número de actividades, y d(tp 1, tp 2 ) es la distancia entre dos instantes de tiempo. Esta métrica caracteriza la fluidez de una solución. Esto es: la habilidad para absorber variación temporal en la ejecución de actividades. Cuanto más alto sea el valor de fldt, menor es el riesgo de un efecto dominó. En [25], el horizonte H es computado por la siguiente expresión: H = (N jobs 1) pbk + N res p i (6.9.2) i=1 la cual ha sido adaptada a partir del trabajo de Cheng & Smith [26], pbk es el tiempo de procesamiento mínimo de la actividad en el recurso cuello de botella, y p i es el tiempo de procesamiento mínimo de la actividad en el recurso r i. El recurso cuello de botella es el recurso con máximo valor de la suma del tiempo de procesamiento mínimo de las actividades que piden el recurso. En Cesta et al. se considera una clase extendida de problemas de scheduling donde los recursos tienen capacidad finita para soportar más de una actividad. En el trabajo realizado por Vromans, Dekker & Kroon [117] consideran que el uso compartido de la misma infraestructura por diferentes servicios ferroviarios, con diferentes orígenes y diferentes destinos, diferentes velocidades y diferentes patrones de paradas, es probablemente la principal razón para la propagación de retrasos a través de la red. En [117] se investiga el efecto de la heterogeneidad del horario en

274 Evaluación Computacional la fiabilidad del sistema ferroviario. Se considera que el tráfico ferroviario es heterogéneo cuando los trenes tienen grandes diferencias en la velocidad promedio por tramo, resultante del tiempo de recorrido y de los tiempos de parada. La heterogeneidad usualmente conduce a muchos tiempos de sucesión pequeños, los cuales pueden incrementar la propagación de retrasos en las operaciones. En éste trabajo se indica que cuando se investiga heterogeneidad, tramos con vía doble son más relevantes que tramos con vía única. Una importante desventaja de medir tiempos de sucesión en únicamente una dependencia es que esto no dice nada acerca de la conducta de los trenes en el tramo que rodea a la dependencia. Por lo tanto se considera los tiempos de sucesión más pequeños entre dos trenes consecutivos sobre un cierto tramo en lugar de considerar una sola dependencia. Cuando los trenes sobre un cierto tramo son completamente homogéneos, entonces la suma de los tiempos de sucesión más pequeños en éste tramo es igual al ciclo de tiempo (ciclo de tiempo se llama a la cantidad de tiempo que pasa hasta que el conjunto de horarios se vuelva a repetir, por ejemplo: 24 horas). Esto conduce a la primera medida de heterogeneidad propuesta por [117], es definida como sigue: distancia SSHR = n 1 i=1 h i con h i siendo el tiempo de sucesión más pequeño entre los trenes consecutivos i e i + 1 en el tramo considerado. 9t t29t t porhora = = ciclo1hora frecuencia4trenes1hora 0, = SSHR= Figura 6.23: Ejemplo de aplicación de la métrica SSHR en un tramo

275 distancia2 t4t128t22t328t Estudio sobre la Robustez de Soluciones por 2hora28 = = = ciclo1hora frecuencia4trenes1hora SSHR= Figura 6.24: Ejemplo de aplicación de la métrica SSHR en un tramo Según la medida SSHR la solución mostrada en la Figura 6.23 es menos heterogénea que la solución mostrada en la Figura Una desventaja de la medida SSHR es que los tiempos de sucesión son penalizados tan duramente en la salida como en la llegada, aunque según [117] el tiempo de sucesión en llegada es más importante cuando se trata de medir la heterogeneidad de una solución. La primera razón es que los retrasos en llegada suelen ser más grandes que los retrasos en salidas. La segunda razón es que los trenes más rapidos de larga distancia pueden ser alcanzados por detrás por trenes de corta distancia hacia el final de una sección ferroviaria. Por lo tanto se propone una segunda medida, la cual depende únicamente de los tiempos de sucesión en llegada entre cada par de trenes consecutivos, la Suma de los Recíprocos de Tiempos de Sucesión en Llegada (SAHR): SAHR = n 1 i=1 h A i siendo h A i el tiempo de sucesión en llegada entre los trenes i e i + 1. En esta línea de trabajo, el objetivo sería hallar durante la construcción de un horario una medida que nos guíe hacia una solución que además tenga la propiedad de poder restablecerse cuanto antes ante una incidencia, o bien que sea posible modificar el menor número de horarios de operaciones para subsanar ciertos trastornos que ocurran durante el desarrollo de una programación de horarios. Sin embargo, estas medidas resultan insuficientes cuando deseamos incorporarlas en el problema de asignación y optimización de horarios ferroviarios debido a que

276 Evaluación Computacional no tienen en cuenta muchas de las restricciones, que deben ser consideradas en todo horario factible para este tipo de problema.

277 6.10. Conclusiones Conclusiones A partir de los resultados obtenidos durante la evaluación computacional de las aproximaciones desarrolladas en este trabajo, indicamos que estas tienen las siguientes propiedades: Evitan los óptimos locales. Los métodos desarrollados son capaces de explorar un amplio espacio de búsqueda, dentro del espacio de soluciones de cada caso de prueba proporcionado, así como también es capaz de obtener mejores resultados que una aproximación completamente aleatoria en menos cantidad de tiempo. Son eficientes. En un minuto de ejecución, PBO proporciona soluciones, cuyo coste es cercano al obtenido luego de varios minutos de ejecución donde se exploran otras varias regiones del espacio de búsqueda, lo cual indica que las primeras regiones seleccionadas en el espacio de búsqueda, son aquellas donde el criterio heurístico de PBO determina que hay mayor oportunidad de obtener un bajo coste para la función objetivo. Son adecuadas para casos reales. Los casos de prueba utilizados son casos reales del problema OPT. Un gran número de soluciones son factibles para cada uno y la obtención de cada una implica la verificación de un conjunto de restricciones amplio y costoso en ciertos casos (número de vías en estación, horario de cierre, bandas de mantenimiento, demora por parada no prevista, adelantamientos). Estos factores obligan a buscar métodos que resuelvan el problema utilizando una heurística, basándose en el conocimiento del problema que se intenta resolver. Proponemos PBO como ese método por su eficiencia tanto en tiempo como en optimalidad conseguida. Pueden ser empleadas como el núcleo de sistemas de soporte de decisiones. Se pueden implementar aplicaciones que utilicen el método PBO para obtener informaciones con respecto a la línea ferroviaria tal como su capacidad práctica, robustez de la línea, mejoras que puedan obtenerse mediante cambios en la infraestructura, y otros datos que un experto pueda obtener mediante la obtención de resultados parametrizando un determinado conjunto de trenes y una determinada línea ferroviaria. Esto es posible debido a que se consideran

278 Evaluación Computacional un conjunto de restricciones que permite obtener horarios que resultan útiles a nivel práctico en muy poco tiempo de ejecución. La eficiencia en la resolución de casos de prueba de diversa complejidad, han probado la validez de las heurísticas de ordenación y poda, así como del proceso de verificación de restricciones. El resultado es un método que a pesar de la complejidad computacional del problema, proporciona resultados válidos y de calidad en un tiempo razonable, permitiendo su aplicación en un entorno real, como es el sector ferroviario.

279 Capítulo 7 Conclusiones 7.1. Introducción En este capítulo resumimos las principales aportaciones realizadas en esta tesis en relación a los objetivos planteados inicialmente. Estos son: Definir formalmente el problema de generación y optimización de horarios ferroviarios, considerando su contexto real de aplicación. Identificación y formalización del problema. Análisis de aproximaciones alternativas, de técnicas CSP y de programación matemática, para su modelización y resolución, concluyendo la viabilidad y adecuación de las mismas. Diseñar y desarrollar nuevos métodos de solución para el problema de generación y optimización de horarios ferroviarios que permitan obtener soluciones optimizadas de forma eficiente. Diseño de nuevas heurísticas para poder obtener las mejores soluciones en el menor tiempo posible. Evaluación de los métodos desarrollados. Diseño y parametrización de los casos de prueba en base a instancias reales. Desarrollo un sistema software que incorpore los métodos diseñados permite su evaluación. Se destacarán las principales contribuciones realizadas al respecto. En particular, considerando el problema de asignar recursos en el tiempo teniendo en cuenta un conjunto de restricciones y criterios para evaluar la calidad de cada solución, proponemos en la sección 7.3, la robustez y la replanificación como líneas de trabajo 249

280 Conclusiones futuro. Finalmente, en las secciones 7.4 y 7.5 citamos las publicaciones que han resultado del trabajo realizado para esta Tesis y las conclusiones finales de la misma, respectivamente Contribuciones de este trabajo En esta sección, proporcionamos las principales aportaciones que hemos realizado a partir del trabajo llevado a cabo en esta Tesis. Las hemos clasificado en dos aspectos: (i) el de la conceptualización y modelización del problema, y (ii) el del desarrollo y evaluación de un método computacional para resolverlo. A) Conceptualización y Modelización del Problema En esta Tesis hemos considerado un problema combinatorio, de optimización, cuyas características lo definen específicamente como un problema de scheduling tipo Job Shop. Sin embargo, ciertos requerimientos adicionales añaden mayor complejidad respecto al problema comúnmente estudiado, tanto en su modelización como en el proceso de solución. Es importante destacar que las restricciones consideradas corresponden a un problema real, para el que no existía una modelización previa en la literatura. En el capítulo 3 se ha proporcionado la descripción formal del problema de generación y optimización de horarios para trenes (OPT), identificando los elementos que lo definen y formulándolo como un problema de Satisfacción y Optimización de Restricciones (CSOP). Se han descrito formalmente las variables y sus dominios, las restricciones y la función objetivo, mediante la cual se evalúa la calidad de cada solución. El resultado obtenido es una modelización formal de cada una de las restricciones y de los componentes funcionales de la función objetivo que se consideran en esta especialización del problema. Hemos presentado un análisis del estudio realizado sobre aquellas aproximaciones más referenciadas en la literatura, concluyendo que la programación matemática no resulta adecuada para modelar el tipo de problema que consideramos en esta tesis. Ello es debido a la complejidad que supone expresar ciertas restricciones del conjunto

281 7.2. Contribuciones de este trabajo 251 considerado, como por ejemplo: Capacidad limitada de un recurso. No podrán utilizarlo más de N operaciones simultáneamente, siendo N la máxima capacidad del recurso. Disminución de la capacidad de un recurso durante un determinado intervalo de tiempo, que puede ser debido a operaciones de mantenimiento, o avería. Margen de seguridad temporal entre las entradas y las salidas de las operaciones a un determinado centro de trabajo. Dado dos operaciones que entran a un mismo centro de trabajo y utilizan los recursos en un mismo orden, debe ser gestionada en primer lugar la operación que entra primero, siempre y cuando la prioridad de la segunda operación no sea mayor. Diferenciar los recursos que pueden ser utilizados por más de una operación a la vez de aquellos que deben ser utilizados como máximo por una operación a la vez. En este caso las operaciones deberán pertenecen siempre a trabajos que utilizan los recursos en el mismo orden. Podemos concluir por tanto que los métodos que se basan en el modelo matemático del problema no podrían ser empleados, ya que la modelización matemática del conjunto de restricciones que consideramos no es conocida aún en la literatura. Por otra parte, aún restringiendo el conjunto de restricciones a aquellas que pueden ser modeladas matemáticamente, estos métodos de solución resultan ineficientes debido al gran número de restricciones y variables binarias necesarias para modelar un problema del mundo real. Por otra parte, también presentamos el resultado del estudio realizado sobre las técnicas CSPs más representativas para resolver problemas formulados mediante esta aproximación. Dichas técnicas no han podido ser empleadas directamente, ya que daban lugar a procedimientos poco eficientes. Sin embargo, conceptos como el ordenamiento de variables, de valores, así como la propagación de restricciones han sido adaptados al método de solución que hemos desarrollado. Consideramos que hemos aportado la descripción formal de una especialización de un complejo problema de scheduling tipo Job Shop, necesaria para muchos problemas del mundo real, dejando explícitamente establecidas las restricciones que se

282 Conclusiones consideran en este tipo de problemas, así como la complejidad que supone incorporar cada una de ellas en un método general de solución. B) Diseño y Desarrollo de nuevos métodos de resolución Hemos propuesto nuevos métodos que resuelven el problema considerado en esta Tesis de forma eficiente, obteniendo soluciones de alta calidad en un tiempo razonable. Estos métodos consideran el conjunto de restricciones definido para el complejo problema Job Shop, y es posible incorporar al método nuevas restricciones sin que ello afecte al método de solución. El desarrollo de estos métodos, contribuye con nuevas heurísticas para ordenar variables, para ordenar valores y podar soluciones, agilizando así la construcción de cada solución y permitiendo con ello la obtención de una solución de alta calidad de forma eficiente. La heurística para ordenar las variables consiste en obtener el retraso que lleva cada trabajo, previamente a la selección de la siguiente variable para asignación. Posteriormente se asigna una probabilidad de selección, que será mayor cuanto mayor sea el retraso que lleve el trabajo con respecto a un tiempo de referencia, consistente en el mínimo tiempo que requiere el mismo para ser completado. Así, la heurística para ordenar las variables que deben ser asignadas, está basada en el estado actual del problema (retraso promedio de cada trabajo) y en el conocimiento que se tiene acerca de la función objetivo (minimizar el retraso promedio de los trabajos y la diferencia entre los retrasos de trabajos que siguen un orden opuesto). Esta heurística incluye una componente aleatoria, ya que las decisiones se llevan a cabo basándonos en el estado actual del problema. La componente aleatoria permite huir de los mínimos locales y evitar dirigir siempre la solución hacia una misma región del espacio de búsqueda. Se propone una forma de propagar ciertas restricciones, específicamente aquellas que acotan las variables de un único trabajo. Estas son, por ejemplo, aquellas restricciones que indican que el instante de finalización de una operación debe ser n unidades mayor al instante de inicio, siendo n el tiempo de procesamiento de dicha operación. Estas restricciones acotan a un único valor el dominio de las variables que representan los instantes de finalización de las operaciones. Otra de las restricciones

283 7.2. Contribuciones de este trabajo 253 que se utilizan para acotar el dominio de una variable es la que establece un margen sobre el instante de inicio de un trabajo. Se propone una forma de optimizar el proceso de backtracking. Para ello, se identifica la causa directa del dead-end que obliga al backtracking, y se corrige. Posteriormente, no es necesario rehacer las asignaciones de todas las variables cuyo orden de asignación es posterior a aquella variable modificada para subsanar el dead end, sino únicamente aquellas variables afectadas, en forma directa o indirecta. También se introduce una heurística para interrumpir la construcción de una solución, si estima que el mejor valor que puede adquirir su función objetivo, una vez ésta sea completada, es peor o igual que el valor de la función objetivo correspondiente a la mejor solución construida hasta entonces. En este caso, la solución parcial es abortada y se inicia una nueva búsqueda. Tras el desarrollo de los métodos, en el capítulo 6 se ha realizado un conjunto de evaluaciones sobre diversas instancias del problema. Cada una de estas instancias son casos reales que han sido obtenidos mediante la colaboración de la Administración Española de Infraestructura Ferroviaria (ADIF). Gracias a esta colaboración se ha podido evaluar la eficiencia y la calidad de las soluciones empleando casos de estudio que conllevan una elevada complejidad, ya que se deben tener en cuenta aspectos de la infraestructura ferroviaria que obligan a una elevada cantidad de verificaciones, así como de combinaciones válidas posibles. La cantidad de verificaciones que se requiere contribuye a la alta complejidad temporal para obtener cada solución. La cantidad de combinaciones válidas contribuyen a la elevada complejidad temporal para recorrer todo el espacio de soluciones. De esta forma, se resalta la importancia de obtener heurísticas que guíen hacia las regiones más prometedoras del espacio de soluciones en el menor tiempo posible. Se ha desarrollado un sistema software que permite integrar la definición de la infraestructura y de los trenes que se deben considerar al método de optimización. También permite la parametrización de las restricciones y del procedimiento de optimización, haciendo que se obtengan diferentes escenarios con solo modificar determinados parámetros tales como: número de vías en tramos, tipo de bloqueos, intervalos de salida inicial, intervalos de llegada a destino, considerar o no bandas de mantenimiento, tiempo límite de ejecución, etc. Los resultados obtenidos por este sistema software pueden ser visualizados de

284 Conclusiones forma gráfica indicándose la secuencia de estaciones y horarios por los que pasa el tren. Así, por cada solución obtenida, además de su coste, se puede obtener una visualización gráfica de la misma, que muchas veces es más intuitiva para el usuario final Trabajo Futuro De acuerdo al estudio realizado en el capítulo 6, la generación de horarios optimizados se realiza de forma off-line, previo al proceso propio de aplicación, es decir, a la ejecución de dichos horarios. Sin embargo, en la aplicación de los resultados de un proceso de scheduling es evidente que pueden surgir incidencias, falta de disponibilidad de recursos, retrasos, etc. que afecten a la programación efectuada y haga necesaria su replanificación. Con ello, aparecen dos líneas fundamentales a partir del trabajo realizado en esta tesis: (i) minimizar la afectación de un horario frente a incidencias, y (ii) replanificar un horario para adecuarlo a las incidencias producidas. El primer punto trata sobre el concepto de robustez, mientras que el segundo requiere un proceso de re-scheduling. De esta forma, como áreas de trabajo futuro aparecen las siguientes líneas: Incorporar Robustez a las soluciones obtenidas. Actualmente la construcción de cada solución es llevada a cabo satisfaciendo un conjunto de restricciones y considerando que se desea optimizar una determinada función objetivo, sin que tengamos en cuenta la robustez de la solución entregada. Es decir, no medimos cuánto puede afectar a una determinada programación, la aparición de una incidencia durante el desarrollo de la misma. Esto es, cómo afectan las incidencias sobre la disponibilidad de recursos o sobre la ejecución de las operaciones a la programación de horarios realizada inicialmente. El objetivo futuro consiste en construir soluciones en las cuales se tenga en cuenta la posible aparición de incidencias durante su aplicación, de forma que se vean afectados el menor número de trabajos del problema, y que, además, el trabajo afectado pueda recuperar cuanto antes la programación de horarios inicial que se haya realizado sobre sus operaciones.

285 7.3. Trabajo Futuro 255 Replanificación a partir de una incidencia. Además de la construcción de horarios que incluyan entre sus propiedades la robustez, sería muy interesante contar con un procedimiento que pueda subsanar de la mejor forma posible el trastorno producido por una incidencia en una programación de horarios, y que no haya sido absorbida por la robustez de la planificación. Cuando indicamos que sea de la mejor forma posible, nos referimos al hecho de modificar únicamente el horario de aquellas operaciones que se vean afectadas en forma primaria o secundaria por el trastorno producido. Cuando un conjunto de trabajos lleva a cabo sus operaciones a partir de un horario establecido para cada una, cabe la posibilidad de que durante el desarrollo de las mismas se produzca un evento que obligue a modificar sin remedio el horario de alguna de ella. A partir de la incidencia, es necesario asignar un nuevo horario a la operación directamente afectada (operación afectada en forma primaria). Adicionalmente, suele ser necesaria la modificación de otras operaciones que, aunque no estén afectadas directamente por la incidencia ocurrida, sí se vean afectadas (incidencias secundarias) por la modificación de otras operaciones. El procedimiento que presentamos en esta Tesis para programar horarios para trenes puede servir para replanificar horarios, a partir del instante en que se produce la incidencia. Sin embargo, de esta forma, se estaría replanificando el horario de todas las operaciones cuyos instante de inicio se hallasen a partir de aquel en el que se produjo la incidencia. Sería más eficiente diseñar un procedimiento en el cual se recorra la línea de tiempo, a partir del instante en que se produce la incidencia, y se verifiquen los conflictos que aparecen, resolviéndolos en ese mismo orden, de menor a mayor instante de tiempo, modificando únicamente el horario de las operaciones afectadas, y decidiendo en base a una heurística apropiada a la función objetivo de la replanificación. Dicha heurística debería determinar cuál de las dos operaciones futuras que participan en cada conflicto debería tener mayor prioridad sobre el recurso en competencia. La función objetivo durante la replanificación podría ser diferente a la de la función objetivo de la planificación inicial, para el mismo problema, ya que además de optimizar determinados criterios, propios del problema original, se pretende modificar el horario de las operaciones de tal forma que los mismos

286 Conclusiones presenten las mínimas diferencias posibles con el horario original Publicaciones relacionadas con la Tesis En esta sección presentamos las publicaciones que están relacionadas con el trabajo de tesis doctoral. Estas publicaciones las hemos clasificado en: artículos en revista y capítulos de libro, congresos internacionales y congresos nacionales. Artículos en Revistas y Post selecciones de Congresos F. Barber, M.A. Salido, L. Ingolotti, M. Abril, A. Lova, and P. Tormos. An Interactive Train Scheduling Tool for Solving and Plotting Running Maps. In R. Conejo et al., editors, Current Topics in Artificial Intelligence. LNAI, Subseries of Lecture Notes in Computer Science. Selected from CAEPIA 2003, volume 3040 of ISSN: , ISBN: , pages , Springer Verlag, M.A. Salido, M. Abril, F. Barber, P. Tormos, A. Lova, and L. Ingolotti. Optimization in Railway Scheduling. 2nd International Conference on Informatics in Control, Automation and Robotics. Selected from ICINCO 05, ISSN: , ISBN: , pages , IOS Press, L. Ingolotti, F. Barber, P. Tormos, A. Lova, M.A. Salido, and M. Abril. A Scheduling Order-Based Method to solve Timetabling Problems. In R. Marin et al., editors, Current Topics in Artificial Intelligence. LNAI, Subseries of Lecture Notes in Computer Science. Selected from CAEPIA 2005, volume 4177 of ISSN: , ISBN: , pages 52 61, Springer Verlag, F. Barber, P. Tormos, A. Lova, L. Ingolotti, M.A. Salido, and M. Abril. A Decision Support System for Railway Timetabling Problem (MOM): the Spanish Case. In C. Brebbia et al., editors, Computer System Design and Operation in the Railway and Other Transit Systems. Computer in Railways Series., volume 10 of ISSN: , ISBN: , pages , WIT Press, 2006.

287 7.4. Publicaciones relacionadas con la Tesis 257 Congresos Internacionales F. Barber, P. Tormos, A. Lova, L. Ingolotti, M.A. Salido, M. Abril. Train Scheduling: A Real Case. In L. Kroon, D. Wagner, F. Wagner and C. Zaroliagis, editor, in Proceedings of Dagstuhl Seminar 04261, volume 1 of ISSN: , pages L. Ingolotti, P. Tormos, A. Lova, F. Barber, M.A. Salido, and M. Abril. A Decision Suport System (DSS) for the Railway Scheduling Problem. In M. Bramer and V. Devedzic, editors, Artificial Intelligence Applications and Innovations, ISBN: , pages , Kluwer Academic, L. Ingolotti, F. Barber, P. Tormos, A. Lova, M.A. Salido, and M. Abril. An Efficient Method to Schedule New Trains on a Heavily Loaded Railway Network. In C. Lemaître et al., editors, Advances in Artificial Intelligence. LNAI, Subseries of Lecture Notes in Computer Science, volume 3315 of ISSN: , ISBN: , pages , Springer Verlag, F. Barber, M. Abril, L. Ingolotti, A. Lova, M.A. Salido and P. Tormos. MOM, A Decision Support System for Railway Scheduling. In Proc. of the 17th International Triennial Conference in OR/MS (IFORS 05), pages 14 15, A. Lova, P. Tormos, F. Barber, L. Ingolotti, M. Abril, and M.A. Salido. An Efficient Heuristic Technique to Schedule New Trains on a High Loaded Network. In Proc. of the 17th International Triennial Conference in OR/MS (IFORS 05), pages 14 15, P. Tormos, A. Lova, F. Barber, L. Ingolotti, M. Abril, and M.A. Salido. Periodic Single Track Railway Scheduling: A Sequential Approach. In Proc. of the 17th International Triennial Conference in OR/MS (IFORS 05), pages 14 15, M.A. Salido, M. Abril, F. Barber, P. Tormos, A. Lova, and L. Ingolotti. Optimization in Railway Scheduling. In Proc. of the 2nd International Conference on Informatics

288 Conclusiones in Control, Automation and Robotics ICINCO 05, P. Tormos, A. Lova, L. Ingolotti, F. Barber, M. Abril, and M. A. Salido. A Genetic Approach to Train Scheduling on a High-Traffic Railway Line. In Proceedings of the 5th Workshop on Algorithmic Methods and Models for Optimization of Railways ATMOS 2005 in ALGO 2005, Palma de Mallorca, L. Ingolotti, F. Barber, P. Tormos, A. Lova, M.A. Salido, and M. Abril. New Heuristics to solve the CSOP Railway Timetabling Problem. In M. Ali and R. Dapoigny, editors, Advances in Applied Artificial Intelligence. Lecture Notes in Artificial Intelligence. Subseries of Lecture Notes in Computer Science., volume 4031 of ISSN: , pages , Springer Verlag, Congresos Nacionales F. Barber, M.A. Salido, L. Ingolotti, M. Abril, A. Lova, and P. Tormos. A Train Scheduling Tool for Solving and Plotting Running Maps. In Proc. of TTIA 2003., volume 2, pages , San Sebastian, A. Lova, P. Tormos, F. Barber, L. Ingolotti, M. Abril, and M.A. Salido. Planificacion del trafico ferroviario en una red altamente sobrecargada. in Proceedings of the XVIII Congreso Nacional de Estadistica e Investigacion Operativa, pages , Cadiz, P. Tormos, A. Lova, F. Barber, L. Ingolotti, M. Abril, and M.A. Salido. Un Sistema de ayuda a la toma de decisiones (DSS) para el problema de secuenciación de trenes periódicos. in Proceedings of the XVIII Congreso Nacional de Estadistica e Investigacion Operativa, pages , Cadiz, M.A. Salido, F. Barber, M. Abril, L. Ingolotti, A. Lova, P. Tormos, and J. Estrada. Técnicas de Inteligencia Artificial en Planificación Ferroviaria. In Proc. of TTIA 2005., pages , Granada, 2005.

289 7.4. Publicaciones relacionadas con la Tesis 259 L. Ingolotti, F. Barber, P. Tormos, A. Lova, M.A. Salido, and M. Abril. A Scheduling Order-based Method to Solve the Train Timetabling Problem. In Proc. of XI Conferencia de la Asociación Española para la Inteligencia Artificial (CAEPIA 2005)., volume 1, pages , Santiago de Compostela, P. Tormos, A. Lova, F. Barber, L. Ingolotti, M. Abril, and M.A. Salido. Un Sistema Software para la Optimización del Tráfico Ferroviario. In Proc. of XXIX Congreso Nacional de Estadística e Investigación Operativa., pages , Tenerife, A. Lova, P. Tormos, F. Barber, L. Ingolotti, M. Abril, and M.A. Salido. Técnicas para la Programación del Tráfico Ferroviario Heterogéneo. In Proc. of XXIX Congreso Nacional de Estadística e Investigación Operativa., pages , Tenerife, Otros artículos relacionados con esta Tesis A continuación se citan otros artículos directamente relacionados con el trabajo desarrollado en esta Tesis en los que se utilizan, con enfoques específicos, modelos, métodos o procedimientos aquí propuestos. M. A. Salido, F. Barber, M. Abril, P. Tormos, A. Lova, and L. Ingolotti. A Topological Model Based on Railway Capacity to Manage Periodic Train Scheduling. Applications and Innovations in Intelligent Systems. Selected from AI 2006, ISBN: X, volume 12, pages , Springer, M. Abril, M. A. Salido, F. Barber, L. Ingolotti, P. Tormos, and A. Lova. Applying Topological Constraint Optimization Techniques to Periodic Train Scheduling. In Proceedings of ECAI 2004 Workshop on Constraint Satisfaction Techniques for Planning and Scheduling Problems, pages 17 26, M. A. Salido, M. Abril, F. Barber, L. Ingolotti, P. Tormos, and A. Lova. Topological Constraints in Periodic Train Scheduling. Planning, Scheduling and Constraint

290 Conclusiones Satisfaction: From theory to practice. Frontiers in Artificial Intelligence and Applications, ISSN: , ISBN: , volume 117, pages 11 20, IOS Press, M. Abril, M. A. Salido, F. Barber, L. Ingolotti, A. Lova, and P. Tormos. A Heuristic Technique for the Capacity Assessment of Periodic Trains. Artificial Intelligence Research and Development. Frontiers in Artificial Intelligence and Applications, ISSN: , ISBN: , volume 131, pages , IOS Press, M. Abril, F. Barber, L. Ingolotti, M. A. Salido, A. Lova, and P. Tormos. Applying Analytical and Empirical Methods to the Assessment of Railway Capacity. In Proceedings of the 5th Workshop on Algorithmic Methods and Models for Optimization of Railways ATMOS 2005 in ALGO 2005, Palma de Mallorca, M. Abril, M. A. Salido, F. Barber, L. Ingolotti, A. Lova, and P. Tormos. A Technique for the Capacity Assessment of Periodic Trains. In Proceedings of the Vuitè Congrés Català d Intel.ligència Artificial (CCIA 05), IOS Press, Cerdeña, M. A. Salido, M. Abril, F. Barber, P. Tormos, A. Lova, and L. Ingolotti. Técnicas Distribuidas para problemas de scheduling a gran escala. In Proceedings of the III Workshop sobre Planificación, Scheduling y Razonamiento Temporal, pages 51 59, Santiago de Compostela, P. Tormos, M. Abril, M.A. Salido, F. Barber, L. Ingolotti, and A. Lova. Distributed constraint satisfaction problems to model railway scheduling problems. In A.F. Rumsey G. Sciutto S. Sone C.J. Goodman J. Allan, C.A. Brebbia, editor, Computer System Design and Operation in the Railway and Other Transit Systems, volume 10 of Computer in Railways, pages th Int. Conf. on Computer System Design and Operation in the Railway and Other Transit Systems. Comprail 2006, WIT Press, M. Abril, M.A. Salido, F. Barber, L. Ingolotti, A. Lova, and P. Tormos. Distributed models in railway industry. In In proc. of the Workshop on Industrial Applications

291 7.5. Conclusiones Finales 261 of Distributed Intelligent Systems (INADIS 2006), volume 1, pages CD ROM, M. A. Salido, M. Abril, F. Barber, L. Ingolotti, P. Tormos, and A. Lova. Domaindependent distributed models for railway scheduling. Journal Knowledge Based Systems. Selected from AI 2006, ISSN: , Elsevier Science, To Appear. También cabe destacar los siguientes reconocimientos: Premio a la mejor aplicación de Inteligencia Artificial (Noviembre 2003). Mejor artículo de Transferencia de Tecnológica en IA. X Conferencia de la Asociación Española de Inteligencia Artificial. V Jornada de Transferencia Tecnológica de IA (CAEPIA-TTIA 03) Noviembre, San Sebastián. Premio al mejor trabajo en Transferencia de Tecnológica en IA (Septiembre, 2005). VI Jornada de Transferencia Tecnológica de IA (TTIA 05), celebradas en el primer Congreso Español de Informática (CEDI 05). Granada. Best Refereed Application Paper - Application Stream (Junio 2006). In the 26th SGAI International Conference on Innovative Techniques and Applications of Artificial Intelligence (AI-2006), Cambridge, UK, Conclusiones Finales En este trabajo hemos aportado una modelización formal de un complejo problema combinatorio, de optimización, como un caso especial de problemas de scheduling Job Shop. Una vez formulado el problema, hemos analizado las técnicas y métodos ya publicados que se relacionan con el tipo de problema considerado. Estas técnicas han sido evaluadas, concluyéndose la necesidad de nuevos métodos de solución que puedan considerar todo el conjunto de restricciones de problemas reales, a la vez que puedan producir soluciones de alta calidad en el menor tiempo posible. Proponemos un nuevo método de solución que considera todas las restricciones propias de un contexto real. Se describen nuevas heurísticas para la ordenación de variables, así como procedimientos que fuerzan la consistencia entre restricciones sin que sea necesaria la previa ordenación de los valores en sus dominios. Se introducen

292 Conclusiones métodos para llevar a cabo el backtracking sin tener que deshacer más asignaciones que las necesarias, así como una heurística de poda de soluciones parciales que no conduzcan a soluciones mejores que la actualmente conseguida. Los métodos desarrollados disponen adicionalmente de una funcionalidad de respuesta anytime. Los métodos y procedimientos presentados se evalúan sobre diversas instancias del problema, todas ellas obtenidas de casos reales. Se han seleccionado casos de estudio de diferente complejidad que nos han permitido concluir la eficiencia de los métodos desarrollados en cuanto a tiempo de respuesta y calidad se refiere. El trabajo desarrollado plantea claras líneas de ampliación. Se propone el estudio de la robustez y su incorporación al proceso de planificación de horarios, así como el desarrollo de un método para replanificar horarios a partir de retrasos e incidencias. Como conclusión final se destacan las aportaciones respecto a la planificación y modelización de un complejo problema real y el diseño de métodos computacionales eficientes y flexibles. Las aportaciones realizadas suponen claras contribuciones a la formalización y resolución computacional de un complejo problema de optimización y satisfacción de restricciones. Por último, cabe destacar su aplicabilidad real y la positiva evaluación en su entorno de aplicación.

293 Apéndice A Sistemas desarrollados para la Generación y Optimización de horarios Ferroviarios En este Apéndice describimos herramientas software desarrolladas para facilitar las tareas que se deben llevar a cabo como parte del proceso de planificación y optimización del uso de una red ferroviaria. Se trata de sistemas desarrollados en distintas universidades y centros de investigación (algunos de ellos asociados a compañías ferroviarias), en los que se implementan técnicas y métodos que buscan principalmente la resolución de problemas de optimización, reducir el espacio de búsqueda y guiarla hacia las regiones más prometedoras del espacio de soluciones. También existen herramientas de simulación que permiten al planificador ferroviario conocer de antemano las consecuencias de determinadas decisiones. En este caso, se han producido avances tanto en la representación gráfica de los resultados, como en la manipulación de la información (la administración eficiente de los datos relativos a la infraestructura ferroviaria y a los trenes es muy importante debido al volumen que representan). Por lo general, son sistemas hechos a medida para cada compañía ferroviaria, ya que cada país o región tiene una infraestructura ferroviaria con requerimientos particulares. 263

294 264A. Sistemas desarrollados para la Generación y Optimización de horarios Ferroviarios A.1. Sistemas Software relacionados con la Planificación de Horarios Ferroviarios Actualmente existen diversas herramientas software que proporcionan soporte en la ejecución de determinadas tareas dentro del proceso de planificación de una red ferroviaria. Son herramientas, que por lo general, nacen de requerimientos precisos que las compañías ferroviarias realizan a institutos tecnológicos, consultoras especializadas, o universidades. Requerimientos que se originan a partir de las macro tareas (predicción de demanda origen-destino, planificación de infraestructura, planificación de líneas, programación de horarios, asignación de personal, asignación de material rodante, y operaciones de mantenimiento) que deben ser llevadas a cabo dentro de un proceso de planificación de red ferroviaria. Obtener soluciones factibles y alcanzar los objetivos en forma eficiente, optimizando cada uno de los recursos disponibles conlleva una elevada complejidad debido a la amplia diversidad de factores que se deben considerar. Es por ello que se recurre a centros de trabajo donde se llevan a cabo investigaciones que pueden aportar técnicas o métodos que permitan resolver el problema eficientemente. La eficiencia en la gestión de una red ferroviaria requiere la ayuda que un sistema computacional puede ofrecer. Hoy en día, gracias a los avances en las diferentes áreas de investigación relacionadas al problema (informática, inteligencia artificial, matemáticas, investigación de operaciones), así como en la tecnología de procesadores es posible obtener resultados muy positivos para el sector ferroviario y apoyar la teoría con evaluaciones en un entorno real, y sobre todo, con el estímulo que conlleva responder a una necesidad de un sector muy importante del transporte. Como ejemplo de herramientas desarrolladas para la gestión y soporte de decisiones dentro del sector ferroviario se encuentran: RAILSYS. Ha sido desarrollado por la Universidad de Hannover y Rail Management Consultants (RMCon). Consta de varios módulos: Base de Datos: en la base de datos se almacenan datos referente a la infraestructura, a los vehículos y tipos de trenes, a los horarios, y a las reglas de planificación que utiliza el sistema.

295 A.1. Sistemas Software relacionados con la Planificación de Horarios Ferroviarios265 Administrador de Infraestructura. Por cada tramo es posible especificar: longitud, gradiente, velocidad máxima, super elevación, presencia de túneles, electrificación, curvatura. Se puede seleccionar el sistema de señalización a partir de varias disponibles como: ATC, MP, Moving Block, etc. Su función es modelar los elementos de la estación y los tramos de la red ferroviaria sobre la que se desea trabajar. Administrador de Horarios. Los horarios son ingresados tren a tren. Una vez estos son ingresados se actualiza tanto la ocupación en las estaciones como en los tramos de la red. Los datos del horario pueden ser editados en forma tabular o en forma gráfica. A medida que se introducen los horarios, el sistema verifica las restricciones a considerar y muestra los conflictos que aparecen a partir del horario introducido. Tiene en cuenta toda la red. En este módulo también se elige el tipo de vehículo para cada tren. Administrador de los espacios en estación y tramo. Indica la ocupación detallada en un determinado instante de tiempo tanto de las estaciones como de los tramos de la red. Simulador de incidencias. Permite introducir incidencias en la red de tal forma que se conozca el retraso que experimentarán los trenes y cuáles serán los trenes afectados. Administrador de Evaluación. CADANS. Ha sido desarrollado por el grupo de Optimización Combinatoria y Algorítmica, perteneciente al Instituto Nacional de Investigación en Matemáticas y Ciencias de la computación de Holanda, CWI (Centrum voor Wiskunde en Informatica). La investigación que condujo al desarrollo de esta herramienta ha sido solicitada por el administrador de infraestructuras ferroviarias holandesas RailNed. CADANS es utilizado para determinar la llegada y la salida de cada tren en las estaciones que visita tomando en cuenta varias restricciones duras y blandas. Las restricciones duras deben ser satisfechas en todos los casos, mientras las blandas pueden ser relajadas en ciertos casos. El modelo CADANS es resuelto por un algoritmo basado en la propagación de restricciones y backtracking.

296 266A. Sistemas desarrollados para la Generación y Optimización de horarios Ferroviarios Para generar un horario que abarque toda la nación, el modelo requiere de una a tres horas de tiempo de CPU. Si CADANS puede obtener un horario factible, este puede ser mejorado. Por ejemplo, por mejorar las conexiones en las estaciones ferroviarias. Si CADANS no tuvo éxito en construir horarios que satisfagan todas las restricciones, duras y blandas, reporta cuáles fueron las restricciones que causaron conflictos. Los planificadores negociarán con las otras partes involucradas en el proceso de planificación para decidir qué restricciones blandas deberán relajar para llegar así a un horario factible. Si aún con éstas relajaciones no se produce un horario factible, entonces los usuarios deben investigar otras posibilidades, tales como modificar el sistema de línea, o ampliar la infraestructura. STATIONS. Herramienta desarrollada por Zwaneveld et al. [77], [119]. Verifica estación por estación si los instantes de llegada y salida puestos por CADANS a cada tren en una estación son factibles según la infraestructura interna de la misma (localización de todos los andenes, vías y señales, y la máxima velocidad de los trenes en las vías, restricciones operacionales, tiempos de distancia entre los trenes). El modelo subyacente es un modelo ILP (Integer Linear Problem). Requiere solo un par de minutos para encontrar una solución en las estaciones más complejas de Holanda. STATIONS reporta la factibilidad como la no factibilidad, y sugiere en cuánto deberían ser modificados los instantes de llegada o salida de los trenes que incumplen las restricciones para lograr la factibilidad en la estación, si esto es posible. Luego se debe evaluar si es o no posible realizar tal modificación sugerida. SImulation MOdel for NEtworks (SIMONE). ProRail Innovation ha desarrollado junto con la división de Pasajeros de Ferrocarriles Holandeses (NS) e Incontrol Enterprise Dynamics, el test de estabilidad, una metodología que utiliza la simulación como eje central. Se evalúan diferentes horarios a partir de las incidencias introducidas en los mismos. Las incidencias pueden variar en cuanto a la cantidad y la diferencia temporal en la que se suceden. SIMONE puede llevar a cabo: determinación de la robustez de un horario (cuánto puede resistir un conjunto de horarios una serie de incidencias), mejora del conjunto de horarios por relacionar el diseño standard y la robustez de la

297 A.1. Sistemas Software relacionados con la Planificación de Horarios Ferroviarios267 solución en la realidad proporcionada por la simulación, seguir el rastro de cuellos de botella en una red. Performance Evaluation of Timed Events in Railways (PETER), Goverde y Odijk [57]). Determinan que los horarios de redes ferroviarias tienen una estructura intrínseca que es convenientemente modelada mediante el algebra max-plus. Aplican métodos de análisis a estos modelos incluyendo análisis espectral, métodos del camino más corto y cálculos de matrices. El análisis de estabilidad produce indicadores de performance del conjunto de horarios que forman la solución, tales como: tiempo mínimo de ciclo, capacidad, margen de estabilidad así como resultados acerca de la propagación de retrasos. ROute MAnagement (ROMAN). Desarrollada por la división Transportation Systems de SIEMENS, esta herramienta almacena en una base de datos información sobre la topología del tramo, vehículos y propiedades relacionadas al personal. A partir de estos datos, calcula el tiempo de recorrido de cada tren en cada tramo. La interfaz gráfica permite al usuario introducir los horarios de los trenes y modificarlos conforme la herramienta despliega los conflictos con los otros trenes de la red. Utiliza simulación, sin soportar optimización ni la resolución automática de los conflictos detectados. VIRIATO. Herramienta desarrollada por SMA und Partner AG, Transportation Engineers, Planners and Economists. Posee un módulo que realiza la verificación sobre la asignación de vehículos y personal (módulo Rostering). Describe los horarios para cada tren, indicando las operaciones que son realizadas para evitar cruces y alcances. Proporciona información detallada por cada día de circulación en el año. Se indican días festivos, días de menor circulación, días en los cuales se aumenta la frecuencia de los trenes, etc. Detección de conflictos basada en el algoritmo CAPRES, propiedad del Laboratorio para Intermodalidad, Transporte y Planificación (LITEP) en Lausanne. El módulo de la ocupación de cada vía en estación incluye: asignación de plataforma según el sentido de viaje, longitud y horarios disponibles de cada vía, asignación interactiva de plataforma por operaciones drag-and-drop sobre la interfaz gráfica, filtrar la ocupación por día de circulación y periodos de tiempo. Se puede seleccionar la información relativa al tren que va a ser desplegada,

298 268A. Sistemas desarrollados para la Generación y Optimización de horarios Ferroviarios como número de tren, día de circulación, horarios, sentido de viaje. Ofrece la definición de varios perfiles de velocidad para la misma infraestructura, y el cálculo de los tiempos de recorrido para diferentes configuraciones de trenes. CAPRES. Ha sido desarrollado por el Laboratorio de Intermodalidad, Transporte y Planificación (LITEP) del Instituto Suizo de Tecnología Lausanne (EFPL) en colaboración con los ferrocarriles Federales de Suiza (SBB). Es un modelo para la elaboración y la saturación de variantes de horarios. CAPRES evalúa el uso de la capacidad como el número de trenes adicionales que pueden utilizar la red, cumpliendo con la estrategia de saturación definida por el operador y las restricciones consideradas. La ocupación de los tramos y estaciones así como los conflictos son resueltos automáticamente durante la elaboración y saturación. La saturación consiste en agregar la mayor cantidad de trenes considerando un conjunto determinado de restricciones. El orden en el que los nuevos trenes son agregados depende de la estrategia de saturación, lo cual asigna prioridades a los trenes. PLANNING TIMETABLE GENERATOR (PTG). Esta herramienta ha sido desarrollada por AEA Technology Rail. Permite al operador especificar restricciones comerciales tales como, intervalo de llegada, intervalo de salida, mejores horarios para la salida, paradas comerciales, entre otros. Además de estas restricciones, considera restricciones de capacidad y restricciones operacionales teniendo en cuenta tramos con múltiples vías de circulación. Según estas restricciones proporciona un horario factible. A medida que se modifican las restricciones comerciales se generan otros horarios proporcionando reportes donde se comparan varios aspectos de las soluciones entregadas. FastTrack II. Las consultoras Multimodal y Rail Sciences de Atlanta, Giorgia se han unido para desarrollar la herramienta FastTrack II, la cual puede ser integrada dentro de la herramienta MultiRail de tal forma que los horarios puedan ser importados automáticamente. FastTrack permite evaluar un horario e indicar si es factible o no según las restricciones que considera. También permite modificar la infraestructura de la línea, y las características de los trenes para evaluar el impacto de dichos cambios en el horario final. Otra de sus funcionalidades consiste en realizar un análisis teórico y práctico de la

299 A.1. Sistemas Software relacionados con la Planificación de Horarios Ferroviarios269 capacidad de la línea. OPENTRACK. Esta herramienta ha sido desarrollada por el Instituto para Sistemas y Planificación de Transporte (IVT). Dicho instituto forma parte del Instituto Federal Suizo de Tecnología (ETHZ). A partir de los datos de entrada (trenes, material rodante, infraestructura y horario), esta herramienta determina la ocupación de cada tramo y cada estación de la red. La simulación puede ser realizada en modo animación, donde se modifica la posición de cada uno de los trenes por unidad de tiempo. Entre los resultados que proporciona se hallan: gráfico de la ocupación de las vías, horario en formato gráfico y estadísticas realizadas sobre los retrasos. Durante la simulación se pueden introducir incidencias. Lipari. Aplicación desarrollada por la Sociedad Nacional de Ferrocarriles Franceses (SNCF - Societe Nationale des Chemins de Fer). Es una herramienta de simulación que a partir de las incidencias que ocurren durante el periodo de simulación produce un informe sobre la calidad de los horarios entregados originalmente y propone las modificaciones necesarias para aumentar la robustez del mismo. FASTA. El sistema software ha sido desarrollado por el Laboratorio de Intermodalidad, Transporte y Planificación (LITEP) del Instituto Federal Suizo de Tecnología Lausanne (EPFL), en cooperación con los Ferrocarriles Federales Suizos (SBB). Ha sido desarrollado para analizar la conducta de una programación de horarios a nivel de red ferroviaria, identificando y analizando los retrasos a nivel de red, indicando las causas de los retrasos, su evolución y su distribución geográfica. La simulación tiene en cuenta determinadas restricciones tales como tiempo de sucesión y conexiones entre trenes en estaciones. Puede utilizar un tiempo de recorrido determinado (modo determinístico) o bien generarlo utilizando una determinada función (modo estocástico). Utiliza una base de datos de la cual lee los datos que requiere y en la cual almacena los resultados obtenidos.

300 270A. Sistemas desarrollados para la Generación y Optimización de horarios Ferroviarios DEMIURGE. Es una herramienta que ofrece entre sus funcionalidades: evaluar la capacidad de la red para absorber tráfico adicional, localizar cuellos de botella en la red, asistir en la toma decisiones acerca de inversiones en infraestructura, optimizar horarios actuales y futuros, calcular la capacidad residual de un conjunto de horarios. DEMIURGE ha sido desarrollada por el departamento de investigación de la SNCF. OPENTIMETABLE. Esta herramienta ha sido desarrollada por el Instituto para Sistemas y Planificación de Transporte (IVT). Dicho instituto forma parte del Instituto Federal Suizo de Tecnología (ETHZ). Entre sus funcionalidades cabe destacar que realiza un análisis y un control de calidad a una determinada programación de horarios, teniendo en cuenta las incidencias que han ocurrido y los retrasos que se han producido, utiliza una representación gráfica, proporciona la distribución de los retrasos y la distribución de la capacidad. AFAIG. Se encarga de la planificación de la distribución y de las operaciones de las principales estaciones de pasajeros. Ha sido desarrollado por el Laboratorio de Intermodalidad, Transporte y Planificación (LITEP) del Instituto Federal Suizo de Tecnología Lausanne (EPFL) en colaboración con la Compañía de Ferrocarriles Federales Suizos (SBB). RAILCAP. La aplicación RAILCAP ha sido desarrollada por la compañía belga STRATEC con el objetivo de evaluar la capacidad de una red, en cuanto a holguras existentes y cuellos de botella. Para ello utilizan la simulación con incidencias y la modificación de infraestructura. TPS/STRAX. Esta aplicación ha sido desarrollada por la compañía alemana HaCon. Interfaz con otras aplicaciones software (Postcript, Adobe, Microsoft Office) y con el sistema de información de horarios HAFAS. Optimizado para operar con tres pantallas por cliente (Editor de Horarios, representación gráfica de los horarios, editor de infraestructura). Destacan entre sus funcionalidades: definición de estación y tramo, sistemas de señalización, mantenimiento de los datos de infraestructura, construcción de horarios con detección de conflictos, cálculo del tiempo de recorrido, horarios gráficos interactivos, y realización de

301 A.2. MOM: Módulo Optimizador de Mallas 271 informes. SImulateur du SYstème FErroviaire - Rail System Simulator (SISYFE). Es una aplicación desarrollada por el departamento de investigación de la SNCF. Permite realizar simulaciones precisas de la situación dada en la red ferroviaria bajo condiciones normales y bajo condiciones en las cuales existen incidencias afectando a las operaciones. SISYFE se ejecuta sobre los principios de la simulación de eventos discretos. También permite la evaluación de la robustez de los diagramas de tráfico (esto es, su capacidad para tolerar eventos menores no previstos durante las operaciones ordinarias), estudios técnicoseconómicos para nuevos sistemas de control, modificaciones a instalaciones fijas, definición de estrategias operacionales, y entrenamiento a las personas que realizan la planificación de horarios y a los controladores. A.2. MOM: Módulo Optimizador de Mallas El Módulo Optimizador de Mallas (MOM) es una herramienta software desarrollada para evaluar la aplicación de los métodos y técnicas desarrollados en esta Tesis sobre datos reales. Para ello, el sistema tiene 3 componentes fundamentales: (i) Adquisición de datos, (ii) Resolución del problema, y (iii) Presentación de resultados. De esta forma, mediante MOM se podrá especificar instancias del problema OPT (descripción formal en el Capítulo 3), buscar soluciones a las mismas, y desplegar informes relativos a la solución hallada. La especificación de cada instancia del problema OPT se realiza mediante un conjunto de interfaces proporcionadas por MOM. En ellas se indica el conjunto de trenes cuyos horarios se deberán programar y optimizar, el conjunto de trenes que ya se encuentra en circulación, cuyos horarios son conocidos y no podrán ser modificados, la secuencia de estaciones o línea ferroviaria junto con sus correspondientes atributos que definen la infraestructura ferroviaria, y la parametrización a las restricciones y al proceso de optimización. MOM realiza la búsqueda de soluciones a la instancia especificada utilizando los métodos descritos en el Capítulo 5. Durante el proceso de búsqueda, son desplegados

302 272A. Sistemas desarrollados para la Generación y Optimización de horarios Ferroviarios en la interfaz principal datos relativos al proceso de generación de solución tales como: el número de soluciones encontradas hasta el momento, el tiempo de ejecución actual, y el valor de la función objetivo correspondiente a la mejor solución hallada hasta entonces. La generación de soluciones puede ser interrumpida por el usuario utilizando un botón de la aplicación, o alcanzando un determinado número de iteraciones según el nivel de optimización que haya sido seleccionado previamente, o cumpliendo el tiempo máximo de ejecución previamente establecido. Una vez haya finalizado el proceso que genera las soluciones, MOM puede desplegar informes relativos a la mejor solución hallada, así como almacenar el horario de cada tren, definido por dicha solución. La Figura A.1 representa la integración que existe entre MOM y la base de datos de la compañía ferroviaria. De la base de datos se obtiene los valores correspondientes a determinados atributos de la línea ferroviaria y de los trenes empleados en cada instancia. El planificador selecciona la línea ferroviaria a la cual desea agregar nuevos trenes, así como el conjunto de trenes a ser considerados, y posteriormente llama a la aplicación MOM con dicha información. MOM recibe el pedido del planificador y presenta una interfaz al planificador que le permitirá establecer los valores que desee a los parámetros utilizados durante el proceso de optimización. No se pretende que la programación de horarios proporcionada por MOM sea llevada a la práctica tal cual MOM la entrega, sino que sea una base a partir de la cual expertos en la programación de horarios (en adelante, planificadores) puedan tomar ciertas decisiones con mayor facilidad, a partir de una programación factible y optimizada. En la sección A.2.1 se describirá cómo se especifica y se parametriza cada instancia del problema, y en la sección A.2.5 se indicarán los diversos usos que pueden hacerse de MOM, según el objetivo que se persiga. En todos ellos, MOM actúa como una herramienta de soporte de decisiones. A.2.1. Especificación y Parametrización de una Instancia En esta sección se describirá la forma en que una instancia de OPT es definida, en cuanto a los elementos del problema, trenes y línea ferroviaria, así como a los recursos, infraestructura, además de los parámetros que pueden ser especificados en

303 LíneaTren A.2. MOM: Módulo Optimizador de Mallas 273 Recorrido TiempoTren Tipo ID Cantidad Secuencia Cantidad devíascon andén Tren de ntramotipodor Identifica NombreCierre ActualizacOptimizada Datos Solución Base de Horarios por Problema OPT ión de Ferroviaria debloqueopor devías dedependencias TramoHorariode devías derecorridopor Tramo ParadaComercial DíasdeCirculació BandasdeMantenimiento Datosdel Figura A.1: Datos recibidos por MOM correspondientes al conjunto de trenes y línea ferroviaria seleccionada por el planificador las restricciones y en los criterios de optimización. Trenes y Recorrido Una de las interfaces de MOM, a la cual denominamos LTS (Lista de Trenes Seleccionados), permite seleccionar aquellos trenes cuyos horarios se desea programar y optimizar. Una vez se confirma la elección, los trenes seleccionados desaparecen de la LTS y pasan a formar parte de la LTO (Lista de Trenes a Optimizar). Los no seleccionados permanecen en la LTS, y son considerados trenes en circulación, es decir, trenes cuyos horarios deberán ser considerados en el momento de la optimización,

304 274A. Sistemas desarrollados para la Generación y Optimización de horarios Ferroviarios de Tabla Trenes Criterios Filtradode pero no deberán ser modificados. La información referente a los trenes de la LTO es desplegada en el diálogo principal de MOM. Resultado Figura A.2: Especificar criterios para visualizar un subconjunto de los trenes considerados Para facilitar la tarea de formar la LTO, especialmente en los casos donde el número de trenes es muy elevado, se proporciona unos criterios mediante los cuales se filtra del total de trenes desplegados, únicamente aquellos que satisfagan la combinación de criterios indicada por el planificador. Los criterios, señalados en la Figura A.2 por Criterios de Filtrado son algunas de las características de los trenes como: tipo de operador, sentido de viaje e identificador. Por ejemplo si el planificador desea visualizar solo trenes cuyo tipo sea R (Regionales), entonces bastará con seleccionar el valor R del cuadro de operadores, y posteriormente presionar el botón cuya etiqueta es Aplicar Filtro. Si además se desea agregar la condición que viajen en sentido Vuelta, pues entonces se deberá especificar ambas condiciones y luego presionar

305 2- A.2. MOM: Módulo Optimizador de Mallas LTO 3- LTO Elección detodoslostrenesvisualizados Creación dela 1-Filtro Figura A.3: Elección y Confirmación de los trenes cuyos horarios se deberán optimizar el botón con etiqueta Aplicar Filtro. En la Figura A.2 se muestra un ejemplo en el cual el planificador ha solicitado se desplieguen en la tabla de trenes, únicamente aquellos cuyo tipo sea igual a L (Grandes Líneas), su sentido de viaje sea igual a Ida, y su identificador esté formado por la secuencia de caracteres 006* (identificador que empiece con los caracteres 006 seguidos de cualquier otra secuencia de caracteres). A continuación, se presiona el botón con la etiqueta Aplicar Filtro y se obtiene el resultado mostrado en el diálogo inferior de la Figura A.2. Días de Circulación Uno de los atributos que se considera por cada tren son los días que este circula en la línea ferroviaria. El planificador decide si MOM deberá tenerlos en cuenta o no. En caso afirmativo, MOM verificará las restricciones de tráfico que involucran a dos trenes, sólo

306 276A. Sistemas desarrollados para la Generación y Optimización de horarios Ferroviarios entre aquellos que tengan algún día de circulación en común. En el caso que los días de circulación no sean tenidos en cuenta, dicha verificación de restricciones será llevada a cabo entre todos los pares de trenes que tengan posibilidad de conflicto, independientemente del día que circulen, es decir, será equivalente a considerar que todos los trenes circulan todos los días de la semana. Figura A.4: Trenes considerados durante la Optimización utilizando cierta línea ferroviaria En la Figura A.4 se muestra una determinada línea ferroviaria (eje y), con todos los trenes que serán considerados durante la optimización. Cada uno de estos trenes tiene asignado un determinado conjunto de días de circulación. Entre ellos existen trenes que no compartirán tramos de la línea ningún día, por no tener ningún día de circulación en común. Así, en la Figura A.5 se muestran aquellos trenes de la Figura A.4 que tienen entre sus días de circulación a los días Sábado y Domingo. Los trenes que no aparecen en la Figura A.5, son aquellos que no circulan ni sábados ni domingos.

307 A.2. MOM: Módulo Optimizador de Mallas 277 Figura A.5: Trenes considerados durante la optimización, cuyos días de circulación incluyen Sábado y Domingo En la Figura A.6 se muestra una parte de la solución hallada correspondiente a la instancia considerada en las figuras previas. Antes de resolver el problema se ha decidido tener en cuenta los días de circulación de los trenes, por lo tanto los trenes que son señalados por los círculos 1, 2, y 3 pueden utilizar el mismo tramo al mismo tiempo, aún cuando los trenes viajan en sentidos opuestos y el tramo consta de una única vía de circulación. Esto se considera factible y por lo tanto una solución al problema debido a que los trenes señalados no tienen ningún día de circulación en común. Demora por Parada no Prevista En cada tramo del recorrido de un tren se indica la cantidad de tiempo que el tren deberá emplear en recorrerlo. El valor asignado tiene en cuenta la distancia entre una dependencia y otra del tramo, así como la velocidad promedio que el tren utilizará en el mismo. Si el tren requiere detenerse en una estación, en la cual no estaba prevista parada alguna, su velocidad promedio disminuye, tanto en el tramo anterior como posterior a dicha estación. En el tramo anterior disminuye para lograr el frenado. En el tramo

308 2 278A. Sistemas desarrollados para la 3Generación y Optimización de horarios Ferroviarios 1 tramo2 l Figura A.6: Cruce entre 3 Trenes sin días de circulación en común k1t siguiente disminuye porque se requiere un tiempo para pasar de velocidad cero a la velocidad promedio establecida inicialmente. MOM ofrece como una opción, tener en cuenta parada it la disminución técnica j tramo2 1tj itopción 1 l ktramo2tj itopción de velocidad que se produce, con respecto a la velocidad inicialmente especificada para el tren en los tramos correspondientes. Conflictoqueocasiona lk 2 tramo 1 Figura A.7: Opciones para gestionar una Parada no prevista en una estación Como un ejemplo a lo expuesto en el párrafo anterior, en la Figura A.7 se proporcionan 3 gráficos. Considerándolos de izquierda a derecha, en el primero se indica que existiría un conflicto entre los trenes t i y t j, si ambos utilizan al mismo tiempo el tramo 1. Se decide que debe esperar en la estación l k el tren t i. Como puede verse en el primer gráfico, t i no tenía prevista parada comercial en l k. Por lo tanto, una vez se decide detener a t i en l k, existen dos opciones: (i) aumentar el tiempo de

309 A.2. MOM: Módulo Optimizador de Mallas 279 recorrido en el tramo 1 y en el tramo 2, ya que la parada implica una disminución de velocidad en ambos tramos (Opción 1 en la Figura A.7), o (ii) obviar la parada que se realiza, y utilizar el mismo tiempo de recorrido que el especificado previamente para el tren en ambos tramos (Opción 2 en la Figura A.7). A.2.2. Parametrización de Restricciones Comerciales Existen ciertas restricciones a las cuales se ha agrupado como restricciones comerciales porque tienen que ver directamente con el servicio ofrecido al cliente. Cada una de estas restricciones tiene un parámetro que es definido por el planificador. A continuación se indica la forma en que esta parametrización es realizada por MOM. Intervalos de Salida e Intervalos de Llegada Por cada tren t i de la LTO es posible especificar un instante de tiempo S i, que será utilizado por MOM como una referencia para calcular el instante de salida del tren, de su estación origen. Así mismo, por cada tren de la LTO se especifica un instante de llegada L i, que será utilizado como referencia para determinar si el instante de llegada del tren es o no factible. Además de los instantes de tiempo S i y L i es necesario especificar la tolerancia sobre S i y la tolerancia sobre L i. Esto es, la diferencia que puede existir entre los instantes de tiempo dados como referencia, S i y L i, y los instantes de tiempo asignados por MOM, como parte de la solución entregada. En MOM se distinguen tres formas de expresar la tolerancia: (i) como un intervalo [m, n], (ii) A Tiempo, o (iii) Indefinido. (i) Cuando la tolerancia sobre el instante de salida S i es expresada como un intervalo [m, n], significa que se considerará factible que el tren salga de su estación origen en cualquier instante perteneciente a [S m, S+n], ambos inclusive. Si se trata de la tolerancia sobre el instante de llegada L i, determina como factibles cualquier instante de llegada perteneciente al intervalo [L m, L + n], ambos inclusive. MOM deberá decidir entre todos los instantes factibles, aquel que produzca el mejor horario según la función objetivo. (ii) La tolerancia A Tiempo, sobre el instante de salida inicial de un tren, indica que si existe un horario factible para el mismo, en el cual parta de su estación inicial

310 280A. Sistemas desarrollados para la Generación y Optimización de horarios Ferroviarios en el instante S i, este deberá ser necesariamente el instante de tiempo asignado por MOM. En caso contrario, la salida inicial del tren deberá ser el menor instante posible posterior a S i que genere un horario factible para t i. Si se trata de la tolerancia sobre el instante de llegada, indica que el tren deberá llegar en el instante L i de ser posible. En caso contrario deberá llegar en el mayor instante de tiempo anterior a L i, que sea factible. (iii) Cuando el tipo de tolerancia es Indefinido significa que no se expresa restricción sobre el instante de salida o sobre el instante de llegada, según corresponda. MOM no permite que la tolerancia sea del tipo Indefinido sobre el instante de salida y sobre el instante de llegada de un mismo tren. Retraso Máximo A cada tren le corresponde un tiempo de recorrido ideal, que es el menor tiempo que puede emplear para completar su recorrido. Este tiempo está dado por la velocidad promedio y la distancia en cada tramo, más las paradas comerciales establecidas en cada dependencia de su recorrido. Una de las restricciones sobre el horario impuesto a cada tren consiste en limitar el retraso que pueda llevar el tren con respecto al tiempo de recorrido ideal. Dado que: el tiempo de recorrido ideal τ i de un tren t i está dado por τ i = m i 1 j=0 i j j+1 + C i j, y representa el mínimo tiempo que este puede emplear para completar su recorrido, desde su estación origen hasta su estación destino, cumpliendo con el tiempo de recorrido establecido por cada tramo, y con la parada comercial especificada por cada dependencia. Λ i = arr i m i dep i 0 es el tiempo empleado por t i para completar su recorrido, según el horario asignado por MOM. El retraso de t i sería D i = Λ i τ i τ i. MOM permite especificar el máximo valor permitido para D i. MOM permite que el usuario especifique retraso indefinido para un tren, sobre el cual no se requiere limitar su retraso con un valor determinado. En este caso el retraso del tren estará restringido únicamente por la función objetivo del problema, la cual guía hacia un conjunto de horarios con el menor retraso promedio posible.

311 A.2. MOM: Módulo Optimizador de Mallas 281 Periodicidad en Salida Cuando se requiere un determinado periodo de tiempo entre las salidas de dos trenes consecutivos, MOM permite especificar el grupo o conjunto de trenes entre los cuales se desea establecer dicha restricción así como las estaciones en las cuales deberá ser cumplida. Para ello es posible formar grupos entre los trenes de la LTO, ya que la restricción de periodicidad en salida solo afectará a los trenes que formen parte del mismo grupo, permitiendo además parametrizar la restricción por cada grupo, con valores que no tienen por qué ser los mismos. Una vez se establecen el, o los grupos de trenes, por cada uno es necesario especificar la siguiente información: el tren de referencia, es decir el tren a partir del cual se calculará el instante de salida de los siguientes trenes del grupo. periodo de tiempo que deberá cumplirse entre dos salidas consecutivas. El periodo de tiempo podrá estar dado por un intervalo, o podrá ser del tipo Múltiple. En el primer caso se establece un intervalo [a, b], indicando que el periodo de tiempo entre las salidas consecutivas deberá pertenecer al mismo, siempre y cuando el promedio de valores establecidos por MOM sea lo más cercano posible a a+b 2. Sin embargo, si se selecciona Múltiple, entonces se pueden especificar n valores, p 1,..., p n, de tal forma que el periodo de tiempo entre los trenes consecutivos t i mod n y t i+1 mod n sea igual a p i. estaciones donde se verificará periodicidad. Se puede indicar la estación inicial, o bien, la estación inicial y toda estación en la cual se haya especificado parada comercial para el tren. Como ejemplo, considere que se han formado dos grupos de trenes a partir de los trenes de la LTO, con el objetivo de que exista un determinado periodo de tiempo entre las salidas consecutivas de los trenes de cada grupo. En uno de los grupos se han incluido a todos los trenes que viajan en sentido ida, y en el otro a todos los trenes que viajan en sentido vuelta. Posteriormente, utilizando los diálogos mostrados en la Figura A.8 hemos parametrizado la restricción, asignando

312 282A. Sistemas desarrollados para la Generación y Optimización de horarios Ferroviarios a los trenes del primer grupo, periodos de tiempo múltiple, específicamente, de 20, 30 y 40 minutos (diálogo (a) en la Figura A.8). Para los trenes del segundo grupo se ha seleccionado como periodo de tiempo el intervalo [30, 30] (diálogo (b) en la Figura A.8), es decir deberá existir entre las salidas de dos trenes consecutivos de dicho grupo, exactamente 30 minutos. En ambos diálogos, se ha indicado que se deberá cumplir dicha restricción solo en las estaciones origen de cada uno de los trenes. (a) (b) Figura A.8: Edición de los parámetros para especificar Periodicidad en Salida

313 A.2. MOM: Módulo Optimizador de Mallas 283 En la Figura 3.15 se muestra una de las soluciones obtenidas. En ella se puede ver que los trenes que viajan en sentido ida salen de la estación origen cada 20, 30 y 40 minutos, repitiéndose esta secuencia cada tres trenes del grupo. Por otro lado, entre las salidas de los trenes que viajan en sentido vuelta, el tiempo que existe es exactamente igual a 30 minutos. Como referencia, podemos decir que en la Figura 3.15 existe una línea vertical cada 30 minutos. Figura A.9: Solución que satisfacen una determinada periodicidad en salida A.2.3. Parametrización de la Infraestructura Ferroviaria Otras restricciones son especificadas para que se tenga en cuenta la capacidad de la infraestructura. Los datos sobre la infraestructura son obtenidos desde la base de datos de la compañía. Pueden ser utilizados estos datos, o bien, pueden ser modificados en forma local, según lo describimos a continuación.

314 284A. Sistemas desarrollados para la Generación y Optimización de horarios Ferroviarios Tiempo de Recorrido Por cada tren y por cada tramo de su correspondientes recorrido, MOM obtiene de la base de datos dos posibles valores que representan el tiempo que el tren deberá emplear en recorrerlo. Los denominamos tiempo de recorrido tipo 1, y tiempo de recorrido tipo 2, respectivamente. Se especifican dos valores, ya que de esta forma es posible indicar otro valor además del tiempo teórico. En ciertos casos, el planificador sabe que en determinados tramos, por alguna razón, obras, inclemencias del tiempo, accidentes, no podrá cumplirse el tiempo teórico, entonces establece como un segundo valor en el mismo tramo, un determinado tiempo, que según su experiencia produciría un horario más realista. En la Figura A.10 se muestra la posición de un mismo tren en función del tiempo, según emplee como tiempo de recorrido, uno u otro valor especificado como válido en cada tramo. Las líneas continuas indican la posición del tren en función del tiempo cuando se emplea el tiempo tipo 1. Las líneas de puntos indican la posición del mismo tren en función del tiempo, cuando se emplea el tiempo de recorrido tipo 2. Antes de iniciar el proceso de optimización es necesario que el planificador decida cuál de los dos tipos de tiempo de recorrido utilizará MOM para calcular el horario de cada tren. Si se selecciona el tipo 1 para el tren t, entonces MOM utilizará como tiempo de recorrido en cada tramo del recorrido de t los valores correspondientes al tipo 1. Es decir, no podrá utilizar el valor correspondiente al tipo 1 para recorrer un tramo y el valor correspondiente al tipo 2 para recorrer otro. Aumento y Disminución de Estaciones en una misma Línea La línea ferroviaria a la cual se deberán agregar nuevos trenes está formada por una secuencia de dependencias y cada dependencia a su vez consta de determinados atributos, entre ellos el tipo al cual pertenece. Cuando una dependencia es del tipo Estación, se considera factible que un tren se detenga en ella, aún cuando no tenga previsto una parada comercial en la misma. Es decir, es factible la parada de un tren mientras otro libera el tramo que este también requiere utilizar, o mientras se libera una de las vías de la siguiente estación de su recorrido, que en el instante considerado se halla sin vías disponibles. En los demás tipos de dependencias, no se considera factible este tipo de operaciones, los trenes no pueden detenerse un tiempo

315 y asdependenci A.2. MOM: Módulo Optimizador de Mallas 285 Tiempo tipo 1 Tiempo tipo 2Tiempox ( ) ( ) Figura A.10: Dos valores para el tiempo de recorrido de cada tren en cada tramo de su recorrido superior al especificado para su parada comercial. MOM permite modificar el tipo de cada dependencia del recorrido de un tren. Esta modificación solo afecta al tren para el cual se realiza la parametrización, la cual es llevada a cabo con dos objetivos diferentes, según sea el cambio realizado. a) Si el tipo de dependencia se modifica de Estación a NO estación, el objetivo es impedir que el tren realice cualquier operación técnica en la misma. Se desea llevar la operación técnica, que generalmente se haría en dicha estación, a alguna de las previas, o a alguna de las siguientes. b) Si la modificación consiste en convertir una dependencia tipo NO estación a una dependencia tipo Estación, el objetivo es conocer el impacto que causaría en la solución global, el incremento de estaciones en la línea, y sobre todo en la ubicación seleccionada por el planificador. Esta funcionalidad permite controlar la gestión de cruces y alcances en cuanto al lugar donde se desea gestionarlos, así como también permiten evaluar ciertos cambios en la infraestructura, sin que para ello se deba realizar un cambio en la base de datos central.

316 286A. Sistemas desarrollados para la Generación y Optimización de horarios Ferroviarios Figura A.11: Modificación del tipo de Dependencia para un determinado tren En la Figura A.11, mediante la interfaz proporcionada por MOM se establece que la Estación dejará de serlo para el tren 25600, que es el primer tren que viaja en sentido vuelta en la Figura Una vez se ejecuta el proceso de optimización, el resultado obtenido es el mostrado en la Figura A.12. De esta manera, el sistema permite comprobar que no existe un horario factible que satisfaga el periodo de tiempo de 30 minutos entre salidas consecutivas, si la dependencia no puede ser utilizada como Estación. Únicamente sería posible si ningún tren de vuelta se cruza con los trenes que viajan en sentido ida. Bandas de Mantenimiento En una línea ferroviaria se indican la posición y los instantes de tiempo en los cuales se prevén operaciones de mantenimiento. En las Figuras A.13 y A.14 el conjunto de puntos, posición (eje y) y tiempo (eje x), correspondientes a las bandas de mantenimiento son señalados mediante las regiones sombreadas, indicando que en esa posición y en ese instante de tiempo el número de vías disminuye en uno. En las Figuras A.13 y A.14 se muestra una misma instancia del problema OPT. Todos los tramos de línea que aparecen en estas figuras son tramos de vía doble. Sin embargo, si se consideran las bandas de mantenimiento, no podrán ser utilizadas ambas vías para circulación en las regiones señaladas por las bandas de mantenimiento, ya que solo quedará disponible una de ellas durante un periodo de tiempo. Si se elige optimizar considerando las bandas de mantenimiento especificadas en la línea, una de las soluciones proporcionadas por MOM es la mostrada en la

317 A.2. MOM: Módulo Optimizador de Mallas 287 Figura A.12: Solución en la cual la dependencia no se considera Estación Figura A.13. En este caso no se permite que dos trenes que viajan en sentidos opuestos utilicen un mismo tramo al mismo tiempo, si dicho tramo se halla bajo mantenimiento en el instante considerado. MOM también puede resolver el mismo problema, obviando las bandas de mantenimiento especificadas en la línea. Esto significa que considerará las dos vías de circulación existentes en el tramo, aún cuando se haya especificado mantenimiento para el mismo en el instante considerado. En la Figura A.14 se muestra una de las soluciones obtenidas por MOM para la misma instancia considerada previamente, cuando el planificador decide obtener soluciones sin tener en cuenta las bandas de mantenimiento de la línea utilizada. Parametrización por Dependencia MOM recibe la especificación de cada dependencia consistente en un conjunto determinado de atributos con su valor correspondiente. Previamente a cada optimización es posible modificar dicha especificación ya sea para una o más dependencias de la línea ferroviaria considerada. MOM proporciona la interfaz mostrada en la Figura A.15 que permite editar

318 288A. Sistemas desarrollados para la Generación y Optimización de horarios Ferroviarios Figura A.13: Solución obtenida considerando las Bandas de Mantenimiento por cada dependencia, los valores correspondientes a los siguientes atributos: Cantidad Total de Vias, Cantidad de Vías con Andén, Horario de Apertura, y Horario de Cierre Cuando se modifica la cantidad total de vías a un valor inferior al de cantidad de vías con andén, se modifica automáticamente el valor de este segundo atributo igualándolo al del primero, ya que no pueden haber menos vías que el número de vías con andén. El horario de apertura de una dependencia es editado cuando se desea eliminar algún intervalo del horario de cierre en la misma. Así, si originalmente se establece que la dependencia estará cerrada de 00:00 hs a 06:00 hs, pero se requiere hacer una prueba en la cual el cierre se produzca desde las 04:00 hs, entonces se introduce un horario de apertura igual a 00:00 hs - 04:00 hs. El horario de cierre se introduce en una dependencia cuando se desea el efecto contrario, cerrar por un periodo de tiempo una dependencia que en la especificación original permanece abierta durante dicho intervalo de tiempo.

319 A.2. MOM: Módulo Optimizador de Mallas 289 Figura A.14: Solución obtenida sin considerar las Bandas de Mantenimiento Los atributos considerados por cada dependencia pueden ser re-establecidos a sus valores originales. Parametrización por Tramo Al igual que por cada dependencia, MOM recibe la especificación de cada tramo, en cuanto a atributos y valores correspondientes a cada uno. En la Figura A.16 se muestra la interfaz que proporciona MOM para editar los atributos de cada tramo de la línea ferroviaria considerada. Por cada tramo y por cada sentido de viaje es posible editar el valor de los siguientes atributos: Tipo de Bloqueo: puede ser manual (M ) o automático (A). En el primer caso no se permite que dos trenes que viajan en el mismo sentido ocupen un mismo tramo al mismo tiempo. Si el bloqueo es automático, debe existir una determinada diferencia de tiempo entre las salidas y entre las llegadas de los trenes, al inicio y al final del tramo respectivamente. La cantidad de tiempo para la sucesión automática es parametrizada según se explica en la sección A.2.4. Tiempo Adicional: a partir del tipo de tiempo de recorrido que se establece

Capítulo IV. Manejo de Problemas

Capítulo IV. Manejo de Problemas Manejo de Problemas Manejo de problemas Tabla de contenido 1.- En qué consiste el manejo de problemas?...57 1.1.- Ventajas...58 1.2.- Barreras...59 2.- Actividades...59 2.1.- Control de problemas...60

Más detalles

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere. UNIVERSIDAD DE CARABOBO FACULTAD DE CIENCIA Y TECNOLOGÍA DIRECCION DE EXTENSION COORDINACION DE PASANTIAS Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere. Pasante:

Más detalles

Elementos requeridos para crearlos (ejemplo: el compilador)

Elementos requeridos para crearlos (ejemplo: el compilador) Generalidades A lo largo del ciclo de vida del proceso de software, los productos de software evolucionan. Desde la concepción del producto y la captura de requisitos inicial hasta la puesta en producción

Más detalles

Unidad 1. Fundamentos en Gestión de Riesgos

Unidad 1. Fundamentos en Gestión de Riesgos 1.1 Gestión de Proyectos Unidad 1. Fundamentos en Gestión de Riesgos La gestión de proyectos es una disciplina con la cual se integran los procesos propios de la gerencia o administración de proyectos.

Más detalles

Funcionalidades Software PROYECTOS GotelGest.Net Software para la gestión de Proyectos GotelGest.Net

Funcionalidades Software PROYECTOS GotelGest.Net Software para la gestión de Proyectos GotelGest.Net 2012 Funcionalidades Software PROYECTOS GotelGest.Net Software para la gestión de Proyectos GotelGest.Net Servinet Sistemas y Comunicación S.L. www.softwaregestionproyectos.com Última Revisión: Febrero

Más detalles

El objetivo principal del presente curso es proporcionar a sus alumnos los conocimientos y las herramientas básicas para la gestión de proyectos.

El objetivo principal del presente curso es proporcionar a sus alumnos los conocimientos y las herramientas básicas para la gestión de proyectos. Gestión de proyectos Duración: 45 horas Objetivos: El objetivo principal del presente curso es proporcionar a sus alumnos los conocimientos y las herramientas básicas para la gestión de proyectos. Contenidos:

Más detalles

Gestión de proyectos

Gestión de proyectos Gestión de proyectos Horas: 45 El objetivo principal del presente curso es proporcionar a sus alumnos los conocimientos y las herramientas básicas para la gestión de proyectos. Gestión de proyectos El

Más detalles

Ingeniería en Informática

Ingeniería en Informática Departamento de Informática Universidad Carlos III de Madrid Ingeniería en Informática Aprendizaje Automático Junio 2007 Normas generales del examen El tiempo para realizar el examen es de 3 horas No se

Más detalles

El nivel de Satisfacción Laboral tomado con puntaje de mayor de 3 es lo que denota mayor satisfacción.

El nivel de Satisfacción Laboral tomado con puntaje de mayor de 3 es lo que denota mayor satisfacción. IX. ANALISIS DE LOS RESULTADOS El nivel de Satisfacción Laboral tomado con puntaje de mayor de 3 es lo que denota mayor satisfacción. En relación a la edad de las enfermeras y enfermeros del hospital encontramos

Más detalles

http://www.informatizate.net

http://www.informatizate.net http://www.informatizate.net Metodologías De Desarrollo De Software María A. Mendoza Sanchez Ing. Informático - UNT Microsoft Certified Professional - MCP Analísta y Desarrolladora - TeamSoft Perú S.A.C.

Más detalles

Metodología básica de gestión de proyectos. Octubre de 2003

Metodología básica de gestión de proyectos. Octubre de 2003 Metodología básica de gestión de proyectos Octubre de 2003 Dentro de la metodología utilizada en la gestión de proyectos el desarrollo de éstos se estructura en tres fases diferenciadas: Fase de Éjecución

Más detalles

Norma ISO 14001: 2004

Norma ISO 14001: 2004 Norma ISO 14001: 2004 Sistema de Gestión Ambiental El presente documento es la versión impresa de la página www.grupoacms.com Si desea más información sobre la Norma ISO 14001 u otras normas relacionadas

Más detalles

Mantenimiento de Sistemas de Información

Mantenimiento de Sistemas de Información de Sistemas de Información ÍNDICE DESCRIPCIÓN Y OBJETIVOS... 1 ACTIVIDAD MSI 1: REGISTRO DE LA PETICIÓN...4 Tarea MSI 1.1: Registro de la Petición... 4 Tarea MSI 1.2: Asignación de la Petición... 5 ACTIVIDAD

Más detalles

Operación 8 Claves para la ISO 9001-2015

Operación 8 Claves para la ISO 9001-2015 Operación 8Claves para la ISO 9001-2015 BLOQUE 8: Operación A grandes rasgos, se puede decir que este bloque se corresponde con el capítulo 7 de la antigua norma ISO 9001:2008 de Realización del Producto,

Más detalles

"Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios

Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios "Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios Miguel Alfonso Flores Sánchez 1, Fernando Sandoya Sanchez 2 Resumen En el presente artículo se

Más detalles

Prácticas ITIL para un mejor flujo de trabajo en el helpdesk

Prácticas ITIL para un mejor flujo de trabajo en el helpdesk Prácticas ITIL para un mejor flujo de trabajo en el helpdesk Se diferencia tres partes de gestión para mejorar la resolución de las incidencias de soporte técnico según el marco ITIL: 1. Gestión de Incidencias

Más detalles

MODULO: MERCADEO. Acuerdo de Nivel de Servicio (ANS) Service Level Agreement (SLA) MODELO DE MUESTRA SIN VALOR COMERCIAL

MODULO: MERCADEO. Acuerdo de Nivel de Servicio (ANS) Service Level Agreement (SLA) MODELO DE MUESTRA SIN VALOR COMERCIAL MODULO: MERCADEO Acuerdo de Nivel de Servicio (ANS) Service Level Agreement (SLA) 1 Servicio de Soporte. El presente apartado constituye las condiciones de soporte y mantenimiento por parte de enncloud

Más detalles

Copyright 2011 - bizagi. Gestión de Cambios Documento de Construcción Bizagi Process Modeler

Copyright 2011 - bizagi. Gestión de Cambios Documento de Construcción Bizagi Process Modeler Copyright 2011 - bizagi Gestión de Cambios Bizagi Process Modeler Tabla de Contenido Gestión de Cambios... 4 Descripción... 4 Principales factores en la Construcción del Proceso... 5 Modelo de Datos...

Más detalles

6. DESCRIPCIÓN DEL SOFTWARE

6. DESCRIPCIÓN DEL SOFTWARE Capítulo 2. Equipo 6. DESCRIPCIÓN DEL SOFTWARE 6.1 Introducción El equipo de medida descrito en el capítulo anterior lleva asociado un software que hace de sistema de control del proceso de medición. Este

Más detalles

PROCEDIMIENTO ESPECÍFICO. Código G114-01 Edición 0

PROCEDIMIENTO ESPECÍFICO. Código G114-01 Edición 0 Índice 1. TABLA RESUMEN... 2 2. OBJETO... 2 3. ALCANCE... 2 4. RESPONSABILIDADES... 3 5. ENTRADAS... 3 6. SALIDAS... 3 7. PROCESOS RELACIONADOS... 3 8. DIAGRAMA DE FLUJO... 4 9. DESARROLLO... 5 9.1. PROYECTO

Más detalles

Planificación de Sistemas de Información

Planificación de Sistemas de Información Planificación de Sistemas de Información ÍNDICE DESCRIPCIÓN Y OBJETIVOS...1 ACTIVIDAD 1: INICIO DEL PLAN DE SISTEMAS DE INFORMACIÓN...4 Tarea 1.1: Análisis de la Necesidad del...4 Tarea 1.2: Identificación

Más detalles

PLAN DE MEJORAS. Herramienta de trabajo. Agencia Nacional de Evaluación de la Calidad y Acreditación

PLAN DE MEJORAS. Herramienta de trabajo. Agencia Nacional de Evaluación de la Calidad y Acreditación PLAN DE MEJORAS Herramienta de trabajo Agencia Nacional de Evaluación de la Calidad y Acreditación Índice 1 Introducción...3 2 Pasos a seguir para la elaboración del plan de mejoras...5 2.1 Identificar

Más detalles

Planificación de Sistemas de Información

Planificación de Sistemas de Información Planificación de Sistemas de Información ÍNDICE DESCRIPCIÓN Y OBJETIVOS... 1 ACTIVIDAD 1: INICIO DEL PLAN DE SISTEMAS DE INFORMACIÓN... 4 Tarea 1.1: Análisis de la Necesidad del... 4 Tarea 1.2: Identificación

Más detalles

CAPÍTULO II MARCO TEÓRICO ADMNISTRACIÓN DE PROYECTOS CON CPM

CAPÍTULO II MARCO TEÓRICO ADMNISTRACIÓN DE PROYECTOS CON CPM CAPÍTULO II MARCO TEÓRICO ADMNISTRACIÓN DE PROYECTOS CON CPM 10 2.1 Introducción La dirección de un proyecto de gran magnitud no es una tarea fácil. Para los administradores este es uno de los trabajos

Más detalles

Funcionalidades Software SAT GotelGest.Net (Software de Servicio de Asistencia Técnica)

Funcionalidades Software SAT GotelGest.Net (Software de Servicio de Asistencia Técnica) Funcionalidades Software SAT GotelGest.Net (Software de Servicio de Asistencia Técnica) Servinet Sistemas y Comunicación S.L. www.softwaregestionsat.com Última Revisión: Octubre 2014 FUNCIONALIDADES SAT

Más detalles

Sistemas de Gestión de Calidad. Control documental

Sistemas de Gestión de Calidad. Control documental 4 Sistemas de Gestión de Calidad. Control documental ÍNDICE: 4.1 Requisitos Generales 4.2 Requisitos de la documentación 4.2.1 Generalidades 4.2.2 Manual de la Calidad 4.2.3 Control de los documentos 4.2.4

Más detalles

ENFOQUE ISO 9000:2000

ENFOQUE ISO 9000:2000 ENFOQUE ISO 9000:2000 1 PRESENTACION En 1980 la IOS (INTERNATIONAL ORGANIZATION FOR STANDARDIZATION) organismo de origen europeo, enfoco sus esfuerzos hacia el establecimiento de lineamientos en términos

Más detalles

Jornada informativa Nueva ISO 9001:2008

Jornada informativa Nueva ISO 9001:2008 Jornada informativa Nueva www.agedum.com www.promalagaqualifica.es 1.1 Generalidades 1.2 Aplicación Nuevo en Modificado en No aparece en a) necesita demostrar su capacidad para proporcionar regularmente

Más detalles

Gestión de la Configuración

Gestión de la Configuración Gestión de la ÍNDICE DESCRIPCIÓN Y OBJETIVOS... 1 ESTUDIO DE VIABILIDAD DEL SISTEMA... 2 ACTIVIDAD EVS-GC 1: DEFINICIÓN DE LOS REQUISITOS DE GESTIÓN DE CONFIGURACIÓN... 2 Tarea EVS-GC 1.1: Definición de

Más detalles

Gestión y Desarrollo de Requisitos en Proyectos Software

Gestión y Desarrollo de Requisitos en Proyectos Software Gestión y Desarrollo de Requisitos en Proyectos Software Ponente: María Jesús Anciano Martín Objetivo Objetivo Definir un conjunto articulado y bien balanceado de métodos para el flujo de trabajo de Ingeniería

Más detalles

forma de entrenar a la nuerona en su aprendizaje.

forma de entrenar a la nuerona en su aprendizaje. Sistemas expertos e Inteligencia Artificial,Guía5 1 Facultad : Ingeniería Escuela : Computación Asignatura: Sistemas expertos e Inteligencia Artificial Tema: SISTEMAS BASADOS EN CONOCIMIENTO. Objetivo

Más detalles

Plan de Evaluación. Parcial I...20% Taller I... 5% Parcial II...20% Taller II...5% Parcial III...20% Exposición...10% Proyecto...15% Asistencia...

Plan de Evaluación. Parcial I...20% Taller I... 5% Parcial II...20% Taller II...5% Parcial III...20% Exposición...10% Proyecto...15% Asistencia... Plan de Evaluación Parcial I...20% Taller I... 5% Parcial II...20% Taller II...5% Parcial III...20% Exposición...10% Proyecto...15% Asistencia...5% 1 REDES Toda organización alguna vez tiene que enfrentar

Más detalles

Scheduling Problem. Cuándo y dónde debo hacer cada trabajo?

Scheduling Problem. Cuándo y dónde debo hacer cada trabajo? Scheduling Problem Cuándo y dónde debo hacer cada trabajo? Ejemplos de problemas de asignación de recursos Fabricación de varios tipos de productos Asignación de turnos de trabajo Inversión financiera

Más detalles

2 EL DOCUMENTO DE ESPECIFICACIONES

2 EL DOCUMENTO DE ESPECIFICACIONES Ingeniería Informática Tecnología de la Programación TEMA 1 Documentación de programas. 1 LA DOCUMENTACIÓN DE PROGRAMAS En la ejecución de un proyecto informático o un programa software se deben de seguir

Más detalles

Diseño orientado al flujo de datos

Diseño orientado al flujo de datos Diseño orientado al flujo de datos Recordemos que el diseño es una actividad que consta de una serie de pasos, en los que partiendo de la especificación del sistema (de los propios requerimientos), obtenemos

Más detalles

Análisis de Resultados

Análisis de Resultados Análisis de Resultados Encuesta Web OnLine Buses: www.encuesta-webonlinebuses.tk Grupo10 1 Datos Generales Técnica: Encuesta Web Medio: Google Forms Unidad de muestreo: Usuarios y potenciales usuarios

Más detalles

Administración de proyectos. Organizar, planificar y programar los proyectos de software

Administración de proyectos. Organizar, planificar y programar los proyectos de software Administración de proyectos Organizar, planificar y programar los proyectos de software Administración de proyectos Trata de las actividades que hay que realizar para asegurar que el software se entregará

Más detalles

GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES

GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES Tema: Cartas de Servicios Primera versión: 2008 Datos de contacto: Evaluación y Calidad. Gobierno de Navarra. evaluacionycalidad@navarra.es

Más detalles

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología La metodología para el desarrollo de software es un modo sistemático de realizar, gestionar y administrar un proyecto

Más detalles

SÍNTESIS Y PERSPECTIVAS

SÍNTESIS Y PERSPECTIVAS SÍNTESIS Y PERSPECTIVAS Los invitamos a observar, a identificar problemas, pero al mismo tiempo a buscar oportunidades de mejoras en sus empresas. REVISIÓN DE CONCEPTOS. Esta es la última clase del curso.

Más detalles

ISO9001:2015. Todos los certificados emitidos en este periodo tienen una fecha de caducidad de 15 de septiembre de 2018.

ISO9001:2015. Todos los certificados emitidos en este periodo tienen una fecha de caducidad de 15 de septiembre de 2018. ISO9001:2015 PLAN DE TRANSICIÓN Tras la publicación de la nueva versión de la norma ISO9001 el pasado mes de septiembre se inicia un periodo de convivencia entre las dos versiones de la norma. Este periodo

Más detalles

Movimiento a través de una. José San Martín

Movimiento a través de una. José San Martín Movimiento a través de una curva José San Martín 1. Introducción Una vez definida la curva sobre la cual queremos movernos, el siguiente paso es definir ese movimiento. Este movimiento se realiza mediante

Más detalles

Tema 7: Optimización sobre Redes Muchos de los problemas de Investigación Operativa pueden modelizarse y resolverse sobre un grafo: conjunto de

Tema 7: Optimización sobre Redes Muchos de los problemas de Investigación Operativa pueden modelizarse y resolverse sobre un grafo: conjunto de Tema 7: Optimización sobre Redes Muchos de los problemas de Investigación Operativa pueden modelizarse y resolverse sobre un grafo: conjunto de vértices o nodos conectados con arcos y/o aristas. Diseñar

Más detalles

Tema 1: Introducción a los S.O. Ejercicios de Planificiación de Procesos

Tema 1: Introducción a los S.O. Ejercicios de Planificiación de Procesos Tema 1: Introducción a los S.O. Ejercicios de Planificiación de Procesos 1.- Notas y criterios para los problemas de planificación NOTA GENERAL: Normalmente los enunciados no son rigurosamente completos,

Más detalles

La Tecnología líder en Simulación

La Tecnología líder en Simulación La Tecnología líder en Simulación El software de simulación Arena, es un "seguro de vida" para las empresa: le ayuda a predecir el impacto en las organizaciones de nuevas ideas, estrategias y políticas

Más detalles

Solución Algorítmica de Problemas Proyecto - Unidad #2 Metro de Curicó

Solución Algorítmica de Problemas Proyecto - Unidad #2 Metro de Curicó Solución Algorítmica de Problemas Proyecto - Unidad #2 Metro de Curicó Fecha de Entregable 1: 7 de octubre de 2013-12 horas Fecha de Entregable 2 y 3: Lunes 21 de octubre de 2013-12 horas Fecha de Entregable

Más detalles

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos 2.1. Principios básicos del Modelado de Objetos UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos Hoy en día muchos de los procesos que intervienen en un negocio o empresa y que resuelven

Más detalles

Guías _SGO. Gestione administradores, usuarios y grupos de su empresa. Sistema de Gestión Online

Guías _SGO. Gestione administradores, usuarios y grupos de su empresa. Sistema de Gestión Online Guías _SGO Gestione administradores, usuarios y grupos de su empresa Sistema de Gestión Online Índice General 1. Parámetros Generales... 4 1.1 Qué es?... 4 1.2 Consumo por Cuentas... 6 1.3 Días Feriados...

Más detalles

Introducción a las redes de computadores

Introducción a las redes de computadores Introducción a las redes de computadores Contenido Descripción general 1 Beneficios de las redes 2 Papel de los equipos en una red 3 Tipos de redes 5 Sistemas operativos de red 7 Introducción a las redes

Más detalles

PERFIL DEL PUESTO POR COMPETENCIAS Sepa cómo construirlo y evitar bajos desempeños posteriores

PERFIL DEL PUESTO POR COMPETENCIAS Sepa cómo construirlo y evitar bajos desempeños posteriores PERFIL DEL PUESTO POR COMPETENCIAS Sepa cómo construirlo y evitar bajos desempeños posteriores Martha Alicia Alles Es contadora pública nacional, doctora por la Universidad de Buenos Aires en la especialidad

Más detalles

7. Conclusiones. 7.1 Resultados

7. Conclusiones. 7.1 Resultados 7. Conclusiones Una de las preguntas iniciales de este proyecto fue : Cuál es la importancia de resolver problemas NP-Completos?. Puede concluirse que el PAV como problema NP- Completo permite comprobar

Más detalles

Project 2013. Ing. Christian Ovalle

Project 2013. Ing. Christian Ovalle 2013 Ing. Christian Ovalle PROJECT Antes de comenzar un proyecto se necesitan definir los objetivos de un proyecto y luego determinado, cuales son las tareas que necesita realizar para alcanzar ese objetivo.

Más detalles

TEMA 4: TÉCNICAS DE PLANIFICACIÓN DE PROYECTOS

TEMA 4: TÉCNICAS DE PLANIFICACIÓN DE PROYECTOS TEMA 4: TÉCNICAS DE PLANIFICACIÓN DE PROYECTOS 4.1. Objetivos Establecer una relación esfuerzo / tiempo cronológico Estudiar el posible paralelismo de las tareas Situar las tareas en un esquema cronológico

Más detalles

Unidad II: Análisis de Redes

Unidad II: Análisis de Redes Unidad II: Análisis de Redes 2.1 Conceptos Básicos Un problema de redes es aquel que puede representarse por: LA IMPORTANCIA DE LOS MODELOS DE REDES: Muchos problemas comerciales pueden ser resueltos a

Más detalles

Traducción del. Our ref:

Traducción del. Our ref: Traducción del Documento: Our ref: Secretaría del ISO/TC 176/SC 2 Fecha: 15 de octubre de 2008 A los Miembros del ISO/TC 176/SC 2 - Gestión de la Calidad y Aseguramiento de la Calidad/ Sistemas de la Calidad

Más detalles

Seminario Electrónico de Soluciones Tecnológicas sobre VPNs de Extranets

Seminario Electrónico de Soluciones Tecnológicas sobre VPNs de Extranets Seminario Electrónico de Soluciones Tecnológicas sobre VPNs de Extranets 1 de 12 Seminario Electrónico de Soluciones Tecnológicas sobre VPNs de Extranets 3 Bienvenida. 4 Objetivos. 5 Interacciones de Negocios

Más detalles

Este libro está dividido en ocho secciones, de las que se puede deducir como ideas principales las siguientes ideas:

Este libro está dividido en ocho secciones, de las que se puede deducir como ideas principales las siguientes ideas: Referenciar: http://www.ecobachillerato.com Actividades propuestas sobre este libro: Introducción: Este libro tiene como objetivo aconsejar y ayudar al empresario de una pequeña a empresa a realizar y

Más detalles

Las bebidas Alcohólicas

Las bebidas Alcohólicas Las bebidas Alcohólicas Hecho por: - Elisa Gutiérrez - Guillermo Rivas-plata - Rodrigo Pumares - Beatriz Sánchez 1 Índice 1- Introducción... 3 2- Objetivos... 3 3- Preguntas de la encuesta... 4 4- Encuesta...

Más detalles

2.1 Clasificación de los sistemas de Producción.

2.1 Clasificación de los sistemas de Producción. ADMINISTRACION DE OPERACIONES Sesión 2: La Administración de operaciones II Objetivo específico 1: El alumno conocerá la clasificación de los sistemas de producción, los sistemas avanzados de manufactura

Más detalles

Mesa de Ayuda Interna

Mesa de Ayuda Interna Mesa de Ayuda Interna Bizagi Suite Mesa de Ayuda Interna 1 Tabla de Contenido Mesa de Ayuda Interna... 3 Elementos del proceso... 5 Apertura del Caso... 5 Inicio... 5 Abrir Caso... 5 Habilitar Cierre del

Más detalles

Fundamentos de Investigación de Operaciones Investigación de Operaciones 1

Fundamentos de Investigación de Operaciones Investigación de Operaciones 1 Fundamentos de Investigación de Operaciones Investigación de Operaciones 1 1 de agosto de 2003 1. Introducción Cualquier modelo de una situación es una simplificación de la situación real. Por lo tanto,

Más detalles

PROPÓSITO... 2 DETERMINANTES PARA UNA BUENA EXPERIENCIA DE USO...

PROPÓSITO... 2 DETERMINANTES PARA UNA BUENA EXPERIENCIA DE USO... Tabla de Contenido PROPÓSITO... 2 DETERMINANTES PARA UNA BUENA EXPERIENCIA DE USO... 2 1. LA PRESENCIA DE INFORMACIÓN Y AYUDA ÚTIL PARA COMPLETAR LOS TRÁMITES EN LÍNEA.... 2 2. LA DISPONIBILIDAD DE DIVERSOS

Más detalles

SCT3000 95. Software para la calibración de transductores de fuerza. Versión 3.5. Microtest S.A. microtes@arrakis.es

SCT3000 95. Software para la calibración de transductores de fuerza. Versión 3.5. Microtest S.A. microtes@arrakis.es SCT3000 95 Versión 3.5 Software para la calibración de transductores de fuerza. Microtest S.A. microtes@arrakis.es Introducción El programa SCT3000 95, es un sistema diseñado para la calibración automática

Más detalles

PLAN DIRECTOR DE SISTEMAS DE INFORMACIÓN DEL MINISTERIO DE TRABAJO Y ASUNTOS SOCIALES: ALGUNAS CONSIDERACIONES

PLAN DIRECTOR DE SISTEMAS DE INFORMACIÓN DEL MINISTERIO DE TRABAJO Y ASUNTOS SOCIALES: ALGUNAS CONSIDERACIONES PLAN DIRECTOR DE SISTEMAS DE INFORMACIÓN DEL MINISTERIO DE TRABAJO Y ASUNTOS SOCIALES: ALGUNAS CONSIDERACIONES Pilar Beriso GómezEscalonilla Consejera Técnica adjunta al Subdirector Subdirección General

Más detalles

Capitulo V Administración de memoria

Capitulo V Administración de memoria Capitulo V Administración de memoria Introducción. Una de las tareas más importantes y complejas de un sistema operativo es la gestión de memoria. La gestión de memoria implica tratar la memoria principal

Más detalles

Las Relaciones Públicas en el Marketing social

Las Relaciones Públicas en el Marketing social Las Relaciones Públicas en el Marketing social El marketing social es el marketing que busca cambiar una idea, actitud o práctica en la sociedad en la que se encuentra, y que intenta satisfacer una necesidad

Más detalles

Controle completamente la fabricación de su empresa Sistema de gestión de la producción para la empresa Sistema de gestión de la fabricación para la empresa Resolución de sus problemas más comunes de gestión

Más detalles

1.1 EL ESTUDIO TÉCNICO

1.1 EL ESTUDIO TÉCNICO 1.1 EL ESTUDIO TÉCNICO 1.1.1 Definición Un estudio técnico permite proponer y analizar las diferentes opciones tecnológicas para producir los bienes o servicios que se requieren, lo que además admite verificar

Más detalles

EL ANÁLISIS Y LA CONSTRUCCIÓN DE VIABILIDAD

EL ANÁLISIS Y LA CONSTRUCCIÓN DE VIABILIDAD FICHA Nº 20 VIABILIDAD DE LAS OPERACIONES EL ANÁLISIS Y LA CONSTRUCCIÓN DE VIABILIDAD Cuando analizamos problemas para determinar problemas asociados, procesos causales, nudos críticos y frentes de ataque

Más detalles

DE VIDA PARA EL DESARROLLO DE SISTEMAS

DE VIDA PARA EL DESARROLLO DE SISTEMAS MÉTODO DEL CICLO DE VIDA PARA EL DESARROLLO DE SISTEMAS 1. METODO DEL CICLO DE VIDA PARA EL DESARROLLO DE SISTEMAS CICLO DE VIDA CLÁSICO DEL DESARROLLO DE SISTEMAS. El desarrollo de Sistemas, un proceso

Más detalles

Curso Online de Microsoft Project

Curso Online de Microsoft Project Curso Online de Microsoft Project Presentación El curso a distancia estudia conceptos generales sobre las tecnologías relacionadas con Internet. Conceptos que cualquier usuario de ordenadores debe conocer

Más detalles

SEGUIMIENTO Y CONTROL DE PROYECTOS MÉTODO P.E.R.T. REVISADO Y ACTUALIZADO - ADDFORMACION

SEGUIMIENTO Y CONTROL DE PROYECTOS MÉTODO P.E.R.T. REVISADO Y ACTUALIZADO - ADDFORMACION SEGUIMIENTO Y CONTROL DE PROYECTOS MÉTODO P.E.R.T. REVISADO Y ACTUALIZADO - ADDFORMACION Contenido Introducción...3 Organización y fases de la gestión de un proyecto...4 Planificación por el método PERT...4

Más detalles

MODIFICACIONES de ISO 9001:2000 a ISO 9001:2008

MODIFICACIONES de ISO 9001:2000 a ISO 9001:2008 MODIFICACIONES de ISO 9001:2000 a ISO 9001:2008 La nueva norma ISO 9001, en versión 2008, no incorpora nuevos requisitos, sino cambios para aclarar los requisitos ya existentes en la Norma ISO 9001, de

Más detalles

Capítulo III. Manejo de Incidentes

Capítulo III. Manejo de Incidentes Manejo de Incidentes Manejo de Incidentes Tabla de contenido 1.- En qué consiste el manejo de incidentes?...45 1.1.- Ventajas...47 1.2.- Barreras...47 2.- Requerimientos...48 3.- Clasificación de los incidentes...48

Más detalles

2.11.1 CONTRATAS Y SUBCONTRATAS NOTAS

2.11.1 CONTRATAS Y SUBCONTRATAS NOTAS NOTAS 1 Cuando en un mismo centro de trabajo desarrollen actividades trabajadores de dos o más empresas, éstas deberán cooperar en la aplicación de la normativa sobre prevención de riesgos laborales. A

Más detalles

Normas chilenas de la serie ISO 9000

Normas chilenas de la serie ISO 9000 Normas chilenas de la serie ISO 9000 Hernán Pavez G. Director Ejecutivo del Instituto Nacional de Normalización, INN, Matías Cousiño N 64, 6 Piso, Santiago, Chile. RESUMEN: en nuestro país las empresas

Más detalles

Master en Gestion de la Calidad

Master en Gestion de la Calidad Master en Gestion de la Calidad 3. La Calidad en la Actualidad La calidad en la actualidad 1 / 9 OBJETIVOS Al finalizar esta unidad didáctica será capaz: Conocer la calidad en la actualidad. La familia

Más detalles

Unidad III. Planificación del proyecto de software

Unidad III. Planificación del proyecto de software Planificación del proyecto de software Unidad III 3.1. Aplicación de herramientas para estimación de tiempos y costos de desarrollo de software: GANTT, PERT/CPM, uso de software para la estimación de tiempos

Más detalles

U.T. 2 Planificación de Proyectos

U.T. 2 Planificación de Proyectos U.T. 2 Planificación de Proyectos En el tema anterior hemos visto que es determinante una buena planificación del proyecto, ya que de no realizarse ésta, nunca sabremos el tiempo que resta para la finalización

Más detalles

Desarrollo de un Sistema de Gestión de Proyectos mediante el framework GWT

Desarrollo de un Sistema de Gestión de Proyectos mediante el framework GWT Proyecto de Fin de Carrera Universidad Politécnica de Valencia Escuela Técnica Superior de Informática Desarrollo de un Sistema de Gestión de Proyectos mediante el framework GWT Realizado por: Dirigido

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación II MODELOS y HERRAMIENTAS UML 1 1 Modelado de casos de uso (I) Un caso de uso es una técnica de modelado usada para describir lo que debería hacer

Más detalles

Actividades para mejoras. Actividades donde se evalúa constantemente todo el proceso del proyecto para evitar errores y eficientar los procesos.

Actividades para mejoras. Actividades donde se evalúa constantemente todo el proceso del proyecto para evitar errores y eficientar los procesos. Apéndice C. Glosario A Actividades de coordinación entre grupos. Son dinámicas y canales de comunicación cuyo objetivo es facilitar el trabajo entre los distintos equipos del proyecto. Actividades integradas

Más detalles

Introducción En los años 60 s y 70 s cuando se comenzaron a utilizar recursos de tecnología de información, no existía la computación personal, sino que en grandes centros de cómputo se realizaban todas

Más detalles

Análisis y cuantificación del Riesgo

Análisis y cuantificación del Riesgo Análisis y cuantificación del Riesgo 1 Qué es el análisis del Riesgo? 2. Métodos M de Análisis de riesgos 3. Método M de Montecarlo 4. Modelo de Análisis de Riesgos 5. Qué pasos de deben seguir para el

Más detalles

CAPÍTULO 3 Servidor de Modelo de Usuario

CAPÍTULO 3 Servidor de Modelo de Usuario CAPÍTULO 3 Servidor de Modelo de Usuario Para el desarrollo del modelado del estudiante se utilizó el servidor de modelo de usuario desarrollado en la Universidad de las Américas Puebla por Rosa G. Paredes

Más detalles

UNIVERSIDAD DE SALAMANCA

UNIVERSIDAD DE SALAMANCA UNIVERSIDAD DE SALAMANCA FACULTAD DE CIENCIAS INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Resumen del trabajo práctico realizado para la superación de la asignatura Proyecto Fin de Carrera. TÍTULO SISTEMA

Más detalles

Soluciones Informáticas para Teoría de Restricciones (TOC)

Soluciones Informáticas para Teoría de Restricciones (TOC) Soluciones Informáticas para Teoría de Restricciones (TOC) KADI SOFTWARE 2 KADI SOFTWARE Los módulos de KADI SOFTWARE, fueron diseñados para capturar y usar información critica para mejorar el desempeño

Más detalles

El Sudoku de la Planificación de la Producción

El Sudoku de la Planificación de la Producción Mejoras a la planificación y secuenciación de órdenes en SAP ECC El Sudoku de la Planificación de la Producción La planificación en las empresas es un proceso por el cual cada uno de los departamentos

Más detalles

DISEÑO DE FUNCIONES (TRATAMIENTOS)

DISEÑO DE FUNCIONES (TRATAMIENTOS) DISEÑO DE FUNCIONES (TRATAMIENTOS) Diseño Estructurado. Estrategias para Derivar el Diagrama de Estructura. Diseño de Módulos Programables. 1. DISEÑO ESTRUCTURADO El Diseño es el proceso por el cual se

Más detalles

SISTEMAS Y MANUALES DE LA CALIDAD

SISTEMAS Y MANUALES DE LA CALIDAD SISTEMAS Y MANUALES DE LA CALIDAD NORMATIVAS SOBRE SISTEMAS DE CALIDAD Introducción La experiencia de algunos sectores industriales que por las características particulares de sus productos tenían necesidad

Más detalles

Business Process Management(BPM)

Business Process Management(BPM) Universidad Inca Garcilaso de la Vega CURSO DE ACTUALIZACIÓN PROFESIONAL DE INGENIERÍA DE SISTEMAS Y CÓMPUTO Business Process Management(BPM) MSc. Daniel Alejandro Yucra Sotomayor E-mail: daniel@agenciati.com

Más detalles

Plataforma inteligente de gestión dinámica de flujos de tráfico. Universidad de Málaga Lynka

Plataforma inteligente de gestión dinámica de flujos de tráfico. Universidad de Málaga Lynka Plataforma inteligente de gestión dinámica de flujos de tráfico Universidad de Málaga Lynka 1 2 Plataforma inteligente de gestión dinámica de flujos de tráfico 3 Agencia de Obra Pública de la Junta de

Más detalles

H E R R A M I E N T A S D E A N Á L I S I S D E D A T O S HERRAMIENTAS DE ANÁLISIS DE DATOS

H E R R A M I E N T A S D E A N Á L I S I S D E D A T O S HERRAMIENTAS DE ANÁLISIS DE DATOS H E R R A M I E N T A S D E A N Á L I S I S D E D A T O S HERRAMIENTAS DE ANÁLISIS DE DATOS Una situación que se nos plantea algunas veces es la de resolver un problema hacia atrás, esto es, encontrar

Más detalles

Aplicación de la inteligencia artificial a la resolución del problema de asignación de estudiantes del departamento de PDI

Aplicación de la inteligencia artificial a la resolución del problema de asignación de estudiantes del departamento de PDI Aplicación de la inteligencia artificial a la resolución del problema de asignación de estudiantes del departamento de PDI Ricardo Köller Jemio Departamento de Ciencias Exactas e Ingeniería, Universidad

Más detalles

Convalidación del Real Decreto-Ley 22/2012, de 20 de julio. Madrid, 24 de julio de 2012 (Ministerio de Fomento).

Convalidación del Real Decreto-Ley 22/2012, de 20 de julio. Madrid, 24 de julio de 2012 (Ministerio de Fomento). Convalidación del Real Decreto-Ley 22/2012, de 20 de julio Pastor asegura que el objetivo de la reforma es que el transporte ferroviario sea eficiente, sostenible y de calidad Entre los propósitos de esta

Más detalles

Guía de Planificación Estratégica de la Informática Educativa

Guía de Planificación Estratégica de la Informática Educativa Cierre de Brecha Digital Guía de Planificación Estratégica de la Informática Educativa Dirigida al Sostenedor y al Establecimiento Educacional Estimado Sostenedor y Director, El Ministerio de Educación

Más detalles

Curso de MS Project. Objetivo

Curso de MS Project. Objetivo Curso de MS Project El objetivo de este curso es otorgar al alumno de la formación necesaria que le permita elaborar un plan y un proyecto ayudado del programa Microsoft Project, conociendo con detalle

Más detalles

NORMA INTERNACIONAL DE AUDITORÍA 520 PROCEDIMIENTOS ANALÍTICOS

NORMA INTERNACIONAL DE AUDITORÍA 520 PROCEDIMIENTOS ANALÍTICOS NORMA INTERNACIONAL DE AUDITORÍA 520 PROCEDIMIENTOS ANALÍTICOS (NIA-ES 520) (adaptada para su aplicación en España mediante Resolución del Instituto de Contabilidad y Auditoría de Cuentas, de 15 de octubre

Más detalles

4. METODOLOGÍA. 4.1 Materiales. 4.1.1 Equipo

4. METODOLOGÍA. 4.1 Materiales. 4.1.1 Equipo 4. METODOLOGÍA 4.1 Materiales 4.1.1 Equipo Equipo de cómputo. Para el empleo del la metodología HAZOP se requiere de un equipo de cómputo con interfase Windows 98 o más reciente con procesador Pentium

Más detalles