algoritmos de planificación basados en restricciones para ... · a mi familia por estar siempre...

97
Algoritmos de planificación basados en restricciones para la sustitución de componentes defectuosos Irene Barba Rodríguez, 48861238S [email protected] Supervised by Prof. Dr. Carmelo del Valle Sevillano Thesis project submitted to the Department of Computer Languages and Systems of the University of Sevilla in partial fulfilment of the requirements for the degree of Ph.D. in Computer Engineering. (Research report)

Upload: duongnhu

Post on 07-May-2019

217 views

Category:

Documents


0 download

TRANSCRIPT

Algoritmos de planificación basados enrestricciones para la sustitución de componentes

defectuososIrene Barba Rodríguez, 48861238S

[email protected]

Supervised by Prof. Dr. Carmelo del Valle Sevillano

Thesis project submitted to the Department of Computer Languagesand Systems of the University of Sevilla in partial fulfilment

of the requirements for the degree of Ph.D. in Computer Engineering.(Research report)

Índice general

1. Introducción 31.1. Estado del arte de los temas estudiados . . . . . . . . . . . . . . . . . . . . 3

1.1.1. Programación con restricciones . . . . . . . . . . . . . . . . . . . 41.1.2. Scheduling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.1.3. Planificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.1.4. Planes de mantenimiento y reparación de sistemas . . . . . . . . . 5

1.2. Nuestras propuestas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.2.1. Un Modelado CSP para Planes de Reparación. . . . . . . . . . . . 51.2.2. Un Modelado del JSSP para Búsqueda Local Basada en Restric-

ciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2. Hipótesis y objetivos 72.1. Hipótesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.2. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

3. Trabajo relacionado 93.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93.2. Programación con Restricciones . . . . . . . . . . . . . . . . . . . . . . . 10

3.2.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103.2.2. Modelado del Problema como un CSP . . . . . . . . . . . . . . . . 103.2.3. Resolución del CSP . . . . . . . . . . . . . . . . . . . . . . . . . 12

Algoritmos de búsqueda . . . . . . . . . . . . . . . . . . . . . . . 12Técnicas de consistencia . . . . . . . . . . . . . . . . . . . . . . . 14Técnicas híbridas . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.2.4. Heurísticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18Ordenación de variables . . . . . . . . . . . . . . . . . . . . . . . 18Ordenación de valores . . . . . . . . . . . . . . . . . . . . . . . . 19

3.2.5. CSP Temporales . . . . . . . . . . . . . . . . . . . . . . . . . . . 19Razonamiento temporal cualitativo . . . . . . . . . . . . . . . . . 19Razonamiento temporal métrico . . . . . . . . . . . . . . . . . . . 20Combinación de razonamientos cualitativo y métrico . . . . . . . . 21Algoritmos eficientes para CSPs temporales . . . . . . . . . . . . . 21

3.3. Scheduling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.3.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.3.2. Definición del Job Shop Scheduling Problem . . . . . . . . . . . . 23

Grafo disyuntivo . . . . . . . . . . . . . . . . . . . . . . . . . . . 23Funciones objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.3.3. Camino Crítico . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.3.4. Programación matemática . . . . . . . . . . . . . . . . . . . . . . 263.3.5. Heurística basada en cuellos de botella (Shifting Bottleneck Heuris-

tic) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.3.6. Programación con restricciones . . . . . . . . . . . . . . . . . . . 28

I

II ÍNDICE GENERAL

3.3.7. Métodos heurísticos . . . . . . . . . . . . . . . . . . . . . . . . . 29Reglas de prioridad básicas . . . . . . . . . . . . . . . . . . . . . . 29Beam Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.4. Planificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323.4.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323.4.2. Classical Planning . . . . . . . . . . . . . . . . . . . . . . . . . . 32

Representación . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32Técnicas de resolución . . . . . . . . . . . . . . . . . . . . . . . . 33

3.4.3. HTN Planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353.4.4. Procesos de Decisión de Markov . . . . . . . . . . . . . . . . . . . 363.4.5. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

3.5. Planificación del mantenimiento y la reparación de sistemas . . . . . . . . 393.5.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393.5.2. Mantenimiento de sistemas . . . . . . . . . . . . . . . . . . . . . . 40

Mantenimiento preventivo . . . . . . . . . . . . . . . . . . . . . . 40Sustitución/reparación de componentes defectuosos . . . . . . . . . 42Diagnosis basada en modelos . . . . . . . . . . . . . . . . . . . . 43

3.5.3. Planificación del proceso de desconexión y recomposición del sis-tema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

3.5.4. Representación mediante grafos And/Or . . . . . . . . . . . . . . . 443.5.5. Métodos de programación matemática . . . . . . . . . . . . . . . . 463.5.6. Planificadores adaptables . . . . . . . . . . . . . . . . . . . . . . . 473.5.7. Métodos de Inteligencia Artificial . . . . . . . . . . . . . . . . . . 483.5.8. Redes de Petri . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483.5.9. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

3.6. Un Modelado CSP para Planes de Reparación . . . . . . . . . . . . . . . . 503.6.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503.6.2. El problema de la planificación en reparación . . . . . . . . . . . . 513.6.3. El modelado CSP . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

Variables del CSP . . . . . . . . . . . . . . . . . . . . . . . . . . . 54El grafo And/Or extendido . . . . . . . . . . . . . . . . . . . . . . 56Tipos de restricciones . . . . . . . . . . . . . . . . . . . . . . . . . 59

3.6.4. Resultados experimentales . . . . . . . . . . . . . . . . . . . . . . 623.6.5. Conclusiones y trabajo futuro . . . . . . . . . . . . . . . . . . . . 62

3.7. Un Modelado del JSSP para Búsqueda Local Basada en Restricciones . . . 643.7.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 643.7.2. Definición del Problema . . . . . . . . . . . . . . . . . . . . . . . 643.7.3. Búsqueda Local Basada en Restricciones . . . . . . . . . . . . . . 653.7.4. Nuestra Propuesta . . . . . . . . . . . . . . . . . . . . . . . . . . 65

El Modelado CSP . . . . . . . . . . . . . . . . . . . . . . . . . . . 65Detección de Ciclos . . . . . . . . . . . . . . . . . . . . . . . . . 67Vecindarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69El algoritmo parametrizado . . . . . . . . . . . . . . . . . . . . . . 72

3.7.5. Resultados Experimentales . . . . . . . . . . . . . . . . . . . . . . 733.7.6. Conclusiones y Trabajo Futuro . . . . . . . . . . . . . . . . . . . . 74

4. Conclusiones 794.1. Conclusiones obtenidas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 794.2. Trabajo futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

Índice de figuras

3.1. Problema de coloración del mapa . . . . . . . . . . . . . . . . . . . . . . . 113.2. Un grafo disyuntivo para problemas Job Shop . . . . . . . . . . . . . . . . 243.3. Ratio de ocurrencia de fallos en un sistema ROCOF . . . . . . . . . . . . . 413.4. Diagrama de las etapas para la sustitución/reparación de componentes de-

fectuosos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423.5. El grafo And/Or para el sistema ABCDE . . . . . . . . . . . . . . . . . . . 453.6. Red de Petri que representa una operación elemental de desconexión (a)

antes de la ejecución de la acción y (b) después de la ejecución de la acción 493.7. El grafo And/Or de ensamblaje para el sistema ABCDE . . . . . . . . . . . 523.8. El grafo And/Or simplificado de desensamblaje para el sistema ABCDE

cuando la pieza defectuosa es D . . . . . . . . . . . . . . . . . . . . . . . 543.9. El grafo And/Or simplificado de reparación para el sistema ABCDE cuan-

do la pieza defectuosa es D . . . . . . . . . . . . . . . . . . . . . . . . . . 553.10. El grafo And/Or de reparación extendido y simplificado para la sustitución

de la pieza D en el producto ABCDE cuando se consideran todos los planesde desensamblaje posibles . . . . . . . . . . . . . . . . . . . . . . . . . . 57

3.11. El grafo And/Or de reparación extendido y simplificado para la sustituciónde la pieza D en el producto ABCDE cuando se considera un solo plan dedesensamblaje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

3.12. Un grafo disyuntivo para el problema Job Shop. . . . . . . . . . . . . . . . 653.13. Ejemplo de una solución satisfactible . . . . . . . . . . . . . . . . . . . . . 673.14. Ejemplos de ciclos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 683.15. Un ciclo en un grafo disyuntivo . . . . . . . . . . . . . . . . . . . . . . . . 683.16. Casos para la prueba del teorema 1 . . . . . . . . . . . . . . . . . . . . . . 703.17. Intercambios posibles para una variable v . . . . . . . . . . . . . . . . . . 713.18. Intercambios permitidos para δ = 2 . . . . . . . . . . . . . . . . . . . . . 713.19. Intercambio entre variables . . . . . . . . . . . . . . . . . . . . . . . . . . 723.20. El algoritmo de búsqueda local parametrizado . . . . . . . . . . . . . . . . 73

III

IV ÍNDICE DE FIGURAS

Índice de cuadros

3.1. Matriz de transición para el grafo And/Or de la figura 3.5 . . . . . . . . . . 463.2. Número de nodos And/Or y planes para cada problema . . . . . . . . . . . 543.3. Conjunto de restricciones de tipo (1) para el grafo And/Or de reparación de

la figura 3.10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603.4. Conjunto de restricciones de tipos (2) y (3) para el grafo And/Or de repa-

ración de la figura 3.10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 753.5. Conjunto de restricciones de tipo (4) para el grafo And/Or de reparación de

la figura 3.10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763.6. Conjunto de restricciones de tipo (5) para el grafo And/Or de reparación de

la figura 3.10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763.7. Conjunto de restricciones de tipo (6) para el grafo And/Or de reparación de

la figura 3.10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763.8. Resultados Comparativos (cualidad de las soluciones) . . . . . . . . . . . . 763.9. Resultados comparativos (tiempo de ejecución) . . . . . . . . . . . . . . . 773.10. Resultados sobre un conjunto de instancias JSS . . . . . . . . . . . . . . . 78

V

VI ÍNDICE DE CUADROS

Agradecimientos

En primer lugar quiero agradecer a Carmelo su buena disposición, paciencia y apoyoen todo momento, sin el cual este trabajo no hubiera sido posible.

A mi familia por estar siempre ahí cuando los necesito, en especial a mis padres, a Dani,a Josefi, y a mis tres niños Rocío, Sara y Dani JR, que consiguen siempre sacar lo mejor demí.

Dar las gracias también a mis amigos por su compañía y comprensión, en especial aDiana y a Javi por brindarme tan buenos momentos y hacer del trabajo una diversión.

Por último, y no por ello menos importante, a Rafa, gracias por hacerme la vida másfácil y agradable cada día.

VII

VIII ÍNDICE DE CUADROS

Abstract

En la sociedad actual existe un ritmo incesante de producción y trabajo cuyo correctofuncionamiento depende en gran medida de la coordinación compleja de personal y sis-temas de diversos tipos. Un fallo en cualquiera de ellos puede dar lugar a grandes pérdidasde distinta naturaleza, por lo que el tiempo de reacción ante un error es un factor funda-mental a tener en cuenta en cualquier sistema.

En el presente trabajo se consideran sistemas formados por un conjunto de compo-nentes que pueden fallar de forma inesperada. Una vez realizada la diagnosis de un sistemay determinados los componentes defectuosos, es necesario proceder a su reparación o susti-tución. Para ello es preciso realizar el desmontaje del sistema hasta aislar los componentesdefectuosos, y tras su sustitución o reparación, la recomposición del mismo. Aunque puedeparecer que los procesos de separación y composición de sistemas son muy similares, susdiferencias físicas y operativas hacen que deban considerarse por separado. La planifica-ción del desensamblado ha ganado mucha atención en los últimos años debido a su papelen la recuperación de productos, como la remanufactura y el reciclado de productos.

Un objetivo a perseguir es que el proceso global de reparación sea óptimo, escogiéndosela secuencia de tareas más adecuada. Planteado el problema de la selección de secuenciasde separación y recomposición como un problema conjunto de planificación y scheduling,en el que hay que determinar por un lado el conjunto de tareas que componen la soluciónóptima dentro de un conjunto de tareas alternativas, y por otro la determinación de lostiempos de ejecución de las mismas, se han usado diferentes técnicas para resolverlo. Enla última década se han realizado importantes avances en la resolución de problemas descheduling mediante técnicas de satisfacción de restricciones, modelando el problema apartir de redes de restricciones temporales, y en menor medida, incluyendo la posibilidadde selección de tareas a partir de un conjunto de alternativas posibles.

El presente documento es el resultado de un estudio detallado de las áreas relacionadascon el tema que nos ocupa, incluyendo Programación con Restricciones, Scheduling, Plani-ficación, y Planes de Mantenimiento y Reparación de Sistemas. Como fruto de este estudiose han realizado dos artículos que han sido publicados y a los que se les dedica dos sec-ciones. Para terminar, se incluye un capítulo que contiene las conclusiones obtenidas tras elestudio realizado y algunas ideas consideradas interesantes para la realización de trabajosfuturos.

1

2 ÍNDICE DE CUADROS

Capítulo 1

Introducción

La motivación principal del presente trabajo es la realización de un estudio en profundi-dad de varios campos relacionados con el tema que nos ocupa: la generación de algoritmosde planificación para la sustitución o reparación de componentes defectuosos, optimizandoen general alguna o algunas funciones objetivo. Para la propuesta de dichos algoritmos, sepropone la programación con restricciones, que es un paradigma ampliamente estudiadoque se presenta en la sección 3.2. Dicho paradigma es adecuado para modelar y resolvereste tipo de problemas dada la flexibilidad y simplicidad que ofrece. En problemas de pla-nificación existen dos grandes áreas, denominadas scheduling (sección 3.3) y planificación(sección 3.4), que se combinan en muchos casos, entre ellos en el problema de la sustituciónde componentes defectuosos. Por otro lado, para disminuir la probabilidad de ocurrenciade errores, es importante realizar tareas de mantenimiento del sistema durante su tiempo devida, idea que se expone en la sección 3.5.

Además del presente capítulo de introducción, el presente trabajo consta de otros 3capítulos que se exponen a continuación:

Hipótesis y objetivos: Se establece como hipótesis de partida la adecuada combi-nación de varias áreas para conseguir así los objetivos que se persiguen.

Trabajo relacionado: Engloba el estado del arte de las áreas de investigación rela-cionadas con el presente trabajo, incluyendo los aspectos y los trabajos más rele-vantes de cada una de ellas. También incluye la descripción de los trabajos realizadosy que han sido publicados.

Conclusiones: Se realiza una valoración del trabajo realizado, exponiendo un re-sumen de las conclusiones obtenidas. También se detallan algunas ideas que se con-sideran interesantes para la realización de trabajos futuros.

El capítulo 3 es el más extenso, por lo que se considera adecuado presentar brevementeel contenido de cada una de las secciones que lo componen, las cuales se pueden englobaren 2 grandes bloques: Estado del arte de los temas estudiados y Nuestras propuestas.

1.1. Estado del arte de los temas estudiadosCuando se desea realizar un trabajo de investigación, es fundamental el estudio del

estado del arte de los temas relacionados. Gracias a ello, conseguimos la formación ade-cuada, podemos conocer las debilidades y fortalezas de otros trabajos, reutilizar ideas quenos ayuden en nuestra investigación, etc.

En los siguientes apartados se presenta brevemente el contenido de cada uno de lostemas desarrollados.

3

4 CAPÍTULO 1. INTRODUCCIÓN

1.1.1. Programación con restricciones

La programación con restricciones es una tecnología ampliamente utilizada en la reso-lución de multitud de problemas de diversas áreas, incluyendo problemas de planificacióny scheduling.

En la programación con restricciones se consideran básicamente dos tipos de proble-mas: problemas de satisfacción de restricciones (Constraint Satisfaction Problem, CSP) yproblemas de optimización (Constraint Optimization Problem, COP). En CSPs, la soluciónse obtiene cuando de consigue una asignación de valores a las variables que cumple todaslas restricciones, mientras en COPs se busca además que optimice una determinada funciónobjetivo.

La resolución de un problema mediante programación con restricciones consta de dosetapas claramente diferenciadas. En primer lugar es necesario realizar el modelado delproblema, fase en la que se definen las variables, el dominio para cada una de ellas y lasrestricciones que las relacionan. Esta fase es muy importante puesto que, en general, tieneuna gran influencia en la bondad de la solución obtenida y en el coste necesario para suobtención.

Una vez modelado el problema, la segunda etapa consiste en aplicar algún mecanismode resolución para conseguir la solución requerida. Existen multitud de estrategias, la ma-yoría de las cuales se pueden englobar en algoritmos de búsqueda, técnicas de consistenciay técnicas híbridas. En la sección 3.2 se detallan los aspectos más relevantes de cada unade ellas, destacando las ventajas e inconvenientes y el marco más adecuado de aplicación.

Como último apartado se describen brevemente los CSP temporales, que se consideraninteresantes desde el punto de vista de problemas de planificación y scheduling y, por lotanto, para el presente trabajo.

1.1.2. Scheduling

El área denominada Scheduling engloba a multitud de problemas en los que es nece-sario determinar un plan de ejecución para un conjunto de tareas, que pueden estar rela-cionadas entre sí por restricciones de precedencia. Por otro lado, la ejecución de cada tareaestá vinculada al uso de uno o varios recursos, de forma que varias tareas pueden entraren conflicto por el uso compartido de recursos. De esta forma, la resolución del problemaconsiste en obtener un plan de ejecución que, satisfaciendo tanto las restricciones de prece-dencia como las de recursos, optimice alguna función objetivo, que suele estar relacionadacon el tiempo. En la mayoría de los casos esta función objetivo es el makespan o tiempo definalización de la última operación realizada.

El Job Shop Scheduling Problem (JSSP) es un problema concreto de Scheduling enel que las tareas están agrupadas por trabajos, que son los que establecen las relacionesde precedencia. Cada trabajo está formado por una secuencia de tareas, de forma que unatarea no puede comenzar hasta que no haya finalizado la ejecución de su predecesora. Otraparticularidad de este tipo de problemas es que para la ejecución de cada tarea se necesitaun solo recurso.

Una vez que se obtiene un plan para un JSSP, si se desea minimizar el makespan, elanálisis del camino crítico (sección 3.3.3) es fundamental para obtener gran cantidad deinformación acerca de las operaciones (holgura, etc) y, por tanto, de los cambios promete-dores que se deben realizar para conseguir el objetivo perseguido.

Existen multitud de propuestas para resolver el JJSP. Entre las más conocidas y refe-renciadas se encuentran: programación disyuntiva, heurísticas basadas en cuello de botella,programación con restricciones y métodos heurísticos, las cuales de exponen en la sección3.3.

1.2. NUESTRAS PROPUESTAS 5

1.1.3. PlanificaciónLa resolución de un problema de planificación lleva asociado, en general, la generación

de una secuencia de tareas cuya ejecución da lugar a la obtención de un objetivo perseguido.En la mayoría de los casos se parte de un estado inicial, y se establece como objetivo unestado final. Para cambiar de un estado a otro se cuenta con un conjunto de operacionesque hacen que el sistema vaya evolucionando a medida que se realizan dichas operaciones.Para resolver este tipo de problemas es necesario la selección de las operaciones correctasen el orden adecuado.

Existen ciertos problemas en los que se persigue además la optimización de algunafunción objetivo, de forma que existen varias alternativas para llegar al estado final y sedebe seleccionar la que dé lugar al plan óptimo.

En la sección 3.4 se detallan algunos tipos de problemas de planificación consideradosrelevantes, incluyendo Classical Planning y técnicas basadas en Hierarchical Task Net-work. También se incluyen técnicas de Procesos de Decisión de Markov, que pueden serutilizadas para modelar y resolver problemas de planificación. Por último, se resumen al-gunas conclusiones que incluyen una breve descripción de problemas que engloban tantoplanificación como scheduling.

1.1.4. Planes de mantenimiento y reparación de sistemasDurante el tiempo de vida de un sistema, pueden ocurrir errores en su funcionamiento

debido a muchos factores, entre los que se encuentran el deterioro de los subsistemas quelo componen. Una estrategia utilizada para ralentizar dicho deterioro consiste en llevar acabo un plan de mantenimiento preventivo que conlleva la ejecución de distintas tareas,tales como limpieza, supervisión, ajustes, etc. Este plan de mantenimiento, en general,lleva asociado un coste temporal y económico que debe ser compensado con la reduccióndel coste por errores, por lo que es necesario encontrar un balance adecuado entre tareas deproducción y tareas de mantenimiento del sistema.

Por otro lado, una vez que se detecta un error en uno de los componentes del sistema,es necesario proceder a su reparación o sustitución. Para llevar esto a cabo, en primerlugar se requiere el aislamiento del componente defectuoso, lo que necesita un plan dedesensamblaje adecuado, en el que generalmente se buscará la optimización de factorescomo el tiempo, el coste, etc. Una vez el componente es reparado o sustituido, se pasa a laetapa de conexión para conseguir nuevamente el sistema en buen estado.

En la sección 3.5 se aborda el problema del mantenimiento de sistemas, centrado enla planificación de las etapas de desconexión y recomposición del sistema cuando se de-tecta un error. Se describen aspectos relacionados con dichas etapas, tales como los grafosAnd/Or para la representación de todas las secuencias posibles de tareas de desconexión/recomposición, algunos métodos de programación matemática y de inteligencia artificialpara obtener el plan de desnsamblaje que optimice alguna función objetivo, etc. Al final dela sección se presentan algunas conclusiones acerca de los trabajos relacionados realizadosy las líneas que se consideran prometedoras para trabajos futuros.

1.2. Nuestras propuestasEn esta sección se presentan dos trabajos realizados que están íntimamente relacionados

con el tema central del presente trabajo.

1.2.1. Un Modelado CSP para Planes de Reparación.En la sección 3.6 se describe uno de los trabajos realizados que ha sido publicado en la

revista Journal of Intelligent Manufacturing [109]. Se propone un modelado CSP y un

6 CAPÍTULO 1. INTRODUCCIÓN

mecanismo de resolución para el problema de la planificación del proceso de reparación deun componente defectuoso, que ha sido previamente detectado.

El sistema se considera formado por un conjunto de componentes, y se cuenta conuna serie de máquinas para realizar las tareas, cada una de las cuales puede trabajar condiversas configuraciones, requiere un tiempo de ejecución, y actúa sobre unos submontajesconcretos. Se considera tanto el proceso de desensamblaje para aislar la pieza defectuosa,como el proceso de ensamblaje para dar lugar al producto completo. Ambas etapas serepresentan mediante un grafo And/Or en el que es posible observar las secuencias posiblesde tareas que formarán el plan de reparación.

El objetivo perseguido es la obtención de un plan de reparación que optimice el tiempode ejecución, teniendo en cuenta las restricciones de precedencia y de recursos compar-tidos. En el problema propuesto se consideran operaciones auxiliares, tales como cambiosen la configuración de una máquina y transportes de los subensamblajes de una máquina aotra. Todo esto se engloba en el modelado CSP propuesto.

Para obtener el plan óptimo es necesario tanto seleccionar las tareas necesarias (plani-ficación) como ordenarlas, resolviendo los conflictos que puedan surgir por el uso compar-tido de recursos (scheduling).

Para evaluar la propuesta se presentan algunos resultados experimentales en los quese realiza una comparativa del método propuesto con un planificador genérico y con unalgoritmo realizado en un trabajo previo.

1.2.2. Un Modelado del JSSP para Búsqueda Local Basada en Res-tricciones.

Este trabajo ha sido presentado en el workshop internacional Iberamia 2008 Work-shop on Planning, Scheduling and Constraint Satisfaction [9]. Se aborda el Job ShopScheduling Problem (JSSP), que es un problema de Scheduling en el que las tareas se en-cuentran agrupadas en trabajos, que son los que establecen las relaciones de precedencia.Un trabajo está formado por una secuencia de tareas que deben ejecutarse en un ordenestablecido, de forma que la ejecución de una tarea no puede comenzar hasta que su prede-cesora haya terminado. Por otro lado, se cuenta con un conjunto de recursos compartidosque deben ser gestionados convenientemente para una correcta ejecución de las operacio-nes, al mismo tiempo que se debe minimizar el makespan o tiempo de finalización delproyecto completo.

Se presenta un modelado CSP simple y compacto, el cual permite trabajar con todaslas restricciones del problema usando sólo dos tipos de relaciones, alldifferent e increasing.Para resolver el CSP se propone un algoritmo de búsqueda local que en cada iteraciónintenta mejorar el resultado actual.

Por último, se exponen algunos resultados experimentales, que incluyen comparativasentre la propuesta realizada y uno de los mejores métodos para resolución de JSSP conoci-dos.

Capítulo 2

Hipótesis y objetivos

2.1. Hipótesis

Los trabajos de investigación que se plantean a partir del presente documento, se basanprincipalmente en la combinación de varias áreas de investigación muy referenciadas yexploradas individualmente, que engloban multitud de trabajos relevantes y prometedoresque presentan, en general, resultados válidos y ampliables.

En el presente trabajo se considera un sistema formado por un conjunto de compo-nentes relacionados de alguna forma: dependencia económica, estructural o estocástica.Cuando se detecta un comportamiento anómalo del sistema y se diagnostica el/los compo-nente/s defectuoso/s, es necesario proceder a la reparación o sustitución de los mismos. Enprimer lugar, se procede al aislamiento del componente defectuoso mediante operacionesde desconexión, tras lo cual se repara o sustituye dicho componente. A continuación esnecesario volver a conectar los componentes para dar lugar al sistema completo funcio-nando correctamente. En general, se persigue realizar todo el proceso optimizando algunafunción objetivo, como el tiempo de ejecución del plan resultante. Para dar lugar al objeti-vo perseguido, en la mayoría de los casos, es necesario analizar un conjunto de tareas queactúan sobre los componentes del sistema.

Dicho análisis engloba el estudio de multitud de factores de forma conjunta: por un ladoes necesario seleccionar un conjunto de tareas, de entre todas las posibles, que den lugaral objetivo perseguido (planificación), por otro lado, en general, dichas tareas realizarán unuso compartido de recursos, lo que puede dar lugar a que dos o más tareas requieran elmismo recurso al mismo tiempo, siendo necesario determinar el orden de ejecución de lamismas (scheduling).

Existen multitud de propuestas para resolver problemas de planificación, problemas descheduling, y problemas que engloban ambas áreas. En el siguiente capítulo, más concre-tamente en las secciones 3.3 y 3.4, se realiza un estudio que se considera adecuado acercade ambos paradigmas.

Por otra parte, la programación con restricciones es una tecnología ampliamente utiliza-da para resolver problemas de distinta naturaleza, incluyendo problemas de planificación yscheduling. Es por ello que en el siguiente capítulo, más concretamente en la sección 3.2,se realiza un estudio acerca de dicha tecnología y sus aplicaciones.

Es importante destacar que el mantenimiento de un sistema es un aspecto fundamentalpara el correcto funcionamiento del mismo. Dicho mantenimiento engloba tanto planes demantenimiento enfocados a la disminución de la probabilidad de error, como planes dereparación una vez que un error es detectado, aspectos que se abordan en la sección 3.5 delsiguiente capítulo.

El objetivo fundamental de este trabajo es realizar un estudio amplio y adecuado queproporcione información suficiente para ser capaces de proponer, de forma satisfactoria,

7

8 CAPÍTULO 2. HIPÓTESIS Y OBJETIVOS

algoritmos de planificación basados en restricciones para la sustitución de componentesdefectuosos.

Se establece como base de la investigación (hipótesis) la creencia (fundamentada teóri-camente) de que es posible conseguir resultados competitivos y prometedores para el man-tenimiento y la reparación de sistemas a partir de modelos y algoritmos basados en restric-ciones adecuados para el problema. Se pretende abordar dicho problema minimizando, engeneral, una o varias funciones objetivos.

Es importante resaltar que ya se han realizado estudios relacionados consiguiendo re-sultados prometedores (algunos de ellos comentados en las secciones 3.6 y 3.7 del siguientecapítulo), lo que apoya la hipótesis de partida.

2.2. ObjetivosA partir del estudio realizado en el presente trabajo se pueden plantear multitud de pro-

puestas de diversa naturaleza acerca de los temas analizados, incluyendo trabajos acerca deaspectos del mantenimiento y la reparación de sistemas que no han sido estudiados previ-amente, o no han sido analizados en profundidad.Teniendo en cuenta esto, nos planteamosla persecución de los siguientes objetivos:

Proponer diversos modelados CSP y enfoques algorítmicos para resolver de formaeficiente el problema de la reparación o sustitución de componentes defectuosos.

Realizar un estudio acerca de distintas funciones objetivo que se pueden perseguir deforma individual o combinada (multiobjetivo) en la generación de un plan de repa-ración para un sistema. Algunas funciones objetivo consideradas relevantes en esteámbito son: minimizar el tiempo de cese del funcionamiento del sistema, minimizarel tiempo de reparación/sustitución de un componente defectuoso, minimizar costes,maximizar la productividad del sistema, etc.

Plantear trabajos que aborden la robustez de los planes generados (capacidad de unplan para asimilar eventos inesperados que puedan ocurrir durante su ejecución),incluyendo la robustez como una función objetivo añadida que puede entrar en con-flicto con otros objetivos, como el tiempo de ejecución, en cuyo caso habrá quedeterminar el grado de importancia de cada uno de ellos para conseguir un equilibrioadecuado.

Abordar el tema del mantenimiento de sistemas como medida de prevención de erro-res (mantenimiento preventivo), integrando la ejecución de tareas de mantenimientoy de producción, persiguiendo, en general, optimizar alguna función objetivo.

A partir de la hipótesis de partida, se pretenden conseguir los objetivos comentadospreviamente, siendo el presente trabajo el primer paso hacia la persecución de los mismos.

Capítulo 3

Trabajo relacionado

3.1. IntroducciónEn el presente capítulo se presenta el trabajo ya realizado en relación con el tema de

investigación descrito en la introducción, abarcando tanto las propuestas propias como lasrealizadas por otros investigadores. Se divide en dos grandes bloques:

Estudio del estado del arte de los temas relacionados con el tema de investigación delpresente trabajo, incluyendo los apartados: Programación con Restricciones (sección3.2), Scheduling (sección 3.3), Planificación (sección 3.4), y Planes de mantenimien-to y reparación de sistemas (sección 3.5).

Presentación de los trabajos propios realizados y que están íntimamente relacionadoscon el tema central del presente trabajo, incluyendo los siguientes apartados: UnModelado CSP para Planes de Reparación (sección 3.6) y Un Modelado del JSSPpara Búsqueda Local Basada en Restricciones (sección 3.7).

9

10 CAPÍTULO 3. TRABAJO RELACIONADO

3.2. Programación con Restricciones

3.2.1. Introducción

La programación con restricciones (Constraint Programming, CP) es una tecnologíasoftware que se utiliza para modelar y resolver gran cantidad de problemas de diversanaturaleza y que persiguen objetivos diferentes [27, 46]. Existen multitud de trabajos rela-cionados con dicha tecnología que comprenden distintas áreas, entre las que se encuentranparte de la inteligencia artificial, la investigación operativa, las bases de datos o los sistemasexpertos.

La programación con restricciones se basa en el modelado de un problema a través deun conjunto de variables y restricciones que establecen relaciones ente ellas, para poste-riormente obtener una solución que satisfaga dichas restricciones. En el caso de problemasde optimización (Constraint Optimization Problem, COP) se persigue encontrar una solu-ción que, además de satisfacer las restricciones, optimice una determinada función obje-tivo. La complejidad de la resolución de un problema de satisfactibilidad es, en general,NP-completa, mientras que en el caso de problemas de optimización es NP-dura.

Para resolver un problema mediante programación con restricciones (Constraint Satis-faction Problem, CSP) el proceso se divide en dos etapas claramente diferenciadas:

1. Modelado del problema como un problema de satisfacción de restricciones, siendonecesaria la definición de variables, dominios para dichas variables y restriccionesque las relacionan.

2. Búsqueda de solución o soluciones al CSP modelado anteriormente. Esta etapa sepuede realizar haciendo uso de diversas estrategias, entre las que se encuentran algo-ritmos de búsqueda, técnicas de consistencia y técnicas híbridas.

La idea fundamental de la programación con restricciones es separar o desvincular elmodelado del problema de la resolución del mismo, de forma que el problema se especificacompletamente con un modelo claro, que se puede resolver siguiendo diversas estrategias.Todos estos conceptos serán desarrollados en los apartados posteriores.

Esta sección se organiza como sigue: en primer lugar (sección 3.2.2) se detallan losaspectos más importantes a tener en cuenta en la etapa de modelado del problema, seguidopor los métodos de resolución de CSP considerados más relevantes (sección 3.2.3). Encuanto a la búsqueda sistemática, en la etapa de búsqueda de soluciones para un CSP, esdeterminante el orden en el que se analizan las variables, así como los valores para cadauna de ellas, por lo que se dedica la sección 3.2.4 a la exposición de algunas heurísticastanto de ordenación de variables como de ordenación de valores. Para concluir, teniendoen cuenta el contexto en el que se realiza el presente trabajo, se describen brevemente losCSPs temporales, aplicables a la resolución de problemas de planificación y scheduling.

3.2.2. Modelado del Problema como un CSP

Como se ha comentado en la introducción, cuando se desea resolver un problema me-diante programación con restricciones, el primer paso es definir un modelado de restriccio-nes adecuado para dicho problema. Un mismo problema, en general, puede ser modeladode distintas formas. La elección de un modelado u otro es fundamental, ya que influye, enla mayoría de los casos, de manera determinante tanto en la estrategia a seguir durante labúsqueda de la solución, como en el tiempo de ejecución requerido en la obtención de lamisma.

El modelado CSP para un problema está formado por una terna (X ,D,C) donde:

X es el conjunto de variables CSP del problema, {x1, . . . , xn}, para n variables.

3.2. PROGRAMACIÓN CON RESTRICCIONES 11

D es el conjunto de los dominios de cada una de las variables, < D1, . . . , Dn >,siendo Di el dominio para la variable xi.

C es un conjunto finito de restricciones. Cada restricción Cj involucra a m variables(restricción m-aria, m≥ 1) y restringe el valor que pueden tomar dichas variables deforma simultánea.

De esta forma, una asignación de un valor para una variable es un par variable-valor(x, a), a ∈ Da (instanciación de una variable). Una solución para el CSP consiste en unaasignación de valores permitidos a cada una de las variables que forman parte del CSP deforma que se satisfagan todas las restricciones establecidas. Un problema es consistente siexiste, al menos, una solución satisfactible para el mismo.

Una vez modelado un problema como un CSP, se pueden perseguir diferentes objetivos,entre los que se encuentran:

Encontrar una solución cualquiera para el problema.

Encontrar algunas soluciones para el problema.

Encontrar todas las soluciones existentes para el problema.

Encontrar la solución óptima (o una buena solución) para el problema teniendo encuenta un criterio establecido a partir de una función objetivo (en la mayoría de loscasos conseguir una solución que minimice o maximice dicha función).

Encontrar las mejores soluciones para el problema según la función objetivo.

Un problema clásico que se puede modelar como un CSP es el denominado problemade coloración de un mapa. Dicho problema consiste en colorear un mapa que se encuentradividido en un conjunto de regiones, de forma que se debe asignar un color a cada una deellas. Hay que tener en cuenta que no pueden existir dos regiones colindantes con el mismocolor y que sólo se cuenta con un número determinado de colores. La formulación de dichoproblema como un CSP se realiza de forma que cada región es una variable del CSP, eldominio de cada una de las variables está formado por los colores permitidos, y las restric-ciones existentes establecen relaciones de desigualdad entre las variables que representana regiones colindantes. Un ejemplo para este problema se puede ver en la figura 3.1, dondese observa que el mapa está compuesto por 4 regiones y que los colores permitidos son 3,rojo (r), verde (v) y azul (a).

z

x y

w

x y

z w

{r,v,a} {r,v,a}

{r,v,a} {r,v,a}

Figura 3.1: Problema de coloración del mapa

12 CAPÍTULO 3. TRABAJO RELACIONADO

3.2.3. Resolución del CSPUna vez se ha realizado el modelado de un problema como un CSP, es necesario aplicar

algún mecanismo de resolución para conseguir la solución o soluciones requeridas. Existenmultitud de estrategias para llevar a cabo este cometido, la mayoría de las cuales se puedenenglobar en alguna de las siguientes técnicas:

Algoritmos de búsqueda. Se basan en la exploración del espacio de soluciones hastaencontrar una solución o probar que no existe tal solución. La búsqueda puede sercompleta si el recorrido del espacio de soluciones es sistemático, o incompleta enel caso de que se utilicen algoritmos de búsqueda local en los que sólo se exploranciertas regiones del espacio de soluciones.

Técnicas de consistencia. También se denominan técnicas de inferencia, y consis-ten en eliminar del dominio de las variables los valores inconsistentes. Una forma derealizar esto es evolucionando desde un problema P hacia un problema P ′ equiva-lente cuyo espacio de soluciones es menor, siendo por tanto más fácil de resolver.La inferencia puede ser completa si al final se llega a un problema P ′ que tiene unasolución directa, o incompleta si es necesario realizar una búsqueda para obtener lasolución.

Técnicas híbridas. Son técnicas que se basan en la búsqueda de la solución me-diante la combinación de algoritmos de búsqueda y técnicas de inferencia. Las com-binaciones búsqueda sistemática + inferencia incompleta y búsqueda sistemática +inferencia completa se comentarán en el apartado 3.2.3.

Algoritmos de búsqueda

Una de las formas más naturales de resolver un CSP es mediante la búsqueda en elespacio de estados del problema, que es el conjunto de todas las asignaciones posibles delas variables. Existen varias clasificaciones para los algoritmos de búsqueda. En el presentetrabajo se ha optado por la división en dos grandes bloques, algoritmos de búsqueda sis-temática y algoritmos de búsqueda local, aunque algunos autores distinguen entre búsquedacompleta e incompleta. Se detallan a continuación.

Búsqueda sistemática La búsqueda sistemática consiste en recorrer el espacio de estadoshasta que se encuentre una solución o se pruebe que no existe solución.

Las posibles combinaciones de la asignación de valores a las variables en un CSP da lu-gar a un espacio de estados que puede ser representado como un árbol o grafo de búsqueda.Cada nodo del árbol de búsqueda representa una asignación parcial de valores a un con-junto de variables. El nodo raíz del árbol de búsqueda representa el caso en el que ningunavariable se encuentra instanciada, y los nodos hojas el caso en el que todas las variables seencuentran instanciadas. Existen varios algoritmos de búsqueda sistemática, la mayoría delos cuales se basan en backtracking cronológico.

En Backtracking Cronológico se realiza un recorrido (parcial o completo) en profun-didad sobre el árbol, de forma que en cada uno de los nodos se comprueba si la asignaciónparcial realizada hasta el momento es consistente con todas las restricciones del CSP. Enel caso de que en un nodo no se detecte ninguna inconsistencia, prosigue la búsqueda enprofundidad. En cambio, si en un nodo se detecta alguna inconsistencia, se cambia el valorde la última variable que ha sido instanciada a otro valor no probado. En el caso que paradicha variable todos los valores den lugar a inconsistencia (situación sin salida o dead-end),se vuelve al nivel superior para proceder de la misma forma.

Si estamos buscando una solución cualquiera, el algoritmo termina cuando ha llegadoa un nodo hoja (solución completa), o bien cuando ha explorado todas las combinacionesposibles variable-valor sin éxito (no existe solución). En problemas de optimización, se

3.2. PROGRAMACIÓN CON RESTRICCIONES 13

suelen añadir restricciones que impliquen una mejora de la mejor solución obtenida hastael momento.

En el proceso de búsqueda, en general, el orden en el que se estudian las variables tieneuna gran influencia, así como el orden de selección de valores para cada una de ellas, yaque un orden adecuado de ambas cosas puede mejorar notablemente la eficiencia. Existendiferentes tipos de heurísticas tanto para la ordenación de variables como para la selecciónde valores, algunas de las cuales se comentan en el apartado 3.2.4.

El backtracking cronológico es un algoritmo sencillo y completo, pero en general ine-ficiente. Uno de los problemas que presenta es que en cada nodo sólo se estudian lasrelaciones entre la variable actual y las anteriores, ignorando las variables futuras. Otradeficiencia es la carencia de memoria que posee, de forma que se puede llevar a cabo elanálisis innecesario de la misma situación repetidamente. Para paliar dichas deficienciasexisten variantes, que se engloban principalmente en algoritmos look-back y look-ahead,que se describen en la sección 3.2.3 (técnicas híbridas).

Búsqueda local La búsqueda local consiste en explorar sólo algunas regiones del espaciode estados de forma que, en general, no se garantiza el hallazgo de una solución o dela solución óptima. Los algoritmos de búsqueda local son algoritmos incompletos muyutilizados debido al alto coste que requiere una búsqueda completa.

En los algoritmos de búsqueda local normalmente se suele trabajar con soluciones com-pletas (todas las variables se encuentran instanciadas) de forma que se desea llegar a unasolución que cumpla todas las restricciones (en el caso de CSP) u optimice una determina-da función objetivo (en el caso de COP). Inicialmente se parte de una solución inicial, y seitera repetidas veces dirigiéndose hacia otras soluciones que intentan mejorar el valor de lafunción objetivo y/o reducir el número de inconsistencias. En la mayoría de los casos, estosalgoritmos finalizan tras una serie de intentos o iteraciones, o cuando encuentran el óptimo(si son capaces de detectarlo). Existen muchos algoritmos de búsqueda local, cada uno delos cuales consta de un conjunto de elementos que se describen a continuación:

Función objetivo: Es una función que se aplica sobre una solución completa del pro-blema para devolver un valor numérico que indica la bondad de dicha solución. Estevalor se denomina coste o beneficio de la solución, y es lo que se desea optimizar.

Vecindad: Para cada una de las soluciones (completas o incompletas) se determinaun conjunto de soluciones vecinas. Normalmente dicho conjunto suele estar formadopor pequeñas variaciones de la solución actual que se espera mejoren la funciónobjetivo.

Criterio de selección: Es necesario seleccionar un vecino de entre todos los posibles.Esto se realiza según el criterio de selección, que suele basarse en heurísticas paraseleccionar así el vecino más prometedor.

Las especificaciones tanto de la vecindad como del criterio de selección tienen una graninfluencia en el proceso de búsqueda.

Para aplicar búsqueda local a CSPs sin optimización se pueden considerar los siguientespuntos:

Cada variable puede tomar cualquier valor de su dominio.

Se va iterando sobre soluciones intermedias no consistentes con las restriccionesexistentes.

Se asocia un coste a cada restricción que no se cumpla, de forma que el óptimo(solución consistente con las restricciones) se obtiene cuando el coste es igual a 0.

14 CAPÍTULO 3. TRABAJO RELACIONADO

Existen diferentes estrategias para algoritmos de búsqueda local, destacando las si-guientes:

Algoritmos genéticos [77] En el presente trabajo se incluyen los algoritmos genéticoscomo una estrategia de búsqueda local, aunque hay autores que no lo consideran así. Dichosalgoritmos parten de una población inicial formada por un conjunto de individuos, quepueden ser generados aleatoriamente o mediante técnicas heurísticas, a partir de la cual selleva a cabo una serie de pasos. En general, se busca que la evolución sea hacia una nuevapoblación mejor que la actual, es decir, que posea individuos con un mejor coste para lafunción objetivo.

El paso de una población a la inmediatamente posterior se realiza mediante tres tiposde operaciones:

De Selección: sólo los mejores individuos de la población sobreviven.

De Cruce: combinación de individuos para dar lugar a uno o varios nuevos.

De Mutación: pequeña modificación en un individuo para dar lugar a otro.

En cada una de estas operaciones existen muchas alternativas posibles.Si el algoritmo converge adecuadamente, se van obteniendo mejores soluciones. La

solución que devuelve este algoritmo es el mejor individuo encontrado tras una serie degeneraciones.

Simulated annealing [58] La idea básica de este algoritmo es la posibilidad de moversea estados con peor coste dependiendo de una probabilidad p que depende de varios factores,entre los que se encuentran:

Empeoramiento de la solución tras el cambio. Mientras más se empeore la solución,menos probabilidad hay de aceptar el cambio.

Número de iteración en el que se encuentre el algoritmo, de forma que mientras másavanzada esté la búsqueda, menor es la posibilidad de permitir soluciones peores.

Si la nueva solución mejora la actual, siempre se realiza el movimiento.Búsqueda tabú [42] Uno de los principales problemas que podemos encontrar durante

la búsqueda local consiste en que podemos caer repetidas veces en la misma situación y ac-tuar de la misma forma, dando lugar a un ciclo. Para evitar que esto ocurra, la búsqueda tabúpropone mantener durante el proceso de búsqueda una lista con los últimos k movimientosrealizados (lista tabú), de forma que dichos movimientos no son permitidos (movimien-tos prohibidos). Esto da lugar a un algoritmo en el que el mismo movimiento no puede serrepetido o revertido, al menos, hasta k iteraciones después. Dicha lista se va actualizando encada iteración de forma que se produce pérdida de memoria estratégica de los movimientosrealizados anteriores al (k − 1)-ésimo.

Para el éxito de la búsqueda tabú en la resolución del problema, es muy importantedeterminar de forma adecuada el tamaño de la lista tabú y la información almacenada.

Junto con la búsqueda tabú, en algunos casos, se utiliza el criterio de aspiración, queconsiste en seleccionar como próxima solución, si existe, aquella solución que mejore a laactual, se encuentre o no en la lista tabú.

Técnicas de consistencia

Las técnicas de consistencia se basan en la inferencia de nuevas restricciones a par-tir de las existentes en una red, de forma que las restricciones añadidas no incorporanconocimiento nuevo pero sí hacen explícitas relaciones que estaban presente de forma im-plícita. En general, esta nuevas restricciones pueden englobar a algunas restricciones an-teriores, de forma que el número de restricciones puede ir reduciéndose en cada paso. La

3.2. PROGRAMACIÓN CON RESTRICCIONES 15

inferencia llevada al extremo da lugar a una sola restricción que engloba todas las res-tricciones iniciales, de forma que las tuplas que cumplen dicha restricción son solucionesdirectas al problema.

Todas las redes de restricciones por las que se pasa durante el proceso de inferencia sonequivalentes, es decir, todas tienen el mismo conjunto de soluciones. Mediante inferenciaconseguimos redes de restricciones equivalentes pero más sencillas de resolver, intentandoobtener redes con un espacio de estados menor o que se puedan explorar de forma máseficiente.

Cuando se sintetizan todas las restricciones en una única se denomina inferencia com-pleta o consistencia global, y dicho proceso es, en general, muy costoso. Por el contrario,cuando la inferencia es incompleta (consistencia local) se añaden restricciones que hacenexplícitas relaciones que anteriormente se encontraban implícitas sin necesidad de llegara una única restricción. En este caso y una vez realizada la inferencia, es necesario algúnmétodo de búsqueda que actúe sobre la nueva red de restricciones.

A continuación se enumeran un conjunto de definiciones formales relacionadas con elconcepto de consistencia en una red de restricciones:

Arco consistencia (generalizada) ((G)AC). Dada una red N = (X, D, C), una res-tricción c ∈ C, y una variable xi ∈ X(c),

• Un valor vi ∈ D(xi) es consistente con c en D si y sólo si existe una tuplaválida τ satisfaciendo c tal que vi = τ [{xi}]. Dicha tupla se denomina soportepara (xi, vi) en c.

• El dominio D es arco consistente (generalizado) en c para xi si y sólo si todoslos valores en D(xi) son consistentes con c en D.

• La red N es arco consistente (generalizada) si y sólo si D es arco consistente(generalizado) para todas las variables de X sobre todas las restricciones de C.

• La red N es arco inconsistente si y sólo si ∅ es el único dominio más pequeñoque D que es arco consistente (generalizado) para todas las variables y sobretodas las restricciones.

Consistencia de caminos. Sea N = (X, D, C) una red normalizada.

• Dadas dos variables xi y xj en X , el par de valores (vi, vj) ∈ D(xi) x D(xj)presentan consistencia de camino si y sólo si para cualquier secuencia de va-riables Y = (xi = xk1 , xk2 , . . . , xkp = xj) tal que pata todo q ∈ [1..p −1], ckq,kq+1 ∈ C, existe una tupla de valores (vi = vk1 , vk2 , . . . , vkp = vj) ∈πY (D) tal que para todo q ∈ [1..p− 1], (vkq,kq+1) ∈ ckq,kq+1 .

• La red N presenta consistencia de camino si y sólo si para cualquier par devariables (xi, xj), i 6= j cualquier par de valores para (xi, xj) localmente con-sistentes, presenta consistencia de camino.

k-consistencia. Sea N = (X,D, C) una red.

• Dado un conjunto de variables Y ⊂ X with |Y | = k − 1, una instanciaciónI localmente consistente sobre Y es k-consistente si y sólo si para cualquiervariable xik

∈ X\Y existe un valor vik∈ D(xik

), tal que I ∪ {(xik, vik

)} eslocalmente consistente.

• La red N es k-consistente si y sólo si para cualquier conjunto Y de k−1 varia-bles, cualquier instanciación localmente consistente sobre Y es k-consistente.

k-consistencia fuerte. Una red es fuertemente k-consistente si y sólo si es j-consistentepara todo j ≤ k.

Si una red es fuertemente n-consistente, entonces es globalmente consistente.

16 CAPÍTULO 3. TRABAJO RELACIONADO

A veces es más adecuado utilizar consistencia global en lugar de quedarnos sólo enconsistencia local:

Dado un CSP (X,D,C) se dice que es globalmente consistente si y sólo si ∀xi ∈ X ,∀a ∈ Di, xi = a forma parte de una solución del CSP.

Es importante resaltar que en una red de restricciones globalmente consistente la búsque-da puede llevarse a cabo sin backtracking [35].

Inferencia completa Son técnicas en las que se van generando redes de restriccionescada vez más pequeñas hasta llegar a una única restricción que engloba a todas las ini-ciales. Esto se realiza, en general, mediante la eliminación de variables, que tiene un grancoste computacional. Las restricciones son consideradas relaciones sobre un conjunto devariables, cada una de ellas compuesta por tuplas. Sobre dichas relaciones se definen lasoperaciones de proyección y join para llevar a cabo la inferencia. Un ejemplo de esta técnicaes el algoritmo de consistencia adaptativa [68].

Inferencia incompleta Debido al alto coste computacional de la inferencia completa,existen alternativas de inferencia incompleta o consistencia local, ya que realizar un estu-dio del subproblema que sólo contempla un número pequeño de variables, lleva asociado uncoste computacional aceptable. Las técnicas de inferencia incompleta se basan en el estudiode subredes de restricciones del problema. Una subred (X ′, D′, C ′) de una red de restric-ciones (X, D, C) está definida por un conjunto de variables X ′ = {x1, . . . , xk}, X ′ ⊂ X ,sobre los dominios originales D′ = {D1, . . . , Dk}, bajo el conjunto de restriccionesC ′ = {c | c ∈ C ∧ var(c) ⊆ X ′} [68]. Gracias al estudio de subredes de restriccio-nes que sólo consideran ciertas variables se pueden obtener diferentes resultados:

Si se detectan valores o combinaciones de valores que no aparecen en ninguna solu-ción de la subred, dichos valores tampoco aparecerán en la solución de la red, ya quelas restricciones de la subred aparecen en la red global.

Si la subred no tiene solución, la red global tampoco la tendrá. En cambio, que lasubred tenga solución no implica que la red global también la tenga, ya que sólo serealiza un estudio local del problema.

De esta forma, en general, no se encuentran soluciones globales al problema pero seañaden nuevas restricciones que aceleran la búsqueda al reducir el espacio de estados ymejorar la detección de inconsistencias. Existen varios algoritmos de consistencia local[68], algunos de los cuales están basados en consistencia de nodo (1-consistencia), consis-tencia de arco (2-consistencia) o consistencia de caminos (3-consistencia).

La consistencia de arco es una de las formas más usuales de realizar la propagación derestricciones. Una de las razones es que es un concepto muy simple y natural que garantizaque todos los valores de un dominio son consistentes con todas las restricciones existentes.La propuesta de algoritmos eficientes que trabajan con la arco consistencia se ha conside-rado siempre una de las cuestiones centrales dentro de la comunidad de razonamiento conrestricciones por varias razones. La primera de ellas es que la arco consistencia es el mecan-ismo de propagación básico que usan la mayoría de los resolutores existentes. Otra razónes que las nuevas ideas que permiten mejorar la eficiencia en la arco consistencia se puedenaplicar normalmente a algoritmos para mejorar otros tipos de consistencias locales. Se hanpropuesto múltiples algoritmos para conseguir arco-consistencia, todos polinómicos. Unode los más conocidos es el AC3, propuesto por Mackworth [72].

Técnicas híbridas

Como se ha comentado en apartados anteriores, las técnicas híbridas son una combi-nación de procesos de búsqueda junto con técnicas de inferencia, intentando combinar los

3.2. PROGRAMACIÓN CON RESTRICCIONES 17

aspectos más positivos de cada una de ellas para llegar a un buen mecanismo de resolu-ción. Los algoritmos híbridos se pueden dividir en dos grandes bloques: Combinación debúsqueda sistemática e inferencia incompleta y Combinación de búsqueda sistemática einferencia completa, que se comentan a continuación.

Combinación de búsqueda sistemática e inferencia incompleta En cada nodo del sub-árbol de búsqueda se lleva a cabo la consistencia local del subproblema representado pordicho nodo, de forma que se detectan las tuplas parciales inconsistentes. Dichas tuplas soneliminadas, reduciendo el espacio de estados e incluso detectando una situación sin salidasi el dominio queda vacío.

Algoritmos look-back. Los algoritmos look-back son variantes del backtracking cro-nológico en las que, al igual que el backtracking, sólo se tiene en cuenta la informaciónacerca de las variables anteriores a la actual. La diferencia es que dichos algoritmos cuandollegan a una situación sin salida realizan un estudio, más o menos profundo, de las varia-bles instanciadas hasta el momento (variables anteriores), de forma que actúan intentandoevitar caer en una situación sin salida por la misma razón repetidas veces. Existen variosalgoritmos basados en esta idea, entre los que se encuentran:

Backjumping [38] : La forma en la que se actúa cuando se llega a una situación sinsalida es saltando a la variable que se considera responsable de haber llegado a dichasituación, no a la inmediatamente anterior como en el caso del backtracking crono-lógico. La variable que se considera responsable es aquella variable xj más profunda(más cerca de la variable actual) que está en conflicto con la variable actual xi, j < i.Una variable xj está en conflicto con una variable xi cuando la instanciación de lavariable xj evita algún valor para xi, debido a alguna restricción que lo prohiba.

Conflict-directed Backjumping [89]: La idea es similar a Backjumping, sólo queen este caso el salto hacia atrás se efectúa teniendo en cuenta más información. Amedida que se va construyendo el árbol de búsqueda, para cada variable xi analizadase va asociando un conjunto conflictivo que está formado por todas las variablesanteriores a xi que entran en conflicto con ella. De esta forma, cuando se llega a unasituación sin salida para la variable xi, se salta a la variable más profunda xj que seencuentra en el conjunto conflictivo de xi. Además, todas las variables que están enel conjunto conflictivo de xi se incorporan al conjunto conflictivo de xj . Con estose consigue conservar toda la información sobre conflictos acerca de las variablesestudiadas anteriormente. La ventaja con respecto al backjumping es que realiza lavuelta atrás de forma más inteligente, teniendo en cuenta información que antes seperdía. El aspecto negativo es que es necesario trabajar con estructuras de datos máscomplejas y almacenar más información para cada variable.

Learning [36]: Consiste en realizar un aprendizaje de las situaciones sin salida, enfunción del cual se realiza poda en el árbol de búsqueda. Mantiene en cada momen-to restricciones implícitas resultantes de la búsqueda que utiliza para evitar repetirsituaciones sin éxito.

Algoritmos look-ahead. Los algoritmos look-back sólo realizan el estudio de las varia-bles anteriores, sin tener en cuenta las variables futuras (variables todavía no instanciadas).Los algoritmo look-ahead realizan un estudio tanto de las variables pasadas como de lasvariables futuras, lo que da lugar a la detección de situaciones sin salida antes de que tenganlugar. La técnica look-ahead más conocida y usada es la denominada Forward Checking[47]. Dicha técnica consiste en ir eliminando temporalmente valores del dominio de va-riables futuras en el caso de que dichos valores presenten inconsistencia con respecto a lavariable actual. De esta forma, si el dominio de alguna variable todavía no instanciada sequeda vacío, se debe a que la asignación parcial que se lleva hasta el momento no puede for-mar parte de una solución. Cuando ocurre dicha situación, se selecciona el siguiente valor

18 CAPÍTULO 3. TRABAJO RELACIONADO

para la variable actual. En caso de que la variable actual se quede sin valores consistentespor explorar, se salta a la variable anterior (al igual que en backtracking cronológico).

Existen técnicas híbridas que combinan Forward Checking con técnicas de movimientohacia atrás, obteniendo así las ventajas de ambos. Un ejemplo es forward checking conconflict-directed backjumping (FC-CBJ)[89].

Manteniendo arco consistencia (MAC). El algoritmo MAC [92] va generando unasucesión de subproblemas arco-consistentes, de forma que cada nuevo subproblema gene-rado tiene en cuenta todas las restricciones para mantener la arco-consistencia.

Combinación de búsqueda sistemática e inferencia completa En general, la inferenciacompleta es muy costosa debido al gran esfuerzo computacional que requiere. Sin embargo,teniendo en cuenta el valor de algunos parámetros, existen ciertas situaciones en las que suaplicación es adecuada dentro de un algoritmo de búsqueda.

Búsqueda y eliminación de variables (Variable Elimination Search, VES) [67] Laidea fundamental de las técnicas de inferencia es la eliminación sucesiva de variables. Estotiene un coste exponencial en función de la anchura de la variable a eliminar, definiendo laanchura de una variable como el número de variables anteriores en el árbol más el númerode variables que están relacionadas con ella en alguna restricción. Si la anchura de unavariable tiene un valor alto, el coste de eliminar dicha variable es prohibitivo. En cambio,para variables con un valor de anchura bajo, se puede asumir el coste computacional de eli-minarla a cambio de la reducción de complejidad que implica dicha eliminación. Además,tras la instanciación de una variable, se consigue una reducción en el árbol de búsquedacon la consiguiente reducción en la anchura de otras variables.

3.2.4. HeurísticasCuando se resuelve un CSP haciendo uso de un algoritmo de búsqueda, hay dos fac-

tores que pueden mejorar de manera considerable la eficiencia del proceso, que son lossiguientes:

Ordenación de variables: el orden en el que se estudian las variables en un procesode búsqueda suele tener una gran importancia en el tamaño del espacio de búsquedaexplorado.

Ordenación de valores: para cada una de las variables, el orden en el que se estudianlos valores de su dominio suele tener influencia en el proceso de búsqueda.

En [94] se comenta la importancia de la ordenación de restricciones del problema a lolargo del proceso de búsqueda.

Ordenación de variables

En general, las heurísticas de ordenación de variables suelen instanciar las variablesmás restringidas en primer lugar, de forma que se intenta detectar una solución sin salidalo antes posible, para disminuir así el número de saltos hacia atrás.

La ordenación de variables se puede clasificar de la siguiente forma:

Heurísticas de ordenación de variables estáticas: Desde el primer momento de labúsqueda se establece un orden de selección de las variables que permanece fijo du-rante todo el proceso. Para dar lugar a esta ordenación se hace uso de la informaciónglobal del problema, derivada de la topología del grafo de restricciones original querepresenta al CSP. Algunas heurísticas de este tipo son:

• Maximum degree (MD) [26], que define el grado de un nodo como el númerode nodos que son adyacentes a él y ordena las variables en un orden decrecientede su grado en el grafo de restricciones.

3.2. PROGRAMACIÓN CON RESTRICCIONES 19

• Maximum cardinality (MC) [90], que selecciona de forma aleatoria la primeravariable, tras lo cual va seleccionando en cada paso la variable que es adyacenteal conjunto más grande de las variables ya seleccionadas.

Heurísticas de ordenación de variables dinámicas: abordan el problema del tratamien-to dinámico del dominio de las variables, que va cambiando durante el proceso debúsqueda con la propagación de restricciones. Una de las más utilizadas es la heurís-tica first fail principle [47], que indica que para obtener buenos resultados es buenointentar buscar primero donde exista una mayor probabilidad de fallo.

Ordenación de valores

Existen menos trabajos en cuanto a heurísticas de ordenación de valores que a heurís-ticas de ordenación de variables. La mayoría de estos trabajos se basan en seleccionarprimero los valores de cada una de las variables que tengan mayor probabilidad de lle-varnos a una solución válida (valores menos restringidos en general), es decir, exploran enprimer lugar las ramas del árbol consideradas más prometedoras.

Una de las heurísticas más conocidas de este tipo es la heurística min-conflicts [76],que ordena los valores de forma decreciente en función del número de conflictos en los queestén involucrados con las variables no instanciadas aún.

3.2.5. CSP Temporales

Un campo muy interesante dentro de CP es la Satisfacción de Restricciones Temporalesdebido a la aplicación que presentan en multitud de áreas, entre las que se encuentran pla-nificación y scheduling, procesamiento de lenguaje natural, diagnosis o minería de datos.

Un problema de razonamiento temporal no es más que un tipo concreto de CSP dondelas variables representan entidades temporales (puntos o instantes de tiempo e intervalos),los dominios son estructuras temporales y las restricciones establecen las relaciones tem-porales entre las distintas entidades. Una vez modelado un problema temporal como unCSP de forma adecuada, es posible su resolución aplicando cualquiera de las técnicas deresolución generales expuestas en apartados anteriores. En CSP temporales es fundamentalespecificar los valores temporales iniciales conocidos ya que, a partir de ellos y utilizandotécnicas de propagación, será posible dar valor a las entidades temporales.

Existen multitud de modelos de razonamiento temporal basados en restricciones quedivergen entre ellos en diversos aspectos, tales como la representación temporal o los for-malismos de razonamiento. En este apartado se distinguen tres tipos de formalismos enfunción del tipo de información temporal que permiten:

Razonamiento temporal cualitativo: lo realmente importante es el orden en el quetienen lugar los eventos, y, en general, no se considera la distancia que existe entreellos.

Razonamiento temporal métrico: En esto caso la distancia entre eventos si es impor-tante, siendo relevante por tanto la información cuantitativa.

Combinación de razonamientos cualitativo y métrico.

Razonamiento temporal cualitativo

En [75], Meiri define el álgebra cualitativa QA como un formalismo expresivo parael razonamiento temporal cualitativo sobre puntos e intervalos. En QA es posible expresarrestricciones binarias de la forma oir1oj∨ . . .∨oirkoj , donde oi, oj son puntos o intervalosy r1, . . . , rk son algunas de las siguientes alternativas:

20 CAPÍTULO 3. TRABAJO RELACIONADO

Relaciones intervalo a intervalo del Álgebra de intervalos (IA). James Allen [3] intro-dujo un formalismo para el razonamiento sobre intervalos temporales. Un intervalo ies un par (i−, i+) donde i− < i+. Dicho formalismo está basado en trece relacionesbinarias mutuamente excluyentes que permiten capturar todas las formas posiblesde relación entre dos intervalos: {before, meets, overlaps, during, starts, finishes,equals} y sus relaciones inversas. En [3] se presenta un algoritmo de propagación derestricciones para redes IA basado en consistencia de camino de complejidad O(n3),siendo n el número de intervalos de la red. A la vez que las restricciones se vanpropagando, se va haciendo explícito algún conocimiento temporal que hasta ahoraestaba presente de forma implícita. En [107] se demuestra que el algoritmo de propa-gación de restricciones de Allen no es completo, al mismo tiempo que se introduceel álgebra de puntos, expuesta a continuación.

Relaciones punto a punto del Álgebra de puntos (PA) [111]. Sea pi y pj dos puntostemporales que actúan como variables de un CSP temporal, es decir, dos entidades.PA define tres relaciones binarias cualitativas disjuntas que expresan de forma exactay excluyente la posición de pi y pj : pi y pj ocurren en el mismo instante (pi = pj),pi tiene lugar antes que pj (pi < pj) o pi ocurre después de pj (pi > pj). Lasrestricciones entre los puntos pueden ser expresadas también con relaciones bina-rias disyuntivas, que combinan las tres relaciones anteriores mediante operacionesde conjunción y disyunción. Para representar un CSP temporal mediante este mode-lado y construir una red (denominada PA-red), las variables se representan mediantepuntos, el dominio para cada una de ellas es el intervalo de números reales en los quepuede encontrarse cada punto, y las restricciones son PA-relaciones entre los distin-tos puntos. Una PA-red puede ser representada mediante un grafo de restriccionesdirigido y etiquetado.

En el álgebra de puntos se pueden plantear básicamente tres tipos de problemas aresolver:

1. Decidir si una PA-red es consistente y en caso afirmativo encontrar una solu-ción.

2. Encontrar la PA-red mínima.

3. Obtener una PA-relación mínima.

Relaciones punto-intervalo o intervalo-punto. Sea p un punto e i un intervalo, sepueden dar las siguientes relaciones {p before i, i after p, p starts i, i started-by p, pduring i, i includes p, p after i, i before p}.

Razonamiento temporal métrico

Dechter, Meiri y Pearl realizaron un estudio acerca del manejo de información temporalmétrica haciendo uso de restricciones binarias disyuntivas (Disjunctive Binary Difference,DBD), de la forma:

a1 ≤ xi − xj ≤ b1 ∨ . . . ∨ an ≤ xi − xj ≤ bn

donde xi, xj son variables reales que representan puntos temporales y a1, . . . , an, b1, . . . , bn

son números reales [25]. Para trabajar con estas restricciones, se introdujeron redes DBD,donde los nodos representan las variables y los arcos representan las restricciones bina-rias. Un aspecto importante es que la verificación de la consistencia de redes DBD es NP-completo [25].

Otra clase de restricciones temporales más expresivas, que han sido ampliamente es-tudiadas en la literatura, es la clase de restricciones n-arias disyuntivas (N-ary DisjunctiveDifference, NDD), que son de la forma:

3.2. PROGRAMACIÓN CON RESTRICCIONES 21

a1 ≤ x1 − y1 ≤ b1 ∨ . . . ∨ an ≤ xn − yn ≤ bn

donde x1, y1, . . . , xn, yn son variables reales que representan puntos temporales, ya1, . . . , an, b1, . . . , bn son números reales [4, 100]. Nuevamente la verificación de la con-sistencia de un conjunto de restricciones NDD es NP-completa.

Combinación de razonamientos cualitativo y métrico

Meiri [75] ha combinado el poder expresivo del álgebra cualitativa QA y el marco derestricciones DBD de [25] para dar lugar a un marco de redes de restricciones temporalesbinarias mixtas, donde los nodos son puntos o intervalos, y las restricciones pueden ser tan-to cualitativas como cuantitativas. De forma similar, Kautz and Ladkin [56] propusieron unmarco que combina restricciones cualitativas del álgebra de intervalos IA y las restriccionesBD de [25].

Más recientemente, Krokhin et al. presentaron otro marco que combina razonamientotemporal cualitativo y métrico [61]. En este caso, los objetos de interés son los intervalos yla información cualitativa se expresa mediante IA. Además, la información temporal métri-ca sobre los extremos de los intervalos se puede expresar utilizando restricciones HDL.

Algoritmos eficientes para CSPs temporales

En las aplicaciones típicas de razonamiento temporal (como planificación y scheduling)las bases de datos que contienen las restricciones temporales que se deben manejar suelenser muy extensas, por lo que la escalabilidad en los algoritmos de razonamiento temporalse considera un aspecto muy importante.

En el presente apartado se citan algunos algoritmos para la resolución de CSPs tempo-rales, clasificados de la siguiente forma:

Algoritmos eficientes para CSPs temporales cualitativos: se pueden clasificar en doscategorías:

• Algoritmos escalables para clases de restricciones con problemas de razona-miento PTIME (especialmente PA) [39, 40].

• Algoritmos de búsqueda local o backtracking para clases con problemas derazonamiento NP-completos (especialmente IA) [63, 106].

Algoritmos eficientes para restricciones BD y DBD. Algunos trabajos relacionadosson [19, 118].

Algoritmos eficientes para NDD y extensiones. En general, los algoritmos de estetipo [101, 5] se basan en algoritmos que contienen los siguientes pasos básicos:

• Paso de generación: Se generan todos los posibles conjuntos de restriccionesBD que satisfacen las disyunciones.

• Paso de comprobación de la consistencia: Se comprueba la consistencia de losconjuntos de de restricciones generados en el paso anterior.

22 CAPÍTULO 3. TRABAJO RELACIONADO

3.3. Scheduling

3.3.1. IntroducciónEl área denominada Scheduling engloba a multitud de problemas que tienen en común

la necesidad de planificar la ejecución de un conjunto de operaciones o tareas en el tiempo.En general, las tareas están sujetas a relaciones de precedencia, de forma que, por ejemplo,el comienzo de una tarea debe ser posterior a la finalización de otra(s). Por otro lado, secuenta con un conjunto limitado de recursos compartidos, necesarios para la ejecuciónde las tareas. Para solucionar este tipo de problemas se debe tener en cuenta tanto lasrestricciones de precedencia como las de recursos, para dar lugar así a un plan de ejecuciónviable.

Un caso concreto de Scheduling es el denominado Job Shop, en el que las tareas se or-ganizan en trabajos, a través de los cuales se establecen las relaciones de precedencia entreellas. De esta forma, con el término trabajo se hace referencia a una secuencia de operacio-nes que deben ejecutarse en un orden determinado, existiendo una relación de precedenciaentre ellas que establece que una operación puede comenzar sólo cuando ha terminado laejecución de todas sus predecesoras. Por operación se hace referencia a una tarea que debeser ejecutada, normalmente sin interrupción (preemptive scheduling), durante un tiempodeterminado y haciendo uso de unos recursos específicos.

Uno de los objetivos fundamentales de este tipo de problemas es generar un plan deejecución optimizando una función objetivo determinada, que suele estar relacionada conel tiempo de procesado de todos los trabajos que forman parte del problema.

A la hora de generar el plan, es necesario tener en cuenta tanto las restricciones deprecedencia existentes entre las operaciones del mismo trabajo como las restricciones derecursos, que obligan a establecer un orden de ejecución entre las operaciones que com-parten recursos. Estas últimas restricciones son la fuente de la complejidad NP-dura deeste tipo de problemas [37].

Existen muchas variantes que se engloban dentro de este tipo de problemas, entre lasque se encuentran:

Job Shop: Cada operación sólo puede ejecutarse en una máquina. Puede ser que cadatrabajo sólo utilice una vez cada máquina o bien que contenga varias operacionesque deban ser ejecutadas en la misma máquina (en este caso se denomina Job Shopsujeto a recirculación).

Flow Shop: En cada trabajo hay exactamente una operación a ser ejecutada en cadauna de las máquinas, por tanto cada uno de los trabajos pasa por cada una de lasmáquinas una sola vez. Además, todos ellos pasan por cada una de las máquinas enel mismo orden.

Job Shop Flexible: Existen varios centros de trabajo, cada uno de los cuales contienenel mismo conjunto de máquinas. De esta forma, una operación puede ser ejecutadaen cualquier centro de trabajo en la máquina adecuada. Se puede encontrar una in-formación más detallada en [16].

Job Shop Acumulativo: [84] Es una generalización de job shop en la que los recursostienen una capacidad finita y las operaciones pueden requerir varias unidades devarios tipos de recursos.

Hay muchos problemas de scheduling presentes en aplicaciones reales. Un ejemploclásico es el funcionamiento de un hospital. Cada paciente tiene que seguir una secuen-cia de pasos determinada y tiene que recibir tratamiento en diferentes módulos durante suinternamiento. Otros ejemplos son aplicaciones en fabricación flexible y cadenas de sumi-nistros, la planificación de las operaciones de mantenimiento en la industria, la confecciónde horarios para plantillas laborales y para problemas de transporte, etc.

3.3. SCHEDULING 23

Esta sección se centra en el Job Shop Scheduling Problem, que aunque es un modelosimplificado, a partir de su estudio se pueden obtener muchas conclusiones para problemasreales. Por otro lado, es un problema muy estudiado y referenciado, por lo que es fácilrealizar estudios comparativos.

Esta sección se organiza como sigue: en primer lugar se muestra la definición formaldel Job Shop Scheduling Problem (JJSP), problema en el que se basa uno de los artículosrealizados [9]. La sección 3.3.3 está dedicada a la definición del camino crítico de unasolución, que es uno de los conceptos fundamentales en la búsqueda de soluciones óptimaspara el JJSP. Tras esto, se detallan las propuestas de resolución del JJSP consideradas másrelevantes y referenciadas, incluyendo la programación matemática, heurística basada encuellos de botella, programación con restricciones y métodos heurísticos.

3.3.2. Definición del Job Shop Scheduling ProblemEl problema de Job Shop Scheduling (JSSP) puede ser formulado como sigue: se tiene

un conjunto de n trabajos J1, J2, . . . , Jn y un conjunto de m máquinas M1,M2, . . . , Mm.Cada trabajo Ji está formado por una secuencia de ni operaciones opi1, opi2, . . . , opi,ni

,que deben ser procesadas en este orden. Cada operación opij debe ser procesada durante pij

unidades de tiempo, sin interrupción, en la máquina µij ∈ {M1, ..., Mm}. Cada máquinasólo puede procesar una operación en cada momento. Una consideración típica consiste ensuponer que ni = m, ∀i.

Teniendo en cuenta todo esto, se definen dos tipos de restricciones:

Restricciones de precedencia: Cada trabajo está formado por un conjunto de ope-raciones que deben ser ejecutadas en un orden determinado, de forma que una ope-ración no puede comenzar hasta que no hayan finalizado todas las operaciones pre-decesoras.

Restricciones de recurso: En cada momento sólo una operación puede ocupar unamáquina, lo que fuerza a seleccionar un orden para la ejecución de todas las ope-raciones que se realizan en la misma máquina. Realmente consiste en seleccionaruna de entre todas las permutaciones posibles de dichas operaciones, lo que dota alproblema de complejidad NP-dura [37].

La resolución de JSSP consiste en encontrar una solución que cumpla todas las restric-ciones, normalmente minimizando algún valor relacionado con el tiempo (sección 3.3.2).

Grafo disyuntivo

Una de las representaciones más claras y utilizadas para este tipo de problemas esel denominado grafo disyuntivo [11]. Un grafo disyuntivo G = (V, C,D) contiene lossiguientes elementos:

Un conjunto V de nodos, cada uno de los cuales representa una operación, exceptodos de ellos, el nodo fuente y el nodo sumidero, que son nodos virtuales de duración0 y representan el comienzo y el final del plan respectivamente.

Un conjunto de aristas que unen los distintos nodos. Podemos distinguir dos tipos:

• Aristas de precedencia C (conjunciones) correspondientes a las restriccionesde precedencia. Son arcos dirigidos que unen operaciones correspondientes almismo trabajo.

• Aristas de recurso D (disyunciones) correspondientes a las restricciones de re-curso. Son arcos no dirigidos que unen operaciones que se ejecutan en la mismamáquina.

24 CAPÍTULO 3. TRABAJO RELACIONADO

Cada una de las aristas tiene asociada una longitud igual a la duración de la operaciónorigen de dicha arista.

Una solución para el problema consiste en establecer una dirección en cada una de lasaristas de recurso, siendo factible la solución si no da lugar a la formación de ciclos en elgrafo.

Cada operación del JSSP puede empezar cuando haya terminado la ejecución de susoperaciones predecesoras (en caso de que existan). En un grafo disyuntivo, la dirección delas flechas marca las relaciones de precedencia, de forma que si aparece una flecha dirigidade la operación p a q, esto indica que p precede a q. Es por esto que en el caso de queexistan ciclos en el grafo, la solución no es válida. En la figura 3.12 se muestra un grafodisyuntivo que representa un problema simple con n = 3 y ni = 3, ∀i. El nodo fuenteestá representado por la etiqueta U y el nodo sumidero por V . Las aristas de precedenciaestán representadas mediante flechas unidireccionales de trazado continuo, mientras las derecurso aparecen como flechas bidireccionales de trazado discontinuo.

op 11

op 12

op 13

op 21

op 22

op 23

op 31

op 32

op 33

U V fuente sumidero

Figura 3.2: Un grafo disyuntivo para problemas Job Shop

Funciones objetivo

En general, el objetivo más perseguido en este tipo de problemas es encontrar unasolución factible, es decir, que satisfaga todas las restricciones, minimizando un valor de-nominado makespan, Cmax. El makespan se define como el tiempo en el que termina laejecución de todos los trabajos, Cmax = maxi=1..n{Ci}, donde Ci es el tiempo de finali-zación del trabajo Ji, es decir, el tiempo de finalización cti,ni de la operación opi,ni .

Teniendo en cuenta la definición del grafo disyuntivo realizada anteriormente, y dadauna solución, el makespan se puede definir como la longitud del camino más largo queexiste desde el nodo fuente hasta el nodo sumidero. Dicho camino está formado por unconjunto de operaciones en las que la primera comienza en tiempo 0 y la última finaliza enun tiempo igual a makespan. El problema de minimizar el makespan se reduce a encontraruna dirección para cada arista no dirigida que minimize la longitud del camino más largo.

Aunque el makespan es probablemente la función objetivo más utilizada y estudiada enscheduling, también existen otras. Un ejemplo es la denominada tardanza máxima [8], quees el máximo retraso de los trabajos con respecto a un tiempo esperado D. La tardanza paracada uno de los trabajos se define como Tj = max(0, Cj −D), mientras que la tardanzamáxima Tmax es igual a max(Tj), j ∈ J . De esta forma, el objetivo es minimizar dichatardanza máxima.

3.3.3. Camino CríticoUna vez establecida una solución para un problema JJS, es decir, establecida la di-

rección en cada una de las aristas no dirigidas correspondientes a relaciones de recursos,

3.3. SCHEDULING 25

existen varias posibilidades para dar lugar a un plan de ejecución. El plan de ejecuciónóptimo para esa solución se obtiene actuando de forma que una operación comience justocuando han terminado sus operaciones predecesoras (tanto en trabajo como en máquina).De esta forma, se define el tiempo de comienzo (o start time) stij para una operación opij ,con una operación predecesora en máquina opkl (en caso de que exista), de la siguienteforma:

Si es la primera en su máquina y la primera en su trabajo, stij = 0.

Si es la primera en su máquina, pero no en su trabajo, stij = cti,j−1.

Si no es la primera en su máquina, pero sí en su trabajo, stij = ctk,l.

Si no es la primera en su máquina, ni en su trabajo, stij = max{cti,j−1, ctk,l}.

Para todas las operaciones, el tiempo de finalización ctij es igual a: ctij = stij + pij .Así se consigue uno de los planes óptimos, pero existen diversas alternativas, algunas

de las cuales dan lugar a planes con el mismo makespan (Cmax).De hecho, dado un plan, existen planes alternativos que mantienen el mismo orden de

ejecución de las operaciones y el mismo makespan, retrasando el comienzo de algunasoperaciones. Teniendo en cuenta esto se define el tiempo de comienzo más tardío st′ijde una operación como el tiempo máximo en el que una operación puede comenzar sinprovocar un aumento en el makespan. De la misma forma el tiempo de finalización mástardío ct′ij es el tiempo máximo en el que una operación puede finalizar sin provocar unaumento en el makespan (ct′ij = st′ij + pij). Sea oprs la operación sucesora de opij enmáquina. Se definen st′ij y ct′ij de la siguiente forma:

Si es la última en su máquina y la última en su trabajo, ct′ij = Cmax.

Si es la última en su máquina, pero no en su trabajo, ct′ij = st′i,j+1.

Si no es la última en su máquina, pero sí en su trabajo, ct′ij = st′r,s.

Si no es la última en su máquina, ni en su trabajo, ct′ij = min{st′i,j+1, st′rs}.

Teniendo en cuenta todo esto, para una solución a un problema JJS, se pueden distinguirdos tipos de operaciones:

1. Operaciones críticas: Son aquéllas que cumplen que st = st′, es decir, un retraso ensu tiempo de comienzo provocaría un aumento en el makespan.

2. Operaciones con holgura: Son aquéllas que cumplen que st < st′, es decir, un retrasoen su tiempo de comienzo de no más de st′− st unidades no provoca ningún cambioen el makespan.

De forma similar, se define el camino crítico sobre un grafo solución como un caminoformado exclusivamente por operaciones críticas que comienza en el nodo fuente y terminaen el nodo sumidero. Pueden existir varios caminos críticos, y algunos de ellos puedensolaparse parcialmente. Existe otro concepto relacionado denominado bloque crítico, quese define como un conjunto de operaciones críticas consecutivas que se ejecutan en lamisma máquina. Teniendo en cuenta estas definiciones, existe un conjunto de teoremas[108] que se comentan a continuación:

Dada una solución satisfactible, cambiar el sentido de una de las aristas dirigidasperteneciente al camino crítico, da lugar a una solución también satisfactible.

Dada una solución satisfactible, si el cambio en el sentido de una arista no pertene-ciente a ningún camino crítico da lugar a una solución satisfactible, ésta tendrá uncoste igual o mayor que la solución inicial.

26 CAPÍTULO 3. TRABAJO RELACIONADO

Dada una solución satisfactible, cambiar el orden de ejecución de dos operacionesinternas a un bloque crítico da lugar a una solución con un coste mayor o igual quela inicial.

Intercambiar las dos primeras operaciones del primer bloque crítico, si la segunda delas operaciones es interna, da lugar a una solución con un coste mayor o igual quela inicial. De la misma forma, intercambiar las dos últimas operaciones del últimobloque crítico, si la primera de las operaciones es interna, da lugar a una solucióncon un coste mayor o igual que la inicial.

Resumiendo, dada una solución a partir de la cual se desea obtener otra sólo cambian-do el sentido de una arista, las únicas opciones que permiten mejorar el makespan, son elintercambio de las dos primeras o las dos últimas operaciones de cada bloque crítico, te-niendo en cuenta que si se trata del primer y último bloque crítico las dos primeras y lasdos últimas, respectivamente, sólo se intercambian si dicho bloque posee exactamente dosoperaciones.

3.3.4. Programación matemáticaExisten diversas formulaciones de programación matemática para problemas JJS, sin

embargo, la formulación más utilizada es la denominada programación disyuntiva. Dichaformulación está muy relacionada con la representación del problema mediante el grafodisyuntivo. Sea stij el tiempo de comienzo de la operación opij , Ops el conjunto de todaslas operaciones, C el conjunto de aristas de precedencia opij ⇒ opi,j+1 y µij la máquinaen la que opij debe ser ejecutada. El siguiente modelo matemático plantea la minimizacióndel makespan:

minimizar Cmax sujeto a

stih − stij ≥ pij for all (i, j), (j, h) | h > j

Cmax − stij ≥ pij for all (i, j) ∈ Ops

stij − strs ≥ prs or strs − stij ≥ pij for all (i, k), (r, s) ∈ Ops | µij = µrs

stij ≥ 0 for all (i, j) ∈ Ops

En esta formulación, el primer tipo de restricciones asegura que las operaciones quesuceden a otras en un trabajo no pueden comenzar antes de que éstas hayan terminado.El tercer tipo establece que dos operaciones no pueden estar utilizando la misma máquinaal mismo tiempo (restricciones disyuntivas). Es por esto que esta formulación recibe elnombre de programación disyuntiva.

El hecho de que el problema JJS pueda ser formulado matemáticamente de forma sen-cilla no implica que existan procedimientos sencillos para conseguir el óptimo. Conseguirel óptimo en problemas JSS tiene un coste muy alto y los procedimientos de resoluciónsuelen estar basados en enumeraciones o heurísticas.

3.3.5. Heurística basada en cuellos de botella (Shifting Bottleneck Heuris-tic)

La heurística basada en cuellos de botella [1] es un método para resolver problemas JJSbasado en realizar la planificación de cada una de las máquinas en un orden determinadoen función de la máquina que esté actuando como cuello de botella. El algoritmo constade M (no de máquinas) iteraciones, en cada una de las cuales se planifica una máquina,es decir, se establece el orden de todas las operaciones que se ejecutan en dicha máquina.En cada momento se trabaja con un conjunto de máquinas ya planificadas (M0), que irá

3.3. SCHEDULING 27

incrementando a medida que avanza el algoritmo. Se trabaja también con un grafo G quecontiene todas las operaciones, pero no todos los arcos.

Inicialmente G contiene todas las aristas de precedencia y ninguna de recurso. El con-junto de aristas del grafo también irá incrementando a medida que avance el algoritmo.Se puede calcular el makespan Cmax(C0) para dicho grafo como la longitud del caminomás largo desde el nodo fuente hasta el nodo sumidero. Una vez calculado Cmax(C0) parael grafo G, para cada operación se puede determinar el tiempo de liberación rtij como elcamino más largo en G desde el nodo fuente hasta opij , y tiempo de finalización espe-rado dtij que es igual a Cmax(C0) menos el camino más largo desde opij hasta el nodosumidero, más pij .

En cada iteración, las operaciones correspondientes a una misma máquina forman unproblema independiente con una solución también independiente. De esta forma, para cadamáquina no planificada (M − M0), en función de los tiempos rt y dt de cada operaciónde esta máquina, se realiza la planificación óptima para dichas operaciones, obteniendo asíLmax(i) como la mínima longitud del camino más largo en el subproblema formado porlas operaciones ejecutadas en la máquina i, teniendo en cuenta G.

Este problema de optimización es NP-duro, pero existen procedimientos para resolverloque funcionan razonablemente bien. Una vez realizados estos cálculos, la máquina h conla mayor tardanza Lmax(h) es seleccionada para ser incluida en el conjunto M0 y serplanificada. Además, los arcos correspondientes a dicha máquina son añadidos en el grafoG en función del plan óptimo obtenido anteriormente. Ahora es necesario calcular el nuevomakespan, que será al menos Lmax(h) unidades mayor: Cmax(M0 ∪ h) ≥ Cmax(M0) +Lmax(h).

Las operaciones que estaban anteriormente en M0, deben ser replanificadas teniendoen cuenta la inclusión en el grafo de las operaciones correspondientes a la máquina h.

El algoritmo correspondiente a este procedimiento se muestra a continuación:

1. Condiciones iniciales.M0 = ∅El grafo G es el grafo formado por todos los arcos de precedencia y ningún arcodisyuntivo.Cmax igual a la longitud del camino más largo en G.

2. Análisis de máquinas a planificar.Para cada máquina i del conjunto M −M0 se realiza:Formular un problema para esa única máquina con todas sus operaciones teniendoen cuenta los tiempos de liberación y de finalización esperados.Minimizar Lmax en cada uno de dichos subproblemas.Sea Lmax(i) el mínimo Lmax en el subproblema correspondiente a la máquina i.

3. Selección del cuello de botella y secuenciación.Sea Lmax(h) = maxi∈M−M0(Lmax(i))Secuenciar la máquina h acorde a la secuencia generada en el paso 2.Insertar en G todos los arcos disyuntivos correspondientes a la máquina h.Insertar la máquina h en M0.

4. Resecuenciación de todas las máquinas planificadas anteriormente.Para cada máquina l ∈ M0 − h, realizar:Eliminar los arcos disyuntivos correspondientes de G, formular un subproblema parala máquina l con los tiempos de liberación y finalización determinados por el cálculodel camino más largo en G.Encontrar la secuencia que minimice Lmax(l) e insertar los correspondientes arcosdisyuntivos en G.

5. Criterio de parada.Si M0 = M , entonces FIN, en otro caso volver al paso 2.

28 CAPÍTULO 3. TRABAJO RELACIONADO

3.3.6. Programación con restriccionesLa programación con restricciones ha sido comentada en la sección anterior. Puede

ser aplicada a problemas job shop que tienen como función objetivo el makespan de lasiguiente forma: suponemos que tenemos que encontrar un plan con Cmax menor o igualque un valor determinado d. Un algoritmo de satisfacción de restricciones debe producirpara cada máquina una secuencia de operaciones de forma que el tiempo de procesamientofinal de cada máquina no supere d.

En primer lugar es necesario realizar un paso de inicialización, que consiste en realizarlos cálculos adecuados para obtener el tiempo de comienzo más temprano y el tiempode finalización más tardío de cada una de las operaciones en su máquina. Tras esto serealiza una comparación entre las ventanas temporales de todas operaciones asociadas a lasmisma máquina, de forma que si las ventanas temporales de dos operaciones asociadas ala misma máquina no se solapan, es posible establecer una relación de precedencia entreellas: en cualquier plan factible, la operación con la ventana temporal más temprana debeser predecesora de la operación con la ventana temporal más tardía.

Realmente es posible establecer relaciones de precedencia incluso cuando las ventanastemporales se solapan. Sea st′′ij (st′ij) el tiempo posible de comienzo más temprano (mástardío) de la operación opij y ct′′ij (ct′ij) el tiempo posible de finalización más temprano(más tardío) de la operación opij teniendo en cuenta el conjunto de restricciones de prece-dencia dado. El tiempo posible de comienzo más temprano st′′ij de la operación opij puedeser considerado el tiempo de liberación rtij de dicha operación, mientras que el tiempoposible de finalización más tardío ct′ij puede ser considerado como el tiempo de finaliza-ción esperado, dtij . Se define la holgura entre el procesamiento de las operaciones opij yoprs, ambas ejecutadas en la misma máquina, como:

σ(opij)→(oprs) = st′rs − ct′′ij= ct′rs − st′′ij − pij − prs

= dtrs − rtij − pij − prs. (3.1)

Si σ(opij)→(oprs) < 0 entonces, bajo el conjunto de restricciones de precedencia actual,no existe ningún plan factible en el que la operación opij preceda a la operación oprs. Deesta forma se puede establecer una restricción de precedencia que implique que la operaciónoprs se ejecute antes que la opij .

En el paso de inicialización todos los pares de ventanas temporales son comparadosentre ellos de forma que se obtienen las restricciones de precedencia y se añaden al grafodisyuntivo. Debido a las nuevas restricciones de precedencia, las ventanas temporales decada una de las operaciones puede ser ajustadas, es decir, tiene lugar de nuevo el cálculode los tiempos de liberación y de finalización esperados de cada operación.

Las técnicas de satisfacción de restricciones a menudo confían en la propagación derestricciones. Una técnica de satisfacción de restricciones típicamente intenta, en cada pa-so, añadir nuevas restricciones de precedencia (arcos disyuntivos) que a su vez han sidoimplicados por restricciones de precedencia insertadas anteriormente. Una vez las nuevasrestricciones han sido añadidas, tiene lugar el cálculo de las ventanas temporales de todaslas operaciones. Existen otras alternativas de resolución, como instanciar variables en cadapaso, etc.

Para cada par de operaciones que tienen que ser procesadas en la misma máquina secumple uno de los siguientes 4 casos:

1. Caso 1: Si σ(opij)→(oprs) ≥ 0 y σ(oprs)→(opij) < 0, entonces se puede añadir larestricción de precedencia opij → oprs.

2. Caso 2: Si σ(oprs)→(opij) ≥ 0 y σ(opij)→(oprs) < 0, entonces se puede añadir larestricción de precedencia oprs → opij .

3.3. SCHEDULING 29

3. Caso 3: Si σ(opij)→(oprs) < 0 y σ(oprs)→(opij) < 0, entonces no existe un plan quesatisfaga las restricciones actuales.

4. Caso 4: Si σ(opij)→(oprs) ≥ 0 y σ(oprs)→(opij) ≥ 0, entonces cualquier orden entrelas dos operaciones es posible.

3.3.7. Métodos heurísticosEn muchos de los problemas englobados dentro de planificación y scheduling, encon-

trar la solución que optimice una determinada función objetivo puede dotar al problema deuna complejidad NP-dura. Algunas veces es necesario resolver problemas de gran tamañoen un tiempo "pequeño", aunque a cambio no se asegure el óptimo, siempre que las solu-ciones sean presumiblemente de calidad (cercanas al óptimo).

En este apartado se describe un conjunto de reglas que resuelven problemas NP-durosen tiempo polinómico, no garantizando la solución óptima, pero dando lugar a una soluciónaceptable en un tiempo de ejecución relativamente pequeño. Tras esto se comenta un méto-do denominado beam search, que es una variante de técnicas de ramificación y poda. Otrosmétodos heurísticos ampliamente aplicados a problemas de scheduling son simulated an-nealing, búsqueda tabú y algoritmos genéticos, los cuales han sido explicados previamenteen la sección anterior (apartado 3.2.3).

Reglas de prioridad básicas

Una regla de prioridad es una regla que asigna prioridad a todos los trabajos que estánesperando para ser procesados en una máquina. Los esquemas de prioridad pueden teneren cuenta tanto los atributos de los trabajos y de las máquinas, así como el tiempo actual.La investigación en reglas de prioridad ha estado activa durante varias décadas y muchasde ellas han sido desarrolladas y estudiadas en la literatura.

Las reglas de prioridad pueden ser clasificadas de distintas formas. Una de ellas es ladistinción entre reglas estáticas o dinámicas. Las reglas estáticas no son dependientes deltiempo de ejecución, sino que sólo dependen de las características de los trabajos y de lasmáquinas. Por el contrario, las reglas dinámicas son dependientes del tiempo.

Otra clasificación se basa en la información estudiada por la regla para otorgar prio-ridades, de forma que pueden ser locales o globales. Una regla local es aquélla que sóloanaliza la información de cada una de las máquinas por separado, mientras que las reglasglobales usan información de otras máquinas, tal como el tiempo de procesado del trabajoen la próxima máquina en su ruta o la longitud actual de la cola de dicha máquina. Existenmultitud de reglas de prioridad, entre las que se encuentran:

Service In Random Order (SIRO): Acorde a esta regla de prioridad, en cuanto unamáquina es liberada, el siguiente trabajo se selecciona de forma aleatoria de entretodos los trabajos que están esperando para ser procesados en dicha máquina.

Earliest Release Date first (ERD): Es equivalente a la bien conocida regla First-In-First-Out, es decir, la operación que lleva más tiempo esperando a ser procesadaes la que tiene mayor prioridad en cuanto la máquina esté libre. De esta forma seminimizan los tiempos de espera de los trabajos para conseguir una máquina.

Earliest Due Date first (EDD): Es cuanto una máquina es liberada, el trabajo con untiempo de finalización esperado más temprano es seleccionado para ser procesado elsiguiente. Esta regla tiende a minimizar la máxima tardanza entre trabajos esperandopara ser procesados.

Minimum Slack first (MS): Es una variación dinámica de la regla EDD. Si unamáquina es liberada en un instante t, se calcula el tiempo de holgura restante paracada trabajo en ese momento, definido como max(dtj − pj − t, 0), donde dtj es el

30 CAPÍTULO 3. TRABAJO RELACIONADO

tiempo de finalización esperado y pj el tiempo de procesado. Esto implica que enalgún momento un trabajo j puede tener mayor prioridad que un trabajo k, pero queun tiempo después estas prioridades pueden ser iguales. El trabajo con menor tiempode holgura es seleccionado. Esta regla tiende a minimizar objetivos relacionados conel tiempo de finalización esperado.

Longest Processing Time first (LPT): Esta regla ordena los trabajos en orden decre-ciente de tiempo de procesado. Cuando hay máquinas en paralelo, esta regla tiendea equilibrar la carga de trabajo en las distintas máquinas. El razonamiento es el si-guiente: es ventajoso mantener trabajos con tiempos de procesamiento cortos paramás tarde, ya que estos trabajos son útiles al final para equilibrar la carga de trabajo.Una vez asignados los trabajos a las máquinas, los trabajos de cualquier máquinapueden ser resecuenciados sin afectar al equilibrio en la carga de trabajo.

Shortest Setup Time first (SST): En cuanto una máquina es liberada, el trabajo conmenor tiempo de configuración (setup) es seleccionado.

Least Flexible Job first (LFJ): Esta regla se usa cuando hay un conjunto de máquinasno idénticas trabajando en paralelo y y los trabajos están sujetos a restricciones deelección de máquinas. El trabajo j sólo puede ser procesado en un determinado con-junto de m máquinas, denominado Mj . En cuanto una máquina es liberada, se selec-ciona el trabajo que puede ser procesado en el menor número de máquinas alternati-vas posibles, es decir, el trabajo con menos alternativas de procesamiento posibles.

Critical Path (CP): Se usa con operaciones sujetas a restricciones de precedencia. Seselecciona como siguiente trabajo aquél que está en la cabeza de la cadena más largade tiempos de procesado en el grafo de restricciones de precedencia.

Largest Number of Successors (LNS): Puede ser también utilizada cuando los traba-jos están sujetos a restricciones de precedencia. Selecciona como próximo trabajoaquél que posee el mayor número de trabajos sucesores.

Shortest Queue at the Next Operation (SQNO): Se utiliza en job shop problems.En cuanto una máquina es liberada, el trabajo que posea la cola más pequeña a lasiguiente máquina en su ruta es seleccionado para ser procesado. La longitud de lacola a la siguiente máquina puede ser medida de distintas formas, por ejemplo elnúmero de trabajos esperando en cola o la cantidad total de trabajo esperando encola.

Beam Search

Los métodos de ramificación y poda son actualmente unos de los más utilizados paraobtener soluciones óptimas para problemas de scheduling de complejidad NP-dura. Ladesventaja es que pueden presentar una complejidad temporal excesivamente alta dadoque el número de nodos a considerar puede ser muy alto. Beam Search es una variante deramificación y poda que intenta eliminar ramas de forma inteligente para que un análisisde todo el árbol no sea necesario. De esta forma el tiempo de ejecución requerido es másbajo, pero no se puede garantizar que la solución encontrada sea la óptima.

Con los métodos de ramificación y acotación se intentan eliminar nodos determinandoun límite inferior del valor objetivo de todos los planes que pertenecen a la descendenciade dicho nodo. Si el límite inferior es mayor que el valor objetivo de un plan conocido, seelimina el nodo y se ignora su descendencia, porque se sabe que por esa rama no encontraráuna solución mejor que la que ya tiene. Si al comienzo se obtiene un buen plan apoyándoseen alguna heurística adecuada, es posible eliminar un mayor número de nodos durante elproceso de búsqueda. Sin embargo, incluso después de estas eliminaciones es necesario

3.3. SCHEDULING 31

evaluar aún gran cantidad de nodos. La principal ventaja de ramificación y poda es que trasel análisis de todos los nodos, se puede garantizar que la solución encontrada es óptima.

Con beam search sólo los nodos más prometedores en cada nivel son seleccionadospara ser ramificados, descartando el resto de nodos de dicho nivel de forma permanente.Un componente crucial de este método es la forma en la que se decide cuáles son los nodosque se seleccionan para cada uno de los niveles. El hecho de evaluar cada nodo cuidadosa-mente para estimar el potencial de su descendencia puede requerir un alto coste temporal.Una predicción rápida puede dar lugar al descarte de buenas soluciones, mientras que unaevaluación más elaborada puede ser prohibitiva por el consumo temporal requerido. Unapropuesta en dos etapas es útil: en primer lugar se realiza una evaluación rápida de todos losnodos del nivel, tras lo cual se eliminan los que obtengan una peor puntuación. Llegadosa este punto, se realiza una evaluación más profunda sólo a los nodos que hayan superadola evaluación rápida. De esta forma el tiempo requerido es menor al mismo tiempo que laevaluación es profunda. Entre los nodos que pasan ambos filtros se selecciona un conjuntode ellos para ser expandidos, generando así el siguiente nivel del árbol.

En [93] se aplica beam search a problemas de scheduling donde se persigue optimizarel makespan y la tardanza máxima de un conjunto de trabajos, obteniéndose resultadosprometedores en comparación con otras técnicas.

32 CAPÍTULO 3. TRABAJO RELACIONADO

3.4. Planificación

3.4.1. IntroducciónLa planificación es la parte racional de la actuación. Es un proceso abstracto, de explíci-

ta deliberación, que selecciona y organiza acciones anticipando sus resultados esperados[41]. La planificación automatizada es un área de la inteligencia artificial que estudia laelaboración de dicho proceso computacionalmente.

Existen multitud de problemas que se pueden englobar dentro del área denominada Pla-nificación. Dichos problemas, en general, requieren la elaboración de un plan formado poruna secuencia de acciones cuya ejecución da lugar a la obtención de uno o más objetivosplanteados inicialmente. Esta secuencia de acciones puede contener bucles, condiciones,acciones paralelas, etc., aunque normalmente se reducen a un conjunto de tareas que hansido seleccionadas y ordenadas para lograr un fin específico. Dicho fin puede ser de distin-ta naturaleza, como conseguir un conjunto de objetivos, optimizar alguna función objetivo,etc. Las técnicas de planificación generalmente están enfocadas a problemas que incluyenuna selección de acciones que se ejecutan en cascada, existiendo interacciones lógicas com-plejas entre dichas acciones.

En general, se parte de un estado inicial y, mediante la ejecución de acciones, se vapasando a otros estados en los que las condiciones cambian como efecto de la acción apli-cada. De esta forma, para dar solución al problema, es necesario llegar a un estado final através de una secuencia de acciones que se ejecutan desde el estado inicial.

Los trabajos acerca de planificación se engloban dentro de diversos campos, algunosde ellos son: Classical Planning, Hierarchical Task Network (HTN), Decision-TheoreticPlanning, Case-based Planning y Reactive Planning.

La planificación independiente del dominio se basa en modelos de acciones generales yabstractos. Para resolver un problema particular, un planificador independiente del dominiotoma como entrada las especificaciones del problema e información acerca de su dominio.Lo modelos de acciones van desde los más simples, que permiten sólo formas limitadas derazonamiento, hasta modelos que poseen capacidades de predicción más ricas.

En la presente sección se abordan dos tipos de problemas de planificación, ClassicalPlanning y HTN planning. A continuación se incluye un apartado acerca de las técnicas deresolución denominadas Procesos de Decisión de Markov, para terminar con unas brevesconclusiones.

3.4.2. Classical PlanningRepresentación

Uno de los campos más amplios y que engloba a un mayor número de aplicaciones es eldenominado Classical Planning. La especificación de este tipo de problemas se componede:

Un conjunto de literales del cálculo proposicional que pueden ser positivos o nega-tivos y que representan los objetivos perseguidos.

Un conjunto de literales del cálculo proposicional que pueden ser positivos o nega-tivos y que representan el estado inicial, también conocidos como condiciones ini-ciales.

Un conjunto de acciones caracterizadas mediante operadores STRIPS. Un operadorSTRIPS es una plantilla parametrizada para un conjunto de posibles acciones. Cadaacción está formada por:

• Un conjunto de precondiciones: conjunto de literales positivos o negativos quedeben ser ciertos para que una acción pueda ser ejecutada.

3.4. PLANIFICACIÓN 33

• Un conjunto de efectos o cambios: conjunto de literales positivos o negativosque pasan a ser ciertos tras la ejecución de la acción.

Como se ha indicado anteriormente, para que una acción pueda ser ejecutada, es nece-saria la existencia de los literales de precondición. Por lo tanto, en cada momento, en fun-ción de los literales que sean ciertos (estado del mundo) existirá un conjunto de posiblesacciones a ejecutarse. Cada vez que se ejecuta una acción, el conjunto de literales actualescambia, provocando por tanto un cambio también en las posibles acciones a ejecutar, evolu-cionando así el estado del sistema.

Una solución para el problema viene determinada por una secuencia de acciones que,partiendo del estado inicial, dan lugar a la obtención de los objetivos especificados en elproblema (estado final).

Mediante los operadores STRIPS las precondiciones y los efectos sólo se pueden es-pecificar mediante la conjunción de literales. Existe una extensión denominada ADL [85]que permite disyunción de literales en las precondiciones, condiciones en los efectos y eluso de cuantificadores universales tanto en precondiciones como en efectos.

Técnicas de resolución

Existen multitud de técnicas de resolución para problemas de Classical Planning. Eneste apartado se muestran las que se consideran más relevantes.

Forward State Space Search (FSS) La búsqueda hacia delante en el espacio de estadosconsiste en evolucionar desde el estado inicial hacia un estado final, pasando por un con-junto de estados intermedios. El paso de un estado a otro se realiza por medio de una acciónu operación. Un algoritmo FSS en cada paso realiza una selección de uno de los posiblesoperadores válidos para ese estado (operadores cuyas precondiciones se cumplan), pudien-do realizar dicha selección de diversas formas. La búsqueda continúa hasta que se llega aun estado final.

El mayor de los inconvenientes de esta técnica es que el espacio de búsqueda puede sermuy grande debido a las posibles acciones a ejecutar en cada paso. Una mala elección deuna acción en un paso determinado puede dar lugar a un alto coste temporal y de memoria.Existen multitud de aproximaciones que se basan en el uso de heurísticas de selección deoperadores que exploran sólo una fracción del espacio de búsqueda. Por otro lado existenalgunos trabajos [6, 7] que usan fórmulas en lógica proposicional para proporcionar unaguía basada en dominios.

Goal-directed Planning Esta técnica de resolución se basa en la idea de construir el plandesde los objetivos perseguidos hacia el estado inicial. Consiste en una búsqueda hacia atrásen el espacio de estados, de forma que se parte del estado final, y en cada paso del algoritmose selecciona una acción de entre todas las permitidas en dicho estado. Dado un estadodeterminado, las acciones posibles son aquéllas cuyos efectos contienen al menos un literalque es cierto en ese estado. El nuevo estado al que se pasa contiene los mismos literalesque el estado actual, eliminando los que sean efecto de la acción elegida, y añadiendo losque forman parte de la precondición. De esta forma un objetivo (efecto) es sustituido porun conjunto de subobjetivos (precondiciones). El algoritmo termina cuando se llega a unestado que contiene los literales del estado inicial.

Al igual que la técnica de resolución FSS, este tipo de algoritmos es relativamente sim-ple si se mantiene un orden estricto de ejecución en las acciones. En cambio, para obtenersoluciones factibles en acciones que se encuentran parcialmente ordenadas, es necesariomantener en cada momento la influencia que pueden tener las unas sobre las otras. Esto selleva a cabo en la mayoría de los casos haciendo uso de enlaces causales. A lo largo de unplan, se mantiene un conjunto de enlaces causales que indica las proposiciones que debenser ciertas entre la ejecución de ciertas acciones. De esta forma, cuando se añade una nueva

34 CAPÍTULO 3. TRABAJO RELACIONADO

acción a un plan con el fin de obtener un objetivo (o subobjetivo), también se añade unenlace causal para asegurar que el subobjetivo se mantiene (es cierto) entre la acción quelo consigue y la acción que lo necesita.

Durante la elaboración del plan, de forma periódica, se comprueba que se verificanlos enlaces causales y que ninguna acción los amenaza. En este caso, se impone un or-den entre las acciones mediante restricciones de forma que se eliminen dichas amenazas.Los planificadores que utilizan esta aproximación usan enlaces causales de orden parcial(Partial Order Causal Link, POCL [22]). Con este tipo de planificadores no se han con-seguido muy buenos resultados, y a pesar de que normalmente el grado de ramificación enla búsqueda hacia atrás es más pequeño que en la búsqueda hacia delante, siguen dandolugar a espacios de búsquedas demasiado grandes, y por lo tanto, inabordables cuando eltamaño del problema es elevado. A esto hay que añadir el coste que supone mantener encada momento el conjunto de enlaces causales, que puede ser muy alto. Al igual que enFSS, existen muchas heurísticas que guían la búsqueda y que influyen considerablementeen los resultados obtenidos.

Este tipo de planificadores ha sido extendido más allá del paradigma de planifica-ción clásica, encontrando planificadores que manejan operadores con efectos condicionalescuantificados (UCPOP [86]), además de otras características del lenguaje ADL. Tambiénexisten otros planificadores capaces de trabajar con tiempos de ejecución, con cantidadesmétricas, con incertidumbre, etc. Como se ha indicado anteriormente, el principal proble-ma de este tipo de planificadores es que sólo puede trabajar con problemas de un tamañolimitado.

Graphplan Graphplan [12, 13] es un sistema se planificación que utiliza técnicas muy di-ferentes del resto de planificadores (que había hasta ese momento) para realizar la búsquedade planes adecuados. La idea básica es llevar a cabo un tipo de análisis de accesibilidad paraasí poder excluir ciertas combinaciones y secuencias de operadores que no son compatibles.Partiendo del estado inicial, este planificador va averiguando cuáles son las proposicionesque se pueden obtener después de un paso de la ejecución de un operador, después de dospasos, de tres pasos, etc. Esto lo realiza de forma que, tras el primer paso, el conjunto de lasproposiciones que se pueden obtener está formado por la unión de los literales que aparecenen los efectos de todas las acciones posibles a ejecutar en el estado inicial.

Sin embargo, no todas las proposiciones son compatibles, ni pueden ser ciertas al mis-mo tiempo. Del mismo modo, existen acciones incompatibles. Para obtener toda esta infor-mación de incompatibilidad, Graphplan infiere relaciones binarias de exclusión mutua entreacciones y proposiciones incompatibles, de forma que se obtienen las siguientes reglas:

Dos acciones se encuentran en exclusión mutua en un paso determinado si se daalguna de las siguientes situaciones:

• Ambas acciones tienen efectos opuestos.

• Alguno de los efectos de una de ellas es opuesto a alguna precondición de laotra.

• Presentan precondiciones con exclusión mutua en ese paso.

Dos proposiciones se encuentran en exclusión mutua en un paso determinado si seda alguna de las siguientes situaciones:

• Son literales opuestos.

• Si todas las acciones que dan lugar a dichas proposiciones son mutuamenteexcluyentes en el paso anterior.

Los planificadores basados en Graphplan obtienen mejores resultados que POCL en lamayoría de los casos estudiados.

3.4. PLANIFICACIÓN 35

Al igual que POCL, Graphplan ha sido extendido a problemas con razonamiento conincertidumbre [12], con consideraciones limitadas de tiempo [98] y con cantidades métricas[59].

Planning and Satisfiability La idea básica de las técnicas de planificación y satisfactibil-idad es adivinar la longitud de un plan, traducir el problema de planificación a un conjuntode fórmulas proposicionales, e intentar resolver el problema de satisfactibilidad resultante.Si dicho conjunto de fórmulas es insatisfactible, la longitud se incrementa y se repite el pro-ceso. Existen diversas variantes basadas es esta técnica [57, 34], pero todas ellas compartenel empleo de variables proposicionales para:

cada posible acción en cada paso. Indica la presencia o ausencia de dicha acción enese paso.

cada posible proposición en cada paso. Indica si dicha proposición es cierta o no enese paso.

Se consideran relevantes los siguientes puntos:

Condiciones iniciales.- En el paso 0, todas las proposiciones que forman parte delestado inicial son ciertas.

Objetivos.- En el último paso, todas las proposiciones que forman parte del estadofinal son ciertas.

Acciones.- Cada acción que tenga lugar en el paso k-ésimo implica que sus precondi-ciones son ciertas en dicho paso y que sus efectos lo son en el k+1-ésimo.

Causalidad.- Si una proposición es cierta en un paso k y falso en el paso k + 1, en-tonces al menos una de las acciones que provocan que dicha proposición se conviertaen falsa debe haber ocurrido en el paso k. Idem cuando una proposición pasa de falsoa cierto en un paso.

Exclusión.- Dos acciones incompatibles no pueden tener lugar en el mismo paso.

Una vez se haya realizado la traducción del problema de planificación a lógica proposi-cional, se pueden aplicar rápidos algoritmos de simplificación, tales como propagaciónunitaria o eliminación de literales. Para la búsqueda de soluciones es posible utilizar tantométodos estocásticos como métodos sistemáticos.

En [115] es posible encontrar una introducción a planificación SAT.

3.4.3. HTN PlanningLas técnicas de planificación Hierarchical Task Network (HTN) [116, 121, 80] se basan

en reducir tareas de alto nivel en tareas primitivas. En HTN planning el objetivo se especi-fica normalmente como una tarea de alto nivel que debe ser conseguida, en lugar de serespecificado como un conjunto de literales que deben ser ciertos. A partir de una tarea enalto nivel, la resolución se lleva a cabo mediante un proceso recursivo que va transformandotareas de alto nivel en tareas de un nivel inferior que logran las tareas superiores (expan-sión). La transformación de tareas se lleva a cabo mediante reglas denominadas métodos.Un método transforma una tarea en una red de tareas parcialmente ordenada junto con unconjunto de restricciones.

Tras cada paso de expansión, el planificador HTN realiza una detección de conflictosentre tareas de la red. En caso de que existan conflictos, se resuelven haciendo uso de unosobjetos denominados critics, que normalmente imponen restricciones de orden adicionalesy combinan o eliminan acciones solapadas.

36 CAPÍTULO 3. TRABAJO RELACIONADO

El proceso de resolución llega a su fin cuando la red de tareas resultante tras el pasode expansión contiene sólo tareas primitivas, siendo además el conjunto de restriccionesconsistente.

Los sistemas de planificación HTN no presentan mucha dificultad a la hora de trabajarcon tiempo y cantidades métricas. Estas restricciones pueden ser especificadas dentro delos métodos y la consistencia puede ser verificada con restricciones. También es relativa-mente fácil combinar sistemas de planificación HTN con sistemas de scheduling, ya queuna vez que una red de tareas ha sido reducida a un conjunto de tareas primitivas, es posibleutilizar un sistema de scheduling para optimizar el orden de la tareas que componen la redresultante.

La fuerza de este tipo de sistemas radica en que la búsqueda puede ser estrechamentecontrolada con el diseño adecuado de los distintos métodos. En planificación clásica, lasprecondiciones y los efectos de una acción especifican cuándo una acción puede ser utiliza-da y qué se puede conseguir tras la ejecución de la misma. Por otro lado, en planificaciónHTN, los métodos especifican de forma precisa qué combinaciones de acciones pueden serutilizadas para propósitos parciales. Es decir, los planificadores HTN indican cómo usar lasacciones, mientras que los planificadores clásicos deben averiguarlo a partir de la descrip-ción de las mismas.

Este tipo de planificación presenta varios inconvenientes, entre los que destacan lossiguientes:

Semántica.- Para que los planificadores HTN funcionen correctamente, es fundamen-tal la definición clara y precisa de la semántica de los métodos de descomposición ydel comportamiento del sistema, lo que no es una tarea fácil en algunos casos.

Ingeniería.- En general, es difícil desarrollar un conjunto de operaciones completopara una aplicación. En primer lugar, es necesario anticiparse a todos los diferentestipos de tareas hacia los que el sistema se dirigirá y todos los caminos útiles parael logro de las tareas objetivos. Los métodos desarrollados deben cubrir todas estasposibilidades. Si existen muchos tipos diferentes de tareas, y/o un número conside-rable de caminos para conseguirlas, definir los métodos de forma adecuada puedeser una difícil tarea de ingeniería. Los cambios en el dominio también pueden serproblemáticos, de forma que cualquier cambio en alguna de las características delsistema puede dar lugar a grandes cambios en los métodos especificados.

Fragilidad.- La fragilidad de los planificadores HTN radica en que son incapaces demanejar tareas que no fueron explícitamente descritas anteriormente por el diseñador,incluso si las acciones primitivas disponibles son suficientes para construir un planválido.

3.4.4. Procesos de Decisión de Markov

Existen muchos problemas secuenciales de decisión que han sido modelados haciendouso de Procesos de Decisión de Markov (Markov Decision Processes, MDPs), que puedeser extendido también a la resolución de problemas de planificación con incertidumbre.

Básicamente, un MDP es un espacio de estados en el que la transición entre los dis-tintos estados es de naturaleza probabilística. Por ejemplo, en un sistema puede ocurrirque una acción no siempre consigue su objetivo, sino que posee una probabilidad de fallodeterminada.

Tradicionalmente, problemas MDPs se han resuelto utilizando técnicas muy potentesdenominadas valor-iteración y política-iteración [91]. Dichas técnicas encuentran políticasóptimas para un problema MDP, que ascienden a planes condicionales que especifican quéacciones se deben llevar a cabo en cada posible estado del problema.

3.4. PLANIFICACIÓN 37

El principal inconveniente de esta técnica es el tamaño del espacio de estados que puedetener el problema, por lo cual multitud de trabajos en esta área se han centrado en limitardicho espacio de estado, destacando dos estrategias:

uso de representaciones más compactas que exploten el hecho de que, normalmente,varias proposiciones y acciones son independientes.

uso de técnicas de aproximación que expandan sólo las porciones del espacio deestados que posean una mayor probabilidad de ser útiles.

Dichas técnicas han sido utilizadas satisfactoriamente en gran cantidad de problemascon incertidumbre, tales como tareas de navegación de robots, donde la posición y la orien-tación del robot tras un movimiento tienen un grado de incertidumbre [21].

El tamaño del espacio de estados sigue siendo un obstáculo considerable, pero ademásexisten otros inconvenientes a tener en cuenta:

Observabilidad completa.- MDP asume que, tras la ejecución de una tarea con unasalida con incertidumbre, un agente puede observar el estado resultante. Esto no essiempre posible teniendo en cuenta que las máquinas tienen un número de sensoreslimitado y la detección es costosa.

Tiempo atómico.- No existen modelos explícitos donde sea posible representar eltiempo. Las acciones se modelan como eventos discretos, instantáneos e ininterrum-pibles. Si se permiten acciones concurrentes o eventos exógenos da lugar a un granincremento en el tamaño del espacio de estados.

Objetivos.- Es difícil expresar problemas que posean un objetivo a conseguir en elentorno de MDP. En general, deben ser modelados como problemas de horizonteinfinito o como una sucesión de problemas de horizonte finito muy grandes.

Políticas.- Las políticas óptimas son, en la mayoría de los casos, muy extensas ydifíciles de comprender. Si los humanos pueden examinar, comprender y llevar acabo planes, entonces es mejor contar con planes simples y compactos, que cubransólo las necesidades más críticas.

3.4.5. ConclusionesEn esta sección se han comentado ciertos tipos de problemas que se engloban dentro

del área denominada planificación. Dicha área es muy extensa y abarca multitud de tiposde problemas, de técnicas de resolución, etc. Es un área de interés actual ya que hoy en díase llevan a cabo muchos trabajos relacionados con este tema, incluso existen competicionesacerca de diversos aspectos de la planificación.

La sección anterior trata acerca de scheduling, que está íntimamente relacionado conplanificación, ya que ambos tratan de planificar tareas en el tiempo con la diferencia de queen scheduling las tareas a planificar son conocidas de antemano, mientras que en planifica-ción hay que decidir las tareas que formarán parte de la solución.

Existen muchos trabajos que combinan planificación y scheduling, ya que multitud deproblemas reales necesitan dicha combinación para obtener una solución adecuada. Cuandoun problema necesita conseguir un objetivo a través de la ejecución de una secuencia deacciones desconocidas de antemano (planificación) y cada una de estas tareas tiene untiempo de ejecución determinado y requieren un recurso específico, existiendo restriccionestemporales entre ellas y se desea optimización en el tiempo total de ejecución (scheduling),estamos hablando de un problema que combina ambos campos.

La mayoría de las técnicas de planificación clásicas no son capaces de representar o derazonar con recursos, cantidades métricas o tiempo continuo. Por otro lado, la mayoría delas técnicas suelen ignorar la optimización. Por esto, existen trabajos que intentan extender

38 CAPÍTULO 3. TRABAJO RELACIONADO

las técnicas de clasificación clásicas para que sean capaces de tratar con recursos [33, 62],cantidades métricas [59, 87] y que permitan criterios de optimización [117, 113]. Además,se pueden encontrar trabajos que extienden las técnicas de planificación para que puedantrabajar con tiempo continuo y restricciones de tiempo [87, 98].

Uno de nuestros trabajos [109], que se explica en detalle en la sección 3.6, se basaprecisamente en una propuesta de modelo CSP para resolver el problema de la reparaciónde componentes defectuosos, que combina aspectos tanto de planificación (es necesariodecidir qué tareas seleccionar para conseguir el objetivo) como de scheduling (es nece-sario establecer un orden de ejecución de las tareas que presentan restricciones tanto deprecedencia como de recursos, intentando optimizar el tiempo total de ejecución).

3.5. PLANIFICACIÓN DEL MANTENIMIENTO Y LA REPARACIÓN DE SISTEMAS39

3.5. Planificación del mantenimiento y la reparación desistemas

3.5.1. IntroducciónEn esta sección se aborda el problema del mantenimiento de sistemas que se consi-

deran formados por un conjunto de componentes, los cuales se encuentran vinculados oconectados formando un sistema completo. Este tipo de problemas se incluyen en multi-tud de campos, entre los que se encuentran aplicaciones mecánicas, electrónicas, sistemassoftware, industriales, plantas de producción, etc.

En general, las interacciones o conexiones entre componentes se pueden clasificar entres tipos [105]:

Dependencia económica: implica que la producción o ganancia se mantiene sólocuando varios componentes permanecen vinculados en lugar de separados, por lo queel mantenimiento debe realizarse de forma que el tiempo de aislamiento entre dichoscomponentes sea mínimo de cara a optimizar la ganancia económica. Una buenaidea es realizar la etapa de supervisión o mantenimiento de todos los componentesque están vinculados al mismo tiempo, ya que mientras se supervisa o mantiene uncomponente se paraliza la ganancia del subsistema completo al que pertenece.

Dependencia estructural: se aplica si los componentes estructuralmente forman unbloque o si existe conexión entre los componentes, así pues el mantenimiento deun componente defectuoso implica el mantenimiento también de los demás compo-nentes del mismo bloque.

Dependencia estocástica: ocurre si el estado de un componente influye en la distribu-ción del tiempo de vida de otros componentes, o si existen causas externas al sistemaque provocan fallos y, por lo tanto, influyen en sus tiempos de vida.

La mayoría de los modelos de mantenimiento consideran una sola dependencia de entrelas anteriores, ya que combinar más de una da lugar a modelos demasiado complejos deresolver o analizar [29].

Normalmente, existe un plan de mantenimiento previamente especificado para el sis-tema, que suele consistir en la inspección cada cierto tiempo de los componentes, conlle-vando la ejecución de una serie de tareas. La ejecución de tareas de mantenimiento llevaasociado un coste (temporal, económico, etc), al mismo tiempo que reduce la probabilidadde ocurrencia de errores en el sistema, por lo que es necesario determinar cuál es el balanceadecuado para optimizar la producción y la disponibilidad del mismo. Teniendo en cuentaesto, existen multitud de estrategias de mantenimiento, la mayoría de las cuales se puedenenglobar en [82]: mantenimiento correctivo, que conlleva la reparación o el reemplazo decomponentes defectuosos, mantenimiento preventivo (Preventive Maintenance, PM), queinicialmente realiza la planificación de tareas de mantenimiento para prevenir los fallosdel sistema, y mantenimiento oportunista, en el que el mantenimiento de un determinadocomponente defectuoso se ve como una oportunidad para mantener otros.

El sistema completo, en algún momento de su ciclo de vida, puede presentar un com-portamiento anómalo o inesperado, que se supone debido al fallo de alguno o algunos desus componentes o recursos. Esto hace que las tareas asociadas al mantenimiento se debanreplanificar, cambiando de orden algunas de ellas en caso de que sea necesario, e inclusoincluyendo nuevas tareas y/o eliminando otras que previamente existían. En esta situación,el primer paso a seguir es detectar o diagnosticar el componente o los componentes de-fectuosos, lo que se realizará en ciertos casos con una determinada probabilidad de fallo.Existen trabajos [60] en los que se considera que cada uno de los componentes posee unaprobabilidad determinada de ser el responsable del fallo. Es posible encontrar muchas pro-puestas para realizar la diagnosis, una de las más interesantes es la diagnosis basada enmodelos, que se comenta en el apartado 3.5.2.

40 CAPÍTULO 3. TRABAJO RELACIONADO

Una vez que se ha diagnosticado el origen del comportamiento erróneo del sistema,es necesario realizar una secuencia de tareas para paliar dicho comportamiento erróneo,entre las que se encuentran: desconexión de ciertas conexiones o vínculos del sistema paraacceder al componente defectuoso, reparación o sustitución de dicho componente, y, porúltimo, recomposición del sistema, es decir, volver a establecer las conexiones para obtenerde nuevo el sistema completo (esta secuencia de etapas se comenta en más detalle en elapartado 3.5.2).

Uno de los objetivos buscados en este tipo de problemas es la obtención de un plan dereparación óptimo teniendo en cuenta una función de coste determinada. Con frecuencia,dicha función es la minimización del tiempo total de reparación: tiempo empleado en ladesconexión, junto con el tiempo de la reparación o sustitución del componente defectu-oso, unido al tiempo de recomposición del sistema. Otro objetivo perseguido generalmentees disminuir los costes derivados del cese de funcionamiento del sistema (o parte de él)durante el mantenimiento o la reparación y los costes de la reparación.

Esta sección se organiza como sigue: en la siguiente sección se presenta el manteni-miento de sistemas, incluyendo aspectos relevantes tales como el mantenimiento preven-tivo, la sustitución o reparación de componentes defectuosos, y la diagnosis basada enmodelos. A continuación, se detallan aspectos de interés de la planificación del proceso dedesconexión y recomposición del sistema, seguido por la representación de dicho procesomediante grafos And/Or. También se abordan métodos de programación matemática pro-puestos para la resolución de este tipo de problemas, junto con los planificadores adaptablesy los métodos de Inteligencia Artificial, para terminar con un breve resumen de las redesde Petri.

3.5.2. Mantenimiento de sistemas

Mantenimiento preventivo

Cuando se lleva a cabo el mantenimiento de un sistema o la reparación de un com-ponente, el funcionamiento del sistema debe ser pausado y la disponibilidad del mismose reduce, provocando una reducción en los servicios que lleva a cabo. El mantenimientopreventivo (Preventive Maintenance, PM) consiste en una actividad planificada destinada amejorar la fiabilidad y la disponibilidad de un sistema [107].

El PM se suele planificar para intervalos periódicos de tiempo para cada equipo o sis-tema. Generalmente, implica tareas tales como inspección, limpieza, ajustes y sustitución oreparación de componentes defectuosos. Una buena opción sería poder definir una política(un plan para las actividades de mantenimiento) de tal forma que el coste global de fallosdel sistema, de mantenimiento y sustitución durante su ciclo de vida, se minimizara, almismo tiempo que se maximize el rendimiento.

Un aspecto muy importante en el PM es determinar cuándo, durante cuánto tiempo serealiza el mantenimiento y sobre qué componentes, para que el funcionamiento del sistemase pueda mantener en la situación óptima al mismo tiempo que se minimiza el impactodebido a la reducción de los servicios ofrecidos [97]. En este sentido, la predicción delcalendario del PM necesario es crítica, al mismo tiempo que puede ser una tarea compleja,dependiente de muchos factores, entre los que se encuentran: el modo de funcionamientodel sistema, tiempo de preparación de los recursos concretos, disponibilidad de los recursosdurante el mantenimiento, etc.

En [107] se presenta un modelo para planificar las futuras PM para un sistema sujetoa un creciente ratio de ocurrencia de fallos (Rate of OCcurrence Of Failures, ROCOF),también denominado deterioro, durante un número de periodos. Para cada periodo en elfuturo, se asume que debe planificarse una de las siguientes actividades:

Do nothing: en este caso no se planifica ninguna acción, es decir, el sistema continúacon su ritmo natural de comportamiento.

3.5. MANTENIMIENTO DE SISTEMAS 41

R a t

i o d

e o c

u r r

e n c i

a d

e f a

l l o s

Periodo j Periodo j+1

a. Efecto de realizar mantenimiento en el periodo j en un sistema ROCOF

R a t

i o d

e o c

u r r

e n c i

a d

e f a

l l o s

Periodo j Periodo j+1

b. Efecto de realizar un reemplazo en el periodo j en un sistema ROCOF

Figura 3.3: Ratio de ocurrencia de fallos en un sistema ROCOF

42 CAPÍTULO 3. TRABAJO RELACIONADO

Diagnosis

Desconexión de los componentes defectuosos

Recomposición del sistema

Sustitución/reparación de los componentes

defectuosos

Plan sustitución/ reparación

Figura 3.4: Diagrama de las etapas para la sustitución/reparación de componentes defec-tuosos

Maintenance: el sistema debe ser mantenido. Esta actividad se sitúa entre do no-thing y replacement. La realización de una actividad de mantenimiento en el sistemaproduce un efecto sobre el ROCOF (3.3.a).

Replacement: el sistema debe ser sustituido, su ciclo de vida ha finalizado. La realiza-ción de una actividad de reemplazo en el sistema produce un efecto sobre el ROCOF(3.3.b).

Es importante destacar que el PM tiene una gran influencia en la productividad de lossistemas, por lo que es conveniente realizar un análisis adecuado del mismo y obtener asíun buen plan de mantenimiento.

Sustitución/reparación de componentes defectuosos

Una vez que se establece el calendario de revisión de componentes para el manteni-miento, en caso de que se detecte algún comportamiento erróneo, es necesario llevar a cabouna serie de pasos. En la figura 3.4 se muestra un diagrama que contiene las etapas a realizaren caso de fallo:

1. Diagnosis: En esta etapa se diagnostica el componente o los componentes defectuo-sos, es decir, los responsables del comportamiento erróneo del sistema. Puede serque se realice con un grado de incertidumbre determinado, otorgando una probabili-dad de error a uno o más componentes diagnosticados. Existen distintas propuestaspara realizar esta etapa, la mayoría de las cuales se engloban en diagnosticadores em-píricos o basados en heurísticas y diagnosticadores basados en modelos. Este últimoenfoque se comenta en la siguiente sección.

2. Desconexión de los componentes defectuosos: Una vez el componente defectuosoes diagnosticado, es necesario la separación de ciertas relaciones existentes entre los

3.5. MANTENIMIENTO DE SISTEMAS 43

componentes del sistema, con la finalidad de aislar el componente defectuoso. Pararealizar esta etapa, es necesario especificar un plan, que generalmente perseguiráminimizar su tiempo de ejecución.

3. Sustitución/reparación de los componentes defectuosos: Tras aislar el compo-nente defectuoso del resto del sistema, es necesario repararlo o sustituirlo de formaque vuelva a realizar sus funciones correctamente.

4. Recomposición del sistema: En cuanto el componente defectuoso ha sido reparadoo sustituido, se procede a la conexión de los componentes que han sido previamenteseparados, para dar lugar al sistema completo. En este caso, el conjunto de tareasnecesarias para llevar a cabo este cometido también deberán ser planificadas, en ge-neral, intentando minimizar el tiempo total de ejecución. Este proceso no es necesa-riamente inverso al de desconexión, ya que se pueden incluir nuevas operaciones.

Con respecto a la planificación de las etapas de desconexión y recomposición del sis-tema, un análisis conjunto de las tareas que las componen puede dar lugar a la obtenciónde planes más rápidos que si se analiza cada etapa por separado, debido a que los procesospueden solaparse y ciertas tareas correspondientes a ambas etapas se podrían llevar a caboen paralelo. Este análisis conjunto de las tareas de las dos etapas puede dar lugar a planescon un menor tiempo de ejecución, a cambio de incrementar la complejidad del problemaa tratar. Todo esto se discute en la sección 3.6.

Diagnosis basada en modelos

La propuesta de diagnosis basada en modelos [95] representa un giro conceptual desdelas primeras generaciones de sistemas expertos de diagnosis. Mientras que los sistemasexpertos tradicionales confiaban en diagnosticadores empíricos o heurísticos que utilizabanconocimiento inferido a partir de cierta información, la propuesta basada en modelos secentra en una descripción o modelo independiente de las tareas del sistema a diagnosticar.

La propuesta basada en modelos supera ciertas limitaciones de los sistemas basados enheurísticas, algunas de las cuales se comentan a continuación:

La obtención de normas de diagnóstico desde un dominio experto, y el mantenimien-to y actualización de la base de conocimiento, es costoso y difícil de realizar.

Tratamiento de casos complejos con los sistemas basados en heurísticas, como lapresencia de más de un componente defectuoso, es problemático. La diagnosis basa-da en modelos facilita el tratamiento de casos más complejos.

La propuesta basada en modelos conlleva la construcción de un modelo para el sistemaque se desea diagnosticar. Dicho modelo debe describir la estructura del sistema (los com-ponentes y sus conexiones, información de la reparación o sustitución de los componentes)y la funcionalidad o el comportamiento de dichos componentes.

Los seguidores de esta propuesta afirman que estos modelos son más fáciles de construiry de mantener, que no requieren experiencia (es decir, un modelo puede ser construidodirectamente desde el diseño de un nuevo sistema), y son independientes de las tareas (elmismo modelo puede ser utilizado tanto por un diagnosticador para un motor como paraotras tareas, tales como simulación o monitorización).

3.5.3. Planificación del proceso de desconexión y recomposición delsistema

La desconexión de un sistema es necesaria, básicamente, en tres situaciones: cuandotermina el tiempo de vida de un producto (reciclaje), cuando existe un error en el com-portamiento del mismo debido al fallo de uno de sus componentes, y para llevar a cabo

44 CAPÍTULO 3. TRABAJO RELACIONADO

el mantenimiento del sistema, inspeccionando los componentes que lo forman cada ciertotiempo.

Los procesos de desconexión y composición de un sistema son inversos y están íntima-mente relacionados, por lo que el estudio de uno de ellos da lugar, en general, a la obtenciónde información relevante acerca del otro.

Las secuencias de desconexión están formadas por acciones de desconexión. Una ac-ción se determina, normalmente, desde un punto de vista de la ingeniería, es decir, la sepa-ración de un sistema en dos o más subsistemas, o la ruptura de una o más conexiones entrecomponentes. Generalmente, un sistema que está formado por un conjunto de componentesse puede descomponer llevando a cabo diferentes secuencias de acciones, lo que da lugar aque la selección de la secuencia óptima sea un aspecto crucial en este ámbito. Los trabajosrealizados para secuencias de desconexiones han tenido, en general, diversos propósitos,entre los que se encuentran:

Construcción y reparación remota en entornos inaccesibles (o de difícil acceso) talescomo en naves espaciales y equipos nucleares.

Reparación y mantenimiento óptimos.

Como se ha comentado anteriormente, la desconexión y la composición de sistemasson dos aspectos muy relacionados, pero que poseen algunas diferencias, entre las quecabe destacar las siguientes:

Normalmente la desconexión no se realiza de forma completa, en la mayoría de loscasos se prefiere la desconexión incompleta.

A menudo, el proceso de descomposición no es completamente reversible.

El valor añadido en procesos de desconexión es normalmente modesto comparadocon el obtenido en recomposición.

La desconexión se lleva a cabo por humanos en lugar de líneas automáticas de ensam-blajes o robots. En ensamblaje hay más operaciones robotizadas que en desconexión,pero siguen existiendo muchas manuales.

La desconexión de un determinado sistema se puede llevar a cabo de distintas formas.En general, se expresa como una secuencia de operaciones unitarias de desconexión. Parala selección de la secuencia óptima de tareas se pueden utilizar diversas estrategias, talescomo heurísticas, metaheurísticas, programación matemática, etc.

Los métodos heurísticos y metaheurísticos se basan en: la búsqueda parcial (no seasegura el óptimo, pero en general se obtienen los resultados en un tiempo menor) o labúsqueda completa del espacio de soluciones (en este caso se asegura que el resultadoobtenido es óptimo, pero en general el coste temporal es alto). Los métodos de progra-mación matemática generan la solución óptima y son potencialmente útiles para el diseñoy la evaluación de algoritmos basados en heurísticas que realizan un análisis parcial delespacio de búsqueda, ya que pueden determinar en qué medida el resultado del cálculo deuna heurística es bueno. Desafortunadamente, el tiempo de cálculo necesario para ejecutarun procedimiento de solución exacta tiende a incrementarse con el tamaño del problema,por lo que si éste se incrementa exponencialmente, el método se limita sólo a sistemas deuna complejidad y/o tamaño limitados.

3.5.4. Representación mediante grafos And/OrUna de las primeras representaciones gráficas del proceso de conexión y desconexión

de componentes de un sistema, en forma de árbol, fue propuesta por Bourjault en 1984[15]. En 1986, el trabajo de Bourjault fue extendido por De Fazio y Whitney [28] para dar

3.5. MANTENIMIENTO DE SISTEMAS 45

ABCDE

ABCD

T 1

T 2

T 3

ACD

T 4

T 5

AC

T 6

T 7

T 8

A

AD BE

B C D E

(1)

(2)

(3)

(4) (5) (6)

(7) (8) (9) (10) (11)

Figura 3.5: El grafo And/Or para el sistema ABCDE

lugar a la representación basada en estados, que presentaba algunas desventajas que fueronsuperadas gracias a la aparición de los grafos And/Or o hipergrafos.

Los grafos And/Or se han utilizado ampliamente en varios campos de ingeniería robóti-ca a lo largo de muchos años [2] y de la inteligencia artificial. Dichos grafos posibilitan larepresentación de procesos de desconexión haciendo uso de grafos de desconexión basadosen subsistemas en lugar de basados en estados.

La representación mediante grafos And/Or, que fue introducida por Homem de Mello ySanderson (1990) [48], permite una representación compacta de todas las posibles secuen-cias válidas de recomposición. Esto da lugar a una poderosa herramienta para la selecciónde los mejores planes de recomposición, para la selección de los mejores planes de des-conexión y reparación, etc. La recomposición/desconexión paralela se representa por estegrafo de forma natural.

En un trabajo posterior (1991) [49] se presentó un algoritmo que producía todos lassecuencias de desconexión válidas a partir de un grafo And/Or determinado. En general,esto da lugar a inmanejables cantidades de información, particularmente si se incluyen lassecuencias incompletas.

En la figura 3.5 se muestra el grafo And/Or correspondiente a un sistema formado por5 componentes (A, B, C, D y E). Los nodos que representan los subsistemas son nodosOR, y se puede elegir la tarea que se desee ejecutar para la composición/descomposicióndel mismo de entre los nodos sucesores. Por ejemplo, vemos como para descomponer (uobtener) el sistema ABCDE se puede ejecutar o bien la tarea T1 o bien la tarea T2. Lasoperaciones o tareas son los nodos AND, y la selección de una tarea de desensamblajeda lugar a la obtención de los submontajes hijos, mientras la selección de una tarea deconexión da lugar a la obtención del submontaje padre. Por ejemplo, en caso de ejecutarsela tarea T1 en desconexión, se obtendrán los subsistemas ABCD y E.

46 CAPÍTULO 3. TRABAJO RELACIONADO

3.5.5. Métodos de programación matemáticaEn este apartado se presenta un modelo matemático para la planificación de la separa-

ción o desconexión de los componentes de un sistema.Los métodos de Programación Matemática (Mathematical Programming, MP) requieren

modelados con un alto nivel de abstracción. En el modelo matemático que se presenta, lossubsistemas y las operaciones se representan mediante los índices i y j respectivamente.Las secuencias de desconexión se representan como una secuencia de índices j. Sea N elnúmero de componentes, debido a que cada operación es una partición, como mucho unasecuencia válida contendrá N −1 operaciones. Cada secuencia válida o solución puede serrepresentada mediante un subgrafo conectado del grafo And/Or original.

La estructura del grafo And/Or puede ser completamente representada utilizando unamatriz denominada matriz de transición T , que contiene elementos Ti,j . De nuevo, el índicei hace referencia a los subsistemas válidos y el índice j hace referencia a las operacionesde desconexión válidas. Los conjuntos de subsistemas válidos y de las operaciones de se-paración válidas se nombran como I y J respectivamente. Un elemento Ti,j es 1 si elsubsistema i se obtiene vía la operación j, y -1 en caso de que el subsistema i se destruyepor la operacíón j, tomando el valor 0 en otro caso.

Tabla 3.1: Matriz de transición para el grafo And/Or de la figura 3.51 2 3 4 5 6 7 8

1 -1 -1 . . . . . .2 1 . -1 . . . . .3 . 1 1 -1 -1 . . .4 . . . 1 . -1 . .5 . . . . 1 . -1 .6 . 1 . . . . . -17 . . . . . 1 1 .8 . . 1 . . . . 19 . . . . 1 1 . .

10 . . . 1 . . 1 .11 1 . . . . . . 1

Teniendo en cuenta la especificación anterior, la matriz de transición T para el grafode la figura 3.5 es la que aparece en la tabla 3.1, en la que el valor 0 se representa por elcarácter "."para que la visualización de los datos sea más clara.

En la formulación del modelado, se asigna una variable binaria (0, 1) xj a cada hipe-rarco, y su valor es distinto de 0 sólo si la operación j se ejecuta. Se añade además unavariable x0 que se corresponde con la operación inicial (operación 0), y siempre se realiza,por lo que se establece a 1 su valor, de forma que aunque no aparezca en la tabla 3.1 losvalores serían T1,0 = 1 y el resto de valores Ti,0 = 0.

Teniendo en cuenta esto, las variables están sujetas al siguiente conjunto de restriccio-nes:

j

Ti,jxj ≥ 0 ∀i

En la fórmula anterior, T es la matriz de transición, mientras que los subsistemas y lasoperaciones se indican por los índices i y j respectivamente.

Esto garantiza que:

Un submontaje no puede ser destruido si no ha sido previamente creado.

Un submontaje no puede ser destruido por múltiples operaciones simultáneamente.

3.5. MANTENIMIENTO DE SISTEMAS 47

Si no se permiten los desmontajes incompletos, las restricciones de nodos tienen queser más estrictas sustituyendo el signo ≥ por =, con la excepción de los nodos que secorresponden con subsistemas formados sólo por un componente, que se crean pero no sedestruyen.

Si se consideran los costes dependientes de la secuencia, es conveniente introducir unamatriz de sucesión S, que contiene elementos enteros (0,1) en cada posición Sj,k. Un ele-mento Sj,k es igual a 1 sólo si la operación k puede realizarse tras la operación j.

Kanehara et al. [54] propusieron un método de programación matemática a través delanálisis de redes. En dicho trabajo el grafo original And/Or fue transformado por dichosautores en un problema de Programación Entera Mixta (Mixed Integer Programming, MIP)vía una representación de redes de Petri (ver sección 3.5.8). Los conceptos básicos, talescomo la matriz de transición, fueron presentados en dicho trabajo y subsecuentemente apli-cados a problemas de optimización con costes asignados a acciones e ingresos asociados asubmontajes.

Un método gráfico basado en grafos And/Or se aplica para generar así la secuencia dedesensamblaje óptima [64]. En la práctica, los costes de una acción dependen, frecuente-mente, de la acción predecesora. Este modelo se basa en un subconjunto de representaciónde estados en lugar de grafos And/Or.

El uso de generación automática de secuencias de desensamblaje destinadas a la repa-ración y el mantenimiento fue llevada a cabo por Subramani y Dewhurst [102] como partede un enfoque integral en el diseño para el ensamblaje, minimizando el coste del ciclo devida completo. Un enfoque similar fue propuesto más tarde por Navin-Chandra y Bansai[81], quienes analizaban una red gráfica basada en estados de submontajes, destinados aldiseño por recuperación. En dicho trabajo se propusieron métodos basados en el algoritmodel viajante y en algoritmos de búsqueda. Debido a que en dichos métodos el tiempo de eje-cución crecía mucho cuando se incrementaba el número de nodos, fue necesario introduciralgunas heurísticas. Como consecuencia, no siempre se alcanzaba el óptimo.

Otras propuestas que utilizan métodos MP, centrados en componentes y materiales derecuperación, se pueden encontrar en el trabajo de Penev y De Ron [88], quienes trataron elproblema de la optimización como un problema de minimización de distancias, basado enla representación de grafos And/Or. Este método estaba restringido a los casos cuyo estadofinal era conocido.

3.5.6. Planificadores adaptablesEn contraste con el montaje de sistemas, que es normalmente un proceso predecible, los

procesos de desconexión se caracterizan por un alto grado de incertidumbre en el suminis-tro, en la composición del sistema y en la calidad de los componentes. Los planificadoresadaptables necesitan modelos flexibles, y MP ofrece la posibilidad de hacerlo.

Zülch et al. [120] hace uso de una red capaz de utilizar múltiples métodos para cadaacción. Esta flexibilidad puede utilizarse para adaptar secuencias de desconexión cuandoocurren circunstancias inesperadas, tales como el fallo de alguna operación.

Los planificadores adaptables basados en árboles ponderados de submontajes se dis-cuten en [74], donde se presenta un nuevo método de desensamblaje en el que la secuenciareal de operaciones de desensamblaje se va elaborando de forma progresiva durante la eje-cución, en función de las circunstancias reales del proceso. En dicho trabajo se presentanresultados experimentales que verifican la flexibilidad y capacidad de reacción que poseeel sistema ante eventos impredecibles, particularmente ante errores inesperados en opera-ciones de desensamblaje.

En [71] se describe un algoritmo que minimiza los costes de mantenimiento en el casode múltiples defectos. Se usa un algoritmo para obtener el camino más corto en una reddirigida en la que los submontajes son los nodos, incluyendo tanto los costes de desensam-blaje como de ensamblaje vinculados a los arcos, y la reparación, reutilización y reciclajede los costes de eliminación de los nodos.

48 CAPÍTULO 3. TRABAJO RELACIONADO

3.5.7. Métodos de Inteligencia ArtificialSe han llevado a cabo muchos estudios que no usan técnicas de programación matemáti-

ca, sino que se basan en sofisticados métodos pertenecientes al área de la Inteligencia Arti-ficial. Entre ellos, se incluyen trabajos que hacen uso de simulated annealing [69], o algo-ritmos genéticos [30]. Ambas técnicas fueron presentadas en la sección 3.2.3.

A continuación se muestran otras técnicas del campo de la inteligencia artificial quehan sido utilizadas para resolver problemas de ensamblaje, desensamblaje y reparación demontajes, junto con los trabajos relacionados considerados más relevantes:

Sistemas multiagentes. Este tipo de sistemas incluye un número de entidades acti-vas, llamadas agentes, que son autónomas e independientes, capaces de adaptar elsistema a su entorno. Dichos sistemas han sido aplicados por Martinez et al. [74]para seleccionar secuencias de desensamblaje.

Lógica difusa (borrosa). Se aplican para trabajar con incertidumbre. Aunque la in-certidumbre es inherente al desensamblaje, aparece una incertidumbre adicional de-bida al valor de algunos parámetros que tienen que ser estimados, tales como costes,etc. Los conjuntos difusos fueron utilizados por Wang y Allada [114], quienes loaplicaron para garantizar la disponibilidad de servicio, enfocado a la mejora en lafacilidad del mantenimiento. Esto se considera un prerrequisito muy importante parala extensión en el ciclo de vida de un producto. Dichos autores aplican una red neu-ronal entrenada con lógica difusa, con una secuencia que incluye desensamblaje yensamblaje como una de sus entradas.

Redes neuronales. Estas redes intentan emular el funcionamiento de las células delcerebro. Realizan un aprendizaje reforzando o mitigando conexiones, tales como unareacción ante un estímulo, y de esta forma va cambiando su estructura interna. Es-tas redes son particularmente útiles para distinguir los elementos de los conjuntosdifusos. Las redes neuronales han sido utilizadas para la categorización de los distin-tos productos suministrados para el desensamblaje al final de la vida de un producto[112], y para seleccionar una secuencia de desensamblaje óptima [51].

Redes bayesianas. Son sistemas expertos estadísticos que tratan con la relación entrevariables con incertidumbre y la probabilidad de su ocurrencia [96].

Los algoritmos basados en estos métodos requieren un alto coste temporal, lo que impi-de su uso para cálculo online. En general, se obtienen como resultado soluciones subópti-mas.

3.5.8. Redes de PetriLa representación mediante redes de Petri es una herramienta muy utilizada en el mode-

lado de diversos tipos de sistemas, tales como sistemas concurrentes. Esta herramienta tratacon relaciones entre acciones incluyendo relaciones de precedencia, por tanto, las redes dePetri son ampliamente utilizadas en el estudio de sistemas flexibles de fabricación. Se apli-can también en sistemas concurrentes, tales como diseño para ensamblaje, incluyendo lafabricación de componentes, el estudio del ensamblaje y el análisis de posibles modifica-ciones en el diseño del producto.

Las redes de Petri están formadas por 4 tipos de elementos: lugares, transiciones, cam-bios de estados y arcos, como se puede observar en la figura 3.6. En el grafo correspon-diente And/Or, estos elementos se corresponden con nodos (subsistemas), hiperarcos (ac-ciones), matrices de transición y arcos. Los tokens son conceptualmente entidades que rep-resentan objetos del mundo real, que están sujetos a transformaciones, y deben apareceren los lugares. La distribución de tokens en los lugares representa el estado del sistema. Elnúmero total de tokens en la red no es necesariamente constante todo el tiempo. Un cambio

3.5. MANTENIMIENTO DE SISTEMAS 49

TOKEN

AB

TRANSICIÓN

PLACE

ARC

ARC

(a)

A B

AB

(b)

A B

Figura 3.6: Red de Petri que representa una operación elemental de desconexión (a) antesde la ejecución de la acción y (b) después de la ejecución de la acción

en el estado de la red tiene lugar por movimientos de tokens de un lugar a otro, partiendode una configuración inicial.

Las transformaciones se representan mediante cambios de estado, que sólo pueden tenerlugar si al menos un token está en el lugar de entrada. En el ejemplo de la figura 3.6, antesde la transición de estados, sólo un token está presente, y en el estado final hay 2 tokens.Estos cambios se controlan en la matriz de cambios de estados.

Un planificador adaptable, basado en redes de Petri de productos y de estaciones detrabajo, que modifica la secuencia de desensamblaje acorde a la condición de los items enun bloque, se presenta en [104].

3.5.9. ConclusionesEn esta sección se aborda un tema de gran importancia y complejidad como es la pla-

nificación del mantenimiento y la reparación de sistemas. Dicho tema engloba multitud deaspectos y posee una alta variabilidad, lo que da lugar a un elevado número de aspectos quese pueden estudiar en futuros trabajos.

A la hora de planificar el mantenimiento y la reparación de un sistema, se puedenperseguir distintos objetivos, entre los que se encuentran: minimizar el tiempo de cesedel funcionamiento del sistema, minimizar el tiempo de reparación/sustitución de un com-ponente defectuoso (este objetivo se aborda en uno de los trabajos realizados, el cual sedetalla en la sección 3.6), minimizar costes, maximizar la productividad del sistema, etc.En la mayoría de sistemas se persigue la combinación de varios objetivos, por lo que laobtención de una solución óptima lleva asociado una alta complejidad.

Teniendo en cuenta todo lo anterior, aunque existen muchos trabajos relacionados, con-sideramos que es una línea prometedora y de gran interés, por lo que continuaremos plante-ando trabajos relacionados con este tema.

50 CAPÍTULO 3. TRABAJO RELACIONADO

3.6. Un Modelado CSP para Planes de ReparaciónEn esta sección se expone uno de los trabajos realizados, el cual ha sido publicado en la

revista "Journal of Intelligent Manufacturing"[109]. Presenta un modelado CSP para plani-ficación y scheduling de tareas de ensamblaje y desensamblaje cuando es necesario repararo sustituir una pieza defectuosa, previamente detectada. El problema no sólo engloba elorden de tareas de ensamblaje y desensamblaje, sino también la selección de las mismasdesde un conjunto de distintas alternativas. El objetivo del plan es minimizar el tiempo totalde reparación, y el modelo considera, además de las duraciones y los recursos utilizadospara las tareas de ensamblaje y desensamblaje, el retraso debido a los cambios de config-uración en las máquinas y al transporte de los submontajes intermedios entre las distintasmáquinas. El problema considera que los submontajes que no contienen la pieza defectu-osa no son desmontados, al mismo tiempo que se permiten planes de reparación paralelosy no reversibles. El conjunto de todos los planes de reparación satisfactibles se representanmediante un grafo And/Or extendido. Mediante este tipo de estructuras es posible repre-sentar todas las restricciones del problema, tanto temporales como de recursos, y aquéllasrelacionadas con la selección de tareas para obtener un plan correcto.

3.6.1. IntroducciónLos problemas de scheduling han sido utilizados con éxito en un amplio número de apli-

caciones usando técnicas basadas en restricciones. La mayoría de estos problemas puedenser modelados de forma natural, teniendo en cuenta que las acciones son configuradas,las variables son elegidas para representar a parámetros temporales desconocidos (prin-cipalmente tiempo de comienzo y de fin) o al orden de tareas, y las restricciones reúnenrestricciones de precedencia y de recursos [10]. Se han considerado algunas extensiones ascheduling, tales como recursos y procesos alternativos, que dan lugar modelos más cer-canos a planificación, tales como problemas de selección de acciones, que son consideradosa menudo problemas de planificación [99]. Por otro lado, la comunidad de planificación AIha realizado verdaderos esfuerzos para extender las técnicas de planificación clásicas deforma que se posibilite el tratamiento de restricciones de tiempo y recurso. Desde que losproblemas reales combinan planificación y scheduling, existe un interés creciente para in-tegrar ambos tipos de técnicas [14]. La programación con restricciones ha sido utilizadaen varios planificadores recientes [79], así pues este paradigma se encuentra situado en elcorazón de la combinación de las técnicas de planificación y scheduling.

Algunas de las aplicaciones que poseen dicha combinación se encuentran englobadasdentro de la planificación del mantenimiento y la reparación, donde existe una cascada deselecciones de acciones, facilidades, herramientas o personal, que afectan a la duración delos planes [99]. En esta sección se comenta un trabajo que presenta un modelado CSP pararesolver problemas de planificación correspondientes a la secuencia óptima de tareas deensamblaje y desensamblaje para reparar o sustituir piezas defectuosas.

La planificación de ensamblaje y desensamblaje es my importante en procesos de fa-bricación de productos y sus ciclos de vida. Éstos incluyen la identificación, selección ysecuenciación de operaciones de ensamblaje y desensamblaje, que pueden ser especifica-dos por sus efectos en las piezas. La identificación de operaciones de ensamblaje y desen-samblaje se lleva a cabo normalmente analizando la estructura del producto y la viabilidadde cada posible tarea [49, 18], y normalmente da lugar a un conjunto de planes viables.La mayoría de las propuestas de selección óptima de planes de ensamblaje emplean distin-tos tipos de reglas para eliminar tareas difíciles o submontajes intermedios no adecuados[49][44]. En otro contexto, la planificación del desensamblaje ha sido objeto de diferentesestudios, variando desde propósitos de mantenimiento hasta propósitos de reparación parareciclar o recuperar materiales útiles [70, 64, 65]. Para resolver estos problemas se han uti-lizado distintas técnicas, desde programación matemática hasta una variedad de métodosrelacionados con la inteligencia artificial [66]. Al igual que para otros problemas de pla-

3.6. UN MODELADO CSP PARA PLANES DE REPARACIÓN 51

nificación y scheduling, una propuesta basada en CSP puede ser adecuada para resolver elproblema propuesto.

Este trabajo está centrado en la selección de tareas de ensamblaje y desensamblaje parala reparación de piezas defectuosas, y su ordenación óptima. El objetivo es minimizar eltiempo total de reparación cuando el plan es ejecutado en un entorno genérico de múltiplesmáquinas, considerando diferentes factores que pueden influir en el mismo: duracionesde las tareas, recursos compartidos, modos de operación (configuración de las máquinas)y una estimación del tiempo necesario para realizar operaciones auxiliares, tales comoel transporte de submontajes intermedios entre las distintas máquinas, y cambios en laconfiguración de las máquinas. El problema general puede contener diferentes tipos deplanes, pero en este trabajo nos centramos en planes de reparación reversibles y paralelosque no desensamblan los submontajes que no poseen la pieza defectuosa.

Esta sección está organizado como sigue: en la sección 3.6.2 se detalla el modelo dereparación propuesto, en la sección 3.6.3 se explica el modelado CSP para la planificaciónde la sustitución de piezas defectuosas, mientras en la sección 3.6.4 se muestran algunosresultados experimentales de la resolución del problema mediante distintos métodos. Porúltimo, en la sección 3.6.5 se presentan algunas conclusiones del trabajo realizado y lostrabajos futuros que se plantean a partir del modelo propuesto.

3.6.2. El problema de la planificación en reparaciónUna forma usual de describir y representar el conjunto de planes viables para ensambla-

je y desensamblaje es a través de grafos And/Or [48]. En estos grafos, cada plan de ensam-blaje/desensamblaje está asociado a un árbol de ensamblaje/desensamblaje, y un caminoAnd/Or que comienza en el nodo raíz y termina en los nodos hojas, y muestra las restric-ciones de precedencia entre las tareas que forman parte del plan. En esta representación, losnodos Or se corresponden con submontajes, el nodo raíz se corresponde con el productocompleto, y los nodos hojas con las piezas individuales. Cada nodo And se correspondecon tareas de ensamblaje que unen los submontajes de los dos nodos hijos para dar lugaral submontaje correspondiente al nodo padre. Los nodos And que se encuentran situadosinmediatamente debajo de un nodo Or se corresponden con las tareas de ensamblaje alter-nativas que pueden ser seleccionadas para obtener el submontaje correspondiente al nodoOr. Además, cada nodo And se corresponde con la tarea de desensamblaje, opuesta a la deensamblaje, que descompone este mismo submontaje.

Una ventaja importante de este tipo de representación es que el grafo And/Or mues-tra las tareas de ensamblaje/desensamblaje que pueden ser ejecutadas en paralelo, tal ycomo puede verse en la figura 3.7. Además, tanto las restricciones de precedencia comolas relacionadas con la selección de tareas para construir un plan viable, pueden obtenersefácilmente desde esta representación.

Teniendo en cuenta que una tarea de ensamblaje/desensamblaje se ejecuta en una máquinacon una configuración determinada, es necesario tener en cuenta otras operaciones auxilia-res que se exponen a continuación:

operaciones de configuración (cambian la configuración de la máquina).

∆cht(M, C,C ′) denota el tiempo necesario para cambiar la configuración de lamáquina M de C a C ′

transporte de submontajes entre diferentes máquinas.

∆mov(SA, M,M ′) denota el tiempo requerido para transportar el submontaje SAdesde la máquina M a M ′.

Como se explica en la siguiente sección, una extensión de esta representación permitiráun mapeado directo desde el problema de planificación a un problema de satisfacción derestricciones, para ser resuelto utilizando programación con restricciones.

52 CAPÍTULO 3. TRABAJO RELACIONADO

ABCDE

ABCD

T 1

T 2

T 3

ACD

T 4

T 5

AC

T 6

T 7

T 8

A

AD BE

B C D E

Figura 3.7: El grafo And/Or de ensamblaje para el sistema ABCDE

Para reparar o sustituir una pieza defectuosa (previamente detectada), es necesario eje-cutar una secuencia de tareas de desensamblaje para obtener la pieza defectuosa. Tras esto,una acción de reparación sustituye o repara dicha pieza, y entonces una secuencia de tareasde ensamblaje debe construir el producto inicial. En el plan, hay que tener en cuenta losdos tipos de operaciones auxiliares comentadas anteriormente (configuración de máquinasy transporte de submontajes). Desde la perspectiva de planificación en inteligencia artifi-cial, el dominio de planificación debe contener las siguientes acciones:

assemble(sub1, sub2, result): ensambla los submontajes sub1 y sub2 para obtenerresult.

disassemble(result, sub1, sub2): desensambla result para obtener los dos sub-montajes sub1 y sub2.

move_subassembly(sub,mach1,mach2): mueve el submontaje sub desde la máquinamach1 hasta mach2.

change_configuration(mach, conf1, conf2): cambia la configuración de la máquinamach1 de conf1 a conf2.

repair_part(p): repara o sustituye la pieza p.

El planificador debe obtener la secuencia óptima de operaciones de desensamblaje paraextraer la pieza defectuosa, la tarea de sustitución o reparación, y la secuencia de tareas deensamblaje.

El problema general puede incluir la búsqueda en el grafo And/Or completo, permi-tiendo diferentes tipos de planes. Normalmente, se cumplen ciertas propiedades que sepueden tener en cuenta para simplificar la resolución del problema. Algunas de ellas sonconsideradas en este trabajo y se encuentran recopiladas en las siguientes definiciones.

Definición 1. Un grafo de reparación es un subgrafo del grafo And/Or que sólo con-tiene las tareas de ensamblaje y desensamblaje (y los correspondientes submontajes) quepodrían ser necesarios para reparar algunas piezas, de acuerdo con el modelado simplifica-do considerado.

3.6. UN MODELADO CSP PARA PLANES DE REPARACIÓN 53

Definición 2. Una tarea T de ensamblaje (desensamblaje) es reversible si su correspon-diente tarea de desensamblaje (ensamblaje) T ′ es viable, es decir, si ambas tareas manejanlos mismo submontajes pero de forma opuesta, quizás utilizando diferentes máquinas oconfiguraciones. Se denominan tareas invertidas una con respecto a la otra.

Definición 3. Un plan reversible es un árbol del grafo de reparación que sólo contienetareas reversibles, de forma que para cada tarea de desensamblaje, su tarea inversa de en-samblaje está incluida.

El modelado de planificación desarrollado en este trabajo supone las siguientes condi-ciones:

(C1) Todas las tareas son reversibles.(C2) Los submontajes que no incluyen las piezas defectuosas no se desensamblan.Teniendo en cuenta las condiciones consideradas, se puede observar:

La condición (C1) no implica que los planes sean reversibles.

Si sólo debe ser reparado un componente, la condición (C1) asegura que, cuando seimpone (C2), hay al menos una solución, correspondiente a un plan reversible, dondelas tareas de ensamblaje y desensamblaje se secuencian de forma lineal.

En el proceso de ensamblaje, otros submontajes diferentes de los generados duranteel desensamblaje pueden aparecer, dependiendo de la forma de unión. Este caso seda cuando, para una tarea de desmontaje determinada que forma parte del plan, nose selecciona su tarea de ensamblaje inversa.

Las tareas de desensamblaje sólo manejan submontajes que contienen piezas de-fectuosas, mientras que las tareas de ensamblaje manejan submontajes que puedencontener o no piezas defectuosas.

En general, los planes no son secuencias lineales de tareas, a diferencia de los planesreversibles. Aunque el proceso de desensamblaje es lineal, el ensamblaje puede con-tener tareas que se pueden ejecutar en paralelo con otras. Además, es posible que elproceso de ensamblaje comience antes de que el desensamblaje haya finalizado, uti-lizando aquellos submontajes o piezas individuales que se generaron tras la ejecuciónde tareas de desensamblaje. Adicionalmente, aunque los procesos de desensamblajey ensamblaje sean lineales, puede haber una ejecución paralela de dos tipos de tareas.

3.6.3. El modelado CSPAcorde con la definición del problema realizada anteriormente, las típicas restriccio-

nes de tiempo y recursos de scheduling podrían ser transformadas en restricciones condi-cionales teniendo en cuenta que las tareas (y los submontajes) pueden no aparecer en lasolución. Existe una propuesta similar realizada en trabajos previos para aplicaciones deplanificación y configuración, haciendo uso de modelos DCSP [78] y transformándolos aCSPs [32]. La mayoría de las ideas han sido extraídas de trabajos anteriores [73], pero lasconsideraciones tenidas en cuenta en este trabajo modificará la mayoría de las restriccionesy añadirá otras nuevas.

Para obtener una solución, teniendo en cuenta las condiciones (C1) y (C2) de la sec-ción anterior, el grafo And/Or puede ser simplificado (ver figuras 3.7 y 3.8), eliminandoaquellos nodos And (desensamblaje) debajo de los nodos Or correspondientes a submon-tajes que no contienen la pieza defectuosa, pero manteniendo los mismos nodos And paraensamblaje que podrían ser utilizados en el proceso de ensamblaje. Esto puede realizarsecon un recorrido transversal en anchura del grafo And/Or. Ahora, los nodos hoja del grafode ensamblaje And/Or son las piezas individuales y los submontajes que no contienen lapieza defectuosa. Todos estos nodos serán procesados de la misma forma, exceptuando lapieza defectuosa. En la figura 3.9 se puede ver un ejemplo de esta representación, donde

54 CAPÍTULO 3. TRABAJO RELACIONADO

ABCDE

ABCD

T’ 1

T’ 2

T’ 3

ACD

T’ 4

T’ 5

AC

T’ 6

T’ 7

T’ 8

A

AD BE

B C D E

Figura 3.8: El grafo And/Or simplificado de desensamblaje para el sistema ABCDE cuan-do la pieza defectuosa es D

es posible observar tanto los procesos de ensamblaje como los de desensamblaje. Por cla-ridad, los nodos Or correspondientes a los mismos submontajes se repiten en ambas partesdel grafo, ensamblaje y desensamblaje.

La tabla 3.2 muestra el número de nodos Or y And en grafos And/Or correspondientes aconjuntos de productos hipotéticos de 30 y 40 piezas. Suponiendo que cada pieza individualdebe ser reparada, se incluyen los valores medios del números de nodos Or, And, And’(tareas de desensamblajes), y de planes de desensamblaje y reparación en los grafos And/Orsimplificados, respectivamente.

Tabla 3.2: Número de nodos And/Or y planes para cada problema

Grafo And/Or Grafo And/Or simplificado

Problema #Or #And #Or #And #And’ #Planes Des. #Planes Rep.

30d 408 837 294 506 365 3071 941430c 415 863 310 546 384 3634 1284630b 404 828 303 520 365 3045 920030a 348 630 223 327 240 623 121340d 756 2060 598 1400 925 54449 19755140c 770 2143 621 1489 984 70980 24840840b 759 2086 604 1433 947 76171 40566140a 649 1518 433 833 575 9370 23005

Variables del CSP

Cada nodo del grafo And/Or está asociado a un conjunto de variables en el CSP:

Para las tareas de ensamblaje y desensamblaje correspondientes a cada nodo And,T y T ′ respectivamente: sus duraciones dur(T ) y dur(T ′); las máquinas utilizadas

3.6. UN MODELADO CSP PARA PLANES DE REPARACIÓN 55

ABCD

ACD

AC

A

AD BE

B C D E

ABCD

ACD

AC

A

AD BE

B C D E

T’ 1

T’ 2

T’ 3

T’ 4

T’ 5

T’ 7

T 6 T

7 T

8

T 4

T 5

T 3

T 1 T

2

ABCDE

ABCDE

Figura 3.9: El grafo And/Or simplificado de reparación para el sistema ABCDE cuandola pieza defectuosa es D

56 CAPÍTULO 3. TRABAJO RELACIONADO

M(T ) y M(T ′); y la configuración necesaria que deben tener, C(T ) y C(T ′); sustiempos de comienzo, ti(T ) y ti(T ′); sus tiempos de finalización tf (T ) y tf (T ′);y dos variables booleanas representando si las tareas son seleccionadas o no para lasolución, s(T ) y s(T ′) respectivamente.

Para cada submontaje SA (nodo Or): la máquina utilizada para su ensamblaje, m(SA);los tiempos de obtención tras el ensamblaje, tOR(SA), y desensamblaje, t′OR(SA);y dos variables booleanas representando si el submontaje SA aparece en el procesode desensamblaje y ensamblaje, s(SA) y s′(SA) respectivamente.

Por último, para la pieza a reparar P se cuenta con un retraso temporal subst(P ),correspondiente al tiempo de reparación o sustitución de la misma. Para este trabajose supondrá que subst(P ) no depende de la máquina de la que proceda P tras eldesensamblaje ni de donde se realice la reparación.

Con respecto a los tipos de acciones (operadores) desde la perspectiva de la planifi-cación AI de la sección 3.6.2, es importante resaltar que los operadores de ensamblaje ydesensamblaje están vinculados a los nodos And. El operador repair_part está asociadoal nodo Or correspondiente a la pieza defectuosa P , y el retraso subst(P ) representa latarea de reparación.

El grafo And/Or extendido

Aunque la representación mediante el grafo And/Or muestra tanto las restricciones deprecedencia como las restricciones asociadas a la selección de tareas para obtener un plande ensamblaje y desensamblaje válido, vamos a extender dicho grafo de forma que la nuevarepresentación incluye todas las restricciones contenidas en el problema, añadiendo nuevostipos de enlaces entre nodos And. Los nuevos enlaces representan restricciones que no sonde precedencia:

debido al uso de los recursos compartidos por las tareas (restricción de tipo 5, queserá comentada más adelante).

teniendo en cuenta los retrasos debidos al cambio de configuración en las máquinas(restricción de tipo 4, que será comentada más adelante); cht(M, C, C ′) denotará eltiempo requerido para cambiar la configuración de la máquina M de C a C ′.

El transporte de submontajes intermedios supondrá un retraso adicional que debe serconsiderado en las restricciones de precedencia; mov(SA, M, M ′) denotará el tiemponecesario para el transporte del submontaje SA de la máquina M a M ′.

Acorde a los operadores de la perspectiva de planificación AI de la sección 3.6.2, eloperador move_subassembly no tiene una tarea explícita en el modelado CSP, y se tieneen cuenta con el retraso mov(∆). De forma similar, el operador change_configurationno tiene una tarea explícita en el modelado CSP, y se considera a través del retraso cht(∆).La figura 3.10 muestra el grafo And/Or de reparación extendido y simplificado, correspon-diente al ejemplo en el que el producto completo es ABCDE y la pieza defectuosa es D,en el caso general de que los planes de ensamblaje y desensamblaje podrían ser diferentes.

Para poder comprender mejor este tipo de restricciones, la figura 3.11 muestra sólolos planes de desensamblaje posibles del grafo de reparación And/Or resultante para elproducto ABCDE cuando D es la pieza defectuosa, y los posibles planes de ensamblajeque podrían completar la solución.

La figura 3.11 muestra que para un mismo plan de desensamblaje (T ′1-T ′3-T ′4 en el ejem-plo) pueden existir diferentes planes de ensamblaje alternativos (T4-T3-T1 y T4-T8-T2 en elejemplo). Aunque todos los nodos hojas generados en el proceso de desensamblaje (AC, B,D, E) deben aparecer en el proceso de ensamblaje, no ocurre lo mismo con los submontajesintermedios, que aparecerán o no dependiendo de las tareas de ensamblaje seleccionadas.

3.6. UN MODELADO CSP PARA PLANES DE REPARACIÓN 57

ABCD

ACD

AC

A

AD BE

B C D E

ABCD

ACD

AC

A

AD BE

B C D E

... (1)

(2)

(3)

(4)

(5)

M 2

C 3

M 1

C 2

M 2

C 3

M 1

C 2

M 3

C 6

M 2

C 4

M 1

C 2

M 2

C 4

M 2

C 5

M 1

C 2

M 3

C 6

M 2

C 4

M 2

C 5

T’ 1

T’ 2

T’ 3

T’ 4

T’ 5

T’ 7

T 6

T 7

T 8

T 4

T 5

T 3

T 1 T

2

ABCDE

ABCDE

Figura 3.10: El grafo And/Or de reparación extendido y simplificado para la sustitución dela pieza D en el producto ABCDE cuando se consideran todos los planes de desensamblajeposibles

58 CAPÍTULO 3. TRABAJO RELACIONADO

ABCD

ACD

AC

B D E

ABCD

ACD

AC BE

B D E

M 3

C 7

M 2

C 3

M 1

C 2

M 2

C 5

M 2

C 4

M 2

C 3

M 2

C 4

M 2

C 5

T’ 1

T’ 3

T’ 4

T 8

T 4

T 3

T 1

T 2

ABCDE

ABCDE

Figura 3.11: El grafo And/Or de reparación extendido y simplificado para la sustitución dela pieza D en el producto ABCDE cuando se considera un solo plan de desensamblaje

3.6. UN MODELADO CSP PARA PLANES DE REPARACIÓN 59

Además, las tareas reversibles pueden usar diferentes máquinas y/o configuraciones, porlo que es necesario tener en cuenta los posibles retrasos ocasionados por el transporte delos submontajes intermedios entre distintas máquinas cuando tareas reversibles utilizanmáquinas diferentes, y los posibles retrasos debidos a cambios de configuraciones cuandoutilizan la misma máquina.

Tipos de restricciones

En este apartado se presentan los diferentes tipos de restricciones para el modelo CSPpropuesto. Cada tipo de restricciones se corresponde con un enlace o componente del grafoAnd/Or extendido (ver figura 3.10). En las tablas 3.3-3.7 se muestran algunos tipos derestricciones. Las restricciones de tipo 1 recogen la relación entre la información de unnodo Or y de los nodos And que se encuentran situados debajo de él en el grafo And/Ororiginal. Por un lado, estas restricciones incluyen la selección de tareas de desensamblajeT ′ y de tareas de ensamblaje T , expresadas a través del operador XOR, ya que una y sólouna tarea alternativa (desensamblaje o ensamblaje) podrá ser seleccionada para construir odesensamblar un submontaje, si este submontaje formara parte de la solución:

s′(SA) ⇔ XORT ′i∈succ(SA)(s(T ′i ))

s(SA) ⇔ XORTi∈succ(SA)(s(Ti))

Por otro lado, estas restricciones establecen los tiempos de desensamblaje t′OR y deensamblaje tOR de los nodos Or relativos a los tiempos de comienzo de las tareas de de-sensamblaje o a los tiempos de finalización de tareas de ensamblaje:

s(T ′i ) ⇒ ti(T ′i ) ≥ t′OR(SA) + ∆mov(SA, m′(SA),m(T ′i ))

s(Ti) ⇒ tf (Ti) = tOR(SA)

y la máquina m donde un submontaje se genera tras una tarea de ensamblaje:

s(Ti) ⇒ m(SA) = m(Ti)

Para el producto completo y para la pieza defectuosa se da un caso especial, ya quesiempre formarán parte de la solución, siendo ciertas las variables booleanas asociadasa ellos. Además, para los nodos Or hoja (incluyendo aquéllos que no contienen la piezadefectuosa) t′OR y tOR son iguales, excepto para la pieza defectuosa, donde es necesarioconsiderar el retraso por reparación o sustitución. El tiempo origen está marcado por la va-riable t′OR del producto completo, y el objetivo consiste en minimizar la variable tOR parael producto completo. La tabla 3.3 muestra algunos ejemplos representativos de restriccio-nes de tipo 1, correspondientes al grafo And/Or de reparación extendido y simplificado dela figura 3.10.

Las restricciones de tipo 2 consideran las duraciones de las tareas de ensamblaje ydesensamblaje y se corresponden con las relaciones entre los tiempo de comienzo y definalización de las mismas:

s(Ti) ⇒ tf (Ti) = ti(Ti) + dur(Ti)

Las restricciones de tipo 3 recogen la relación entre la información de un nodo And y el(los) nodo(s) Or que aparecen debajo de él en el grafo And/Or original. Además de laselección obligatoria de los dos nodos Or si el nodo And es seleccionado,

s(T ′) ⇒ s′(SA1) ∧ s′(SA2)

60 CAPÍTULO 3. TRABAJO RELACIONADO

Tabla 3.3: Conjunto de restricciones de tipo (1) para el grafo And/Or de reparación de lafigura 3.10

Tipo Restricciones

s′(ABCDE) = s(ABCDE) = s′(D) = s(D) = true ∧ t′OR(ABCDE) = 0s′(ABCDE) ⇒ (s(T ′1)XORs(T ′2))s(T ′1) ⇒ (m′(ABCD) = m′(E) = M2 ∧ t′OR(ABCD) = t′OR(E) = tf (T ′1))s(T ′2) ⇒ (m′(ACD) = m′(BE) = M1 ∧ t′OR(ACD) = t′OR(BE) = tf (T ′2))...s′(SA) ⇒ (s(SA) ∧m(SA) = m′(SA) ∧ tOR(SA) = t′OR(SA)),

SA ∈ {A,B,C, E,AC, BE}(1) s′(D) ⇒ (m(D) = m′(D) ∧ tOR(D) = t′OR(D) + ∆sust(D))

s(A) ⇒ (s(T6)XORs(T7)) ∧ ¬s(A) ⇒ (¬s(T6) ∧ ¬s(T7))s(T6) ⇒ (m(AC) = M2 ∧ tOR(AC) = tf (T6))s(T7) ⇒ (m(AD) = M1 ∧ tOR(AD) = tf (T7))s(B) ⇒ (s(T3)XORs(T8)) ∧ ¬s(B) ⇒ (¬s(T3) ∧ ¬s(T8))...s(ABCD) ⇒ s(T1) ∧ ¬s(ABCD) ⇒ ¬s(T1)s(T1) ⇒ (m(ABCDE) = M2 ∧ tOR(ABCDE) = tf (T1))

s(T ) ⇒ s(SA1) ∧ s(SA2)

incluyen restricciones de igualdad entre los tiempos de desensamblaje de los nodos Ort′OR y los tiempos de finalización de las tareas de desensamblaje T ′ que aparece sobredicho nodo Or en el grafo And/Or original,

s(T ′i ) ⇒ tf (T ′i ) = tOR(SA1) = tOR(SA2)

y la precedencia entre los tiempos de ensamblaje de los nodos Or, tOR, y los tiempos decomienzo de las tareas de ensamblaje T (nodos And), y considerando los posibles retrasosdebidos al transporte de los submontajes si las dos tareas consecutivas involucradas usanmáquinas diferentes:

s(Ti) ⇒ ti(Ti) ≥ tOR(SA1) + ∆mov(SA, m(SA1),m(Ti))

s(Ti) ⇒ ti(Ti) ≥ tOR(SA2) + ∆mov(SA, m(SA2),m(Ti))

Además, la máquina m′ en la que un submontaje se genera tras una tarea de desensamblaje,es la máquina usada por dicha tarea de desensamblaje:

s(T ′i ) ⇒ m′(SA1) = m(T ′i )

s(T ′i ) ⇒ m′(SA2) = m(T ′i )

La tabla 3.4 muestra algunos ejemplos indicativos de restricciones de tipo 2 y 3 corres-pondientes al grafo de reparación And/Or extendido y simplificado de la figura 3.8.

Las restricciones de tipo 4 recogen la relación entre la selección de un nodo Or y to-dos los nodos And situados sobre él (puede ser sólo uno) en el grafo And/Or original.Las restricciones temporales entre dichos nodos se incluyen en las restricciones de tipo 3comentadas anteriormente.

3.6. UN MODELADO CSP PARA PLANES DE REPARACIÓN 61

s′(SA) ⇔ XORT ′i∈pred(SA)(s(T ′i ))

s(SA) ⇔ XORTi∈pred(SA)(s(Ti))

La tabla 3.5 muestra algunos ejemplos indicativos de restricciones de tipo 4 correspon-dientes al grafo de reparación And/Or extendido y simplificado de la figura 3.10.

Todos los tipos de restricciones comentados hasta ahora provienen de las relacionesentre los nodos incluidos en el grafo And/Or original. Los dos tipos de restricciones queaparecen a continuación provienen del uso de (los mismos o diferentes) recursos por tareasde ensamblaje y desensamblaje diferentes, y están relacionados con nuevos enlaces entretareas en el grafo And/Or extendido.

Las restricciones de tipo 5 se deben al retraso debido al cambio de configuración en unamáquina entre las ejecuciones de tareas de ensamblaje y desensamblaje que usan la mismamáquina, existiendo restricciones de precedencia entre ellas. Dichas restricciones incluyenlas relaciones entre las tareas de ensamblaje y desensamblaje reversibles. Se puede observaren la figura 3.11 que para un plan particular de reparación sólo es necesario relacionar cadatarea de ensamblaje con su tarea de ensamblaje sucesora más cercana en el árbol And/Orque usa la misma máquina, y lo mismo para tareas de desensamblaje. Para una tarea Ti,y su tarea predecesora más cercana que usa la misma máquina Tj , teniendo en cuenta losposibles cambios de configuración en la máquina,

(s(Ti) ∧ s(Tj)) ⇒ ti(Tj) ≥ tf (Ti) + ∆cht(m,C(Ti), C(Tj))

debe ser satisfecha. Además, ya que la solución puede contener tareas no reversibles,cada tarea de desensamblaje debe ser relacionada con cada una de las tareas (no tiene porqué ser sólo una) de desensamblaje sucesoras más cercanas que usen la misma máquina.Por otro lado, cuando ambas tareas usan la misma configuración, la restricción resultante essuperflua y se puede eliminar. Para el ejemplo de la figura 3.11, la tarea de desensamblajeT ′3 está relacionada con T8 y T4. SE puede observar que la tarea de ensamblaje T4 estárelacionada con T3 y T2, cada una perteneciente a un plan de reparación diferente (. . .-T4-T3-T1 y . . .-T4-T8-T2). La tabla 3.6 muestra algunos ejemplos representativos de diferentesrestricciones de tipo 5 correspondientes al grafo de reparación And/OR extendido y sim-plificado de la figura 3.10.

Por último aparece un nuevo tipo de restricciones, tipo 6, teniendo en cuenta que al-gunas tareas (de ensamblaje o desensamblaje) pueden ejecutarse en paralelo dependiendodel uso de recursos compartidos. Para cada par de tareas Ti y Tj que requieren la mismamáquina m, sin restricciones de precedencia entre ellas, y que pueden pertenecer al mis-mo plan de reparación, las restricciones de tipo 6 expresan los dos posibles órdenes deejecución de las tareas:

(s(Ti) ∧ s(Tj)) ⇒ (ti(Ti) ≥ tf (Tj) + ∆cht(m,C(Tj), C(Ti)) ∨ ti(Tj) ≥

tf (Ti) + ∆cht(m,C(Ti), C(Tj)))

Para el ejemplo de la figura 3.8, la tarea de ensamblaje T8 se relaciona con la tarea dedesensamblaje T ′4 y con la tarea T4 en el grafo de reparación compuesto por T ′1-T ′3-T ′4-T8-T4-T2, mostrando que la tarea de ensamblaje T8 puede ser ejecutada antes o después de T ′4y T4. La tabla 3.7 muestra algunos ejemplos representativos de diferentes restricciones detipo 6 correspondientes al grafo de reparación And/Or extendido y simplificado de la figura3.10.

Un objetivo típico para este tipo de problemas es minimizar el tiempo de ejecución delplan, que es el tiempo en el que el producto es reensamblado tras la reparación, dado por lavariable (tOR(ABCDE)) para el ejemplo mostrado. Nótese el carácter combinatorial delproblema debido a las restricciones XOR de tipo 1 y 4 y las restricciones disyuntivas de

62 CAPÍTULO 3. TRABAJO RELACIONADO

tipo 6. Estos tipos de restricciones se corresponden, respectivamente, con la selección detareas alternativas (de ensamblaje o desensamblaje) y con el uso de recursos compartidospor las tareas que no están vinculadas por restricciones de precedencia.

3.6.4. Resultados experimentalesEn este apartado se muestran algunos resultados experimentales relacionados con di-

ferentes métodos algorítmicos para obtener planes de reparación. El modelo CSP descritoha sido probado utilizando un algoritmo básico basado en backtracking implementado enILOG Solver [52] (dicho algoritmo será referenciado como ALG-2). Para la búsqueda seestablece un límite temporal de 300 segundos. Para guiar la búsqueda, el orden de las varia-bles a instanciar es desde arriba hacia abajo en el grafo And/Or extendido. Las tablas 3.8 y3.9 muestran una comparativa realizada entre diferentes algoritmos utilizados para resolverel problema de reparación mediante planificación. Cada fila engloba a un conjunto de 80instancias de grafos And/Or para productos hipotéticos de 30 o 40 piezas, con diferentescombinaciones para las duraciones de las tareas, máquinas y configuraciones utilizadas, ypieza defectuosa a ser reparada. Los experimentos han sido realizados en un 2,13 GHz IntelCore 2 Duo con 2 GB RAM.

En primer lugar, se ha hecho uso de un planificador genérico (SGPlan, [20]), ganadordel 1st Prize Satisficing (sub-optimal) Planning in the Deterministic Part of the Internation-al Planning Competition (IPC-5) en 2006 [31], ha sido utilizado para resolver los problemascorrespondientes relativos a una definición de dominios adaptada. El segundo algoritmoque aparece fue utilizado en un trabajo previo [73] (dicho algoritmo será referenciado co-mo ALG-1). Este algoritmo, implementado en Ilog Solver y Scheduler, trabaja con un CSPdinámico y un modelado más restrictivo que sólo permite planes lineales. Acorde a los tresalgoritmos presentados anteriormente, se han estudiado algunas características consider-adas relevantes:

Best: Fracción de soluciones para cada método que coincide con la mejor soluciónobtenida por los tres algoritmos.

∆ Best: Desviación media relativa a la mejor solución encontrada.

#opt: Número de soluciones que ha sido demostrado que son óptimas encontradaspor ALG-2.

TimeAve: tiempo medio, en segundos, consumido por el algoritmo para conseguirla solución.

Los resultados que aparecen en la tabla 3.8 muestran que el comportamiento de ALG-2es altamente dependiente de las características estructurales del grafo. En algunos casos(30a y 40c) dicho algoritmo obtiene las mejores soluciones, pero en otros casos (30d, 30c,40d y 40a) los otros algoritmos son mejores. En otros casos (30b y 40b) algunos problemasse resuelven de la mejor forma posible y otros de la peor. Además, la solución óptima segarantiza en algunos tipos de problemas (30a, 40b y 40c). Los resultados obtenidos porALG-1 son los mejores en algunos casos (30d, 30c, 40d y 40a), dando lugar a resultadosintermedios en otros (30b, 30a, 40c y 40b). Por otro lado, los resultados encontrados porSGPlan son los peores en la mayoría de los casos. En la tabla 3.9 se puede observar que elalgoritmo más rápido es ALG-1 y que el más lento es ALG-2.

3.6.5. Conclusiones y trabajo futuroEste trabajo propone un modelado CSP para planificación y secuenciación de tareas de

ensamblaje y desensamblaje cuando es necesario reparara o sustituir piezas defectuosas. Sehan realizado dos suposiciones, que los submontajes que no contienen la pieza defectuosano se desensamblan, pero permitiendo realizar planes de reparación paralelos y reversibles.

3.6. UN MODELADO CSP PARA PLANES DE REPARACIÓN 63

El CSP puede ser resuelto directamente haciendo uso de métodos convencionales paraCSP genéricos. Además, se puede utilizar un enfoque DCSP de forma que la selección detareas y submontajes impondrían la adición o el borrado de las restricciones correspondien-tes.

Como trabajo futuro, además del uso de diferentes algoritmos para resolver el proble-ma, se propone el desarrollo de modelos más generales, considerando el mantenimiento yla reparación de varias piezas, y que las tareas puedan no ser reversibles, donde la soluciónpuede implicar descomponer submontajes que no incluyen la pieza defectuosa.

64 CAPÍTULO 3. TRABAJO RELACIONADO

3.7. Un Modelado del JSSP para Búsqueda Local Basadaen Restricciones

Este trabajo ha sido presentado en el workshop internacional Iberamia 2008 Work-shop on Planning, Scheduling and Constraint Satisfaction [9]. Propone un modeladobasado en restricciones para el problema Job Shop Scheduling para ser resuelto utilizandotécnicas de búsqueda local. Los principales aspectos del modelado son: el uso de variablesenteras que representan el orden relativo de las operaciones a planificar, y dos restriccionesglobales, alldifferent e increasing, para asegurar la satisfactibilidad. Una propiedad muyinteresante de este modelado es que la detección de ciclos en los planes está implícita en lasatisfacción de las restricciones.

Para probar el modelado propuesto, se ha hecho uso de un algoritmo parametrizado debúsqueda local, que utiliza un vecindario similar al de Nowicki y Smutnicki, el cual ha sidoadaptado al modelado propuesto de forma adecuada.

3.7.1. Introducción

La Programación con Restricciones (CP) ha evolucionado en la última década a uncampo maduro debido a, entre otros, el uso de diferentes procedimientos genéricos e inter-cambiables para inferencia y búsqueda, que pueden ser utilizados para resolver diferentestipos de problemas [27, 46]. Aunque la separación de modelados y algoritmos es deseablepara la reutilización, existe una influencia entre ellos que se debe tener en cuenta cuando sepersigue un buen comportamiento del método resultante completo. La mayoría de modela-dos utilizados en CP han sido probados haciendo uso de algoritmos completos, los cualesno son tan adecuados como otras propuestas de búsqueda local [110].

Este artículo propone un modelado basado en problemas de satisfacción de restriccio-nes (CSP) para el problema Job Shop Scheduling (JSSP) para ser resuelto haciendo usode técnicas de búsqueda local. Dichas técnicas definen las variables que determinan unasolución, las restricciones del problema relacionadas con dichas variables y un conjuntode vecindarios posibles. Este problema ha sido resuelto por diferentes autores mediantebúsqueda local [53, 83, 108], pero la novedad radica en el modelado propuesto, basado enla inclusión del orden de las operaciones directamente en las variables y las restriccionesdel CSP, de forma que las definiciones y los desarrollos de los principales componentes delos algoritmos de búsqueda local obtengan ventajas de esta representación.

Para estas técnicas, un aspecto muy importante es la definición del vecindario, que esel conjunto de candidatos hacia los cuales la búsqueda puede continuar desde la soluciónactual. Para JSSP, uno de los mejores métodos fue propuesto por Nowicki and Smutnicki[83], cuyo vecindario es más restringido que otras propuestas previas. En este trabajo sepropone una adaptación y una extensión de este vecindario, de forma que sea adecuado almodelado CSP definido.

El resto de la sección está organizado como sigue. En la sección 3.7.2 se presenta unaformulación del JSSP. La sección 3.7.3 incluye las principales ideas de los algoritmos debúsqueda local. La sección 3.7.4 describe el modelado propuesto. Tras esto, se muestrany analizan algunos resultados experimentales. Finalmente, en la sección 3.7.6 se presentanalgunas conclusiones y trabajos futuros.

3.7.2. Definición del Problema

El problema Job Shop Scheduling [17, 53] puede ser formulado como sigue. Se tiene unconjunto de n trabajos J1, ..., Jn y un conjunto de m máquinas M1, ...,Mm. Cada trabajoJi consiste en una secuencia de ni operaciones opi1, ..., opi,ni , que debe ser procesada eneste orden. Cada operación opij debe ser procesada durante pij unidades de tiempo, sininterrupción, en la máquina µij ∈ {M1, ...,Mm}. Cada máquina sólo puede procesar una

3.7. MODELADO JSS PARA CBLS 65

operación en cada momento. Así pues, se definen dos tipos de restricciones, restriccionesde precedencia entre las operaciones de cada trabajo, y las restricciones de precedenciaque fuerzan a seleccionar un orden en la permutación de las operaciones que usan cadamáquina. Estas últimas restricciones son la fuente de la complejidad NP-dura de JSSP[37].

La función objetivo típica, usada en este trabajo, es encontrar una solución satisfactible,minimizando el makespan, Cmax = maxi=1..n{Ci}, donde Ci es el tiempo de finalizacióndel trabajo Ji, es decir, el tiempo de finalización de opi,ni

.La figura 3.12 muestra la representación como grafo disyuntivo para un ejemplo simple

del problema, con n = 3 y ni = 3, ∀i. En un grafo disyuntivo G = (V, C,D), se tiene unconjunto V de nodos que se corresponden con las operaciones del job-shop, un conjuntoC de arcos dirigidos correspondientes a las restricciones de precedencia, y un conjuntoD de arcos no dirigidos que conectan las operaciones que usan la misma máquina. Unasolución para el problema consiste en fijar una dirección para los arcos no dirigidos, siendosatisfactible si no existen ciclos.

op 11 op 12 op 13

op 23 op 22

op 33 op 32

op 21

op 31

Figura 3.12: Un grafo disyuntivo para el problema Job Shop.

3.7.3. Búsqueda Local Basada en RestriccionesLa mayoría de algoritmos para CSPs propuestos en el área de CP son completos, pero

últimamente se está considerando la búsqueda local como un mecanismo prometedor deresolución de grandes instancias de problemas complejos [110], en los que los algoritmoscompletos fallan. Las restricciones del modelado CSP pueden ser utilizadas para garantizarla satisfactibilidad de las soluciones exploradas, o incluso haciendo uso de su posible (gradode) violación como guía para la búsqueda local. La mayoría de las ideas asociadas a losalgoritmos de búsqueda local en otras áreas pueden ser utilizadas en la resolución de CSPs,o en nuestro caso, en problemas de optimización (COP).

Los algoritmos de búsqueda local se mueven de forman iterativa a través del conjun-to de las soluciones satisfactibles. Para estos movimientos, en cada iteración se determinaun vecindario para la solución actual como un conjunto de soluciones que pueden ser se-leccionadas como próxima solución, y que se pueden obtener de la solución actual traspequeños cambios. En función del método de selección de la siguiente solución de entreel vecindario y del criterio de parada de la secuencia iterativa de movimientos, se puedendefinir diferentes algoritmos [50]. Para probar el modelo propuesto, se ha usado un algo-ritmo de búsqueda tabú básico [43] que contiene los principales componentes útiles parabúsqueda local, el cual se describe en la sección 3.7.4.

3.7.4. Nuestra PropuestaEl Modelado CSP

Un CSP viene definido por un conjunto de variables, V , un conjunto de dominios devalores para cada variable D y un conjunto de restricciones que establecen relaciones entrelas distintas variables C.

66 CAPÍTULO 3. TRABAJO RELACIONADO

Los modelados típicos para JSSP establecen los tiempos de comienzo stij de las ope-raciones opij como las variables del CSP [25], y las restriciones se dividen en dos grupos:

Las restricciones de precedencia son un conjunto de desigualdades relacionadas conlas variables correspondientes a los tiempos de comienzo de las operaciones del mis-mo trabajo, y teniendo en cuenta las duraciones de las operaciones, que es, stij +pij ≤ sti,j+1, para la precedencia entra las operaciones opij y opi,j+1.

Las restricciones de recurso se pueden definir como disyunciones del tipo stij+pij ≤stkl ∨ stkl + pkl ≤ stij , donde opij y opkl son operaciones que utilizan la mismamáquina.

Sin embrago, han sido utilizadas otras propuestas, como la representación del uso decada máquina por todas las operaciones con restricciones globales, lo que puede permitiralgoritmos de filtrado más eficientes.

Nuestra propuesta CSP se basa en el uso de variables CSP para establecer el orden deejecución de las operaciones del JSSP, dando lugar a un modelado simple.

Sea ΠJ un JSSP con un conjunto J de n trabajos, un conjunto M de m máquinas, yun conjunto O de #ops operaciones. El modelado propuesto posee los siguientes compo-nentes:

Cada operación opij está representada por una variables entera del CSP vij , así puesel conjunto de variables es V = {vij , 1 ≤ i ≤ n, 1 ≤ j ≤ ni}.

El dominio de cada variable vij es D(vij) = [1..#ops], ∀vij ∈ V .

El conjunto C de restricciones contiene dos tipos de elementos:

1. Restricciones de Precedencia: El valor de cada variable vij tiene que sermenor o igual que el valor de todas las variables correspondientes a las siguien-tes operaciones en el mismo trabajo: vij < vik, ∀vij , vik tal que j < k. Paramejorar la eficiencia y obtener un modelo más claro, se ha utilizado una nuevarestricción (increasing) entre las operaciones de cada trabajo. Dicha restricciónse define sobre una secuencia de variables {v1, v2, . . . , vn} y es equivalente ala satisfacción de las condiciones v1 < v2 < . . . < vn.

2. Restricciones de Recurso: Para satisfascer que cada máquina pueda proce-sar sólo una operación en cada momento, los valores de todas las variables sefuerzan a ser diferentes de los demás (se usa la restricción alldifferent), es decir,cada solución es una permutación del conjunto {1, 2, . . . , #ops}.

Una propiedad interesante del modelado, haciendo uso de las restricciones increasingy alldifferent, es que la detección de ciclos está implícita en la satisfacción de las restric-ciones, así pues ninguna solución del CSP contendrá ciclos (ver la sección 3.7.4).

Una solución para el problema de restricciones, en el que se da un valor para cada unade las variables, es una permutación de 1..#ops variables y puede ser representada poruna secuencia ordenada de operaciones S. A esta secuencia nosotros asociamos el "tiempode comienzo más temprano"planificando las operaciones en el orden inducido por la se-cuencia, dando lugar a una solución JSSP. Denotamos por S(m) la secuencia ordenada deoperaciones que se ejecutan en la máquina m en el orden fijado por la solución representadapor S.

La figura 3.13 muestra una solución para el problema de la figura 3.12. En primerlugar, se muestra el valor para cada variable, debajo de los cuales se encuentra situada lacorrespondientes solución S, donde la posición a en la secuencia representa el valor de lavariable S[a] (vij = a ≡ S[a] = opij). Además, se muestran las secuencias ordenadascorrespondientes a cada máquina. Finalmente, la figura 3.13 muestra una solución JSSP

3.7. MODELADO JSS PARA CBLS 67

op 11

op 12

op 13

op 31

op 32

op 33

op 21

op 22

op 23

2 1 8 9 7 6 5 4 3

S

v 11

= 2 v 21 = 4 v 31 = 1

v 12

= 6 v 22 = 5 v 32 = 3

v 13 = 8 v 23 = 9 v

33 = 7

S(m 1 ) op 31 op 11 op 22

S(m 2 ) op

21 op

12 op

33

S(m 3 ) op 32 op 13 op 23

op 11

op 23 op 22

op 12

op 21

op 13

op 33 op 32 op 31

Figura 3.13: Ejemplo de una solución satisfactible

donde todos los arcos en el grafo son dirigidos acorde al orden fijado en S. Pueden existirvarias soluciones al problema CSP que den lugar a la misma planificación, por ejemplo lasolución S = {op21, op31, op32, op11, op12, op13, op22, op33, op23} para el problema de lafigura 3.12 conduce al mismo plan que la solución que se muestra en la figura 3.13.

En adelante, usaremos PM(v) y SM(v) para hacer referencia a las variables prede-cesoras y sucesoras de v en su máquina, y de forma similar PJ(v) y SJ(v) en su tra-bajo. PM(PM(v)) se denota por PM2(v) (lo mismo para SM(v)) y así sucesivamente.Además, denotamos m(v) como la máquina en la que la operación correspondiente a lavariable v tiene que ser ejecutada.

Detección de Ciclos

Una solución para el problema consiste en establecer direcciones en los arcos no di-rigidos del grafo disyuntivo, siendo satisfactible si no contiene ciclos. Un ciclo para unasolución en un grafo disyuntivo es un camino (simple) cerrado dirigido, sin otros vérticesrepetidos más que los vértices inicial y final. La figura 3.14 muestra dos ciclos en el grafodisyuntivo presentado en la sección 3.7.2. En la figura 3.14.a es posible ver un ciclo quecontiene cuatro operaciones de dos trabajos, mientras que la figura 3.14.b el ciclo contienetres operaciones de tres trabajos diferentes.

Es posible ver un ciclo como una secuencia de operaciones que contiene dos tipos dearistas:

Aristas de precedencia: están fijadas por el problema.

Aristas de recurso: están determinadas por las decisiones tomadas durante la resolu-ción del problema.

Todos los ciclos posibles que se pueden formar en un grafo engloban, al menos, dosmáquinas y cuatro operaciones, dos pertenecientes a un trabajo, y dos pertenecientes a otrotrabajo, tal y como se muestra en la figura 3.15. En esta figura se puede observar un cicloformado por cuatro operaciones, dos pertenecientes a J1 (op1i y op1j) y dos pertenecientesa J2 (op2k y op2l). En la secuencia de operaciones aparecen, al menos, dos aristas deprecedencia, que conectan operaciones que usan distintas máquinas. Todas las operacionesque aparecen en la figura pueden ser ejecutadas en máquinas diferentes, así pues el númerode máquinas involucradas en este ciclo puede estar entre dos y cuatro. Es importante aclararque op1,j y op2,k no tienen por qué ser ejecutadas en la misma máquina (lo mismo paraop1,i y op2,l).

Teorema 1 Cualquier solución del CSP, con el modelado propuesto, no contendrá ci-clos.

Demostración. Sean op1i, op1j , op2k y op2l cuatro operaciones con las siguientes ca-racterísticas:

68 CAPÍTULO 3. TRABAJO RELACIONADO

op 11

op 12

op 13

op 21

op 22

op 23

op 31

op 32

op 33

op 11 op 12 op 13

op 21 op 22 op 23

op 31 op 32 op 33

a) Ciclo formado por 4 operaciones

b) Ciclo formado por 6 operaciones

Figura 3.14: Ejemplos de ciclos

op 1i

op 1j

op 2k

op 2l

...

...

op ab

op cd

v ab < v cd

op 1i

op 1j

op 2k

op 2l

significa

Figura 3.15: Un ciclo en un grafo disyuntivo

3.7. MODELADO JSS PARA CBLS 69

op1i y op1j pertenecen a J1, i < j, así pues v1i < v1j (restricción increasing sobreJ1).

op2k y op2l pertenecen a J2, k < l, así pues v2k < v2l (restricción increasing sobreJ2).

Estas relaciones son establecidas por el problema. Acorde a la relación entre las opera-ciones op2k y op1j de diferentes trabajos, establecidas por una solución para el problema,pueden existir dos posibilidades:

1. v2k < v1j : La relación entre op1i y op2l puede ser:

a) v1i < v2l (Figura 3.16.1a). En este caso, existen cuatro secuencias ordenadasposibles, y ninguna de ellas contiene ciclos:

1) v1i < v2k < v1j < v2l: No hay ciclos debido a 1a.2) v1i < v2k < v2l < v1j : No hay ciclos, debido a la restricción increasing

en J1.3) v2k < v1i < v1j < v2l: No hay ciclos, debido a la restricción increasing

en J2.4) v2k < v1i < v2l < v1j : No hay ciclos debido a 1.

b) v2l < v1i (Figura 3.16.1b). Existe sólo una secuencia ordenada posible: v2k <v2l < v1i < v1j , sin ciclos debido a 1.

2. v1j < v2k: La relación entre op1i y op2l puede ser:

a) v1i < v2l (Figura 3.16.2a). Existe sólo una secuencia ordenada posible: v1i <v1j < v2k < v2l, sin ciclos debido a 2a.

b) v2l < v1i (Figura 3.16.2b). Este caso no está permitido, debido a que la secuen-cia sería v1i < v1j < v2k < v2l < v1i (existiría un ciclo) y esto no se permitegracias a la restricción increasing en ambos trabajos.

La prueba simétrica es válida para las operaciones op2l y op1i. 2

Vecindarios

Para JSSP, la mayoría de las propuestas que obtienen buenos resultados hacen uso devecindarios basados en invertir operaciones críticas (incrementar su duración implica queaumente el makespan) que deben ser ejecutadas en la misma máquina. Uno de los mejoresmétodos ha sido propuesto por Nowicki y Smutnicki [83], cuyo vecindario era más res-tringido que otras propuestas anteriores. Los movimientos permitidos son la inversión dedos operaciones críticas adyacentes que pertenecen al mismo bloque crítico (una secuenciamáxima de operaciones críticas de la misma máquina sin holgura temporal entre ellas) deforma que una de ellas no es una operación interna en el bloque, excluyendo los intercam-bios entre las dos primeras operaciones del primer bloque cuando la segunda es interna ylas dos últimas operaciones del último bloque cuando la primera es interna.

Nosotros definimos una familia de vecindarios para el modelado propuesto en la que laidea básica es realizar un intercambio entre los valores de dos variables correspondientesa operaciones de la misma máquina, es decir, entre el orden relativo de estas operacionesen una solución, intentando cambiar el orden de operaciones que pertenecen a un caminocrítico de una solución S (en adelante CP (S)), basada en el vecindario de Nowicki ySmutnicki (en adelante NS). Un camino crítico es una secuencia de bloques críticos, elprimero de ellos comenzando en tiempo 0, y el último terminando en makespan, sin existirholgura temporale en la secuencia.

Para una variable v, se define σ(v) como la unión de un conjunto de variables wsatisfasciendo la siguiente condición: el intercambio entre v y w en S (denotado por

70 CAPÍTULO 3. TRABAJO RELACIONADO

op 1i op 1j

op 2k op 2l

...

...

op ab

op cd

v ab

< v cd

op 1i

op 1j

op 2k

op 2l

significa

(2b)

op 1i op 1j

op 2k op 2l

...

...

op 1i

op 1j

op 2k

op 2l

(2a)

op 1i

op 1j

op 2k

op 2l

...

...

op 1i

op 1j

op 2k op 2l

(1a)

op 1i op 1j

op 2k op 2l

...

...

op 2k

op 2l

op 1i

op 1j

(1b)

Figura 3.16: Casos para la prueba del teorema 1

swap(v, w, S)) causa un intercambio entre v y PM(v) en m(v) y este es el único in-tercambio provocado en m(v). Las variables w que cumplen esta condición son aquéllascomprendidas entre PM2(v) (no incluido) y PM(v) (incluido) en S. Es posible ver que elintercambio entre v y las variables que aparecen antes de PJ(v) en S conducen hacia solu-ciones no satisfactibles. Entonces, σ(v), cuando v no es la primera en su trabajo y tiene, almenos, dos predecesoras en su máquina, se define como:

σ(v) = {w ∈ V |max(PJ(v), PM2(v)) < w ≤ PM(v)}

Si PJ(v) y PM2(v) no existen, el límite inferior es 0. Por otro lado, si sólo una deellas existe, el límite inferior es establecido por ésta. Por último, todas las variables quetienen los valores más pequeños en su máquina (es decir, que son ejecutadas las primeras)no tiene ningún intercambio posible (σ = ∅).

En la figura 3.17 se muestran diferentes casos de posibles intercambios. En la figura3.17.a, PJ(v) aparece antes que PM2(v), entones el límite inferior del rango de posibili-dades es establecido por PM2(v). En la figura 3.17.b, PM2(v) aparece antes que PJ(v),entonces el límite viene dado por PJ(v). En la figura 3.17.c, PJ(v) aparece después dePM(v), por lo que no se puede realizar ningún intercambio para v.

Para reducir y establecer un número máximo de vecinos para una solución, se hadefinido un parámetro δ como el número máximo de posibles intercambios para una va-riable v, desde PM(v) hacia variables que aparecen antes que ésta en S. δ tiene que sermayor que 1 para que el algoritmo pueda alcanzar cualquier solución posible, teniendo encuenta el modelo propuesto. Acorde a este parámetro, el conjunto de intercambios permi-tidos para una variable se define como:

σδ(v) = {w ∈ V |max(PM(v)− δ, PJ(v), PM2(v)) < w ∧ w ≤ PM(v)}

3.7. MODELADO JSS PARA CBLS 71

v PM(v) PM 2 (v) PJ(v) ... ... ... ... ...

a) Posibles swap(v) cuando PJ(v) <

b) Posibles swap(v) cuando < PJ(v)

...

c) Ningún swap(v) posible cuando PM(v) < PJ(v)

v PM(v) PJ(v) PM 2 (v) ... ... ... ... ...

...

v PJ(v) PM(v) ... ... ... ... ... ...

S

S

S

...

Figura 3.17: Intercambios posibles para una variable v

v PM(v) ... ... ... ... S

Figura 3.18: Intercambios permitidos para δ = 2

En la figura 3.18 se muestra un ejemplo para δ = 2.Se ha definido una familia de vecindarios, N δ

1λ, dependiendo de las posibles variablesa intercambiar. Para λ = 0, la idea es intercambiar variables que aparecen al principio o alfinal de un bloque crítico (en adelante CB, CB(v) para el CB de una variable v), excepto alcomienzo del primer CB o al final del último CB, similar al vecindario NS. Estas variablesvienen dadas por el conjunto V0(S):

V0(S) = {v ∈ CP (S) | v = SM(first(CB(v))) ∨ v = last(CB(v))}

donde first(CB(v)) y last(CB(v)) son la primera y la última operación de CB(v),respectivamente. V0(S) contiene las posibles variables a ser intercambiadas en N δ

10 (Nδ10 =

{swap(v, w, S) | v ∈ V0(S) ∧ w ∈ σδ(v)}).Debido al modelo propuesto y a la búsqueda tabú, es posible alcanzar una solución

con un vecindario vacío. Para paliar este problema y conseguir una mayor diversificacióndurante el proceso de búsqueda, se han definido otros vecindarios más generales N δ

1λ, di-ferentes de la propuesta de NS, y que dependen de un parámetro λ. Para λ > 0, se permiteintercambiar variables internas de CBs, más interna conforme λ va incrementando. El con-junto de posibles variables a intercambiar viene ahora determinado por:

Vλ(S) = {v ∈ CP (S) | (v = SMλ+1(first(CB(v))) ∨ v = PMλ(last(CB(v))))

∧ λ ≤ #CB(v)/2}Entonces, el vecindario N δ

1λ se define como N δ1λ = {swap(v, w, S) | v ∈ Vλ(S)∧w ∈

σδ(v)}.Para permitir intercambios entre todas las operaciones no críticas (pertenecientes o no

a CP), se ha definido otro vecindario:N δ

2 = {swap(v, w, S) | v ∈ V ∧ w ∈ σδ(v)}.El intercambio entre v y w tiene las siguientes consecuencias:

1. Intercambio entre el orden de ejecución de v y PM(v), ejecutadas en la mismamáquina, que no depende de w (cambio en m(v)).

72 CAPÍTULO 3. TRABAJO RELACIONADO

S(m(v)) ... ... PM(v) v

S(m(w)) ... w SM(w) ... ...

... w ... SM(w) SM 2 (w) ... v ...

S'( m(v))

S'( m(w))

... v ... SM(w) ... w ...

S

S'

... ...

... ...

... ... v PM(v)

... w SM(w) ... ...

SM 2 (w)

SM ... (w)

SM ... (w)

SM ... (w) SM 2 (w)

SM ... (w) SM 2 (w)

S(m(v))

... w ... v

S'(m(v))

S ...

... ... v w

S' ... v ... w ...

... ... w v

a) Intercambio entre variables correspondientes a operaciones ejecutadas en la misma máquina

b) Intercambio entre variables correspondientes a operaciones ejecutadas en máquinas diferentes

Figura 3.19: Intercambio entre variables

2. Si w 6= PM(v), es decir m(w) 6= m(v), tendrán lugar otros cambios. Si SM(w) <v, entonces los órdenes de ejecución de todas las operaciones w′ que satisfacen quem(w′) = m(w) y w < w′ < v se cambiarán. Concretamente, el orden relativo detodas estas operaciones se moverán hacia delante en su máquina (cambio en m(w)).

Teniendo en cuenta esto, pueden darse dos tipos de movimientos. Primero, el intercam-bio entre las variables correspondientes a operaciones ejecutadas en la misma máquina,sólo se da un intercambio en S(m(v)) (Figura 3.19.a). En segundo lugar, el intercambioentre variables correspondientes a operaciones ejecutadas en máquinas diferentes, que con-ducen a intercambios en S(m(v)) y varios intercambios en S(m(w)), uno por cada sucesordirecto o indirecto en la máquina de w que están situados entre w y v en S (Figura 3.19.b).En la figura 3.19 el vecino para S es referenciado como S′.

El algoritmo parametrizado

Considerando los vecindarios definidos, se ha desarrollado un algoritmo de búsquedalocal (Alg. 3.20). Aunque se puede utilizar cualquier solución inicial, la elección de mejoressoluciones iniciales normalmente permite la obtención de mejores resultados, como ocurreen el caso del método NS [83]. De esta forma, para los experimentos de la próxima sección,hemos utilizado el algoritmo INSA [53].

Como se ha indicado en el apartado 3.7.4, un plan puede ser representado por dife-rentes soluciones del modelo. Por lo tanto, para seleccionar una solución inicial se usa unprocedimiento aleatorio a partir de la planificación obtenida por el algoritmo INSA.

Acorde a la evolución de la búsqueda, se usan diferentes vecindarios para seleccionarel siguiente vecino, que se corresponderá con una solución satisfactible. En cada iteración,se intenta un movimiento hacia el mejor vecino de N δ

1,0 (λ = 0), pero, si el vecindarioestá vacío o todos sus miembros se encuentran en la lista tabú, se busca un vecindariomás amplio, incrementando λ. Si λ alcanza el máximo valor permitido sin encontrar unasolución adecuada que visitar, se hace uso del vecindario más general N δ

2 , y ahora el vecinose selecciona aleatoriamente. N δ

2 se usa también cuando el algoritmo no ha encontrado una

3.7. MODELADO JSS PARA CBLS 73

begindetermina una solución inicial S de forma aleatoriabest := S;for it := 1 to NIterations do

if solución no ha mejorado en las últimas K iteraciones thenselecciona un vecino S′ de best en N δ

2 aleatoriamente;else

λ := 0;repeat

determina el conjunto N δ1λ de los vecinos no tabú de S;

if N δ1λ no está vacío thenselecciona una mejor solución S′ en N δ

1λ;else

λ := λ + 1;end

until S′ ha sido seleccionado o λ > maxBlockSize(S)/2 ;if S′ no ha sido seleccionado (todos los N δ

1λ están vacíos) thenselecciona un vecino S′ de S en Nδ

2 aleatoriamente;end

endS := S′;if S mejora best then

best := S;end

endend

Figura 3.20: El algoritmo de búsqueda local parametrizado

solución mejor durante un número K de iteraciones. En este caso, el algoritmo devuelve lamejor solución encontrada hasta el momento.

Por otro lado, la mayoría del coste computacional de los algoritmos de búsqueda lo-cal se deben a la evaluación de los vecinos. Para reducir dicha cantidad, se han propuestoalgunas alternativas, tal como Taillard [103], que evalúa los vecinos haciendo uso de unaestimación del límite inferior del makespan en tiempo constante, en lugar de calcularloexactamente. En el algoritmo propuesto, la selección de candidatos se realiza en dos pasos.Primero, se selecciona el mejor intercambio entre dos operaciones críticas usando la esti-mación de Taillard del makespan esperado. Tras esto, se selecciona una variable de las δposibilidades, eligiendo la que presenta una mayor mejora en su holgura gracias al cambio.

3.7.5. Resultados ExperimentalesPara realizar la implementación del algoritmo 3.20 y manejar las restricciones del pro-

blema se ha hecho uso de ILOG JSolver [52]. Como se ha comentado anteriormente, elalgoritmo consta de varios parámetros, δ, K (número máximo de iteraciones sin mejorarla solución), y el tamaño de la lista tabú (TLS), que pueden afectar en su comportamientoy determinar el valor adecuado para cada uno de ellos no es una tarea trivial. Teniendo encuenta que el principal interés de este trabajo no radica en la competitividad del algoritmopropuesto sino en el nuevo modelado CSP que ha sido definido, se ha seleccionado un es-cenario para algunos resultados comparativos, en el cual el algoritmo se ha ejecutado paraun número fijado de 1000 iteraciones, las cuales fueron seleccionadas aleatoriamente de losresultados del algoritmo INSA. Para dicha situación, el valor de K se ha establecido a 100.Para seleccionar δ y TLS, se lanzó el algoritmo sobre un conjunto reducido de instancias

74 CAPÍTULO 3. TRABAJO RELACIONADO

para δ desde 2 hasta 5 y TLS desde 5 hasta 10. Los mejores resultados para makespan mí-nimo y medio de las mejores soluciones tras 10000 iteraciones se encontraron para δ = 2 yTLS = 6. El hecho de que los mejores resultados se hayan obtenido para δ = 2 se puedeexplicar dado que para valores más altos de δ existe mayor probabilidad de encontrar unavariable w tal que el intercambio entre v y w sea factible, lo que da lugar a un alto gradode diversificación.

La tabla 3.10 muestra los resultados del algoritmo sobre un gran conjunto de bench-marks JSSP, tomados de OR-library, y algunas instancias más duras de Taillard [103]. Paracada instancia JSSP, la tabla muestra algunos valores estadísticos acerca del algoritmo uti-lizado para este trabajo: el error relativo (en porcentaje) de la mejor solución de los 100restarts (BRE) con respecto a la mejor solución conocida (UB, cuyo valor no se ha proba-do que sea el óptimo para los valores indicados por *), el error relativo medio (MRE) yla desviación estándar del error relativo (SDRE). Además, se muestra el tiempo computa-cional requerido para la ejecución del algoritmo (RT ). Como referencia, se muestran losresultados obtenidos por el algoritmo NS en dos situaciones: en su forma original, que tieneen cuenta varios factores, y tras 10000 iteraciones (BRE104 y RT104 ). Como era de espe-rar, el algoritmo no es completamente competitivo (ha sido desarrollado en Java, muchosde sus componentes no han sido optimizados) con el de Nowicki y Smutnicki, conside-rado uno de los mejores métodos para la resolución de JSSP. En su lugar, los resultadosque se muestran serán tomados como referencia para mejoras futuras del algoritmo o paradiferentes propuestas que puedan hacer uso del modelado propuesto.

3.7.6. Conclusiones y Trabajo FuturoEn este trabajo se propone un modelado CSP para el problema Job Shop Scheduling

para ser resuelto haciendo uso de técnicas de búsqueda local. Los principales aspectos delmodelado son el uso de variables enteras que representan el orden relativo de las ope-raciones a planificar y dos tipos de restricciones globales, alldifferent e increasing, paragarantizar la satisfactibilidad. Una propiedad interesante del modelado es que la detecciónde ciclos en los planes está implícita en la satisfacción de las restricciones. Además, se hadefinido un vecindario para dicho modelado basado en la propuesta de Nowicki y Smut-nicki. El principal interés de este trabajo no es la competitividad del algoritmo propuesto,sino la definición del modelado CSP.

Como trabajos futuros, tanto el algoritmo como el vecindario podrían ser mejoradospara resolver de forma más eficiente el JSSP. Para el algoritmo, exploraremos la influenciadel uso de la estimación de Taillard del makespan esperado, y el criterio de aspiración. Parael vecindario, se intentará variar el valor del parámetro δ durante la búsqueda, de formaque sea posible controlar el grado de diversificación. Además, pensamos que el modeladopropuesto puede ser adaptado de forma directa para otros problemas similares de secuen-ciación.

3.7. MODELADO JSS PARA CBLS 75

Tabl

a3.

4:C

onju

nto

dere

stri

ccio

nes

detip

os(2

)y(3

)par

ael

graf

oA

nd/O

rde

repa

raci

ónde

lafig

ura

3.10

Tipo

Res

tric

cion

es

s(T′ i)⇒

t f(T′ i)=

t i(T′ i)+

dur(

T′ i),

T′ i∈{T

′ 1,T

′ 2,T

′ 3,T

′ 4,T

′ 5,T

′ 7}

(2)

s(T

i)⇒

t f(T

i)=

t i(T

i)+

dur(

Ti)

,Ti∈{T

1,T

2,T

3,T

4,T

5,T

6,T

7,T

8}

s(T′ 1)⇒

(s′ (

AB

CD

)∧

s′(E

)∧

t i(T′ 1)≥

t′ OR(A

BC

DE

))s(

T′ 2)⇒

(s′ (

AC

D)∧

s′(B

E)∧

t i(T′ 2)≥

t′ OR(A

BC

DE

))s(

T′ 3)⇒

(s′ (

B)∧

s′(A

CD

)∧

t i(T′ 3)≥

t′ OR(A

BC

D)+

∆m

ov(A

BC

D,m

′ (A

BC

D),

M′ 1))

(m′ (

AB

CD

)=

M2)

. . . s(T

6)⇒

(s(A

C)∧

t i(T

6)≥

t OR(A

)+

∆m

ov(A

,m(A

),M

2))

m(A

)=

M3

s(T

6)⇒

(ti(

T6)≥

t OR(C

)+

∆m

ov(C

,m(C

),M

2))

m(C

)=

M1

(3)

s(T

7)⇒

(s(A

D)∧

t i(T

7)≥

t OR(A

)+

∆m

ov(A

,m(A

),M

1))

s(T

7)⇒

(s(A

D)∧

t i(T

7)≥

t OR(D

)+

∆m

ov(D

,m(D

),M

1))

(m(A

)=

M3)

. . . s(T

1)⇒

(ti(

T1)≥

t OR(A

BC

D)+

∆m

ov(A

BC

D,m

(AB

CD

),M

2)∧

t i(T

1)≥

t OR(E

))(m

(AB

CD

)=

M3)

s(T

2)⇒

(ti(

T2)≥

t OR(A

CD

)+

∆m

ov(A

CD

,m(A

CD

),M

2))

s(T

2)⇒

(ti(

T2)≥

t OR(B

E)+

∆m

ov(B

E,m

(BE

),M

2))

76 CAPÍTULO 3. TRABAJO RELACIONADO

Tabla 3.5: Conjunto de restricciones de tipo (4) para el grafo And/Or de reparación de lafigura 3.10

Tipo Restricciones

s′(ACD) ⇔ (s(T ′3) XOR s(T ′2))s′(D) ⇔ (s(T ′4) XOR s(T ′7))

(4)...s(A) ⇔ (s(T6) XOR s(T7))s(ACD) ⇔ (s(T3) XOR s(T2))

Tabla 3.6: Conjunto de restricciones de tipo (5) para el grafo And/Or de reparación de lafigura 3.10

Tipo Restricciones

(s(T ′1) ∧ s(T1)) ⇒ ti(T1) ≥ tf (T ′1) + ∆cht(M2, C3, C4)(s(T ′1) ∧ s(T6)) ⇒ ti(T6) ≥ tf (T ′1) + ∆cht(M2, C3, C4)

(5)...(s(T8) ∧ s(T2)) ⇒ ti(T2) ≥ tf (T8) + ∆cht(M2, C4, C5)(s(T4) ∧ s(T1)) ⇒ ti(T1) ≥ tf (T4) + ∆cht(M2, C5, C4)

Tabla 3.7: Conjunto de restricciones de tipo (6) para el grafo And/Or de reparación de lafigura 3.10

Tipo Restricciones

(s(T ′4) ∧ s(T8)) ⇒(ti(T ′4) ≥ tf (T8) + ∆cht(M2, C4, C3) ∨ ti(T8) ≥ tf (T ′4) + ∆cht(M2, C3, C4))

(6) (s(T6) ∧ s(T8)) ⇒ (ti(T6) ≥ tf (T8) ∨ ti(T8) ≥ tf (T6))(s(T4) ∧ s(T8)) ⇒

(ti(T4) ≥ tf (T8) + ∆cht(M2, C4, C5) ∨ ti(T8) ≥ tf (T4) + ∆cht(M2, C5, C4))

Tabla 3.8: Resultados Comparativos (cualidad de las soluciones)

Mejor ∆Mejor #opt

Problema SGPlan ALG-1 ALG-2 SGPlan ALG-1 ALG-2

30d 0.075 1 0 0.116 0 0.457 030c 0.05 1 0 0.101 0 0.620 030b 0.05 0.562 0.425 0.102 0.024 0.023 030a 0.012 0.037 1 0.118 0.016 0 5840d 0.137 1 0 0.093 0 0.153 040c 0.012 0.212 0.85 0.178 0.020 0.011 4440b 0.15 0.45 0.55 0.043 0 0.500 4440a 0.087 1 0 0.088 0 0.521 0

3.7. MODELADO JSS PARA CBLS 77

Tabla 3.9: Resultados comparativos (tiempo de ejecución)Tiempo Medio

Problema SGPlan ALG-1 ALG-2

30d 0.598 0.108 30030c 0.604 0.091 30030b 0.485 0.097 30030a 0.193 0.044 120.940d 1.788 0.275 30040c 1.407 0.193 136.240b 2.063 0.264 136.140a 1.395 0.157 300

78 CAPÍTULO 3. TRABAJO RELACIONADO

Tabla3.10:R

esultadossobre

unconjunto

deinstancias

JSSM

odeloPropuesto

NS

Inst.

nm

UB

BR

EM

RE

SD

RE

RT

BR

ER

TB

RE

104

RT

104

FT10

1010

9302.25

3.950.96

8.720

0.680

0.25A

BZ

720

15656

9.9013.98

2.1664.40

2.284.62

3.200.84

LA

0210

5655

0.453.80

1.833.02

00.10

00.11

LA

1910

10842

2.496.25

1.8210.52

0.110.83

0.110.35

LA

2115

101046

5.168.23

1.0518.76

0.860.86

0.860.42

LA

2415

10935

3.856.56

1.1318.72

1.391.33

1.500.45

LA

2515

10977

7.2611.24

1.8420.65

1.121.39

2.040.45

LA

2720

101235

6.9612.07

2.0330.73

1.941.27

1.940.51

LA

2920

101152

8.4212.57

2.2233.24

3.133.40

4.510.48

LA

3615

151268

7.0911.42

1.2538.61

0.793.66

2.760.62

LA

3715

151397

9.0914.59

2.3041.80

1.502.74

3.290.78

LA

3815

151196

5.858.09

0.9941.72

1.842.75

2.590.65

LA

3915

151233

7.9410.44

0.9041.04

0.893.50

1.620.79

LA

4015

151222

7.0310.28

1.0236.52

1.642.40

2.130.62

TA02

1515

12446.35

10.491.64

36.472.73

2.832.73

0.70TA

1820

151396*

12.6015.25

1.3257.82

3.654.64

5.730.97

TA26

2020

1645*9.36

13.141.34

93.663.10

10.643.28

1.58TA

3230

151795*

14.2017.84

1.30116.93

3.1218.36

6.851.44

Capítulo 4

Conclusiones

En este último capítulo se presentan las conclusiones obtenidas durante la realizacióndel trabajo, junto con el esbozo de algunas ideas consideradas innovadoras e interesantespara realizar nuevos estudios y análisis que puedan desembocar en la creación de trabajosrelacionados con los temas estudiados.

4.1. Conclusiones obtenidasPara la realización del presente documento ha sido necesaria la lectura de un gran

número de trabajos de investigación de diversa temática, lo que ha dado lugar a una forma-ción creciente durante todo el período de estudio. Por otro lado, cuando se desea realizarun trabajo de investigación acerca de un tema, es necesario conocer en gran medida lostrabajos relacionados que ya existen, ya que esto tiene multitud de beneficios, algunos delos cuales se comentan a continuación:

nos permite innovar teniendo cierta certeza de que nuestra idea no ha sido previa-mente estudiada,

nos ayuda a conocer qué aspectos ya están resueltos, lo que podemos utilizar comopunto de partida para algunos de nuestros trabajos,

nos da la posibilidad de mejorar lo que ya existe, realizando comparativas con pro-puestas similares, lo que dota a nuestro trabajo de una mayor calidad.

En este documento se lleva a cabo el estudio de los temas considerados relevantes parael presente trabajo. En primer lugar, para poder modelar y resolver un problema cualquierahaciendo uso de la programación con restricciones es necesario conocer este paradigma,al que se le dedica la sección 3.2. Por otro lado, con el término planificación se hace refe-rencia a dos grandes áreas, scheduling (sección 3.3) y planificación (sección 3.4), que secombinan en la mayoría de los casos para resolver problemas reales, como es el caso dela generación del plan óptimo para la sustitución de componentes defectuosos. Además,es necesario tener en cuenta que durante el tiempo de vida de un sistema pueden ocurrirerrores inesperados que disminuyan e incluso paralicen su productividad. Estos errores sepueden reducir en gran medida gracias a un buen plan de mantenimiento, aspectos que seexponen en la sección 3.5.

Las secciones 3.6 y 3.7 describen dos de los trabajos realizados relacionados con eltema del presente trabajo. El primero de ellos propone un modelado CSP para el problemade la reparación una vez que un componente defectuoso es detectado, optimizando el tiem-po total del plan. En el segundo, se propone un modelado CSP y un algoritmo de búsquedalocal para resolver el problema Job Shop Scheduling. Ambos trabajos se consideran unbuen punto de partida para la realización de nuevos trabajos de investigación.

79

80 CAPÍTULO 4. CONCLUSIONES

4.2. Trabajo futuroTeniendo en cuenta la gran amplitud y aplicabilidad de los temas estudiados, existen

multitud de líneas que no han sido (suficientemente) exploradas, algunas de las cuales nosresultan especialmente interesantes:

A la hora de planificar el mantenimiento y la reparación de un sistema, se puedenperseguir distintos objetivos, entre los que se encuentran: minimizar el tiempo de cesedel funcionamiento del sistema, minimizar el tiempo de reparación/sustitución de uncomponente defectuoso, minimizar costes, maximizar la productividad del sistema,etc. En la mayoría de los casos es interesante plantearse la optimización de variasfunciones objetivos, lo que dota al problema de una mayor complejidad. Para resolverproblemas de optimización multiobjetivo existen multitud de propuestas, la mayoríade las cuales se pueden englobar en:

• Convertir el problema en otro con una única función objetivo, el cual puede serresuelto al igual que un problema mono-objetivo. Un ejemplo de este tipo depropuestas es el Weighting Method [119], que consiste en minimizar

∑ki=1 wi fi(x)

sujeto a x ∈ S, donde wi ≥ 0 para todo i = 1, . . . , k, siendo wi el peso otor-gado a la función objetivo fi(x). Es aconsejable normalizar las funciones obje-tivos haciendo uso de alguna escala, de forma que las distintas magnitudes noconfundan al método.

• Optimizar una de las funciones objetivos restringiendo las otras, tal como ε-Constraint Method [45], que optimiza fl(x) sujeto a fj(x) ≤ εj ∀j = 1, . . . , k, j 6=l, x ∈ S.

• Trabajar con un conjunto de soluciones óptimas (denominadas Pareto ópti-mas), tal como Evolutionary Multiobjective Optimization [23], que parte de unapoblación inicial de individuos-soluciones e iterativamente crea nuevas pobla-ciones a partir de las anteriores, haciendo uso básicamente de tres operaciones:selección, cruce y mutación.

En problemas de planificación reales, el plan inicial generado puede sufrir modifica-ciones debido a factores inesperados (fallos en recursos, incremento en el tiempo deejecución esperado de algunas tareas, etc) que pueden ocurrir durante su ejecución.Se define la robustez de un plan como la capacidad del mismo para asimilar eventosinesperados que puedan ocurrir durante su ejecución. En muchos casos se persiguemaximizar la robustez de los planes resultantes, aunque a cambio haya que sacrificaren parte la optimización temporal.

Durante el funcionamiento de un sistema de producción, la probabilidad de ocurren-cia de errores se ve incrementada a medida que transcurre el tiempo de vida delmismo. Para ralentizar el deterioro, es conveniente realizar tareas de mantenimien-to sobre los componentes y recursos del sistema, tales como lubricación, limpieza,ajustes, etc. En general, la ejecución de tareas de mantenimiento lleva asociado al-gún coste (temporal, económico, etc), por lo que es necesario encontrar el balanceadecuado entre tareas de producción y de mantenimiento para que el funcionamientodel sistema sea óptimo.

Bibliografía

[1] J. Adams, E. Balas and D. Zawack, ‘ The shifting bottleneck procedure for job shopscheduling’, Management Science , 34(3), 391–401, (1988).

[2] I. Aleksander, H. Farreny, and M. Ghallab, ‘Decision and intelligence.’, Robot Tech-nology Series, 6–7, (1983).

[3] J. Allen, ‘ Maintaining Knowledge about Temporal Intervals’, Comunications of theACM, 26(11), 832–843, (1983).

[4] A. Armando, C. Castellini and E. Giunchiglia, ‘SAT-based procedures for temporalreasoning’, In ECP, 97–108, (1999).

[5] A. Armando, C. Castellini, E. Giunchiglia and M. Maratea, ‘A SAT-based decisionprocedure for the Boolean combination of difference constraints’, In SAT, (2004).

[6] F. Bacchus, and Y. Teh, ‘Making forward chaining relevant.’, Proc. 4th Int. Conf. on AIPlanning Systems,54–61, (1998).

[7] F. Bacchus and F. Kabanza, ‘Using temporal logics to express search control knowled-ge for planning.’, Artificial Intelligence, 116, 123–191, (2000).

[8] K. Baker de Mello and G. Scudder, ‘Sequencing with earliness and tardiness penalties:a review’, Operations Research, 38(1), 22–36, (1990).

[9] I. Barba, C. Del Valle and D. Borrego ‘A Job-Shop Scheduling Model for Constraint-Based Local Search’, Iberamia 2008 Workshop on Planning, Scheduling and Con-straint Satisfaction, 7–18, (2008).

[10] J.C. Beck and M.S. Fox ‘A generic framework for constraint-directed search and sche-duling’, AI Magazine, 19(4), 101–130, (1998).

[11] J. Blazewic, E. Pesh and M. Sterna, ‘The disjunctive graph machine representation ofthe job shop scheduling problem’, European Journal of Operational Research , 127(2),317–331, (2000).

[12] A. Blum and J. Langeford, ‘Probabilistic planning in the Graphplan framework. ’,Proc. AISPS 98 Workshop on Plnning as Combinatorial Search, 8–12, (1998).

[13] A. Blum and M. Furst, ‘Fast planning through planning graoh analysis.’, ArtificialIntelligence, 90, 281–230, (1997).

[14] M.S. Boddy, A. Cesta, and S.F. Smith, ‘ICAPS-04 Workshop on Integrating Planninginto Scheduling.’(2004).

[15] A. Bourjault, ‘Contribution à une approche méthodologique de l’assemblage automa-tisé: elaboration automatique des séquences opératoires’, Besancon, France: Facultyof Science and Technology, Université de Franche-Comté, PhD Thesis, 12 November,(1984).

81

82 BIBLIOGRAFÍA

[16] P. Brandimarte ‘Routing and scheduling in a flexible job shop by tabu search’, Annalsof Operations Research, 41(3), 157–183, (1993).

[17] P. Brucker and S. Hnust, Complex Scheduling, Springer, 2006.

[18] T.L. Calton ‘Advancing design-for-assembly. The next generation in assembly plan-ning.’, In Proceedings of the 1999 IEEE International Symposium on Assembly andTask Planning, 57–62, (1999).

[19] A. Cesta and A. Oddi, ‘Gaining efficiency and flexibility in the simple temporal pro-blem’, In TIME, (1996).

[20] Y. Chen, C. Hsu and B. Wah ‘Temporal planning using subgoal partitioning and res-olution in SGPlan’, Journal of Artificial Intelligence Research, 26, 323–369, (2006).

[21] T. Dean, L. Kaelbling, J. Kirman and A. Nicholson, ‘Planning under time constraintsin stochastic domains.’, AI, 76, 35–74, (1995).

[22] T. Dean and S. Kambhampati, ‘Planning and scheduling.’, In CRC Hnadbook of Com-puter Science and Engineering (1996).

[23] K. Deb, ‘Introduction to evolutionary multiobjective optimization.’, Lecture Notes inComputer Science 5252 LNCS, 59–96, (2008).

[24] R. Debruyne and C. Bessière ‘Some practicable filtering techniques for the constraintsatisfaction problem ’, In proceedings of the 15th IJCAI , 412–417, (1997).

[25] R. Dechter, I. Meiri, and J. Pearl, ‘Temporal constraint networks’, Artificial Intelli-gence, 49, 61–95, (1991).

[26] R. Dechter and I. Meiri, ‘Experimental evaluation of preprocessing algorithms forconstraints satisfaction problems’, Artificial Intelligence, 68, 211–241, (1994).

[27] R. Dechter, Constraint Processing, Morgan Kaufmann Publishers, 2003.

[28] T.L. De Fazio and D.E. Whitney, ‘Simplified generation of all mechanical assemblysequences’, IEEE Journal of Robotics and Automation, RA-3(6), 640–658, (1987).

[29] R. Dekker, F.A. Duyn, and R.E. Wildeman, ‘A Review of Multi-Component Main-tenance Models with Economic Dependence’, Mathematical Methods of OperationsResearch, 45, 411–435, (1997).

[30] P. De Lit, P. Latinne, B. Rekiek and A. Delchambre ‘Assembly planning with an orde-ring genetic algorithm’, International Journal of Production Research, 39(16), 3623–3640, (2001).

[31] Y. Dimopoulos,A. Gerevini,P. Haslum, and A. Saetti, The fifth International Plan-ning Competition, hosted at the International Conference on Automated Planning andScheduling (ICAPS-06)), Cumbria, UK(2006).

[32] M.B. Do and S. Kambhampati ‘Planning as constraint satisfaction: Solving the plan-ning graph by compiling it into CSP’, Artificial Intelligence, 132, 151–182, (2001).

[33] B. Drabble and A. Tate, ‘The use of optimistic and pessimistic resource profiles to in-form search in an activity based planner’, Proc. 2nd Int. Conf. on AI Planning Systems,243–248, (1994).

[34] M. Ernst, T. Millstein and D. Weld, ‘Automatic SAT compilation of planning pro-blems.’, Proc. 15th Ont. Joint Conf. on AI, 1169–1176, (1997).

BIBLIOGRAFÍA 83

[35] E. Freuder, ‘A sufficient condition for backtrack-free search’, Journal of the ACM, 29,24–32, (1982).

[36] D. Frost and R. Dechter, ‘Dead-end driven learning’, In Proc. of the National Confe-rence on Artificial Intelligence, 294–300, (1994).

[37] M. R. Garey, D. S. Johnson, and R. Sethi, ‘The complexity of flowshop and jobshopscheduling’, Math. Oper. Res., 1(2), 117–129, (1976).

[38] J. Gaschnig, ‘Performance measurement and analysis of certain search algorithms’,Technical Report CMU-CS-79-124, Carnegie- Mellon University (1979).

[39] A. Gerevini and L. Schubert ‘Efficient Algorithms for Qualitative Reasoning aboutTime ’, Artificial Intelligence, 74, 207–248, (1995).

[40] M. Ghallab, M. Alaoui, ‘Managing Efficiently Temporal Relations through IndexedSpanning Trees’, In IJCAI, 1297–1303,(1989).

[41] M. Ghallab, D. Nau and P. Traverso, ‘Automated Planning: Theory and Practice’,Elsevier, (2004).

[42] F. Glover, ‘Tabu Search Part I’, Orsa Journal on Computing, 1(3), 190–206, (1989).

[43] F. Glover and M. Laguna, Tabu Search, Blackwell Scientific Publishing, Oxford, Eng-land, 1993.

[44] M.H. Goldwasser and R. Motwani ‘Complexity measures for assembly sequences’,International Journal of Computational Geometry and Applications, 9, 371–418,(1999).

[45] Y.Y. Haimes, L.S. Lasdon and D.A. Wismer, ‘On a bicriterion formulation of the pro-blems of integrated system identification and system optimization.’, IEEE Transactionson Systems, Man, and Cybernetics, 1, 296–297, (1971).

[46] F. Rossi, P. van Beek, and T. Walsh, Handbook of Constraint Programming, Elsevier,2006.

[47] R. Haralick and G. Elliot, ‘Increasing tree efficiency for constraint satisfaction pro-blems’, Artificial Intelligence, 14, 263–314, (1980).

[48] L.S. Homem de Mello, A.C. Sanderson, ‘And/or graph representation of assemblyplans’, IEEE Transactions on Robotics and Automation, 6(2), 188–189, (1990).

[49] L.S. Homem de Mello and A.C. Sanderson, ‘A correct and complete algorithm for thegeneration of mechanical assembly sequences’, IEEE Transactions on Robotics andAutomation, 7(2), 228–240, (1991).

[50] H. H. Hoos and T. Stutzle, Stochastic Local Search. Foundations and Applications,Morgan Kaufmann, 2005.

[51] H.H. Huang, M.H. Wang, and M.R. Johnson ‘Disassembly sequence generation usinga neural network approach’, Journal of Manufacturing Systems, 19(2), 73–82, (2000).

[52] ILOG, ‘Ilog JSolver’, (2003).

[53] A. Jain and S. Meeran, ‘Deterministic job-shop scheduling: Past, present, and future’,European Journal of Operational Research, 113 (2), 390–434, (1999).

[54] T. Kanehara, T. Suzuki, A. Inaba, and S. Okuma ‘On algebraic and graph structuralproperties of assembly Petri net’, Proceedings of 1993 IEEE/RSJ International Confe-rence on Intelligent Robots and Systems, 2286–2293, (1993).

84 BIBLIOGRAFÍA

[55] J.G. Kang, D.H. Lee, P. Xirouchakis, and J.G. Persson ‘Parallel disassembly sequen-cing with sequence dependent operation times’, Annals of the CIRP, 50(1), 343–346,(2001).

[56] H. Kautz and P. Ladking, ‘Integrating Metric and Qualitative Temporal Reasoning ’,In AAI, 241–246, (1991).

[57] H. Kautz and B. Selman, ‘Pushing the envelope: planning, propositional logic.’, Proc.13th Nat. Conf. on AI, 1194–1201, (1996).

[58] S. Kirkpatrick, C.D. Gelatt and M.P. Vecchi, ‘Optimization by Simulated Annealing’,Science, 220(4598), 671–680, (1983).

[59] J. Koehler, ‘Planning under resource constraints.’, Proc. 13th European Conf. on AI,489–493, (1998).

[60] M. Kovalyov, M. Portmann, and A. Oulamara, ‘Optimal testing and repairing a failedseries system’, J Comb Optim, 12, 279–295, (2006).

[61] A.A. Krokhin, P. Jeavons, and P. Jonsson, ‘Constraint satisfaction problems on inter-vals and lengths ’, SIAM Journal on Discrete Mathematics, 17(3), 453–477, (2004).

[62] P. Laborie and M. Ghallab, ‘Planning with sharable resource constraints.’, Proc. 14thInt. Joint Conf. on AI, 1643–1649, (1995).

[63] P.B. Ladkin and A. Reinefeld, ‘Effective solution of qualitative interval constraintproblems ’, Artificial Intelligence, 57(1),105–124, (1992).

[64] A.J.D. Lambert, ‘Optimal disassembly of complex products’, International Journalof Production Research, 35(9), 2509–2523, (1997).

[65] A.J.D. Lambert ‘Optimal disassembly sequence generation for combined material re-cycling and part reuse’, In Proceedings of the 1999 IEEE International Symposium onAssembly and Task Planning, 146–151, (1999).

[66] A.J.D. Lambert ‘Disassembly sequencing: a survey’, International Journal of Pro-duction Research, 41(16), 3721–3759, (2003).

[67] J. Larrosa ‘Boosting search with variable elimination’, In Proc CP, 291–305, (2000).

[68] J. Larrosa and P. Meseguer ‘Algoritmos para Satisfacción de Restricciones’, Inteligen-cia Artificial: Revista Iberoamericana de Inteligencia Artificial , 20, 31–42, (2003).

[69] W. Li, C. Zhang, H.P.B. Wang and S.A. Awoniyi ‘Design for disassembly analysis forenvironmentally conscious design and manufacturing’, Proceedings of ASME Interna-tional Mechanical Engineering Congress and Exposition, 2, 969–976, (1995).

[70] W. Li and C. Zhang ‘Design for disassembly analysis for environmentally consciousdesign and manufacturing’, In Proceedings of the 1995 ASME International Mechani-cal Engineering Congress, 2, 969–976, (1995).

[71] S. Lye, S.G. Lee and M.K. Khoo ‘An algorithm for optimising the servicing ofproducts with constrained, multiple defects’, International Journal of Production Re-search, 38(10), 2185–2200, (2000).

[72] A.K. Mackworth, ‘Consistency in networks of relations’, Artificial Intelligence, 8,99–118, (1977).

[73] A. Marquez, C. Del Valle, R.M. Gasca and M. Toro ‘A constraint-based algorithmfor planning the substitution of faulty parts’, In Frontiers in Artificial Intelligence andApplications, 117, 79–88, (2005).

BIBLIOGRAFÍA 85

[74] M. Martinez, V.H. Pham and J. Favrel ‘Dynamic generation of disassembly se-quences’, Proceedings of 6th IEEE International Conference on Emerging Technolo-gies and Factory Automation, 177–182, (1997).

[75] I. Meiri,‘Combining qualitative and quantitative constraints in temporal reasoning’,Artificial Intelligence, 87(1-2), 343–385, (1996).

[76] S. Minton, M.D. Johnston, A.B. Philips and P. Laird, ‘A heuristic repair method forconstraint-satisfaction and scheduling problems’, Artificial Intelligence, 58, 161–205,(1992).

[77] M. Mitchell, ‘An Introduction to Genetic Algorithms’, MIT Press, (1998).

[78] S. Mittal and B. Falkenhainer ‘Dynamic constraint satisfaction problems’, In Procee-dings of the Eighth National Conference on Artificial Intelligence, AAAI Press, 25–32,(1990).

[79] A. Nareyek, E.C. Freuder, R. Fourer, E. Giunchiglia, R.P. Goldman, H.A. Kautz,J. Rintanen, and A. Tate ‘Constraints and AI planning’, IEEE Intelligent Systems, 20(2),62–72, (2005).

[80] D. Nau, S. Gupta and W. Regli, ‘Artificial Inteligence planning versus manufacturingoperation planning: a case study’, Proc. 14th Int. Joint Conf. on AI, 1670–1676, (1995).

[81] D. Navin-Chandra ‘The recovery problem in product design’, Journal of EngineeringDesign, 5(1), 65–86, (1994).

[82] R. Nicolai and R. Dekker, ‘A review of multi-component maintenance models’, Pro-ceedings of the European Safety and Reliability Conference 2007, ESREL 2007 - Risk,Reliability and Societal Safety, 1, 289–296, (2007).

[83] E. Nowicki and C. Smutnicki, ‘A fast taboo search algorithm for the job-shop pro-blem’, Management Science, 42 (6), 797–813, (1996).

[84] W. Nuijten and E. Aarts, ‘Sequencing with earliness and tardiness penalties: a review’,European Journal of Operational Research, 90(2), 269–284, (1996).

[85] E. Pednault, ‘ADL: Exploring the middle ground between STRIPS and the situationcalculus.’, Proc. 1st Int. Conf. on Principles of Knowledge Representation and Reaso-ning, 324–332, (1989).

[86] J. Penberthy, and D. Weld, ‘UCPOP: a sound, complete, partial order planner forADL’, Proc. 3rd Int. Conf. on Principles of Knowledge Representation and Reasoning.,103–114, (1992).

[87] J. Penberthy and D. Weld, ‘Temporal planning with continuous change’, Proc. 12thNational Conf. on AI, 1010–1015, (1994).

[88] K.D. Penev, and A.J. De Ron ‘Determination of a disassembly strategy’, InternationalJournal of Production Research, 34(2), 495–506, (1996).

[89] P. Prosser, ‘An empirical study of phase transitions in binary constraint satisfactionproblems’, Artificial Intelligence, 81, 81–109, (1993).

[90] P.W. Purdom, ‘Search rearrangement backtracking and polynomial average time’, Ar-tificial Intelligence, 21, 117–133, (1983).

[91] M. Puterman, ‘Markov Decision Processes: Discrete Stochastic Dynamic Program-ming’, Wiley, (1994).

86 BIBLIOGRAFÍA

[92] D. Sabin and E.C. Freuder, ‘Contradicting convectional wisdom in constraint satis-faction’, In Proc. ECAI, 125–129, (1994).

[93] I. Sabuncuoglu and M. Bayiz, ‘Job shop scheduling with beam search’, EuropeanJournal of Operational Research, 118(2), 390–412, (1999).

[94] M.A. Salido and F. Barber ‘A constraint ordering heuristic for scheduling problems’,In Proceeding of the 1st Multidisciplinary Inter- national Conference on Scheduling :Theory and Applications, 476–490, (2003).

[95] M. Sanseverino and F. Cascio, ‘Model-based diagnosis for automotive repair’, IEEEExpert-Intelligent Systems and their Applications, 12(6), 33–37, (1997).

[96] B. Scholz-Reiter, H. Scharke, and A. Hucht ‘Flexible robot-based disassembly cell forobsolete TV-sets and monitors’, Robotics, Computers and Integrated Manufacturing,19, 247–255, (1999).

[97] D.D. Sheu and J.Y. Kuo, ‘A model for preventive maintenance operations and fore-casting’, Journal of Intelligent Manufacturing, 17(4), 441–451, (2006).

[98] D. Smith and D. Weld, ‘Temporal planning with mutual exclusion reasoning.’, Proc.16th Int. Joint Conf. on AI, 139–144, (1999).

[99] D. Smith, J. Frank and A. Jónsson ‘Bridging the gap between planning and schedu-ling’, Knowledge Engineering Review, 15(1), 47–83, (2000).

[100] S. Staab, ‘From binary temporal relations to non-binary ones and back’, ArtificialIntelligence, 128(1-2), 1–29, (2001).

[101] K. Stergiou and M. Koubarakis, ‘Backtracking algorithms for disjunctions of tem-poral constraints’, Artificial Intelligence, 120(1), 81–117, (2000).

[102] A.K. Subramani, and P. Dewhurst ‘Automatic generation of product disassemblysequences’, CIRP Annals, 40(1), 115–118, (1991).

[103] E. Taillard, ‘Parallel Taboo Search Techniques for the Job-Shop Scheduling Pro-blem’, ORSA Journal on Computing, 16 (2), 108–117, (1994).

[104] Y. Tang, M.C. Zhou, and R.J. Caudill ‘An integrated approach to disassembly plan-ning and demanufacturing operation’, Proceedings of 2000 IEEE International Sym-posium on Electronics and the Environment, 354–359, (2000).

[105] L.C. Thomas, ‘A survey of maintenance and replacement models for maintainabilityand reliability of multi-item systems’, Reliability Engineering, 16, 297–309, (1986).

[106] J. Thornton, M. Beaumont, A. Sattar and M.J. Maher, ‘A local search approach tomodelling and solving Interval Algebra problems’, Journal of Logic and Computation,14(1), 93–112, (2004).

[107] J.S. Usher, A.H. Kamal and W.H. Syed, ‘Cost optimal preventive maintenance andreplacement scheduling’, IEEE Transactions, 30(12), 1121–1128, (1998).

[108] R. Vaessens, E. Aarts, and J. Lenstra, ‘Job-shop scheduling by local search’, IN-FORMS Journal on Computing, 8, 302–317, (1994).

[109] C. Del Valle,A. Márquez and I. Barba ‘A CSP model for simple non-reversibleand parallel repair plans’, Journal of Intelligent Manufacturing, To appear (DOI10.1007/s10845-008-0162-9)., (2008).

BIBLIOGRAFÍA 87

[110] P. Van Hentenryck and L. Michel, Constraint-Based Local Search, The MIT Press,2005.

[111] M. Vilain, and H. Kautz, ‘Constraint Propagation Algorithms for Temporal Reaso-ning’, In AAAI, 377–382, (1986).

[112] S. Viswanathan and V. Allada ‘A framework for the flexible grouping of productsfor disassembly’, Journal of Electronics Manufacturing, 9(1), 53–66, (1999).

[113] T. Vossen, M. Ball, A. Lotem and D. Nau, ‘On the use of integer programmingmodels in AI planning’, The Knowledge Engineering Review, 15(1), (1999).

[114] J.P. Wang and V. Allada ‘Serviceability evaluation using weighted fuzzy attributes’,Engineering Design Automation, 4(3), 189–201, (1998).

[115] D. Weld, ‘Recent advances in AI planning.’, AI Magazine, 20(2), 93–123, (1999).

[116] D. Wilkins, ‘Can AI planners solve practical problems?’, Computational Intelli-gence, 6(4), 232–246, (1990).

[117] S. Wolfman and D. Weld, ‘Combining linear programming and satisfiability solvingfor resource planning.’, The Knowledge Engineering Review, 15(1), (1999).

[118] L. Xu and B.Y. Choueiry, ‘Improving backtrack search for solving the TCSP ’, InCP, 754–768, (2003).

[119] L. Zadeh, ‘Optimality and non-scalar-valued performance criteria.’, IEEE Transac-tions on Automatic Control, 8, 59–60, (1963).

[120] G. Zülch, E.F. Schiller and R. Müller ‘A disassembly information system’, Procee-dings of 4th CIRP International Seminar on Life Cycle Engineering, 400–412, (1997).

[121] M. Zweben and M. Fox, ‘Intelligent Scheduling’, Morgan Kaufmann, (1994).