tesisv2 2 figzeus.inf.ucv.cl/~jrubio/docs/tesis/tesisvf.pdf · 6.2.1 formato de archivos de entrada...

64
1 INDICE GENERAL INDICE GENERAL ...................................................................................................................................................... 1 INDICE DE FIGURAS.................................................................................................................................................. 3 1. Introducción y Discusión Bibliográfica ..................................................................................................................... 4 1.1 Discusión Bibliográfica ....................................................................................................................................... 4 1.2 Motivación .......................................................................................................................................................... 5 1.3 Estructura de la tesis ............................................................................................................................................ 6 2. Análisis de Objetivos y Metodología ......................................................................................................................... 7 2.1 Objetivo General ................................................................................................................................................. 7 2.2 Objetivos Específicos .......................................................................................................................................... 7 2.3 Hipótesis.............................................................................................................................................................. 8 2.4 Metodología ........................................................................................................................................................ 8 3. Estado del Arte........................................................................................................................................................... 9 3.1 El Curriculum de Estudios en la Educación Superior. ........................................................................................ 9 3.1.1 Información sobre el currículo..................................................................................................................... 9 3.1.2 Organización del currículo. ....................................................................................................................... 11 3.1.3 El sistema de créditos. ............................................................................................................................... 12 3.2 Problemas de Satisfacción de Restricciones...................................................................................................... 13 3.2.1 Conceptos Básicos de CSP. ....................................................................................................................... 13 3.2.2 Notación de CSP........................................................................................................................................ 14 3.3 Consistencia en un CSP..................................................................................................................................... 14 3.3.1 Niveles de Consistencia Local ................................................................................................................... 14 3.3.2 Consistencia Global ................................................................................................................................... 15 3.4 Colaboración de Técnicas ................................................................................................................................. 16 3.4.1 Ramificación Informada. ........................................................................................................................... 16 3.4.2 Búsqueda Local Restringida...................................................................................................................... 16 3.5 Heurísticas de selección de variables y selección de valores. ........................................................................... 18 4. Colaboración de Técnicas para resolver el Problema de Diseño de Mallas Curriculares ....................................... 20 4.1 Formulación del Problema. ............................................................................................................................... 20 4.2 Estrategias de Enumeración. ............................................................................................................................. 22 4.2.1 Búsqueda Local. ........................................................................................................................................ 22 4.3 Utilizando Métodos de Mejora (Improvement Methods) para guiar el proceso de resolución. ......................... 23 4.3.1 Representación. ......................................................................................................................................... 25 4.3.2 Función de Evaluación. ............................................................................................................................. 28 4.3.3 Modificación del Programa. ...................................................................................................................... 29 4.4 Optimizando Programas por Mejoras Iterativas................................................................................................ 31 4.4.1 Grafos Disyuntivos.................................................................................................................................... 32 4.4.2 Profundización Iterativa. ........................................................................................................................... 33 4.4.3 Tabu Search............................................................................................................................................... 34 4.4.4 Simulated Annealing. ................................................................................................................................ 35 4.4.5 Algoritmos Genéticos................................................................................................................................ 37 4.5 Propiedades deseables de la Metaheurística de resolución................................................................................ 39 5. Un Algoritmo de Mejora Iterativa Estocástica para resolver el Problema de Diseño de Mallas Curriculares ......... 42 5.1 Solución Inicial. ................................................................................................................................................ 42 5.2 Estructura del Vecindario.................................................................................................................................. 42 5.3 El Algoritmo...................................................................................................................................................... 43

Upload: duongdang

Post on 26-Sep-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

1

INDICE GENERAL

INDICE GENERAL ...................................................................................................................................................... 1 INDICE DE FIGURAS.................................................................................................................................................. 3 1. Introducción y Discusión Bibliográfica ..................................................................................................................... 4

1.1 Discusión Bibliográfica....................................................................................................................................... 4 1.2 Motivación .......................................................................................................................................................... 5 1.3 Estructura de la tesis............................................................................................................................................ 6

2. Análisis de Objetivos y Metodología......................................................................................................................... 7

2.1 Objetivo General ................................................................................................................................................. 7 2.2 Objetivos Específicos.......................................................................................................................................... 7 2.3 Hipótesis.............................................................................................................................................................. 8 2.4 Metodología ........................................................................................................................................................ 8

3. Estado del Arte........................................................................................................................................................... 9

3.1 El Curriculum de Estudios en la Educación Superior. ........................................................................................ 9 3.1.1 Información sobre el currículo.....................................................................................................................9 3.1.2 Organización del currículo. ....................................................................................................................... 11 3.1.3 El sistema de créditos. ............................................................................................................................... 12

3.2 Problemas de Satisfacción de Restricciones...................................................................................................... 13 3.2.1 Conceptos Básicos de CSP. ....................................................................................................................... 13 3.2.2 Notación de CSP........................................................................................................................................ 14

3.3 Consistencia en un CSP..................................................................................................................................... 14 3.3.1 Niveles de Consistencia Local................................................................................................................... 14 3.3.2 Consistencia Global................................................................................................................................... 15

3.4 Colaboración de Técnicas ................................................................................................................................. 16 3.4.1 Ramificación Informada. ........................................................................................................................... 16 3.4.2 Búsqueda Local Restringida. ..................................................................................................................... 16

3.5 Heurísticas de selección de variables y selección de valores. ........................................................................... 18 4. Colaboración de Técnicas para resolver el Problema de Diseño de Mallas Curriculares ....................................... 20

4.1 Formulación del Problema. ............................................................................................................................... 20 4.2 Estrategias de Enumeración. ............................................................................................................................. 22

4.2.1 Búsqueda Local. ........................................................................................................................................ 22 4.3 Utilizando Métodos de Mejora (Improvement Methods) para guiar el proceso de resolución. ......................... 23

4.3.1 Representación. ......................................................................................................................................... 25 4.3.2 Función de Evaluación. .............................................................................................................................28 4.3.3 Modificación del Programa. ...................................................................................................................... 29

4.4 Optimizando Programas por Mejoras Iterativas. ............................................................................................... 31 4.4.1 Grafos Disyuntivos.................................................................................................................................... 32 4.4.2 Profundización Iterativa. ........................................................................................................................... 33 4.4.3 Tabu Search. .............................................................................................................................................. 34 4.4.4 Simulated Annealing. ................................................................................................................................ 35 4.4.5 Algoritmos Genéticos. ............................................................................................................................... 37

4.5 Propiedades deseables de la Metaheurística de resolución................................................................................ 39 5. Un Algoritmo de Mejora Iterativa Estocástica para resolver el Problema de Diseño de Mallas Curriculares ......... 42

5.1 Solución Inicial. ................................................................................................................................................ 42 5.2 Estructura del Vecindario. ................................................................................................................................. 42 5.3 El Algoritmo...................................................................................................................................................... 43

Page 2: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

2

5.4 La Heurística Constructiva. ............................................................................................................................... 44 5.5 Esquema de Solución Propuesto para BACP. ................................................................................................... 45

5.5.1 Representación. ......................................................................................................................................... 46 6. Diseño de Prototipo.................................................................................................................................................. 48

6.1 Descripción del Prototipo.................................................................................................................................. 48 6.1.1 Modificaciones al modelo clásico. ............................................................................................................ 49

6.2 Análisis Funcional............................................................................................................................................. 49 6.2.1 Formato de Archivos de Entrada. .............................................................................................................. 49 6.2.2 Arquitectura del Prototipo. ........................................................................................................................51

6.3 Definición de propagadores y estrategia de enumeración en GecodeJ.............................................................. 52 6.4 Resultados Computacionales............................................................................................................................. 54

6.4.1 Restricciones Suaves versus Restricciones Duras. .................................................................................... 54 7. Conclusiones y Trabajo Futuro ................................................................................................................................ 57 REFERENCIAS........................................................................................................................................................... 58

Page 3: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

3

INDICE DE FIGURAS Fig. 1 Función de distribución de soluciones en un espacio completo........................................................................... 6 Fig. 2 Un algoritmo de búsqueda local genérico.......................................................................................................... 23 Fig. 3. Un algoritmo general de mejora iterativa. ........................................................................................................25 Fig. 4. Grafo Disyuntivo representando un problema de asignación de trabajos con 3 trabajos y 3 maquinas............ 26 Fig. 5. Seudo-código dfor the randomised iterative improvement algorithm for course timetabling .......................... 44 Fig. 6. Esquema de Solución Propuesto....................................................................................................................... 45 Fig. 7. Cada evento (curso) es asignado según una lista de timeslots (períodos), y para cada timeslot t’ ∈ T’, se elige un conjunto de eventos e ∈ E que se colocará en este timeslot................................................................................... 46

Fig. 8. Matriz binaria, donde cada evento tiene que ser puesto exactamente una vez en un timeslot; ∑=

=n

jijx

1

1. ...... 46

Fig. 9. Visualización de malla curricular mediante la opción “Visualizar Malla”. ...................................................... 51 Fig. 10. Modelo Conceptual del Prototipo. .................................................................................................................. 52 Fig. 11. Espacio (Gecode Space). ................................................................................................................................ 53 Fig. 12. Resumen de Resultados Computaciones......................................................................................................... 54 Fig. 13. Resultados Computaciones Primera Solución ................................................................................................ 55 Fig. 14. Resultados Computaciones Mejor Solución ................................................................................................... 56 Fig. 15. Comparación Resultados Computacionales de la búsqueda de la primera v/s la mejor Solución .................. 56

Page 4: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

4

Capítulo 1

Introducción y Discusión Bibliográfica

Un factor clave a considerar cuando se evalúa el éxito académico de los estudiantes es la carga académica

que tienen en cada semestre. La manera usual de medir esta carga es asignar, para cada curso, un número de créditos

que representan la cantidad de esfuerzo requerido para aprobar el curso. De este modo, la carga académica de cada

periodo esta dada por la suma de los créditos de cada curso inscrito en el periodo. Generalmente, se imponen

explícitamente varias restricciones cuando se desarrolla el currículo. Por ejemplo, se debe definir una carga máxima

por periodo para prevenir sobrecarga, y se deben establecer varias relaciones de precedencia sobre algunos cursos.

Asumiendo que una carga académica balanceada favorece las actividades académicas y facilita el éxito de los

estudiantes, se propone el desarrollo de un modelo para el diseño de currículos académicos balanceados.

El problema de diseñar un currículo académico balanceado consiste en la asignación de cursos a periodos de tal

forma que la carga académica de cada periodo sea balanceada, es decir, lo más similar posible entre un semestre y

otro. En esta tesis, se considera como carga académica balanceada la noción de crédito que representa el esfuerzo en

tiempo necesario para seguir exitosamente el curso. El proyecto se concentra en las carreras de informática ofrecidas

por la Pontificia Universidad Católica de Valparaíso, esto es, carreras de 4 y 6 años (8 y 12 periodos académicos

respectivamente). Sin embargo, en un primer acercamiento, se consideran además currículos para carreras de 5 años

(10 periodos académicos).

1.1 Discusión Bibliográfica

En la literatura se pueden encontrar diversos esfuerzos y propuestas para lograr una solución óptima al

problema de diseñar un currículo balanceado. El año 2001, en [Castro01] se presenta el primer acercamiento,

mediante un enfoque comparativo entre técnicas de programación lineal entera y estrategias (o heurísticas) de

selección de variables y de valor, basadas en la programación con restricciones. En [Hnich02] se presenta otro

acercamiento, este se centra en la comparación entre programación lineal entera y programación con restricciones,

aquí se coloca especial énfasis en el modelado del problema como CSP (Constraint Satisfaction Problem), en

[Flener02] también se presenta una propuesta desde el modelado, utilizando técnicas de modelado matricial. La

primera propuesta de hibridación entre técnicas completas e incompletas surge el año 2006 en [Lambert06] donde se

propone la utilización de algoritmos genéticos para guiar la búsqueda de soluciones al problema mediante

propagación de restricciones. En Chile, además de [Castro01], se puede referenciar el trabajo presentado en

[Solar06] donde se muestra una propuesta de balanceo de carga académica para un currículo basado en

Page 5: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

5

competencias, se modela el problema como un problema de balanceo del tipo SALBP (Simple Assembly Line

Balancing Problem)-1 y se utiliza un programa computacional que implementa la heurística RPW (Ranked

Positional Weight).

Por otra parte, se han desarrollado numerosos estudios acerca de las estrategias de enumeración. Varios trabajos se

han centrado en la determinación de estrategias específicas de enumeración para cierta clase de problemas. Para un

problema dado, algunos estudios también tratan de determinar la mejor estrategia basándose en algún criterio estático

([Beck04] por ordenación de variables, [Filipic93], [Flener01] por la mejor heurística, [Gebruers04] por el mejor

solver). Sin embargo, ya que sus efectos son bastante impredecibles, decidir a priori sobre una buena estrategia de

enumeración es muy difícil (generalmente casi imposible). Para determinar una estrategia se puede utilizar

información acerca del proceso de resolución [Monfroy07] (ver [Canzi93], [Carchrae04] para un algoritmo de

control).

1.2 Motivación

En la literatura existen numerosas propuestas que consideran la utilización de técnicas incompletas (también

denominadas técnicas de búsqueda local) para “guiar” el proceso de solución de problemas combinatorios difíciles

modelados como CSP (ver [Monfroy06] para un ejemplo). Considerando el éxito de estos acercamientos, se esta

interesado en utilizar este tipo de modelado como alternativa para la modelación y resolución del problema de

BACP.

Con el fin de mejorar la eficiencia de los algoritmos, actualmente se ha concentrado gran interés en la colaboración

entre la Programación con Restricciones y la Búsqueda Local [Francois03]. La idea principal es beneficiarse de la

eficiencia de la Búsqueda Local y la flexibilidad de la Programación con Restricciones, ambos aspectos tan

necesarios para resolver los problemas que demanda el mundo real.

Las técnicas de resolución completas realizan primero una búsqueda en profundidad buscando mediante la

alternación entre propagación de restricciones y enumeración. La propagación de restricciones poda el árbol de

búsqueda eliminando valores que no pueden estar en ninguna solución. La enumeración crea una rama por

instanciación de una variable (ejemplo, x = v) y otra distinta (ejemplo, x ≠ v) por backtracking cuando se prueba que

la primera rama no satisface. Todas las estrategias de enumeración que conservan soluciones son válidas, pero esto

tiene un tremendo impacto sobre la eficiencia. Además, ninguna estrategia es la mejor para todos los problemas.

Existen distintas formas de hacer colaborar ambas técnicas, las cuales se pueden clasificar en dos grandes clases:

� Integración de la Programación con Restricciones en la Búsqueda Local. Por ejemplo: utilizando la

Programación con Restricciones para la búsqueda de vecinos en la Búsqueda Local [Pesant96, Pesant97] o para

buscar solo vecinos factibles (ver figura 1).

� Integrar la búsqueda local dentro de la Programación con Restricciones. En donde la búsqueda local se usa en

Page 6: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

6

partes del árbol de búsqueda o dentro de cada nodo.

En esta tesis se propone un esquema de colaboración, para la resolución del problema de diseño de un currículo

académico.

1.3 Estructura de la tesis

La tesis comienza con el análisis de objetivos y una breve descripción de la metodología de desarrollo para

la investigación, luego se plantea la hipótesis. Continúa con el estado del arte donde se definen el origen del

problema a resolver y los principales conceptos utilizados en el desarrollo de la solución propuesta. En el capitulo 4

se presenta el diseño de la solución, aquí se incluye un esquema de colaboración entre programación con

restricciones y búsqueda local estocástica, además se presentan detalles de la implementación del prototipo de

sistema para la solución propuesta. La tesis sigue con la presentación y análisis de los resultados empíricos

obtenidos. Finalmente, en el capitulo 7, se resume y concluye la tesis.

Fig. 1 Función de distribución de soluciones en un espacio completo

Page 7: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

7

Capítulo 2

Análisis de Objetivos y Metodología

Durante la última década, la colaboración entre las dos grandes familias de algoritmos de resolución de

problemas combinatorios difíciles; las técnicas completas que recorren todo el espacio de búsqueda, con lo cual se

puede estar interesado en encontrar una solución, todas las soluciones o comprobar que el problema no tiene

solución, y las técnicas incompletas, que recorren ciertos sectores del espacio de búsqueda, intentando pasar por los

sectores más auspiciosos y encontrando sólo algunas soluciones, han despertado el interés de la comunidad científica

debido a su capacidad para explotar y explorar eficientemente grandes espacios de soluciones. En este ámbito, esta

tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración entre técnicas completas e

incompletas, específicamente basadas en Programación con Restricciones y Búsqueda Local.

La implementación y validación del esquema de colaboración se realiza considerando como problema de referencia

la optimización en el diseño de mallas curriculares balanceadas para carreras universitarias.

2.1 Objetivo General

• Diseñar, implementar y evaluar un esquema de colaboración entre técnicas completas e incompletas y un

prototipo de sistema para la generación de mallas curriculares balanceadas.

2.2 Objetivos Específicos

� Investigar y proponer el fundamento teórico para el desarrollo de un modelo de generación de mallas

curriculares basado en satisfacción con restricciones.

� Diseñar e implementar un modelo de generación de mallas curriculares inspirado en heurísticas de búsqueda

local y técnicas de programación con restricciones.

� Evaluar el rendimiento del modelo propuesto según variables, restricciones y dominios, mediante la utilización

de Benchmarks reconocidos por la academia.

� Implementar un prototipo de sistema de generación de mallas curriculares balanceadas para la Escuela de

Ingeniería Informática de la Pontificia Universidad Católica de Valparaíso.

Page 8: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

8

2.3 Hipótesis

El desarrollo de la investigación asociada a esta tesis de Magíster se sustenta en la validación de la siguiente

hipótesis: “Si se utiliza un esquema de colaboración entre técnicas completas e incompletas de resolución de

problemas combinatorios difícil se puede resolver el problema de diseño de mallas curriculares balanceadas para

carreras universitarias”.

2.4 Metodología

Para el desarrollo de esta tesis y de la investigación a asociada a la misma se utilizaran básicamente dos

metodologías de trabajo, las cuales son:

� Metodología Bibliográfica: según la cual se obtiene información de búsquedas realizadas en Internet,

encontrando páginas y documentos de índole académico respecto a la temática del proyecto. Proporcionando

una base sólida para crear las referencias bibliográficas respectivas.

� Metodología Descriptiva-Cualitativa: a partir de la metodología anterior se obtiene la información necesaria para

extraer, como el nombre de la metodología lo indica, las descripciones y cualidades de los temas que conciernen

a este proyecto para lograr un trabajo que explicite los aspectos más relevantes relacionados con los conceptos

de interés (CSP, Métodos de Búsqueda Local y el BACP; Balanced Academic Curriculum Problem).

Page 9: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

9

Capítulo 3

Estado del Arte

3.1 El Curriculum de Estudios en la Educación Superior.

Tradicionalmente se ha designado al plan de estudios como un conjunto de asignaturas y actividades

graduadas, sistematizadas y armonizadas, de manera que concurran a la obtención de un objetivo o grupo de

objetivos, correspondientes a un nivel educativo.

Dentro de los esquemas de la pedagogía, el plan de estudios es denominado curriculum, y se le define como "El

conjunto de enseñanzas, teorías y prácticas, que han de realizar para ser promovidos los alumnos, como el orden de

ellos dentro de una institución docente" [Canudas72].

Todos los procedimientos modernos para organizar la materia de enseñanza aspiran a que el curriculum sea orgánico

y funcional. Un plan orgánico de enseñanza enlaza de un modo natural y múltiple las asignaturas o temas concretos,

mediante una red de comunicaciones que permite aproximar los contenidos más diversos del saber y de la técnica,

evitando la dispersión mental de los alumnos y logrando un efecto total. Como el verdadero aprender implica una

transformación graduada y valiosa de las aptitudes humanas, el curriculum orgánico concibe de peculiar modo las

materias de enseñanza: Estas dejan de ser meros signos de erudición e información, y se convierten en medios

eficientes para la realización de la vida presente y futura, de los aspirantes a profesionales.

La materia de enseñanza se selecciona y ordena para crear en el alumno la mejor habilidad en las situaciones de la

profesión, y el aprendizaje queda así articulado en función del círculo de experiencias actuales y posibles del alumno.

Los nuevos curriculum de estudio son al mismo tiempo planes de formación y planes de materias, ofrecen cuadros de

experiencias, métodos de trabajo y orientación para evaluar los resultados del aprendizaje. Indican en una unidad

diferenciada que materia puede y debe ser asimilada por el educando y cómo puede ello realizarse.

3.1.1 Información sobre el currículo.

El curriculum flexible es una forma de organización de los estudios universitarios que permite la máxima adecuación

de ellos a las aptitudes y a los intereses de los estudiantes, mediante una selección de matices de especialización

dentro de una pauta general. No es, por cierto, un sistema caótico, sino una mejora ordenada e inteligente de realizar

un propósito educacional concreto y bien definido. Por eso es extremadamente importante que al aplicar un

Page 10: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

10

curriculum flexible en la universidad, exista en todos los profesores y alumnos un claro y consciente entendimiento

de su naturaleza, de su justificación y de los medios y procedimientos por los cuales es posible llevarlo a la práctica

con éxito.

La palabra curriculum designa todo el conjunto de esfuerzos que despliega la universidad para la realización de sus

fines. Ellos comprenden: un programa de cursos; un programa de investigaciones; un programa de actividades

culturales, físicas y recreativas; un programa de prácticas; un conjunto de normas escritas o tácitas, que establecen un

sistema de trabajo del que se desprende una atmósfera de dignidad académica y de respeto personal entre los

integrantes de la universidad, y expresa, además, de manera práctica su filosofía y sus objetivos.

Hay muchas maneras posibles de organizar el curriculum de una universidad, y hay numerosos factores que influyen,

en cada caso, en la decisión final sobre cómo debe quedar organizado. Sus rasgos esenciales se van depurando y

estableciendo con el tiempo en forma de tradiciones que determinan una fisonomía propia en la universidad y

tipifican su influencia en la vida del país. Sin embargo, cuando el curriculum se establece en forma rígida alrededor

de ciertos conceptos inmóviles, se corre el riesgo de llegar al estancamiento de la situación y de cerrar las puertas al

progreso científico y a la capacidad individual.

Sobre todo, en una época como la actual en que los conocimientos científicos y tecnológicos se desarrollan tan rápida

y ampliamente, determinando el surgimiento de nuevas disciplinas o la reestructuración interna de ellas, la

universidad, como generadora de este dinámico proceso de creación, debe, por consiguiente, adoptar una estructura y

régimen académico especialmente flexibles que le permita organizar rápidamente los cambios que llevan implícitos

la creación e incorporación de nuevos conocimientos.

El campo de los conocimientos humanos es cada vez más amplio y exige mayor especialización. Pero al mismo

tiempo la especialización no debe hacer perder de vista la perspectiva cultural y social en la cual ha sido posible que

se den esos conocimientos y la condición esencial del hombre que los adquiere y los aplica. Dicho en otras palabras:

la formación como profesional es inseparable de su formación como hombre y como miembro de una cultura, y la

responsabilidad de la universidad es atender a esa formación de manera integral.

La aplicación del curriculum flexible, si bien favorece la acentuación de los estudios de acuerdo con el interés o la

inclinación del alumno, le demanda al mismo tiempo un mayor sentido de responsabilidad, y a los profesores una

más estrecha orientación y consejo.

Todo esto, que es consecuencia del establecimiento de un sistema flexible en el régimen de estudios, representa a la

vez pasos decisivos hacia el fortalecimiento del ambiente universitario y de la relación académica y personal

profesor-alumno, que es otra parte importantísima del curriculum total de la universidad.:

Page 11: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

11

3.1.2 Organización del currículo.

Las asignaturas que se dictan en la universidad corresponden en general a los siguientes grupos:

Cursos básicos a nivel general: Se designa así al grupo de cursos seleccionados por la universidad, con el fin de

proporcionar al estudiante una cultura básica universitaria en las ciencias y humanidades, orientación psicológica y

vocacional, que le permita seguir una especialización posterior u orientarse a otra actividad con una formación más

efectiva. Los cursos básicos o de nivel general no se dictan, por lo tanto, en función de ninguna profesión o

especialidad en particular, sino como núcleo y fundamento de toda formación universitaria. Este grupo de cursos es

común a todos los programas. Estos cursos no se dictan necesariamente como un bloque previo a los estudios

profesionales, sino más bien pueden distribuirse a lo largo de los primeros semestres de estudios, constituyendo una

de las partes del curriculum balanceado. De estos cursos, los que corresponden a humanidades son ofrecidos por los

departamentos respectivos y los que corresponden a ciencias básicas, por los departamentos de física, matemáticas y

química, pero se matriculan en ellos todos los alumnos de la universidad, según sus requisitos.

Cursos requisitos del programa académico: Se denomina así al grupo de cursos que debe ser estudiado y aprobado

por todos los estudiantes que siguen un determinado programa académico. El título profesional o grado académico

que otorga la universidad al término de los estudios está avalado por un cierto bagaje de conocimientos y habilidades

que definen básicamente la profesión o especialidad. Estos conocimientos y habilidades se enseñan y desarrollan en

los cursos que constituyen los requisitos del programa académico. Los cursos requisitos del programa académico son

seleccionados, coordinados y evaluados por la dirección del programa académico respectivo, y constituyen el núcleo

básico de cursos de la profesión o de la especialidad. Es necesario observar, sin embargo, que estas dos partes del

curriculum que hemos descrito hasta ahora, formado por los cursos básicos o de nivel general y los cursos requisitos

del programa académico, constituyen un todo indivisible. No se puede ser profesional, u optar un grado académico,

sin antes haber completado los cursos del nivel general y los requisitos del programa académico seleccionado. Sin

embargo, esto no quiere decir en forma absoluta que sea necesario completar primero todos los cursos de nivel

general para empezar a estudiar los cursos requisitos del programa académico o de especialización. Dentro de ciertos

límites, impuestos por la estructura de cada programa académico, es posible llevar cursos del programa de

especialización desde el comienzo de los estudios de nivel general, siempre que no tengan prerrequisitos que hagan

necesario postergarlos.

Los cursos electivos: Deliberadamente se ha dejado los cursos electivos fuera de los dos grupos -cursos de nivel

general y cursos del programa académico profesional- en que se ha considerado dividido el curriculum, porque en

cada uno de estos dos grupos puede haber cursos electivos. Es decir, que los cursos electivos no constituyen una

categoría especial por el hecho de ser electivos. La condición de electivos es adicional y depende de las

circunstancias en que se encuentre cada curso dentro del curriculum. En principio, todos los cursos son electivos.

Esto quiere decir que de un conjunto de cursos que ofrece la universidad, el estudiante sólo está obligado a escoger

Page 12: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

12

los equivalentes a cierto número de créditos. Sin embargo, al elegir un determinado programa académico profesional

o de especialización, el estudiante encuentra que para algunos cursos que necesita tomar más tarde se exige como

prerrequisito ciertos cursos que corresponden al presente ciclo. Ello hace que automáticamente estos últimos cursos

se transformen en obligatorios para él. Pero de todas maneras, siempre le quedará un margen para tomar cursos que

no son prerrequisito de ninguno que deba tomar más adelante, y dentro de esos sí juega su libre elección. Estos son

los que se denominan, por esa razón, "cursos electivos". Lo son en tanto que el estudiante puede elegir entre varias

posibilidades sin restricciones, pero siempre debe tomarlos para completar el número total de créditos que le exige el

curriculum de su programa académico.

3.1.3 El sistema de créditos.

La flexibilidad del curriculum requiere un instrumento operativo que permita estimar el trabajo académico de los

estudiantes y traducirlo en cifras que revelen en cualquier instante su situación y su progreso dentro de la

universidad. Este instrumento es el sistema de créditos. El crédito es una unidad de evaluación del trabajo efectuado

para aprobar una asignatura. Para fines prácticos, por ejemplo, se hace equivaler un crédito a una hora semanal de

clase expositiva o a dos horas semanales de trabajos prácticos durante un semestre. Pero en realidad, cuando se dice

que un curso tiene digamos, 3 créditos, no solamente se esta indicando que tiene 3 horas de clase o 2 horas de clase

expositiva y 2 horas de práctica, sino que, para ganar los 3 créditos, el alumno debe cumplir satisfactoriamente con

todos los requisitos de aprobación del curso. Estos comprenden no solamente la asistencia a las clases y a las

prácticas, sino también pasos, exámenes, consultas bibliográficas, trabajos monográficos y cualesquiera otros que

señale el profesor. Expresando en créditos el volumen de trabajo que representa cada curso, se facilita el

establecimiento de pautas que regulan la distribución equilibrada (o balanceada) de asignaturas en el curriculum, el

monto de la carga académica ponderada del rendimiento del estudiante en las diversas materias.

El número total de créditos que un estudiante debe completar para graduarse no es un número indiscriminado. El

total está repartido proporcionalmente entre las áreas en que es importante la formación de los estudiantes: cultura

general y especialización profesional.

La proporción de créditos asignada a cada una de estas áreas refleja la política académica general de la universidad o

del programa respectivo, y se traduce en el carácter final del profesional que egresará de sus aulas. Un mayor número

de créditos en cursos básicos indicará una cultura general más sólida; más créditos en cursos profesionales generales

revelarán mayor amplitud en la formación profesional; mayor acento en cursos electivos podría significar una mayor

profundización en el campo restringido de la especialidad. Al formular el curriculum, el programa establece estas

proporciones, y ellas pueden ser variadas en modificaciones sucesivas. Pero bajo la vigencia de un determinado

curriculum, el estudiante se mantiene dentro de los márgenes establecidos. Esto quiere decir que si un alumno tiene

exceso de créditos en cursos electivos, por ejemplo, no podrá aplicarlos en sustitución de cursos que le faltan en el

área de cursos de especialización profesional o en la de cursos básicos.

Page 13: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

13

Como se ve, los créditos representan un procedimiento exacto y racional para dar significado a las calificaciones e

interpretar en cifras la situación académica real de los estudiantes. El sistema permite establecer niveles mínimos de

rendimiento y determinar cuando un alumno está encontrando dificultades en sus estudios y necesita mayor ayuda y

superar sus dificultades. Un índice ponderado demasiado bajo es una señal de alarma sobre la situación académica

del alumno y sus probabilidades de fracasar como estudiante. A veces, un reajuste oportuno en la orientación del

curriculum, una reducción en la carga académica o el consejo amistoso del profesor pueden bastar para mejorar el

rendimiento.

Antes de terminar este análisis, es oportuno señalar que, además de la aplicación del curriculum señalada, puede éste

adoptar diversas modalidades, según sean los objetivos que se pretenda alcanzar.

3.2 Problemas de Satisfacción de Restricciones.

La Satisfacción de Restricciones (Constraint Satisfaction), es un paradigma usado para resolver diversos

tipos de problemas, expresados como, encontrar las soluciones, los valores de un conjunto de variables en dominios

específicos que satisfacen un conjunto de restricciones sobre estas variables. Muchos problemas de optimización

combinatoria se pueden expresar de esta manera. En los últimos años ha tenido un desarrollo importante por la

facilidad para modelar problemas complejos, así como por la flexibilidad en el tratamiento de las restricciones. Fruto

de ello, es la generalización del paradigma en la modelación de problemas y en el tratamiento declarativo de su

implementación, para la resolución de los mismos, denominado Programación con Restricciones (Constraint

Programming) y los avances en entornos de desarrollo estandarizados. Las estrategias generales de solución en este

paradigma pertenecen a dos categorías: las que razonan sobre las propias restricciones, procedimientos de

propagación de restricciones o técnicas de consistencia y otra basada en la exploración del espacio de búsqueda con

métodos de búsqueda constructiva, a partir de la asignación sistemática de valores parciales a las variables hasta

completar la solución, con algoritmos conocidos de vuelta atrás (backtracking) y también algoritmos de ramificación

y acotación (branch and bound) para los problemas de optimización, o también mediante exploraciones del espacio

de soluciones mediante heurísticas de búsqueda local.

3.2.1 Conceptos Básicos de CSP. Asignación. Una asignación de variables, también llamado instanciación, (x, a) es un par variable-valor que

representa la asignación del valor a a la variable x. Una instanciación de un conjunto de variables es una tupla de

pares ordenados, donde cada par ordenado (x, a) asigna el valor a a la variable x. Una tupla ((x1, a1),…, (xi, ai)) es

localmente consistente si satisface todas las restricciones formadas por variables de la tupla. Para simplificar la

notación, sustituiremos la tupla ((x1, a1),…, (xi, ai)) por (a1,…, ai).

Solución. Una solución a un CSP es una asignación de valores a todas las variables de forma que se satisfagan todas

las restricciones. Es decir, una solución es una tupla consistente que contiene todas las variables del problema. Una

Page 14: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

14

solución parcial es una tupla consistente que contiene algunas de las variables del problema. Por lo tanto diremos que

un problema es consistente, si existe al menos una solución, es decir una tupla consistente (a1, a2,…, an).

3.2.2 Notación de CSP General: El número de variables de un CSP lo denotaremos por n. La longitud del dominio de una variable xi lo

denotamos por di = |D i|. El número de restricciones totales lo denotaremos por c. La aridad máxima de una

restricción la denotaremos por k. En el caso de problemas disyuntivos, al número máximo de disyunciones que tiene

una restricción disyuntiva lo denotaremos por l.

Variables: Para representar las variables utilizaremos las ultimas letras del alfabeto en cursiva, por ejemplo x, y, z,

así como esas mismas letras con un subíndice, por ejemplo x1, xi, xj. Estos subíndices son letras seleccionadas por

mitad del alfabeto o números enteros. Al conjunto de variables xi,...., xj lo denotaremos por Xi,...,j .

Dominios/Valores: El dominio de una variable xi lo denotamos por Di. A los valores individuales de un dominio los

representaremos mediante las primeras letras del alfabeto, por ejemplo, a, b, c, y al igual que en las variables también

pueden ir seguidas de subíndices. La asignación de un valor a a una variable x la denotaremos mediante el par (x, a).

Como ya mencionamos en la definición una tupla de asignación de variables ((x1, a1),..., (xi, ai)) la denotaremos por

(a1, ..., ai).

Restricciones: Una restricción k-aria entre las variables {x1, ..., xk} la denotaremos por C1..k.. De esta manera, una

restricción binaria entre las variables xi y xj la denotaremos por Cij. Cuando los índices de las variables en una

restricción no son relevantes, lo denotaremos simplemente por C. El conjunto de variables involucrados en una

restricción Ci..k lo representaremos por XCi..k.

3.3 Consistencia en un CSP

Los algoritmos de búsqueda sistemática para la resolución de CSPs tienen como base la búsqueda basada en

backtracking. Sin embargo, esta búsqueda sufre con frecuencia una explosión combinatoria en el espacio de

búsqueda, y por lo tanto no es por si solo un método suficientemente eficiente para resolver CSPs. Una de las

principales dificultades con las que nos encontramos en los algoritmos de búsqueda es la aparición de inconsistencias

locales que van apareciendo continuamente. Las inconsistencias locales son valores individuales o combinación de

valores de las variables que no pueden participar en la solución porque no satisfacen alguna propiedad de

consistencia.

3.3.1 Niveles de Consistencia Local

Consistencia de Nodo: La consistencia local más simple de todas es la consistencia de nodo o nodo-consistencia.

Forzar este nivel de consistencia nos asegura que todos los valores en el dominio de una variable satisfacen todas las

Page 15: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

15

restricciones unarias sobre esa variable. Así, un problema es nodo-consistente si y solo si todas sus variables son

nodo-consistentes:

Consistencia de Arco: Un problema binario es arco-consistente si para cualquier par de variables restringidas xi y xj,

para cada valor a en Di hay al menos un valor b en Dj tal que las asignaciones (xi, a) y (xj, b) satisfacen la restricción

entre xi y xj. Cualquier valor en el dominio Di de la variable xi que no es arco-consistente puede ser eliminado de Di

ya que no puede formar parte de ninguna solución. El dominio de una variable es arco-consistente si todos sus

valores son arco-consistentes. Así, un problema es arco-consistente si y solo si todos sus arcos son arco-consistentes:

Consistencia de Caminos: La consistencia de caminos (path-consistencia) es un nivel más alto de consistencia local

que la arco-consistencia. La consistencia de caminos requiere para cada par de valores a y b de dos variables xi y xj,

que la asignación de a a xi y de b a xj satisfaga la restricción entre xi y xj, y que además exista un valor para cada

variable a lo largo del camino entre xi y xj de forma que todas las restricciones a lo largo del camino se satisfagan. Un

CSP satisface la consistencia de caminos si y solo si todos los caminos de longitud dos cumplen la consistencia de

caminos. Así, un problema satisface la consistencia de caminos si y solo si todo par de variables (xi, xj) es path-

consistente

3.3.2 Consistencia Global

A veces es deseable una noción más fuerte que la consistencia local. Decimos que un etiquetado, construido

mediante un algoritmo de consistencia, es globalmente consistente si contiene solamente aquellas combinaciones de

valores que forman parte de al menos una solución.

Un etiquetado globalmente consistente es una representación compacta y conservadora de todas las soluciones

admitidas por un CSP. Es correcto en el sentido de que el etiquetado nunca admite una combinación de valores que

no desemboque en una solución. Es completo en el sentido de que todas las soluciones están representadas en él. En

una red de restricciones globalmente consistente la búsqueda puede llevarse a cabo sin backtracking.

En general, un etiquetado globalmente consistente puede requerir de forma explícita representar restricciones para

todas las variables del problema, es decir, generar etiquetas n-1-dimensionales para un problema de talla n forzando

la n-consistencia. Esta tarea tiene una complejidad exponencial en el peor caso. Para clases especiales de problemas,

niveles bajos de consistencia son equivalentes a la consistencia global [Barták01].

Para mayor información acerca de algoritmos y heurísticas de búsqueda sistemática para resolución de CSPs ver

[Manyá03].

Page 16: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

16

3.4 Colaboración de Técnicas

Mientras todos los esquemas propuestos en la literatura comparten el común denominador de integrar

técnicas completas con incompletas, es necesario hacer una separación. Esta separación viene dada por las distintas

características, objetivos y motivaciones que plantea cada esquema. Para ello, se han separado los esquemas

propuestos en dos familias, la primera familia se denomina Ramificación Informada y la segunda familia se

denomina Búsqueda Local Restringida y está compuesta por un esquema de colaboración.

Si bien ambas familias se benefician de la colaboración, se distinguen en sus fundamentos, en su concepción y en la

necesidad que las hizo nacer. A continuación se explican las motivaciones que han llevado a los investigadores a

explorar cada familia.

3.4.1 Ramificación Informada.

En el contexto de la Programación con Restricciones, a pesar de que todas las estrategias de ramificación que

preservan todas las soluciones que son válidas, ellas tienen un gran impacto en la eficiencia del proceso de búsqueda

de una solución. El efecto de estas estrategias es difícil de predecir y en la mayoría de los casos imposible. Además,

no existe una estrategia que sea la mejor para todos los problemas.

Muchos estudios han definido algunos criterios, por ejemplo, elegir la variable con el dominio más pequeño, para el

caso de selección de variable, elegir el valor mínimo, para el caso de selección de valor. Por otro lado, para algunos

problemas se han propuesto estrategias específicas. Algunos han focalizado los esfuerzos en determinar la mejor

estrategia estáticamente sólo una vez, antes de comenzar a buscar la solución. Sin embargo, es bien conocido que

para las decisiones a priori con respecto a la selección de variable y valor es muy difícil obtener buenos resultados

(en la mayoría de los casos imposible), porque los efectos de las estrategias son impredecibles. Esto produce que,

dado un problema, una estrategia puede encontrar una solución en segundos, mientras que otra puede requerir horas.

Con el fin de aminorar ese nivel de incertidumbre, han habido intentos de obtener información del proceso de

búsqueda para ayudar a la estrategia de ramificación, ver por ejemplo [Monfroy07]. La idea es obtener buenos

resultados sin depender del conocimiento de un experto, permitiendo el uso de la Programación con Restricciones a

un rango más amplio de personas.

3.4.2 Búsqueda Local Restringida.

Son muchos los que se han preguntado cual es la diferencia esencial entre la Búsqueda Local y la Programación con

Restricciones, que hace que la Búsqueda Local escale tan bien con respecto a la otra técnica. Prestwich se hizo esa

pregunta [Prestwich01a] y llegó a la conclusión de que la principal diferencia es que la Búsqueda Local nunca se

compromete con alguna asignación de una variable. La Programación con Restricciones en cambio, prácticamente no

modifica las asignaciones que se hacen al inicio de la búsqueda, esto es, las zonas altas del árbol.

Page 17: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

17

Específicamente, en la Programación con Restricciones se comienza con un conjunto vacío de asignaciones y

paulatinamente se van agregando asignaciones de valores a variables hasta que se completa el conjunto, con una

asignación por variable, que satisface todas las restricciones del problema, o sea, una solución. El principal problema

es que si las primeras asignaciones son erróneas, estas causan que se exploren ramas completas del árbol de

búsqueda sin éxito alguno, perjudicando enormemente la eficiencia del algoritmo, esto se denominaría como

asignación errónea temprana. Por otra parte, la Búsqueda Local hace una exploración incompleta del espacio de

búsqueda, reparando asignaciones completas, eventualmente infactibles. Para ello se trabaja con un conjunto

compuesto por una asignación por variable y se toleran asignaciones infactibles, iterativamente se repararan las

asignaciones hasta obtener una solución. Esto permite que no se sufra del problema de la asignación errónea

temprana, como en la Programación con Restricciones.

Luego de identificar uno de los principales problemas de la Programación con Restricciones, la asignación errónea

temprana, Prestwich propuso el algoritmo híbrido Búsqueda local restringida (CLS) [Prestwich00, Prestwich01b].

Este algoritmo, básicamente, es un Backtracking que permite hacer el backtrack a cualquier variable, a diferencia del

algoritmo clásico que sólo permite hacer el backtrack a la última variable instanciada. A esto se le agregan fases de

propagación de restricciones en cada nodo del árbol, con el fin de reducir el espacio de búsqueda. El objetivo es

mezclar la principal característica de la Búsqueda Local, no comprometerse con ninguna asignación en particular,

con la reducción del espacio de búsqueda de la Programación con Restricciones. La idea es simple, pero tiene serios

problemas de implementación, porque cuando se usan algoritmos de propagación de restricciones, que filtran valores

de los dominios de las variables, es sumamente complicado hacer un backtrack a una variable aleatoria en forma

eficiente. Para hacer un backtrack en forma eficiente, lo ideal es sólo deshacer los valores filtrados por la asignación

que se desea deshacer, pero es sumamente costoso mantener la información de cuales valores se han filtrado

producto de cual asignación, por lo que en la practica no se hace, y volver a filtrar todo de nuevo tiene un muy alto

costo.

Existe bastante trabajo con respecto a este último punto, cuales asignaciones filtraron cuales valores en la fase de

propagación. Formalmente esta información se conoce como explicaciones [Pesant96, Schiex94], cuya idea es

mantener toda la información necesaria para lograr hacer los backtrack de igual forma que la operación deshacer

(haciendo la analogía con los editores de texto), usando las explicaciones y sin incurrir en recomputación. En la

práctica, esto ha sido sumamente costoso y hasta el momento no se han hecho implementaciones eficientes, salvo

para problemas muy específicos.

En un intento por mejorar este enfoque, en esta tesis, se propone un mecanismo para implementar, en forma

eficiente, la Búsqueda Local Restringida, siguiendo un esquema basado en una heurística constructiva, en conjunto

Page 18: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

18

con un sistema de Programación con Restricciones basado en propagación para resolver diversas instancias del

BACP.

3.5 Heurísticas de selección de variables y selección de valores. Un algoritmo de búsqueda para la satisfacción de restricciones requiere el orden en el cual se van a estudiar

las variables, así como el orden en el que se van a instanciar los valores de cada una de las variables. Seleccionar el

orden correcto de las variables y de los valores puede mejorar notablemente la eficiencia de resolución. También

puede resultar importante una ordenación adecuada de las restricciones del problema [Monfroy07]. A continuación

se explica en que consisten estas heurísticas:

� Ordenación de Variables: Experimentos y análisis de muchos investigadores han demostrado que el orden en el

cual las variables son asignadas durante la búsqueda puede tener un impacto significativo en el tamaño del

espacio de búsqueda explorado. Generalmente las heurísticas de ordenación de variables tratan de seleccionar lo

antes posible las variables que más restringen a las demás. La intuición es tratar de asignar lo antes posible las

variables más restringidas y de esa manera identificar las situaciones sin salida lo antes posible y así reducir el

número de vueltas atrás. La ordenación de variables puede ser estática y dinámica.

a) Las heurísticas de ordenación de variables estáticas generan un orden fijo de las variables antes de

iniciar la búsqueda, basado en información global derivada del grafo de restricciones inicial.

b) Las heurísticas de ordenación de variables dinámicas pueden cambiar el orden de las variables

dinámicamente basándose en información local que se genera durante la búsqueda.

El problema de los algoritmos de ordenación estáticos es que ellos no tienen en cuenta los cambios en los

dominios de las variables causados por la propagación de las restricciones durante la búsqueda, o por la densidad de

las restricciones. Esto es porque estas heurísticas generalmente se utilizan en algoritmos de comprobación hacia atrás

donde no se lleva a cabo la propagación de restricciones.

� Ordenación de Valores: En comparación, se ha realizado poco trabajo sobre heurísticas para la ordenación de

valores. La idea básica que hay detrás de las heurísticas de ordenación de valores es seleccionar el valor de la

variable actual que más probabilidad tenga de llevarnos a una solución, es decir identificar la rama del árbol de

búsqueda que sea más probable que obtenga una solución. La mayoría de las heurísticas propuestas tratan de

seleccionar el valor menos restringido de la variable actual, es decir, el valor que menos reduce el número de

valores útiles.

Resulta de suma importancia, entonces, el desarrollo de modelos de resolución “guiados” desde el punto de vista

tanto de estrategias de ordenación de variables como también de valores, que permitan la generalización del modelo

de resolución y su aplicación a diversos problemas del mismo tipo. Tradicionalmente la programación de

restricciones ha tratado el estudio para un problema dado, de un modelo y una estrategia de resolución que generen

Page 19: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

19

un árbol de búsqueda computacionalmente factible. Sin embargo, generalmente, estas estrategias aplicadas a

problemas distintos ofrecen resultados muy pobres.

Page 20: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

20

Capítulo 4

Colaboración de Técnicas para resolver el Problema de Diseño de Mallas Curriculares

4.1 Formulación del Problema.

El BACP, propuesto inicialmente en [Castro01], consiste en diseñar un currículo académico balanceado

mediante la asignación de periodos a cursos de una manera en que la carga académica de cada periodo sea

balanceada, es decir, lo más similar posible. El currículum debe respetar las siguientes regulaciones administrativas y

académicas:

� Currículo Académico: un currículo académico esta definido por un conjunto de cursos y un conjunto de

prerrequisitos relacionados con estos.

� Número de periodos: los cursos deben ser asignados dentro de un número máximo de periodos académicos.

� Carga Académica: cada curso tiene asociado un número de créditos o unidades que representa el esfuerzo

académico requerido para el éxito de este.

� Prerrequisitos: varios cursos tienen otros cursos como prerrequisitos.

� Carga Académica Mínima: se requiere un número mínimo de créditos por periodo para considerar a un

estudiante de tiempo completo.

� Carga Académica Máxima: un número máximo de créditos por periodo que no debe ser sobrepasado.

El objetivo es asignar un periodo para todos los cursos de modo que se satisfacen las restricciones de número mínimo

y máximo de cursos para cada periodo, y las relaciones de prerrequisitos.

Un currículo balanceado óptimo minimiza la carga académica máxima de todos los periodos. Se pueden considerar

otros tipos de criterio de balanceo como minimizar la suma de la carga académica de todos los periodos. Se asume

que una carga académica balanceada favorece los hábitos académicos y facilita el éxito de los estudiantes.

A continuación, se presenta un modelo de Programación Entera para el problema de balanceo de un currículo

académico [Castro01, Hnich02]:

Parámetros: Sean

i) m: Número de cursos

ii) n: Número de períodos académicos.

iii) αi: Número de créditos del curso i; i = 1,…,m.

iv) β: Carga académica mínima permitida por periodo.

v) γ: Carga académica máxima permitida por periodo.

Page 21: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

21

vi) δ: Cantidad mínima de cursos por periodo.

vii) ε: Cantidad máxima de cursos por periodo.

Variables de decisión: Sean

i) =∀=∀

=casootroen

njmijperiodoalasignadoesicursoelsixij 0

,...,1 ,...1 1

ii) cj: la carga académica del periodo j

iii) c: la máxima carga académica para todos los periodos { }nccMaxc ,...,1=

iv) La carga académica del periodo j esta definida por:

∑=

=∀=m

iijij mixc

1

,...,1α

Función Objetivo: cMin

Restricciones:

i) Todos los cursos i deben ser asignados a un periodo j:

∑=

=∀=n

jij mix

1

,...,11

ii) El curso b tiene un curso a como prerrequisito:

∑−

=

=∀≤1

1

,...,2j

rarbj njxx

iii) La carga académica máxima esta definida por:

{ }nccMaxc ,...,1= Esto puede ser representado por el siguiente conjunto de restricciones lineales

njcc j ,...,1=∀≤

iv) La carga académica del periodo j debe ser mayor o igual que el mínimo requerido:

njc j ,...,1=∀≥ β

v) La carga académica del periodo j debe ser menor o igual que el máximo requerido:

njc j ,...,1=∀≤ γ

vi) El número de cursos del periodo j debe ser mayor o igual que el mínimo requerido:

Page 22: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

22

∑=

=∀≥m

iij njx

1

,...,1δ

vii) El número de cursos del periodo j debe ser menor o igual que el máximo requerido:

∑=

=∀≤m

iij njx

1

,...,1ε

4.2 Estrategias de Enumeración.

En [Monfroy07] se consideran 12 estrategias estáticas básicas de enumeración (estrategias que generalmente

son utilizadas para todo el proceso de resolución, pero que aquí son parte de la estrategia híbrida) basadas en 3

criterios de selección de variables:

• Min selecciona la variable con el dominio más pequeño (según el orden de declaración de las variables

en el problemas si existen 2 con el mismo tamaño de dominio)

• Mcon es la selección de la más restringida, es decir, selecciona la (primera) variable que aparece en el

mayor número de restricciones.

• Ran selecciona aleatoriamente una variable que no ha sido instanciada.

Los criterios de selección de variables son combinados con criterios de selección de valores (Min, Mid, Max y Ran)

seleccionando respectivamente el valor mínimo, el mediano, el máximo y un valor aleatorio para la variable

seleccionada.

Por combinación de los criterios de selección de variables y valores, se obtienen 12 estrategias de enumeración

llamadas VarseleccionValseleccion . Por ejemplo, MinRan es la estrategia de enumeración que selecciona aleatoriamente

un valor en la variable con el dominio más pequeño.

La propuesta en este trabajo es diferente, basándose en las estrategias de selección de variables mencionadas antes,

se quiere guiar el proceso de resolución mediante una estrategia de selección de valores inspirada en búsqueda local

considerando como referencias los resultados de la investigación en este campo en [Solnon02, Khichane06,

Monfroy06]. En el caso de selección de variables estas se instanciarán según el orden en el que aparecen.

4.2.1 Búsqueda Local.

El término local se emplea con bastante frecuencia en los estudios teóricos y prácticos del campo de las

metaheurísticas de búsqueda. Las estructuras de entorno suelen reflejar algún concepto de proximidad o vecindad

entre las soluciones alternativas del problema. Por tanto, el análisis del entorno de la solución actual en el recorrido

de búsqueda para decidir como continuarla, representa un estudio local del espacio de Búsqueda. Las metaheurísticas

Page 23: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

23

de búsqueda local establecen pautas de selección de la solución del entorno a la solución actual, dando lugar a

búsquedas locales heurísticas con alto rendimiento. Las búsquedas locales no informadas sólo tienen en cuenta la

estructura de entornos para guiar la búsqueda. Las búsquedas monótonas utilizan la evaluación de la función objetivo

para admitir sólo cambios en la solución actual que supongan una mejora. Por tanto, las búsquedas locales

monótonas quedan atrapadas al llegar a una solución que no admite mejora dentro de su entorno. Las búsquedas

globales emplean diversos métodos para escapar de esta situación.

Mientras que los métodos completos pueden demostrar que un problema no tiene solución (la exploración exhaustiva

del espacio de búsqueda), los métodos incompletos serán ineficaces en aquel caso. Sin embargo, se adaptan muy bien

a grandes aplicaciones ya que se basan principalmente en aquellas heurísticas que proporcionan una exploración más

eficiente de las áreas interesantes del espacio de búsqueda. Esta clase de métodos (antes mencionados como

metaheurísticas) cubre una amplia gama de algoritmos evolutivos para búsqueda local.

Las técnicas locales de búsqueda, por lo general, apuntan a la solución de problemas de optimización. En el contexto

de satisfacción de restricciones, estos métodos reducen al mínimo el número de restricciones violadas para encontrar

una solución del CSP. Un algoritmo local de búsqueda (ver Figura 2), comenzando de una configuración inicial,

explora el espacio de búsqueda mediante una secuencia de movimientos. En cada iteración, el siguiente movimiento

corresponde a la elección de uno de los supuestos vecinos. Esta vecindad a menudo corresponde a pequeños cambios

en la configuración actual. Los movimientos son dirigidos por una función objetivo (función de fitness, f sobre la

figura) que evalúa sus beneficios desde el punto de vista de optimización, para alcanzar un grado óptimo local. El

algoritmo se detiene cuando se encuentra una solución o cuando se alcanza un número máximo de iteraciones.

Fig. 2 Un algoritmo de búsqueda local genérico.

4.3 Utilizando Métodos de Mejora (Improvement Methods) para guiar el proceso de

resolución.

Un Método de Mejora Iterativa (iterative improvement method1) es un método de búsqueda que comienza

con una solución inicial y trata de mejorar esta solución mediante modificaciones “locales”. Hay muchos tipos de

problemas, principalmente problemas de optimización como el vendedor viajero, la mochila, o problemas de

1 Iterative improvement method aún no es un concepto estandarizado y otros nombres para este concepto en la literatura son: “stochastic technique”, “repair-based approach”, “local search”, o “perturbation technique”.

Selecciona s Є S (una configuración inicial)

opt ← s (registra la mejor configuración)

MIENTRAS no termine HACER

Selecciona s’ un vecindario de s

s ← s’ (mover a s’)

opt ← s si f ( s) > f (opt) (en caso de maximizar)

Page 24: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

24

planificación (a esta “familia” pertenece el problema de balanceo de mallas curriculares) que pueden resolverse con

métodos de mejora iterativa.

Para problemas de planificación, la planificación inicial se puede construir al azar o con algún otro método

constructivo simple. También puede ser construido por un humano u otro proceso de planificación. Se ha utilizado

mejora iterativa para reaccionar a los acontecimientos imprevistos en una tienda [Dom93a]. Aquí, el evento provoca

una nueva violación de una restricción que conduce a un deterioro de la evaluación de la planificación. Luego, las

búsquedas locales reparan la planificación. En [Dom94a] se han descrito sistemas de planificación de diferentes

plantas, que tienen que cooperar. En este sentido, un sistema genera una planificación y el segundo sistema aplica el

método de mejora iterativa en esta planificación para la construcción de una nueva planificación que se ajuste mejor

a sus restricciones propias. Además, tal método de mejora iterativa puede ser usado para hacer más flexible la

interacción con el usuario, porque el usuario puede manipular la planificación actual mediante la publicación de

nuevas restricciones [Dom94b].

Para modificar los horarios deben ser definidos los operadores. La aplicación de un operador resulta en una

planificación vecina. Si existen varios operadores, algún procedimiento debe decidir qué operador se aplicará para

lograr una modificación. Esta decisión puede ser por casualidad o con algún método look ahead que permite la

selección de los mejores vecinos. Para decidir si se consigue una mejora mediante una modificación, debe ser posible

la comparación de las planificaciones mediante una función de evaluación.

Un algoritmo simple de hill climbing aceptará sólo las planificaciones que tienen una mejor evaluación.

Lamentablemente, por lo general los problemas de planificación tienen muchas soluciones que difieren en su calidad

y las buenas soluciones no son vecinos directos. Por lo tanto, un método de búsqueda que se basa en mejoras locales

puede quedar fácilmente atrapado en un óptimo local. Una característica importante de todos los métodos de mejora

iterativa es, por lo tanto, la capacidad de escapar de esos óptimos locales. Sin embargo, esta capacidad, con la

probabilidad de búsqueda en ciclos, plantea la necesidad de algún tipo de control para evitar los ciclos.

Los componentes de un método de mejora iterativa son un esquema de representación para el problema dado, una

función de evaluación que asigna un valor a cada solución, un conjunto de los operadores que se pueden aplicar para

modificar una solución y, por último, un algoritmo de control para la búsqueda de mejoras.

El boceto del siguiente algoritmo representa, muy cercanamente la estructura general de un algoritmo para un

método de mejora iterativa2. El algoritmo se compone de dos bucles: El bucle exterior describe la búsqueda de la

mejor solución y el bucle interior la búsqueda para la próxima mejora. Las principales diferencias entre los diferentes

2 Algunas veces los métodos de mejora iterativa se basan en sólo un bucle (interior). Entonces, el algoritmo no entregará siempre la mejor solución encontrada hasta el momento. Además, algunos algoritmos (como los genéticos) mantienen un conjunto de soluciones. Por lo tanto, el esquema dado es muy abstracto.

Page 25: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

25

algoritmos, que se presentarán en el próximo capítulo son los procedimientos de modificación y la función de

aceptación de soluciones.

Fig. 3. Un algoritmo general de mejora iterativa.

Una importante decisión de diseño para la eficiencia de un método de mejora iterativa es el equilibrio adecuado entre

la dirección de la búsqueda del óptimo global y la cantidad de trabajo invertido para seleccionar un operador. El

número de pasos (mejoras y también modificaciones) desde la solución inicial a la mejor solución que se puede

encontrar será menor si más información se utiliza para modificar una solución. Esta información debe ser adquirida

por inferencias simples, porque una técnica de look ahead exhaustiva toma demasiado tiempo para los problemas de

tamaño real. Además, la mejor mejora local puede conducir a un óptimo local. En la completa falta de

conocimiento a menudo se aplican técnicas estocásticas. Entonces es necesario poco tiempo para seleccionar un

operador de modificación, pero esto conduce a la desventaja de que la búsqueda puede tomar más tiempo,

porque también se aceptan modificaciones que no conducen directamente a la solución óptima. Con

el aumento de la aleatoriedad se debe tratar de hacer que las partes deterministas como la modificación de las

soluciones y su evaluación sean lo más simple posible para permitir examinar más soluciones.

La segunda cuestión importante es la capacidad para escapar de óptimos locales. Se pueden observar en los métodos

existentes dos estrategias generales. Algunos métodos realizan hill climbing hasta que la búsqueda es atrapada.

Luego, se utilizan los métodos que permiten un escape. La segunda estrategia primero soporta la diversidad para

buscar, más aleatoriamente, en todo el espacio las buenas soluciones y, a continuación, se intensifica la búsqueda

para encontrar una solución óptima. Métodos más elaborados intentan cambiar entre búsqueda intensiva y

diversificada, lo que puede lograrse con algunos modelos probabilísticos o con conocimientos adicionales.

4.3.1 Representación.

Los problemas de planificación simples consideran sólo secuencias de operaciones en una máquina. Estos

se pueden representar mejor como una lista ordenada o, más eficazmente, para las modificaciones como un conjunto

de operaciones. Ambas estructuras de datos también pueden contener horas de inicio, duración, etc. Para problemas

iterative_improvement;

s := initialSolution();

repeat {iterative improvement}

sbest := s;

repeat {improvement}

s' := modify(s);

if acceptable(s', s)

then s := s';

until better(s, sbest);

until stopping_criteria

Page 26: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

26

complejos con más máquinas y otros recursos, se han hecho diferentes propuestas para representar la planificación.

En investigación de operaciones a menudo se utilizan Grafos Disyuntivos [Balas69], [Roy64] como un formalismo

para representar la información necesaria temporal de un problema de planificación con diferentes máquinas

diferentes. Un Grafo Disyuntivo D = (N, Z, W) consta de un conjunto de N nodos en representación de las

operaciones que vayan ser realizadas, un conjunto de arcos dirigidos Z para describir las restricciones de precedencia

entre las operaciones y un conjunto de bordes disyuntivo W para restringir las operaciones que no se deben

superponer. Normalmente, los bordes disyuntivos se utilizan para representar los conflictos de recursos, también se

utilizan para describir que entre dos operaciones de un trabajo no existe secuencia. El siguiente grafo es un pequeño

ejemplo. En el ejemplo de tres trabajos J1, J2 y J3 se han planificado en tres máquinas M1, M2, M3 que sólo pueden

procesar una operación a la vez. El grafo contiene dos nodos adicionales un fuente y un sumidero que son requeridos

por el algoritmo para determinar el camino crítico.

Fig. 4. Grafo Disyuntivo representando un problema de asignación de trabajos con 3 trabajos y 3 maquinas.

En enfoques de IA, muchos investigadores siguen las ideas de Fox [Fox87] de utilizar algún tipo de representación

orientada a objetos con la capacidad de heredar propiedades de una superclase a una subclase (por ejemplo, la

representación de todos los recursos puede ser descrita en una superclase y cada subclase describe sólo las

propiedades de las máquinas que las distinguen de otros recursos). Se debe distinguir objetos del dominio como una

máquina y los objetos que se utilizan para resolver el problema de planificación como el programa, es decir, la

asignación de las máquinas en el tiempo. La representación de objetos del dominio mediante la orientación a objetos

parece ser muy natural.

Interesante, pero muy complejo es la realización de la idea de definir una asignación de un recurso como un objeto

que es básicamente una tripleta de recursos, funcionamiento, e intervalo temporal. Por ejemplo, esto fue aplicado en

el proyecto CRONOS [Canzi93]. Para un método de planificación donde muchas modificaciones se realizan en un

programa, esto significa que son necesarias muchas creaciones y eliminaciones de objetos en el tiempo. Si tal

representación es elegida para un método de mejora iterativa, los operadores deben ser sofisticados para reducir el

número de creaciones de objetos.

Page 27: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

27

Dado que el objeto jerarquía no suele ser importante para los problemas de asignación y secuenciación, una

representación plana basada en restricciones parece ser más adecuada para los aspectos dinámicos de un problema de

planificación. Básicamente, las restricciones son relaciones entre objetos o atributos de objetos que definen

propiedades deseables o requeridas. A pesar de que las restricciones y los atributos restringidos pueden ser

modelados como objetos en una representación orientada a objetos, la más eficiente representación parece ser un

grafo de restricciones almacenadas en una estructura de memoria dinámica. La herencia y la encapsulación de estos

enlaces dinámicos es una sobrecarga que puede evitarse.

Como fue definido en la sección 3.2, un problema de satisfacción de restricciones (CSP) es generalmente modelado

por un conjunto de variables donde cada variable tiene asignado un dominio de valores posibles. Una variable típica

en un problema de planificación es la hora de inicio y la duración de una operación. Si la operación tiene una fecha

de liberación y de vencimiento, el dominio de esta variable será restringido por dos restricciones unarias. A menudo

restricciones adicionales de precedencia demandan que la hora de término de una operación sea anterior a la hora de

inicio de otra operación. Esto puede ser fácilmente expresado con una restricción binaria. A veces también son

necesarias restricciones n-arias. Por ejemplo, se podría restringir el consumo de energía de n operaciones a ser menor

que algún valor e.

Una solución a un problema de satisfacción de restricciones es una asignación de un valor a cada variable tal que las

restricciones no son violadas. Meseguer [Meseguer89] da una visión de un conjunto de algoritmos para encontrar

solución a un CSP. Prosser [Prosser93] ha examinado varias de estas técnicas para resolver problemas de

planificación. Por lo general, técnicas de pre-procesamiento como ordenación de variables, forward checking o

propagación de restricciones se aplican para mejorar los algoritmos. Sin embargo, en la literatura sólo se proponen

técnicas para restricciones binarias y como se dijo por Prosser, problemas de tamaño real siguen siendo demasiado

complejos para ser resueltos por estos métodos. Algoritmos más específicos se han desarrollado para restricciones

temporales [Dom92], [Dom94b]. Estas técnicas pueden usarse para comprobar la factibilidad de horarios [Dom93b],

pero son todavía demasiado complejas para problemas de secuenciación.

Además, se tiene que ver que la planificación no es usualmente tanto un problema de encontrar un programa factible

(es decir, un programa sin violación de restricciones), sino un problema de optimización de uno o más criterios. A

veces se propone para modelar esta optimización varias llamadas a un solver de problemas de satisfacción de

restricciones con diferentes restricciones para la función de optimización [Nuijten93]. A la luz de la complejidad del

CSP, no parece buena solución y una asunción implícita es el supuesto de que existe sólo una función de

optimización discreta. A menudo, sin embargo, existen objetivos conflictivos de valor real en las aplicaciones

industriales. Otra propuesta fue hecha por Bakker [Bakker93]. Se propone un exceso de restricciones al problema y

luego aplicar técnicas de modelado basadas en diagnosis para encontrar una relajación tal que el problema se puede

resolver. Lamentablemente, encontrar una diagnosis mínima esperada, en este caso, es un problema NP-completo.

Page 28: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

28

Como conclusión se puede decir que la representación de problemas industriales complejos de planificación por un

formalismo de restricciones es prometedora debido a su expresividad, pero no se puede esperar una solución al

problema. La secuenciación de las operaciones debería ser objeto de, por ejemplo, un método de mejora iterativa.

Las técnicas de consistencia, como son conocidas en la literatura de CSP, pueden entonces ser de apoyo al método de

mejora iterativa para el control de la factibilidad del nuevo programa.

4.3.2 Función de Evaluación.

Una función de evaluación asigna costo a una planificación determinada. Por lo general, la función se expresa de

manera que el objetivo es reducir al mínimo la misma. Por lo tanto, se trata de encontrar un programa que termina

todas las operaciones tan pronto como sea posible o con el menor monto posible de capital. En teoría, una diferencia

regular e irregular de funciones de evaluación [French82]. La mayoría de las veces se utilizan las funciones regulares

que implican que el retraso de una operación nunca puede disminuir la evaluación. Una típica evaluación regular es

la makespan, es decir, el tiempo necesario para llevar a cabo todas las operaciones. En este caso, el objetivo es

encontrar un programa que tenga el mínimo makespan. Si se modifica la secuencia de las operaciones en el programa

en virtud de este criterio de optimización, cada operación puede ser desplazada a la izquierda en la medida de lo

posible mientras la función de evaluación sea regular. El valor de makespan de la nueva secuencia se puede calcular

localmente.

Una función irregular de evaluación implica que el cambio hacia la izquierda no llevará necesariamente al mejor

programa para la secuencia dada. Por ejemplo, Sadeh y Nakakuki [Sadeh94] minimizan los costos de inventario y la

lentitud. El costo de inventario se define como la diferencia entre la hora de vencimiento y la hora de inicio de la

primera operación de un trabajo. Esta combinación de objetivos es irregular porque los costos a veces se reducen si

la hora de inicio de un trabajo se retrasa. A veces los efectos de una modificación no puede limitarse al entorno local

y la función de evaluación debe ser calculada totalmente de nuevo. Si en una fase de post-procesamiento una nueva

serie de intervalos de configuraciones o de mantenimiento deben ser determinados, la evaluación debe ser calculada

siempre de nuevo [Dom94c].

En algunos proyectos en la industria del acero, se tiene más conciencia de que a menudo los expertos no pueden dar

restricciones exactas. Entregan por lo general muy fuerte límites, porque tienen miedo de que si

entregan estas restricciones relajadas el sistema que se construirá siempre tomará estos límites más bajos. Sin

embargo, con estos fuertes límites, el problema esta sobre restringido. Cuando se relaciona como resuelven el

problema, a menudo se puede ver una fuerte relajación de las restricciones. Normalmente se hace sin importar si la

fecha de vencimiento es violada por algunos minutos. Con frecuencia, la penalización por violar una fecha de

vencimiento es proporcional al tiempo de retraso. Una posibilidad para modelar el grado de violación de estas

restricciones es por conjuntos difusos [Dom94d]. Con este modelo no binario es necesaria la decisión de si una

restricción se cumple.

Page 29: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

29

Otros dos objetivos importantes con la planificación reactiva son la robustez y la reducción al mínimo de

modificaciones. La primera es una medida de cómo el programa permanece robusto bajo potenciales perturbaciones

en la base de la planificación. Un programa que no debe ser cambiado si ocurre algún evento inesperado es más

robusto que uno que debe ser cambiado. Una minimización de modificaciones se convierte en importante si la

planificación reactiva se hace necesaria. Si hay otras plantas de relevo en el programa, el programa debe ser reparado

con tan pocas modificaciones como sea posible. En [Dom93a] se muestra cómo estos objetivos se pueden incorporar

en una función de evaluación. La minimización de las modificaciones es también un objetivo en el sistema de

GERRY [Zweben92].

A menudo, la planificación es un proceso dinámico: nuevos trabajos se introducen y algunos trabajos finalizan. A

veces no todos los trabajos son previstos, pero existe una lista de trabajos restantes no planificados. Si un sistema de

planificación no tiene que programar todos los trabajos, esto se traduce muy probablemente en que varios trabajos

difíciles restan en la lista de trabajos no planificados. Para evitar esto, podemos asignar una penalización a los

trabajos que no están programados. Por lo tanto, la evaluación de la planificación no será tan buena si los trabajos

difíciles no son planificados. Del mismo modo se puede modelar la importancia de los trabajos.

Para encontrar una función de evaluación realista para un problema multi-criterio, deben ser introducidos

coeficientes de ponderación para diferentes restricciones y objetivos. Por lo general, restricciones de fecha de

vencimiento son de peso no tan importante como aspectos que conducen a una mala calidad de los productos.

Además, se tiene que decidir si se destacaron grandes violaciones o no. A veces el lugar de la demora de los trabajos

se agrega como una función de costos. Esto significa que se prefiere un programa con muchos pequeños retrasos. A

veces esto puede favorecer un programa que tiene un trabajo muy tarde, pero todos los demás trabajos en el tiempo.

Especialmente para la toma de decisiones difusa, un lote de tales funciones de agregado que también fueron

examinadas para planificación se define en [Slany94].

4.3.3 Modificación del Programa.

Para buscar un programa mejorado se tiene que modificar el programa existente. Dado que el principal problema en

la planificación es el problema de secuenciación, la mayoría de los operadores influyen en la secuencia de los

trabajos o de las operaciones.

Se pueden interpretar todos los programas que pueden ser generados a partir de una planificación S como un

conjunto de vecindarios N(s) que puede ser alcanzado mediante la aplicación de un operador o de un conjunto de

posibles operadores Os:

N(s) = {s' | ∃ o ∈ Os: S' = s ⊕o}

Page 30: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

30

Uno de los más sencillos operadores en planificación es el intercambio de trabajos u operaciones adyacentes en un

programa. Si hay n ítems programados, esto significa que se pueden construir n - 1 vecinos. Si se permite el

intercambio de dos elementos existen n * (n - 1) / 2 vecinos. Para problemas de planificación dinámica, es posible

también un intercambio de trabajos, en el programa, que aún no se han planificado. Otro operador muy sencillo es

tomar un ítem desde una posición p1 de la lista y colocarlo entre otros dos ítems en un lugar p2 y el intercambio de

todos los ítems entre P1 y P2. Estos son todos los operadores que se pueden encontrar en la literatura. El dilema en el

diseño de los operadores es que, por un lado, los operadores deben ser tan sofisticados como sea posible y, por otro

lado, no deberían ser tantos los vecinos que pueden ser generados a partir de los operadores, porque de otro modo

existen muchas alternativas. Se deben diseñar operadores tal que se pueda alcanzar una mejora en un paso, pero esto

puede significar que se deben evaluar muchos operadores candidatos.

También se ha experimentado con operadores que mueven varios trabajos al mismo tiempo. Dado que el número de

operadores de tales grupos es exponencial y no se pueden generar todos los vecinos, esto no puede ser un

acercamiento general. Se han logrado buenos resultados al reducir los operadores utilizando la heurística de

reparación del mayor conflicto [Dom94d].

Una modificación de un programa factible por un operador puede resultar en un programa infactible en el caso de

que sean violadas varias restricciones duras. Hay tres posibilidades de reaccionar sobre esta modificación:

� dar una evaluación baja a un programa inviable,

� eliminar este tipo de operadores del conjunto de los posibles operadores, o

� generar a partir de un programa inviable uno factible con una técnica de post-procesamiento.

La primera posibilidad puede ser costosa si se generan muchos programas inviables. Teóricamente, sería posible que

el mejor programa encontrado todavía viole restricciones duras difíciles. La asignación de costos muy elevados a la

violación de restricciones duras puede bloquear el camino a la solución óptima. Por lo tanto, se tiene que diseñar una

función de evaluación muy cuidadosamente a fin de que las violaciones a restricciones duras no permanezcan en la

solución óptima, pero puedan ocurrir en el camino hacia la solución.

El esfuerzo de la segunda posibilidad depende de si se puede decidir la infactibilidad de un vecino sin construirlo

explícitamente. Si se puede decidir sólo mirando el operador los costos serán bajos. Sin embargo, hay instancias de

problemas donde la prohibición de soluciones inviables bloquearía el camino a la solución óptima.

El esfuerzo de la tercera posibilidad depende de la técnica que sea necesaria para la construcción de un programa

factible. Por ejemplo, en un programa “semi-activo”, la hora de inicio de las operaciones puede ser determinada por

un algoritmo del camino crítico [French82]. A menudo, este esfuerzo de post-procesamiento es lineal, pero a veces

también es polinómico. A veces, pueden existir varias posibilidades para construir una solución factible. Si se aplica

Page 31: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

31

un algoritmo determinista entonces algunas soluciones nunca se alcanzarán. Sadeh y Nakakuki [Sadeh94], por lo

tanto, utilizan un operador adicional que cambia las operaciones en lugar de cambiar el orden.

La decisión final por una de estas posibilidades dependerá de la aplicación y los operadores que se definan. Si es

probable que sean generados muchos programas inviables, el esfuerzo para evaluar un nuevo programa es alto, y hay

un método para construir un programa factible a partir de uno inviable y, a continuación, entonces parece ser

prometedor ajustar el programa. En [Dom94c] las operaciones de configuración y mantenimiento se añaden

nuevamente después de cada modificación de la secuencia de operaciones. Por otra parte, no siempre es posible

lograr un programa factible sin cambiar el orden de los trabajos. En la aplicación descrita en [Dom94d], donde las

restricciones de compatibilidad desempeñan un papel dominante en muchas secuencias, esto no está permitido.

Cuando hay muchos programas inviables en la aplicación, un método de mejora iterativa debe aceptar también los

programas inviables, porque de otro modo podría ser que no hay camino para la solución óptima.

El número de vecinos de un programa depende del tamaño del problema de planificación y del número de operadores

definido. Para un pequeño número de vecinos es posible evaluar todos los vecinos y continuar entonces con el mejor.

Para problemas más grandes, esto será ineficientes, Zweben [Zweben92] ha evaluado los costos de aplicación de

tales procedimientos look ahead y ha reportado una degradación del rendimiento.

El método usual ahora es seleccionar en forma aleatoria los operadores y entonces decidir si esta modificación es

aceptable. Las técnicas de mejora se consideran ineficiencias en el programa actual para decidir esto. La "reparación"

de tales ineficiencias se puede considerar como una meta-heurística para métodos de mejora iterativa que se

focalizan sólo en subconjuntos de los operadores evaluados.

La heurística min-conflicts [Minton90] es un tipo de estrategia de reparación que reasigna la variable en un problema

de satisfacción de restricciones que está involucrada en la mayoría de las restricciones violadas. La heurística trata

entonces de seleccionar una asignación con menos violaciones que la original. Esta heurística se ha combinado con

un hill-climbing simple para hallar una solución para el problema del Telescopio Espacial Hubble. Zweben

[Zweben90] adopta un enfoque similar, pero aplica con cada reparación un algoritmo de arco-consistencia para las

restricciones temporales. Sadeh y Nakakuki [Sadeh94] inflan los costos asociados con las mayores ineficiencias de

un determinado programa. Por lo tanto, se hace más probable que estos algoritmos modifiquen el programa en estos

lugares.

4.4 Optimizando Programas por Mejoras Iterativas.

Hay varios algoritmos que pueden utilizarse para mejorar iterativamente un programa. Las principales

diferencias entre ellos son la selección de los operadores y los criterios de aceptación. Los algoritmos pueden ser

ordenados por la cantidad de aleatoriedad que está involucrada en estos aspectos. Para el propósito de comparación

Page 32: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

32

se plantea la aplicación de un algoritmo que selecciona los operadores puramente aleatorios [Dom94c]. Si bien este

tipo de algoritmo optimiza mucho el programa, otros algoritmos que aplican más conocimiento tienen un mejor

rendimiento. Por el contrario, uno también puede aplicar algoritmos de búsqueda deteterministicos para una mejora.

El primer método que será descrito a continuación es un algoritmo que se limita a clases de problemas muy

específicos. Sin embargo, su ventaja es que garantiza una solución óptima si se agota el tiempo. El segundo

algoritmo busca exhaustivamente una mejora por profundización iterativa. En teoría, este algoritmo también puede

encontrar la solución óptima, pero esto es prácticamente imposible. En 1988, algunos investigadores de la

comunidad de IO habían identificado los siguientes tres métodos de optimización como los más prometedores para

aplicaciones prácticas [Com88]. Tabu Search, el tercer método, aunque principalmente determinista, también puede

ser enriquecido con algunas técnicas estocásticas. El cuarto método que se describe es Simulated Annealing que

selecciona al azar un operador y la posibilidad de aceptar una modificación se decide con un modelo de probabilidad,

también. Por último, se presentan los algoritmos genéticos como un método de optimización. Este método es

ligeramente diferente a los otros métodos porque siempre se mantienen un número de soluciones al mismo tiempo.

4.4.1 Grafos Disyuntivos.

Uno de los primeros algoritmos que pueden clasificarse como método de mejora iterativa, es el que se describe por

Balas [Balas69]. Él usa un grafo disyuntivo para representar el problema de planificación y optimiza el makespan

por inversión de bordes con un algoritmo de enumeración implícita.

Un programa factible contiene sólo los bordes y no tiene ciclos. Es creado un primer programa seleccionando para

cada borde disyuntivo una dirección. El conjunto de todos los bordes elegidos se llama selección. Para obtener un

primer programa factible, todas las operaciones están ordenadas aleatoriamente, y siempre se elige la dirección que

conduce desde la primera operación a la segunda.

Una modificación de dicho programa es la inversión de uno de estos bordes elegidos. El algoritmo se basa en la idea

de que un borde en el camino crítico debe ser invertido para encontrar un programa que tiene un makespan más corto

que un programa dado. Evidentemente, el camino crítico (la más larga cadena de operaciones) es en cierto sentido, el

conjunto de restricciones violadas que causa un largo makespan. Además, si un borde en el camino crítico se invierte

se demuestra que el nuevo grafo no tiene ciclos.

Si se crea un nuevo programa, se debe determinar la nueva ruta crítica. Esta nueva ruta crítica, y también su

duración, puede ser fácilmente calculada a partir de la transformación de Balas; almacena en cada nodo el camino

más largo (crítico) hacia la fuente y al sumidero. Para cada borde en el camino crítico ahora se pueden examinar los

costos de un vecino con un pequeño esfuerzo.

El algoritmo de búsqueda usa un árbol con los programas como nodos. Un nodo es expandido si un mejor programa

Page 33: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

33

se puede construir invirtiendo un borde disyuntivo. Se puede elegir el mejor vecindario y Balas ha demostrado

también un criterio para cortar algunas ramas del árbol de búsqueda. La búsqueda puede ser interrumpida en

cualquier momento y siempre ofrecer una solución viable para lograr así las características de un algoritmo en

cualquier momento [Boddy89].

En un artículo posterior [Adams88], en el procedimiento de cambio de cuello de botella se presentan las secuencias

de primeras máquinas que son reconocidas como cuello de botella. Las máquinas son secuenciadas en un momento,

consecutivamente. Para cada máquina, que todavía no se ha secuenciado se resuelve el problema de secuenciación de

una única máquina por consistencia de las restricciones procedentes de las máquinas que ya están programadas y las

operaciones que se han programado en esta máquina. Debido a que este algoritmo tiene muy buen rendimiento sobre

problemas con muchas máquinas, es a menudo utilizado como un estándar de comparación. La ventaja del algoritmo

frente a otros, que se presentarán más tarde, es que finalmente encuentra la solución óptima si hay suficiente tiempo

disponible. Sin embargo, hay que destacar que este algoritmo es sólo aplicable a problemas donde el flujo del tiempo

o makespan se minimizará.

4.4.2 Profundización Iterativa.

El primer intento para un método general de mejora iterativa que no es tan restringido como el enfoque anterior y es

capaz de escapar del óptimo local, podría ser un enfoque que busca en forma exhaustiva, en cada paso, una mejora.

Se ha aplicado la estrategia de profundización iterativa primero en profundidad (depth-first iterative deepening)

[Korf85] en algunos experimentos. La idea de esta estrategia es combinar las ventajas de la búsqueda primero en

amplitud (el camino más corto a una mejora) y vuelta a atrás (backtracking) (no se almacenan en árbol de búsqueda).

En un primer intento se hace una búsqueda hasta profundidad uno y si no se encuentra una mejora, se lleva a cabo

una búsqueda con backtrack de profundidad dos. Este límite de profundidad iterativa se aumenta hasta que se

encuentra una mejora.

Por supuesto, cada estrategia exhaustiva de búsqueda tiene sus límites. Si existen demasiados operadores que se

pueden aplicar, el esfuerzo de búsqueda es intratable. Se ha aplicado este método para compararlo con otros métodos

con tal enfoque determinista y es sorprendente que se hayan obtenido muy buenos resultados. Desde que se ha

combinado el método con heurísticas para reparar siempre la mayor violación de restricción, el número de

operadores no ha sido tan grande y ha superado, por ejemplo, el enfoque de algoritmos genéticos.

Además, parece prometedor combinar esta estrategia de búsqueda más fuerte con la función de evaluación. Con

IDA* [Korf85] también existe un algoritmo que combina las ventajas del algoritmo A* y backtracking. Si se aplica

como combinación se permite primero hacer una búsqueda en una dirección en que parece ser más probable una

mejora.

Page 34: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

34

4.4.3 Tabu Search.

Tabu Search es un método de búsqueda inspirado en gran medida en la investigación en ciencia cognitiva [Glover89]

y [Glover90]. Una de las principales ideas es un proceso dinámico de memoria que almacena los atributos de las

anteriores soluciones del proceso de búsqueda. En una memoria de corto plazo son almacenadas las características de

las soluciones recientes a fin de evitar retrocesos o ciclos en la búsqueda. Una memoria de largo plazo se utiliza para

definir las fases de intensificación y diversificación de la búsqueda. Por lo tanto, si una región del espacio de

búsqueda se examinó intensivamente sin encontrar soluciones mejores, la memoria a largo plazo puede cambiar los

parámetros para orientar el proceso de búsqueda a regiones distintas. Se requieren varios conceptos para cumplir con

este comportamiento.

Una amplia gama de problemas de planificación ya se han resuelto con búsqueda Tabú. Barnes [Barnes93] entrega

una visión general de algunas de estas soluciones y [Glover93] contiene una colección de artículos sobre problemas

de planificación que se resolvieron con búsqueda Tabú.

Los primeros acercamientos de búsqueda Tabú han investigado todo el vecindario [Widmer89], sin embargo, en

aplicaciones industriales reales esto no es posible. En consecuencia, más tarde se aconsejó formar primero muestras

de operadores y luego examinar la totalidad de la muestra para seleccionar la mejor modificación [deWerra89].

Laguna [Laguna91], aplica por ejemplo intercambio de operadores y limita la distancia entre dos trabajos que se

intercambian para que sea más pequeña que algún valor d. Se ha utilizado la estrategia para reparar el conflicto más

grande en una planificación para formar una muestra [Dom94c]. Si, por ejemplo, un trabajo es tarde, sólo se intentan

operadores que mueven ese trabajo a otro lugar.

Para escapar del óptimo local es también posible seleccionar un operador que lleve a una planificación con una peor

evaluación. Para evitar los ciclos de búsqueda, se introduce una lista tabú que contiene los atributos de las anteriores

soluciones. Si una nueva planificación se considera que coincide con uno de estos elementos de la lista tabú, este

movimiento es tabú y se busca el siguiente mejor vecino.

Teóricamente, se podría almacenar un conjunto de planificaciones en la lista tabú para que sea tabú. Dado que esto

consumiría demasiado espacio y tiempo, sólo se almacenan algunos atributos de una antigua planificación. Ahora

puede ocurrir que sea generada una nueva planificación de la cual se ha almacenado atributos, pero que además sea

diferente a la antigua. Para permitir en determinadas condiciones, el reescribir el estado tabú de un atributo, se puede

introducir una condición de nivel de aspiración. Una condición típica es que sea encontrada una nueva mejor

solución.

Los atributos almacenados deben caracterizar la solución lo mejor que sea posible. Por lo tanto, parecen ser

adecuados diferentes atributos para aplicaciones específicas. Por otra parte, Glover [Glover90] propone almacenar

Page 35: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

35

distintos atributos para lograr una mayor flexibilidad. Atributos prometedores para la aplicación de una planificación

son:

• Si se intercambian dos trabajos en un plan, se almacenan estos trabajos y sus antiguas posiciones en el

plan, para permitir la prohibición de que en un futuro próximo estos trabajos se colocan de nuevo en sus

lugares originales.

• Si dos trabajos no se ajustan cada uno después del otro y uno de ellos se mueve, se puede almacenar la

antigua secuencia de ambos como una constelación tabú.

• Se almacena un tipo de función hash para todo el plan.

La lista tabú simulando una memoria a corto plazo humana tiene una duración limitada y generalmente es

implementada como un espacio de anillo. Glover recomienda limitar este a siete entradas. Con esta restricción de

longitud será posible para el caso de almacenar la posición original de los trabajos que, después de siete

modificaciones, vuelvan a su posición original en el plan. Se pueden definir listas tabú con diferentes longitudes para

los tres atributos: valor de hash, antigua secuencia de trabajos y antigua posición de los trabajos. La lista tabú para

los valores de hash debe ser la más larga para prohibir por un largo tiempo el retorno a una solución antigua. En

contraste, la lista con las antiguas posiciones deben ser relativamente corta, porque esto puede provocar repeticiones

de las mejores soluciones.

Una posibilidad para tener una diversificación de la búsqueda es cambiar la longitud de la lista tabú dinámicamente.

Con una lista más larga más operadores serán tabú y como resultado habrá una búsqueda en diferentes regiones, por

lo tanto, así se logra una diversificación. Si se encuentra alguna otra buena solución que difiere considerablemente de

las antiguas buenas soluciones, la longitud de la lista tabú puede reducirse de nuevo. Otra posibilidad es cambiar

entre los diferentes operadores. Por ejemplo, un operador intercambio intercambiando sólo operaciones adyacentes

conduce a una intensificación de la búsqueda más que los operadores que producen estructuras con grandes

vecindarios que apuntan a una diversificación. Para forzar la diversificación también pueden aplicarse técnicas

probabilísticas. Laguna y Glover [Laguna92] han desarrollado una técnica de análisis objetivo para controlar las dos

fases de diversificación e intensificación y las primeras aplicaciones han aplicado con éxito esta técnica.

4.4.4 Simulated Annealing.

Recocido simulado es un método de optimización basado en las ideas de la física estadística, donde es simulado el

enfriamiento de un sólido a su estado terreno (es decir, el estado con energía mínima). Kirkpatrick [Kirkpatrick83] lo

utilizan como un método de optimización para el diseño VLSI.

En el recocido simulado se selecciona al azar un operador de modificación y se decide si el plan resultante puede ser

aceptado como un nuevo candidato para continuar la búsqueda. Para escapar del óptimo local se permite una

disminución de la evaluación por una probabilidad que baja durante la búsqueda. Si la evaluación de un plan si es ci

y, a continuación, entonces el algoritmo acepta un vecino sj con una evaluación de cj, con una probabilidad de:

Page 36: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

36

=

−−

t

cc ji

eP ,1min

donde t (la temperatura) es un parámetro de control positivo que disminuye durante la ejecución del algoritmo. La

probabilidad de aceptar un nuevo plan es baja si la diferencia entre ambas evaluaciones es grande. En el comienzo

cuando la temperatura es alta, es más probable que una gran diferencia sea aceptada. La estrategia global es buscar

primero al azar sobre todo el espacio de búsqueda de planes. Luego la búsqueda se limita más fuerte para encontrar

una solución cercana al óptimo.

La decisión de la rapidez con que la "temperatura" disminuye influye en el tiempo que el algoritmo necesita para

resolver un problema y también en que tan buena será la solución. Las diferentes temperaturas de recocido se pueden

dar explícitamente por un conjunto fijo de constantes o por una función implícita. Asimismo, la duración el tiempo

que la búsqueda utiliza una cierta temperatura se puede ajustar. A menudo, estos ajustes se conocen como el “plan

de recocido”.

Van Laarhoven [vanLaarhoven92] ha aplicado recocido simulado sobre grafos disyuntivos y ha definido el

vecindario de la misma manera que en [Balas69]. Comparaciones experimentales con el "procedimiento de cambio

cuello de botella” [Adams88] han demostrado que puede competir con este enfoque. Zweben [Zweben90],

[Zweben92] ha combinado recocido simulado con una representación basada en restricciones. Aquí se “reparan”

violaciones a las restricciones con algunas heurísticas, aplicando un algoritmo de consistencia temporal en el nuevo

programa y, por último, evaluando con el modelo de recocido simulado si este nuevo programa puede ser aceptado.

Dado que los operadores no son seleccionados al azar, se podría hablar de una versión de recocido simulado basado

en conocimiento. Sadeh y Nakakuki [Sadeh94] han aplicado recocido simulado a un problema de planificación y

mejorado el algoritmo haciendo hincapié en la eficiencia de la planificación. Su heurística "focalizada en recocido

simulado" incrementa los costos de los subproblemas por lo tanto, guía la búsqueda más fuertemente. Esta parece ser

la misma motivación de la heurística min-conflicts [Minton90] o la heurística de “reparación” [Dom94d] o

[Zweben90].

El problema de Recocido Simulado es que las soluciones difieren considerablemente entre ejecuciones distintas. Por

esto, Nakakuki y Sadeh [Nakakuki94], proponen técnicas para detener ejecuciones poco promisorias y reiniciar el

Recocido Simulado según algunos criterios que pueden ser adquiridos a través de múltiples ejecuciones. Otra

posibilidad de reducir esta diferencia es hacer más “determinista” el Recocido Simulado. En Threshold Accepting

[Dueck90], el modelo probabilístico se omite y sólo se utiliza un valor umbral durante la búsqueda para reducir la

temperatura como en Recocido Simulado. En [Dueck90] y [Dueck93] se hicieron varios experimentos con el

problema del vendedor viajero para comparar su rendimiento con Recocido Simulado. Los autores afirman que sus

algoritmos tienen un rendimiento más rápido que Recocido Simulado y ofrecen resultados similares. Aunque la idea

detrás de Threshold Accepting es evidente, en [List94] se reportan diferentes resultados. Para problemas de

Page 37: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

37

planificación montados en aplicaciones, Recocido Simulado ha encontrado soluciones con un menor tiempo de flujo

que Threshold Acceptingr. Lamentablemente, sólo se reportan las modificaciones requeridas y no el tiempo

requerido.

4.4.5 Algoritmos Genéticos.

Los Algoritmos Genéticos fueron propuestos por primera vez por Holland [Holland75], son una clase de algoritmos

que imitan la selección natural y la genética. Los algoritmos genéticos difieren de los otros métodos de búsqueda

descritos en el sentido de que mantienen siempre un conjunto de soluciones llamadas población. Los miembros de la

población son los cromosomas que están representados originalmente por cadenas de bits. La primera población se

inicializa al azar y evoluciona en generaciones. En cada generación la población es afectada por los operadores

genéticos y mecanismos de selección. Los operadores genéticos, tales como los operadores de cruzamiento y

mutación proporcionan el flujo de información entre los cromosomas, mientras que la selección promueve la

supervivencia de los cromosomas más aptos. Una función de calidad evalúa los cromosomas individuales. El

mecanismo de selección suele ser una combinación de la función de calidad con cierta probabilidad

A partir de Davis [Davis85] se hicieron muchas propuestas para la aplicación de algoritmos genéticos en

planificación. Normalmente, es dirigido hacia el problema de secuenciación de un conjunto de puestos de trabajo

debido a que este es un problema difícil en la planificación y este tipo de problema puede ser fácilmente representado

con algoritmos genéticos. Sin embargo, hay acercamientos para hacer frente también al problema de asignación.

Bagchi [Bagchi91] clasifica la representación de las planificaciones con los cromosomas en acercamientos directos e

indirectos. En una representación directa todos los conocimientos necesarios para evaluar una planificación existen

en un cromosoma. La representación directa tiene por supuesto ventajas, pero entonces el algoritmo genético debe

ser muy especializado y no puede ser reutilizado en otro problema. Por lo tanto, a menudo la representación indirecta

es favorable donde un constructor de planificaciones construye una planificación valida desde un cromosoma. En

este caso, sólo tiene que ser modificado el constructor de planificaciones para una nueva aplicación. Los algoritmos

genéticos no siempre pertenecen a uno de estos extremos, también hay planteamientos que toman conocimientos más

dependientes del dominio en un cromosoma, pero que aún requieren un constructor de planificaciones, porque no

todo el conocimiento está representado en el cromosoma. Bruns [Bruns93] llama a estos acercamientos problem-

specific indirect representation.

La mayoría de los enfoques para planificación usan la representación indirecta y codifican una planificación en un

cromosoma. Dado que los algoritmos genéticos no trabajan sobre una planificación, se realiza una transición de un

cromosoma a una planificación valida cada vez que un nuevo cromosoma tiene que ser evaluado.

La planificación puede ser representada por cadenas de bits donde cada bit determina cual de las dos órdenes se

ejecuta primero [Fox91], [Nakano91]. Más a menudo los trabajos de un problema de planificación son representados

Page 38: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

38

como una lista de números enteros [Cleveland89], [Filipic93], [Kanet], [Syswerda91]. Los operadores genéticos

aplicados en estos acercamientos deben estar diseñados de tal manera que las órdenes o trabajos no existan dos veces

en un nuevo cromosoma. Aunque el problema de planificación se reduce en un problema de secuenciación, para

algunas aplicaciones, este enfoque parece suficiente sin constructor de planificación porque sólo la secuencia es

importante. Sistemas más complejos de cromosomas representan también un proceso para un plan de trabajo o los

recursos que se utilizarán para una operación, [Bagchi91] y [Bruns93].

Varios operadores genéticos específicos para planificación son propuestos en la literatura. Fox y McMahon [Fox91]

han examinado varios de ellos para planificación. Dos clases de operadores se distinguen usualmente: los operadores

de mutación que operan en un único cromosoma y los operadores de cruzamiento que combinan dos cromosomas

para generar uno, dos, o incluso más hijos. El problema en planificación es el diseño de estos operadores a fin de que

puedan ser producidas planificaciones validas. Si la planificación se representa como una lista de números enteros se

debe verificar que el nuevo cromosoma no contiene dos veces un trabajo.

Los operadores de mutación se pueden diseñar fácilmente porque es más sencillo establecer que el nuevo cromosoma

forme otra vez una planificación valida. El más primitivo es un operador de cambio de dos trabajos adyacentes. Por

lo tanto, se selecciona una posición en la lista aleatoriamente y el trabajo en esta posición y su sucesor se

intercambian. Por supuesto se puede realizar más de un intercambio también. La mutación basada en la posición

selecciona aleatoriamente dos posiciones e intercambia los trabajos en estas posiciones. La mutación basada en el

orden selecciona dos posiciones y pone el trabajo de la segunda posición en el lugar del trabajo de la primera

posición. Se puede diseñar un gran número de estos operadores de mutación. Se han hecho también experimentos

exitosos con el intercambio de grupos de trabajos en una planificación. Además, se ha diseñado un operador de

mutación que selecciona las posiciones con alguna probabilidad donde la probabilidad de seleccionar una posición en

la que existe una violación a alguna restricción es mayor que el de otras posiciones [Dom94e].

Los operadores de cruzamiento son más sofisticados y deben ajustarse más aspectos a un determinado problema. Por

lo tanto, para planificación, se debe poner en el diseño de estos operadores algún esfuerzo para generar

planificaciones sólo validas. Fox y McMahon por ejemplo, usan matrices adyacentes booleanas para comprobar con

un simple algoritmo la validez. Diferentes operadores son propuestos para planificación. Por ejemplo, el cruzamiento

basado en orden toma algunos genes de uno de los padres y los pone en las mismas posiciones en la descendencia y

llena los puestos restantes con los genes del segundo padre, mientras que preservan el orden del segundo padre. El

operador de intersección de Fox y McMahon encuentra predecesores / sucesores comunes en ambos padres y estos

hereda en el hijo. Luego, el hijo será completado. Una vez más, son posibles un montón de diferentes operadores.

Parece ser que para cada tipo de problema se tienen que diseñar nuevos operadores para tener modificadores de

planificación eficientes.

Page 39: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

39

Un algoritmo genético puede ser controlado por diferentes parámetros. Por lo tanto, el tamaño de la población tiene

una gran influencia sobre el desempeño del algoritmo. Una población demasiado grande

requiere más esfuerzo computacional y una población demasiado pequeña no garantiza diversidad para encontrar

buenas soluciones. Elitismo es un principio que garantiza que el mejor cromosoma de una población siempre debe

sobrevivir. Asimismo, el con qué frecuencia las tasas en que se aplicaran los operadores de mutación y cruzamiento

influyen en el comportamiento del algoritmo. Syswerda [Syswerda91] ha reconocido, para su problema de

planificación, que el rendimiento fue mejor cuando la tasa de la mutación basada en orden poco a poco fue

aumentada, mientras que la tasa de mutación basada en la posición se redujo.

En algunas comparaciones realizadas en [Dom94c] de diferentes métodos de mejora iterativa, algoritmos genéticos

se ha comportado peor que búsqueda tabú y profundización iterativa. Esta no debe ser la última palabra al respecto:

pero, el problema con algoritmos genéticos, parece ser que hay muchas decisiones de diseño que tienen influencia en

el rendimiento. Aunque los algoritmos genéticos son, en principio, un muy buen acercamiento para optimización

general, se requiere de mucho trabajo para adaptarlos a una aplicación específica, especialmente si se refiere a

problemas de planificación.

4.5 Propiedades deseables de la Metaheurística de resolución.

En esta sección analizamos un conjunto de propiedades deseables de las metaheurísticas. Son propiedades

deseables todas aquellas que favorezcan el interés práctico y teórico de las metaheurísticas. Indicaran direcciones a

las que dirigir los esfuerzos para la contribución al desarrollo científico e ingenieril de este proyecto, pero no será

posible mejorar todas las propiedades a la vez, dado que algunas son parcialmente contrapuestas. Una relación de

tales propiedades debe incluir las siguientes:

− Simple. La metaheurística debe estar basada en un principio sencillo y claro; fácil de comprender.

− Precisa. Los pasos y fases de la metaheurística deben estar formulados en términos concretos.

− Coherente. Los elementos de la metaheurística deben deducirse naturalmente de sus principios.

− Efectiva. Los algoritmos derivados de la metaheurística deben proporcionar soluciones de muy alta calidad;

optimas o muy cercanas a las óptimas.

− Eficaz. La probabilidad de alcanzar soluciones optimas de casos realistas con la metaheurística debe ser alta.

− Eficiente. La metaheurística debe realizar un buen aprovechamiento de recursos computacionales; tiempo de

ejecución y espacio de memoria.

− General. La metaheurística debe ser utilizable con buen rendimiento en una amplia variedad de problemas.

− Adaptable. La metaheurística debe ser capaz de adaptarse a diferentes contextos de aplicación o modificaciones

importantes del modelo.

− Robusta. El comportamiento de la metaheurística debe ser poco sensible a pequeñas alteraciones del modelo o

contexto de aplicación.

Page 40: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

40

− Interactiva. La metaheurística debe permitir que el usuario pueda aplicar sus conocimientos para mejorar el

rendimiento del procedimiento.

− Múltiple. La metaheurística debe suministrar diferentes soluciones alternativas de alta calidad entre las que el

usuario pueda elegir.

− Autónoma. La metaheurística debe permitir un funcionamiento autónomo, libre de parámetros o que se puedan

establecer automáticamente.

− Flexible. La metaheurística debe permitir el ajuste flexible de sus parámetros y criterios, así como el manejo

flexible de las restricciones del problema.

− Equilibrada. La metaheurística debe mantener un equilibrio permanente entre la búsqueda de soluciones de

calidad y el uso de recursos computacionales.

− Modelable. La metaheurística debe permitir con el menor esfuerzo su modelización, diseño e implementación a

la hora de resolver problemas reales y concretos como para facilitar su aplicación e integración en entornos de

desarrollo mas generales.

Varias de estas propiedades están muy relacionadas y apuntan en la misma dirección, como la simplicidad, la

precisión y la coherencia. La simplicidad de la metaheurística facilita su uso y contribuye a dotarla de amplia

aplicabilidad. La descripción formal de las operaciones debe liberarse de la analogía física o biológica que haya sido

la fuente inicial de inspiración para permitir mejoras que no respeten la analogía. La precisión en la descripción de

los elementos que componen la metaheurística es crucial para concretar un procedimiento de alta calidad; fácil de

implementar. Los pasos de los procedimientos básicos de los algoritmos deben traducirse coherentemente de los

principios en que se inspira. Debe huirse de sentencias sin sentido o vagas. Frecuentemente se presentan como

extensiones de una metaheurística la incorporación de herramientas o recursos computacionales estándares, o de

pautas de otras metaheurísticas cuando en realidad deben calificarse como hibridaciones de las mismas.

La evaluación del rendimiento de una metaheurística debe atender tanto a la eficiencia como a la efectividad y

eficacia de los procedimientos heurísticos obtenidos. Para validar la efectividad y eficacia de una metaheurística,

estas deben afrontar con éxito problemas de un banco de casos reales para los que se conozcan las soluciones. Si no

se dispone de estos casos, se deben construir recurriendo a procesos de simulación que se aproximen a tales

circunstancias. La eficiencia del método se contrasta experimentalmente en el empleo de un tiempo computacional

moderado (o al menos razonable) para alcanzar éxito en los problemas considerados. El tamaño de los problemas

considerados en las aplicaciones prácticas de los métodos de optimización se limita por las herramientas disponibles

para resolverlos más que por la necesidad de los potenciales usuarios. Cuando las metaheurísticas se aplican a

instancias realmente grandes, sus fortalezas y debilidades aparecen más claramente. Las metaheurísticas pueden

mejorar su rendimiento extendiéndose en varias direcciones y, posiblemente, hibridizandose. Los procedimientos

heurísticos resultantes se complican y usan muchos parámetros. Con ello se puede mejorar su eficiencia, pero

Page 41: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

41

enmascaran las razones de su éxito. En algunas ocasiones la alta especialización de una metaheurística lleva a un

ajuste fino de parámetros sobre algún conjunto de entrenamiento concreto.

La aplicabilidad de una metaheurística debe estar sustentada en la generalidad, pero también en su adaptabilidad y

robustez. La robustez tiene que ser contrastada experimentalmente analizando el rendimiento frente a fluctuaciones

de las características de los problemas. La robustez se refleja en que el número de parámetros que hay que fijar en las

distintas aplicaciones se mantiene bajo. La generalidad de una metaheurística se refleja en la diversidad de los

campos de aplicación para los que se han utilizado con éxito. La adaptabilidad permite que las conclusiones

obtenidas al afrontar un tipo de problemas particular puedan ser aprovechadas en otros contextos. Las pautas

proporcionadas por una metaheurística de búsqueda se aplican a descripciones asociadas a un problema, referidas

simplemente a los movimientos posibles para transformar una solución en otra y la forma de evaluarlas.

Para favorecer la utilidad de la metaheurística en la resolución de problemas reales, por ejemplo incorporándolo a

Sistemas de Apoyo a la Toma de Decisiones, son importantes las propiedades que propicien una interfase amigable.

La interactividad de los sistemas basados en las metaheurísticas favorece la colaboración con otros campos que

proporcionan conocimientos especificos de los problemas para mejorar el rendimiento de la metaheurística. La

posibilidad de ofrecer diversas soluciones de alta calidad, realmente diferentes, entre las que los decidores puedan

optar contribuye a diseminar su uso. La relativa autónoma de implementaciones de la metaheurística permite ganarse

la confianza de usuarios poco expertos en optimización o en los campos de aplicación.

Una característica que contribuye a divulgar una metaheurística es la novedad a la que va asociada, en cuanto a la

originalidad de los principios que la inspiran y a los campos de repercusión social a los que se aplica. Este aspecto se

revela, por ejemplo, en la inspiración en fenómenos naturales de los algoritmos genéticos y otras metaheurísticas, en

la aplicación a la demostración matemática de la metaheurística de entorno variable, y en la aplicación a la ingeniera

genética de algunas técnicas. Sin embargo, en los entornos científicos, tecnológicos, ingenieril o empresarial, el

aspecto mas relevante es el éxito asociado a la eficiencia y efectividad de los algoritmos derivados de cada

metaheurística en la resolución de problemas de gran tamaño o surgidos en aplicaciones reales.

Page 42: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

42

Capítulo 5

Un Algoritmo de Mejora Iterativa Estocástica para resolver el Problema de

Diseño de Mallas Curriculares

5.1 Solución Inicial.

La solución inicial se produce utilizando una heurística constructiva que parte de una malla curricular

(planificación) vacía. Esta solución factible se obtiene mediante la adición o eliminación adecuada de cursos

(trabajos) de la malla, basada en la disponibilidad de semestres (se trata de programar primero durante el proceso los

cursos sin prerrequisitos), sin tener en cuenta ninguna de las restricciones suaves, hasta que las restricciones duras se

cumplan (restricciones de precedencia). Esta heurística constructiva se comporta como un grado de saturación

heurístico (ver [Carter96]). La planificación se hace factible antes de iniciar los algoritmos.

5.2 Estructura del Vecindario.

Se implementaran las siguientes estructuras de vecindario para ser utilizadas en el algoritmo propuesto. Se

presentan en primer lugar, N1-N8 que ya han sido publicadas en [Abdullah05] (donde fueron aplicados con éxito al

UCTP), pero que se muestran nuevamente aquí (junto con tres estructuras extras para integridad y claridad):

− N1: Seleccione un curso al azar y encuentra otro curso al azar, que pueden intercambiar períodos.

− N2: Elije al azar sólo un curso y se desplaza a otro periodo posible de asignar.

− N3: Selecciona dos periodos al azar y simplemente intercambia todos los cursos de un periodo con todos los

demás cursos en el otro periodo.

− N4: Mover un periodo. Toma 2 periodos (seleccionados al azar), por ejemplo ti y tj (donde j > i) y los periodos

están ordenados t1, t2,...., tn. Toma todos los cursos en ti y los asigna a tj. Luego, tomar los cursos que se

encontraban en tj y los asigna a tj-1. A continuación, asigna los cursos en tj-1 a tj-2 y así sucesivamente hasta que

se asigne los cursos de ti-1 a ti y termine el proceso.

− N5: Mover el curso con la penalidad más alta, luego de una selección aleatoria del 10% de los cursos, a un

periodo factible de forma aleatoria.

− N6: Mover el curso con la penalidad más alta, luego de una selección aleatoria del 20% de los cursos, a un

periodo factible de forma aleatoria.

Page 43: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

43

− N7: Mover el curso con la penalidad más alta (es decir, el curso con el mayor número de violaciones a

restricciones suaves. Tomar el 10% de los cursos al azar. A continuación, seleccionar el curso con el más alto

costo de penalidad y asignarlo al periodo que genere la menor penalidad y que no crea infactibilidad.

− N8: Mover el curso con la penalidad más alta luego de una selección aleatoria del 20% de los cursos (como en

(N7)).

− N9: Seleccionar un curso al azar, elegir un periodo al azar (distinto al que esta asignado el curso seleccionado) y

luego aplicar la cadena de Kempe (descrita en [Thompson96]).

− N10: Este es el mismo que N9, pero aquí se selecciona el curso con la penalidad más alta luego de una selección

del 5% de los cursos al azar.

− N11: Como N10, pero con el 20% de los cursos.

A fin de mantener la factibilidad de la solución, la asignación de cursos en cada periodo de la malla

curricular (después de una operación de cadena de Kempe) no puede exceder el espacio (número de periodos)

disponible y, por supuesto, cada uno de los cursos debe ser programado en diferentes periodos.

5.3 El Algoritmo.

Para el acercamiento presentado en esta tesis, se aplica un conjunto de estructuras de vecindario como en la

subsección 5.2. Las restricciones duras nunca son violadas durante el proceso de asignación de cursos a la malla

curricular. La figura 5 muestra una vista esquemática general de esta propuesta. El algoritmo comienza con una

solución factible inicial generada por una heurística constructiva. Siendo K el número total de estructuras de

vecindario que se utilizarán en la búsqueda y f(Sol) es la medida de calidad de la solución Sol. Al principio, la mejor

solución, Solbest y la solución anterior, Solprev pueden ser Sol. En un bucle do-while cada vecindario i donde i ∈ (1,...,

K) se aplica a Sol para obtener TempSoli. Se identifica la mejor solución en TempSoli, y se establece como la nueva

solución de Sol*. Si Sol* es mejor que la mejor solución actual Solbest, entonces Sol* es aceptada. De lo contrario, se

aplica el criterio de aceptación de la exponencial de Monte Carlo (véase [Ayob03]). La Exponencial de Monte Carlo

se basa sólo en la calidad de la solución. Se acepta una peor solución con una cierta probabilidad. Por ejemplo, dadas

una solución antigua y una nueva denotadas por Sol y Sol*, respectivamente. La nueva solución Sol* será aceptada si

genera un número aleatorio entre [0,1] es inferior a expδ donde δ = f(Sol*)-f(Sol). El aumento del valor de

δ disminuirá la probabilidad de aceptar peores soluciones. Los detalles sobre la exponencial de Monte Carlo se

pueden encontrar en [Ayob03].

Page 44: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

44

Fig. 5. Seudo-código dfor the randomised iterative improvement algorithm for course timetabling

5.4 La Heurística Constructiva.

Se propone un enfoque inspirado en la programación con restricciones. Sin embargo, como se menciono en

la sección 3.5, cuando se construye una asignación el orden en que las variables son asignadas por la heurística de

ordenamiento es bastante importante, estas heurísticas han sido estudiadas extensamente.

Cada vez que se asigna un valor a una variable, se debe invocar algún algoritmo de propagación. Este algoritmo

acota los dominios de las variables que aún no son asignadas. Si el tamaño del dominio de una variable se hace 1,

entonces se completa la asignación parcial de la variable de decisión Xij (según el modelo descrito en la sección 4.1)

por la asignación de un valor a esta variable y el proceso de propagación continua. Al final del proceso de

propagación, si el dominio de una variable se hace vacío o si se descubre alguna inconsistencia, entonces el

algoritmo falla.

Como se señalo en la sección 3.3, se pueden considerar algoritmos de propagación diferentes, que aseguran niveles

de consistencia diferentes, por ejemplo, consistencia de nodo, consistencia de arco, o consistencia de caminos. En

Set the initial solution Sol by employing a constru ctive heuristic;

Calculate initial cost function f(Sol);

Set best solution Sol best ← Sol;

do while (not termination criteria)

for i = 1 to i= K where K is the total number of n eighbourhood structures

Apply neighbourhood structure on Sol, TempSoli;

Calculate cost function f(TempSoli);

Find the best solution among TempSoli where i ∈ {1,…,K} call new solution

Sol*;

if (f(Sol*) < f(Sol best ))

Sol ← Sol*;

Sol best ← Sol*;

else

δ = f(Sol*) ← f(Sol));

Generate RandNum, a random number in [0,1];

if (RandNum < e � ) then Sol ← Sol*;

end for

end do

Page 45: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

45

este proyecto se pretenden utilizar algoritmos de propagación de consistencias integrados en algún solver3.

5.5 Esquema de Solución Propuesto para BACP.

Para la resolución de la problemática que da origen a esta tesis de grado, se ha recurrido a un conjunto de

elementos computacionales que ayudan en el proceso de creación de soluciones para el BACP, algunos de estos

elementos se han diseñado siguiendo la idea original para el problema de Timetabling presentada en [Johnson06]. De

esta forma se tienen los módulos que se presentan a continuación.

• Un algoritmo de satisfacción de restricciones: Este algoritmo proporciona una correcta asignación de

cursos a eventos asignados a un determinado timeslot (semestre).

• Una búsqueda local estocástica: esta búsqueda local permite mejorar la calidad de las soluciones generadas

a lo largo del algoritmo, y ha sido descrita en la sección 5.3.

El esquema de la figura 6, presenta los módulos utilizados para generar una solución optimizada, haciendo uso de la

heurística constructiva para asignar eventos a determinados timeslot, el algoritmo de emparejamiento toma esta

asociación evento-timeslot y realiza una asignación de asignatura para cada semestre. Esto genera una solución

completa pero de baja calidad. Entonces pasa por un proceso de optimización a través de una búsqueda local, para

generar una solución factible de mejor calidad (óptima).

Fig. 6. Esquema de Solución Propuesto

3 Aquí se considera GECODEJ, interfaz Java para el desarrollo de soluciones basadas en GECODE (GEneric COnstraint Development Environment): conjunto de librerías C++ que provee un conjunto de algoritmos de propagación y estrategias de búsqueda para la resolución de problemas de satisfacción de restricciones.

Satisfacción de Restricciones Verifica restricciones duras

Búsqueda Local basada en Mejora Iterativa Estocástica

Mejora la calidad de las soluciones

Emparejamiento eventos-timeslot

Solución sin optimizar

Instancia

Heurística Constructiva Asociación de cada evento con un

determinado timeslot.

Solución

Page 46: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

46

5.5.1 Representación.

Uno de los elementos principales del esquema de resolución propuesto es la representación matricial de cada una de

las posibles soluciones al problema, de modo que una asignación de valores binarios en cada posición represente una

solución al problema. En el problema del BACP se requieren asignar cada uno de los │E│ eventos (cursos) a un

│T│ timeslots (períodos). En la mayoría de las representaciones directa la matriz de construcción tiene dimensiones

de E × T; dada esta matriz podemos entonces decidir si un curso será asignado a un período, colocando un 1, en caso

de que sea asignado, en la fila correspondiente al curso y la columna correspondiente al periodo, o un 0 en caso

contrario, la solución termina de ser construida cuando la matriz esta completa. La figura 7 y la figura 8 representan

esta matriz de construcción.

Fig. 7. Cada evento (curso) es asignado según una lista de timeslots (períodos), y para cada timeslot t’ ∈ T’, se elige un conjunto de eventos e ∈ E que se colocará en este timeslot.

Fig. 8. Matriz binaria, donde cada evento tiene que ser puesto exactamente una vez en un timeslot; ∑=

=n

jijx

1

1.

Page 47: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

47

La representación es bastante simple (la presentada en la figura 6), en donde se construye la solución “caminando” a

lo largo de una lista de eventos, eligiendo un timeslot para cada uno, no requiere la complicación adicional de

utilización de grafos y no parece tener ninguna desventajas obvia. De hecho, no se prohíbe la oportunidad de usar

una lista ordenada de eventos heuristicamente (asignar primero los cursos sin prerrequisitos). Realizando un cierto se

podría colocar en orden los eventos para poner los eventos de mayor dificultad primero en la malla, cuando todavía

hay muchos timeslots con pocos o ningún curso asignado. Por estas razones se considera que esta forma de

representar el problema es mejor para desarrollar una adecuada implementación del enfoque de solución propuesto.

Page 48: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

48

Capítulo 6

Diseño de Prototipo

6.1 Descripción del Prototipo.

La Pontificia Universidad Católica de Valparaíso, y en general cualquier institución de educación superior,

considera como parte importante de su reglamento una serie de artículos con el fin de mantener cierto nivel de

exigencia académica para sus estudiantes. Existe uno en particular que hace mención a la cantidad de créditos

promedio por semestre que un estudiante debe tener aprobados a partir de cierto periodo, esta exigencia esta descrita

en el artículo 28 del Reglamento General de Estudios. A continuación se presenta un extracto:

“El promedio acumulativo mínimo de créditos aprobados por semestre, exigible a contar del período

académico lectivo indicado en la letra e. del artículo 22º, corresponderá al cuociente entre el total de créditos del

Plan de Estudios y el número máximo de períodos académicos a que se refiere la letra d. del artículo 22º.”

Cuando un estudiante no cumple con la exigencia antes descrita incurre en causal de eliminación, sin embargo, el

estudiante puede solicitar eximición de dicho artículo. Una vez aprobada esta solicitud debe acudir al Jefe de

Docencia respectivo para que este “reprograme” su carga académica. Esta reprogramación consiste en reformular la

malla curricular considerando los cursos reprobados, además de los aún no cursados, de tal forma que se mantenga el

equilibrio de la malla, es decir, se mantenga el balanceo de la malla curricular propuesta según las restricciones

definidas en el capitulo 4.

A continuación se muestra un ejemplo de aplicación:

− Carrera: Ingeniería Ejecución en Informática

− Número de períodos que componen el currículo: 8

− Número máximo de períodos académicos: 13

− Total de créditos del plan de estudios: 145

En este caso el artículo 28 regirá a partir del quinto semestre (8/2 + 1), por lo tanto la cantidad de créditos exigidos a

esa fecha se calcula como:

1113

145

cos

Pr ===

AcadémiPeriodosMáximoNúmero

CreditosTotalexigiblescreditosdeomedio (6.1)

Esto implica que al quinto semestre el alumno tendrá que contar con 44 (11 × 4) créditos aprobados.

Page 49: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

49

6.1.1 Modificaciones al modelo clásico.

Para adecuar el modelo clásico a esta situación se deben incorporar ciertas modificaciones adicionales, que satisfacen

el objetivo de reformular una malla curricular y que potencian la utilidad del sistema final, sin embargo quedan fuera

del alcance de esta tesis:

Parámetros adicionales: Sean

i) s: Semestre que el estudiante actualmente cursa.

ii) =∀=∀

=casootroen

njmiaprobadosidohaicursoelsixij 0

,...,1 ,...1 1

Nueva Función Objetivo: { }ns ccMaxcMin ,..., =

6.2 Análisis Funcional.

El prototipo desarrollado utilizando tecnología Java (NetBeans IDE 6.01 y JDK 1.6) considera las siguientes

funcionalidades:

1. Crear Malla: en esta opción el usuario define las características de la malla curricular: (definidas en la

sección 2.1) número de cursos, número de períodos académicos, número de créditos de cada curso, carga

académica mínima y máxima permitida por periodo y cantidad mínima y máxima de cursos por periodo

(Ver Figura 8).

2. Visualizar Malla: esta opción permite visualizar la malla curricular a partir de un archivo plano (que puede

haber sido previamente generado mediante el Prototipo), durante este proceso de visualización se crea una

propuesta inicial de malla no balanceada, pero que satisface las restricciones descritas en la sección 2.1 (Ver

Figura 9).

6.2.1 Formato de Archivos de Entrada.

Los archivos planos utilizados para la implementación y evaluación de este primer prototipo corresponden a

benchmarks disponibles en la literatura4 [Gent99]. Estos consisten en archivos de texto con la siguiente información:

− Carga mínima permitida por periodo.

− Carga máxima permitida por periodo.

− Cantidad mínima de cursos por periodo

− Cantidad máxima de cursos por periodo

− Lista (arreglo) de cursos y sus siglas.

− Lista (arreglo) con la cantidad de créditos correspondientes a cada curso.

− Lista de prerrequisitos.

4 Ver www.csplib.org, Problema 30.

Page 50: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

50

Fig. 8. Interfaz de usuario opción “Crear Malla”

Por otra parte el Prototipo esta configurado para, mediante la opción Crear Malla, generar archivos de texto plano

con los antecedentes de las mallas curriculares creadas siguiendo el formato ya aceptado por la academia para este

tipo de experimentos. Así se pretende contribuir de alguna manera a la generación y distribución de conocimiento

respecto a la problemática que da origen a esta tesis de grado.

Page 51: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

51

Fig. 9. Visualización de malla curricular mediante la opción “Visualizar Malla”.

6.2.2 Arquitectura del Prototipo.

A continuación se describe cada uno de los paquetes y componentes que forman parte del prototipo de Sistema de

Balanceo de Mallas Curriculares:

� Java Swing: Librería Java para el desarrollo de interfaces gráficas de usuario, es una extensión de la

antigua AWT.

� VO (Visual Objects): Contiene la definición de los objetos visuales Malla, Semestre y Ramo utilizados

para construir una malla curricular.

� Interfaz: Contiene la definición de las clases que permiten la generación de las distintas interfaces

gráficas de usuario que posee el prototipo, entre ellas se encuentra el objeto VisualizadorMalla que

permite generar una imagen de la malla curricular generada por el prototipo.

� Util: Contiene la definición de las clases que permite la carga de datos de los archivos benchmark para

la validación del prototipo y la generación de nuevos archivos (en el mismo formato) a partir del

ingreso de datos por parte de usuarios reales.

� Gecode Nativo: GEneric COnstraint Development Environment, conjunto de librerías C++ que permite

el desarrollo de algoritmos para la resolución de problemas de satisfacción de restricciones.

� GecodeJ: Interfaz Java para el desarrollo de soluciones basadas en Gecode.

Page 52: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

52

� Logica: Conjunto de clases Java que permite la resolución del problema central de este proyecto, entre

ellas se encuentra la clase Options que permite la inicialización y parametrización del espacio inicial de

búsqueda.

� Clase SolverBACP: Clase Java, que se define a partir de la clase Space, sobre la cual se definen los

propagadores para la satisfacción de las restricciones asociadas al programa en cuestión.

Fig. 10. Modelo Conceptual del Prototipo.

6.3 Definición de propagadores y estrategia de enumeración en GecodeJ.

A continuación se muestra la especificación GecodeJ de los propagadores asociados a cada una de las

restricciones del BACP:

� Todos los cursos i deben ser asignados a un periodo j:

for(int i = 0; i < m; i++)

linear(this, X.row(i), IRT_EQ, 1);

Page 53: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

53

� El curso b tiene un curso a como prerrequisito:

for (int i = 0; i < m; ++i)

{

for (int r = 1; r < n; j++)

{

int Xar = Xij.get(prq[i][0],j).val();

rel(this, Xij.get(i, r), IRT_LQ, Xar);

}

}

� La carga académica del periodo j debe ser mayor o igual que el mínimo requerido:

for (int j = 0; j < n; j++)

linear(this, alfa, X.col(j), IRT_GQ, this.b eta);

� La carga académica del periodo j debe ser menor o igual que el máximo requerido:

for (int j = 0; j < n; j++)

linear(this, alfa, X.col(j), IRT_LQ, this.g ama);

� El número de cursos del periodo j debe ser mayor o igual que el mínimo requerido:

for (int j = 0; j < n; j++) {

linear(this, X.col(j), IRT_GQ, this.g);

� El número de cursos del periodo j debe ser menor o igual que el máximo requerido:

for (int j = 0; j < n; j++) {

linear(this, X.col(j), IRT_LQ, this.e);

� Estrategia de enumeración: Un Branching en Gecode determina la heurística utilizada para la exploración

del espacio durante la busqueda.

branch(this, X, INT_VAR_NONE, INT_VAL_MAX);

INT_VAR_NONE: Selecciona la variable a asignar según el orden en la cuál fueron definidas.

INT_VAL_MAX: Selecciona el valor máximo del dominio para asignar a la variable.

Fig. 11. Espacio (Gecode Space).

Page 54: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

54

6.4 Resultados Computacionales.

La figura 12, muestra una tabla resumen con los resultados obtenidos durante la evaluación del prototipo.

INDICADOR bacp8 bacp10 bacp12

m/n 46/8 42/10 66/12

Propagaciones 914 976 1365

Fallas 0 0 0

Soluciones (antes de encontrar la mejor) 7 2 1

Nº de backtracks 45 48 74

Fig. 12. Resumen de Resultados Computaciones.

Aquí se puede observar la efectividad del esquema propuesto en todas las instancias benchmark evaluadas. A medida

que el espacio de búsqueda crece también lo hace el número de propagaciones de resultantes de la aplicación de

cada restricción del problema de balanceo, lo mismo sucede con el número de vueltas atrás (backtraks) del

algoritmo. Un aspecto positivo del proceso es que durante la búsqueda nunca se generan fallas y el número de

soluciones visitadas antes de encontrar la mejor disminuye de acuerdo a mayor complejidad del problema.

6.4.1 Restricciones Suaves versus Restricciones Duras.

Se sabe que, en general, los problemas de planificación son NP-completo [Burke99], lo que significa que no se

conoce un método para hallar con garantías una solución óptima en un tiempo razonable. En un problema así, hay

restricciones duras (en este caso no puede asignarse el mismo curso a dos periodos a la vez) y restricciones suaves (si

es posible, no deben asignarse cursos a un mismo periodo si superan la cantidad máxima de créditos permitidos).

Luego en el caso del BACP, podemos clasificar las restricciones que modelan el problema en alguno de estos 2 tipos:

− Restricciones Duras (hard constraints): Son aquellas restricciones cuya satisfacción imprescindible, por ende no

puede ser violadas.

� Todos los cursos i deben ser asignados a un periodo j:

� El curso b tiene un curso a como prerrequisito:

− Restricciones Suaves (soft constraints): Son aquellas restricciones cuya satisfacción no es imprescindible, pero

afectan la calidad de una solución, por ende pueden ser violadas a cierto costo.

� El número de cursos del periodo j debe ser mayor o igual que el mínimo requerido:

� El número de cursos del periodo j debe ser menor o igual que el máximo requerido:

� La carga académica del periodo j debe ser mayor o igual que el mínimo requerido:

� La carga académica del periodo j debe ser menor o igual que el máximo requerido:

Page 55: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

55

A continuación se muestra un análisis del comportamiento del modelo propuesto para resolver el BACP respecto al

número de restricciones suaves a satisfacer durante la resolución del problema:

Primera Solución

0

200

400

600

800

1000

1200

0 1 2 3 4

n° de restricciones suaves

tiem

po (

seg.

)

bacp8 bacp10 bacp12

Fig. 13. Resultados Computaciones Primera Solución

En la figura 13, se puede observar como el esfuerzo computacional del esquema propuesto aumenta

exponencialmente a medida que se aumenta la cantidad de restricciones suaves que no se relajan (se exige su

satisfacción para considerar una asignación de valores como solución del problema). También se puede observar el

aumento del esfuerzo computacional a medida que se aumenta la complejidad del problema. Sin embargo se logra

encontrar una primera solución en todas las instancias benchmark evaluadas.

A continuación, en la figura 14, se muestra el comportamiento del esquema propuesto al explorar hasta encontrar la

mejor solución. Aquí el esquema no es capaz de encontrar soluciones satisfactorias en un tiempo computacional

razonable en las instancias bacp10, cuando se exige la satisfacción de todas las restricciones suaves (no hay

relajación), y bacp12 sólo se resuelve exigiendo la satisfacción de las 2 primeras restricciones suaves.

Finalmente en la figura 15, se aprecia como los rendimientos del esquema propuestos difieren notablemente si se

considera el esfuerzo computacional empleado para encontrar la primera solución a las instancias del problema

evaluadas en comparación a encontrar la mejor solución según los criterios de búsqueda definidos en el esquema.

Page 56: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

56

Mejor Solución

0

1000

2000

3000

4000

5000

6000

7000

8000

9000

10000

0 1 2 3 4

n° de restricciones suaves

tiem

po (

seg.

)

bacp8 bacp10 bacp12

Fig. 14. Resultados Computaciones Mejor Solución

Primera v/s Mejor

0

500

1000

1500

2000

2500

3000

3500

4000

4500

1 2 3 4 5

n° de restricciones suaves

tiem

po (

seg.

)

prom. primera prom. mejor

Fig. 15. Comparación Resultados Computacionales de la búsqueda de la primera v/s la mejor Solución

Page 57: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

57

Capítulo 7

Conclusiones y Trabajo Futuro

Al concluir este proyecto se ha presentado una propuesta y un prototipo hacia la resolución del problema de

diseño de mallas curriculares balanceadas basado en técnicas de programación con restricciones y un algoritmo

inspirado en búsqueda local estocástica. Además se han introducido los conceptos más importantes respecto a los

problemas de satisfacción de restricciones, y al problema de diseño de un currículo académico balanceado que da

origen al desarrollo de esta tesis de magíster, y técnicas de mejora iterativa estocástica. Aquí, se ha hecho especial

hincapié en el modelado y resolución mediante estrategias basadas en búsqueda local y propagación de restricciones

de tal manera de explotar rápidamente las zonas más prometedoras de los árboles de búsqueda de solución a este tipo

de problemas y por consiguiente optimizar los requisitos de memoria. También se ha presentado una descripción

general de los algoritmos basados en mejora iterativa estocástica cuyas características probabilistas se utilizan como

parte del esquema de resolución asociado al problema especificado.

Además, se ha definido el algoritmo de optimización basado en mejora iterativa estocástica para la resolución de

CSP’s y la función de evaluación de la calidad de las soluciones para utilizar esta como estrategia de salida ante la

presencia de óptimos locales, incluyendo el paso de actualización del espacio de búsqueda mediante propagación de

restricciones.

Los resultados computacionales obtenidos confirman la hipótesis sostenida en la formulación de esta tesis de

magíster, es decir, la utilización de un esquema de colaboración entre técnicas completas e incompletas de resolución

de problemas combinatorios difíciles puede resolver el problema de diseño de mallas curriculares balanceadas para

carreras universitarias. Sin embargo, también el análisis de resultados permite visualizar que el esquema de

resolución propuesto es susceptible a mejoras tanto en su diseño como quizás en su implementación final.

Se puede destacar aquí que como producto de software del trabajo realizado también se tiene un prototipo funcional

del sistema (tal como de describió en el capitulo 6) que permite el diseño de mallas curriculares balanceadas

mediante la utilización del esquema de resolución del problema de BACP propuesto.

Finalmente, como posibilidades de trabajo futuro, es clara la necesidad de probar la utilización de otras técnicas de

búsqueda local en el esquema de colaboración propuesto y evaluar su efectividad y eficiencia en la resolución del

problema original de BACP y su inclusión en el prototipo propuesto.

Page 58: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

58

REFERENCIAS

[Abdullah05] Abdullah S, Burke EK and McCollum B (2005) An investigation of variable neighbourhood

search for university course timetabling. Accepted for publication in The 2nd Multidisciplinary International

Conference on Scheduling: Theory and Applications (MISTA 2005).

[Adams88] Adams, J., Balas, E. and Zawack, D. The Shifting Bottleneck Procedure for Job Shop Scheduling,

Management Science 34 (3), pp. 391-401, 1988.

[Ayob03] Ayob M and Kendall G (2003) A monte carlo hyper-heuristic to optimise component placement

sequencing for multi head placement machine. Proc. Of the International Conference on Intelligent Technologies,

InTech’03, pp 132-141.

[Bagchi91] Bagchi, S., Uckum, S. Miyabe, Y. and Kawamura, K. Exploring Problem-Specific Recombination

Operators for Job Shop Scheduling, Proceedings of the 4 th International Conference on Genetic Algorithms , 1991.

[Bakker93] Bakker, R. R., Dikker, F., Tempelman, F. and Wognum, P. M. Diagnosing and Solving Over-

determined Constraint Satisfaction Problems, Proceedings of the 13th International Joint Conference on Artificial

Intelligence , pp. 276-281, 1993.

[Balas69] Balas, E. Machine Sequencing via Disjunctive Graphs: An Implicit Enumeration Algorithm, Operations

Research 17 (6), pp. 941-957, 1969.

[Barnes93] Barnes, J. W. and Laguna, M. A Tabu Search Experience in Production Scheduling, in Annals of

Operations Research 41, pp. 141-156, 1993.

[Barták01] R. Barták, Constraint Programming: In Pursuit of the Holy Grail, 2001.

[Beck04] J. C. Beck, P. Prosser, and R.Wallace, Variable Ordering Heuristics Show Promise, In Proc. of CP’2004,

volume 3258 of LNCS, pages 711–715, 2004.

[Boddy89] Boddy , M. and Dean, T. Solving Time Dependent Planning Problems, Proceedings of the 11 th

International Joint Conference on Artificial Intelligence , pp. 979-984, (989.

[Bruns93] Bruns, R. Direct Chromosome Representation and Advanced Genetic Operators for Production

Scheduling, Proceedings of the 5 th International Conference on Genetic Algorithms, 1993.

Page 59: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

59

[Burke99] Burke, E.K. y J.P. Newall. ``A multistage evolutionary algorithm for the timetable problem.'' IEEE

Transactions on Evolutionary Computation, vol.3, no.1, p.63-74 (abril de 1999).

[Canudas72] L.F. Canudas, Revista de la Educación Superior, Nº 2, 1972, Págs. 13-21.

[Canzi93] Canzi, U. and Guida, G. The Temporal Model of CRONOS -III: A Knowledge-based System for

Production Scheduling, in J. Dorn and K. A. Froeschl (eds.), Scheduling of Production Processes , Chichester: Ellis

Horwood, pp. 113-129, 1993.

[Carchrae04] T. Carchrae and J. C. Beck, Low-Knowledge Algorithm Control, In Proc. of AAAI 2004, pages 49–54,

2004.

[Carter96] Carter, M.W. and Laporte, G. (1996) Recent developments in practical examination timetabling. In

[3], pp 3-21.

[Castro01] C. Castro, S. Manzano, “Variable and Value Ordering When Solving Balanced Academic Curriculum

Problems”, Proceedings ERCIM WG on constraints, 2001.

[Cleveland89] Cleveland, G. A. and Smith, S. F. Using Genetic Algorithms to Schedule Flow Shop Releases,

Proceedings of the 3 rd International Conference on Genetic Algorithms, Morgan Kaufmann, pp. 160-169, 1989.

[Com88] Committee on the Next Decade of Operations Research (Condor). Operations Research: The Next Decade.

Operations Research 36, 1988.

[Davis85] Davis, L. Job Shop Scheduling with Genetic Algorithms, Proceedings of the 1 st International Conference

on Genetic Algorithms, Lawrence Erlbaum, 1985.

[deWerra89] de Werra, D. and Hertz, A. Tabu Search Techniques: A Tutorial and an Application to Neural

Networks, OR Spektrum 11, pp. 131-141, 1989.

[Dom92] Dorn, J. Temporal Reasoning in Sequence Graphs, Proceedings of the 10 th National Conference on

Artificial Intelligence (AAAI 92), pp. 735-740, 1992.

[Dom93b] Dorn, J. Supporting Scheduling with Temporal Logic, Proceedings of the IJCAI’93 Workshop on

Production Planning, Scheduling and Control, Chambéry, France.

Page 60: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

60

[Dom93a] Dorn, J, Kerr, R. M. and Thalhammer, G. Reactive Scheduling in a Fuzzy-Temporal Framework, in E.

Szelke and R. M. Kerr Knowledge-based Reactive Scheduling , IFIP Transactions B-15, North Holland, pp. 39-55,

1993.

[Dom94b] Dorn, J. Hybrid Temporal Reasoning, Proceedings of the 11 th International Conference on Artificial

Intelligence , Amsterdam, pp. 619-623, 1994

[Dom94d] Dorn, J. and Slany, W. A Flow Shop with Compatibility Constraints in a Steelmaking Plant, in Zweben

and Fox (eds.) Intelligent Scheduling, Morgan Kaufmann, 1994.

[Dom94c] Dorn, J., Girsch, M. Skele, G. and Slany, W. Comparison of Iterative Improvement Techniques for

Schedule Optimization, Proceedings of the 13th UK Planning Special Interest Group , Glasgow (also available as

CD-TR 94-61), 1994.

[Dom94a] Dorn, J. and Kerr, R. M. Co-operating Scheduling Systems Communicating Through Fuzzy Sets,

Preprints of the 2 nd IFAC/IFIP/IFORS-Workshop on Intelligent Manufacturing Systems (IMS’94), Vienna, pp. 367-

373, 1994.

[Dom94e] Dorn, J. and Girsch, M. Genetic Operators Based on Constraint Repair, Proceedings of the ECAI’94

Workshop on Applied Genetic and other Evolutionary Algorithms, 1994.

[Dom94b] Dorn, J. Interaction with a Scheduling System by Soft Constraints, AAAI SIGMAN Workshop , New

Orleans, 1994.

[Dueck90] Dueck, G. and Scheuer, T. Threshold Accepting: A General Purpose Optimization Algorithm Appearing

Superior to Simulated Annealing, Journal of Computational Physics 90, pp. 161-175, 1990.

[Dueck93] Dueck, G. New Optimization Heuristics, Journal of Computational Physics 104, pp. 86-92, 1993.

[Filipic93] Filipic, B. Enhancing Genetic Search to Schedule a Production Unit, in J. Dorn and K. A. Froeschl (eds.),

Scheduling of Production Processes , Chichester: Ellis Horwood, pp. 61-69, 1993.

[Flener01] P. Flener, B. Hnich, and Z. Kiziltan, A meta-heuristic for subset problems, In Proc. of PADL’2001,

volume 1990 of LNCS, pages 274–287. Springer, 2001.

Page 61: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

61

[Flener02] P. Flener, A.M. Frisch, B. Hnich, Z. Kiziltan, I. Miguel y T. Walsh, “Matrix Modelling: Exploiting

Common Patterns in Constraint Programming”, Proceedings of the International Workshop on Reformulating

Constraint Satisfaction Problems, 2002.

[Francois03] Francois Laburthe Filippo Focacci and Andrea Lodi. Local Search and Constraint Programming. 2003.

[French82] French, S. Sequencing and Scheduling - An Introduction to the Mathematics of the Job-Shop, Chichester:

Ellis Horwood, 1982.

[Fox87] Fox, M. S. Constraint-directed search: a case study of job-shop scheduling , Ph.D. Computer Science Dept.,

Carnegie-Mellon University, also published by Pitman, 1987.

[Fox91] Fox, B. R. and McMahon, M. B. Genetic Operators for Sequencing Problem, in G. J. E. Rawlings (ed.)

Foundations of Genetic Algorithms, pp. 284-300, 1991.

[Gebruers04] C. Gebruers, A. Guerri, B. Hnich, and M. Milano, Making choices using structure at the instance level

within a case based reasoning framework, In Proc. Of CPAIOR’2004, volume 3011 of LNCS, pages 380–386.

Springer, 2004.

[Gent99] I.P. Gent and T. Walsh. Csplib: a benchmark library for constraints. Technical report, Technical report

APES-09-1999, 1999. Available from http://csplib.cs.strath.ac.uk/. A shorter version appears in the Proceedings of

the 5th International Conference on Principles and Practices of Constraint Programming (CP-99).

[Glover89] Glover, F. Tabu Search-Part I, ORSA Journal on Computing 1 (3), pp. 190-206, 1989.

[Glover90] Glover, F. Tabu Search-Part II, ORSA Journal on Computing 2 (1), pp. 4-32, 1990.

[Glover93] Glover, F., Laguna, M., Taillard, E. and de Werra, D. (eds.) Tabu Search, Annals of Operations Research

41 (1), pp. 4-32, 1993.

[Hnich02] B. Hnich, Z. Kiziltan y T. Walsh, “Modelling a Balanced Academic Curriculum Problem”, Proceedings

CPAIOR 2002.

[Holland75] Holland, J. H. Adaptation in Natural and Artificial Systems, Ann Arbor: University of Michigan Press,

1975.

Page 62: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

62

[Johnson06] Johnson, F., Crawford, B. y Palma, W.: Hypercube FrameWork for ACO applied to timetabling. IFIP

AI 2006: pp. 237-246.

[Kanet] Kanet, J. J. and Sridharan, V. PROGENITOR: A Genetic Algorithm for Production Scheduling,

Wirtschaftsinformatik, pp. 332-336

[Khichane06] M. Khichane, P. Albert, C. Solnon, “Using ACO to guide a CP search”, 2006.

[Kirkpatrick83] Kirkpatrick, S. Gelatt, C.D. and Vecchi, M. P. Optimization by Simulated Annealing, Science 220,

pp. 671-680, 1983.

[Korf85] Korf, R.E. Depth-First Iterative-Deepening, Artificial Intelligence 27 (1), pp. 97-109, 1985.

[Laguna91] Laguna, M., Barnes, J. W. and Glover, F. Tabu Search Methods for a Single Machine Scheduling

Problem, Journal of International Manufacturing 2, pp. 63-73, 1991.

[Laguna92] Laguna, M. and Glover, F. Integrating Target Analysis and Tabu Search for Improved Scheduling

Systems, Expert Systems Applications , 1992.

[Lambert06] T. Lambert, C. Castro, E. Monfroy y F. Saubion, Solving the Balanced Academic Curriculum Problem

with an Hybridization of Genetic Algorithm and Constraint Propagation, volume 4029 of LNCS, pages 410–419,

Springer, 2006.

[List94] List, G. Heuristic Methods in a Flexible Assembly System, Preprints of the 2nd IFAC/IFIP/IFORS

Workshop on Intelligent Manufacturing Systems, Vienna, pp. 273 -276, 1994.

[Manyá03] F. Manyá y C. Gomes, “Solution Techniques for Constraint Satisfaction Problems”, 2003

[Meseguer89] Meseguer, P. Constraint Satisfaction Problems: An Overview, AICOM 2 (1) pp. 3-17, 1989.

[Minton90] Minton, S. Johnston, M. Philips, A. and Laird, P. Solving Large-Scale Constraint Satisfaction and

Scheduling Problems Using a Heuristic Repair Method, Proceedings of the 8 th National Conference on Artificial

Intelligence, pp. 17-24, 1990.

[Monfroy06] E. Monfroy, C. Castro y B. Crawford, “Using Local Search for Guiding Enumeration in Constraint

Solving”, 2006.

Page 63: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

63

[Monfroy07] E. Monfroy, C. Castro y B. Crawford, Adaptive Enumeration Strategies and Metabacktracks for

Constraint Solving, 2007.

[Nakakuki94] Nakakuki, Y. and Sadeh, N. Increasing the Efficiency of Simulated Annealing Search by Learning to

Recognize (Un)Promising Runs, Proceedings of the 12 th National Conference on Artificial Intelligence (AAAI’94),

1994.

[Nakano91] Nakano, R. Conventional Genetic Algorithm for Job Shop Problems, Proceedings of the 4th

International Conference on Genetic Algorithms, pp. 474-479, 1991.

[Nuijten93] Nuijten, W.P.M., Aarts, E. H. L., van Erp Taalman Kip, D. A. A. and van Hee, K. M. Randomized

Constraint Satisfaction for Job Shop Scheduling, Proceedings of the IJCAI’93 Workshop on Production Planning,

Scheduling and Control , pp. 251-262, 1993.

[Pesant96] Gilles Pesant and Michel Gendreau. A view of local search in constraint programming. In Principles and

Practice of Constraint Programming, pages 353-366, 1996.

[Pesant97] Gilles Pesant, Michel Gendreau, and Jean-Marc Rousseau. GENIUS-CP: a generic single-vehicle routing

algorithm. In Principles and Practice of Constraint Programming, pages 420-434, 1997.

[Prestwich00] S. Prestwich. A hybrid search architecture applied to hard random 3-sat and low-autocorrelation

binary sequences. In Proceedings of the Sixth International Conference on Principles and Practice of Constraint

Programming, Lecture Notes in Computer Science, volume 1894, pages 337-352. Springer-Verlag, 2000.

[Prestwich01b] Steve Prestwich. Trading completeness for scalability: Hybrid search for cliques and rulers. pages

159{174, 2001.

[Prestwich01a] Steven Prestwich. Local search and backtracking versus non-systematic backtracking. In Papers from

the AAAI 2001 Fall Symposium on Using Uncertainty Within Computation, pages 109{115, North Falmouth, Cape

Cod, MA, November 2-4 2001. The American Association for Articial Intelligence, The AAAI Press.

[Prosser93] Prosser, P. Scheduling as a Constraint Satisfaction Problem: Theory and Practice, in Scheduling of

Production Processes , J. Dorn and K. A. Froeschl (eds.), Chichester: Ellis Horwood, pp. 22-30, 1993.

[Roy64] Roy, S. and Sussman, B. Les problèmes d’ordonnancement avec contraintes disjonctives , Note DS No. 9

bis, SEMA, Paris, 1964.

Page 64: TesisV2 2 figzeus.inf.ucv.cl/~jrubio/docs/Tesis/TesisVF.pdf · 6.2.1 Formato de Archivos de Entrada ... tesis aborda el desarrollo, análisis y puesta a punto de un esquema de colaboración

64

[Schiex94] Thomas Schiex and Gerard Verfaillie. Nogood Recording fot Static and Dynamic Constraint Satisfaction

Problems. International Journal of Articial Intelligence Tools, 3(2):187{207, 1994.

[Solar06] M. Solar, “Balanceo de Carga Académica en el Diseño de un Currículum basado en Competencias”,

Revista Latinoamericana de Ciencias e Ingeniería, Nº 3 - Vol. II, 2006.

[Sadeh94] Sadeh, N. and Nakakuki, Y. Focused Simulated Annealing Search: An Application to Job Shop

Scheduling, Annals of Operations Research , 1994.

[Slany94] Slany, W. Scheduling as a fuzzy multiple criteria optimization problem, CD-TR 94/62, 1994.

[Solnon02] C. Solnon, “Ants can solve Constraint Satisfaction Problem”, 2002

[Syswerda91] Syswerda, G. Schedule Optimization Using Genetic Algorithms, in Davis (ed.) Handbook of Genetic

Algorithms , New York: Van Nostrand Reinhold, pp. 332-349, 1991.

[Thompson96] Thompson J and Dowsland K (1996) Various of simulated annealing for the examination timetabling

problem. Annals of Operational Research 63, pp 105-128.

[vanLaarhoven92] van Laarhoven, P. L. M., Aarts, and Lenstra, L. K. Job Shop Scheduling by Simulated Annealing,

Operations Research 40, pp. 113-125, 1992.

[Widmer89] Widmer, M. and Hertz, A. A New Heuristic Method for the Flow Shop Sequencing Problem, European

Journal on Operations Research 41, 1989.

[Zweben90] Zweben, M., Deale, M. and Gargan, R. Anytime Rescheduling, Proceedings of the Workshop on

Innovative Approaches to Planning, Scheduling and Control , Katia P. Sycara (ed.), pp. 251-262, 1990.

[Zweben92] Zweben, M., Davis, E., Daun, B. and Deale, M. J. Scheduling and Rescheduling with Iterative Repair,

IEEE Transactions on Systems, Man, and Cybernetics 23 (6) , pp. 1588-1596, 1992.