un algoritmo de bÚsqueda tabÚ para generar el...

190
Escuela Técnica Superior de Ingenieros Universidad de Sevilla UN ALGORITMO DE BU SQUEDA TABU PARA GENERAR EL CALENDARIO DE EXAMENES DE LA NUEVA FACULTAD DE CIENCIAS DE LA EDUCACION Autor: Emilio González Caro Tutor: Pablo Cortés Achedad Departamento de Organización Industrial y Gestión de Empresas

Upload: others

Post on 03-Oct-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

Escuela Técnica Superior de Ingenieros Universidad de Sevilla

UN ALGORITMO DE BU SQUEDA TABU PARA

GENERAR EL CALENDARIO DE

EXA MENES DE LA NUEVA FACULTAD DE CIENCIAS

DE LA EDUCACIO N

Autor: Emilio González Caro

Tutor: Pablo Cortés Achedad

Departamento de Organización Industrial y Gestión de Empresas

Page 2: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

1

I NDICE

1. OBJETO DEL PROYECTO ............................................................ Pág. 4

2. PROBLEMA GENÉRICO DE DISEÑO DE

CALENDARIOS .............................................................................. Pág. 7

2.1 Introducción al diseño de calendarios ......................................... Pág. 7

2.2 Diseño de calendarios de examen ............................................. Pág. 13

2.2.1 Antecedentes ................................................................ Pág. 13

2.2.2 Elementos del diseño de calendarios

de exámenes ................................................................. Pág. 14

2.2.3 Restricciones del diseño de calendarios

de exámenes ................................................................. Pág. 16

3. FACULTAD DE CIENCIAS DE LA EDUCACIÓN

DE LA UNIVERSIDAD DE SEVILLA ........................................ Pág. 22

3.1 Universidad de Sevilla .............................................................. Pág. 22

3.2 Espacio Europeo de Educación Superior .................................. Pág. 23

3.3 La Facultad de Ciencias de la Educación ................................. Pág. 25

3.4 Edificio de la Pirotecnia ............................................................ Pág. 27

3.5 Restricciones propias de la Facultad ......................................... Pág. 29

3.5.1 Restricciones duras ....................................................... Pág. 30

3.5.2 Restricciones suaves ..................................................... Pág. 35

4. MODELO MATEMÁTICO ........................................................... Pág. 37

4.1 Datos del modelo ...................................................................... Pág. 37

4.2 Variables del modelo ................................................................ Pág. 42

4.3 Parámetros del modelo.............................................................. Pág. 45

4.4 Restricciones del modelo .......................................................... Pág. 45

4.5 Función objetivo ....................................................................... Pág. 52

4.6 Modelo ...................................................................................... Pág. 52

5. SOLUCIÓN DEL MODELO MEDIANTE UN

ALGORITMO DE BÚSQUEDA TABÚ ....................................... Pág. 55

5.1 Introducción a la búsqueda tabú ............................................... Pág. 56

5.2 Fundamentos de la búsqueda tabú ............................................ Pág. 57

5.3 Memoria de corto plazo y sus elementos .................................. Pág. 59

5.3.1 Manejo de la memoria basada en recencia ................... Pág. 60

5.3.2 Niveles de aspiración ................................................... Pág. 60

5.3.3 Estrategia para la lista de candidatos ............................ Pág. 61

5.4 Memoria a largo plazo .............................................................. Pág. 63

Page 3: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

2

5.4.1 Estrategias de intensificación ....................................... Pág. 64

5.4.2 Estrategias de diversificación ....................................... Pág. 65

5.4.3 Combinación de las estrategias de intensificación y

diversificación .............................................................. Pág. 66

5.5 Oscilación estratégica ............................................................... Pág. 68

5.6 Reencadenamiento de trayectorias ............................................ Pág. 68

5.7 Características del algoritmo tabú empleado en

la resolución del modelo ........................................................... Pág. 69

5.7.1 Solución inicial ............................................................. Pág. 70

5.7.2 Atributos de las soluciones ........................................... Pág. 72

5.7.3 Exploración sensible .................................................... Pág. 73

5.7.4 Estrategias basadas en la memoria de corto

y largo plazo ................................................................. Pág. 76

6. DESCRIPCIÓN DEL SOFTWARE DEL ALGORITMO DE

BÚSQUEDA TABÚ ...................................................................... Pág. 80

6.1 El entorno Matlab ..................................................................... Pág. 80

6.2 Recursos informáticos empleados ............................................ Pág. 81

6.3 Archivos de entrada .................................................................. Pág. 81

6.3.1 Archivo de Datos .......................................................... Pág. 82

6.3.2 Archivo de Horarios ..................................................... Pág. 86

6.3.3 Archivo de Días de examen ......................................... Pág. 88

6.4 Archivo de salida ...................................................................... Pág. 88

6.5 Estructura del programa y diagramas de flujo .......................... Pág. 89

6.5.1 Función Interfaz ........................................................... Pág. 90

6.5.2 Función Main ............................................................... Pág. 91

6.5.3 Función Lectura_datos ................................................. Pág. 94

6.5.4 Función Solucion_inicial .............................................. Pág. 99

6.5.5 Función restricciones .................................................. Pág. 105

6.5.6 Función grupos_mover ............................................... Pág. 109

6.5.7 Función busqueda_tabu .............................................. Pág. 112

6.5.8 Función busqueda_tabu_cambio ................................ Pág. 119

6.5.9 Función restricciones_cambio_dia ............................. Pág. 125

6.5.10 Función búsqueda_tabu_cambio_dia ......................... Pág. 128

6.5.11 Función salida_datos .................................................. Pág. 135

7. ANÁLISIS DE RESULTADOS ................................................... Pág. 137

7.1 Calendario de exámenes ......................................................... Pág. 137

Page 4: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

3

7.2 Evolución de la mejor solución y del algoritmo en función

del número de iteraciones ....................................................... Pág. 155

7.3 Evolución de las restricciones suaves en función del

número de iteraciones ............................................................. Pág. 157

7.4 Evolución del tiempo de ejecución en función del número

de grupos de examen............................................................... Pág. 158

7.5 Evolución del tiempo de ejecución en función del

tamaño medio de los grupos ................................................... Pág. 159

8. CONCLUSIONES Y LÍNEAS FUTURAS ................................. Pág. 161

9. BIBLIOGRAFÍA .......................................................................... Pág. 164

10. ANEXO: MANUAL DE USUARIO ........................................... Pág. 165

10.1 Presentación.................................................................... Pág. 165

10.2 Instalación ...................................................................... Pág. 168

10.3 Introducción de datos ..................................................... Pág. 173

10.3.1 Archivo datos ............................................................ Pág. 174

10.3.2 Archivo Horarios ........................................................ Pág. 179

10.3.3 Archivo días de examen ............................................. Pág. 181

10.4 Ejecución del programa ................................................. Pág. 182

10.5 Archivo de salida ............................................................ Pág. 188

Page 5: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

4

1. OBJETO DEL PROYECTO

La Universidad española siempre ha ido adaptando su oferta

formativa a las nuevas necesidades del mercado laboral con el paso de los

tiempos.

El último hito importante en este proceso de adaptación continua ha

sido la entrada de la Universidad española en el Espacio Europeo de

Educación Superior (EEES), más conocido como plan Bolonia. Esta

adaptación al EEES ha traído consigo una profunda reforma de la

Universidad, ya que ha sido necesario cambiar los planes de estudios de

todas las titulaciones para homogeneizarlas con el resto de países europeos.

Sin embargo, esta adaptación no contempla tan solo un cambio de los

planes de estudios, sino que va más allá, cambiando incluso la forma de

impartir la enseñanza. En este aspecto, se encuentra el trasfondo de la

problemática sobre la que versa este proyecto: la adaptación al EEES

impone una enseñanza para grupos reducidos de alumnos.

Debido a esto, las aulas de la nueva Facultad de Ciencias de la

Educación, que se ha construido pensando en estas nuevas titulaciones, son

de un tamaño reducido. Este hecho dificulta muchísimo la creación de un

calendario de exámenes, sobre todo para las titulaciones antiguas que aún

no se han extinguido y en las que el número de alumnos es muy grande.

Este problema logístico surgido a raíz del plan Bolonia, se conoce en

la literatura como problema de diseño de calendarios. Por tanto, el objetivo

principal de este proyecto consiste en encontrar una solución factible a

dicho problema generando un calendario de exámenes factible con un

esfuerzo humano reducido.

Como se comprobará en los siguientes apartados, el problema de

diseño de calendarios no es ni mucho menos un problema estándar. Se trata

de un tipo de problema que posee un alto grado de personalización. Este

alto grado de personalización constituye un arma de doble filo: por un lado

se trata de un problema que aparece en multitud de ámbitos y por lo tanto

muy estudiado.

Page 6: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

5

Por otro lado, este alto grado de personalización hace que cada caso,

incluso dentro del mismo ámbito, sea distinto. Esto tiene como

consecuencia que cada caso particular necesita de una larga tarea de diseño

y adaptación para conseguir resultados satisfactorios.

La memoria se divide en dos grandes bloques. El primero de ellos

comienza dando una introducción acerca de la diseño de calendarios en

general. Tras esta introducción, se profundiza en el problema del diseño de

calendarios aplicado al ámbito académico que es donde se desarrolla el

proyecto.

Una vez introducido el concepto del problema de diseño de

calendarios, se pasa a realizar una breve reseña histórica de la Facultad de

Ciencias de la Educación que ayude a situar cronológicamente los pasos

que se han dado hasta la actualidad y que han generado el origen del

problema.

Tras esta introducción histórica, se continúa explicando las

particularidades de la Facultad de Ciencias de la Educación y lo que esto

implica en términos de restricciones. Con esta descripción de las

particularidades de la Facultad termina el primer bloque de la memoria.

La segunda parte contiene la descripción y solución del problema

planteado en el primer bloque. Para ello se comienza presentando el

modelo matemático utilizado para plasmar todas las restricciones

anteriormente explicadas. Además, se expondrá la función objetivo del

modelo y que deberá ser minimizada al final del proceso.

Para abordar la resolución computacional del modelo matemático

planteado, se hará uso de un algoritmo de búsqueda tabú adaptado a este

caso particular. Los principales conceptos de la búsqueda tabú así como las

particularidades del caso se explican en la sección siguiente al modelo

matemático.

Una vez explicado el problema y cómo se alcanzará una solución del

mismo, se presenta un apartado en el que se explica en detalle la lógica de

los archivos que componen el programa informático diseñado para

solucionar el problema.

Page 7: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

6

A continuación, se realizan varias pruebas con una convocatoria

típica para poder calibrar y comprender como funcionan ciertos parámetros

del programa.

Para terminar la memoria se plantean las conclusiones a las que se ha

llegado y las posibles líneas de trabajo futuras.

Page 8: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

7

2. PROBLEMA GENE RICO DE DISEN O DE CALENDARIOS

2.1 INTRODUCCIÓN AL DISEÑO DE CALENDARIOS

El problema de diseño de calendarios, también conocido por su

denominación en inglés Timetabling Problem (TTP), pertenece a un

conjunto más amplios de problemas denominados de Programación

(Scheduling). El objetivo principal de este problema consiste obtener un

calendario sujeto a una serie de restricciones.

Este problema que en primera instancia puede parecer sencillo,

constituye un importante problema de optimización combinatoria. Más

concretamente, este tipo de problemas se encuentran clasificados dentro de

los problemas con complejidad NP-Hard.

Formalmente, se puede definir el problema de varias formas entre las

que se pueden destacar las siguientes:

El Timetabling consiste en definir dónde y cuándo las personas y los

recursos deben estar en un instante dado.

El diseño de calendarios consiste en asignar un número de eventos,

cada uno con ciertas características, a un número limitado de

recursos sujeto a restricciones.

El problema de diseño de calendarios aparece en muchas

aplicaciones de áreas muy distintas presentándose distintas problemáticas

en cada una de ellas. A continuación, se detallarán brevemente algunos

ejemplos significativos de este tipo de problemas

DISEÑO DE CALENDARIOS EN EL ÁMBITO DEL TRANSPORTE

El ámbito del transporte constituye una de las áreas de mayor

aplicación de los problemas de diseño de calendarios abarcando desde el

transporte de personas al de mercancías. Además, en este sector este

aspecto resulta de vital importancia ya que una buena gestión del

Page 9: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

8

calendario puede ser la diferencia entre el éxito o el fracaso de una

compañía del sector.

A modo de ejemplo, se expondrá brevemente la problemática del

diseño de calendarios aplicada al sector ferroviario. Se utilizará un

problema simple aunque realista y bastante común. El problema se plantea

de la siguiente forma: se dispone de una línea ferroviaria que conecta dos

grandes estaciones. Entre dichas estaciones principales se encuentran

situadas diversas situaciones intermedias.

Se trata de un problema típico de transportes guiados. En estos

transportes los vehículos se desplazan a través de infraestructuras

especialmente diseñadas para ellos que, generalmente resulta costosas de

construir. Además estas infraestructuras disponen de una capacidad

limitada así como de unas características particulares.

En este caso la problemática salta a la vista: en un mismo tramo de

vía (conocido como cantón en el lenguaje ferroviario) no pueden coincidir

varios trenes. De hacerlo podrían colisionar y provocar un gran desastre.

Por este motivo, una buena organización del tráfico ferroviario es vital ya

que, debido a la inversión en infraestructura, no parece razonable utilizar la

vía por debajo de sus posibilidades.

Además de este problema, existen otras muchas restricciones

operacionales que hacen que la generación de un calendario correcto no sea

un problema trivial.

Dentro de estas restricciones operacionales, se pueden destacar

algunas de las más importantes como son:

Los trenes deben parar un tiempo mínimo en algunas estaciones.

Los trenes no pueden adelantar dentro de la propia vía, aunque sí

mientras alguno está detenido en una estación.

Debe existir un lapso de tiempo entre dos llegadas o salidas

consecutivas.

También se pueden exigir ventanas de tiempo concretas para un tren

de tal forma que un tren no llegue a una estación después de cierta

hora o que otro no salga de una estación antes de una determinada

Page 10: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

9

Estas restricciones son tan solo algunas de las más significativas

aunque pueden existir muchas más.

Siguiendo con el modelo y puesto que se trata de un problema de

optimización, será necesario definir una función objetivo que deberá ser

maximizada o minimizada siempre respetando las restricciones del modelo.

Una función objetivo típica podría ser la de maximizar los

beneficios. Estos beneficios dependerán de múltiples factores como los

tipos de trenes, la hora en la que viajen, etc. Por ejemplo no ofrecerá el

mismo beneficio un tren de cercanías que circule en hora punta de la

mañana hacia una gran ciudad que si ese mismo trayecto se realiza de

madrugada.

Con respecto a las variables que se suelen utilizar, hay que destacar

que existen varias formas de enfocar el problema. Sin embargo, una de las

opciones más extendidas consiste en discretizar el tiempo en slots y la vía

en bloques o cantones. De esta forma se puede definir la variable binaria

que toma el valor 1 cuando el tren j se encuentra en el cantón b en el

instante s.

Por último, se hará una reflexión acerca del enfoque de resolución de

este tipo de problemas. La resolución de estos problemas se encuentra

claramente influenciada por el gran tamaño que pueden alcanzar estos

problemas. Tan solo hay que pensar en una red de transporte ferroviario de

una ciudad mediana. En estos núcleos se gestionan cientos de operaciones

diarias. Este número de operaciones unido a la gran cantidad de kilómetros

de vías y a lo prolongado de su funcionamiento hacen que el problema

adquiera una dimensión gigantesca.

Además se trata de un problema combinatorio que hace que las

combinaciones aumenten exponencialmente. Todo esto hace que sea

prácticamente inviable una resolución analítica y exacta de este tipo de

problemas. Por lo tanto, en la práctica se usan meta-heurísticas de

resolución como pueden ser los algoritmos genéticos o la búsqueda tabú

que tratan de encontrar una solución lo más aproximada posible a la óptima

con un consumo de recursos moderado.

Page 11: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

10

PROGRAMACIÓN DE ACTIVIDADES EN EL ÁMBITO DE LA

INDUSTRIA

El diseño de calendarios también se aplica al ámbito industrial. Un

ejemplo bastante estudiado es la programación de actividades en un taller.

El problema se puede describir de la siguiente forma: se dispone de

un número de máquinas o centros de trabajo que deben procesar un número

de encargos. Cada encargo consta de una serie de operaciones que deben

ser efectuadas cada una en su máquina correspondiente y en un orden

establecido.

La solución al problema consiste en asignar operaciones en los

distintos intervalos de tiempo para conseguir realizar todos los encargos del

taller. Obviamente, una buena planificación de estas operaciones puede

significar un gran aumento de la eficiencia del taller ya que, si el taller

posee unas dimensiones considerables, una asignación arbitraria puede

ocasionar un gran descontrol que originaría pérdidas económicas.

Dependiendo del problema particular en el que nos encontremos, el

modelo deberá incluir más o menos restricciones. Una gran parte de estas

restricciones son específicas de cada problema, aunque existen algunas que

son comunes a la gran mayoría de estos problemas:

El orden de las operaciones en cada trabajo debe ser respetado.

No se pueden realizar dos o más tareas de forma simultánea en la

misma máquina.

El modelado de las variables del problema puede variar según el

autor del modelo. Sin embargo, una notación bastante lógica es aquella que

utiliza una variable binaria para identificar qué tarea i se encuentra

asignada a cada máquina f en cada instante t:

Como función objetivo de este problema se pueden tomar varias. Sin

embargo, una de las funciones más comunes que se suelen utilizar es

aquella que busca minimizar el tiempo de todas las operaciones. Con esta

función se busca alcanzar la máxima rentabilidad en el taller.

Con respecto a la resolución de este problema existen varios

enfoques. En 1963 fue formulado este problema para un tamaño de 10x10

(10 máquinas y 10 encargos) por Muth y Thompson. Sin embargo, no fue

Page 12: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

11

hasta 1989 cuando pudo ser resuelto exactamente. Esta solución fue

obtenida mediante un algoritmo de branch and bound que requirió 5 horas

de cómputo informático.

Posteriormente, en 1990, estos algoritmos fueron mejorados por

Applegate et al. [1] y este hecho unido al avance de la informática han

hecho que el problema haya llegado a ser resuelto en tan solo 372

segundos.

Otros métodos más sofisticados fueron apareciendo con el tiempo.

Entre ellos destaca el conocido en inglés como Shifting Bottleneck basadas

en la identificación del cuello de botella.

Sin embargo, los métodos exactos presentan el problema de que

necesitan de muchísimo tiempo para resolverse a medida que los problemas

toman un tamaño mayor. Debido a esto, nacieron métodos de búsqueda que

aproximan la solución del problema en un tiempo razonable.

Estos métodos son los mismos que se utilizaron para resolver el

problema de los trenes: la búsqueda tabú y los algoritmos genéticos.

DISEÑO DE CALENDARIOS EN EL ÁMBITO ACADÉMICO

Por último, se verá de forma genérica como se aplican las técnicas de

diseño de calendarios al ámbito académico. En esta ocasión se hará un

mayor hincapié que en los casos anteriores ya que el objeto del proyecto se

desarrolla en este ámbito.

En el ámbito académico se pueden distinguir varios procesos

distintos de diseño de calendarios:

Diseño de calendarios de exámenes (ETT, Exam Timetabling)

Diseño de calendarios para materias (CTT, Course Timetabling), que

su vez se subdivide en:

o Calendarización por materias basado en inscripciones (EB-

CTT, Enrollment-Based Course Timetabling)

o Diseño de calendarios por materias basado en Plan de Estudios

(CB-CTT, Curriculum-Based Course Timetabling)

Page 13: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

12

Esta división de problemas en el ámbito académico resulta bastante

teórica y, en la práctica, la división entre el diseño de calendarios de

exámenes y el diseño de calendarios para materias es bastante difusa. El

motivo de esta escasa diferenciación es que, generalmente, la generación de

un buen calendario para las materias facilita la generación de un buen

calendario de exámenes y viceversa. Por ello, en grandes instituciones,

donde el diseño de calendarios es un tema de vital importancia, suelen

abordar ambos problemas de forma paralela con el fin de mejorar el

resultado obtenido.

El modelado de estos problemas, se puede realizar mediante una

utilización de una variable binaria . Esta variable de tres subíndices

toma un valor unitario cuando el grupo i está asignado al aula j en el

instante t. Dependiendo del tipo de problema, ya sea de diseño de

calendarios de examen o de diseño de calendarios de clase, esa asignación

será para realizar un examen o para recibir una clase.

Con respecto a las restricciones del problema, éstas son numerosas y

variadas ya que dependen mucho del problema en cuestión. Aun así hay

algunas restricciones que son comunes a estos problemas de ámbito

académico:

Un alumno no puede realizar más de un examen o recibir más de una

clase a la vez.

Un aula no se puede usar para dos fines distintos (clases y exámenes,

dos o más exámenes…) a la vez.

Generalmente un alumno no puede realizar más de un examen en el

mismo día. Esta condición resulta difícil de controlar muchas veces

ya que muchos alumnos se encuentran matriculados en distintos

cursos. Normalmente esta restricción se impone pensando que los

alumnos se encuentran matriculados de tan solo un curso. De esta

forma se evita que haya más de una asignatura de un mismo curso en

el mismo día.

Con respecto a la función objetivo se puede decir que en la práctica

ésta depende de los gustos de la institución para la que se esté diseñando el

calendario. De esta forma, es posible que algunas instituciones prefieran,

por ejemplo, minimizar los exámenes celebrados en sábado mientras que

otras prefieran un objetivo distinto. Sin embargo, hay una función bastante

Page 14: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

13

utilizada en el ámbito académico. Esta función es aquella que busca

minimizar el número de conflictos del calendario, entendiendo como

conflicto un incumplimiento de una restricción.

2.2 DISEÑO DE CALENDARIOS DE EXÁMENES

2.2.1 ANTECEDENTES

El problema de diseño de calendarios para exámenes es precisamente

el problema que intenta resolver este proyecto. Por este motivo, en este

apartado se explicará con mayor profundidad dicho problema.

Como se ha indicado en el apartado anterior, el objetivo clásico de

este problema consiste en reducir al mínimo el número de conflictos que se

presentan en la configuración del calendario.

Estos conflictos van desde los más generales, como el hecho de que

un aula no se puede utilizar para realizar dos exámenes al mismo tiempo,

hasta otros muchísimo más específicos de la institución o del personal en

cuestión como puede ser que ciertos profesores solo puedan celebrar

exámenes durante la mañana.

Además, la dificultad de este problema aumenta considerablemente

en instituciones como universidades, ya que es necesario tener en cuenta

aspectos que en otras instituciones serían impensable.

Un ejemplo de estos detalles puede aparecer en campus grandes en

los que se celebren exámenes con dos partes. En estas situaciones, lo

normal es que ambas partes se celebren de forma consecutivas. Sin

embargo, en algunas ocasiones estos exámenes deben celebrarse en aulas

distintas si por ejemplo en alguna de ellas se necesita un equipo

informático y en la otra no. En estas situaciones, es importante asegurarse

de que las aulas no se encuentren demasiado lejanas entre sí ya que de lo

contrario es posible que los alumnos no dispongan de tiempo necesario

para cambiar de aula.

Page 15: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

14

2.2.2 ELEMENTOS DEL DISEÑO DE UN CALENDARIO DE EXÁMENES

En este primer apartado, se comenzará haciendo referencia y

explicando los principales elementos de los que consta un problema de

diseño de calendario de exámenes.

PERIODO DE EXÁMENES

El periodo de exámenes es uno de los elementos principales del

problema. Se trata de un periodo temporal que indica las fechas en las que

se pueden celebrar los exámenes.

En la mayoría de las universidades durante el periodo de realización

de los exámenes queda suspendida la impartición de clases para permitir a

los alumnos realizar los exámenes con mayor comodidad. Sin embargo,

esto no siempre tiene porque ser así y, por ejemplo, en algunas

convocatorias como la Extraordinaria de Diciembre es costumbre

compaginar la realización de exámenes con la impartición de clases.

Para definir el periodo de exámenes será necesario proporcionar una

fecha de inicio y una fecha de fin o, en su defecto, la duración del mismo.

AULAS

Las aulas son el lugar físico donde se celebran los exámenes. Se trata

por tanto de un recurso limitado y que depende del edificio donde se

celebren los exámenes. Además, se trata de un recurso que generalmente no

varía con el paso de los años debido a que su creación o eliminación

requiere de reformas.

Para definir las aulas de las que se disponen, se necesitan de dos

aspectos fundamentales.

El primero de ellos es la capacidad de las aulas. La capacidad de las

aulas no es siempre constante y depende del uso que se haga de ella.

Cuando un aula está siendo usada para la impartición de clases, su

capacidad suele venir dada por el número de asientos disponibles para los

Page 16: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

15

alumnos. Sin embargo, cuando se utiliza un aula para la celebración de un

examen su capacidad final es menor. Esto es debido a que durante la

realización de los exámenes es necesario separar a los alumnos entre sí para

evitar, en la medida de lo posible, que éstos puedan copiar de los

compañeros. De esta forma, la capacidad del aula dependerá del número de

sitios que sea necesario dejar vacíos para evitar que los alumnos se copien.

Otro aspecto a tener en cuenta es la disponibilidad de las aulas.

Como se ha visto durante la definición de los periodos de examen, en

ciertas ocasiones éstos coinciden con la impartición de clases. En estos

casos, resulta imprescindible disponer de un calendario de ocupación de las

aulas que indique cuando un aula se encuentra disponible y cuando no.

Además, incluso si durante el periodo de exámenes no se impartieran

clases, es necesario tener en cuenta este aspecto ya que un aula puede

encontrarse no disponible por otros motivos como mantenimiento,

celebración de seminarios, etc.

EXÁMENES

Los exámenes constituyen el elemento principal este problema.

Durante una convocatoria tradicional se realizan multitud de exámenes y

cada uno de ellos posee unas características distintas a los anteriores.

De forma genérica, es necesario suponer que cada examen tendrá sus

propias características de duración, número de alumnos matriculados,

máximo número de aulas en que se puede dividir, necesidades específicas

de aulas o talleres, preferencia por ciertos periodos de tiempo…y un sin fin

de propiedades que dependerán en gran parte de la institución para la que

se esté resolviendo el problema.

Por lo tanto, se hace necesario dedicar un tiempo a especificar todas

las peculiaridades que se van a tener en cuenta en la resolución del

problema y crear un listado con todas ellas para poderlas incluir en el

modelo.

Page 17: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

16

PREFERENCIAS DE DISTRIBUCIÓN

Además de todas las características individuales de cada examen,

también existen normalmente unas prioridades de distribución de los

exámenes. Estas preferencias de distribución suelen ser muy variadas y

dependen principalmente de la institución para la que se esté resolviendo el

problema. Sin embargo, la gran mayoría de ellas se puede encajar en uno

de los siguientes grupos:

Misma aula: exámenes que deben o es recomendable que se celebren

en una misma aula.

Diferentes aulas: exámenes que deben o es recomendable que se

celebren en distintas aulas.

Mismo periodo: exámenes que deben o es recomendable que se

celebren en un mismo periodo.

Diferentes periodos: exámenes que deben o es recomendable que se

celebren en distintos periodos.

Orden de exámenes: exámenes que deben o es recomendable que se

celebren en un orden temporal determinado

2.2.3 RESTRICCIONES DEL DISEÑO DE CALENDARIOS DE

EXÁMENES

En este apartado se detallaran las restricciones más comunes del

problema de diseño de calendarios de exámenes. En primer lugar, hay que

explicar que existen dos tipos de restricciones distintas: las restricciones

duras (Hard Constraints) y restricciones suaves (Soft Constraints).

El primer tipo de restricciones, las restricciones duras, está formado

por un conjunto de condiciones que deben cumplirse obligatoriamente. Es

decir, cualquier solución del problema debe cumplir este grupo de

condiciones para poderse considerar una solución aceptable.

El segundo tipo de restricciones, las restricciones suaves, está

compuesto por un conjunto de restricciones que, pese a que es

recomendable cumplirlas, no resulta estrictamente necesario cumplirlas.

Estas restricciones pueden relajarse para hacer admisible una solución que

Page 18: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

17

las incumpla. Es decir, que las restricciones suaves son un conjunto de

recomendaciones que hacen que la solución obtenida sea mejor, pero cuyo

incumplimiento no invalida el calendario obtenido.

Se puede decir por tanto que las restricciones suaves representan un

indicador de calidad de la solución obtenida. Es decir, cuanto menor sea el

número de restricciones suaves que infrinjamos mayor será la calidad de la

solución.

Una vez descritas los tipos de restricciones que componen el

problema, se pasará a hacer referencia a algunas de las restricciones más

comunes. Como ya se ha dicho anteriormente, el conjunto de las

restricciones de un problema depende en un alto grado de cada caso

particular. Sin embargo, existen una serie de restricciones que se pueden

considerar comunes a la práctica totalidad de los problemas de diseño de

calendarios de exámenes.

En un primer lugar, se indicarán cuáles son las restricciones duras

más comunes a la mayoría de los problemas. Se trata sobre todo de

restricciones que imponen limitaciones físicas que, obviamente deben

cumplirse de forma obligatoria:

Un examen solo puede ser asignado en un aula en todos los periodos.

Un aula no puede ser utilizada en los periodos en los que no está

disponible.

Un examen debe ser asignado en un aula (o en una serie de aulas) de

tal forma que la capacidad de todas ellas sea igual o mayor que el

número de estudiantes que deben realizar el examen. Por supuesto, la

capacidad a la que se hace referencia es la capacidad de las aulas

durante los exámenes.

No se debe exceder el número máximo de aulas que se pueden

asignar a un único examen.

Los exámenes deben celebrarse dentro del periodo especificado para

ello.

Además de estas restricciones, también habría que añadir en este

bloque aquellas restricciones que contemplen las preferencias de

distribución de los distintos exámenes.

Page 19: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

18

Una vez se han comprobado las principales restricciones duras, se

procederá a reflexionar sobre las restricciones blandas. Como se ha

indicado, este tipo de restricciones no son de obligado cumplimiento y

responden a características deseables aunque no imprescindibles. Por este

motivo, este grupo de restricciones está compuesto normalmente por

aspectos secundarios alejados de las limitaciones físicas que muchas veces

se imponen en las restricciones duras.

Existen numerosas restricciones blandas por lo que se clasificaran en

distintos grupos, dentro de los cuales se hará referencia a las más

relevantes.

CONFLICTOS CON LOS ESTUDIANTES

Dentro de este grupo de restricciones se encuentran todas aquellas

preferencias que normalmente son solicitadas por los estudiantes.

Normalmente estas condiciones se ven reflejadas en los convenios que los

colectivos estudiantiles establecen con la dirección del centro.

Dependiendo de las características de dicho convenio, algunas de estas

restricciones pueden incluso convertirse en restricciones duras.

La primera de las restricciones de este grupo aconseja no celebrar en

un mismo día más de un examen del mismo curso. Como norma general, en

la mayoría de los centros educativos de nivel superior se evita en la medida

de lo posible esta situación ya que suele ocasionar las protestas del

alumnado.

Sin embargo, esta restricción se suele clasificar como suave ya que

en algunas convocatorias (como la Extraordinaria de Diciembre) puede ser

necesario incumplir esta restricción. En algunas universidades, la

normativa académica establece que la Convocatoria de Diciembre se

celebre en un corto periodo de tiempo.

Este hecho, combinado con la gran cantidad de asignaturas que

poseen algunos planes de estudio, hacen que sea físicamente imposible

situar una asignatura en cada día puesto llega a haber más asignaturas que

días. Además, hay que tener en cuenta que en las Convocatorias

Extraordinarias el alumnado no suele concurrir a todos los exámenes del

Page 20: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

19

curso y por tanto se suele dar prioridad a la restricción de la duración del

periodo de exámenes.

La segunda de las restricciones se puede considerar una extensión de

la anterior. Esta restricción recomienda que los exámenes de un mismo

curso dispongan de días de descanso entre ellos. Realmente, esta restricción

regula el mismo suceso que la anterior: la aglomeración de exámenes. Sin

embargo, cuando los exámenes se encuentran en distintos días, aunque sean

consecutivos, suelen ser considerados correctos por la normativa

académica.

A pesar de esto, parece obvio que si por ejemplo se disponen de 15

días para realizar 5 exámenes no resulta conveniente celebrarlos todos en

los 5 o 7 primeros días y dejar el resto libre. Por este motivo, se incluye

esta restricción que intenta evitar situaciones como la anteriormente

descrita.

Por último, existe una restricción que se suele implementar en

campus universitarios grandes. Esta restricción a la que se hace referencia

recomienda no alejar demasiado entre sí partes de un mismo examen.

Como ya se comentó anteriormente, cuando durante un examen es

necesario cambiar de aula, no parece lógico poner estas aulas muy alejadas

en el campus si existen otras alternativas. En este sentido, y para permitir al

alumno cambiar cómodamente de aula, se suele recomendar que la

distancia entre las mismas no sea superior a 600 metros.

CONFLICTOS CON LOS PROFESORES

Dentro de este grupo de restricciones se encuentran todas aquellas

que hacen referencia a las preferencias de los profesores de cara a la

realización de exámenes. Obviamente, al tratarse de restricciones suaves,

hacen referencia a preferencias y no a imposiciones.

La primera de las restricciones tiene en cuenta la cantidad de

exámenes a la que un profesor asiste un mismo día. Generalmente, se suele

imponer que cada profesor asista a un máximo de un examen cada día. Sin

embargo, se trata de una restricción muy variable ya que depende de los

gustos de los profesores. Por ejemplo, puede haber profesores que estén

dispuestos a tener más de un examen en el mismo día si de esta forma ven

Page 21: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

20

reducido su periodo de exámenes. Por lo tanto, e independientemente de la

preferencia personal, lo que sí está claro es que es un aspecto a tener en

cuenta.

La segunda de las restricciones de este grupo pretende dar solución a

un problema que ya ha sido resuelto para los alumnos. En esta restricción

se limita la distancia entre aulas de exámenes consecutivos. La idea es la

misma que con los alumnos: dar tiempo suficiente al profesor para que

cambie de un aula a otra en exámenes de varias partes. Al igual que en caso

del alumnado la distancia máxima que se suele imponer es de 600 metros.

OTROS CRITERIOS

En este grupo se añadirán todas aquellas restricciones que no

pertenecen ni a los alumnos ni a los profesores.

En primer lugar, se encuentra una restricción que valora la idoneidad

de los periodos de examen. Esta restricción pretende tener en cuenta que

ciertos exámenes pueden resultar más aconsejable celebrarlos en unos

periodos que en otros. Para medir la idoneidad de cada examen por los

periodos se suele asignar una penalización a cada periodo. Por ejemplo se

podría asignar la siguiente escala de penalizaciones:

Muy desaconsejable: 4.

Desaconsejable: 1.

Indiferente: 0.

Recomendable: -1.

Muy recomendable: -4.

Otro de los aspectos que normalmente debe ser tenido en cuenta en el

diseño de calendarios es la predilección de ciertos exámenes por algunas

aulas. Esta restricción no es más que la extensión de la idea anterior a las

distintas aulas de un edificio. Por ejemplo, cuando una facultad dispone de

2 o 3 edificios puede resultar interesante agrupar todos los exámenes en 1 o

2 edificios. De esta forma, el edificio sobrante se puede mantener cerrado

con el consiguiente ahorro económico que esto supone. En esta restricción

se suele adoptar un sistema de penalizaciones similar al de la restricción

anterior.

Page 22: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

21

La tercera restricción de este grupo tiene en cuenta la asignación de

varias aulas para un mismo examen. Generalmente, cuando un grupo de

examen es numeroso, se suelen asignar varias aulas para repartir a los

alumnos entre ellas. Sin embargo, esta división del examen no debe ser

numerosa ya que esto genera numerosos problemas de organización. Uno

de los más importantes es la limitación de profesores ya que si asignan

muchas aulas cabe la posibilidad de que no halla profesores disponibles

para atenderlas todas. Por este motivo, se suele intentar que el número de

aulas asignadas sea el mínimo necesario.

La cuarta restricción de este grupo está muy relacionada con la

limitación de distancia impuesta a exámenes contiguos tanto de alumnos

como de profesores. Esta restricción limita la distancia entre las distintas

aulas de un mismo examen. La idea es que las distintas aulas de un mismo

examen se encuentren lo más cerca posible para facilitar la comunicación

entre los profesores ante cualquier imprevisto que pudiera surgir durante la

realización del examen.

La quinta y última restricción de este grupo recomienda no asignar a

aulas grandes exámenes demasiado pequeños. El motivo de esta restricción

es intentar utilizar al máximo la capacidad de las aulas ya que este recurso

es bastante escaso generalmente. Si no se incluyera esta restricción se

correría el riesgo de que se asignasen exámenes muy pequeños en aulas

muy grandes, lo que podría provocar una división innecesaria de grupos

más grandes para poderlo asignar en aulas más pequeñas. Para conseguir

este objetivo, la estrategia que se suele seguir es penalizar la

sobrecapacidad de las aulas.

Page 23: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

22

3. FACULTAD DE CIENCIAS DE LA EDUCACIO N DE LA UNIVERSIDAD DE SEVILLA

3.1 UNIVERSIDAD DE SEVILLA

La Facultad de Ciencias de la Educación es un centro de estudios

perteneciente a la Universidad de Sevilla. La historia de esta Universidad

se remonta al año 1256, aunque no fue hasta el siglo XVI cuando recibió el

rango universitario. En 1472, Maese Rodrigo Fernández de Santaella

edificó el Colegio-Universidad Santa María de Jesús, consiguiéndose la

Real Cédula de fundación el 22 de febrero de 1502, y la bula papal el 12 de

julio de 1505. En esta bula, le fue permitida la enseñanza de Artes, Lógica,

Filosofía, Teología Derecho Canónico y Civil y Medicina.

El objetivo del centro fue la formación de doce colegiales pobres, y

la Capilla quedó bajo la advocación de Santa María de Jesús. Entre los

privilegios, se les autorizó a conferir los grados de bachiller, licenciado y

doctor en Teología, Derecho Canónico, Derecho Civil y el de maestro en

Artes. Además se le concedió todas las gracias y prerrogativas otorgadas

“in genere” a los demás Estudios Generales de España.

El fundador jamás llamó al Colegio “Universidad”, aunque estuviese

en su pensamiento. El 16 de julio de 1508, otra bula papal habló ya de

“Studium Generale”, por la que se le permitió la enseñanza de las Artes,

Lógica, Filosofía, Teología, Derecho Canónico y Civil y Medicina.

Desde esos primeros momentos fundacionales, hasta la actualidad, la

Universidad de Sevilla ha sufrido una constante evolución, influenciada por

los acontecimientos contextuales en los que se ha desarrollado. Cabe

destacar en esa evolución que como institución, y al igual que el resto de

las universidades españolas, sufrió una decadencia durante el siglo XVII.

No fue hasta la Ilustración, con las reformas del ministro Pablo de Olavide,

cuando la Universidad volvió a su esplendor.

Page 24: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

23

A comienzos del siglo XIX la Universidad hispalense se extendió

absorbiendo las Universidades menores de Baeza y Osuna. El gran logro

del siglo XX fue la consagración de la autonomía universitaria, conseguida

la Ley de Reforma Universitaria (LRU) aprobada en 1983. En la década

siguiente la Universidad de Sevilla se caracterizó por la masificación,

siendo también significativo el aumento del profesorado, así como en los

Departamentos, que en 1994 superaron el centenar.

Por último, dos circunstancias han caracterizado, en líneas generales,

a la Universidad de Sevilla a lo largo del siglo XXI. La primera es la

aprobación de una nueva Ley Orgánica de Universidades (LOU), que ha

conllevado cambios sustanciales en la organización de la Universidad

(nuevos Estatutos verificados el 5 de julio de 2003), así como en el

Profesorado, entre otros. La segunda, se refiere a las trasformaciones que se

están produciendo producto de la creación del Espacio Europeo de

Educación Superior (EEES).

3.2 ESPACIO EUROPEO DE EDUCACIÓN SUPERIOR

La adaptación al Espacio Europeo de Educación Superior ha sido

uno de los mayores cambios que ha tenido que afrontar la Universidad en

los últimos años. Además, esta adaptación al EEES ha sido una de las

causas principales que ha originado el problema al que da solución este

proyecto. Para entender este hecho, se hará un repaso histórico de lo que

esta adaptación ha supuesto en la Universidad.

El Espacio Europeo de Educación Superior es un ámbito de

organización educativo iniciado en 1999 con la Declaración de Bolonia.

Debido a esto, es conocido popularmente como Plan Bolonia. El objetivo

del EEES es armonizar los distintos sistemas educativos de la Unión

Europea y proporcionar una forma eficaz de intercambio entre todos los

estudiantes, así como dotar de una dimensión y de una agilidad sin

precedentes al proceso de cambio emprendido por las universidades

europeas.

Page 25: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

24

En España las bases de este profundo cambio se sentaron son la Ley

Orgánica 4/2007, de 12 de abril, por la que se modifica la Ley Orgánica

6/2001, de 21 de diciembre.

Sin embargo, el paso definitivo se da el 26 de octubre de 2007

cuando el Consejo de Ministros aprueba el Real Decreto de Ordenación de

Enseñanzas Universitarias oficiales. En este Real Decreto se fija una nueva

estructura de títulos en tres niveles, grado, máster y doctorado, en

consonancia con el EEES.

Además de esta modificación, la ley incluye los principales

objetivos, derechos y obligaciones. Los aspectos más importantes son:

Se permite a las propias universidades crear y proponer, de acuerdo

con las reglas establecidas, las enseñanzas y títulos que hayan de

impartir y expedir, sin sujeción a la existencia de un catálogo previo

establecido por el gobierno.

Adoptar una serie de medidas que, además de ser compatibles con el

EEES, flexibilicen la organización de las enseñanzas universitarias,

promoviendo la diversificación curricular y permitiendo que las

universidades aprovechen su capacidad de innovación, sus fortalezas

y sus oportunidades.

Impulsar un cambio en las metodologías docentes, que centra el

objetivo en el proceso de aprendizaje del estudiante, en un contexto

que se extiende ahora a lo largo de su vida. En este objetivo, entre

otros aspectos, pretende que la enseñanza universitaria se realice en

grupos de alumnos reducidos. Para conseguir esto, es necesario

invertir muchos recursos en la adecuación de las aulas actuales que

fueron concebidas para la impartición de clases a grupos numerosos.

En el diseño de un título se deberán reflejar más elementos que la

mera descripción de los contenidos formativos, tales como

justificación, objetivos, admisión de estudiantes, planificación,

recursos, resultados previstos y sistema de garantía de calidad.

Se proponen los créditos europeos (ECTS) como unidad de medida

que refleja los resultados de aprendizaje y volumen de trabajo

realizado por el estudiante.

En el supuesto de títulos que habiliten para el acceso o ejercicio de

actividades profesionales, el Gobierno establecerá las condiciones a

Page 26: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

25

las que deberán adecuarse los planes de estudios para garantizar un

adecuado ejercicio profesional.

Se garantizan los derechos académicos adquiridos por los estudiantes

y los titulados conforme a sistemas educativos anteriores.

Se potencia la apertura hacia los estudiantes procedente de otros

países del EEES.

Se fomenta la movilidad de los estudiantes, tanto dentro de Europa,

como de otras partes del mundo.

Se establecen vínculos adecuados entre el EEES y el Espacio

Europeo de Investigación.

3.3 LA FACULTAD DE CIENCIAS DE LA EDUCACIÓN

La Facultad de Ciencias de la Educación no se crea como se conoce

en la actualidad hasta el año 1993, cuando la antigua Escuela de Magisterio

pasó a ser la Facultad de Ciencias de la Educación. A pesar de esto, ya en

el año 1975 se comienzan a dar los primeros pasos para su creación

definitiva posteriormente. Para ello, la Universidad de Sevilla ordena crear

las enseñanzas de Filosofía y Ciencias de la Educación aunque formando

parte de la Facultad de Filosofía y Letras. Posteriormente, en 1978, la

Facultad de Filosofía y Letras desapareció dando paso a tres Facultades: la

de Geografía e Historia, la de Filología y la de Filosofía y Ciencias de la

Educación.

Una vez creada la Facultad de Ciencias de la Educación en 1993 esta

se situó en un edificio de la avenida de Ciudad Jardín. En esta primera sede

estuvo ubicada la facultad hasta el curso académico 2010/2011. En este año

la Facultad cambia de sede, trasladándose a un nuevo edificio situado en el

campus de la Pirotecnia del que se darán más detalles en el siguiente

apartado.

El número de titulaciones impartidas en la Facultad de Ciencias de la

Educación ha ido variando desde su fundación a la actualidad. En estos

momentos en la Facultad conviven titulaciones de distinta naturaleza. Por

un lado, conviven las nuevas titulaciones adaptadas al EEES, conducentes a

títulos de grados, con las antiguas titulaciones que conducen a la obtención

Page 27: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

26

de diplomaturas y licenciaturas. Por otro lado, también existen estudios

denominados de Tercer Ciclo, conducentes al título de Doctor, y otros

estudios de Postgrado.

A continuación se expone el listado de titulaciones que se imparten

en la actualidad en la Facultad:

1. Grado en pedagogía.

2. Grado en Educación Infantil.

3. Grado en Educación Primaria.

4. Grado en Ciencias de la Actividad Física y del Deporte.

5. Máster en Actividad Física y Calidad de Vida de Personas Adultas y

Mayores.

6. Máster en Dirección, Evaluación y Calidad de Instituciones de

Formación.

7. Licenciatura de Pedagogía (A extinguir).

8. Licenciatura de Psicopedagogía.

9. Licenciatura de Ciencias de la Actividad Física y del Deporte.

10. Maestro Educación Especial (A extinguir).

11. Maestro Educación Física (A extinguir).

12. Maestro Educación Infantil (A extinguir).

13. Maestro Educación Musical (A extinguir).

14. Maestro Educación Primaria (A extinguir).

15. Maestro Lengua Extranjera (A extinguir).

Todas estas titulaciones suman más de 5.200 alumnos, equivalente

aproximadamente al 16% del total de alumnos de la Universidad de Sevilla.

Para atender a su docencia, el centro cuenta más de 300 profesores y

profesoras que imparten docencia en 21 departamentos de la Universidad

de Sevilla.

Page 28: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

27

3.4 EDIFICIO DE LA PIROTECNIA

El nuevo edificio de la Facultad de Ciencias de la Educación

comenzó a gestarse en 1996, debido a la necesidad de poseer un único

edificio que acogiera a todas las titulaciones. Finalmente la nueva facultad

se construyó en la calle Pirotecnia, al lado de la también joven Facultad de

Derecho, completando así el campus que componen Derecho, Trabajo

Social, Económicas y Psicología. Este nuevo campus se ha convertido así

en uno de los mayores de Andalucía, con más de 22.000 estudiantes.

Posee una extensión total de 25.422 metros cuadrados distribuidos en

cinco plantas, con dos inmuebles conectados entre sí a través de pasarelas.

De estas cinco plantas, la primera está destinada a la biblioteca y otros

servicios como el salón de actos, con capacidad para 220 plazas, y un

gimnasio de casi 1.000 metros cuadrados repartidos en dos niveles, uno de

ellos con aula. Las plantas segunda y tercera acogen las aulas y las dos

últimas están habilitadas para despachos.

Además, el edificio dispone un amplio patio interior, situado entre

los dos inmuebles del edificio, que se encuentra decorado con plantas como

palmeras y pinos japoneses. También dispone de bancos repartidos por toda

su extensión que invitan a la convivencia.

Las aulas de este nuevo edificio se encuentran pensadas para la

impartición de clases a grupos reducidos de alumnos, tal y como indica el

EEES. Existen dos tipos de espacios repartidos en la nueva construcción.

Las aulas más grandes se sitúan en las esquinas de cada planta y pueden

albergar hasta 120 alumnos. Otras aulas son de menor dimensión y están

destinadas al modelo de estudio implantado. Se busca un espacio para no

más de 70 alumnos y con sillas y mesas móviles para fomentar la

participación y el trabajo en grupo.

Todas las aulas están equipadas audiovisualmente con proyector y un

ordenador integrado en la mesa del profesor, así como numerosos enchufes

para que los alumnos puedan conectar sus ordenadores portátiles. Hay un

total de 40 aulas, contando talleres y otros espacios.

El nuevo edificio dispone también de 3 aulas de informática, con 50

ordenadores por sala, así como servicio de wifi en todo el recinto. La

Page 29: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

28

biblioteca dispone de 374 puestos de estudio, 7 cabinas para consultar

documentos audiovisuales, 4 salas de grupo para 8 personas y un ala de

investigadores.

Además, la configuración del edificio, con numerosos y amplios

ventanales, proporciona una iluminación natural pensada para ahorrar

electricidad.

El proyecto del edificio es obra de los arquitectos sevillanos Cruz y

Ortiz, que ya ha diseñado varios edificios emblemáticos de la ciudad de

Sevilla como son la Estación de Santa Justa, el Estadio de la Cartuja o la

biblioteca pública Infanta Elena.

La obra fue adjudicada el 7 de julio de 2006 con un presupuesto

inicial de 22 millones de euros y un plazo de ejecución de 22 millones de

euros. El edificio fue cofinanciado mediante el Plan Plurianual de

Inversiones de la Consejería de Innovación, Ciencia y Empresa de la Junta

y por la enajenación del antiguo edificio de la Facultad situado en la

Avenida de Ciudad Jardín.

Finalmente, las obras se iniciaron en 2007 a cargo Cruz y Ortiz. Sin

embargo, durante la construcción surgieron divergencias entre el estudio

sevillano y la constructora debido principalmente a la rebaja de la calidad

de los materiales empleados por la constructora con el objetivo de abaratar

costes. Debido a estos recortes Cruz y Ortiz decidió emitir un comunicado

en el que indicaba que no se hacían responsables de las posibles faltas de

calidad constructiva y que desde octubre de 2008 dejaban de estar al frente

de la dirección de obras.

Tras la emisión del comunicado, la Universidad de Sevilla decidió

hacerles un contrato de asesoramiento estético con autoridad limitada. Este

contrato, según el estudio de arquitectos, resulto insuficiente y tan solo

permitió mejorar algunos asuntos parciales del exterior y del patio interior.

Aunque la entrada en funcionamiento del edificio estaba prevista

inicialmente para el curso 2008/2009, no fue hasta el curso académico

2010/2011 cuando se comienza a impartir docencia en el centro. Estos

retrasos han aumentado considerablemente el presupuesto inicial

elevándolo finalmente a unos 31 millones de euros.

Page 30: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

29

3.5 RESTRICCIONES PROPIAS DE LA FACULTAD

En este apartado se explicarán cuales son todas las restricciones del

problema, incluidas las particulares y específicas de esta casuística. Una de

las particularidades que ha ocasionado mayores problemas ha sido la

adaptación de las aulas al EEES.

Esta adaptación al EEES ha tenido como consecuencia que la

capacidad de las aulas del nuevo edificio sea en su mayoría reducida. De

hecho, la capacidad del aula mayor es de tan solo 130 alumnos. Esta

situación se ve agravada por dos factores muy importantes:

La instauración de las nuevas titulaciones adaptadas al EEES no es

inmediata, sino que se realiza curso a curso. Para ello las antiguas

titulaciones comienzan a extinguirse desde primero hasta el último

curso, eliminando la docencia. A medida que los antiguos planes se

van extinguiendo se van incorporando los nuevos planes de estudio.

Esta situación hace que durante esta etapa transitoria existan

titulaciones antiguas, que poseen una gran cantidad de alumnos por

clases, que deben realizar exámenes en aulas que no están pensadas

para esta cantidad de alumnos.

Además, hay que tener en cuenta que la capacidad de las aulas para

la realización de los exámenes no es la misma que durante la

impartición de clases. Durante la celebración de los exámenes es

necesario separar a los alumnos, dejando un sitio vacío entre dos

alumnos consecutivos. De esta forma, la capacidad del aula se reduce

a la mitad durante la celebración de los exámenes.

Esta nueva situación, ha complicado mucho la elaboración del

calendario de la facultad, que antes se realizaba a mano, siendo de esta

forma la situación que ha dado pie a la elaboración de este proyecto.

Page 31: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

30

3.5.1 RESTRICCIONES DURAS

Los calendarios de exámenes de la Facultad de Ciencias de la

Educación se encuentran condicionados por dos aspectos principalmente.

El primero de ellos es que deben cumplir una normativa recogida en

los estatutos de los estudiantes. Esta normativa fija unas reglas que deben

cumplirse ya que contemplan los derechos de los estudiantes.

Generalmente, estas reglan limitan la cercanía entre exámenes, los horarios,

etc.

El segundo aspecto a tener en cuenta son las limitaciones físicas y

logísticas del centro. Por ejemplo, debido a las limitaciones de profesores,

no se deben asignar más de tres clases distintas a un mismo examen. A

continuación se expondrán las restricciones duras particulares

GRUPOS DE CLASE DE UNA MISMA ASIGNATURA

En general, el número de alumnos matriculados en una asignatura es

mayor que las aulas del edificio. Debido a esto las asignaturas se suelen

dividir en varios grupos de clase que se reparten tanto en turnos de mañana

como de tarde. Estos distintos grupos de clases, deben realizar el examen

en el mismo día.

MÁXIMO NÚMERO DE AULAS ASIGNADAS A UN GRUPO DE

CLASE

Como ya se ha visto en apartados anteriores, la capacidad de las

aulas no es la misma durante la realización de exámenes que durante la

impartición de clases. Esta situación, unida a la limitada disponibilidad de

profesores, hace necesario que en algunas ocasiones sea necesario asignar

varias aulas a un mismo grupo de clase. Además, la hora de examen de

cada grupo de clase es única, es decir, que el examen se realiza

simultáneamente en todas las divisiones que se hagan del grupo. Debido a

esto, el número máximo de aulas, o divisiones, que se pueden hacer de un

grupo son 3.

Page 32: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

31

TURNOS DE CLASE

Como se ha dicho anteriormente, las asignaturas se dividen en

grupos que imparten docencia tanto de mañana como de tarde. Es necesario

respetar este turno a la hora de asignar el examen, es decir, los grupos de

mañana deben realizar el examen durante la mañana y los de tarde por la

tarde. Aunque esta es la regla general, existen dos excepciones en las que

se permite ignorar esta regla:

Las asignaturas a extinguir: son las asignaturas que pertenecen a

titulaciones de planes antiguos que se están extinguiendo. En estas

asignaturas no se imparten clases por lo que la hora del examen es

libre, es decir, se pueden poner tanto durante la mañana como en la

tarde.

Los sábados: según la normativa de la Facultad, los sábados por la

tarde no se pueden celebrar exámenes. Debido a esto, los grupos de

tarde que realicen el examen en sábado deberán realizar el examen

por la mañana.

INCOMPATIBILIDAD ENTRE ASIGNATURAS

Otro aspecto a tener en cuenta es la incompatibilidad entre algunas

asignaturas para realizar el examen el mismo día. Como norma general, no

se puede celebrar más de un examen de un mismo curso en el mismo día,

sea de la tipología sea. Sin embargo, esta regla también posee una

excepción:

En caso de que resulte imposible colocar todas las asignaturas en

días distintos, se permite como máximo poner una asignatura común

y una optativa el mismo día. Sin embargo, estas asignaturas no

pueden ir en el mismo turno, es decir, deben ir una por la mañana y

otra por la tarde.

Page 33: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

32

TAMAÑO DE LOS GRUPOS DE EXAMEN

Por último, y como se vio en las restricciones genéricas del problema

de diseño de calendarios, es necesario que la capacidad de las aulas

asignadas al examen sea superior al tamaño del grupo. Sin embargo,

establecer el tamaño de los grupos de examen no resulta una cuestión

trivial.

Es necesario tener en cuenta varios aspectos que dificultan esta tarea.

En primer lugar, hay que tener en cuenta que el calendario de exámenes

debe estar publicado antes de comenzar el curso académico, fecha en la que

los alumnos aún no han realizado la matrícula. Además, hay que recordar

que en las segundas convocatorias no concurren todos los alumnos a

examen ya que muchos de ellos aprueban en la primera convocatoria.

Debido a esto, se repasarán los aspectos más importantes a tener en

cuenta a la hora de conocer el número de alumnos en cada convocatoria:

Convocatoria Extraordinaria de Diciembre

Se trata de los primeros exámenes del curso académico ya que se

realiza en Diciembre. Como su propio nombre indica, se trata de una

convocatoria extraordinaria lo que significa que no concurren a examen

todos los alumnos matriculados. En concreto, solo se pueden presentar a

ella los alumnos que ya hayan cursado la asignatura en años anteriores.

Por lo tanto, para calcular el tamaño máximo del grupo de examen,

habrá que acudir a los resultados académicos del año anterior y comprobar

el número de alumnos que deberán volver a matricularse de la asignatura.

Exámenes de Enero-Febrero

Durante estos meses se realizan los exámenes de primera

convocatoria de las asignaturas cuatrimestrales del primer cuatrimestre.

Para calcular el tamaño de los grupos de exámenes habrá que tener en

cuenta tanto el número de matriculados como los resultados de la

Convocatoria Extraordinaria de Diciembre. Ambos resultados son

desconocidos por lo que será necesario estimarlos. Para ello, habrá que

Page 34: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

33

utilizar estadísticas de años anteriores y obtener así una primera

aproximación del número de alumnos.

A pesar de que probablemente los alumnos se comportarán de forma

similar todos los años, habrá que añadir siempre un coeficiente de

seguridad para evitar que el tamaño final sobrepase a la capacidad

asignada.

Exámenes de Junio-Julio

En estos meses confluyen varias convocatorias. Para comenzar se

realizan la primera convocatoria de las asignaturas cuatrimestrales del

segundo cuatrimestre. Además, se celebran la primera convocatoria de las

asignaturas anuales y la segunda convocatoria de las asignaturas

cuatrimestrales del primer cuatrimestre.

Para todas ellas, habrá que tener en cuenta el número de alumnos

aprobados en convocatorias anteriores, ya sean Ordinarias o

Extraordinarias. Por lo tanto, el problema de la incertidumbre del número

de alumnos es mayor aun que en la convocatoria de Enero-Febrero ya que

hay más convocatorias de por medio. Para contrarrestar esto, resulta

conveniente introducir un coeficiente de seguridad mayor en la

convocatoria anterior.

Exámenes de Septiembre

En esta fecha se realizan los exámenes de la segunda convocatoria de

las asignaturas cuatrimestrales del segundo cuatrimestre y de las

asignaturas anuales. Esta convocatoria resulta la más complicada de

estimar debido a que todos los exámenes son ya de segunda convocatoria y

por tanto se debe tener más cuidado con la estimación introduciendo un

mayor coeficiente.

Page 35: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

34

Disponibilidad de aulas

Además de las dificultades para calcular el tamaño de los grupos de

examen, hay que añadir el cálculo de la capacidad disponible en el edificio

albergar alumnos. Para este cálculo habrá que tener en cuenta los siguientes

aspectos:

El número de aulas disponibles: el edificio dispone de un total de 42

aulas. Sin embargo, muchas de ellas son seminarios o aulas

específicas (como las aulas de informática, plástica y música) y no

están disponibles para la realización de los exámenes generales.

Debido a esto, el número de aulas disponibles se reduce finalmente a

31 aulas.

El número de exámenes que se pueden asignar a un aula: para evitar

posibles conflictos entre exámenes consecutivos, el número máximo

de exámenes que se puede asignar a un aula en un mismo día es de

cuatro. Estos cuatro huecos o slot se distribuyen de la siguiente

forma:

o Slot 1: comprende desde las 8:00 h hasta las 11:00 h.

o Slot 2: comprende desde las 11:00 h hasta las 14:00 h.

o Slot 3: comprende desde las 15:00 h hasta las 18:00 h.

o Slot 4: comprende desde las 18:00 h hasta las 21:00 h.

La ocupación de las aulas: debido a las particularidades de las

titulaciones que se imparten, muchas de las cuales poseen prácticas

en institutos y colegios, los calendarios de exámenes de los distintos

cursos varían. De esta forma, los cursos en los que se realizan

prácticas comienzan sus periodos de exámenes mientras el resto aún

tienen clases. Esto tiene como consecuencia que no todos los slot se

encuentren disponibles siempre, reduciendo así la capacidad aún

más. Este hecho tiene su máximo exponente en la convocatoria de

diciembre. En esta convocatoria las clases de todas las titulaciones

tienen que convivir con los exámenes que, además deben celebrarse

en un pequeño espacio de tiempo.

Page 36: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

35

3.5.2 RESTRICCIONES SUAVES

En este apartado se hará referencia a todas las restricciones suaves

que se han implementado en el modelo. Como se vio en apartados

anteriores, existen multitud de restricciones suaves que se pueden tener en

cuenta, sin embargo, no se han implementado todas ya que muchas de ellas

carecían de interés para este caso particular.

Las restricciones suaves que se han implementado en el modelo son

las siguientes.

SOBRECAPACIDAD DE LAS AULAS

Esta ha sido la primera restricción en tenerse en cuenta, ya que, el

principal problema del nuevo edificio es precisamente esta limitación de

capacidad. Es por ello que se ha considerado vital evitar, en la medida de lo

posible, un gran sobrecapacidad.

Para ello se ha seguido una estrategia de penalización. Esta

penalización se ha tenido en cuenta en tres etapas:

: si el grupo de examen pertenece a este

rango se le asigna una penalización de 2 unidades.

: si el grupo de examen pertenece a

este rango se le asigna una penalización de 1 unidad.

: si el grupo de examen pertenece a este

rango no se le asigna ninguna penalización.

CERCANÍA ENTRE EXÁMENES DEL MISMO CURSO

Se evitará en la medida de lo posible que dos exámenes del mismo

curso se asignen en días consecutivos. Esta medida busca evitar las quejas

del alumnado por sobrecarga de exámenes en un periodo de tiempo corto.

Para implementar esta restricción se han tenido en cuenta dos tramos:

Page 37: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

36

Dos exámenes del mismo curso situados en días correlativos: en el

caso de que el algoritmo asigne esta solución se penalizará con 1

unidad.

Dos exámenes del mismo curso situados en días no correlativos: en

esta ocasión no se asignará ninguna penalización a la asignatura.

OCUPACIÓN PREFERENTE DE LOS SLOTS COMPLETAMENTE

LIBRES

Como se ha visto, los slot para colocar los exámenes son de 3 horas.

Sin embargo, la duración de los exámenes es bastante inferior y, realmente,

bastaría con tener dos horas consecutivas libres para poder realizar el

examen. Puesto que las clases resultan ser de una hora, en la práctica

resulta que disponemos de dos tipos de slots:

Slots de tres horas: son slots que disponen de sus tres horas

completamente libres.

Slots de dos horas: son slots que pese a tener una hora ocupada,

disponen de dos horas consecutivas libres y, por tanto, pueden ser

usados para exámenes.

Esta restricción intenta que, en la medida de lo posible, se utilicen los

huecos de 3 horas ya que permiten un mayor margen al examinador y

disminuye los posibles conflictos. No se ha incluido en las restricciones

duras porque, tras un estudio de los horarios de clase, se ha llegado a la

conclusión que en la práctica sería imposible situar todos los exámenes en

huecos de 3 horas debido a la escasez de estos.

Es decir, se entenderá que un slot está disponible cuando tenga al

menos dos horas consecutivas libres. Con esto la restricción queda dividida

de la siguiente forma:

Si un examen se encuentra asignado en un slot de dos horas se le

penalizará con dos unidades.

Si un examen se encuentra asignado en un slot de tres horas no se le

penalizará.

Page 38: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

37

4. MODELO MATEMA TICO

Una vez conocido en profundidad el problema, se pasará a explicar el

modelo matemático utilizado para la resolución del mismo.

4.1 DATOS DEL MODELO

Para la resolución del problema se precisa de varios datos:

: son los exámenes que se celebraran en la convocatoria para la que

se esté resolviendo el problema. En este grupo no se incluyen las

asignaturas que precisen de un aula especial ya que éstas serán

asignadas manualmente.

: representa el número de alumnos del examen i.

: representa la capacidad del aula j.

: aulas disponibles para la celebración de exámenes. En este grupo

no se incluyen ni las aulas específicas ni los talleres reservados para

usos especiales.

: representa el conjunto de todos los días de examen, desde el

primer día disponible hasta el último eliminando únicamente los

domingos. De esta forma cada semana de exámenes constará de seis

días.

: conjunto de días que pertenecen al periodo de exámenes del

examen i. En general, el periodo de exámenes depende del examen

en cuestión y normalmente no abarca todo el periodo de exámenes

competo.

: conjunto de slots o periodos que están afectados por un día

festivo. Cada día festivo afecta a los cuatro slot que estén situados en

ese día.

: conjunto que indica cuando el aula j está no disponible para

la celebración de exámenes en el periodo t. Esta indisponibilidad

puede ser de varios tipos como impartición de clases o seminarios,

mantenimiento o limpieza. Sin embargo, el motivo más común es la

Page 39: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

38

ocupación del aula para para la impartición de clases. Como se vio

anteriormente un slot se considerará ocupado o no disponible cuando

no disponga de al menos dos horas consecutivas libres.

: conjunto de periodos que corresponde a un día de sábado.

: conjunto de periodos que corresponden al sábado por la tarde.

Cada sábado del periodo de examen añade los dos slots del periodo

de tarde a este grupo.

: conjunto de exámenes que se imparten durante la mañana y, por

tanto, deben realizar el examen por la mañana.

: conjunto de exámenes que se imparten durante la tarde y, por

tanto, deben realizar los exámenes durante la tarde a no ser que sea

un sábado.

: conjunto de periodos que pertenecen al turno de mañana,

incluidos los sábados.

: conjunto de periodos de mañana que pertenecen a días

entresemana.

: conjunto de periodos que pertenecen al turno de tarde.

: conjunto de exámenes que no puede celebrarse el mismo día

que el examen i. En este grupo se incluyen todos los exámenes

comunes del mismo curso que i, en el caso que i sea un examen

común. En el caso de que i sea un examen optativo, contendrá al

conjunto de exámenes optativos del mismo curso que i.

: conjunto de exámenes que pertenecen a la misma

asignatura que el examen i, es decir, todos los exámenes que deben

celebrarse el mismo día que i incluido él mismo.

: conjunto de exámenes de asignaturas optativas que

pertenecen al mismo curso y titulación que el examen común i.

: conjunto de exámenes de asignaturas comunes que se

imparten durante el turno de mañana.

: conjunto de exámenes de asignaturas comunes que se

imparten durante el turno de tarde.

: conjunto de exámenes de asignaturas que se están

extinguiendo.

Page 40: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

39

Una vez mostrados los datos que requiere el programa de forma

genérica, se mostrarán los datos específicos de la Facultad de Ciencias de la

Educación.

En primer lugar, se mostrará un listado de todas las aulas del edificio.

Este dato, a diferencia de otros como el número de asignaturas o alumnos,

permanecerá constante en las distintas ejecuciones del programa. Para que

variara este dato se tendrían que realizar reformas en el edificio que

hicieran variar el número de aulas o su capacidad. El listado actual de aulas

se presenta en la tabla 1:

Tabla 1

Denominación

abreviada

Denominación completa Capacidad Capacidad

para

examen

A.1.1 Aula 1.1 113 60

A.1.2 (UM) Aula 1.2 (Usos Múltiples) 16 -

A.1.3 (UM) Aula 1.3 (Usos Múltiples) 16 -

A.1.4 (UM) Aula 1.4 (Usos Múltiples) 16 -

A.1.5 (L.I.) Aula 1.5 (Laboratorio de Idiomas) 18 -

A.1.6 (L.Ps.) Aula 1.6 (Laboratorio de Psicología) 18 -

A.1.7 (E.F.) Aula 1.7 (Educación Física) 56 24

A.2.1 Aula 2.1 100 50

A.2.2 Aula 2.2 85 42

A.2.3 Aula 2.3 90 45

A.2.4 (G) Aula 2.4 (Grupo) 54 27

A.2.5 (G) Aula 2.5 (Grupo) 54 27

A.2.6 (G) Aula 2.6 (Grupo) 54 27

A.2.7 (G) Aula 2.7 (Grupo) 54 24

A.2.8 (G) Aula 2.8 (Grupo) 54 27

A.2.9 (G) Aula 2.9 (Grupo) 60 30

A.2.10 (G) Aula 2.10 (Grupo) 72 -

A.2.11 Aula 2.11 130 60

A.2.12 Aula 2.12 100 50

A.2.13 Aula 2.13 85 42

A.2.14 Aula 2.14 90 45

A.2.15 (G) Aula 2.15 (Grupo) 54 27

A.2.16 (G) Aula 2.16 (Grupo) 54 27

A.2.17 (G) Aula 2.17 (Grupo) 54 27

A.2.18 (L.Q.) Aula 2.18 (Laboratorio de Química) 30 -

A.2.19 (G) Aula 2.19 (Grupo) 24 12

A.2.20 (G) Aula 2.20 (Grupo) 32 15

A.2.21 (G) Aula 2.21 (Grupo) 32 15

A.2.22 Aula 2.22 130 65

A.3.1 Aula 3.1 105 51

Page 41: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

40

A.3.2 Aula 3.2 85 42

A.3.3 Aula 3.3 90 45

A.3.4 (G) Aula 3.4 (Grupo) 54 22

A.3.5 (T.M.1) Aula 3.5 (Taller de Música 1) 48 -

A.3.6 (T.M.2) Aula 3.6 (Taller de Música 2) 25 -

A.3.7 (G) Aula 3.7 (Grupo) 48 24

A.3.8 (G) Aula 3.8 (Grupo) 48 24

A.3.9 (I.1) Aula 3.9 (Informática 1) 54 -

A.3.10 (I.2) Aula 3.10 (Informática 2) 54 -

A.3.11 (I.3) Aula 3.11 (Informática 3) 54 -

A.3.12 Aula 3.12 105 51

A.3.13 Aula 3.13 85 44

A.3.14 Aula 3.14 90 45

A.3.15 (G) Aula 3.15 (Grupo) 54 27

A.3.16 (G) Aula 3.16 (Grupo) 54 27

A.3.17 (G) Aula 3.17 (Grupo) 54 27

A.3.18 (L.B.) Aula 3.18 (Laboratorio de Biología) 20 -

A.3.19 (L.G.) Aula 3.19 (Laboratorio de Geología) 32 -

A.3.20 (L.P.) Aula 3.20 (Laboratorio de Plástica) 48 -

A.3.21 Aula 3.21 121 60

A.3.22 Aula 3.22 130 62

En esta tabla se encuentran listadas todas y cada una de las aulas

dispones en el edificio junto con su respectiva capacidad. Como ya se ha

comentado, las aulas disponen de dos capacidades distintas, una para la

impartición de clases y otra para la celebración de exámenes. Como se

puede observar, la capacidad para exámenes es bastante menor que su

capacidad nominal (aproximadamente la mitad).

Además existen aulas, como los laboratorios y seminarios, que no se

pueden utilizar para la celebración de exámenes. Estas aulas aparecen

marcadas con “-” en la columna correspondiente a la capacidad para

exámenes.

El resto de datos requeridos por el modelo, como pueden ser las

asignaturas (con todas sus características: si son comunes u optativas, de

mañana o de tarde, etc.) o las ocupaciones de aulas, son datos que

dependen de la convocatoria específica que se esté resolviendo.

Por ejemplo, no se realizan los mismos exámenes en la convocatoria

de Junio-Julio que en Enero-Febrero. Tampoco la ocupación de las aulas

Page 42: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

41

resulta constante ya que generalmente depende del año y del cuatrimestre

para el que se esté resolviendo el problema.

Además de esta variabilidad con las convocatorias, se trata de una

cantidad bastante importante de datos ya que el número de asignaturas que

concurren a examen suele ser elevado.

Por estos motivos, no se incluirán en la memoria escrita un listado

completo de estos datos. En su lugar, se introducirán a modo de ejemplo los

datos de una de las titulaciones que concurren a examen. Para la titulación

Maestro de Educación primaria en la convocatoria de Enero-Febrero de

2011 los datos que recibiría el modelo se encuentran reflejados en la tabla

2:

Tabla 2

Curso Inicio

exámenes (dd/mm/aaaa)

Fin exámenes (dd/mm/aaaa)

Asignatura Grupo Turno Tipo Nº de

alumnos

1 10/01/2011 22/01/2011 TEORÍA E INST. COMTEM. EDUCACIÓN

1 V C 17

1 MATEMÁTICAS GENERALES PARA MAESTROS

1 V C 26

1 FUNDAMENTOS DE QUÍMICA GENERAL Y ORGÁNICA

1 V C 21

2 10/01/2011 22/01/2011 CIENCIAS DE LA NATURALEZA Y SU DIDÁCTICA

1 M C 70

2 T C 74

2 GEOGRAFÍA HUMANA GENERAL 1 M C 57

2 T C 56

3 M C 40

3 10/01/2011 22/01/2011 ORGANIZACIÓN DEL CENTRO ESCOLAR

1 M C 81

2 T C 60

3 DIDÁCTICA DEL ARTE Y DE LA CULTURA ANDALUZA

1 M O 45

2 T O 24

3 CONFIGURACIONES LITERARIAS DE ANDALUCÍA

1 M O 56

3 EDUCACIÓN AMBIENTAL 1 M O 45

2 T O 31

3 DIDÁCTICA DE LA FÍSICA Y LA QUÍMICA

1 M O 24

3 ENSEÑANZA Y RESOLUCIÓN DE PROBL. DE PRIMARIA

1 T O 23

3 PEDAGOGÍA. DIDÁCTICA DE LA 1 T O 38

Page 43: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

42

RELIGIÓN

3 EDUCACIÓN PARA LA DIVERSIDAD Y LA IGUALDAD

1 T O 12

3 LINGÜÍSTICA INFANTIL Y HABLAS ANDALUZAS

1 M O 41

3 BASES PSICOSOCIALES DE LA EDUCACIÓN

1 T O 32

A partir de tablas como estas, el programa es capaz de extraer los

datos necesarios para su ejecución. Este aspecto, se comentará más

adelante en el apartado 6.3 de la memoria.

Con respecto a los datos de ocupaciones de las aulas, simplemente

añadir que se introducen en el modelo a través de una plantilla que se

explicará también en el apartado 6.3 de esta memoria.

4.2 VARIABLES DEL MODELO

En el modelo matemático diseñado para la resolución del problema se

utilizan únicamente dos tipo de variables.

VARIABLE

Se trata de una variable continua que pretende reflejar el porcentaje

de alumnos del grupo i que realizaran el examen en el aula j durante el

periodo t. Pese a ser una variable continua, la estructura del modelo

matemático hace que X no tome cualquier valor. En concreto, el modelo

asigna tan solo cuatro valores de los infinitos que puede tomar dicha

variable, dotando de esta forma de una mayor sencillez al modelo.

Estos cuatro valores que finalmente se ve obligada a tomar la

variable continua X son los siguientes:

: indica que ninguna división del examen i se encuentra

asignada en el aula j para el periodo t.

Page 44: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

43

⁄ : esto significa que una de las tres divisiones del examen i

se encuentra asignada en el aula j para el periodo t.

⁄ : este valor indica que una de las dos divisiones del

examen i se encuentra asignada al aula j en el instante t.

: por último, esto indica que la única división del examen i

se encuentra asignada al aula j en el instante t.

A posteriori, será el usuario el que repartirá en función de sus

preferencias el porcentaje final de alumnos que se asignarán a cada aula.

Una vez visto el significado de la variable se pasará a analizar la

cantidad de variables que poseen el problema. Si se reflexiona un poco

acerca del significado de esta variable se puede observar que se trata de un

problema de grandes dimensiones.

Para calcular el número aproximado de variables con el que se

trabajara es necesario estimar tanto el número de exámenes como el de

periodos, ya que el número de aulas es fijo.

Comenzaremos por el número de exámenes. En una convocatoria

típica del mes de Enero se celebran más de trescientos exámenes,

aproximadamente unos 320. Sin embargo, esta cantidad puede ascender a

más del doble en la convocatoria de Junio-Julio, ya que en estos meses

confluyen convocatorias tanto de exámenes cuatrimestrales como anuales.

El número de aulas es el único parámetro constante en esta variable,

ya que se trata de un número que viene determinado por el edificio, que no

varía de una convocatoria a otra. Actualmente el edificio consta de un total

de 31 aulas disponibles para la realización de exámenes.

Por último es necesario estimar el número de slots disponibles. Este

número depende de la amplitud del periodo de exámenes. Este periodo se

encuentra es de unas cuatro semanas en una convocatoria de Enero-

Febrero. A pesar de que los periodos de exámenes de cada curso suelen ser

menores, típicamente 2-3 semanas, el periodo global se alarga debido a que

no todas las titulaciones comienzan sus exámenes a la vez.

Además, debemos tener en cuenta que cada semana cuenta con 6 días

hábiles para la celebración de examen. Cada uno de estos días dispone,

Page 45: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

44

como se vio anteriormente de cuatro slots: dos de mañana y dos de tarde.

Con estos números se obtiene un número de periodos estimados de unos 96

slots.

Por lo tanto, para una convocatoria estándar el número de variables

entre 900.000 y 1.000.000 de variables. Sin embargo, en convocatorias

mayores como las de Junio-Julio este número aumenta aún más pudiendo

llegar fácilmente hasta 2.500.000 variables.

Un aspecto importante de estas variables, es que a pesar del gran

número de variables la gran mayoría de estas son nulas. De hecho, como

máximo podrían ser distintas de 0 apenas unas 1.000 variables si se

considera que todos los exámenes se dividen en 3 partes.

VARIABLE

Se trata de la segunda variable del modelo diseñado. En esta ocasión

se trata de una variable binaria que toma un valor de 1 si el examen i se

encuentra asignado al aula j en el instante t. En caso contrario, toma el

valor nulo. Es decir, toma el valor 1 siempre que y vale 0 siempre

que .

La principal función de esta variable binaria es la servir como

auxiliar en algunas restricciones como, por ejemplo, la restricción que

impone que cada examen se puede dividir como máximo en tres partes o

aulas.

Sin embargo, a pesar de que esta es su función principal, el hecho de

ser una variable binaria la hace más idónea que la variable para la

formulación de algunas restricciones. Por este motivo, en ciertas

restricciones se utilizará como variable principal.

Con respecto al número de variables del modelo, tan solo hay

que añadir que coinciden en número con las variables .

Page 46: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

45

4.3 PARÁMETROS DEL MODELO

: conjunto de periodos o slots que pertenecen al mismo día en el

que se encuentra asignado el examen i.

: este parámetro indica el número de particiones o de aulas

del examen i.

4.4 RESTRICCIONES DEL MODELO

(1)

Esta restricción obliga a que cada aula se encuentre asignada como

máximo a un grupo en cada periodo. El signo menor o igual de la

restricción, que a primera vista puede llamar la atención, es necesario para

permitir al modelo que un aula pueda estar libre en un slot determinado.

Esta restricción también constituye una de las razones por las que se

ha tenido que incluir la variable binaria δ en el modelo. Si esta misma

restricción se implementara con la variable continua X podría llevar a

situaciones en las que, estando asignados a un aula más de un examen en

un mismo slot, la restricción se cumpliera.

Un ejemplo de esto ocurre cuando tenemos más de una examen con

varias particiones. Lo vemos a continuación:

Examen 1 que tiene un tamaño de 100 alumnos. En este caso, como

mínimo, el examen deberá celebrarse en dos aulas y como

consecuencia existirán dos y dos .

Examen 2 que tiene un tamaño de 80 alumnos. Debido al tamaño de

las aulas este examen deberá celebrarse como mínimo en dos aulas.

Por lo tanto existirán dos y dos .

Page 47: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

46

Si el algoritmo asignara en el aula 3 y el slot tanto el examen 1 como

en el 2 la restricción se cumpliría puesto que

. Sin embargo, si utilizamos la variable binaria δ la restricción no se

cumpliría:

(2)

∑ ∑

Esta restricción obliga a que cada examen se asigne a un solo aula en

todos los slots. La restricción debe tener el un signo de estricta igualdad

para asegurar que todas las divisiones de un examen sean asignadas.

(3)

∑ ∑

Esta es la restricción que garantiza que todas las particiones de un

examen quepan en el conjunto de las aulas asignadas. Hay que destacar un

aspecto bastante importante de esta restricción. La restricción verifica que

un examen en su conjunto quepa en el conjunto de aulas asignadas para ese

examen.

Este es el motivo por el que la restricción comprueba la capacidad

para cada examen y no para cada aula en todos sus slots. Si se hubiera

optado por esta segunda construcción, la restricción obligaría a que en cada

aula cupiera la mitad o una tercera parte del examen. Este hecho podría

generar que algunos grupos estuvieran sobredimensionados ocupando las

clases de mayor capacidad y dejando las aulas pequeñas vacías. Para

clarificar este aspecto se añadirá un ejemplo:

Page 48: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

47

Supóngase que el examen número 33 de 150 alumnos se divide en

tres. Las divisiones se asignan a las aulas número 10, 12 y 15 de

capacidades 65, 65 y 30 en el slot 24. Con esta asignación las

variables y distintas de 0 para este examen serían las

siguientes:

o ⁄

o ⁄

o ⁄

Quedando la restricción como:

Vemos como la restricción se cumple en su conjunto ya que la

capacidad total asignada es de 160 alumnos mientras que el tamaño

del grupo es de 150. Sin embargo, si se hubiese comprobado cada

aula en cada periodo, el aula 15 en el instante 24 nos hubiera dado un

problema de capacidad ficticio ya que

.

(4)

∑∑

Esta restricción obliga a que no se asigne ningún examen a ningún

aula durante los periodos festivos. Como se ha indicado anteriormente, por

periodo festivo se entenderá cualquier día en el que no se pueda celebrar

ningún examen, exceptuando de este rango todos los domingos que se

consideran por defecto no lectivos.

Page 49: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

48

(5)

Esta restricción permite que el modelo no asigne exámenes en aulas

cuando no se encuentran disponibles. Esta restricción no considera como

ocupada cuando en un aula se está celebrando otro examen ya que de esto

se ocupa, como hemos visto, la restricción (1).

(6)

Esta restricción comprueba que cada examen se divida como

máximo en 3 partes. Se trata, como se vio en apartados anteriores, de una

restricción propia del problema en cuestión.

(7)

( )

Esta restricción impone que todas las particiones de un mismo

examen deben realizarlo a la vez. En ella tan solo es necesario fijar que

es una cota superior. Esta cota debe ser un número lo suficientemente

grande como para que permitir que la restricción funcione adecuadamente.

En el caso particular de este problema se ha tomado .

Page 50: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

49

(8)

∑∑

Esta restricción evita que se asignen exámenes los sábados por la

tarde. La estructura de la restricción es igual a la restricción (4), sin

embargo, se han tratado como dos restricciones diferentes debido a que

conceptualmente provienen de dos aspectos distintos.

Mientras que la restricción (4) hace referencia al carácter no

laborable de los días festivos, esta restricción corresponde al hecho de que

por normativa académica los sábados por la tarde no se deben celebrar

exámenes.

(9)

∑ ∑

Esta restricción impone que todos los grupos de mañana deben

realizar su examen durante la mañana. Para ello se impone que durante los

turnos de tarde no exista ningún examen asignado.

(10)

∑ ∑

La restricción (10) es una restricción idéntica a la (9) pero para los

exámenes del turno de tarde. En esta restricción se obliga a que las

asignaciones de los exámenes del turno de tarde sea nula durante todas las

mañanas de lunes a viernes, es decir, excluyendo los sábados.

Page 51: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

50

Esto último se hace porque los sábados por la mañana sí se pueden

celebrar exámenes del turno de tarde. Para las asignaturas a extinguir, no

existe restricción de este tipo puesto que al no impartirse clases el examen

se puede celebrar tanto por la mañana como por la tarde.

(11)

∑ ∑ ∑

Esta restricción tiene una función doble según sea el tipo de examen.

Para los exámenes comunes, el grupo contiene todos los exámenes del

mismo curso que no pertenezcan a la misma asignatura que i. Por lo tanto,

en las asignaturas comunes, lo que impone es que no pueda haber ningún

examen común del mismo curso en el mismo día que i.

Para las asignaturas optativas, el funcionamiento es similar, ya que lo

que evita es que en un mismo día pueda haber dos asignaturas optativas del

mismo curso.

Un detalle importante en la construcción de la restricción es la

exclusión de la asignatura a la que pertenece el grupo que se está

verificando. Esto es necesario para evitar que un examen sea incompatible

con él mismo. Si esto ocurriera, sería imposible cumplir la restricción tal

cual está formulada.

(12)

∑ ∑ ∑

Esta restricción asegura que todas las divisiones de los exámenes de

una misma asignatura se celebren el mismo día. En esta restricción, al

Page 52: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

51

contrario de lo que ocurre en la restricción anterior, es necesario que se

incluya el examen para el que se está comprobando la restricción.

(13)

∑ ∑ ∑

Esta restricción impone que, para las asignaturas comunes del turno

de mañana, no exista ninguna optativa del mismo curso el mismo día por la

mañana.

(14)

∑ ∑ ∑

Esta restricción impone que, para las asignaturas comunes del turno

de tarde, no exista ninguna optativa del mismo curso el mismo día por la

tarde.

Las restricciones (13) y (14) junto con la restricción (11) hacen que

como máximo en un mismo día coincidan una asignatura común y una

optativa del mismo día y, además, que cada una vaya en un turno.

(15)

∑ ∑

Con esta restricción se verifica que no se asigne ninguna partición

fuera del periodo de exámenes de cada examen. Esto es necesario debido a

que t abarca todos los slots, desde el primer día de exámenes hasta el

Page 53: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

52

último. Sin embargo, cada examen dispone de un periodo de exámenes

particular y que, en general, puede ser menor que el periodo completo.

4.5 FUNCIÓN OBJETIVO

Para evaluar la idoneidad de la solución obtenida, se utilizará un

sistema de penalizaciones. Es decir, se fijará una penalización por el

incumplimiento de cada restricción. Esta penalización será función del tipo

de restricción que sea, por ejemplo, no será lo mismo incumplir una

restricción dura que una restricción suave. Para representar esta diferencia,

se asignará una penalización a las restricciones dura mucho mayor que a las

restricciones blandas (de varios ordenes de magnitud).

La función objetivo del problema que se ha elegido ha sido aquella

que consiga minimizar los exámenes en sábados. Pese a que el sábado es

un día válido para la celebración de exámenes, por ser un día de fin de

semana puede generar un mayor malestar entre los afectados. Por ello la

función objetivo elegida ha sido la siguiente:

∑∑∑

4.6 MODELO

Una vez vistas todas las restricciones del modelo así como la función

objetivo, se representará el modelo matemático completo para finalizar con

este apartado. El modelo matemático queda de la siguiente forma:

Page 54: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

53

∑∑∑

s.a.

∑ ∑

∑ ∑

∑∑

( )

∑∑

∑ ∑

∑ ∑

∑ ∑ ∑

∑ ∑ ∑

∑ ∑ ∑

Page 55: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

54

∑ ∑ ∑

∑ ∑

{ }

Page 56: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

55

5. SOLUCIO N DEL MODELO MEDIANTE UN ALGORITMO DE BU SQUEDA TABU

Para la resolución del problema planteado, se ha optado por la

implementación en Matlab de un algoritmo de Búsqueda Tabú. En el

mercado existen soluciones estándar para la resolución de problemas de

optimización lineal como el que nos ocupa. Por ejemplo, el paquete

Microsoft Office nos ofrece una herramienta llamada Solver.

Esta herramienta se encuentra integrada en el entorno de Excel y

resulta una forma sencilla de resolver problemas de optimización lineal. Sin

embargo, existe una particularidad de este problema que hace inviable su

resolución mediante Solver: el tamaño del problema.

Como se ha discutido en el apartado anterior, un tamaño normal para

este problema dispone aproximadamente un total de 2.00.000 de variables

entre y . Se trata de un número de variables muy por encima de las

capacidades de Solver ya que el número máximo de variables que admite

es de tan solo 200 variables.

Debido a esta limitación se ha optado por el diseño de un algoritmo

de búsqueda tabú que se ha mostrado históricamente eficaz en el

tratamiento de este tipo de problemas combinatorios de gran tamaño.

Se comenzará haciendo un resumen genérico del algoritmo de

búsqueda tabú. Una vez finalizada esta descripción genérica se pasará a

estudiar las particularidades del algoritmo de búsqueda tabú utilizado en

este problema particular

Page 57: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

56

5.1 INTRODUCCIÓN A LA BÚSQUEDA TABÚ

La Búsqueda Tabú (BT) o Tabu Search (TS) en inglés, es un

procedimiento metaheurístico utilizado para guiar un algoritmo heurístico

de búsqueda local para explorar el espacio de soluciones más allá de la

simple optimalidad local.

La Búsqueda Tabú incorpora una memoria adaptativa y exploración

sensible y por ello se la solución que proporciona se califica como

inteligente. Este uso de memoria adaptativa contrasta con diseños

“desmemoriados” y con diseños de “memoria rígida”.

Los elementos básicos de la búsqueda tabú tienen varias

características importantes, las cuales se desarrollaran en los siguientes

apartados:

1. Memoria adaptativa:

a. Selectividad, incluyendo olvido estratégico.

b. Abstracción y descomposición.

c. Tiempo:

i. Recencia de eventos.

ii. Frecuencia de eventos.

iii. Diferenciación entre corto y largo plazo.

d. Calidad e impacto:

i. Atracción relativa de elecciones alternativas.

ii. Magnitud de cambios en relaciones de estructura o

restricciones.

e. Contexto:

i. Interdependencia regional.

ii. Interdependencia estructural.

iii. Interdependencia secuencial.

2. Exploración sensible:

a. Imposición estratégica de limitaciones e inducciones:

condiciones tabú y niveles de aspiración.

b. Enfoque concentrado en buenas regiones y buenas

características de las soluciones: procesos de intensificación.

c. Caracterización y exploración de nuevas regiones

prometedoras: procesos de diversificación.

Page 58: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

57

d. Patrones de búsqueda no monótonos: oscilación estratégica.

e. Integración y extensión de soluciones: reencadenamiento de

trayectorias.

La adecuada combinación de estos aspectos conduce

progresivamente a mejores soluciones e implementaciones prácticas.

El énfasis en la exploración sensible en búsqueda tabú, ya sea en una

implementación determinística o probabilística, se deriva de la suposición

de que una mala elección estratégica puede producir más información que

una buena elección al azar. Esto es debido a que, al emplear un sistema de

memoria, una mala elección basada en estrategia puede dar claves útiles

acerca de cómo podrían hacerse modificaciones provechosas a la estrategia.

De esta manera les son atribuidos a las soluciones distintas

características, conocidas en BT como atributos, que bajo ciertas

condiciones pueden declararse "tabú", siendo obviadas entonces por el

proceso de búsqueda pudiendo ser soluciones de calidad, que de esta

manera posee la facultad de dirigir la exploración.

5.2 FUNDAMENTOS DE LA BÚSQUEDA TABÚ

En este apartado se expondrán los principales conceptos de la

búsqueda tabú.

La búsqueda tabú trata de optimizar una función en un conjunto

. Para ello la BT comenzará como cualquier búsqueda local, procediendo

iterativamente de un punto a otro hasta satisfacer un criterio de

terminación. Cada tiene un entorno (o vecindad) asociado ,

y cada solución se puede alcanzar desde mediante una

operación llamada movimiento.

En esta definición de la forma de actuar de la BT han aparecido

varios conceptos clave que merecen una mención especial:

1. Espacio de soluciones : está formado por todas las posibles

soluciones del problema que se pueden obtener, en las que

soluciones parecidas, se encuentran próximas entre sí. Entiéndase

Page 59: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

58

por parecidas, si cada solución posee un conjunto de cualidades o

atributos, que comparten algunos atributos, o los poseen fijados al

mismo valor o parecidos.

2. Vecindad : La búsqueda tabú trata de optimizar la función f(x)

en un conjunto X. Cada solución x perteneciente a X posee un

entorno, denominado vecindad y representado por N(x).

3. Movimiento: es la forma mediante la que avanza el algoritmo de

búsqueda tabú. Mediante los movimientos el algoritmo para de un

punto a otro punto perteneciente al entorno del primero. De

esta forma el algoritmo se va desplazando de un punto a otro

intentando siempre mejorar la solución.

La BT rebasa la búsqueda local empleando una estrategia de

modificación de a medida que la búsqueda progresa, reemplazándola

por otro entorno . En la determinación de este nuevo entorno, juega

un papel fundamental el empleo de estructuras especiales de memoria

sirvan para elegir un adecuado, organizando así la manera en la cual

se explora el espacio.

Las soluciones que son admitidas en por estas estructuras de

memoria se determinan de varias formas. Una de ellas, que da a la

búsqueda tabú su nombre, identifica soluciones encontradas sobre un

horizonte especificado y les prohíbe pertenecer a clasificándolas

como tabú.

En ciertas ocasiones, y a pesar de que una solución se encuentre

marcada como tabú, es posible que sea recomendable que pertenezca a

. Por tanto, a veces se opta por penalizar las soluciones que posee

estatus tabú en vez de excluirlas directamente del vecindario. De esta

forma, se desalentaría la elección las soluciones marcadas como tabú, pero

en caso de que alguna de esas soluciones sea “muy buena” se podría elegir.

En apartados posteriores se ampliará este concepto de soluciones “muy

buenas”.

La memoria usada en BT puede ser explícita o basada en atributos,

aunque ambas modalidades no son excluyentes:

La memoria explícita conserva soluciones completas, y consiste

típicamente en una élite de soluciones visitadas durante la búsqueda

(o en entornos altamente atractivos pero inexplorados para tales

Page 60: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

59

soluciones). Estas soluciones especiales se introducen

estratégicamente para ampliar la vecindad futura y así presentar

opciones útiles que no se encuentran en la vecindad actual que se

está explorando.

La memoria basada en atributos guarda información sobre atributos

de las soluciones que cambian al moverse de una solución a otra. Por

ejemplo, en un contexto de grafos o redes, los atributos pueden

consistir en nodos o arcos que se añaden, se suprimen o se sustituyen

por los movimientos ejecutados.

5.3 MEMORIA DE CORTO PLAZO Y SUS ELEMENTOS

Una distinción importante en TS resulta al distinguir entre memoria

de corto plazo y memoria de largo plazo. Cada tipo de memoria está

acompañada de sus propias estrategias especiales. La memoria de corto

plazo más comúnmente usada lleva la cuenta de los atributos de solución

que han sido cambiados en el pasado reciente, y es llamada memoria

basada en recenciates (en hechos recientes).

Para explotar esta memoria, los atributos seleccionados que se

presentan en soluciones recientemente visitadas son designados como

"tabú-activos", y las soluciones que contienen elementos tabú-activos, o

combinaciones particulares de estos atributos, son las que se convierten en

tabú. Esto evita que algunas soluciones del pasado reciente pertenezcan a la

futura vecindad y por lo tanto sean revisitadas. También se evita que otras

soluciones que compartan tabú-activos se vuelvan a visitar.

El uso de evaluaciones tabú, que asignan grandes penalizaciones a

conjuntos apropiados de atributos tabú-activos, permite que el estatus tabú

varíe por grados.

Page 61: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

60

5.3.1 MANEJO DE MEMORIA BASADA EN LA RECENCIA

El proceso se maneja creando una o más listas tabú, las cuáles

registran los atributos tabú-activos y explícita e implícitamente identifican

su estatus actual.

Se denomina tenencia tabú a la duración que un atributo permanece

tabú-activo (medido en número de iteraciones). La tenencia tabú puede

variar para diferentes tipos o combinaciones de atributos, y además puede

variar para diferentes intervalos de tiempo o etapas de búsqueda. Esta

tenencia variable permite la creación de diferentes tipos de ajuste entre

estrategias de corto y largo plazo. Esto produce también una forma

dinámica y robusta de búsqueda.

5.3.2 NIVELES DE ASPIRACIÓN

Este concepto es el que permite a la BT seleccionar las soluciones

“muy buenas” y permitir que, pese a estar calificadas como tabú

pertenezcan al nuevo vecindario.

El criterio de aspiración introduce un elemento importante de

flexibilidad en la búsqueda tabú. El estatus tabú de una solución (o un

movimiento) puede ser ignorado si ciertas condiciones se cumplen, en la

forma de niveles de aspiración. En efecto, estos niveles de aspiración dan

umbrales de atracción, los cuales controlan el hecho de que las aspiraciones

puedan ser consideradas admisibles a pesar de estar clasificadas como tabú.

Es obvio que cualquier solución que sea mejor que cualquiera de las

encontradas anteriormente merece ser considerada admisible, incluso

aunque para alcanzarla debamos utilizar un movimiento prohibido.

Criterios similares para la calidad de las soluciones producen

criterios de aspiración para subconjuntos de soluciones que pertenecen a

regiones comunes o que comparten características especificadas (tales

como un valor funcional particular o un nivel de imposibilidad).

Page 62: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

61

5.3.3 ESTRATEGIAS PARA LA LISTA DE CANDIDATO

El carácter agresivo de BT se ve reforzado buscando el mejor

movimiento disponible que pueda ser determinado con una cantidad

apropiada de esfuerzo. Debe tomarse en cuenta que el significado de

"mejor" no está limitado solamente a la evaluación de la función objetivo.

Como anteriormente se señaló, las evaluaciones tabú están afectadas

por penalizaciones e incentivos, que son determinados por la historia de la

búsqueda.

Las estrategias para la lista de candidatos son usadas para restringir

el número de soluciones examinadas en una iteración dada, para los casos

en los que las vecindades son grandes o la evaluación de los vecinos

costosa.

Dada la importancia que BT da a la selección juiciosa de elementos

para el proceso de búsqueda, es crítico contar con reglas eficientes para la

generación y evaluación de buenos candidatos. Aún en casos donde las

estrategias para la lista de candidatos no se usan explícitamente, las

estructuras de memoria que den actualizaciones eficientes de evaluaciones

del movimiento de una iteración a otra, y que reduzcan el esfuerzo de

encontrar mejores o casi mejores movimientos, son parte integral de las

implementaciones de BT.

La actualización inteligente puede reducir apreciablemente los

tiempos de solución, y la inclusión de estrategias para la lista de

candidatos, para problemas grandes, puede aumentar significativamente los

beneficios resultantes.

La operación de estos elementos de corto plazo suele constar de las

siguientes fases:

Examen de la lista de candidatos

Prueba tabú

Prueba de aspiración

Evaluación con o sin penalización

Chequeo de fin

Ejecución del movimiento elegido

Page 63: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

62

Las penalizaciones que se aplican en el proceso anterior tienen un

efecto de umbral: el estatus tabú o bien produce una evaluación sumamente

deteriorada o bien sirve para romper empates entre las soluciones cuyas

evaluaciones son las más altas. Tal efecto puede ser, por supuesto,

modulado para desplazar las evaluaciones hacia niveles intermedios entre

estos extremos. Si todos los movimientos actualmente disponibles

conducen a soluciones que son tabú (con evaluaciones que normalmente las

hubieran excluido de ser seleccionadas), las penalizaciones harán que se

escoja una solución "menos tabú".

Se suele seguir el orden previo, pudiéndose intercambiar lugares en

el proceso de la fase de prueba tabú con la de aspiración, esto es empleando

la prueba tabú sólo si el umbral de aspiración no es satisfecho. Además, la

evaluación tabú puede ser modificada creando incentivos basados en el

nivel de aspiración, de la misma forma en que se modifica al crear

penalizaciones basadas en el estatus tabú. En este sentido, las condiciones

de aspiración y las condiciones tabú pueden ser consideradas como

"imágenes especulares" entre sí.

Existe una variante de la BT llamada búsqueda tabú probabilística.

Esta variante mantiene un diseño similar y además posee un registro de las

evaluaciones tabú generadas durante el proceso de selección de un

movimiento. Basándose en este registro, el movimiento es seleccionado

probabilísticamente del conjunto de aquellos evaluados (o de algún

subconjunto de los mejores miembros de este conjunto), evaluando los

movimientos de tal manera que aquellos con valores más altos resulten

especialmente favorecidos.

El estatus tabú es frecuentemente permitido para que sirva como un

umbral todo-o-nada, sin referencia explícita a las penalizaciones o

incentivos, mediante la exclusión directa de selección de opciones tabú,

sujetas al resultado de las pruebas de aspiración. Bien las evaluaciones

modificadas sean explícitamente usadas o no, el movimiento seleccionado

puede no ser el que tenga el mejor valor para la función objetivo, y

consecuentemente la solución con el mejor valor para la función objetivo

encontrada durante toda la historia de la búsqueda será registrada

separadamente. Una forma típica de criterio de aspiración indica que tal

solución será escogida como la siguiente por visitar.

Page 64: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

63

5.4 MEMORIA A LARGO PLAZO

En algunas aplicaciones, los componentes de la memoria BT de corto

plazo son suficientes para producir soluciones de muy alta calidad. Sin

embargo, en general, BT se vuelve significativamente más potente

incluyendo memoria de largo plazo y sus estrategias asociadas.

Tipos especiales de memoria basada en frecuencia son

fundamentales en consideraciones a largo plazo. Estas operan

introduciendo penalizaciones e incentivos determinados por el rango

relativo de tiempo durante el que los atributos han pertenecido a soluciones

visitadas durante la búsqueda, permitiendo la diferenciación por regiones.

Las frecuencias de transición mantienen un registro de con qué

frecuencia cambian los atributos, mientras que las frecuencias de

residencia mantienen el registro de las duraciones relativas de los atributos

en las soluciones generadas. Este tipo de memorias son acompañadas

algunas veces por formas extendidas de memoria basada en recencia.

Quizá sorprendentemente, el uso de memoria de largo plazo no

requiere secuencias de larga duración antes de que sus beneficios se hagan

visibles. Frecuentemente, sus mejoras comienzan a manifestarse en un

lapso de tiempo relativamente corto, y pueden permitir que los esfuerzos

para llegar a la solución finalicen un poco antes que de otra manera posible,

debido a que se encuentran soluciones de muy alta calidad dentro de un

rango corto de tiempo.

La oportunidad de encontrar soluciones aún mejores conforme el

tiempo crece, en el caso de que una solución óptima no haya sido aún

encontrada, se mejora al usar memoria de lago plazo en adición a la

memoria de corto plazo.

Dos componentes altamente importantes de largo plazo de búsqueda

tabú son las estrategias de intensificación y las estrategias de

diversificación.

Page 65: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

64

5.4.1 ESTRATEGIAS DE INTENSIFICACIÓN

Las estrategias de intensificación están basadas en la modificación de

reglas de elección de tal manera que se favorezcan combinaciones de

movimiento y características de solución que históricamente hayan sido

buenas. Pueden iniciar además un regreso hacia regiones atractivas para

buscar en ellas más extensamente.

Existen numerosas variantes de este proceso de intensificación. Sin

embargo, hay dos que históricamente han resultado tener bastante éxito:

La primera de ellas es debida a Voss [1993] y consiste en introducir

una medida de la diversificación para asegurar que las soluciones

registradas difieran una de otra en un grado deseado. Además, borra

toda la memoria de corto plazo antes de reanudar el proceso desde la

mejor de las soluciones registradas.

La segunda de las variantes, debida a Nowicki y Smutniki [1993],

mantiene una lista secuencial de longitud limitada que añade al final

una nueva solución sólo si es mejor que cualquier otra previamente

vista.

Existen también otros enfoques bastante conocidos:

Desandar: el actual miembro de la lista es siempre el escogido y

suprimido como base para reanudar la búsqueda. Sin embargo, la

memoria de corto plazo BT que acompañó a esta solución también es

guardada, y el primer movimiento inhibe además el movimiento

previamente tomado de esta solución, con lo que un nuevo camino

de solución será iniciado. Este enfoque de recuperar soluciones élites

seleccionadas es llamado "back tracking" (desandar), y consiste

simplemente en crear una cola limitada de prioridad.

Entorno no visitado: este segundo enfoque se relaciona con la

estrategia de reanudar la búsqueda desde entornos no visitados,

previamente generados. Tal estrategia, mantiene el registro de la

calidad de estos entornos para seleccionar un conjunto élite, y limita

la atención a tipos específicos de soluciones, como son los entornos

de óptimos locales o entornos de soluciones visitadas en pasos

inmediatamente anteriores a alcanzar tales óptimos locales.

Page 66: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

65

Descomposición: Otro tipo de enfoque de intensificación es la

"intensificación por descomposición", donde se pueden imponer

restricciones a partes del problema o a la estructura de solución para

generar una forma de descomposición que permita un enfoque más

concentrado en otras partes de la estructura.

5.4.2 ESTRATEGIAS DE DIVERSIFICACIÓN

Las estrategias de diversificación en BT, como su nombre sugiere,

están diseñadas para conducir la búsqueda hacia nuevas regiones. Con

frecuencia están basadas en modificar las reglas de elección para llevar a la

solución atributos que no hayan sido usados frecuentemente.

Alternativamente, se pueden introducir dichos atributos al reiniciar parcial

o completamente el proceso de solución. Los mismos tipos de memorias

previamente descritos son útiles como fundamento de tales procedimientos,

aunque estas memorias sean mantenidas a través de subconjuntos de

soluciones, que aquellos mantenidos por estrategias de diversificación.

Un enfoque simple de diversificación que mantiene una memoria

basada en frecuencia sobre todas las soluciones previamente generadas

consta de las siguientes fases:

Aplicar el algoritmo de memoria de corto plazo (MCP) descrito en el

apartado anterior.

Mantener la memoria basada en frecuencia de atributos en las

soluciones.

Cuando el ratio de hallazgo de nuevas mejores soluciones cae por

debajo de un umbral, entrar en el bucle siguiente:

Bucle: Aplicar la memoria BT de corto plazo hasta llegar a un

óptimo local BT.

Penalizar la inclusión de atributos que ocurran con frecuencia. Si se

alcanzó la iteración límite del bucle → Fin del bucle.

Continuar aplicando penalizaciones hasta que se seleccione un

movimiento que cree una solución mejor que su inmediato

predecesor→ Interrumpir entonces las penalizaciones.

Page 67: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

66

Los óptimos locales de BT alcanzados por este enfoque, y usados

como base para lanzar una secuencia de pasos con el objeto de diversificar,

pueden naturalmente diferir de los verdaderos óptimos locales ya que las

reglas de selección de búsqueda tabú pueden excluir algunos movimientos

mejoradores.

El éxito de este enfoque sugiere el mérito de incorporar una variante

de BT que siempre continúe a un verdadero óptimo local una vez que un

movimiento mejorador se convierta en una elección aceptable (basado en

un criterio de aspiración que es activado sólo después de ejecutar un

movimiento mejorador). En este enfoque, mientras existan movimientos

que adicionalmente mejoren, el criterio de aspiración permitirá que uno de

ellos sea seleccionado mediante una regla de evaluación tabú que

penalizará las opciones basándose en su estatus tabú, restringiendo la

atención al conjunto de mejora.

Una vez que un verdadero óptimo local es alcanzado, el criterio de

aspiración especial se interrumpe hasta que un nuevo movimiento

mejorador se selecciona usando reglas de BT estándar.

5.4.3 COMBINACIÓN DE LAS ESTRATEGIAS DE INTENSIFICACIÓN Y

DIVERSIFICACIÓN

Un área en la que se viene trabajando es el modo en el cual las

memorias basadas en frecuencia son usadas para implementar las

estrategias de intensificación y diversificación. Existes dos patrones

generales distintos para explotar este tipo de memoria:

1. El primero de ellos consiste en aplicar una estrategia de

diversificación cuando la frecuencia es baja y una estrategia de

intensificación cuando la frecuencia es alta. Su representación se

puede observar en la figura 1:

Page 68: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

67

Figura 1

2. El otro patrón, consiste en aplicar ambas estrategias cuando la

frecuencia es baja y utilizar solo la estrategia de intensificación

cuando la frecuencia aumenta. Este comportamiento se puede

observar en la figura 2.

Figura 2

Page 69: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

68

5.5 OSCILACIÓN ESTRATÉGICA

Las estrategias vistas hasta este apartado constituyen la

configuración más básica de la búsqueda tabú. Existen otras estrategias más

desarrolladas y suelen mejorar los resultados obtenidos. Sin embargo, en

muchas ocasiones los buenos resultados obtenidos con las estrategias

anteriores justifican la no inclusión de estas nuevas estrategias. La primera

de las estrategias que se verá será la oscilación estratégica.

La oscilación estratégica proporciona un medio para lograr una

interacción muy efectiva entre intensificación y diversificación en el medio

y largo plazo. El enfoque opera orientando los movimientos en relación a

un cierto nivel crítico, identificándolo ya sea por una etapa de construcción

o un intervalo dado de valores para una función.

Tal nivel crítico representa a menudo un punto donde el método se

detendría normalmente. Sin embargo, en vez de detenerse al alcanzar este

nivel, las reglas para elegir los movimientos se modifican, para permitir

que la región definida por el nivel crítico sea traspasada.

El enfoque entonces, permite llegar hasta cierta profundidad

previamente especificada más allá del nivel crítico y regresa. La búsqueda

ahora procederá a alcanzar nuevamente el nivel crítico y traspasarlo, sólo

que esta vez se hará en dirección opuesta a la que se hizo anteriormente, y

el método se dirige a un nuevo punto de retorno. Este proceso de

aproximarse y traspasar una y otra vez el nivel crítico en direcciones

diferentes crea un comportamiento oscilatorio, el cual da al método su

nombre.

5.6 REENCADENAMIENTO DE TRAYECTORIAS

El reencadenamiento de trayectorias proporciona una integración

muy útil de las estrategias de intensificación y diversificación. Este enfoque

se basa en explorar trayectorias que "conectan" soluciones élite para

generar nuevas soluciones, empezando desde una de estas soluciones

llamada solución inicial, y generando una trayectoria en el espacio de

Page 70: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

69

entornos que conduce hacia otras soluciones, llamadas soluciones guía.

Esto se logra seleccionando movimientos que introducen atributos

contenidos en las soluciones guía.

El enfoque puede verse como una instancia extrema (altamente

enfocada) de una estrategia que busca incorporar atributos de soluciones de

muy alta calidad, creando inducciones que favorezcan estos atributos en los

movimientos seleccionados. Sin embargo, en vez de utilizar una inducción

que simplemente apoye la inclusión de tales atributos, el enfoque de

reencadenamiento de trayectorias subordina todas las demás

consideraciones a la meta de elegir movimientos que introduzcan los

atributos de las soluciones guía, con el fin de crear una "buena composición

de atributos" en la solución actual. En cada paso la composición se

determina eligiendo el mejor movimiento, mediante los criterios usuales de

elección, del conjunto restringido de movimientos que incorporan un

máximo número, o un valor con peso máximo, de los atributos de las

soluciones guía.

Los atributos de estas soluciones guía reciben pesos "preemptivos"

como inductores para ser seleccionadas.

Únicamente a las formas más fuertes de ciertos criterios de

aspiración se les permite ignorar este tipo de regla de elección, de manera

que la trayectoria no se desvíe a menos que una solución vecina sea mejor

que cualquiera de las soluciones guía y la solución inicial, la regla de guía

se restablece después de que la desviación sigue su curso.

5.7 CARACTERÍSTICAS DEL ALGORITMO TABÚ EMPLEADO EN LA

RESOLUCIÓN DEL MODELO

En los apartados anteriores se ha explicado en líneas generales las

bases de funcionamiento de la búsqueda tabú. En este apartado se explicará

más detalladamente como se ha aplicado esa teoría general al problema de

diseño de calendarios en cuestión.

La función que se tratará de minimizar será la función que

proporciona el número de incompatibilidades. En esta función cada

Page 71: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

70

restricción tendrá un peso determinado, en función de la importación de la

misma, y todas las incompatibilidades que posea la solución se irán

sumando. El algoritmo tratará de minimizar esta suma hasta que no exista

ninguna violación de las restricciones duras.

5.7.1 SOLUCIÓN INICIAL

El algoritmo de búsqueda tabú podría alcanzar una solución factible

partiendo desde cualquier solución inicial aleatoria. Sin embargo, el hecho

de partir desde una buena solución inicial hace que el tiempo y los recursos

empleados para llegar hasta una solución factible se reduzcan

drásticamente.

En este proyecto se ha optado por aportar al algoritmo una solución

inicial de la mayor calidad posible. De esta forma se ha conseguido que los

mejores movimientos posibles de cada paso de la búsqueda tabú se

encuentren en un área muy limitada y concreta del basto espacio de

soluciones global.

El algoritmo que genera la solución inicial comienza calculando las

divisiones mínimas de todos los exámenes. Es decir, si se tiene un grupo de

examen de 80 alumnos y la capacidad del aula mayor es de 60, es obvio

que ese grupo deberá dividirse como mínimo en dos clases. Esta prueba

lógica se realiza con todos los grupos de examen dividiendo inicialmente

en una, dos o tres clases en función del tamaño del grupo y de la capacidad

del aula máxima.

Una vez hecho esto, el algoritmo comienza a ordenar los días de

exámenes de mejor a peor. Para ello se asumirá que los mejores días son

aquellos que disponen de más slots libres y, por tanto, estos serán los

primeros en la lista. Una vez ordenados los días se elige aquel que disponga

de más slots libres siempre que:

Todos los exámenes de la primera asignatura quepan en el día.

El día no sea sábado.

Page 72: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

71

Ésta segunda condición se incluye con la idea de que no se elijan

siempre los sábados como primer día por el hecho de que no hay clases. En

caso de que no se cumpla alguna de las condiciones anteriores se pasaría a

seleccionar el siguiente día.

Una vez seleccionado el “mejor día”, el algoritmo selecciona todos

los exámenes de un curso comenzando por el primer curso de la primera

titulación introducida. Todos estos exámenes seleccionados deben ir

asignados en días distintos.

Una vez elegido el día y los exámenes del curso, se procede a asignar

la primera asignatura. Se ha de procurar siempre que los exámenes de la

asignatura que sean de mañana se asignen por la mañana y los de tarde por

la tarde (siempre que no sea sábado, en cuyo caso solo se asignará por la

mañana). En el caso de tener una asignatura a extinguir se asignará en el

turno que tenga más huecos libres.

Esta asignación de la asignatura se realiza intentado asignar todos los

exámenes de la asignatura en el día seleccionado anteriormente. Para ello

se realizan una serie de comprobaciones:

En primer lugar se comprueba que no existan en el día en cuestión

ninguna asignatura incompatible. Esta condición obviamente se

cumplirá en la primera asignatura del curso, sin embargo, será útil en

las siguientes asignaturas.

Se comprueba también que todas las particiones que deben ir por la

mañana quepan en los turnos de mañana y se hace lo propio con los

exámenes de por la tarde.

Una vez comprobado que la asignatura cabe y que en el día no existe

ningún examen incompatible, se procede a asignar las particiones de los

exámenes en algún hueco libre. Durante esta asignación no se atiende a la

capacidad de las aulas ni al tamaño de los grupos, ya que esta será una

cuestión que debe resolver la búsqueda tabú. En el caso de que alguna de

las condiciones no se viera satisfecha, se procedería a seleccionar un día

que diste dos del anterior (día D+2). Con este nuevo día se repetiría las

comprobaciones y en caso de no cumplirse se volvería a avanzar otros dos

días.

Page 73: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

72

De esta forma se iría recorriendo el periodo de exámenes saltando

días de dos en dos hasta volver al primer día seleccionado. En ese momento

se seleccionaría el día siguiente (D+1) y se volverían a repetir las

comprobaciones. En caso de seguir sin verse satisfecha se volverían a saltar

dos días. De esta forma se recorre todo el periodo de exámenes pero de

forma que la asignación de asignaturas procura siempre que las asignaturas

de un mismo curso se encuentren separadas al menos un día entre ellas.

Una vez asignada una asignatura, se procede a asignar la siguiente.

Para ello comienza de nuevo en el “mejor día” y se vuelven a realizar las

mismas comprobaciones. En caso de no cumplirse pues va cambiando de

día hasta recorrer el periodo de exámenes completo tal y como se explica

en los párrafos anteriores.

Este proceso se va repitiendo hasta asignar todas y cada una de las

asignaturas del curso seleccionado. Una vez asignado un curso, se procede

a seleccionar el siguiente y así sucesivamente hasta conseguir una solución

inicial completa.

Como se puede observar, este algoritmo proporciona una solución de

alta calidad facilitando mucho la tarea de la búsqueda tabú.

5.7.2 ATRIBUTOS DE LAS SOLUCIONES

Son caracterizados como atributos de las soluciones todas las aulas y

periodos que se encuentran asignados en algún momento de la resolución a

alguna asignatura.

De esta forma, y llevando a cabo un registro correcto, es posible

determinar el estatus tabú. Este estatus estaría conformado por el conjunto

de aulas y periodos que son asignadas como tabú para cada uno de los

exámenes.

Es preciso darse cuenta de que dicho conjunto tabú forma un grupo

dinámico, en constante evolución y cambio a lo largo del proceso, en

función de los resultados que se vayan obteniendo a medida que avanzan

las iteraciones.

Page 74: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

73

Para controlar que atributos son tabú en un instante determinado, es

necesario contar con dos parámetros clave en el algoritmo de búsqueda

tabú. Estos parámetros son:

Frecuencia tabú: fija el número de veces que se puede repetir en una

solución un atributo antes de considerarlo tabú.

Tenencia tabú: es un atributo que indica el número de iteraciones que

permanecerá como tabú un atributo concreto. Una vez pasada ese

número de iteraciones el atributo podrá ser incluido de nuevo en una

solución.

Estos parámetros se fijan al principio de la ejecución y permanecen

constantes a lo largo de todo el proceso.

5.7.3 EXPLORACIÓN SENSIBLE

Para explorar el área de soluciones de manera sensible, se lleva a

cabo en primer lugar una cuidadosa elección de vecindario, que incluye la

elección del grupo a mover. A esta elección del vecindario, se le suman dos

filtros que ayudan a encaminar la búsqueda de una manera inteligente.

La exploración sensible comienza eligiendo el grupo de examen que

se moverá. Existen numerosas formas de elegir el grupo de examen: ir

seleccionándolos todos por orden, aleatoriamente…sin embargo, la forma

que mejores resultados ha dado ha sido la de ir eligiendo aquellos grupos

que violen alguna de las restricciones duras. Es decir, solo se selecciona un

grupo para moverlo si este incumple alguna restricción.

De esta forma, se evita mover grupos que ya están bien asignados. Se

trata de una lista dinámica ya que, a medida que se van realizando

iteraciones, es posible que alguno de los grupos que cumplían todas las

restricciones vuelva a incumplir alguna.

Una vez elegido el grupo que se va a mover, se pasa a seleccionar el

vecindario en el que se buscará la siguiente solución. Hay que elegir el

vecindario de forma juiciosa ya que la amplitud y la forma del espacio de

soluciones desaconsejan tratar todo el espacio como un único vecindario. Si

Page 75: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

74

se escogiera todo el espacio de soluciones como un único vecindario, el

tiempo de evaluación crecería exponencialmente desperdiciando muchos

recursos.

Para elegir bien el vecindario es preciso entender la forma del

espacio y la solución inicial proporcionada. En este apartado se irá

comprendiendo porqué se ha creado una solución inicial más depurada en

vez de proporcionar una aleatoria.

En primer lugar, se hará hincapié en el hecho de que todas las

particiones de una asignatura se encuentran asignadas en un mismo día

gracias a la solución inicial. Este hecho hace que la BT, antes de intentar

moverse fuera del día, lo intente dentro del mismo.

Esta preferencia inicial de la BT por el día en el que se encuentra

asignada la asignatura, proviene de la propia naturaleza de las restricciones:

al cambiar de día una de las particiones de una asignatura se incumplirán

varias restricciones al mismo tiempo (la que obliga a que todas las

particiones de un examen se celebren a la misma hora, la que obliga a que

todos los exámenes de una misma asignatura se celebren el mismo día…).

Este incumplimiento simultaneo hace que aumente mucho la

penalización y por tanto tan solo la BT tan solo cambiará de día una vez

que haya marcado como tabú todas y cada una de las opciones del día al

que inicialmente fue asignada la asignatura.

Por lo tanto, inicialmente parece lógico escoger como vecindario tan

solo el día en que se encuentra asignada la asignatura inicialmente. Es más,

puesto que los exámenes del turno de mañana tan solo pueden realizar el

examen durante la mañana y las de tarde por la tarde, se restringirá

inicialmente el vecindario a estas zonas factibles.

Sin embargo, en esta última disminución del vecindario hay que

tener presente dos aspectos importantes:

Si el día asignado para la asignatura resulta ser un sábado, todos los

exámenes se asignarán por la mañana, independientemente del turno

al que pertenezcan. Es decir, que el vecindario de los exámenes en

sábado será inicialmente tan solo los turnos de mañana.

Page 76: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

75

Si tenemos un examen de una asignatura a extinguir, el vecindario

deberá estar compuesto por todos los slots del día puesto que es

indiferente cuando se asigne.

Por último, si se continúa reflexionando acerca cómo realiza los

movimientos la búsqueda tabú podemos acotar aún más el vecindario.

Existen días en los que no se encuentran disponibles todos los slots por la

coincidencia con la impartición de clases. En estas ocasiones es posible

sacar del vecindario inicial estos slots ocupados ya que el algoritmo evitará

en un primer momento asignar exámenes en esos huecos.

Resumiendo, el vecindario inicial que se elegirá para las soluciones

estará compuesto por los slots disponibles del día (de mañana, de tarde o

todos en función del tipo de examen a mover) en que se encuentre asignada

la asignatura.

Esta estrategia de reducir al máximo el vecindario presenta una clara

ventaja, la velocidad de ejecución del algoritmo aumenta exponencialemte,

disminuyendo así los recursos consumidos. Además la calidad de la

solución encontrada no disminuye en absoluto puesto que lo único que se

hace es seleccionar en primer lugar la parte del espacio donde el algoritmo

va a moverse. Para ello se elimina otra parte a la que, aunque fuera

considerada en la evaluación, no sería nunca seleccionada hasta agotar la

primera parte.

Sin embargo, no todo son ventajas. Acotar de esta manera el espacio

hace que pueda darse el caso de que, una vez evaluado todo el vecindario

inicial para un examen, este siga sin cumplir todas las restricciones.

Llegado este punto, y apoyándose en la memoria de búsqueda tabú,

se introducirán estrategias para reconducir estas situaciones. Estas

estrategias basadas en memoria se explicaran más detenidamente en el

siguiente apartado.

Una vez elegido cuidadosamente el vecindario, hay que realizar

todos los movimientos y evaluarlos. En este problema se han distinguido

dos tipos de movimiento: el cambio de un grupo a un aula vacía y el

intercambio de las aulas asignadas a dos grupos distintos.

El primer tipo de movimiento, está pensado para moverse por las

aulas que se encuentran vacías. El movimiento consiste en cambiar el aula

Page 77: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

76

que un grupo tiene asignada por otra que se encuentre libre. De esta forma,

el aula que inicialmente estaba ocupada pasa a quedar libre y viceversa, el

aula que estaba libre pasa a estar ocupada.

El segundo tipo de movimiento se introduce para poder considerar

también el intercambio de clases entre dos grupos. Este movimiento es

posible siempre que un aula este ocupada por otro grupo, en tal caso, el

resultado del movimiento es que se intercambian las aulas.

Con estos dos movimientos es posible recorrer todo el espacio de

soluciones a partir de la solución inicial, ya que, un aula tan solo puede

estar llena o vacía y ambas situaciones se han tenido en cuenta.

Como se indicó al principio del apartado, a la cuidadosa elección del

vecindario se le suman la actuación de dos filtros: el mecanismo tabú y el

mecanismo de aspiración.

Estos filtros se utilizan de la siguiente forma: una vez evaluados

todos los posibles movimientos del vecindario, se ordenan de mayor a

menor idoneidad. A continuación, se utiliza el filtro tabú para comprobar si

el movimiento en cuestión se encuentra marcado como tabú. En el caso de

que el movimiento sea tabú se utiliza la prueba de aspiración.

La prueba de aspiración comprueba si el movimiento tabú mejora o

no la solución que se tiene del problema. Si la prueba indica que el

movimiento mejora la solución actual se ignora su estatus tabú y el

movimiento es seleccionado como el siguiente paso. En caso negativo, el

movimiento resulta ignorado y se pasa al siguiente en la lista, evitando así

que la búsqueda repita continuamente las mismas soluciones.

5.7.4 ESTRATEGIAS BASADAS EN LA MEMORIA DE CORTO Y

LARGO PLAZO

En este apartado se explicará el uso que se ha hecho tanto de la

memoria a corto plazo MCP como de la memoria de largo plazo MLP.

La MCP es la encargada de llevar a cabo la estrategia de

intensificación haciendo uso tanto de la memoria explicita como de la

Page 78: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

77

memoria basada en atributos. La memoria explicita se usa para calcular y

almacenar el valor de toda la vecindad mientras que, la memoria basada en

atributos, se usa para elegir el vecindario tal y como se ha explicado en el

apartado anterior.

El uso apropiado de la frecuencia y tenencia tabú, posibilita una

exploración rápida, evitando que las soluciones sean revisitadas y además

obligando a veces a innovar en la siguiente solución por estar ciertos

atributos marcados como tabúes activos.

Con respecto a la memoria de largo plazo, cabe decir que se usa

principalmente para diversificar la búsqueda. Para ello, la memoria a largo

plazo almacena el valor de las últimas soluciones y el grupo seleccionado

para el movimiento. Si durante un periodo concreto (medido en número de

iteraciones) la solución no mejora (o empeora) y el grupo elegido es el

mismo, la memoria activa los mecanismos necesarios para diversificar la

búsqueda.

Esta diversificación tiene lugar en dos etapas. La primera de ellas se

ha implementado con idea de acelerar un poco la búsqueda tabú aunque, si

se esperara lo suficiente, no sería necesaria ya que el algoritmo de BT

llegaría a esta nueva región a lo largo de su búsqueda. Sin embargo, la

segunda etapa es completamente necesaria debido a la construcción del

vecindario inicial que se realizó. En los siguientes párrafos se explicará en

detalle el funcionamiento de estas dos etapas.

La primera etapa utiliza la misma característica del espacio de

soluciones que se utilizó para acotar el vecindario aunque a una escala

menor. El algoritmo que genera la solución inicial, asigna todas las

particiones de una misma asignatura en una misma hora. Esto hace que

para que una partición cambie de hora deba explorar primero todos los

huecos de la hora en la que se encuentra asignada. Esto es debido a que

cuando una partición cambia de hora es penalizada durante las iteraciones

que está cambiando por no estar todas las particiones asignadas en la

misma hora.

Por lo tanto, cuando la MLP detecta que la BT se ha quedado

“estancada” durante un número de iteraciones se activa esta primera etapa

de diversificación. Su función consiste en cambiar el vecindario de tal

forma que se obliga a cambiar de hora el grupo de examen y así la BT

Page 79: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

78

puede continuar su proceso buscando una mejor solución en otra zona hasta

el momento inexplorada.

El cambio de hora lo realiza siempre dentro del mismo turno, es

decir, si un examen posee sus dos particiones asignadas en el slot 1 (que

abarca desde las 8:00 h hasta las 11:00 h) se busca una nueva solución en el

slot 2 (de 11:00 h a 14:00h). Esto es así porque no tendría sentido buscar

una mejor solución en los turnos de tarde ya que si la asignatura se

encuentra asignada en los turnos de mañana es porque debe de ir asignada

en la mañana.

Una vez realizado este cambio, la BT continúa su búsqueda de una

mejor solución. La MLP vuelve a registrar tanto el grupo que se mueve

como la evolución de las últimas soluciones (medido en número de

iteraciones). Si durante un número de iteraciones fijado la solución no

mejora (o empeora) y el grupo elegido es el mismo, se pone en marcha la

segunda etapa del proceso de diversificación.

En esta segunda etapa, la BT ha intentado ya situar el grupo de

examen en todos los slots posibles del día al que fue asignado en la

solución inicial. Si tras esto la BT no ha conseguido encontrar ninguna

solución en la que el grupo cumpla todas las restricciones, se considera que

resulta imposible asignar la asignatura en el día seleccionado.

Por lo tanto, en esta segunda etapa se cambia el vecindario de tal

forma que se “fuerce” a todos los grupos de la asignatura a cambiar de día.

Es importante remarcar que es necesario cambiar a todos los grupos y no

solo al que incumple alguna restricción. De otra forma el resto de grupos de

la asignatura pasarían a incumplir la restricción que los obliga a que todos

sus exámenes se celebren el mismo día. Si no se cambiaran todos a la vez,

el mismo algoritmo de BT los iría pasando uno a uno al día en cuestión,

aunque este proceso sería mucho más lento.

Para la elección del nuevo día de la asignatura, se utiliza un

algoritmo similar al que se usó en la solución inicial aunque con algunas

pequeñas modificaciones. Se selecciona el día que obtenga una mayor

puntuación tras evaluar todos los disponibles. Esta puntuación, se asigna a

los días en función de varios parámetros como son el número de slot

disponibles, la presencia o no de asignaturas incompatibles…además se

Page 80: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

79

lleva un registro de todos los días en los que la asignatura a estado asignado

para evitar de esta forma que el algoritmo entre en un ciclo.

Una vez elegido el mejor día para la asignatura, se modifica el

vecindario de la BT consiguiendo de esta forma la diversificación buscada.

Una vez cambiado de día, la BT continúa su proceso de mejora dentro de

este nuevo día.

Por supuesto, si en este nuevo día no se pudiera encontrar una buena

ubicación para la asignatura el algoritmo volvería a entrar en estas dos

etapas de diversificación para volver a cambiar de hora o día la asignatura.

Cabe la posibilidad de que, una vez inspeccionados todos los días, la

asignatura siguiera sin encontrar una ubicación óptima. En este caso, el

algoritmo considerará que es necesario dividir el grupo de examen para así

facilitar su ubicación. El examen variará entonces el número de divisiones

inicial, siempre en función de las divisiones que presente actualmente.

Es decir, si el examen no se encuentra dividido se dividirá en dos

partes. Por el contrario, si el examen se encuentra dividido en dos partes

pasará a estar dividido en tres. Una vez dividido el examen, es necesario

borrar la memoria que almacena los días en los que ha estado asignado la

asignatura para así poder reiniciar el ciclo completo.

Como se puede comprobar, se recurre a la división de los grupos

siempre como último recurso. Esto se hace así porque las divisiones de los

exámenes siempre traen como consecuencia mayores problemas de

organización y, por tanto, se busca de esta forma que el número de

divisiones de un examen sea mínimo.

Como se vio en la descripción del algoritmo de BT existen

numerosas estrategias distintas a las estrategias de intensificación y

diversificación como son la oscilación estratégica o el reencadenamiento de

trayectorias. Sin embargo, estas últimas no se han tenido en cuenta en el

algoritmo de este problema ya que los resultados obtenidos con la

intensificación y la diversificación han sido satisfactorios.

Page 81: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

80

6. DESCRIPCIO N DEL SOFTWARE DEL ALGORITMO DE BU SQUEDA TABU

6.1 EL ENTORNO MATLAB

Matlab es una herramienta informática simple, versátil y de gran

poder para aplicaciones numéricas, simbólicas y gráficas, que contiene una

gran cantidad de funciones predefinidas para aplicaciones en ciencias en

ingeniería. Debido a estas características, se ha elegido este lenguaje de

programación para la implementación del algoritmo de búsqueda tabú

encargado de resolver el problema de diseño de calendarios.

Las funciones incorporadas en Matlab facilitan bastante la

programación, ya que evita un gasto innecesario al momento de realizar

operaciones básicas, y no tan básicas, que forman parten del algoritmo

específico. Estas funciones van desde el manejo de matrices, hasta

aplicaciones en Estadística e Investigación Operativa.

Otro de los aspectos destacados y que también justifica la utilización

de Matlab es su cómoda integración con el entorno de Excel. Como se verá

posteriormente, debido a la gran cantidad de datos que necesita el

programa, se ha optado por introducir los datos desde Excel en vez de

introducirlos directamente por pantalla durante la ejecución del programa.

La fácil integración entre Excel y Matlab ha permitido crear una

sencilla plantilla que permite introducir los datos poco a poco, sin

necesidad de tener el programa en ejecución y con la posibilidad de

modificarlos fácilmente. Además, esta forma de introducir los datos

permite al usuario poder utilizarlos en una ejecución posterior del programa

sin tener que volver a introducir de nuevo todos los datos.

A continuación se enumerarán algunas de las principales

características de Matlab:

Capacidad para manejo matemático simbólico.

Funciones para la elaboración de gráficos y visualización avanzada.

Page 82: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

81

Programación mediante un lenguaje de alto nivel.

Soporte para programación estructurada y orientada a objetos.

Facilidades básicas para el diseño de una interfaz gráfica.

Extensa biblioteca de funciones.

Paquetes especializados para algunas ramas de ciencia e ingeniería.

Sistema de ayuda en línea.

Interacción con otros entornos.

6.2 RECURSOS INFORMÁTICOS EMPLEADOS

La versión de Matlab utilizada es la 7.8.0.347 (R2009a), y las

principales características técnicas del equipo informático utilizado son:

Sistema operativo: Windows 7 Home Edition Premium. Versión 32-

bits.

Procesador: Intel Core 2 Duo T9500. 2.6GHz.

Memoria Ram: 3 GB.

6.3 ARCHIVOS DE ENTRADA

El programa recibe tres ficheros de entrada creados con el programa

Excel. Estos archivos pueden estar tanto en formato Excel 2003 (*.xls)

como en formato Excel 2007 (*.xlsx), además no es necesario que tengan

un nombre específico, sino que el usuario puede seleccionarlo directamente

a través del propio explorador de Windows desde la interfaz del programa.

Sin embargo, sí es necesario que estos archivos respondan a un

formato concreto para que el programa pueda cargar correctamente los

datos. En los siguiente apartados se explicará más detenidamente cual debe

ser este formato para cada uno de los archivos.

Page 83: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

82

6.3.1 ARCHIVO DE DATOS

A pesar de que el usuario puede escoger libremente el nombre, a lo

largo de la memoria se utilizará el nombre de “Datos” para referirse al

primero de los archivos. Este archivo contiene toda la información de cada

uno de los grupos de clase que realizan examen en la convocatoria:

titulación a la que pertenece, curso, tipología de la asignatura, turno, etc.

Cada una de las líneas del archivo contiene información de un

examen de la convocatoria para la que se esté resolviendo el problema, a

excepción de la primera línea que es el encabezado e indica la información

que se debe introducir en cada una de las columnas. Por tanto, la

información se debe introducir siempre a partir de la segunda fila. El

formato del archivo es el siguiente:

Primera columna (Columna A)

En esta columna, como se indica en su encabezado, se debe

introducir la titulación a la que pertenece el examen de su fila. Una vez

introducido el nombre de una titulación, no es necesario copiar el nombre

de la misma para todos y cada uno de los exámenes de esa titulación.

Si la celda correspondiente a la titulación se encuentra vacía, el

programa interpreta que ese examen pertenece a la titulación que se

encuentre en la parte superior de la columna. Es decir, si se escribe el

nombre de una titulación en la casilla A-5 de Excel, el programa interpreta

que mientras no se escriba nada distinto, todos los exámenes que se

encuentren por debajo de la fila 5 (incluida) pertenecen a la misma

titulación.

Esto consigue que el usuario solo necesite escribir una vez el nombre

de la titulación, aunque si lo estima necesario el usuario puede rellenar

todas las celdas de la columna.

Page 84: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

83

Segunda columna (Columna B)

En esta columna se debe introducir, en formato numérico, el curso al

que pertenece la asignatura correspondiente a su fila. Al igual que en el

caso de la titulación, en esta columna tampoco es necesario rellenar todas

las casillas de las columnas.

El programa interpreta una casilla vacía como si estuviera escrita con

el último número escrito de sus filas superiores. Por tanto, tan solo será

estrictamente necesario escribir en la casilla cuando exista un cambio de

curso, aunque se pueden escribir todas o parte de ellas si se estima más

cómodo.

En esta columna, merecen una especial mención los denominados

complementos de formación. Los complementos de formación son unas

asignaturas que no se encuentran ligada a ningún curso en concreto de la

titulación a la que pertenecen. A pesar de ello, su casilla no puede dejarse

en blanco puesto que si no el programa interpretaría que pertenecen al

último curso escrito.

Por lo tanto, se les debe asignar un curso distinto al de todas las

asignaturas, por ejemplo el 6. Si el usuario desea asegurarse que todos los

complementos de formación se celebren en distintos días, es necesario que

les asigne a todos ellos el mismo curso. En caso contrario, el usuario

debería asignarle distintos cursos a los complementos que no tengan porqué

encontrase en distintos días, por ejemplo 6, 7, 8, etc.

Tercera columna (Columna C)

En esta columna se indica la fecha de inicio del periodo de exámenes

para la asignatura en cuestión. La fecha debe introducirse, tal y como

indica su encabezado, en el formato siguiente: dd/mm/aaaa, donde “d”

indica día, “m” mes y “a” el año. Al igual que en las columnas anteriores,

si la casilla se deja vacía el programa interpreta que la fecha de inicio es la

última escrita por arriba.

Page 85: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

84

Cuarta columna (Columna D)

En esta columna se indica la fecha en la que finaliza el periodo de

exámenes de la asignatura en cuestión. Al igual que en la columna C la

fecha hay que introducirla en el formato dd/mm/aaaa. La interpretación que

hace el programa de una casilla vacía es la misma que en las otras

columnas: se interpreta como la última casilla rellena por arriba. Es decir,

que tan solo es necesario escribir la fecha cuando esta difiera de lo escrito

en las filas inmediatamente superiores.

Quinta columna (Columna E)

En esta columna se indica el nombre de la asignatura tal y como lo

mostrará el programa una vez hallada la solución. Las casillas vacías de

esta columna se interpretan de la misma forma que en las columnas

anteriores. Esto resulta útil cuando una asignatura está compuesta por

varios grupos de clase ya que de esta forma no es necesario repetir el

nombre, bastaría con ponerlo en el primer grupo.

Por supuesto, en el caso de que se decida escribir el nombre en todos

los grupos el programa lo interpretaría correctamente, como grupos de

distintas asignaturas, con todas las consecuencias que esto implica. Sin

embargo, esta práctica se desaconseja en general ya que esto implica que se

ha de escribir exactamente igual, incluidas las tildes, puntos, comas,

espacios…por lo tanto, y para asegurarse un correcto funcionamiento

resulta recomendable escribirlo tan solo una vez.

Sexta columna (Columna F)

En esta columna se debe introducir el número del grupo de clase en

formato numérico: 1, 2, 3… para las asignaturas formadas por un solo

grupo de clase, se ha de poner el número 1, a pesar de que sea el único. En

esta columna carece de sentido dejar alguna casilla vacía, ya que cada línea

corresponde a un grupo distinto y, por tanto, tendrá una numeración

distinta.

Page 86: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

85

Séptima columna (Columna G)

En esta columna se especifica el turno, de mañana o de tarde, en el

que se imparte el grupo en cuestión. En esta columna, al igual que en la

anterior, tampoco se deben dejar ninguna casilla vacía sino que se deben

rellenar todas y cada una de ellas. En esta columna solo se debe escribir

una de las tres “claves” que se indican a continuación:

Para las asignaturas que se impartan durante el turno de mañana, es

decir de 8:00 h a 14:00 h, se debe escribir en la casilla la siguiente

clave: “M” (sin comillas y en mayúsculas).

Para las asignaturas que se impartan durante el turno de tarde, de

15:00 h a 21:00 h, se debe escribir la siguiente clave: “T” (sin

comillas y en mayúsculas).

Por último, para las asignaturas a extinguir, en las que no hay

docencia, se debe escribir la siguiente clave: “V” (sin comillas y en

mayúsculas).

Octava columna (Columna H)

En esta columna se debe indicar si se trata de una asignatura común a

todos los alumnos, ya sea troncal u obligatoria, o se trata de una asignatura

optativa. En esta columna se deben escribir todas y cada una de las

casillas, sin dejar ninguna en blanco. Para identificarlas, se debe utilizar

una de las siguientes “claves”:

Para las asignaturas que sean comunes a todos los alumnos, como las

troncales y las obligatorias, se utilizará la siguiente letra: “C” (Sin

comillas y en mayúsculas).

Para las asignaturas que sean optativas, se utilizará la siguiente letra:

“O”.

Page 87: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

86

Novena columna (Columna I)

En esta columna se debe introducir el número de alumnos que se

presentaran a la convocatoria que se esté resolviendo. Es importante tener

en cuenta un aspecto, debido a que se ha impuesto que cada examen se

puede dividir como máximo en 3 partes y a que el tamaño de las clases es

limitado, el número máximo de alumnos por grupo está limitado. En este

caso el aula de mayor tamaño es de 60 alumnos por lo que el grupo

máximo que podemos ubicar es de 180 alumnos. Los datos de esta columna

se deben introducir en formato numérico.

Décima columna (Columna J)

Esta columna contiene un número que identifica al grupo de la

asignatura. Se trata de una formalidad del funcionamiento interno del

programa que a su vez permite llevar un recuento del número de grupos

que se examinaran. Por la construcción del archivo Excel, esta columna

contiene un número menos que la fila en la que se encuentre el grupo, es

decir, la fila 2 contiene el grupo 1, la 3 el grupo 2…

Por este motivo el archivo Excel que se facilita como plantilla lleva

implementada una fórmula que asigna el número automáticamente. Por lo

tanto, para rellenar esta columna basta con arrastrar la fórmula desde la

esquina inferior izquierda de la casilla.

6.3.2 ARCHIVO DE HORARIOS

Al igual que en el archivo anterior, el usuario puede elegir libremente

el nombre del este archivo. En esta ocasión, el archivo contiene la

ocupación de las aulas por hora y día durante el periodo de exámenes. Este

archivo resulta necesario para poder determinar cuándo un aula se

encuentra libre para la celebración de un examen. Como en el caso anterior,

la información se proporciona a través de un archivo Excel de formato

definido.

Page 88: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

87

Puesto que la ocupación de las aulas depende del día en el que se

observe, en este archivo será necesario introducir tantas hojas como días de

examen haya, incluso si es festivo. Los domingos, son los únicos días de la

semana que deben nunca deben disponer de hoja de ocupación.

La apariencia de una hoja del archivo se puede observar en la figura

3:

Figura 3

Como se puede observar, el cuadro de ocupación se encuentra

dividido por aula y hora. Para introducir los datos en este archivo basta con

marcar con una “C” (En mayúsculas y sin comillas) las aulas que se

encuentren ocupadas con clases y, por tanto, no puedan ser utilizadas para

la celebración de exámenes.

Es importante resaltar, que solo es necesario marcar las aulas que no

se encuentren disponibles en una hora determinada, es decir, que los

sábados por la tarde o los días festivos no se deben marcar con una “C” ya

que el programa asume por defecto que estos días no son lectivos.

Por lo tanto, este archivo debe contener la ocupación diaria de las

aulas para los periodos lectivos, contemplando de esta forma la no

disponibilidad de un aula por motivos extraordinarios y distintos de los días

festivos o los sábados tarde.

Page 89: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

88

6.3.3 ARCHIVO DE DÍAS DE EXAMEN

Este archivo de Excel debe contener los nombres ordenados de cada

una de las hojas Excel del archivo anterior. Puesto que el archivo que

contiene la ocupación de las aulas debe tener tantas hojas como días tenga

el periodo de examen, resulta lógico nombrar todas esas hojas según el día

que contengan. Este es el motivo por el que nos referimos a este archivo

con este nombre.

Al igual que los archivos anteriores, este Excel se puede renombrar

como el usuario quiera ya que posteriormente será seleccionado mediante

el explorador de Windows.

El formato que debe contener este archivo, así como su contenido,

son bastante sencillos. Con respecto al formato simplemente hay que

rellenar la primera columna (Columna A) del archivo Excel respetando el

encabezado, es decir, comenzando a escribir a partir de la segunda línea.

Con respecto al contenido, decir que en este Excel deben figurar los

nombres exactos de todas y cada una de las hojas Excel del archivo que

contiene la ocupación. Por ejemplo, si el Excel de ocupación posee 10

hojas que se llaman: 1 de enero, 2 de enero, etc. En este archivo habrá que

escribir 1 de enero en la casilla A2, 2 de enero en la casilla A3, etc.

6.4 ARCHIVOS DE SALIDA

Una vez finalizada la ejecución del algoritmo, el programa genera un

archivo de salida (en formato Excel) que contiene la mejor solución

encontrada a lo largo de la búsqueda. Al igual que en los archivos

anteriores, el usuario puede dar un nombre libremente a este archivo.

El formato del archivo Excel de salida es el siguiente: se crean tantas

hojas como titulaciones existan en la convocatoria y en cada una de ella se

sitúan las asignaturas correspondientes la titulación. De esta forma, el

usuario se encuentra fácilmente clasificadas todas y cada una de las

asignaturas de la convocatoria.

Page 90: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

89

Para cada asignatura se incluye la información necesaria para saber a

qué aula y hora se encuentran asignados los exámenes. La apariencia de

una hoja de este archivo se puede observar en la figura 4:

Figura 4

Como se puede observar, para cada asignatura se proporciona

información acerca de la fecha, el curso, el tipo…así como el aula y la hoja

en la que se encuentra asignado el examen en cuestión.

6.5 ESTRUCTURA DEL PROGRAMA Y DIAGRAMA DE FLUJO

En este apartado, se irán escribiendo y detallando todas y cada una

de las funciones por las que está compuesto el programa. Para ello, en

primer lugar se realizará una descripción del cometido de la función. Una

vez explicado este aspecto, se explicará el prototipo de la función así como

los parámetros de entrada y salida de la misma. Por último, se representará

la estructura de la función mediante un diagrama de flujo.

Page 91: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

90

6.5.1 FUNCIÓN INTERFAZ

DESCRIPCIÓN

Se trata de una función creada desde el asistente para crear GUI de

Matlab. Esta función contiene la interfaz gráfica que aparece al ejecutar el

programa y que posee el aspecto que se observa en la figura 5:

Figura 5

Como se puede observar, se trata de una interfaz sencilla que tiene

como función principal permitir que el usuario pueda indicar distintas

ubicaciones de forma gráfica.

Estas ubicaciones son las direcciones de los tres archivos de entrada:

el de datos, el de horarios y el de días de examen. Además es posible

especificar la ubicación deseada y el nombre para el archivo de salida.

Page 92: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

91

El cometido de esta función consiste en generar la interfaz gráfica

para facilitar al usuario la inserción de datos para, una vez indicados todos,

llamar a la función principal del programa al pulsar el botón “Ejecutar”.

PROTOTIPO

Esta función no dispone de elementos de entrada ni de salida y, por

lo tanto, su prototipo es simplemente el nombre de la función. Esto

responde al hecho de que los datos de entrada se introducen a través de

archivos Excel o a través de consola.

Por otro lado, los datos de salida se presentan también mediante un

archivo Excel.

6.5.2 FUNCIÓN MAIN

DESCRIPCIÓN

La función main constituye la función principal del programa. Pese a

que en ella no se realiza ninguna operación destacada, resulta vital para el

correcto funcionamiento del programa. Su principal cometido es servir de

hilo conductor, llamando a las funciones correspondientes en cada

momento para que el programa funcione correctamente.

PROTOTIPO

El prototipo de la función es el siguiente:

main(ubicacion_datos,ubicacion_horarios,ubicacion_dias

_examen,ubicacion_solucion)

Pese a ser la función principal, se puede observar como dispone de

parámetros de entrada. Esto se debe al hecho de que las direcciones de los

archivos de entrada y de salida se introducen a través de la interfaz gráfica.

Page 93: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

92

Debido a esto, se ha estimado oportuno que la función interfaz llame

a la principal una vez introducida las direcciones haciendo de esta forma

que main disponga de datos de entrada.

PARÁMETROS DE ENTRADA

Como parámetros de entrada la función main recibe los siguientes

datos:

ubicacion_datos: contiene la dirección del archivo de datos.

ubicacion_horarios: contiene la dirección del archivo de

horarios.

ubicacion_dias_examen: contiene la dirección del archivo de

días de examen.

ubicacion_solucion: contiene la dirección donde el usuario

desea guardar la solución que proporciona el programa.

PARÁMETROS DE SALIDA

Esta función no devuelve ningún parámetro porque la solución se

devuelve a través de un fichero Excel.

DIAGRAMA DE FLUJO

El diagrama de flujo de la función main se representa en la figura 6:

Page 94: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

93

Se llama a la función

de lectura de datos

Se genera la solución inicial con

los datos obtenidos

Se inicializa la

búsqueda tabú

Se prepara el

archivo de salida

Fin del programa

Se evalúa la solución

inicial obtenida

Se inicializa la

búsqueda tabú

¿La solución encontrada

es correcta?

Se notifica al usuario

los errores

Figura 6

Page 95: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

94

6.5.3 FUNCIÓN LECTURA_ DATOS

DESCRIPCIÓN

La función lectura_datos es el módulo encargado de leer todos los

ficheros Excel y traducirlo al lenguaje con el que trabaja el programa.

Además de los datos que se introducen a través de los ficheros Excel, este

módulo necesita que el usuario introduzca algunos datos por pantalla.

La “traducción” que realiza este módulo, consiste básicamente en

convertir los archivos Excel en varias matrices de unos y ceros. Estas

matrices contienen diversa información sobre las relaciones existentes entre

los distintos exámenes, y resultan básicas para el funcionamiento del

programa.

Como ejemplo de estas matrices se puede presentar la matriz que

contiene información de los periodos de examen de cada grupo. Como cada

grupo dispone de un calendario distinto de examen, tanto en duración como

en fecha de comienzo, se decide crear la siguiente matriz:

Se trata de una matriz rectangular que posee tantas filas como

exámenes existen en la convocatoria y tantas columnas como días

de examen hay en total. Cada fila “i” se llena con 1 o 0 dependiendo

de si el día “j” pertenece o no al periodo de exámenes del grupo i.

De esta forma se consigue disponer de una gran cantidad de

información en tan solo una matriz de unos y ceros.

PROTOTIPO

El prototipo de la función es el siguiente:

[diasexamen,grupos,aulas,periodos,diasemana,tau,cap,f

estivo,turno,manana,tarde,grupoincompatible,grupoclas

e,grupooptativa,aulasafec,divisiones,periodo_examen,d

ias_sabado,grupocurso,matriz_numeros,matriz_texto,txt

_aulas,dias_periodo,hueco_2,hueco_3]=Lectura_datos(ub

icacion_datos,ubicacion_horarios,ubicacion_dias_exame

n)

Page 96: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

95

PARÁMETROS DE ENTRADA

Los parámetros de entrada de esta función son escasos, esto es

consecuencia de que la mayor parte de la información se introduce a través

de los archivos Excel. Los parámetros de entrada son:

ubicacion_datos.

ubicacion_horarios.

ubicacion_dias_examen.

El significado de estos parámetros ya fue explicado en el anterior

apartado.

PARÁMETROS DE SALIDA

Esta función dispone de una gran cantidad de parámetros de salida,

ya que su función consiste precisamente en generar esa información y

transmitirla al resto del programa. Los parámetros de salida son:

diasexamen: esta variable almacena la cantidad de días que

existen para la realización de exámenes, descontando únicamente los

domingos que no son tenidos en cuenta.

grupos: contiene el número de exámenes que se realizarán en la

convocatoria, es decir, este número coincide con el número de filas

del archivo Excel Datos menos una (para descontar el encabezado).

aulas: contiene el número de aulas que existen disponibles para la

celebración de exámenes.

periodos: contiene el número de periodos o slots del periodo de

exámenes. Su valor se obtiene multiplicando por cuatro el número de

días de examen.

diasemana: este parámetro almacena el día de la semana (lunes,

martes,…) en que comienza el periodo de exámenes.

tau: este parámetro es un vector que almacena el tamaño de cada

uno de los grupos que concurrirán a examen.

cap: se trata de un vector que almacena la capacidad de cada una de

las aulas de la Facultad.

Page 97: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

96

festivo: este vector contiene información acerca de que días son

laborables y que días son festivos.

turno: este parámetro almacena información sobre el turno

(mañana, tarde o a extinguir) que pertenecen cada uno de los

exámenes de la convocatoria.

manana: se trata de un vector que almacena todos los slots que

pertenecen al turno de mañana.

tarde: se trata de un vector que almacena todos los slots que

pertenecen al turno de tarde.

grupoincompatible: este parámetro es una matriz cuadrada que

almacena información acerca de qué grupos son incompatibles entre

ellos, es decir, que grupos deben ir forzosamente asignados en días

distintos. Para ello almacena un 1 en la posición (i, j) si los grupos i

y j son incompatibles. En caso contrario, almacena un 0.

grupoclase: esta matriz almacena información acerca de que

exámenes pertenecen a la misma asignatura y, por lo tanto deben

realizar el examen el mismo día. De esta forma el programa asigna

un 1 en la posición (i, j) si los grupos i y j pertenecen a la misma

asignatura. En caso contrario se asigna un 0.

grupooptativa: este parámetro es una matriz cuadrada que

almacena información acerca de los exámenes de las asignaturas

optativas. Se asigna un 1 a la posición (i, j) siempre que el examen j

pertenezca a una asignatura optativa del mismo curso que el examen

i. En caso contrario se asigna un 0.

aulasafec: se trata de una matriz rectangular que almacena

información sobre las aulas que no se encuentran disponible para la

realización de exámenes en un periodo determinado. Al igual que el

resto de matrices almacena la información en forma de 1 y 0. Cuando

en la posición (i, j) hay un 1 significa que el aula i no se encuentra

disponible en el slot j. En caso contrario, el aula i se encuentra

disponible en el slot j.

divisiones: este vector almacena el número de divisiones que se

han hecho en cada uno de los grupos o exámenes que existen en la

convocatoria.

periodo_examen: en esta matriz se almacena información

relativa a los días del periodo de exámenes global en los que es

Page 98: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

97

posible celebrar cada uno de los exámenes. Es decir, cuando la

posición (i, j) de la matriz es 1 quiere decir que el examen i se puede

celebrar en el día j. Si fuera 0 quería indicar que el examen i no se

puede celebrar el día j.

dias_sabado: este vector contiene información sobre los días del

periodo de exámenes que son sábados.

grupocurso: esta matriz almacena información acerca de los

grupos de examen que pertenecen a un mismo curso. Representa una

información útil para que, en la solución inicial, se repartan lo mejor

posible en el tiempo los exámenes de un mismo curso.

matriz_numeros: esta matriz contiene toda la información

numérica que se introdujo en el archivo Excel Datos. La única

modificación que el programa hace de estos datos es que completa

las casillas que se dejaron vacías automáticamente.

matriz_texto: esta matriz contiene toda la información de texto

que se introdujo en el archivo Excel Datos. Al igual que en su

homóloga de datos numéricos, la información proveniente del Excel

ha sido completada para rellenar todas las celdas.

txt_aulas: este vector contiene la designación que se da a cada

una de las aulas del edificio para poder identificarlas posteriormente

cuando prepare los datos de salida del programa.

dias_periodo: este vector almacena, en forma de texto, los días

del periodo de examen. Por ejemplo si el primer día de exámenes

fuera el 10 de enero de 2011 este vector almacenaría en primer lugar

“10/01/2011”.

hueco_2: esta matriz almacena información sobre qué huecos o

slots disponen de dos horas consecutivas libres.

hueco_3: esta matriz almacena información sobre qué huecos o

slots disponen de tres horas consecutivas libres.

DIAGRAMA DE FLUJO

El diagrama de flujo de esta función se representa en la figura 7:

Page 99: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

98

Lectura y

preparación del

archivo Datos.xls

Generación de

todas las matrices

de datos

Lectura de los

archivos

Horarios.xls y

dias_examen.xls

Generación de la

matriz de

ocupación

Fin

Figura 7

Page 100: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

99

6.5.4 FUNCIÓN SOLUCION_INICIAL

DESCRIPCIÓN

Esta función constituye la primera función que contiene un algoritmo

más o menos complejo. Las funciones anteriores, como se puede

comprobar en sus diagramas de flujo, son funciones con un cometido

bastante sencillo y su creación responde a motivos fundamentalmente de

organización.

La finalidad de esta función consiste en proporcionar a la búsqueda

tabú una solución inicial de una alta calidad con idea de reducir al máximo

los dilatados tiempos de ejecución. Si nos encontráramos ante un problema

de un tamaño más reducido, la generación de este tipo de soluciones

iniciales es posible que careciera un poco de sentido. En problemas más

pequeños la ejecución de la búsqueda tabú sobre una solución aleatoria es

lo suficientemente eficaz como para converger en una solución óptima en

un espacio de tiempo razonable.

Como se explicó en apartados anteriores, esta función genera una

solución de tal calidad que permite reducir al máximo la vecindad de la

búsqueda tabú.

PROTOTIPO

El prototipo de esta función es el siguiente:

[X,delta]=solucion_inicial(diasexamen,grupos,aulas,per

iodos,festivo,turno,grupoincompatible,grupoclase,grupo

optativa,aulasafec,divisiones,periodo_examen,dias_saba

do,grupocurso,matriz_texto)

Como se puede comprobar, esta función recoge gran parte de los

parámetros de salida que se generan en la función lectura_datos

devolviendo tan solo dos matrices cuyos significados se verán en los

siguientes apartados.

Page 101: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

100

PARÁMETROS DE ENTRADA

Los parámetros de entrada de esta función son:

diasexamen

grupos

aulas

periodos

festivo

turno

grupoincompatible

grupoclase

grupooptativa

aulasafec

divisiones

periodo_examen

dias_sabado

grupocurso

matriz_texto

La descripción de estos parámetros se llevó a cabo en el apartado

“parámetros de salida” de la función lectura_datos por lo que no se volverá

a repetir en este.

PARÁMETROS DE SALIDA

Los parámetros de Salida de esta función son:

X: es una matriz tridimensional que almacena la variable principal

del modelo . Esta variable almacena un valor entre 0 y 1 en cada

posición (i, j, t) que indica, según se explicó en el modelo

matemático, a que aulas y en qué instante se encuentra asignado cada

uno de los exámenes.

delta: al igual que X es una matriz tridimensional que, en esta

ocasión, guarda la información de la variable binaria . En cada

Page 102: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

101

posición (i, j, t) delta guarda un 1 o un 0 en función del

correspondiente valor de la variable .

DIAGRAMA DE FLUJO

El diagrama de flujo de esta función resulta algo más complejo que

el de las anteriores funciones. Se representará en la figura 8:

Page 103: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

102

Cálculo de los slots disponibles

por día inicialmente

Se eliminan los huecos de festivos

y del sábado por la tarde

Valoración de los días en

función de los huecos libres

Para todos los cursos

Se toma como día inicial el que

obtenga una mejor valoración y

no sea sábado

Se seleccionan todos los

exámenes de un curso

Para todos los

exámenes de un curso

Calculo los huecos que

necesito para la asignatura

Día inicial:2:(Día inicial-2)

¿Fin del curso?

¿Fin de los

cursos?

FIN

B A C

Page 104: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

103

¿Es festivo o no

pertenece al periodo

de exámenes?

¿Caben todas las

particiones en el día?

¿Hay grupos

incompatibles o

asignaturas optativas

en el día?

Se asigna en

el día

¿Fin del bucle?

¿Es festivo o no

pertenece al periodo

de exámenes?

¿Caben todas las

particiones en el día?

¿Hay grupos

incompatibles o

asignaturas optativas

en el día?

Se asigna en

el día

(Día inicial+1):2:(Día inicial-1)

¿Fin del bucle?

B A

B A C

Page 105: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

104

Día inicial:2:(Día inicial-2)

¿Es festivo o no

pertenece al periodo

de exámenes?

¿Caben todas las

particiones en el día?

¿Hay grupos

incompatibles? Se asigna en

el día

¿Fin del bucle?

(Día inicial+1):2:(Día inicial-1)

¿Es festivo o no

pertenece al periodo

de exámenes?

¿Caben todas las

particiones en el día?

¿Hay grupos

incompatibles? Se asigna en

el día

¿Fin del bucle?

Figura 8

A B

Page 106: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

105

6.5.5 FUNCIÓN RESTRICCIONES

DESCRIPCIÓN

Esta función es la que posee implementadas todas las restricciones

del modelo matemático, tanto las duras como las suaves. Su cometido

consiste en recibir cada una de las soluciones que se van generando a lo

largo del proceso y evaluarlas. Esta evaluación se realiza con un sistema de

penalizaciones que, en función de la restricción que se incumpla, penaliza

en mayor o menor medida la solución.

De esta forma, al sumar las penalizaciones de todas las restricciones

se obtiene finalmente la evaluación de la solución en su conjunto. Esta

evaluación, se devuelve dividida en dos términos: el correspondiente a las

restricciones duras por un lado, y el de las restricciones suaves por otro.

Esto es necesario porque, a pesar de que la búsqueda tabú intenta disminuir

ambos términos, el que indica cuando se ha llegado al óptimo es el primero.

El término correspondiente a las restricciones suaves, se utiliza

simplemente para deshacer posibles empates entre distintos movimientos.

En estos casos de empate, es cuando se elige el movimiento con menor

evaluación en las restricciones suaves ya que siempre se da prioridad a la

evaluación de las restricciones duras.

PROTOTIPO

El prototipo de esta función es el siguiente:

[evaluacion_f,evaluacion_g]=restricciones(diasexamen,g

rupos,aulas,periodos,diasemana,tau,cap,festivo,turno,m

anana,tarde,grupoincompatible,grupoclase,grupooptativa

,aulasafec,divisiones,periodo_examen,dias_sabado,cambi

ar,hueco_2,hueco_3,X,delta)

Se puede observar como la función recibe como entrada la mayoría

de parámetros generados en la función de lectura de datos así la solución

(X y delta) a evaluar.

Page 107: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

106

PARÁMETROS DE ENTRADA

Los parámetros de entrada de esta función son:

diasexamen

grupos

aulas

periodos

diasemana

tau

cap

festivo

turno

manana

tarde

grupoincompatible

grupoclase

grupooptativa

aulasafec

divisiones

periodo_examen

dias_sabado

cambiar: este parámetro es un parámetro auxiliar que se utiliza

para acelerar la comprobación de las restricciones. El motivo de este

parámetro proviene del hecho de que hay ciertas restricciones cuya

comprobación requiere mucho esfuerzo computacional. En concreto

se trata de las restricciones (11), (12), (13), (14) y (15) del modelo

matemático del problema. Estas restricciones solo pueden cambiar de

estado (pasar de cumplirse a no cumplirse o viceversa) con los

movimientos que cambian de día a las asignaturas. Por lo tanto, para

agilizar la búsqueda lo que se hace es que tan solo se comprueban

cuando se realiza algún cambio de día. Una vez realizado el cambio,

se verifica mediante una función si el cambio se ha realizado

correctamente, es decir, si cumple las cinco restricciones antes

enunciadas. En caso afirmativo, el algoritmo deja de verificar dichas

restricciones hasta nuevo cambio. En caso negativo, el algoritmo

Page 108: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

107

sigue verificando dichas restricciones hasta que se cumplan,

momento en el que dejan de verificarse hasta nuevo cambio.

hueco_2

hueco_3

X

delta

Con excepción del parámetro cambiar que ha sido explicado, el resto

de parámetros provienen de funciones anteriores con lo que no se volverá a

explicar su significado.

PARÁMETROS DE SALIDA

Los parámetros de salida de esta función son:

evaluacion_f: en este parámetro se guarda la suma de todas las

penalizaciones por incumplimientos de restricciones duras. Este es el

parámetro que indica cuando una solución es aceptable o no, es

decir, cuando el valor de este parámetro es nulo indica que la

búsqueda tabú ha encontrado una solución admisible.

evaluacion_g: en este parámetro se guarda la suma de todas las

penalizaciones por incumplimientos de restricciones suaves. Su valor

difiere del de evaluacion_f en varios órdenes de magnitud. La razón

de esta diferencia radica en el hecho de que lo que realmente busca

minimizar la búsqueda tabú es la suma de estos dos parámetros. Sin

embargo, siempre debe tener prioridad cumplir una restricción dura

antes que, por ejemplo, varias suaves. Debido a esta idea la función

de las restricciones suaves pasa a ser más de desempate entre

movimientos que obtengan la misma evaluación en las restricciones

duras.

DIAGRAMA DE FLUJO

El diagrama de flujo de esta función se representa en la figura 9:

Page 109: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

108

Para todas las

restricciones duras

¿Se cumple la

restricción?

evaluacion_f=evaluacion_f+Penalización

¿Fin de bucle?

Para todas las

restricciones suaves

¿Se cumple la

restricción?

evaluacion_g=evaluacion_g+Penalización

¿Fin de bucle?

FIN

Penalización=0

Penalización=0

Figura 9

Page 110: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

109

6.5.6 FUNCIÓN GRUPOS_MOVER

DESCRIPCIÓN

El cometido de esta función es identificar, de entre todos los grupos

que concurren a examen, cuáles de ellos incumplen alguna restricción. De

esta forma, cuando se seleccionan los grupos sobre los que se va a crear la

vecindad en la búsqueda tabú, tan solo se tienen estos grupos dejando a un

lado los grupos que se encuentran bien asignados. Esto resulta útil para

acotar la búsqueda tabú a aquellas áreas donde sea posible mejorar,

evitando en un primer lugar mover grupos que ya se encuentran bien

asignados.

Sin embargo, esta elección de grupos que presentan problemas no

impide que los grupos que estén bien se muevan. Para ello se han

introducidos movimientos de intercambio entre grupos. De esta forma, si

durante el movimiento de un grupo con problemas, el mejor movimiento

resulta de intercambiar el aula con un grupo que está bien el algoritmo

ejecutará dicho movimiento.

Lo que sí se consigue con esta fórmula, es que los grupos que están

bien asignados solo se muevan para mejorar la solución. Además esta

fórmula también consigue acelerar la búsqueda tabú, ya que solo se buscan

mejores soluciones en zonas muy susceptibles de encontrarlas.

PROTOTIPO

El prototipo de esta función es el siguiente:

[lista_comprobar]=grupos_mover(diasexamen,grupos,aulas

,periodos,diasemana,tau,cap,festivo,turno,manana,tarde

,grupoincompatible,grupoclase,grupooptativa,aulasafec,

divisiones,periodo_examen,dias_sabado,X,delta)

Page 111: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

110

PARÁMETROS DE ENTRADA

Los parámetros de entrada de esta función son:

diasexamen

grupos

aulas

periodos

diasemana

tau

cap

festivo

turno

manana

tarde

grupoincompatible

grupoclase

grupooptativa

aulasafec

divisiones

periodo_examen

dias_sabado

X

delta

Todos y cada uno de los parámetros de entrada de esta función han

sido explicados en funciones anteriores.

PARÁMETROS DE SALIDA

Esta función tan solo devuelve un único parámetro:

lista_comprobar: este parámetro es un vector que almacena

información sobre qué grupos incumplen alguna restricción, es decir,

indica que grupos al menos es necesario mover para alcanzar una

solución admisible. Además, esto también ofrece una idea acerca de

Page 112: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

111

lo que le queda a la búsqueda tabú para terminar y, por tanto,

ofreciendo un parámetro útil para medir el avance de la búsqueda. Su

formato es bastante simple, almacena un 1 en la posición i si el grupo

i incumple alguna restricción. En caso contrario, almacena un 0.

DIAGRAMA DE FLUJO

El diagrama de flujo de esta función se representa en la figura 10:

Para todos los grupos

Para todas las restricciones

¿El grupo “i”

cumple la

restricción?

lista_comprobar(i)=1

lista_comprobar=0

¿Se han

comprobado todas

las restricciones?

¿Se han todos

los grupos?

FIN

Figura 10

Page 113: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

112

6.5.7 FUNCIÓN BUSQUEDA_TABU

DESCRIPCIÓN

Esta función del programa es la que contiene algoritmo de búsqueda

tabú diseñado para el problema. En este algoritmo, con el paso de las

iteraciones, los movimientos de la búsqueda tabú van conduciendo

progresivamente a una solución del problema de mayor calidad. Para ello,

se hace uso de una cuidadosa elección del vecindario junto un uso eficiente

de la memoria y de la condición tabú de los distintos atributos.

Con todo ello, se pretende alcanzar una solución óptima aunque sin

dejar de lado uno de los pilares de la búsqueda tabú: el uso racional de los

recursos. Este último aspecto, toma especial relevancia en problemas de

grandes dimensiones como este, ya que el tamaño del espacio de soluciones

hace prácticamente inviable un diseño basado en la exploración completa

del espacio sin ningún tipo de filtro.

PROTOTIPO

El prototipo de la función busqueda_tabu es el siguiente:

[X_solucion,delta_solucion,f_siguiente,g_siguiente,h,f

,f_solucion_devolver,g_solucion,evaluacion_solucion,di

visiones]=busqueda_tabu(diasexamen,grupos,aulas,period

os,diasemana,tau,cap,festivo,turno,manana,tarde,grupoi

ncompatible,grupoclase,grupooptativa,aulasafec,divisio

nes,X,delta,f_solucion,g_solucion,evaluacion_solucion,

periodo_examen,dias_sabado,hueco_2,hueco_3,matriz_text

o)

Se puede observar como los parámetros de entrada de esta función son

todos los parámetros generados en las funciones llamadas anteriormente.

PARÁMETROS DE ENTRADA

Los parámetros de entrada de la función son:

diasexamen

Page 114: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

113

grupos

aulas

periodos

diasemana

tau

cap

festivo

turno

manana

tarde

grupoincompatible

grupoclase

grupooptativa

aulasafec

divisiones

X

delta

f_solucion: este parámetro contiene la evaluación que la función

restricciones ha devuelto tras la evaluar la solución mediante todas

las restricciones duras del modelo. Puesto que a la entrada de la

función la búsqueda tabú no ha comenzado su proceso de búsqueda,

esta evaluación contiene en un principio la evaluación de la solución

inicial generada.

g_solucion: este parámetro es similar al parámetro anterior, ya

que también es devuelto por la función restricciones. La única

diferencia estriba en que, en este caso, proviene de la evaluación de

las restricciones suaves. Al igual que f_solucion en el momento de

entrada a la función busqueda_tabu su valor se corresponde con la

evaluación de la solución inicial.

evaluacion_solucion: este parámetro contiene la evaluación

completa de la solución, es decir, la suma de los dos parámetros

anteriores.

periodo_examen

dias_sabado

hueco_2

Page 115: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

114

hueco_3

matriz_texto

Al igual que en las funciones anteriores, se ha explicado el

significado de los parámetros que aparecen por primera vez mientras que

los parámetros que ya han aparecido simplemente se han nombrado.

PARÁMETROS DE SALIDA

Los parámetros de salida de la función son:

X_solucion: esta matriz contiene la solución encontrada por la

búsqueda tabú y su construcción es la misma que la de la matriz X.

delta_solucion: esta matriz tiene la misma construcción que la

matriz delta aunque se reservar para almacenar la δ de la solución.

f_siguiente: este parámetro contiene la evolución de las

restricciones duras del último movimiento elegido por la búsqueda

tabú. En general este valor de este parámetro será distinto del valor

de f_solucion ya que en este último solo se almacena la evaluación

de la solución.

g_siguiente: en este parámetro se almacena la evaluación de las

restricciones suaves del último movimiento elegido por la búsqueda

tabú.

h: este parámetro almacena la iteración en la que se encuentra la

búsqueda tabú.

f: este vector contiene la evolución del parámetro f_siguiente con el

paso de las iteraciones. Se utiliza para realización de gráficos que

muestren la evolución de la búsqueda tabú.

f_solucion_devolver: en este vector se almacena la evolución

del parámetro f_solucion con el paso de las iteraciones.

g_solucion

evaluacion_solucion

divisiones

De todos los parámetros que la búsqueda tabú devuelve, no todos son

utilizados por el programa para presentar los resultados. Muchos de ellos,

como f_solucion_devolver o h, son utilizados para comprobar la evolución

Page 116: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

115

de la búsqueda tabú. Es decir, son parámetros que se pueden utilizar por el

diseñador del algoritmo para medir la eficiencia del mismo y que, de cara

al usuario final, no tienen repercusión alguna.

DIAGRAMA DE FLUJO

El diagrama de flujo de esta función se representa en la figura 11:

Page 117: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

116

Mientras que

h<ITERMAX

¿Se han movido

todas las divisiones

del grupo?

Se selecciona una

partición que no se

haya movido

Se seleccionan los

grupos con problemas

Para todos los grupos

con problemas

¿CAMBIO=1?

GRUPO_CAMBIADO=GRUPO_CAMBIADO+1

¿GRUPO_CAMBIADO>UMBRAL?

CAMBIO=1

GRUPO_CAMBIADO =0

A B

Page 118: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

117

Se genera la vecindad

en función del turno de

la asignatura

Se evalúan todos los

movimientos de la vecindad

(Función restricciones)

Se ordenan los movimientos

de mejor a peor

Para todos los

movimientos

¿Es Tabú?

¿Cumple el

criterio de

aspiración?

Se ejecuta el

movimiento

¿Es el mejor

movimiento

hasta ahora?

Se selecciona

como solución

Se actualizan los

parámetros tabú

A B

A B

Page 119: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

118

¿Todos los grupos

con problemas tienen

CAMBIAR=1?

¿CAMBIO_TURNO=1?

busqueda_tabu_cambio_dia

CAMBIO_TURNO=0

¿Todos los grupos

con problemas tienen

CAMBIAR=1?

busqueda_tabu_cambio

CAMBIO_TURNO=1

¿La solución es

admisible?

¿Se ha llegado al

máximo de iteraciones? FIN

Figura 11

B A

Page 120: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

119

6.5.8 FUNCIÓN BUSQUEDA_TABU_CAMBIO

DESCRIPCIÓN

La finalidad de esta función es acelerar la búsqueda tabú. Por la

propia construcción de las restricciones, una asignatura elegirá como

primeros movimientos siempre aquellos que mantengan la misma hora que

en la asignación inicial. En esto influye el hecho de que para cambiar una

asignatura con varias divisiones de hora se necesitan varias iteraciones.

En dichas iteraciones, la evaluación de la solución empeorará ya que

durante este movimiento no todas las particiones se encontrarán a la misma

hora. Por este motivo, se define un umbral (medido en número de

iteraciones) a partir del cual un grupo es “obligado” a cambiar de hora para

de esa forma diversificar la búsqueda más rápido.

Hay que destacar que se trata de una medida que trata de acelerar la

búsqueda ya que, si se espera el tiempo necesario, la búsqueda tabú

alcanzará estas regiones por ella misma.

PROTOTIPO

El prototipo de esta función es el siguiente:

[X_solucion,delta_solucion,f_siguiente,g_siguiente,h,f

,f_solucion_devolver,f_solucion,g_solucion,evaluacion_

solucion,divisiones,cambio,X,delta,iteracion_actual,te

nencia_tabu,tabu_start,frecuencia_eleccion,contador,va

lor_f,hueco_2,hueco_3,cambiar]=busqueda_tabu_cambio(di

asexamen,grupos,aulas,periodos,diasemana,tau,cap,festi

vo,turno,manana,tarde,grupoincompatible,grupoclase,gru

pooptativa,aulasafec,divisiones,X,delta,f_solucion,g_s

olucion,evaluacion_solucion,periodo_examen,dias_sabado

,iteracion_actual,tenencia_tabu,tabu_start,frecuencia_

eleccion,contador,h,cambio,valor_f,X_solucion,delta_so

lucion,f,f_solucion_devolver,f_siguiente,g_siguiente,h

ueco_2,hueco_3,cambiar)

Se puede comprobar como en este caso, los parámetros de entrada de

la función son, por un lado, todos aquellos que fueron pasados a la función

Page 121: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

120

busqueda_tabu, y por otro, todos los parámetros correspondientes al propio

algoritmo de búsqueda tabú.

Estos últimos parámetros son necesarios ya que esta función no es

más que la continuación del algoritmo de búsqueda tabú. La principal

diferencia y a la vez su razón de ser es que el vecindario que genera obliga

al algoritmo a cambiar los grupos marcados de hora. Además, también hay

que destacar que en esta función tan solo se mueven aquellos grupos que

sobrepasaron el umbral sin mejorar (incumpliendo a su vez alguna

restricción) y que, como consecuencia, fueron señalados para cambiar de

hora.

PARÁMETROS DE ENTRADA

Los parámetros de entrada de la función son:

diasexamen

grupos

aulas

periodos

diasemana

tau

cap

festivo

turno

manana

tarde

grupoincompatible

grupoclase

grupooptativa

aulasafec

divisiones

X

delta

f_solucion

Page 122: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

121

g_solucion

evaluacion_solucion

periodo_examen

dias_sabado

iteracion_actual: este parámetro almacena la iteración en que

se encuentra el algoritmo. Se trata de una parámetro que se utiliza

para comprobar si un movimiento es tabú o no.

tenencia_tabu: este parámetro almacena el número de

iteraciones que un movimiento permanecerá en status tabú.

tabu_start: en este parámetro se almacena la iteración en la que

se marca como tabú un movimiento. A partir de esta iteración, y

durante tantas iteraciones como marque el parámetro tenencia_tabu,

el movimiento en cuestión permanecerá como tabú.

frecuencia_eleccion: este parámetro guarda información

acerca de cuantas veces ha sido elegido un grupo para moverse.

contador: como su propio nombre indica se trata de un contador

que se usa para crear el vector valor_f. Este parámetro se usa dentro

del bucle que selecciona el grupo que se va a mover y, como no se

entra en dicho bucle en todas las iteraciones, es necesario llevar un

contador específico para este bucle.

h

cambio: se trata de un vector que, como se vio en el diagrama de

flujo de la función busqueda_tabu, marca cuando un grupo debe

entrar en esta función para cambiar de hora. También se usa cuando

para permitir la entrada en la función que cambia de día.

valor_f: vector que almacena el valor de la variable f_solucion

cada vez que el algoritmo cambia de grupo. Esto sirve para hacerse

una idea de la evolución de la calidad de la solución una vez que se

ha movido por completo un grupo.

X_solucion

delta_solucion

f

f_solucion_devolver

f_siguiente

g_siguiente

Page 123: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

122

hueco_2

hueco_3

cambiar

PARÁMETROS DE SALIDA

Los parámetros de salida de la función son los siguientes:

X_solucion

delta_solucion

f_siguiente

g_siguiente

h

f

f_solucion_devolver

f_solucion

g_solucion

evaluacion_solucion

divisiones

cambio

X

delta

iteracion_actual

tenencia_tabu

tabu_start

frecuencia_eleccion

contador

valor_f

hueco_2

hueco_3

cambiar

Todos estos parámetros han sido explicados anteriormente por lo que

no han sido descritos de nuevo.

Page 124: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

123

DIAGRAMA DE FLUJO

El diagrama de flujo de esta función se representa en la figura 12:

Mientras que

h<ITERMAX

¿Se han movido

todas las divisiones?

Para todos

los grupos

¿CAMBIO=1?

Se selecciona una partición

que no se haya movido

Se genera un vecindario que

obligue a cambiar de hora

Se evalúan todos los

movimientos

Los movimientos se

ordenan de mejor a peor

B A

Page 125: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

124

Para todos los

movimientos

¿Es tabú? ¿Cumple el

criterio de

aspiración?

Se ejecuta el

movimiento

¿Es el mejor

movimiento hasta

el momento?

Se selecciona

como solución

Actualizo los

parámetros tabú

¿Se han movido

todas las particiones

del grupo?

CAMBIO=0

¿Se han movido

todos los grupos

marcados?

¿Se ha llegado al máximo

de iteraciones?

FIN

A B

Figura 12

Page 126: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

125

6.5.9 FUNCIÓN RESTRICCIONES_CAMBIO_DIA

DESCRIPCIÓN

Esta función es utilizada dentro de la función

busqueda_tabu_cambio_dia. Su cometido es comprobar que el cambio de

día de las asignaturas realizado en dicha función se ha realizado

correctamente. Esto se realiza porque, en el caso de que se haya realizado

correctamente el cambio de día, no será necesario comprobar una serie de

restricciones ((11), (12), (13), (14) y (15)) ya que ninguna posible solución

que se genere en busqueda_tabu o busqueda_tabu_cambio violará estas

restricciones. Con esto se consigue un considerable ahorro de recursos.

Por tanto, lo que realmente se realiza en esta funcion es comprobar

tan solo que la solución generada a la salida de busqueda_tabu_cambio_dia

no viola ninguna de las restricciones antes mencionadas. Si esto ocurre se

considera que el cambio se ha efectuado de forma correcta y, por tanto, no

se vuelven a comprobar durante la ejecución de busqueda_tabu o

busqueda_tabu_cambio. En el caso contrario, se obliga a seguir

comprobando estas restricciones en las otras funciones para evitar de esta

forma que el algoritmo considere que la solución es admisible porque

cumple el resto de restricciones.

PROTOTIPO

El prototipo de esta función es el siguiente:

[evaluacion_f]=restricciones_cambio_dia(diasexamen,gru

pos,aulas,periodos,manana,tarde,grupoincompatible,grup

oclase,grupooptativa,divisiones,periodo_examen,X,delta

)

PARÁMETROS DE ENTRADA

Los parámetros de entrada de la función son:

diasexamen

grupos

Page 127: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

126

aulas

periodos

manana

tarde

grupoincompatible

grupoclase

grupooptativa

divisiones

periodo_examen

X

delta

Todos estos parámetros han sido explicados ya en anteriores

funciones.

PARÁMETROS DE SALIDA

Esta función posee un único parámetro de salida:

evaluacion_f: su significado es el mismo que la función

restricciones, proporciona la evaluación de la solución. Sin embargo,

en esta función esta evaluación no contempla todas las restricciones

duras sino tan solo aquellas que tienen en cuentan que las asignaturas

estén bien ubicadas en los días. Por tanto, para que el cambio de día

se encuentre bien hecho este parámetro debe ser nulo.

DIAGRAMA DE FLUJO

El diagrama de flujo de esta función se representa en la figura 13:

Page 128: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

127

Para todos los

grupos

Para las

restricciones de

cambio de día

¿Se cumple la

restricción?

evaluacion_f=evaluación_f+Penalización

Penalización=0

¿Se verificado todas

las restricciones?

¿Se verificado

todos los grupos?

FIN

Figura 13

Page 129: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

128

6.5.10 FUNCIÓN BUSQUEDA_TABU_CAMBIO_DIA

DESCRIPCIÓN

Esta función, al igual que busqueda_tabu_cambio, presenta una

estructura bastante similar a la función busqueda_tabu. Su principal

finalidad es forzar a ciertos grupos a cambiar de día. Además posee una

función secundaria: en el caso de que tras probar con todos los días del

periodo de examen sea imposible asignar el examen, el algoritmo procede a

dividir el grupo.

Estas dos características hacen que la estructura de la función sea

distinta a la de la función busqueda_tabu pese a disponer de muchas

similitudes.

PROTOTIPO

El prototipo de esta función es el siguiente:

[X_solucion,delta_solucion,f_siguiente,g_siguiente,h,f

,f_solucion_devolver,f_solucion,g_solucion,evaluacion_

solucion,divisiones,cambio,X,delta,iteracion_actual,te

nencia_tabu,tabu_start,frecuencia_eleccion,contador,va

lor_f,dias_asignados,cambiar,hueco_2,hueco_3,dividir]=

busqueda_tabu_cambio_dia(diasexamen,grupos,aulas,perio

dos,diasemana,tau,cap,festivo,turno,manana,tarde,grupo

incompatible,grupoclase,grupooptativa,aulasafec,divisi

ones,X,delta,f_solucion,g_solucion,evaluacion_solucion

,periodo_examen,dias_sabado,iteracion_actual,tenencia_

tabu,tabu_start,frecuencia_eleccion,contador,h,cambio,

valor_f,X_solucion,delta_solucion,f,f_solucion_devolve

r,f_siguiente,g_siguiente,dias_asignados,hueco_2,hueco

_3,dividir,matriz_texto)

PARÁMETROS DE ENTRADA

Los parámetros de entrada de esta función son:

diasexamen

Page 130: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

129

grupos

aulas

periodos

diasemana

tau

cap

festivo

turno

manana

tarde

grupoincompatible

grupoclase

grupooptativa

aulasafec

divisiones

X

delta

f_solucion

g_solucion

evaluacion_solucion

periodo_examen

dias_sabado

iteracion_actual

tenencia_tabu

tabu_start

frecuencia_eleccion

contador

h

cambio

valor_f

X_solucion

delta_solucion

f

f_solucion_devolver

Page 131: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

130

f_siguiente

g_siguiente

dias_asignados

hueco_2

hueco_3

matriz_texto

Todos los parámetros de esta función han sido explicados en

funciones anteriores. Concretamente, se utilizan los mismos parámetros

que en la función busqueda_tabu_cambio.

PARÁMETROS SALIDA

Los parámetros de salida de esta función son:

X_solucion

delta_solucion

f_siguiente

g_siguiente

h

f

f_solucion_devolver

f_solucion

g_solucion

evaluacion_solucion

divisiones

cambio

X

Delta

iteracion_actual

tenencia_tabu

tabu_start

frecuencia_eleccion

contador

valor_f

Page 132: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

131

dias_asignados

cambiar

hueco_2

hueco_3

DIAGRAMA DE FLUJO

El diagrama de flujo de esta función se representa en la figura 14:

Page 133: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

132

Mientras que

h<ITERMAX

¿Se han movido

todas las divisiones

del grupo?

¿Se han movido

todos los grupos de

la asignatura?

Para todos

los grupos

¿CAMBIO=1?

Se elige el grupo y todos

los grupos que pertenezcan

a la misma asignatura

Se valoran los días en

función de los huecos libres

Se quitan los días

incompatibles con la asignatura

Se quitan los días en los que ya

haya estado asignada la asignatura

A C B

Page 134: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

133

Se selecciona una

partición que no se

haya movido

Se genera una vecindad

para cambiar la

asignatura al día elegido

Se evalúan todos los

movimientos de la vecindad

(Función restricciones)

Se ordenan los movimientos

de mejor a peor

Para todos los

movimientos

¿Es Tabú?

¿Cumple el

criterio de

aspiración?

Se ejecuta el movimiento

¿Queda

algún día?

Se divide el

grupo

Se ordenan los días

de mejor a peor

Se valoran

todos los días

Se quitan los

días

incompatibles

con la

asignatura

Se selecciona el

mejor día

A C B

A B

Page 135: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

134

¿Es el mejor

movimiento

hasta ahora?

Se selecciona

como solución

Se actualizan los

parámetros tabú

¿Se ha movido

toda la asignatura?

CAMBIO=0

¿Se han movido

todas las asignaturas

marcadas?

¿El cambio de día de todas las

asignaturas ha sido correcto?

(restricciones_cambio_dia)

CAMBIAR=1 CAMBIAR=0

FIN

¿Se ha

llegado al

máximo de

iteraciones

B A

Figura 14

Page 136: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

135

6.5.11 FUNCIÓN SALIDA_DATOS

DESCRIPCIÓN

Esta función la encargada de recibir la solución generada por la

búsqueda tabú y preparar el archivo de salida. Para ello, la función recibe la

matriz de la solución y debe relacionar cada grupo con su nombre original

haciendo de esta forma entendible la solución.

Además, debe ser capaz de separar todas las asignaturas de un mismo

curso para presentarlas por separado.

PROTOTIPO

El prototipo de esta función es el siguiente:

[]=Salida_datos(X,grupos,aulas,periodos,divisiones,mat

riz_numeros,matriz_texto,txt_aulas,dias_periodo,ubicac

ion_solucion)

PARÁMETROS DE ENTRADA

Los parámetros de entrada de la función son los siguientes:

X

Grupos

Aulas

Periodos

Divisiones

matriz_numeros

matriz_texto

txt_aulas

dias_periodo

ubicacion_solucion

Todos estos parámetros han aparecido en anteriores funciones y, por

lo tanto, ya han sido descritos.

Page 137: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

136

PARÁMETROS DE SALIDA

Esta función no presenta ningún parámetro de salida. Esto es debido

a que la solución del problema se presenta en forma de fichero Excel.

DIAGRAMA DE FLUJO

El diagrama de flujo de esta función se representa en la figura 15:

Para todas

las carreras

Se lee la solución

la carrera

Se crea una hoja en

el archivo Excel

Se escribe el

encabezado en la hoja

Se escribe la

solución en la hoja

¿Se han terminado

las carreras?

FIN

Figura 15

Page 138: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

137

7. ANA LISIS DE RESULTADOS

Para el análisis de los resultados obtenidos, se han realizado diversas

ejecuciones con una convocatoria tipo. Más concretamente se ha utilizado

un problema de 320 grupos, que responde a una convocatoria típica de

Enero-Febrero. En primer lugar, se presentará la solución obtenida

clasificándola por titulación.

Una vez presentada y analizada cualitativamente la solución, se

mostrarán los resultados de las pruebas realizadas con el programa. Dichas

pruebas, buscan comprender la influencia de distintos aspectos que se

consideran clave en la ejecución del programa.

7.1 CALENDARIO DE EXÁMENES

El programa presenta la solución obtenida separando las asignaturas

por titulaciones. Para la convocatoria de Enero-Febrero de 2011 la solución

obtenida se presentará en distintas tablas.

Para la titulación de Maestro de Educación especial la solución se

muestra en la tabla 3:

Tabla 3

Fecha Curso Asignatura Tipo Grupo Turno Aula Hora

10/01/2011 1 EDUCACIÓN FÍSICA ALUMNOS C 1 V A.2.2 Primera

10/01/2011 2 ASP. EVOL. Y EDU. DEF. VISUAL C 1 M A.2.13 Primera

10/01/2011 2 ASP. EVOL. Y EDU. DEF. VISUAL C 1 M A.3.13 Primera

10/01/2011 2 ASP. EVOL. Y EDU. DEF. VISUAL C 2 T A.2.22 Cuarta

10/01/2011 2 ASP. EVOL. Y EDU. DEF. VISUAL C 3 M A.2.9 Primera

10/01/2011 2 ASP. EVOL. Y EDU. DEF. VISUAL C 3 M A.2.12 Primera

10/01/2011 3 ORIENTACIÓN Y ACCIÓN TUTORIAL

O 1 M A.1.7 Primera

10/01/2011 3 ORIENTACIÓN Y ACCIÓN TUTORIAL

O 1 M A.2.14 Primera

10/01/2011 3 ORIENTACIÓN Y ACCIÓN TUTORIAL

O 2 T A.2.12 Cuarta

Page 139: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

138

12/01/2011 1 ASPEC. DIDACT Y ORGAN. E.E C 1 V A.2.1 Cuarta

12/01/2011 2 PROBLEMA BAS. APREN. MATEMÁTICO

C 1 M A.2.12 Segunda

12/01/2011 2 PROBLEMA BAS. APREN. MATEMÁTICO

C 1 M A.2.22 Segunda

12/01/2011 2 PROBLEMA BAS. APREN. MATEMÁTICO

C 2 T A.2.11 Cuarta

12/01/2011 2 PROBLEMA BAS. APREN. MATEMÁTICO

C 2 T A.2.12 Cuarta

12/01/2011 2 PROBLEMA BAS. APREN. MATEMÁTICO

C 3 M A.3.1 Segunda

12/01/2011 2 PROBLEMA BAS. APREN. MATEMÁTICO

C 3 M A.3.12 Segunda

12/01/2011 3 FORMACIÓN PLAS. ESTÉTICA E.E O 1 M A.2.14 Primera

12/01/2011 3 FORMACIÓN PLAS. ESTÉTICA E.E O 1 M A.3.13 Primera

12/01/2011 3 FORMACIÓN PLAS. ESTÉTICA E.E O 2 T A.2.8 Tercera

12/01/2011 3 FORMACIÓN PLAS. ESTÉTICA E.E O 2 T A.2.9 Tercera

14/01/2011 3 EDUCACIÓN FAMILIAR O 1 M A.2.14 Primera

14/01/2011 3 EDUCACIÓN FAMILIAR O 1 M A.3.12 Primera

14/01/2011 3 EDUCACIÓN FAMILIAR O 2 T A.1.1 Tercera

17/01/2011 3 TÉCNICAS DE MODIFICACIÓN DE CON.

O 1 M A.3.1 Primera

17/01/2011 3 TÉCNICAS DE MODIFICACIÓN DE CON.

O 2 T A.2.22 Tercera

17/01/2011 3 TÉCNICAS DE MODIFICACIÓN DE CON.

O 3 M A.2.11 Segunda

19/01/2011 3 PEDAGOGÍA. DIDÁCTICA DE LA RELIGIÓN

O 1 M A.2.22 Primera

19/01/2011 3 PEDAGOGÍA. DIDÁCTICA DE LA RELIGIÓN

O 1 M A.3.15 Primera

21/01/2011 1 TEORÍA E INST. COMTEM. EDUCACIÓN

C 1 V A.2.14 Primera

21/01/2011 2 ASP. EVOL. Y EDU. DEF. MOTÓRICA

C 1 M A.2.1 Segunda

21/01/2011 2 ASP. EVOL. Y EDU. DEF. MOTÓRICA

C 1 M A.2.4 Segunda

21/01/2011 2 ASP. EVOL. Y EDU. DEF. MOTÓRICA

C 2 T A.2.1 Tercera

21/01/2011 2 ASP. EVOL. Y EDU. DEF. MOTÓRICA

C 2 T A.2.15 Tercera

21/01/2011 2 ASP. EVOL. Y EDU. DEF. MOTÓRICA

C 3 M A.2.9 Segunda

21/01/2011 2 ASP. EVOL. Y EDU. DEF. MOTÓRICA

C 3 M A.2.12 Segunda

21/01/2011 3 ORGANIZACIÓN DEL CENTRO ESCOLAR

C 1 M A.2.1 Primera

21/01/2011 3 ORGANIZACIÓN DEL CENTRO ESCOLAR

C 1 M A.3.13 Primera

Page 140: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

139

21/01/2011 3 ORGANIZACIÓN DEL CENTRO ESCOLAR

C 2 T A.2.16 Tercera

21/01/2011 3 ORGANIZACIÓN DEL CENTRO ESCOLAR

C 2 T A.2.22 Tercera

21/01/2011 3 ORGANIZACIÓN DEL CENTRO ESCOLAR

C 3 M A.2.2 Segunda

21/01/2011 3 ORGANIZACIÓN DEL CENTRO ESCOLAR

C 3 M A.2.11 Segunda

La siguiente titulación es Maestro de Educación Física y su

calendario de exámenes se muestra en la tabla 4:

Tabla 4

Fecha Curso Asignatura Tipo Grupo Turno Aula Hora

10/01/2011 3 APRENDIZAJE Y DESARROLLO MOTOR C 1 M A.2.17 Primera

10/01/2011 3 APRENDIZAJE Y DESARROLLO MOTOR C 1 M A.3.1 Primera

10/01/2011 3 APRENDIZAJE Y DESARROLLO MOTOR C 2 M A.2.14 Segunda

10/01/2011 3 APRENDIZAJE Y DESARROLLO MOTOR C 2 M A.3.1 Segunda

11/01/2011 1 CONOCIMIENTO DEL MN, SOCIAL Y E C 1 V A.1.7 Primera

11/01/2011 2 TEORÍA Y PRACT DEL ACONDICION. FÍSICO C 1 M A.2.11 Segunda

11/01/2011 2 TEORÍA Y PRACT DEL ACONDICION. FÍSICO C 1 M A.2.12 Segunda

11/01/2011 2 TEORÍA Y PRACT DEL ACONDICION. FÍSICO C 2 M A.2.3 Primera

11/01/2011 2 TEORÍA Y PRACT DEL ACONDICION. FÍSICO C 2 M A.2.9 Primera

11/01/2011 2 TEORÍA Y PRACT DEL ACONDICION. FÍSICO C 2 M A.2.13 Primera

11/01/2011 3 TEORÍA E HISTORIA DEL DEPORTE O 1 M A.2.3 Segunda

11/01/2011 3 TEORÍA E HISTORIA DEL DEPORTE O 1 M A.3.3 Segunda

11/01/2011 3 TEORÍA E HISTORIA DEL DEPORTE O 1 M A.3.21 Segunda

12/01/2011 3 EXPRESIÓN CORPORAL I C 1 M A.3.14 Primera

12/01/2011 3 EXPRESIÓN CORPORAL I C 2 T A.2.22 Cuarta

13/01/2011 2 FUNDAMENTOS DEP. COLECT. BALONCESTO Y VOLEY

O 1 M A.2.13 Primera

13/01/2011 2 FUNDAMENTOS DEP. COLECT. BALONCESTO Y VOLEY

O 1 M A.3.14 Primera

13/01/2011 2 FUNDAMENTOS DEP. COLECT. BALONCESTO Y VOLEY

O 2 M A.2.2 Primera

13/01/2011 2 FUNDAMENTOS DEP. COLECT. BALONCESTO Y VOLEY

O 2 M A.2.3 Primera

14/01/2011 3 EDUCACIÓN DE PERSONAS ADULTAS O 1 M A.2.1 Primera

15/01/2011 2 BIOLOGÍA CELULAR DEL MOVIMIENTO O 1 M A.1.1 Primera

15/01/2011 2 BIOLOGÍA CELULAR DEL MOVIMIENTO O 2 M A.2.4 Primera

17/01/2011 3 EF DE NIÑOS CON NEC. EDU. ESPECIALES O 1 M A.2.2 Primera

19/01/2011 3 DEP. Y ACT. FÍSICO-RECREATIVAS EN LA NATU.

O 1 M A.2.9 Segunda

19/01/2011 3 DEP. Y ACT. FÍSICO-RECREATIVAS EN LA O 1 M A.2.22 Segunda

Page 141: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

140

NATU.

19/01/2011 3 DEP. Y ACT. FÍSICO-RECREATIVAS EN LA NATU.

O 2 M A.2.2 Primera

19/01/2011 3 DEP. Y ACT. FÍSICO-RECREATIVAS EN LA NATU.

O 2 M A.3.13 Primera

20/01/2011 1 DIDÁCTICA GENERAL C 1 V A.1.7 Primera

20/01/2011 2 DIDÁCTICA DE LA EDUCACIÓN FÍSICA C 1 M A.2.2 Primera

20/01/2011 2 DIDÁCTICA DE LA EDUCACIÓN FÍSICA C 1 M A.2.3 Primera

20/01/2011 2 DIDÁCTICA DE LA EDUCACIÓN FÍSICA C 2 M A.2.12 Segunda

20/01/2011 2 DIDÁCTICA DE LA EDUCACIÓN FÍSICA C 2 M A.3.22 Segunda

20/01/2011 3 PEDAGOGÍA. DIDÁCTICA DE LA RELIGIÓN O 1 M A.3.1 Primera

21/01/2011 3 ORGANIZACIÓN DEL CENTRO ESCOLAR C 1 M A.3.12 Primera

21/01/2011 3 ORGANIZACIÓN DEL CENTRO ESCOLAR C 2 M A.2.16 Primera

21/01/2011 3 ORGANIZACIÓN DEL CENTRO ESCOLAR C 2 M A.3.14 Primera

22/01/2011 1 TEORÍA E INST. COMTEM. EDUCACIÓN C 1 V A.1.1 Primera

22/01/2011 2 BASES BIOLÓGICAS Y FISIOLÓGICAS DEL MOV

C 1 M A.2.3 Primera

22/01/2011 2 BASES BIOLÓGICAS Y FISIOLÓGICAS DEL MOV

C 1 M A.3.1 Primera

22/01/2011 2 BASES BIOLÓGICAS Y FISIOLÓGICAS DEL MOV

C 2 M A.2.2 Primera

22/01/2011 2 BASES BIOLÓGICAS Y FISIOLÓGICAS DEL MOV

C 2 M A.3.12 Primera

La siguiente titulación es Maestro Educación infantil, su solución se

presenta en la tabla 5:

Tabla 5

Fecha Curso Asignatura Tipo Grupo Turno Aula Hora

10/01/2011 2 EDUCACIÓN FÍSICA Y SU DIDÁCTICA C 1 M A.2.8 Segunda

10/01/2011 2 EDUCACIÓN FÍSICA Y SU DIDÁCTICA C 1 M A.2.22 Segunda

10/01/2011 2 EDUCACIÓN FÍSICA Y SU DIDÁCTICA C 2 T A.2.22 Tercera

10/01/2011 2 EDUCACIÓN FÍSICA Y SU DIDÁCTICA C 2 T A.3.4 Tercera

10/01/2011 2 EDUCACIÓN FÍSICA Y SU DIDÁCTICA C 3 T A.2.12 Tercera

10/01/2011 2 EDUCACIÓN FÍSICA Y SU DIDÁCTICA C 3 T A.3.2 Tercera

10/01/2011 3 GEOGRAFÍA Y MEDIO AMBIENTE O 1 M A.2.2 Segunda

12/01/2011 2 INTRODUCCIÓN A LA FILOSOFÍA C 1 M A.2.11 Segunda

12/01/2011 2 INTRODUCCIÓN A LA FILOSOFÍA C 1 M A.2.13 Segunda

12/01/2011 2 INTRODUCCIÓN A LA FILOSOFÍA C 2 T A.2.8 Cuarta

12/01/2011 2 INTRODUCCIÓN A LA FILOSOFÍA C 2 T A.3.22 Cuarta

12/01/2011 2 INTRODUCCIÓN A LA FILOSOFÍA C 3 T A.2.22 Tercera

12/01/2011 2 INTRODUCCIÓN A LA FILOSOFÍA C 3 T A.3.4 Tercera

13/01/2011 3 CONF. LITERARIA DE ANDALUCÍA O 1 M A.3.22 Segunda

14/01/2011 3 TALLER DE CIENCIA RECREATIVA O 1 M A.2.11 Segunda

Page 142: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

141

14/01/2011 3 TALLER DE CIENCIA RECREATIVA O 2 T A.2.1 Cuarta

15/01/2011 3 LENGUAJE INF. PARA LA INTOD. DE NOC. MAT.

O 1 M A.2.1 Primera

15/01/2011 3 LENGUAJE INF. PARA LA INTOD. DE NOC. MAT.

O 2 T A.2.2 Primera

18/01/2011 1 CONOCIMIENTO DEL MN, SOCIAL Y CULTURA

C 1 V A.2.5 Primera

18/01/2011 3 ORGANIZACIÓN DEL CENTRO ESCOLAR C 1 M A.2.2 Primera

18/01/2011 3 ORGANIZACIÓN DEL CENTRO ESCOLAR C 1 M A.2.3 Primera

18/01/2011 3 ORGANIZACIÓN DEL CENTRO ESCOLAR C 2 T A.1.1 Tercera

18/01/2011 3 ORGANIZACIÓN DEL CENTRO ESCOLAR C 2 T A.2.9 Tercera

18/01/2011 3 ORGANIZACIÓN DEL CENTRO ESCOLAR C 3 T A.2.1 Tercera

18/01/2011 3 ORGANIZACIÓN DEL CENTRO ESCOLAR C 3 T A.2.15 Tercera

19/01/2011 3 INTR. A LAS CIENCIAS DE LA TIERRA O 1 M A.2.14 Primera

20/01/2011 1 TEORÍA E INST. COMTEMPO. DE EDUCACIÓN

C 1 V A.2.7 Primera

20/01/2011 3 DESARROLLO DE LA EXP. MUSICAL Y SU DIDAC

C 1 M A.2.9 Segunda

20/01/2011 3 DESARROLLO DE LA EXP. MUSICAL Y SU DIDAC

C 1 M A.3.21 Segunda

20/01/2011 3 DESARROLLO DE LA EXP. MUSICAL Y SU DIDAC

C 2 T A.3.4 Tercera

20/01/2011 3 DESARROLLO DE LA EXP. MUSICAL Y SU DIDAC

C 2 T A.3.14 Tercera

20/01/2011 3 DESARROLLO DE LA EXP. MUSICAL Y SU DIDAC

C 3 T A.3.15 Tercera

20/01/2011 3 DESARROLLO DE LA EXP. MUSICAL Y SU DIDAC

C 3 T A.3.22 Tercera

21/01/2011 2 LENGUAJE MUSICAL C 1 M A.2.9 Primera

21/01/2011 2 LENGUAJE MUSICAL C 1 M A.2.11 Primera

21/01/2011 2 LENGUAJE MUSICAL C 2 T A.2.3 Tercera

21/01/2011 2 LENGUAJE MUSICAL C 2 T A.2.9 Tercera

21/01/2011 2 LENGUAJE MUSICAL C 3 T A.2.11 Tercera

21/01/2011 2 LENGUAJE MUSICAL C 3 T A.2.12 Tercera

22/01/2011 1 LITERATURA INFANTIL C 1 V A.2.4 Primera

22/01/2011 3 PEDAGOGÍA. DIDÁCTICA DE LA RELIGIÓN O 1 M A.2.6 Primera

22/01/2011 3 PEDAGOGÍA. DIDÁCTICA DE LA RELIGIÓN O 1 M A.3.22 Primera

22/01/2011 3 PEDAGOGÍA. DIDÁCTICA DE LA RELIGIÓN O 2 T A.2.1 Primera

22/01/2011 3 PEDAGOGÍA. DIDÁCTICA DE LA RELIGIÓN O 2 T A.2.7 Primera

Page 143: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

142

La siguiente titulación es Maestro Educación Musical y su solución

se presenta en la tabla 6:

Tabla 6

Fecha Curso Asignatura Tipo Grupo Turno Aula Hora

14/01/2011 1 DIDÁCTICA GENERAL C 1 V A.2.7 Primera

14/01/2011 2 FORMACIÓN VOCAL Y AUDITIVA C 1 M A.2.16 Primera

14/01/2011 2 FORMACIÓN VOCAL Y AUDITIVA C 1 M A.3.1 Primera

14/01/2011 2 FORMACIÓN VOCAL Y AUDITIVA C 2 T A.2.1 Tercera

14/01/2011 3 ORGANIZACIÓN DEL CENTRO ESCOLAR C 1 M A.2.11 Primera

14/01/2011 3 ORGANIZACIÓN DEL CENTRO ESCOLAR C 2 T A.2.11 Tercera

17/01/2011 1 TEOR. E INST. COMPTEM. DE EDUCACIÓN C 1 V A.2.5 Primera

17/01/2011 2 HISTORIA DE LA MÚSICA Y EL FOLKLORE C 1 M A.2.9 Primera

17/01/2011 2 HISTORIA DE LA MÚSICA Y EL FOLKLORE C 1 M A.2.12 Primera

17/01/2011 2 HISTORIA DE LA MÚSICA Y EL FOLKLORE C 2 T A.2.2 Tercera

17/01/2011 2 HISTORIA DE LA MÚSICA Y EL FOLKLORE C 2 T A.2.9 Tercera

17/01/2011 3 FORMACIÓN RÍTMICA Y DANZA C 1 M A.2.22 Segunda

17/01/2011 3 FORMACIÓN RÍTMICA Y DANZA C 2 T A.2.3 Tercera

19/01/2011 1 CONOC. DEL MEDIO NATU, SOCIAL Y CULTURAL

C 1 V A.3.17 Primera

19/01/2011 2 MÚSICA Y DRAMATIZACIÓN O 1 T A.2.1 Tercera

19/01/2011 3 PEDAGOGÍA. DIDÁCTICA DE LA RELIGIÓN O 1 M A.1.7 Primera

La siguiente titulación es Maestro Educación Primaria y su solución

se presenta en la tabla 7:

Tabla 7

Fecha Curso Asignatura Tipo Grupo Turno Aula Hora

10/01/2011 1 FUNDAMENTOS DE QUÍMICA GENERAL Y ORGÁNICA

C 1 V A.2.9 Segunda

10/01/2011 3 DIDÁCTICA DE LA FÍSICA Y LA QUÍMICA O 1 M A.2.5 Primera

11/01/2011 3 PEDAGOGÍA. DIDÁCTICA DE LA RELIGIÓN O 1 T A.2.1 Tercera

12/01/2011 3 ENSEÑANZA Y RESOLUCIÓN DE PROBL. DE PRIMARIA

O 1 T A.3.14 Tercera

13/01/2011 3 LINGÜÍSTICA INFANTIL Y HABLAS ANDALUZAS

O 1 M A.3.1 Primera

14/01/2011 3 ORGANIZACIÓN DEL CENTRO ESCOLAR C 1 M A.3.13 Primera

14/01/2011 3 ORGANIZACIÓN DEL CENTRO ESCOLAR C 1 M A.3.14 Primera

14/01/2011 3 ORGANIZACIÓN DEL CENTRO ESCOLAR C 2 T A.2.9 Tercera

14/01/2011 3 ORGANIZACIÓN DEL CENTRO ESCOLAR C 2 T A.2.12 Tercera

15/01/2011 3 BASES PSICOSOCIALES DE LA EDUCACIÓN O 1 T A.2.3 Primera

17/01/2011 3 DIDÁCTICA DEL ARTE Y DE LA CULTURA ANDALUZA

O 1 M A.3.1 Segunda

17/01/2011 3 DIDÁCTICA DEL ARTE Y DE LA CULTURA ANDALUZA

O 2 T A.2.12 Tercera

Page 144: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

143

19/01/2011 1 TEORÍA E INST. COMTEM. EDUCACIÓN C 1 V A.2.7 Primera

19/01/2011 3 CONFIGURACIONES LITERARIAS DE ANDALUCÍA

O 1 M A.2.9 Primera

19/01/2011 3 CONFIGURACIONES LITERARIAS DE ANDALUCÍA

O 1 M A.3.16 Primera

20/01/2011 2 CIENCIAS DE LA NATURALEZA Y SU DIDÁCTICA

C 1 M A.3.14 Primera

20/01/2011 2 CIENCIAS DE LA NATURALEZA Y SU DIDÁCTICA

C 1 M A.3.17 Primera

20/01/2011 2 CIENCIAS DE LA NATURALEZA Y SU DIDÁCTICA

C 2 T A.2.15 Tercera

20/01/2011 2 CIENCIAS DE LA NATURALEZA Y SU DIDÁCTICA

C 2 T A.2.22 Tercera

20/01/2011 3 EDUCACIÓN PARA LA DIVERSIDAD Y LA IGUALDAD

O 1 T A.3.3 Tercera

21/01/2011 1 MATEMÁTICAS GENERALES PARA MAESTROS

C 1 V A.2.4 Primera

21/01/2011 3 EDUCACIÓN AMBIENTAL O 1 M A.3.1 Primera

21/01/2011 3 EDUCACIÓN AMBIENTAL O 2 T A.1.1 Tercera

22/01/2011 2 GEOGRAFÍA HUMANA GENERAL C 1 M A.2.16 Primera

22/01/2011 2 GEOGRAFÍA HUMANA GENERAL C 1 M A.2.22 Primera

22/01/2011 2 GEOGRAFÍA HUMANA GENERAL C 2 T A.2.13 Primera

22/01/2011 2 GEOGRAFÍA HUMANA GENERAL C 2 T A.3.4 Primera

22/01/2011 2 GEOGRAFÍA HUMANA GENERAL C 3 M A.2.14 Primera

La siguiente titulación es Maestro Especialidad Lengua Extranjera y

su calendario de exámenes se presenta en la tabla 8:

Tabla 8

Fecha Curso Asignatura Tipo Grupo Turno Aula Hora

10/01/2011 3 LENGUA EXTRANJERA. NIVEL SUPERIOR C 1 M A.2.11 Segunda

10/01/2011 3 LENGUA EXTRANJERA. NIVEL SUPERIOR C 1 M A.3.13 Segunda

11/01/2011 2 INTRODUCCIÓN A LA LITERATURA INGLESA O 1 T A.2.9 Tercera

12/01/2011 3 HIST. Y ANAL. DE MÉTODOS DE ENSEÑANZA/APREN

O 1 M A.2.2 Primera

13/01/2011 2 EDUCACIÓN MULTICULTURAL O 1 T A.2.1 Tercera

14/01/2011 3 CREAT. NARRATIVA Y PRODUCC. DE TEXTO EN LENGUA

O 1 M A.3.17 Primera

17/01/2011 3 PEDAGOGÍA. DIDÁCTICA DE LA RELIGIÓN O 1 M A.3.13 Primera

18/01/2011 1 DIDÁCTICA GENERAL C 1 V A.2.4 Primera

18/01/2011 2 CONOC. DEL MEDIO NATU, SOCIAL Y CULTURAL

C 1 T A.2.2 Tercera

18/01/2011 2 CONOC. DEL MEDIO NATU, SOCIAL Y CULTURAL

C 1 T A.2.12 Tercera

19/01/2011 3 ORGANIZACIÓN DEL CENTRO ESCOLAR C 1 M A.2.11 Segunda

19/01/2011 3 ORGANIZACIÓN DEL CENTRO ESCOLAR C 1 M A.2.13 Segunda

20/01/2011 1 TEORÍA E INST. COMTEM. EDUCACIÓN C 1 V A.1.7 Segunda

Page 145: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

144

20/01/2011 2 HISTORIA: CONCEPTOS MÉTODOS Y FUENTES C 1 T A.2.1 Tercera

20/01/2011 2 HISTORIA: CONCEPTOS MÉTODOS Y FUENTES C 1 T A.2.2 Tercera

21/01/2011 3 DIDÁCTICA DE LA ARITMÉTICA Y LA GEOMETRÍA

C 1 M A.2.13 Segunda

21/01/2011 3 DIDÁCTICA DE LA ARITMÉTICA Y LA GEOMETRÍA

C 1 M A.3.1 Segunda

22/01/2011 1 MATEMÁTICAS Y SU DIDÁCTICA C 1 V A.2.15 Primera

22/01/2011 2 LA INVES. DIDAC. EN EL AULA DE LENGUA EXTRANJERA

O 1 T A.2.9 Primera

La siguiente titulación es Licenciado en Ciencias de la Actividad

Física y el Deporte y su calendario se presenta en la tabla 9:

Tabla 9

Fecha Curso Asignatura Tipo Grupo Turno Aula Hora

15/01/2011 5 EXPRESIÓN CORPORAL: METODOLOGÍA Y TÉCNICAS ESP

C 1 M A.2.7 Primera

15/01/2011 5 EXPRESIÓN CORPORAL: METODOLOGÍA Y TÉCNICAS ESP

C 1 M A.2.12 Primera

15/01/2011 5 EXPRESIÓN CORPORAL: METODOLOGÍA Y TÉCNICAS ESP

C 2 T A.1.7 Primera

15/01/2011 5 EXPRESIÓN CORPORAL: METODOLOGÍA Y TÉCNICAS ESP

C 2 T A.2.13 Primera

18/01/2011 5 JUEGOS EN EDUCACIÓN FÍSICA C 1 M A.1.7 Primera

18/01/2011 5 JUEGOS EN EDUCACIÓN FÍSICA C 1 M A.3.14 Primera

18/01/2011 5 JUEGOS EN EDUCACIÓN FÍSICA C 2 T A.2.22 Tercera

18/01/2011 5 JUEGOS EN EDUCACIÓN FÍSICA C 2 T A.3.3 Tercera

19/01/2011 5 MET. DE INVEST. APLICADA A CC DE LA ACT FÍSICA Y EL DEP

O 1 M A.2.3 Segunda

19/01/2011 5 MET. DE INVEST. APLICADA A CC DE LA ACT FÍSICA Y EL DEP

O 2 T A.2.8 Tercera

20/01/2011 5 ENSEÑANZA DE LOS FUND. ESP. DEL BALONCESTO

O 1 M A.2.2 Segunda

20/01/2011 5 ENSEÑANZA DE LOS FUND. ESP. DEL BALONCESTO

O 2 M A.2.4 Segunda

22/01/2011 4 ESTADÍSTICA O 1 M A.2.17 Primera

22/01/2011 5 ENSEÑANZA DE LOS FUND. ESP. DEL BALONMANO

O 1 M A.3.3 Primera

24/01/2011 4 EDUCACIÓN FÍSICA Y SALUD C 1 M A.2.9 Primera

24/01/2011 4 EDUCACIÓN FÍSICA Y SALUD C 1 M A.2.11 Primera

24/01/2011 4 EDUCACIÓN FÍSICA Y SALUD C 2 T A.1.1 Tercera

24/01/2011 4 EDUCACIÓN FÍSICA Y SALUD C 2 T A.2.5 Tercera

24/01/2011 6 BIOMECÁNICA DE LA ACTIVIDAD FÍSICA (CF) O 1 M A.2.1 Primera

24/01/2011 6 BIOMECÁNICA DE LA ACTIVIDAD FÍSICA (CF) O 1 M A.2.2 Primera

24/01/2011 6 BIOMECÁNICA DE LA ACTIVIDAD FÍSICA (CF) O 2 T A.2.2 Tercera

24/01/2011 6 BIOMECÁNICA DE LA ACTIVIDAD FÍSICA (CF) O 2 T A.2.3 Tercera

25/01/2011 5 ESTRUCTURA Y ORGANIZACIÓN DE INST. C 1 M A.2.3 Primera

Page 146: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

145

DEPORTIVAS

25/01/2011 5 ESTRUCTURA Y ORGANIZACIÓN DE INST. DEPORTIVAS

C 1 M A.2.4 Primera

25/01/2011 5 ESTRUCTURA Y ORGANIZACIÓN DE INST. DEPORTIVAS

C 2 T A.2.2 Tercera

25/01/2011 5 ESTRUCTURA Y ORGANIZACIÓN DE INST. DEPORTIVAS

C 2 T A.2.4 Tercera

26/01/2011 4 ENSEÑANZA DE LA EDUCACIÓN FÍSICA Y EL DEPORTE

C 1 M A.2.5 Primera

26/01/2011 4 ENSEÑANZA DE LA EDUCACIÓN FÍSICA Y EL DEPORTE

C 1 M A.2.12 Primera

26/01/2011 4 ENSEÑANZA DE LA EDUCACIÓN FÍSICA Y EL DEPORTE

C 2 T A.2.3 Tercera

26/01/2011 4 ENSEÑANZA DE LA EDUCACIÓN FÍSICA Y EL DEPORTE

C 2 T A.2.6 Tercera

27/01/2011 5 PLANIFICACIÓN Y DISEÑO DE ACT. FÍSICAS Y DEPORTIVAS

C 1 M A.2.3 Primera

27/01/2011 5 PLANIFICACIÓN Y DISEÑO DE ACT. FÍSICAS Y DEPORTIVAS

C 1 M A.2.4 Primera

27/01/2011 5 PLANIFICACIÓN Y DISEÑO DE ACT. FÍSICAS Y DEPORTIVAS

C 2 T A.2.3 Tercera

27/01/2011 5 PLANIFICACIÓN Y DISEÑO DE ACT. FÍSICAS Y DEPORTIVAS

C 2 T A.2.6 Tercera

28/01/2011 4 FISIOLOGÍA DEL EJERCICIO C 1 M A.2.1 Primera

28/01/2011 4 FISIOLOGÍA DEL EJERCICIO C 1 M A.2.4 Primera

28/01/2011 4 FISIOLOGÍA DEL EJERCICIO C 2 T A.2.1 Tercera

28/01/2011 4 FISIOLOGÍA DEL EJERCICIO C 2 T A.2.5 Tercera

29/01/2011 4 ENSE. DE FUND. ESPECIF. DEL VOLEIBOL O 1 M A.2.14 Primera

29/01/2011 4 ENSE. DE FUND. ESPECIF. DEL VOLEIBOL O 2 T A.2.2 Primera

29/01/2011 5 EL DEPARTAMENTO DE EDUCACIÓN FÍSICA C 1 M A.2.1 Primera

29/01/2011 5 EL DEPARTAMENTO DE EDUCACIÓN FÍSICA C 1 M A.2.7 Primera

29/01/2011 5 EL DEPARTAMENTO DE EDUCACIÓN FÍSICA C 2 T A.2.3 Primera

29/01/2011 5 EL DEPARTAMENTO DE EDUCACIÓN FÍSICA C 2 T A.2.16 Primera

02/02/2011 4 DEPORTE ESCOLAR C 1 M A.1.1 Primera

02/02/2011 4 DEPORTE ESCOLAR C 1 M A.2.4 Primera

02/02/2011 4 DEPORTE ESCOLAR C 2 T A.2.6 Tercera

02/02/2011 4 DEPORTE ESCOLAR C 2 T A.2.13 Tercera

04/02/2011 4 ENSE. DE FUND. ESPECIF. DE LA GIMNASIA ARTÍSTICA

O 1 M A.2.6 Primera

Page 147: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

146

La siguiente titulación es Licenciado en Pedagogía y su calendario de

exámenes se presenta en la tabla 10:

Tabla 10

Fecha Curso Asignatura Tipo Grupo Turno Aula Hora

18/01/2011 5 DISEÑO DE MAT. CURR. EN EDUCACIÓN FÍSICA, MUSICAL

O 1 M A.2.11 Segunda

18/01/2011 5 DISEÑO DE MAT. CURR. EN EDUCACIÓN FÍSICA, MUSICAL

O 2 T A.3.4 Tercera

18/01/2011 5 DISEÑO DE MAT. CURR. EN EDUCACIÓN FÍSICA, MUSICAL

O 2 T A.3.14 Tercera

19/01/2011 5 ORIENTACIÓN UNIVERSITARIA O 1 M A.2.12 Segunda

19/01/2011 5 ORIENTACIÓN UNIVERSITARIA O 2 T A.3.3 Cuarta

20/01/2011 5 DISEÑO DE MAT. CURR. EN LENGUA Y LITERATURA

O 1 M A.2.13 Primera

20/01/2011 5 DISEÑO DE MAT. CURR. EN LENGUA Y LITERATURA

O 2 T A.2.12 Tercera

22/01/2011 1 HISTORIA DE LA EDUCACIÓN EN ANDALUCÍA O 1 V A.2.5 Primera

22/01/2011 3 PSICOLOGÍA DE LOS GRUPOS Y LAS ORGANIZACIONES

O 1 M A.2.11 Primera

22/01/2011 3 PSICOLOGÍA DE LOS GRUPOS Y LAS ORGANIZACIONES

O 1 M A.2.12 Primera

22/01/2011 5 EVALUACIÓN DE PROGRAMAS DE FORMACIÓN PERMAN

O 1 M A.3.2 Primera

24/01/2011 4 ECONOMÍA DE LA EDUCACIÓN C 1 M A.2.3 Primera

24/01/2011 4 ECONOMÍA DE LA EDUCACIÓN C 1 M A.2.4 Primera

24/01/2011 4 ECONOMÍA DE LA EDUCACIÓN C 2 M A.2.7 Primera

24/01/2011 4 ECONOMÍA DE LA EDUCACIÓN C 2 M A.2.12 Primera

24/01/2011 4 ECONOMÍA DE LA EDUCACIÓN C 3 T A.2.1 Tercera

24/01/2011 4 ECONOMÍA DE LA EDUCACIÓN C 3 T A.2.7 Tercera

24/01/2011 4 ECONOMÍA DE LA EDUCACIÓN C 4 T A.2.11 Tercera

25/01/2011 5 PROSPECTIVA Y PLANIFICACIÓN EDUCATIVA C 1 M A.2.1 Primera

25/01/2011 5 PROSPECTIVA Y PLANIFICACIÓN EDUCATIVA C 2 M A.2.12 Primera

25/01/2011 5 PROSPECTIVA Y PLANIFICACIÓN EDUCATIVA C 3 T A.2.1 Tercera

25/01/2011 5 PROSPECTIVA Y PLANIFICACIÓN EDUCATIVA C 4 T A.2.3 Tercera

26/01/2011 4 DIRECCIÓN DE CENTROS EDUCATIVOS C 1 M A.2.1 Primera

26/01/2011 4 DIRECCIÓN DE CENTROS EDUCATIVOS C 1 M A.2.2 Primera

26/01/2011 4 DIRECCIÓN DE CENTROS EDUCATIVOS C 2 M A.1.1 Primera

26/01/2011 4 DIRECCIÓN DE CENTROS EDUCATIVOS C 2 M A.2.4 Primera

26/01/2011 4 DIRECCIÓN DE CENTROS EDUCATIVOS C 3 T A.1.1 Tercera

26/01/2011 4 DIRECCIÓN DE CENTROS EDUCATIVOS C 3 T A.2.1 Tercera

26/01/2011 4 DIRECCIÓN DE CENTROS EDUCATIVOS C 4 T A.2.2 Tercera

26/01/2011 4 DIRECCIÓN DE CENTROS EDUCATIVOS C 4 T A.2.22 Tercera

27/01/2011 5 CURRICULUM Y EDUCACIÓN MATEMÁTICA O 1 M A.2.5 Primera

27/01/2011 5 CURRICULUM Y EDUCACIÓN MATEMÁTICA O 2 T A.2.4 Tercera

27/01/2011 6 PROCESOS PSICOLÓGICOS BÁSICOS (CF) O 1 M A.2.2 Primera

27/01/2011 6 PROCESOS PSICOLÓGICOS BÁSICOS (CF) O 2 T A.2.1 Tercera

Page 148: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

147

28/01/2011 4 PEDAGOGÍA LABORAL O 1 M A.1.1 Primera

28/01/2011 4 PEDAGOGÍA LABORAL O 2 T A.2.3 Tercera

28/01/2011 4 PEDAGOGÍA LABORAL O 2 T A.2.6 Tercera

28/01/2011 4 PEDAGOGÍA LABORAL O 3 T A.1.1 Tercera

29/01/2011 5 DISEÑO DE MAT. CURR. EN CIENCIAS EXPERIMENTALES

O 1 M A.2.5 Primera

29/01/2011 5 DISEÑO DE MAT. CURR. EN CIENCIAS EXPERIMENTALES

O 2 T A.2.9 Primera

01/02/2011 1 SOCIOLOGÍA DE LA EDUCACIÓN C 1 V A.2.8 Primera

01/02/2011 2 PEDAGOGÍA AMBIENTAL C 1 V A.2.5 Primera

01/02/2011 3 TECNOLOGÍA EDUCATIVA C 1 M A.2.1 Primera

01/02/2011 3 TECNOLOGÍA EDUCATIVA C 1 M A.2.6 Primera

01/02/2011 3 TECNOLOGÍA EDUCATIVA C 2 M A.2.3 Primera

01/02/2011 3 TECNOLOGÍA EDUCATIVA C 2 M A.2.4 Primera

01/02/2011 3 TECNOLOGÍA EDUCATIVA C 3 T A.2.4 Tercera

01/02/2011 3 TECNOLOGÍA EDUCATIVA C 3 T A.2.12 Tercera

03/02/2011 1 PROCESOS PSICOLÓGICOS BÁSICOS C 1 V A.2.1 Primera

03/02/2011 1 PROCESOS PSICOLÓGICOS BÁSICOS C 1 V A.3.22 Primera

03/02/2011 2 LA INFORMÁTICA APLICADA A LA INVESTIGACIÓN EDUCA

O 1 V A.2.9 Primera

03/02/2011 3 ALFABETIZACIÓN Y EDUCACIÓN CONTINUA C 1 M A.1.7 Primera

03/02/2011 3 ALFABETIZACIÓN Y EDUCACIÓN CONTINUA C 1 M A.2.3 Primera

03/02/2011 3 ALFABETIZACIÓN Y EDUCACIÓN CONTINUA C 2 M A.2.2 Primera

03/02/2011 3 ALFABETIZACIÓN Y EDUCACIÓN CONTINUA C 2 M A.2.5 Primera

03/02/2011 3 ALFABETIZACIÓN Y EDUCACIÓN CONTINUA C 3 T A.1.1 Tercera

04/02/2011 4 DISEÑO, DESARROLLO E INNOVACIÓN DEL CURRICULUM

C 1 M A.2.1 Primera

04/02/2011 4 DISEÑO, DESARROLLO E INNOVACIÓN DEL CURRICULUM

C 1 M A.2.8 Primera

04/02/2011 4 DISEÑO, DESARROLLO E INNOVACIÓN DEL CURRICULUM

C 2 M A.2.3 Primera

04/02/2011 4 DISEÑO, DESARROLLO E INNOVACIÓN DEL CURRICULUM

C 2 M A.2.5 Primera

04/02/2011 4 DISEÑO, DESARROLLO E INNOVACIÓN DEL CURRICULUM

C 3 T A.2.2 Tercera

04/02/2011 4 DISEÑO, DESARROLLO E INNOVACIÓN DEL CURRICULUM

C 3 T A.2.4 Tercera

04/02/2011 4 DISEÑO, DESARROLLO E INNOVACIÓN DEL CURRICULUM

C 4 T A.2.3 Tercera

04/02/2011 4 DISEÑO, DESARROLLO E INNOVACIÓN DEL CURRICULUM

C 4 T A.2.5 Tercera

05/02/2011 1 FILOSOFÍA DE LA EDUCACIÓN C 1 V A.2.8 Primera

05/02/2011 2 PEDAGOGÍA INTERCULTURAL O 1 V A.2.5 Primera

05/02/2011 3 ORGANIZACIÓN Y DIVERSIDAD O 1 M A.2.1 Primera

05/02/2011 3 ORGANIZACIÓN Y DIVERSIDAD O 1 M A.2.6 Primera

Page 149: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

148

La siguiente titulación es Licenciado en Psicopedagogía y su

calendario de exámenes se presenta en la tabla 11:

Tabla 11

Fecha Curso Asignatura Tipo Grupo Turno Aula Hora

15/01/2011 2 EVALUACIÓN DE PROGRAMAS DE INTER. PSICOPEDAGO.

O 1 T A.2.8 Primera

17/01/2011 6 TEORÍA E INST. COMTEM. EDUCACIÓN O 1 T A.2.15 Tercera

18/01/2011 2 INNOVACIÓN EDUCATIVA O 1 M A.2.3 Segunda

19/01/2011 6 PSICOLOGÍA DE LA EDUCACIÓN O 1 M A.2.5 Segunda

20/01/2011 2 FORMACIÓN DEL PROFESORADO O 1 M A.2.8 Segunda

21/01/2011 6 ORGANIZACIÓN DEL CENTRO ESCOLAR O 1 M A.2.7 Segunda

22/01/2011 2 PSICOLOGÍA DE LA ADOLESCENCIA O 1 T A.2.8 Primera

22/01/2011 2 PSICOLOGÍA DE LA ADOLESCENCIA O 1 T A.3.13 Primera

24/01/2011 1 EVALUACIÓN Y DESARROLLO INSTITUCIONAL O 1 T A.2.1 Cuarta

25/01/2011 2 DISEÑO DESARROLLO E INNOVACIÓN DEL CURRICULUM

C 1 M A.1.1 Primera

25/01/2011 2 DISEÑO DESARROLLO E INNOVACIÓN DEL CURRICULUM

C 2 T A.1.1 Tercera

25/01/2011 2 DISEÑO DESARROLLO E INNOVACIÓN DEL CURRICULUM

C 2 T A.2.7 Tercera

26/01/2011 1 TEORÍA DE LA ACCIÓN PSICOPEDAGÓGICA O 1 M A.2.16 Primera

26/01/2011 1 TEORÍA DE LA ACCIÓN PSICOPEDAGÓGICA O 1 M A.3.21 Primera

27/01/2011 2 MODELOS DE ORIENTACIÓN E INTER PSICOPEDAGÓGICA

C 1 M A.2.12 Primera

27/01/2011 2 MODELOS DE ORIENTACIÓN E INTER PSICOPEDAGÓGICA

C 2 T A.2.2 Tercera

27/01/2011 2 MODELOS DE ORIENTACIÓN E INTER PSICOPEDAGÓGICA

C 2 T A.2.7 Tercera

28/01/2011 1 TEORÍA Y PROCESOS DE LA INNOVACIÓN EDUCATIVA

O 1 M A.2.2 Primera

28/01/2011 1 TEORÍA Y PROCESOS DE LA INNOVACIÓN EDUCATIVA

O 1 M A.2.3 Primera

28/01/2011 6 PROCESOS PSICOLÓGICOS BÁSICOS O 1 T A.2.2 Tercera

28/01/2011 6 PROCESOS PSICOLÓGICOS BÁSICOS O 1 T A.2.4 Tercera

28/01/2011 6 PROCESOS PSICOLÓGICOS BÁSICOS O 1 T A.2.22 Tercera

29/01/2011 1 CLIMA SOCIAL, CULT Y COMUNI ORGANIZACIONES EDUCA

O 1 T A.1.7 Primera

29/01/2011 1 CLIMA SOCIAL, CULT Y COMUNI ORGANIZACIONES EDUCA

O 1 T A.2.13 Primera

29/01/2011 2 PSICOLOGÍA DE LA ORIENTACIÓN ESCOLAR C 1 M A.2.6 Primera

29/01/2011 2 PSICOLOGÍA DE LA ORIENTACIÓN ESCOLAR C 1 M A.2.11 Primera

29/01/2011 2 PSICOLOGÍA DE LA ORIENTACIÓN ESCOLAR C 2 T A.2.8 Primera

29/01/2011 2 PSICOLOGÍA DE LA ORIENTACIÓN ESCOLAR C 2 T A.2.12 Primera

02/02/2011 1 DIAGNOSTICO DE LAS DIFICULTADES EN EL APRENDIZAJE

O 1 M A.1.1 Segunda

04/02/2011 1 INTERVENCIÓN PSICOPEDAGÓGICA EN LOS TRASTORNO

O 1 T A.2.1 Tercera

Page 150: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

149

La siguiente titulación es Grado en Educación Primaria y su

calendario de exámenes se presenta en la tabla 12:

Tabla 12

Fecha Curso Asignatura Tipo Grupo Turno Aula Hora

24/01/2011 1 PROCESOS SOCIOLÓGICOS BÁSICOS EN LA EDUCACIÓN

C 1 M A.3.1 Primera

24/01/2011 1 PROCESOS SOCIOLÓGICOS BÁSICOS EN LA EDUCACIÓN

C 1 M A.3.4 Primera

24/01/2011 1 PROCESOS SOCIOLÓGICOS BÁSICOS EN LA EDUCACIÓN

C 2 M A.1.1 Primera

24/01/2011 1 PROCESOS SOCIOLÓGICOS BÁSICOS EN LA EDUCACIÓN

C 2 M A.2.16 Primera

24/01/2011 1 PROCESOS SOCIOLÓGICOS BÁSICOS EN LA EDUCACIÓN

C 3 M A.2.6 Primera

24/01/2011 1 PROCESOS SOCIOLÓGICOS BÁSICOS EN LA EDUCACIÓN

C 3 M A.2.13 Primera

24/01/2011 1 PROCESOS SOCIOLÓGICOS BÁSICOS EN LA EDUCACIÓN

C 4 M A.2.14 Primera

24/01/2011 1 PROCESOS SOCIOLÓGICOS BÁSICOS EN LA EDUCACIÓN

C 4 M A.2.15 Primera

24/01/2011 1 PROCESOS SOCIOLÓGICOS BÁSICOS EN LA EDUCACIÓN

C 5 M A.1.7 Primera

24/01/2011 1 PROCESOS SOCIOLÓGICOS BÁSICOS EN LA EDUCACIÓN

C 5 M A.3.13 Primera

24/01/2011 1 PROCESOS SOCIOLÓGICOS BÁSICOS EN LA EDUCACIÓN

C 6 T A.2.15 Tercera

24/01/2011 1 PROCESOS SOCIOLÓGICOS BÁSICOS EN LA EDUCACIÓN

C 6 T A.3.12 Tercera

24/01/2011 1 PROCESOS SOCIOLÓGICOS BÁSICOS EN LA EDUCACIÓN

C 7 T A.2.6 Tercera

24/01/2011 1 PROCESOS SOCIOLÓGICOS BÁSICOS EN LA EDUCACIÓN

C 7 T A.2.12 Tercera

24/01/2011 1 PROCESOS SOCIOLÓGICOS BÁSICOS EN LA EDUCACIÓN

C 8 T A.2.13 Tercera

24/01/2011 1 PROCESOS SOCIOLÓGICOS BÁSICOS EN LA EDUCACIÓN

C 8 T A.2.14 Tercera

24/01/2011 1 PROCESOS SOCIOLÓGICOS BÁSICOS EN LA EDUCACIÓN

C 9 T A.2.4 Tercera

24/01/2011 1 PROCESOS SOCIOLÓGICOS BÁSICOS EN LA EDUCACIÓN

C 9 T A.3.21 Tercera

24/01/2011 1 PROCESOS SOCIOLÓGICOS BÁSICOS EN LA EDUCACIÓN

C 10 T A.2.17 Tercera

24/01/2011 1 PROCESOS SOCIOLÓGICOS BÁSICOS EN LA EDUCACIÓN

C 10 T A.2.22 Tercera

26/01/2011 1 FUNDAMENTOS DE CIENCIAS DE LA MATERIA C 1 M A.2.3 Primera

26/01/2011 1 FUNDAMENTOS DE CIENCIAS DE LA MATERIA C 1 M A.2.7 Primera

26/01/2011 1 FUNDAMENTOS DE CIENCIAS DE LA MATERIA C 2 M A.2.9 Primera

26/01/2011 1 FUNDAMENTOS DE CIENCIAS DE LA MATERIA C 2 M A.2.11 Primera

Page 151: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

150

26/01/2011 1 FUNDAMENTOS DE CIENCIAS DE LA MATERIA C 3 M A.2.8 Primera

26/01/2011 1 FUNDAMENTOS DE CIENCIAS DE LA MATERIA C 3 M A.2.13 Primera

26/01/2011 1 FUNDAMENTOS DE CIENCIAS DE LA MATERIA C 4 M A.2.14 Primera

26/01/2011 1 FUNDAMENTOS DE CIENCIAS DE LA MATERIA C 4 M A.2.15 Primera

26/01/2011 1 FUNDAMENTOS DE CIENCIAS DE LA MATERIA C 5 M A.1.7 Primera

26/01/2011 1 FUNDAMENTOS DE CIENCIAS DE LA MATERIA C 5 M A.3.1 Primera

26/01/2011 1 FUNDAMENTOS DE CIENCIAS DE LA MATERIA C 6 T A.2.8 Tercera

26/01/2011 1 FUNDAMENTOS DE CIENCIAS DE LA MATERIA C 6 T A.2.12 Tercera

26/01/2011 1 FUNDAMENTOS DE CIENCIAS DE LA MATERIA C 7 T A.2.15 Tercera

26/01/2011 1 FUNDAMENTOS DE CIENCIAS DE LA MATERIA C 7 T A.3.1 Tercera

26/01/2011 1 FUNDAMENTOS DE CIENCIAS DE LA MATERIA C 8 T A.2.7 Tercera

26/01/2011 1 FUNDAMENTOS DE CIENCIAS DE LA MATERIA C 8 T A.2.11 Tercera

26/01/2011 1 FUNDAMENTOS DE CIENCIAS DE LA MATERIA C 9 T A.2.13 Tercera

26/01/2011 1 FUNDAMENTOS DE CIENCIAS DE LA MATERIA C 9 T A.2.14 Tercera

26/01/2011 1 FUNDAMENTOS DE CIENCIAS DE LA MATERIA C 10 T A.2.4 Tercera

26/01/2011 1 FUNDAMENTOS DE CIENCIAS DE LA MATERIA C 10 T A.3.12 Tercera

02/02/2011 1 PSICOLOGÍA DEL DESARROLLO C 1 M A.2.2 Primera

02/02/2011 1 PSICOLOGÍA DEL DESARROLLO C 1 M A.2.5 Primera

02/02/2011 1 PSICOLOGÍA DEL DESARROLLO C 2 M A.2.3 Primera

02/02/2011 1 PSICOLOGÍA DEL DESARROLLO C 2 M A.2.7 Primera

02/02/2011 1 PSICOLOGÍA DEL DESARROLLO C 3 M A.2.8 Primera

02/02/2011 1 PSICOLOGÍA DEL DESARROLLO C 3 M A.3.2 Primera

02/02/2011 1 PSICOLOGÍA DEL DESARROLLO C 4 M A.2.15 Primera

02/02/2011 1 PSICOLOGÍA DEL DESARROLLO C 4 M A.3.3 Primera

02/02/2011 1 PSICOLOGÍA DEL DESARROLLO C 5 M A.2.12 Primera

02/02/2011 1 PSICOLOGÍA DEL DESARROLLO C 5 M A.2.16 Primera

02/02/2011 1 PSICOLOGÍA DEL DESARROLLO C 6 T A.2.2 Tercera

02/02/2011 1 PSICOLOGÍA DEL DESARROLLO C 6 T A.2.3 Tercera

02/02/2011 1 PSICOLOGÍA DEL DESARROLLO C 7 T A.2.7 Tercera

02/02/2011 1 PSICOLOGÍA DEL DESARROLLO C 7 T A.2.11 Tercera

02/02/2011 1 PSICOLOGÍA DEL DESARROLLO C 8 T A.1.1 Tercera

02/02/2011 1 PSICOLOGÍA DEL DESARROLLO C 8 T A.2.5 Tercera

02/02/2011 1 PSICOLOGÍA DEL DESARROLLO C 9 T A.2.4 Tercera

02/02/2011 1 PSICOLOGÍA DEL DESARROLLO C 9 T A.2.14 Tercera

02/02/2011 1 PSICOLOGÍA DEL DESARROLLO C 10 T A.2.8 Tercera

02/02/2011 1 PSICOLOGÍA DEL DESARROLLO C 10 T A.2.12 Tercera

04/02/2011 1 DIDÁCTICA GENERAL C 1 M A.1.1 Primera

04/02/2011 1 DIDÁCTICA GENERAL C 1 M A.2.7 Primera

04/02/2011 1 DIDÁCTICA GENERAL C 2 M A.2.2 Primera

04/02/2011 1 DIDÁCTICA GENERAL C 2 M A.2.16 Primera

04/02/2011 1 DIDÁCTICA GENERAL C 3 M A.2.9 Primera

04/02/2011 1 DIDÁCTICA GENERAL C 3 M A.2.17 Primera

04/02/2011 1 DIDÁCTICA GENERAL C 4 M A.2.12 Primera

04/02/2011 1 DIDÁCTICA GENERAL C 4 M A.2.13 Primera

04/02/2011 1 DIDÁCTICA GENERAL C 5 M A.2.14 Primera

04/02/2011 1 DIDÁCTICA GENERAL C 5 M A.2.15 Primera

Page 152: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

151

04/02/2011 1 DIDÁCTICA GENERAL C 6 T A.2.7 Tercera

04/02/2011 1 DIDÁCTICA GENERAL C 6 T A.2.22 Tercera

04/02/2011 1 DIDÁCTICA GENERAL C 7 T A.2.15 Tercera

04/02/2011 1 DIDÁCTICA GENERAL C 7 T A.3.1 Tercera

04/02/2011 1 DIDÁCTICA GENERAL C 8 T A.2.9 Tercera

04/02/2011 1 DIDÁCTICA GENERAL C 8 T A.2.11 Tercera

04/02/2011 1 DIDÁCTICA GENERAL C 9 T A.2.12 Tercera

04/02/2011 1 DIDÁCTICA GENERAL C 9 T A.2.16 Tercera

04/02/2011 1 DIDÁCTICA GENERAL C 10 T A.1.1 Tercera

04/02/2011 1 DIDÁCTICA GENERAL C 10 T A.2.13 Tercera

La siguiente titulación es Grado en Ciencias de la Actividad Física y

el deporte y su calendario de exámenes se presenta en la tabla 13:

Tabla 13

Fecha Curso Asignatura Tipo Grupo Turno Aula Hora

22/01/2011 1 VOLEIBOL I C 1 M A.3.14 Primera

22/01/2011 1 VOLEIBOL I C 1 M A.3.15 Primera

22/01/2011 2 FUNDAMENTOS DE LA GIMNASIA Y SU ENSEÑANZA

C 1 M A.2.5 Segunda

22/01/2011 2 FUNDAMENTOS DE LA GIMNASIA Y SU ENSEÑANZA

C 1 M A.2.13 Segunda

25/01/2011 1 ANATOMÍA HUMANA C 1 M A.2.7 Primera

25/01/2011 1 ANATOMÍA HUMANA C 1 M A.2.22 Primera

25/01/2011 2 SOCIOLOGÍA DEL DEPORTE C 1 M A.2.2 Primera

25/01/2011 2 SOCIOLOGÍA DEL DEPORTE C 1 M A.2.8 Primera

27/01/2011 1 HABILIDADES M Y SISTEMÁTICA DEL EJERCICIO

C 1 M A.2.1 Primera

27/01/2011 1 HABILIDADES M Y SISTEMÁTICA DEL EJERCICIO

C 1 M A.2.7 Primera

01/02/2011 2 BALONMANO I C 1 M A.2.2 Primera

01/02/2011 2 BALONMANO I C 1 M A.2.7 Primera

03/02/2011 1 DIDÁCTICA DE LA EDUCACIÓN FÍSICA C 1 M A.1.1 Primera

03/02/2011 1 DIDÁCTICA DE LA EDUCACIÓN FÍSICA C 1 M A.2.6 Primera

03/02/2011 2 BIOMECÁNICA DE LA ACTIVIDAD FÍSICA Y DEL DEPORTE

C 1 M A.2.8 Primera

03/02/2011 2 BIOMECÁNICA DE LA ACTIVIDAD FÍSICA Y DEL DEPORTE

C 1 M A.2.11 Primera

05/02/2011 1 BALONCESTO I C 1 M A.2.3 Primera

05/02/2011 1 BALONCESTO I C 1 M A.2.4 Primera

05/02/2011 2 FISIOLOGÍA DEL EJERCICIO C 1 M A.2.7 Primera

05/02/2011 2 FISIOLOGÍA DEL EJERCICIO C 1 M A.2.14 Primera

Page 153: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

152

La siguiente titulación es Grado en Pedagogía y su calendario de

exámenes se presenta en la tabla 14:

Tabla 14

Fecha Curso Asignatura Tipo Grupo Turno Aula Hora

22/01/2011 1 SOCIOLOGÍA GENERAL C 1 M A.1.7 Primera

22/01/2011 1 SOCIOLOGÍA GENERAL C 1 M A.3.21 Primera

22/01/2011 1 SOCIOLOGÍA GENERAL C 2 M A.1.1 Segunda

22/01/2011 1 SOCIOLOGÍA GENERAL C 2 M A.1.7 Segunda

22/01/2011 1 SOCIOLOGÍA GENERAL C 3 T A.2.1 Segunda

22/01/2011 1 SOCIOLOGÍA GENERAL C 3 T A.2.2 Segunda

22/01/2011 1 SOCIOLOGÍA GENERAL C 4 T A.2.3 Segunda

22/01/2011 1 SOCIOLOGÍA GENERAL C 4 T A.2.4 Segunda

24/01/2011 2 ORGANIZACIÓN Y GESTIÓN EDUCATIVA C 1 M A.2.8 Primera

24/01/2011 2 ORGANIZACIÓN Y GESTIÓN EDUCATIVA C 1 M A.2.22 Primera

24/01/2011 2 ORGANIZACIÓN Y GESTIÓN EDUCATIVA C 2 M A.3.2 Primera

24/01/2011 2 ORGANIZACIÓN Y GESTIÓN EDUCATIVA C 2 M A.3.3 Primera

24/01/2011 2 ORGANIZACIÓN Y GESTIÓN EDUCATIVA C 3 T A.3.1 Tercera

25/01/2011 1 EL CONOCIMIENTO CIENTÍFICO EDUCATIVO C 1 M A.1.7 Primera

25/01/2011 1 EL CONOCIMIENTO CIENTÍFICO EDUCATIVO C 1 M A.3.21 Primera

25/01/2011 1 EL CONOCIMIENTO CIENTÍFICO EDUCATIVO C 2 M A.2.6 Primera

25/01/2011 1 EL CONOCIMIENTO CIENTÍFICO EDUCATIVO C 2 M A.2.11 Primera

25/01/2011 1 EL CONOCIMIENTO CIENTÍFICO EDUCATIVO C 3 T A.2.5 Tercera

25/01/2011 1 EL CONOCIMIENTO CIENTÍFICO EDUCATIVO C 3 T A.2.11 Tercera

25/01/2011 1 EL CONOCIMIENTO CIENTÍFICO EDUCATIVO C 4 T A.2.9 Tercera

25/01/2011 1 EL CONOCIMIENTO CIENTÍFICO EDUCATIVO C 4 T A.2.22 Tercera

26/01/2011 2 TECNOLOGÍA EDUCATIVA C 1 M A.2.17 Primera

26/01/2011 2 TECNOLOGÍA EDUCATIVA C 1 M A.2.22 Primera

26/01/2011 2 TECNOLOGÍA EDUCATIVA C 2 M A.3.2 Primera

26/01/2011 2 TECNOLOGÍA EDUCATIVA C 2 M A.3.3 Primera

26/01/2011 2 TECNOLOGÍA EDUCATIVA C 3 T A.1.1 Cuarta

27/01/2011 1 DISEÑOS DE INVESTIGACIÓN Y ANÁLISIS DE DATOS EN EDU

C 1 M A.2.8 Primera

27/01/2011 1 DISEÑOS DE INVESTIGACIÓN Y ANÁLISIS DE DATOS EN EDU

C 1 M A.2.22 Primera

27/01/2011 1 DISEÑOS DE INVESTIGACIÓN Y ANÁLISIS DE DATOS EN EDU

C 2 M A.1.7 Primera

27/01/2011 1 DISEÑOS DE INVESTIGACIÓN Y ANÁLISIS DE DATOS EN EDU

C 2 M A.3.1 Primera

27/01/2011 1 DISEÑOS DE INVESTIGACIÓN Y ANÁLISIS DE DATOS EN EDU

C 3 T A.1.1 Tercera

28/01/2011 2 HISTORIA DE LA EDUCACIÓN CONTEMPORÁNEA

C 1 M A.2.7 Primera

28/01/2011 2 HISTORIA DE LA EDUCACIÓN CONTEMPORÁNEA

C 1 M A.2.11 Primera

28/01/2011 2 HISTORIA DE LA EDUCACIÓN CONTEMPORÁNEA

C 2 M A.1.7 Primera

Page 154: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

153

28/01/2011 2 HISTORIA DE LA EDUCACIÓN CONTEMPORÁNEA

C 2 M A.2.12 Primera

28/01/2011 2 HISTORIA DE LA EDUCACIÓN CONTEMPORÁNEA

C 3 T A.2.1 Cuarta

01/02/2011 1 BASES FILOSÓFICAS Y ANTROPOLÓGICAS DE LA EDUCAC.

C 1 M A.1.1 Primera

01/02/2011 1 BASES FILOSÓFICAS Y ANTROPOLÓGICAS DE LA EDUCAC.

C 1 M A.1.7 Primera

01/02/2011 1 BASES FILOSÓFICAS Y ANTROPOLÓGICAS DE LA EDUCAC.

C 2 M A.2.9 Primera

01/02/2011 1 BASES FILOSÓFICAS Y ANTROPOLÓGICAS DE LA EDUCAC.

C 2 M A.2.12 Primera

01/02/2011 1 BASES FILOSÓFICAS Y ANTROPOLÓGICAS DE LA EDUCAC.

C 3 T A.2.3 Tercera

01/02/2011 1 BASES FILOSÓFICAS Y ANTROPOLÓGICAS DE LA EDUCAC.

C 3 T A.2.5 Tercera

01/02/2011 1 BASES FILOSÓFICAS Y ANTROPOLÓGICAS DE LA EDUCAC.

C 4 T A.2.2 Tercera

01/02/2011 1 BASES FILOSÓFICAS Y ANTROPOLÓGICAS DE LA EDUCAC.

C 4 T A.2.6 Tercera

02/02/2011 2 TÉCNICAS E INSTRUMENTOS DE DIAGNOSTICO C 1 M A.2.13 Primera

02/02/2011 2 TÉCNICAS E INSTRUMENTOS DE DIAGNOSTICO C 1 M A.2.14 Primera

02/02/2011 2 TÉCNICAS E INSTRUMENTOS DE DIAGNOSTICO C 2 M A.1.7 Primera

02/02/2011 2 TÉCNICAS E INSTRUMENTOS DE DIAGNOSTICO C 2 M A.2.11 Primera

02/02/2011 2 TÉCNICAS E INSTRUMENTOS DE DIAGNOSTICO C 3 T A.2.1 Tercera

03/02/2011 1 EDUCACIÓN Y DIVERSIDAD C 1 M A.2.7 Primera

03/02/2011 1 EDUCACIÓN Y DIVERSIDAD C 1 M A.2.12 Primera

03/02/2011 1 EDUCACIÓN Y DIVERSIDAD C 2 M A.2.13 Primera

03/02/2011 1 EDUCACIÓN Y DIVERSIDAD C 2 M A.2.14 Primera

03/02/2011 1 EDUCACIÓN Y DIVERSIDAD C 3 T A.2.1 Tercera

03/02/2011 1 EDUCACIÓN Y DIVERSIDAD C 3 T A.2.2 Tercera

03/02/2011 1 EDUCACIÓN Y DIVERSIDAD C 4 T A.2.3 Tercera

03/02/2011 1 EDUCACIÓN Y DIVERSIDAD C 4 T A.2.4 Tercera

04/02/2011 2 METODOLOGÍA DE LA EVALUACIÓN C 1 M A.2.4 Primera

04/02/2011 2 METODOLOGÍA DE LA EVALUACIÓN C 1 M A.2.11 Primera

04/02/2011 2 METODOLOGÍA DE LA EVALUACIÓN C 2 M A.2.22 Primera

04/02/2011 2 METODOLOGÍA DE LA EVALUACIÓN C 2 M A.3.1 Primera

04/02/2011 2 METODOLOGÍA DE LA EVALUACIÓN C 3 T A.2.14 Tercera

05/02/2011 1 PROCESOS PSICOLÓGICOS BÁSICOS C 1 M A.1.1 Primera

05/02/2011 1 PROCESOS PSICOLÓGICOS BÁSICOS C 1 M A.1.7 Primera

05/02/2011 1 PROCESOS PSICOLÓGICOS BÁSICOS C 2 M A.2.9 Primera

05/02/2011 1 PROCESOS PSICOLÓGICOS BÁSICOS C 2 M A.2.11 Primera

05/02/2011 1 PROCESOS PSICOLÓGICOS BÁSICOS C 3 T A.2.12 Primera

05/02/2011 1 PROCESOS PSICOLÓGICOS BÁSICOS C 3 T A.2.13 Primera

05/02/2011 1 PROCESOS PSICOLÓGICOS BÁSICOS C 4 T A.2.2 Primera

05/02/2011 1 PROCESOS PSICOLÓGICOS BÁSICOS C 4 T A.2.22 Primera

Page 155: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

154

La última titulación es Grado en educación infantil y su calendario

de exámenes se presenta en la tabla 15:

Tabla 15

Fecha Curso Asignatura Tipo Grupo Turno Aula Hora

27/01/2011 1 PSICOLOGÍA DEL DESARROLLO C 1 M A.2.11 Primera

27/01/2011 1 PSICOLOGÍA DEL DESARROLLO C 2 M A.1.1 Primera

27/01/2011 1 PSICOLOGÍA DEL DESARROLLO C 3 T A.2.5 Tercera

27/01/2011 1 PSICOLOGÍA DEL DESARROLLO C 3 T A.2.12 Tercera

27/01/2011 1 PSICOLOGÍA DEL DESARROLLO C 4 T A.2.9 Tercera

27/01/2011 1 PSICOLOGÍA DEL DESARROLLO C 4 T A.2.11 Tercera

29/01/2011 1 DIDÁCTICA GENERAL C 1 M A.1.1 Primera

29/01/2011 1 DIDÁCTICA GENERAL C 2 M A.2.22 Primera

29/01/2011 1 DIDÁCTICA GENERAL C 3 T A.2.4 Primera

29/01/2011 1 DIDÁCTICA GENERAL C 3 T A.3.2 Primera

29/01/2011 1 DIDÁCTICA GENERAL C 4 T A.2.15 Primera

29/01/2011 1 DIDÁCTICA GENERAL C 4 T A.3.1 Primera

01/02/2011 1 CORRIENTES CONTEMPORÁNEAS DE LA EDUCACIÓN. IMP

C 1 M A.2.11 Primera

01/02/2011 1 CORRIENTES CONTEMPORÁNEAS DE LA EDUCACIÓN. IMP

C 2 M A.1.1 Segunda

01/02/2011 1 CORRIENTES CONTEMPORÁNEAS DE LA EDUCACIÓN. IMP

C 3 T A.2.8 Tercera

01/02/2011 1 CORRIENTES CONTEMPORÁNEAS DE LA EDUCACIÓN. IMP

C 3 T A.2.11 Tercera

01/02/2011 1 CORRIENTES CONTEMPORÁNEAS DE LA EDUCACIÓN. IMP

C 4 T A.2.1 Tercera

01/02/2011 1 CORRIENTES CONTEMPORÁNEAS DE LA EDUCACIÓN. IMP

C 4 T A.2.7 Tercera

Si se observa detenidamente la solución proporcionada por el

algoritmo, se pueden destacar varias características clave:

Reparto equitativo de los exámenes: si se observa con detenimiento

la solución obtenida para las distintas titulaciones, se puede

comprobar que los exámenes de cada titulación se encuentran

repartidos de una forma bastante equitativa a lo largo del periodo de

exámenes. De esta forma, se contribuye a que los alumnos puedan

repartirse mejor su tiempo facilitando así la consecución de sus

objetivos académicos.

Minimización de exámenes consecutivos: gracias a la solución

inicial proporcionada, el número de exámenes de un mismo curso en

días consecutivos se ha llevado al mínimo posible. Si se observa con

Page 156: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

155

cuidado, se puede observar como la gran mayoría de los exámenes

guardan al menos un día de descanso entre ellos.

7.2 EVOLUCIÓN DE LA MEJOR SOLUCIÓN Y DEL ALGORITMO EN

FUNCIÓN DE LAS ITERACIONES

En la siguiente figura se muestra la evolución de la mejor solución

encontrada por el algoritmo de búsqueda tabú (en verde) junto con la

evolución de los pasos del algoritmo (en azul), también conocida

comúnmente como curva de aprendizaje.

Para un problema de 320 grupos de examen la gráfica se muestra en la

figura 16:

Figura 16

Como se puede observar, la evolución del algoritmo de búsqueda

tabú es muy similar al de la mejor solución durante prácticamente toda la

ejecución. La razón de este buen comportamiento del algoritmo es la

Page 157: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

156

correcta elección del grupo a mover, es decir, del punto sobre el que se

genera el vecindario.

Como se recordará, el algoritmo tabú escogía siempre para mover

aquellos grupos que incumplían alguna restricción. De esta forma, la

probabilidad de encontrar una solución mejor es bastante alta. Esto hace

que en la mayoría de las ocasiones la búsqueda tabú avance correctamente

encontrando siempre mejores soluciones.

Sin embargo, existen tres o cuatro puntos en los que se puede

comprobar como la búsqueda tabú se aleja de la solución. Existen dos

situaciones que han originado esto.

La primera situación que explica esto es el hecho de que la búsqueda

tabú es incapaz de encontrar una mejor solución en el día en que se

encuentra asignado el examen. Esto ocasiona que, conforme avanzan las

iteraciones y se va marcando como tabú los mejores movimientos, el

algoritmo se vea forzado a seleccionar otros movimientos peores. Esto

explica los dos primeros casos que se encuentran antes de la iteración 150.

Para salir de esta situación, es necesario recurrir a la memoria de la

búsqueda tabú que detecta este estancamiento y hace continuar la

búsqueda.

La segunda circunstancia que se da es la entrada en juego de los

mecanismos para cambiar de hora y de día. Como se indicó en los

apartados anteriores, cuando la solución se queda estancada el algoritmo

procede a recordar que dichos grupos no han sido capaces se asignarse

correctamente.

Una vez llegado al último grupo, el algoritmo procede a mover todos

aquellos grupos que han generado estancamiento. Para ello es necesario o

bien moverlos de hora o bien de día. Ambos movimientos ocasionan un

aumento inicial de la evolución de los movimientos aunque, cuando se

mueve toda la asignatura, se consigue mejorar la solución obtenida. Este es

el origen de los picos azules en las últimas iteraciones (a partir de la 330

más o menos).

Page 158: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

157

7.3 EVOLUCIÓN DE LAS RESTRICCIONES SUAVES EN FUNCIÓN DE

LAS ITERACIONES

En el apartado anterior se ha comprobado la evolución de la

evaluación global de la solución. En esta evaluación global se encuentra

tanto reflejada tanto las restricciones duras como las suaves.

Sin embargo, debido al mayor peso relativo de las restricciones duras

con respecto a las suaves, que es mayor en varios ordenes de magnitud, no

se puede apreciar bien su evolución. Por este motivo se incluirá una gráfica

con la evolución de las restricciones suaves.

La figura 17 refleja dicha evolución para un problema de 320

alumnos:

Figura 17

Como se puede observar, la evaluación de estas restricciones no es

siempre descendente. Esto es debido a que se otorga mayor prioridad a

cumplir cualquier restricción dura antes que a una suave.

Page 159: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

158

Sin embargo, a pesar de esta prioridad, se puede comprobar como en

líneas generales su evolución es descendente. Esto es debido a que con

cada movimiento el algoritmo intenta siempre mejorar este parámetro

consiguiendo finalmente reducir bastante su valor.

Si se observa con detenimiento la gráfica en su parte final, llama la

atención la repentina subida que experimenta en las últimas iteraciones.

Esta subida es debida precisamente a los cambios de día y hora que se

realizan al final de la ejecución. Durante estos cambios se mueven gran

cantidad de grupos en sitios donde la ubicación de los mismos es

complicada. Esto ocasiona que el algoritmo tenga que renunciar a cumplir

estas restricciones para poder cumplir las duras.

7.4 EVOLUCIÓN DEL TIEMPO DE EJECUCIÓN EN FUNCIÓN DEL

NÚMERO DE GRUPOS DE EXAMEN

Durante todo el proyecto se ha intentado siempre reducir al máximo

el tiempo y los recursos empleados por el algoritmo para hallar una

solución admisible.

El motivo de esto ha sido siempre el evitar que la ejecución del

algoritmo abarcara un tiempo excesivamente grande. Para comprender la

importancia del tiempo de ejecución se llevará a cabo un análisis que ponga

de manifiesto cuáles son los principales aspectos que influyen en este

parámetro.

En primer lugar, se ha estimado oportuno estudiar la influencia de

aumentar el número de grupos de examen mientras se mantienen constantes

el resto de parámetros como pueden ser el número de aulas, los días de

examen, la ocupación de las aulas, etc.

Page 160: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

159

Para ello se ha tomado una convocatoria de características estándar y

se ha ido aumentando progresivamente el número de número de grupos. El

resultado obtenido se puede visualizar en la figura 18:

Como se puede observar, la evolución del tiempo de ejecución es

bastante sensible al número de grupos de examen. Además la evolución no

es lineal sino que el tiempo de ejecución aumenta con el número de grupos,

reflejando en mayor grado un típico comportamiento en los problemas del

tipo NP-Hard.

7.5 EVOLUCIÓN DEL TIEMPO DE EJECUCIÓN EN FUNCIÓN DEL

TAMAÑO MEDIO DE LOS GRUPOS

En este apartado se estudia cómo influye el tamaño medio de los

grupos de examen en el tiempo de ejecución. Para ello se ha escogido una

convocatoria estándar y se ha ido variando el número de alumnos por

examen. En esta ocasión, se ha elegido una convocatoria de 320 alumnos.

0

2000

4000

6000

8000

10000

12000

Tiem

po

(s)

Tiempo vs Nº de grupos

40 grupos

80 grupos

120 grupos

160 grupos

200 grupos

240 grupos

280 grupos

320 grupos

Figura 18

Page 161: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

160

En la figura 19 se puede comprobar la evolución del tiempo de

ejecución.

Como se puede observar, el tiempo de ejecución resulta muy sensible

al tamaño medio de los grupos. De hecho se comprueba cómo cada vez que

se aumenta en 15 alumnos la media de los grupos el tiempo de ejecución

prácticamente se dobla. Esta situación probablemente irá empeorando a

medida que aumente el tamaño medio ya que el limitado tamaño de las

clases hace que a medida que los grupos aumentan de tamaño se hace más

difícil asignarlos.

0

5000

10000

15000

20000

25000

Tiem

po

(s)

Tiempo vs Tamaño Medio

Media 40

Media 55

Media 70

Figura 19

Page 162: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

161

8. CONCLUSIONES Y LI NEAS FUTURAS

En este proyecto se ha resuelto un problema de diseño de calendarios

de exámenes, catalogado en la literatura como NP-Hard. Más

concretamente, se ha diseñado el calendario de exámenes para la nueva

Facultad de Ciencias de la Educación de la Universidad de Sevilla.

En este centro, la problemática que generaba la creación del

calendario de exámenes era bastante importante. El principal motivo de

esta problemática se encuentra en el hecho de que, mientras que las aulas

del nuevo edificio de la facultad poseen un tamaño reducido, en algunas

titulaciones existen grupos de examen muy numerosos que no caben en

dichas aulas.

Esto obliga a repartir los alumnos en diversas aulas para poder

celebrar el examen. Sin embargo, esta asignación de diversas aulas no se

puede realizar de cualquier forma debido a restricciones logísticas. Esto

hace que la creación de un calendario de exámenes de forma manual, tal y

como se venía haciendo hasta el momento, resulte prácticamente inviable.

Para solucionar este problema, se ha diseñado un modelo matemático

que incluye todas las condiciones que debe cumplir un calendario de

exámenes para considerarse admisible.

Este modelo matemático combinado correctamente con un algoritmo

de búsqueda tabú especialmente optimizado para este caso particular, ha

dado como resultado un algoritmo capaz de resolver el problema en

cuestión.

Este algoritmo ha sido implementado con la ayuda del programa

Matlab obteniendo unos resultados que mejoran notablemente la anterior

mecánica de creación de calendarios.

Además, para la creación de dicho calendario el programa precisa de

información sobre las asignaturas que van a concurrir a examen con todas

sus características, así como información sobre las ocupaciones de las

Page 163: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

162

aulas. Para facilitar al máximo la utilización del programa, la introducción

de estos datos se realiza gracias a unas plantillas Excel con un formato

predefinido.

Finalmente, para intentar optimizar al máximo el consumo de

recursos por parte del algoritmo de búsqueda tabú, se han realizado

numerosas pruebas para recopilar datos suficientes que permitan

comprender el funcionamiento del programa.

Estas pruebas se han documentado mediante la inclusión de varías

gráficas que intentan reflejar el comportamiento de los parámetros claves

del modelo. Observando dichas gráficas se obtienen las siguientes

conclusiones:

El tiempo de ejecución depende fuertemente del número grupos que

concurran a examen. Se puede observar como estos parámetros no

guardan una relación en absoluto lineal. De hecho, el tiempo de

ejecución responde de manera muy significativa ante cualquier

variación del número de exámenes.

El tamaño medio de los grupos de examen resulta también un

parámetro clave debido a que el principal problema del nuevo

edificio es precisamente el reducido tamaño de las aulas.

Al ser un problema tipo NP-Hard, una juiciosa elección del

vecindario de la búsqueda tabú unido a una solución inicial de alta

calidad resultan factores críticos para conseguir tiempos de ejecución

razonables.

El objetivo principal del proyecto se considera cumplido ya que se ha

conseguido un software capaz de crear el calendario de exámenes de una

forma rápida y eficaz.

Además, la introducción de datos a través de archivos Excel hace que

la ejecución del programa a lo largo de los años resulte muy cómoda ya que

bastará con cambiar el número de alumnos matriculados y las fechas de

examen. Si se hubiera optado por otro origen de datos, como la

introducción directamente con pantallas, el tiempo de introducción de datos

año tras año haría muy pesada la resolución del problema.

Existen varios caminos posibles para futuras líneas de trabajo. En

primer lugar, se podría comenzar incorporando un algoritmo de solución

Page 164: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

163

inicial más eficiente que probablemente reduciría en un gran porcentaje el

tiempo de ejecución.

Otra de las opciones, sería la investigación en la lógica del propio

algoritmo de búsqueda tabú. Probablemente, la introducción de nuevos

filtros que ayuden a encauzar mejor la solución conseguiría una mejora de

la eficiencia global del programa.

Sin embargo, y a pesar de que cualquier mejora de la eficiencia

resulta positiva, en este caso particular tampoco resulta crítico, siempre y

cuando se mantenga dentro de unos límites razonables. Hay que tener en

cuenta, que este programa se ejecutará tan solo cuatro veces por curso

académico y que, por tanto, una mejora de la eficiencia en términos de

minutos o segundos finalmente resultará un ventaja mínima.

Evidentemente, esta cuestión resultaría distinta si se tratara de un

programa que se necesita ejecutar diaria o semanalmente en cuyo caso

habría que dar mayor peso a este aspecto.

Page 165: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

164

9. BIBLIOGRAFI A

1) Applegate, D., & Cook, W. (1991). A Computational Study of the

Job-Shop Scheduling Problem. ORSA Journal on Computing, vol. 3,

Issue 2, pp. 149-156.

2) Caprara, A.; Fischetti. M; Toth. P. (2002). Modeling and solving the

train timetabling problem. Operations Research, vol. 50, nº 5, pp

851-861.

3) de Werra, D. (1985). An introduction to timetabling. European

Journal of Operational Research,vol. 19, Issue 2, pp 151-162.

4) Dell'Amico, Mauro; Trubian, Marco. (1993). Applying tabu search

to the job-shop scheduling problem. Annals of Operations Research,

Springer Netherlands, Springer Netherlands, vol. 42, nº 3, pp. 231-

252.

5) E. K, Burke; G., Kendall; E., Soubeiga. (2003). A Tabu-Search

Hyperheuristic for Timetabling and Rostering. Journal of Heuristics.

vol 9. nº 6. pp 451-470.

6) Hertz, A. (1991). Tabu search for large scale timetabling problems.

European Journal of Operational Research, vol. 54, Issue 1, pp 39-

47

7) Walker, R.A.; Chaudhuri, S. (2005). Introduction to the scheduling

problem. IEEE Design & Test of Computers, vol.12, nº 2, pp. 60-69.

Page 166: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

165

10. ANEXO: MANUAL DE USUARIO

Este anexo incluye el manual de usuario del programa. El principal

motivo de la escritura de este manual es poder proporcionar a los

responsables del calendario de exámenes de la Facultad de Ciencias de la

Educación. De esta forma, en caso de duda durante la utilización del

programa, poseerán un documento donde poder acudir. La estructura del

manual de usuario será la siguiente:

1. Presentación.

2. Instalación.

3. Introducción de datos.

4. Ejecución del programa.

5. Archivo de salida.

10.1 PRESENTACIÓN

En primer lugar se explicará cómo se presenta el programa al usuario

final. El programa se suministra en una carpeta llamada calendario_v1 en la

que se encuentran todos los archivos necesarios para su ejecución.

Dentro de esta carpeta existen 3 carpetas: “distrib”, “scr” y

“Plantillas de datos” así como dos archivos: “Setup.exe” y “logoUS.ico”.

Su aspecto se puede observar en la figura 20:

Page 167: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

166

Figura 20

Setup.exe

Este ejecutable contiene el Runtime de Matlab que es el motor

encargado de ejecutar el programa. Resulta imprescindible su instalación

en cualquier ordenador que carezca de una versión de Matlab superior a la

7.8.0.347 (R2009a) que es la utilizada para la creación del programa.

Es importante resaltar que es necesario que se encuentre instalada

siempre una versión superior a la utilizada, en caso contrario podría dar

errores durante la ejecución.

LogoUS.ico

Este archivo es un archivo de icono. Contiene en su interior el

logotipo del programa, que es el mismo que el de la Universidad de Sevilla.

Es útil para conseguir tener un icono distinto al estándar de Windows.

Page 168: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

167

Carpeta distrib

Esta carpeta contiene en su interior distintos archivos para el

funcionamiento interno del programa. Los archivos más importantes son:

calendario_v1.exe: es el ejecutable que hay que utilizar para lanzar el

programa.

calendario_v1_pkg.exe: este ejecutable contiene en su interior una

copia del Runtime de Matlab y otra del programa calendario_v1. Al

ejecutarse se abre una pantalla de MS DOS en la que tras responder

afirmativamente a unas preguntas genera los archivos

“MCRInstaller.exe” y “calendario_v1.exe”. El primero de ellos es el

Runtime de Matlab mientras que el segundo es el programa. Este

ejecutable solo debe usarse en caso de borrado accidental de alguno

de estos archivos.

Carpeta scr

Esta carpeta contiene en su interior diversos archivos para el

funcionamiento del programa. Con excepción de “calendario_v1.exe”, que

no es más que una copia del programa, ninguno de los demás resulta de

interés para el usuario final.

Carpeta Plantillas de Datos

Esta carpeta contiene en su interior las plantillas de datos que deben

ser introducidas en el programa. Las plantillas de datos que contiene son

tres: “Datos”, “Horarios” y “Días de examen”. Estos tres archivos son los

archivos de entrada del programa y más adelante se explicará cómo deben

ser rellenados.

Las plantillas se proporcionan tanto en formato Office 2003 (*xls)

como en formato Office 2007 (*xlsx). El programa admite ambas versiones

de Office por lo que el usuario puede elegir libremente la versión que

encuentre más cómoda.

Page 169: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

168

Además, el usuario puede cambiar el nombre de las plantillas. De

esta forma, se da libertad al usuario para que, por ejemplo, añada en cada

plantilla la convocatoria para la que está ejecutando el programa.

10.2 INSTALACIÓN

La instalación del programa debe realizarse en todos aquellos

equipos que no dispongan de una versión de Matlab igual o superior a la

7.8.0.347 (R2009a).

Para instalar el programa, el usuario tendrá que seguir unos sencillos

pasos:

En primer lugar debe copiar en su equipo la carpeta raíz del

programa “calendario_v1”. Una vez hecho esto el usuario deberá ejecutar

el archivo “Setup”. Una vez hecho esto aparecerá en la pantalla una

ventana como la que representa la figura 21:

Figura 21

El idioma español no se encuentra disponible en esta instalación, por

lo que se recomienda utilizar el inglés. Una vez pulsado el botón OK el

programa comenzará a prepararse para su instalación.

Pasado un pequeño tiempo, en función de las características del

equipo informático, aparecerá una ventana como la que se puede observar

en la figura 22:

Page 170: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

169

Figura 22

En este punto de la instalación habrá que pulsar el botón “Next”

varias veces hasta que aparezca la siguiente ventana:

Figura 23

Page 171: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

170

En esta ventana se pulsará el botón “Install” y el Runtime de Matlab

quedará instalado en el equipo. Una vez terminada la instalación, aparecerá

un mensaje de confirmación como el de la figura 24:

Figura 24

Una vez pulsado el botón “Finish” ya se encontrará instalado en el

equipo el motor de Matlab con lo que será posible ejecutar el programa.

Llegados a este punto, se recomienda al usuario que realice un

acceso directo al programa en su escritorio. De esta forma, se evitarán

modificaciones involuntarias de las carpetas del programa que podrían

ocasionar un funcionamiento incorrecto del mismo.

Para crear el acceso directo, el usuario debe buscar el archivo

“calendario_v1” en el interior de la carpeta “distrib”. Una vez hecho esto,

se debe hacer clic con el botón derecho del ratón en este archivo y pulsar

sobre la opción “Crear acceso directo”. Una vez creado el acceso directo se

debe copiar y pegar en el escritorio para poder acceder desde allí al

programa.

Page 172: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

171

Dependiendo de la versión de Windows utilizada es posible que para

crear el acceso directo se deba realizar lo siguiente: hacer clic derecho

sobre el archivo, situarse encima del texto “enviar a”, y seleccionar

“Escritorio (crear acceso directo)” del menú desplegable.

Una vez creado el acceso directo y si el usuario quiere puede poner

el icono de la universidad de Sevilla en dicho acceso directo. Para ello es

necesario cambiar el icono por defecto que Windows asigna al programa.

El procedimiento para cambiar este icono es el mismo que en

cualquier otro acceso directo. En el icono del acceso directo en el escritorio

se hace clic derecho y se selecciona el texto propiedades. Una vez hecho

esto aparecerá una ventana similar a la representada en la figura 25:

Figura 25

Page 173: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

172

Una vez hecho esto se debe hacer clic en el botón “Cambiar

icono…”. Al hacer esto saldrá un mensaje de información como el que

aparece en la figura 26:

Figura 26

Se hace clic en aceptar tras lo cual aparece una ventana como la

representada en la figura 27:

Figura 27

En esta ventana habrá que hacer clic en “Examinar…” y buscar en la

ventana que aparece el archivo “logoUS.ico” que se encuentra en la carpeta

Page 174: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

173

raíz del programa. Una vez hecho esto aparecerá una ventana como la que

se puede observar en la figura 28:

Figura 28

Simplemente bastará con hacer clic en aceptar y comprobar como el

icono del acceso directo ha cambiado por el logotipo de la Universidad de

Sevilla.

10.3 INTRODUCCIÓN DE DATOS

Antes de ejecutar el programa, es necesario introducir todos los datos

en las distintas plantillas suministradas con el programa. Esta es la parte

más delicada de toda la ejecución del programa ya que es muy importante

adaptarse al formato que se explicará a continuación.

En caso de que no se siguiera el formato predefinido, la ejecución del

programa podría no ser satisfactoria, interrumpiéndose inesperadamente o,

por el contrario, podría ofrecer una solución distinta a las expectativas del

usuario.

Page 175: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

174

La reacción del programa dependerá del error cometido. El programa

posee implementadas unas comprobaciones que ayudan al usuario a evitar

este tipo de errores. Sin embargo, no todos los errores pueden ser

detectados por lo que es necesario prestar especial atención a este aspecto.

10.3.1 ARCHIVO DATOS

Este archivo es el primero al que se debe hacer referencia en el

programa y su aspecto se muestra en la figura 29:

Figura 29

Lo primero que es necesario hacer es elegir un nombre para el

archivo. El nombre que por defecto se pone a esta plantilla es el nombre de

“Datos” aunque el usuario puede elegir otro nombre que se adapte mejor a

sus necesidades.

En ese punto es importante resaltar que no es recomendable realizar

este cambio de nombre directamente sobre la plantilla facilitada ya que

ocasionaría su pérdida para la siguiente ejecución. Se recomienda realizar

una copia de las plantillas para así conservar siempre los originales.

Una estrategia que puede resultar útil de cara al futuro es ir

almacenando cada una de las plantillas por convocatorias. De esta forma,

cuando se vuelva a ejecutar el programa tan solo será necesaria adaptar los

Page 176: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

175

cambios que haya habido de un año a otro, evitando tener que introducir de

nuevo todos los datos.

Una vez realizada la copia de la plantilla y renombrada se deben

introducir los datos en la misma. Para ello debe seguirse un formato

predefinido que varía en función de la columna que se esté rellenando. Las

consideraciones más importantes de cada columna son:

Primera columna (Columna A)

En esta columna, como se indica en su encabezado, se debe

introducir la titulación a la que pertenece el examen de su fila. Una vez

introducido el nombre de una titulación, no es necesario copiar el nombre

de la misma para todos y cada uno de los exámenes de esa titulación.

Si la celda correspondiente a la titulación se encuentra vacía, el

programa interpreta que ese examen pertenece a la titulación que se

encuentre en la parte superior de la columna. Es decir, si escribimos el

nombre de una titulación en la casilla A-5 de Excel, el programa interpreta

que mientras que no escribamos nada distinto, todas los exámenes que se

encuentren por debajo de la fila 5 (incluida) pertenecen a la misma

titulación.

Esto consigue que el usuario solo necesite escribir una vez el nombre

de la titulación, aunque si lo estima necesario el usuario puede rellenar

todas las celdas de la columna.

Segunda columna (Columna B)

En esta columna se debe introducir, en formato numérico, el curso al

que pertenece la asignatura correspondiente a su fila. Al igual que en el

caso de la titulación, en esta columna tampoco es necesario rellenar todas

las casillas de las columnas.

El programa interpreta una casilla vacía como si estuviera escrita con

el último número escrito de sus filas superiores. Por tanto, tan solo será

estrictamente necesario escribir en la casilla cuando exista un cambio de

Page 177: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

176

curso, aunque se pueden escribir todas o parte de ellas si se estima más

cómodo.

En esta columna, merecen una especial mención los denominados

complementos de formación. Los complementos de formación son unas

asignaturas que no se encuentran ligada a ningún curso en concreto de la

titulación a la que pertenecen. A pesar de ello, su casilla no puede dejarse

en blanco puesto que si no el programa interpretaría que pertenecen al

último curso escrito.

Por lo tanto, se les debe asignar un curso distinto al de todas las

asignaturas, por ejemplo el 6. Si el usuario desea asegurarse que todos los

complementos de formación se celebren en distintos días, es necesario que

les asigne a todos ellos el mismo curso. En caso contrario, el usuario

debería asignarle distintos cursos a los complementos que no tengan porqué

encontrase en distintos días, por ejemplo 6, 7, 8, etc.

Tercera columna (Columna C)

En esta columna se indica la fecha de inicio del periodo de exámenes

para la asignatura en cuestión. La fecha debe introducirse, tal y como

indica su encabezado, en el formato siguiente: dd/mm/aaaa, donde “d”

indica día, “m” mes y “a” el año. Al igual que en las columnas anteriores,

si la casilla se deja vacía el programa interpreta que la fecha de inicio es la

última escrita por arriba.

Cuarta columna (Columna D)

En esta columna se indica la fecha en la que finaliza el periodo de

exámenes de la asignatura en cuestión. Al igual que en la columna C la

fecha hay que introducirla en el formato dd/mm/aaaa. La interpretación que

hace el programa de una casilla vacía es la misma que en las otras

columnas: se interpreta como la última casilla rellena por arriba. Es decir,

que tan solo es necesario escribir la fecha cuando esta difiera de lo escrito

en las filas inmediatamente superiores.

Page 178: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

177

Quinta columna (Columna E)

En esta columna se indica el nombre de la asignatura tal y como

queremos que nos lo muestre el programa una vez hallada la solución. Las

casillas vacías de esta columna se interpretan de la misma forma que en las

columnas anteriores. Esto resulta útil cuando una asignatura está compuesta

por varios grupos de clase ya que de esta forma no es necesario repetir el

nombre, bastaría con ponerlo en el primer grupo.

Por supuesto, en el caso de que se decida escribir el nombre en todos

los grupos el programa lo interpretaría correctamente, como grupos de

distintas asignaturas, con todas las consecuencias que esto implica. Sin

embargo, esta práctica se desaconseja en general ya que esto implica que se

ha de escribir exactamente igual, incluidas las tildes, puntos, comas,

espacios, etc. Por lo tanto, y para asegurarse un correcto funcionamiento

resulta recomendable escribirlo tan solo una vez.

Sexta columna (Columna F)

En esta columna se debe introducir el número del grupo de clase en

formato numérico: 1, 2, 3… para las asignaturas formadas por un solo

grupo de clase, se ha de poner el número 1, a pesar de que sea el único. En

esta columna carece de sentido dejar alguna casilla vacía, ya que cada línea

corresponde a un grupo distinto y, por tanto, tendrá una numeración

distinta.

Séptima columna (Columna G)

En esta columna se especifica el turno, de mañana o de tarde, en el

que se imparte el grupo en cuestión. En esta columna, al igual que en la

anterior, tampoco se deben dejar ninguna casilla vacía sino que se deben

rellenar todas y cada una de ellas. En esta columna solo se debe escribir

una de las tres “claves” que se indican a continuación:

Para las asignaturas que se impartan durante el turno de mañana, es

decir de 8:00 h a 14:00 h, se debe escribir en la casilla la siguiente

clave: “M” (sin comillas y en mayúsculas).

Page 179: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

178

Para las asignaturas que se impartan durante el turno de tarde, de

15:00 h a 21:00 h, se debe escribir la siguiente clave: “T” (sin

comillas y en mayúsculas).

Por último, para las asignaturas a extinguir, en las que no hay

docencia, se debe escribir la siguiente clave: “V” (sin comillas y en

mayúsculas).

Octava columna (Columna H)

En esta columna se debe indicar si se trata de una asignatura común a

todos los alumnos, ya sea troncal u obligatoria, o se trata de una asignatura

optativa. En esta columna se deben escribir todas y cada una de las

casillas, sin dejar ninguna en blanco. Para identificarlas, se debe utilizar

una de las siguientes “claves”:

Para las asignaturas que sean comunes a todos los alumnos, como las

troncales y las obligatorias, se utilizará la siguiente letra: “C” (sin

comillas y en mayúsculas).

Para las asignaturas que sean optativas, se utilizará la siguiente letra:

“O” ” (igualmente sin comillas y en mayúsculas).

Novena columna (Columna I)

En esta columna se debe introducir el número de alumnos que se

presentaran a la convocatoria que se esté resolviendo. Es importante tener

en cuenta un aspecto, debido a que se ha impuesto que cada examen se

puede dividir como máximo en 3 partes y a que el tamaño de las clases es

limitado, el número máximo de alumnos por grupo está limitado. En este

caso el aula de mayor tamaño es de 60 alumnos por lo que el grupo

máximo que podemos ubicar es de 180 alumnos. Los datos de esta columna

se deben introducir en formato numérico.

Page 180: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

179

Décima columna (Columna J)

Esta columna contiene un número que identifica al grupo de la

asignatura. Se trata de una formalidad del funcionamiento interno del

programa que a su vez permite llevar un recuento del número de grupos

que se examinaran. Por la construcción del archivo Excel, esta columna

contiene un número menos que la fila en la que se encuentre el grupo, es

decir, la fila 2 contiene el grupo 1, la 3 el grupo 2, etc.

Por este motivo el archivo Excel que se facilita como plantilla lleva

implementada una fórmula que asigna el número automáticamente. Por lo

tanto, para rellenar esta columna basta con arrastrar la fórmula desde la

esquina inferior izquierda de la casilla.

10.3.2 ARCHIVO HORARIOS

Esta plantilla contiene la ocupación diaria de todas las aulas durante

el periodo de exámenes. Su aspecto se ve reflejado en la figura 30:

Figura 30

Page 181: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

180

Al igual que en el archivo anterior, se recomienda realizar una copia

de la plantilla proporcionada y renombrarla según las preferencias del

usuario.

Este archivo resulta necesario para poder determinar cuándo un aula

se encuentra libre para la celebración de un examen. Puesto que la

ocupación de las aulas depende del día en el que se observe, en este archivo

será necesario introducir tantas hojas como días de examen haya, incluso si

es festivo. Los domingos son los únicos días de la semana que nunca deben

disponer de hoja de ocupación.

El primer paso por lo tanto es crear todas las hojas necesarias. Para

ello se debe copiar la plantilla desde la casilla A1 hasta la casilla T35. Una

vez copiada esta plantilla se debe crear una nueva hoja de Excel dentro del

mismo archivo y, situándose en la casilla A1 hacer clic derecho y “pegar”.

Con respecto al nombre que se debe asignar a la hoja hay que decir que es

libre. Sin embargo, resulta útil escribir el nombre del día a que representan:

15 de enero, 16 de enero, etc.

De esta forma se asegura que no exista desplazamiento de la plantilla

que, en caso de existir, invalidaría la solución. Para comprobar que la

plantilla se encuentra bien situada se debe comprobar que las aulas de

arriba se encuentren en el rectángulo que definen las casillas A6 y T19. Por

otro lado, las aulas que se encuentran debajo tienen que estar en el

rectángulo que definen A22 y S35. Cualquier otra ubicación de los

cuadrantes en la plantilla Excel implicaría un error en la interpretación de

los datos por parte del programa.

La introducción de los datos resulta bastante sencilla, una vez

generada todas las hojas, simplemente es necesario recorrerlas y escribir

una “C” en las horas que se encuentren ocupadas por impartición de clases

u otros motivos distintos.

Es importante resaltar dos aspectos:

1. Solo es necesario marcar las aulas que no se encuentren

disponibles en una hora determinada, es decir, que los sábados

por la tarde o los días festivos no se deben marcar con una “C” ya

que el programa asume por defecto que estos días no son lectivos.

Page 182: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

181

2. Para marcar un aula como ocupada se puede utilizar cualquier

otra letra distinta de “C”. Lo realmente importante es que la

casilla de la hora correspondiente se encuentre escrita con algún

texto.

10.3.3 ARCHIVO DÍAS DE EXAMEN

Este es el último archivo que es necesario suministrar al programa.

Al igual que los otros archivos, se recomienda realizar una copia y

renombrarlo a gusto del usuario. Su aspecto se muestra en la figura 31:

Figura 31

Este archivo de Excel debe contener los nombres ordenados de cada

una de las hojas Excel del archivo anterior (Horarios).

Para ello, se deben copiar los nombres exactos de todas y cada una

de las hojas Excel del archivo que contiene la ocupación respetando

además el mismo orden. Todos estos nombres deben ir en la primera

columna, comenzando desde la casilla A2 hacia abajo.

Page 183: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

182

Por ejemplo, si el archivo Excel de ocupación posee 10 hojas que se

llaman: 1 de enero, 2 de enero,… en este archivo habrá que escribir 1 de

enero en la casilla A2, 2 de enero en la casilla A3…

Lo realmente importante de este archivo es que contenga el mismo

nombre que las hojas del archivo horario y en el mismo orden. En caso

contrario, el programa no sería capaz de leer la ocupación de las aulas.

10.4 EJECUCIÓN DEL PROGRAMA

Una vez instalado el programa y preparados los archivos de entrada,

el siguiente paso es la ejecución del mismo. Para ello, es necesario ejecutar

el archivo calendario_v1.exe que se encuentra en la carpeta distrib. En el

caso de que durante la instalación del programa se creara el

correspondiente acceso directo bastaría con abrirlo.

Una vez ejecutado el programa, deberá aparecer la ventana principal

del mismo que posee un aspecto como el mostrado en la figura 32:

Page 184: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

183

Figura 32

En esta ventana habrá que indicar al programa las ubicaciones de los

distintos archivos de entradas así como el nombre y la ubicación del

archivo de salida.

Para ello, habrá que ir pulsado en los distintos botones “Examinar…”

que aparecen en el programa. Una vez pulsado este botón se abrirá una

ventana con el explorador de Windows de tal forma que el usuario tan solo

tendrá que buscar y seleccionar los archivos creados anteriormente. Para el

archivo de salida, el usuario tendrá que buscar la ubicación que desee para

la solución así como indicar el nombre y el formato del archivo de salida.

En el primero de los rectángulos editables el usuario tendrá que

introducir el archivo donde se encuentra la información de las asignaturas

que concurren a examen en la convocatoria. Este archivo ha sido llamado

genéricamente como Datos aunque, como ya se comentó, podrá tener

cualquier nombre.

Page 185: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

184

En el segundo de los cajones de texto se debe indicar la ubicación del

archivo que se ha denominado genéricamente Horarios y que contiene

información acerca de la disponibilidad de las distintas aulas.

En el tercer cajón editable se indicará donde se encuentra el archivo

que genéricamente se ha denominado Días de Examen. Estas tres acciones

se realizan a través de sus correspondientes botones examinar.

Por último, es necesario indicar el nombre y el formato del archivo

de salida. Para ello, cuando el usuario pulse el botón Examinar aparecerá

un explorador de Windows cuyo aspecto será similar al que se puede

observar en la figura 33:

Figura 33

En esta ventana el usuario elegirá la carpeta donde desea guardar la

solución. Además, en el cajón donde pone nombre se deben indicar el

nombre que se desea para el archivo de salida y, por último, en el menú

desplegable “Tipo” se debe seleccionar si se desea en formato Office 2003

u Office 2007.

Page 186: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

185

Una vez que se ha indicado toda esta información se pulsará el botón

“Ejecutar” y el programa comenzará a funcionar.

Una vez que el programa ha comenzado a ejecutarse será necesario

introducir por pantalla dos datos más. Para ello aparecerán diversas

ventanas emergentes en las que habrá que introducir dicha información.

Lo primero que solicita el programa es el número de grupos que van

a concurrir a examen. Para ello el usuario observará una ventana como la

mostrada en la figura 34:

Figura 34

Esta información puede ser obtenida por el usuario en el archivo

Datos observando la columna “Id” que se encuentra en última posición.

Para ello bastará con acudir al último examen y comprobar su Id. Otra

opción, consiste en acudir al último grupo, mirar su número de fila y

restarle uno (Debido a que el primer grupo se encuentra en la fila 2).

Una vez obtenida la información, bastará con introducir en formato

numérico dicho dato y pulsar “OK”.

El siguiente dato que necesitará el programa será la cantidad de días

festivos que posee el periodo de exámenes que no sean domingo. Es muy

importante resaltar este aspecto ya que el programa por defecto no

considera los domingos y, por tanto, la inclusión de estos días como

festivos puede ocasionar errores en la ejecución. El usuario podrá observar

una ventana como la reflejada en la figura 35:

Figura 35

Page 187: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

186

Si el número de festivos es distinto de cero, el programa requerirá

que se le indique la fecha de dichos días festivos. Para ello, al pulsar OK

aparecerá una ventana como la de la figura 36 tantas veces como días

festivos se hayan indicado:

Figura 36

En esta ventana habrá que introducir la fecha del día festivo en el

formato dd/mm/aaaa. Una vez ingresada la fecha se pulsará OK y el

programa comenzará a ejecutarse.

Mientras dura la ejecución del programa, que puede demorarse varias

horas en función de las características de la convocatoria que se esté

resolviendo, el usuario podrá observar la ventana de la figura 37:

Figura 37

Como se puede comprobar, en la ventana aparece un medidor del

progreso del programa. Este indicador irá avanzando poco a poco hasta

llegar al 100%, momento en el que finalizará la ejecución del programa.

Page 188: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

187

Cuando el programa finalice su ejecución, aparecerán dos mensajes

en función del resultado de la ejecución.

El primero de ellos, que será el más normal, confirmará al usuario

que la ejecución del programa ha terminado con éxito y que, por tanto, la

solución obtenida se adapta perfectamente a los requerimientos

previamente establecidos. La apariencia de este mensaje se puede observar

en la figura 38:

Figura 38

Una vez que se pulse el botón OK el programa se cerrará y el usuario

podrá buscar la solución en la carpeta que indicó al comienzo de la

ejecución.

El otro mensaje aparecerá cuando el programa no haya sido capaz de

encontrar una solución que satisfaga todos los requerimientos. Esta

situación solo se dará en casos muy excepcionales en los que lo más

probable es que resulte imposible encontrar una solución que verifique

todas las condiciones impuestas. El mensaje que verá el usuario será el que

se muestra en la figura 39:

Figura 39

Una vez que el usuario pulse OK el programa terminará su ejecución

generando dos archivos. El primero de ellos será un archivo Excel que

contendrá la mejor solución encontrada con el programa. La ubicación de

Page 189: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

188

este archivo será la que el usuario proporcionó al principio de la ejecución

para la solución. Además de este archivo con la solución, el programa

generará otro archivo llamado “errores.txt” en la misma ubicación de la

solución.

Este archivo de texto contendrá en su interior un listado con los

grupos de examen que incumplen algún requerimiento. Los grupos de

examen serán identificados mediante su número de grupo que aparece en la

columna “Id” del archivo Datos.

De esta forma, el usuario podrá comprobar cuál es el problema y

relajar alguna de los requerimientos para poder asignar estos grupos

manualmente.

10.5 ARCHIVO DE SALIDA

El archivo de salida que genera el programa contiene la solución

encontrada por el mismo. Este archivo se encuentra en formato Excel y en

su interior las asignaturas se encuentran divididas por titulación.

Cada titulación dispone de una hoja Excel con su nombre y todas las

asignaturas en la que se indica la fecha y el lugar de la realización del

examen para los distintos grupos.

Hay que tener cuidado con un detalle: el programa, además de una

hoja por cada titulación, genera las tres hojas estándar de Excel llamadas

Hoja 1, Hoja 2 y Hoja 3. Estas tres hojas se encuentran en primer lugar y

no contienen ninguna información relevante para el usuario por lo que se

recomienda borrarlas.

El aspecto del archivo de salida cuando es generado por el programa

se representa en la figura 40:

Page 190: UN ALGORITMO DE BÚSQUEDA TABÚ PARA GENERAR EL …bibing.us.es/proyectos/abreproy/4916/fichero/MEMORIA DEL PROYE… · 7.2 Evolución de la mejor solución y del algoritmo en función

189

Figura 40

Como se puede observar, en la columna fecha aparece un número

pero que no tiene formato de fecha. Esto es debido a que Excel interpreta la

fecha como un dato numérico. Para modificar este aspecto, basta con

seleccionar la columna fecha y editar su formato. Para ello, se hace clic con

el botón derecho del ratón y se selecciona la opción formato de celda.

Dentro de este menú bastará con seleccionar formato fecha y pulsar

aceptar.

De esta forma, se podrá observar la fecha en su formato

correspondiente. Esto se puede observar en la figura 41:

Figura 41