Está en la página 1de 28

Disponible en: http://redalyc.uaemex.mx/src/inicio/ArtPdfRed.jsp?

iCve=85212334011


Redalyc
Sistema de Información Científica
Red de Revistas Científicas de América Latina, el Caribe, España y Portugal
Franco Baquero, John Fredy;Toro Ocampo, Eliana Mirledy;Gallego Rendón, Ramón
Alfonso
Problema de asignación óptima de salones resuelto con Búsqueda Tabú
Ingeniería y desarrollo, Núm. 24, julio-diciembre, 2008, pp. 149-175
Universidad del Norte
Colombia
¿Cómo citar? Número completo Más información del artículo Página de la revista
Ingeniería y desarrollo
ISSN (Versión impresa): 0122-3461
ingydes@uninorte.edu.co
Universidad del Norte
Colombia
www.redalyc.org
Proyecto académico sin fines de lucro, desarrollado bajo la iniciativa de acceso abierto
Resumen
La asignación de salones se plantea como un problema de optimización matemática;
es un problema complejo y típico de la investigación de operaciones acerda del cual
muchos grupos de investigadores alrededor del mundo discuten sobre la mejor
forma de resolverlo. Se presenta el modelo matemático del problema, así como
una metodología basada en la Búsqueda Tabú, con el fin de encontrar soluciones
factibles que minimicen la función objetivo propuesta, mediante la propuesta de
constructivos, estructura de vecindad y estrategias para desenvolver el proceso
de búsqueda. La calidad de las soluciones encontradas se valida y compara con
casos de prueba de la literatura especializada.
Palabras claves: Búsqueda Tabú, metaheurísticas, optimización
combinatorial, programación de horarios de clase.
Abstract
Classroom assignment is considered as a complex and typical mathematical
optimization problem in operation research, that is tried to solve in different
ways by several research groups all over the globe. A mathematical model
and a methodology based on Tabú search are presented in order to find
feasible solutions that minimize the objective function by using constructive
algorithms, neighbor structures and other strategies that help the search
process. The quality of the solutions found is validated and compared
with probe cases found in the specialized literature
Key words: Tabu Search, metaheuristics, combinatorial optimization,
course timetabling,
Problema de asignación óptima de salones resuelto
con Búsqueda Tabú

John Fredy Franco Baquero*, Eliana Mirledy Toro Ocampo**,
Ramón Alfonso Gallego Rendón***
F
e
c
h
a

d
e

r
e
c
e
p
c
i
ó
n
:

3
0

d
e

A
g
o
s
t
o

d
e

2
0
0
8
F
e
c
h
a

d
e

a
c
e
p
t
a
c
i
ó
n
:

2
7

d
e

a
e
p
t
i
e
m
b
r
e

d
e

2
0
0
8
* Estudiante de Doctorado en Ingeniería Eléctrica, Universidad Estadual Paulista (Brasil).
jffranco@gmail.com
** Magister en Investigación de Operaciones y Estadística. Magister en Ingeniería Eléctrica, Univer-
sidad Tecnológica de Pereira. Docente asistente, Facultad de Ingeniería Industrial, Universidad
Tecnológica de Pereira (Colombia). elianam@utp.edu.co
*** Doctor en Ingeniería Eléctrica, Área de Automática, Universidad de Campiñas (UNICAMP).
Docente titular, Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira (Colombia).
ragr@utp.edu.co
Correspondencia: Universidad Tecnológica de Pereira, Vereda La Julia, Risaralda (Colombia).
INGENIERÍA
& DESARROLLO
Número 24
Julio-diciembre, 2008
ISSN: 0122-3461
150 Ingeniería & Desarrollo. Universidad del Norte. 24: 149-175, 2008
John Fredy Franco Baquero, Eliana Mirledy Toro Ocampo, Ramón Alfonso Gallego Rendón
INTRODUCCIÓN
Toda institución de educación debe poseer una suficiente cantidad de re-
cursos en infraestructura y medios educativos que le permita impartir una
educación de alta calidad. Estos recursos deberán ser lo suficientemente
planificados y estudiados, a fin de que no se presente escasez o sobreoferta
de ellos, pues se ocasionaría en el primer caso deterioro en la calidad de
la educación y en el segundo, deterioro en sus finanzas. Las instituciones
educativas en el proceso de formación proponen una serie de asignaturas o
eventos que deben ser impartidos a los estudiantes adscritos a ella, porque
se requiere de una infraestructura y medios educativos adecuados.
Se ha observado de tiempo atrás un crecimiento constante en la demanda de
cupos estudiantiles en las instituciones de educación, que exige cuantiosas
inversiones. Estas inversiones en muchos de los casos podrían diferirse
en el tiempo si la institución cuenta con herramientas de trabajo que le
permita planificar el uso adecuado de sus recursos, entre los que están la
infraestructura física y medios educativos. Respecto a la primera, se de-
berá contar con una adecuada dotación de salones, laboratorios, salones
multimedia y auditorios que permitan desarrollar sus labores académicas
con un adecuado grado de satisfacción; su asignación deberá ser muy bien
planificada a fin de establecer un uso adecuado.
Al inicio de cada período académico la administración conoce las asignaturas
a las que los estudiantes desean asistir, así que debe distribuirlas dentro
de su planta física en su totalidad de modo que los interesados reciban las
materias que solicitaron. El modelo plantea un conjunto de restricciones
denominadas duras o de obligatorio cumplimiento y un conjunto de res-
tricciones blandas cuyo cumplimiento es optativo.
De ser satisfechas las restricciones anteriores, se dice que la propuesta
planteada es factible y en estas condiciones se podrían iniciar las labores
académicas. Sin embargo, usualmente se desea que los estudiantes desarro-
llen sus actividades de forma cómoda; para ello se plantean las restriccio-
nes denominadas blandas, que no son de obligatorio cumplimiento y, por
el contrario, miden el grado de satisfacción por parte de los estudiantes.
Este problema combinatorial es clasificado como del tipo no lineal entero
mixto y es de difícil solución. Clasificado como NP completo, la forma de
resolverlo es a través de algoritmos computacionales, es decir, los llamados
algoritmos heurísticos o metaheurísticos, entre otros.
151 Ingeniería & Desarrollo. Universidad del Norte. 24: 159-185, 2008
P������� �� ���������� ������ �� ������� �������� ��� �������� ����
Dada la complejidad del problema, grupos de investigadores alrededor del
mundo se han dado a la tarea generar metodologías capaces de resolver este
problema, tratando de mejorar los resultados expuestos por otros equipos en
cuanto a calidad y tiempo requerido para encontrar la respuesta. Adicional
a esto, se ha creado una amplia bibliografía disponible en la página oficial
de la competencia para asignación de salones (Internacional Timetabling
Competition) [1], así como los casos de prueba; cabe destacar que aún no
se ha encontrado una solución global para cada caso, así que el problema
sigue sin resolverse por completo.
Una gran variedad de métodos se han descrito en la literatura para resolver
el problema, incluso probados con casos reales. Estos métodos se dividen
en cuatro tipos: métodos secuenciales [2], [3], métodos de clusterización
[4], [5], métodos basados en restricciones [6], y los métodos metaheurísticos
[7]. Estos últimos cuentan con un gran desarrollo en la últimas dos déca-
das, gracias a técnicas como recocido simulado, Búsqueda Tabú, genéticos,
métodos híbridos, entre otros.
Otra característica importante encontrada en los trabajos publicados, es el
enfoque del desarrollo que han alcanzado. Se pueden dividir en dos tipos:
los modelos matemáticos y los heurísticos, es decir, los que tienen una base
matemática o se apoyan en ella, y los que utilizan métodos algorítmicos.
En la literatura especializada ambos enfoques tienen tanto adeptos como
detractores. Una de las ventajas del método matemático permite mencio-
narlo como el más riguroso y exacto, pero con la desventaja de su difícil
formulación matemática sumada a la gran cantidad de recursos computa-
cionales que requiere. En cambio, los heurísticos representan una facilidad
para la puesta en marcha en el computador y en la confección algorítmica;
sin embargo, la principal desventaja es el poco énfasis que le da al modelo
matemático aún cuando este haya sido planteado desde el inicio del pro-
blema, por lo cual impide el desarrollo de una aplicación general.
Este trabajo propone una metodología para la solución del problema de
asignación óptima de salones usando la técnica de optimización combi-
natorial Búsqueda Tabú. Se propone un modelo matemático original que
muestra las restricciones de forma explícita y compacta. Además, se plantean
algoritmos constructivos para generar una configuración inicial de buena
calidad y se define la estructura de vecindad para la búsqueda local con
Búsqueda Tabú.
152 Ingeniería & Desarrollo. Universidad del Norte. 24: 149-175, 2008
John Fredy Franco Baquero, Eliana Mirledy Toro Ocampo, Ramón Alfonso Gallego Rendón
Este documento se presenta de la siguiente forma: en la sección 2 se explican
algunas generalidades del problema de asignación de salones; en la sección
3 se indica el modelo matemático propuesto; en la sección 4 se presentan
los conceptos básicos de la Búsqueda Tabú y su adecuación al problema es-
pecífico; la sección 5 se refiere a los casos de prueba y resultados obtenidos
y, finalmente, en la última parte se plantean conclusiones y futuros trabajos
alrededor de la temática.
2. DEFINICIÓN DEL PROBLEMA
Los problemas de asignación de salones se asocian a la labor de organizar
una secuencia de eventos (generalmente asignaturas o exámenes), en un
período de tiempo determinado, satisfaciendo un conjunto de restricciones.
Las restricciones comprenden hechos como evitar los choques de horario,
incapacidad de las salas, infra o sobrevaloración de la carga de trabajo e
inadecuada disposición para estudiantes y profesores, sub o sobreasignación
de recursos o equipos, entre otros [8]. Generalmente el problema considera
el siguiente conjunto de restricciones: asignación de recursos, asignación de
tiempo, restricciones de tiempo entre sesiones, dispersión de las sesiones,
coherencia de las reuniones, capacidad de las salas, continuidad.
2.1. Tipos de problemas de asignación de salones
Un gran número de variaciones de estos problemas han sido propuestos en
la literatura [9], [10], [11], los cuales difieren del tipo de eventos, institución
involucrada (universidad o escuela), y de sus restricciones. De acuerdo a
lo anterior se pueden identificar tres grupos:
2.1.1. Asignación de horarios escolares
También conocido como Class-Teacher Problem, considera el horario sema-
nal para las sesiones de las asignaturas de una escuela o colegio. Dada
las asignaturas, profesores, bloques y una matriz de requerimientos (que
establece el número de sesiones que cada profesor dicta por asignatura),
el problema consiste en asignar las sesiones a los períodos de tiempo, de
tal manera que ningún profesor o asignatura tenga más de una sesión en
el mismo período y que todas las sesiones de la asignatura estén presentes
en el horario.
153 Ingeniería & Desarrollo. Universidad del Norte. 24: 159-185, 2008
P������� �� ���������� ������ �� ������� �������� ��� �������� ����
2.1.2. Asignación de horarios universitarios
Este problema consiste en organizar un horario para las sesiones de un
conjunto de asignaturas, considerando un número determinado de salas y
bloques de tiempo. La principal diferencia entre un horario escolar y uno
universitario es la forma como se considera a los estudiantes. En el ámbito
escolar estos pueden considerarse una entidad, debido a que es un grupo
de alumnos que toman las mismas asignaturas. En el caso universitario,
generalmente con régimen semiflexible, los estudiantes toman distintas asig-
naturas, por lo que se generan asignaturas en común con otros estudiantes.
Otra diferencia que se presenta son los profesores. En las escuelas se encar-
gan de enseñar una asignatura y en la universidad generalmente imparten
de 1 a 3 asignaturas. Además, se presenta el problema de la capacidad de
las salas ya que cada asignatura tiene asociada su propio requerimiento;
por el contrario, para el caso de las escuelas se pueden destinar todos los
salones como aptos.
Tabla 1
Comparación entre la asignación de horarios escolares y universitarios
Características Escolar Universitario
Programación
Pocas elecciones
Mallas bien
estructuradas
Muchas elecciones
Mallas débilmente
estructuradas
Disponibilidad
profesor
Ajustado
(Poseen gran carga)
Flexible
(Posee carga liviana)
Salas
Pocas salas
Mismo tamaño
Centralizadas
Muchas salas
Variedad de tamaños
Descentralizadas
Carga estudiantes
Muy saturado
Una sola jornada
Medianamente holgado
Utiliza mañanas y
tardes
Criterio de optimización
Satisfacción de
restricciones
Minimización de
restricciones
Transgredidas
154 Ingeniería & Desarrollo. Universidad del Norte. 24: 149-175, 2008
John Fredy Franco Baquero, Eliana Mirledy Toro Ocampo, Ramón Alfonso Gallego Rendón
2.1.3. Asignación de horarios de exámenes
Este problema consiste en asignar el horario a los exámenes, determinando
la cantidad de salas y tiempo para realizar cada examen. La cantidad de
exámenes depende de los requisitos de las instituciones para evaluar los
conocimientos de los alumnos que cursan una asignatura en particular con
el fin de destacar las diferencias existentes entre los problemas de asigna-
ción de horarios universitarios y escolares, se describen en la tabla 1 sus
principales características. Para mayor información sobre Timetabling y
sus variantes, revisar el artículo realizado por Schaerf [8].
2.2. Características del problema
El modelo empleado en este trabajo se basa en el utilizado por la comunidad
científica del Reino Unido que fue desarrollado para un concurso denomi-
nado International Timetabling Competition con el cual se busca resolver el
problema University TT [1], planteando un conjunto de restricciones deno-
minadas duras o de obligatorio cumplimiento y un conjunto de restricciones
blandas que no son de obligatorio cumplimiento.
El conjunto de restricciones duras de estricto cumplimiento son las
siguientes:
• El salón asignado debe cumplir con requisitos apropiados para desa-
rrollar el evento tales como espacio, laboratorio, computadores, medios
audiovisuales, entre otros.
• Los horarios entregados a los estudiantes no deben presentar conflictos
de horarios, es decir, que un estudiante precise asistir a dos eventos
diferentes a la misma hora
• Asimismo no es conveniente que en un salón se presenten dos eventos
diferentes a la misma hora.
De ser satisfechas las restricciones anteriores se dice que la propuesta plan-
teada es factible y en estas condiciones se podrían iniciar las labores acadé-
micas. Sin embargo, usualmente se desea que los estudiantes desarrollen
sus actividades de forma cómoda, para ello se plantean las restricciones
denominadas blandas, las cuales no son de obligatorio cumplimiento y, por
el contrario, miden el grado de satisfacción por parte de los estudiantes y
son las siguientes:
155 Ingeniería & Desarrollo. Universidad del Norte. 24: 159-185, 2008
P������� �� ���������� ������ �� ������� �������� ��� �������� ����
• La asistencia continuada a varios eventos.
• Asistir en un día a tan solo un evento.
• Asistir a un evento que se dicte en la última hora del día.
El incumplimiento de alguna de estas restricciones es penalizada por la
función objetivo, incrementándola en 1, por cada restricción de este tipo
que sea violada.
Según lo anterior, el caso se formula como un problema de programación
de los horarios de clase, definiendo la hora y el salón para cada evento
de tal forma que si se cumplen las restricciones duras, se minimizan las
restricciones blandas.
3. BÚSQUEDA TABÚ

3.1. Generalidades
Búsqueda Tabú [12], [13], [14] es una técnica de optimización combinatorial
que proviene de la inteligencia artificial y usa conceptos de memoria adap-
tativa y exploración sensible.
Un algoritmo de Búsqueda Tabú completo utiliza técnicas de exploración y
de memoria avanzadas, como son: memoria de corto y largo plazo, estrate-
gias de intensificación, diversificación, oscilación estratégica, path relinking
y lista de configuraciones de élite, entre otras [12].
3.2. Función objetivo
Esta técnica resuelve problemas del tipo (1):
(1)



min f(x)
s.a. x X ∈

Donde f es una función general, lineal o no lineal, y X es un conjunto de
restricciones que pueden ser lineales o no lineales también. Las variables x
pueden ser de naturaleza continua, o entera o mixta. La exploración sensi-
ble de Búsqueda Tabú se basa en la idea de que una mala decisión tomada
mediante una estrategia produce más información que una buena selección
hecha de forma aleatoria.
156 Ingeniería & Desarrollo. Universidad del Norte. 24: 149-175, 2008
John Fredy Franco Baquero, Eliana Mirledy Toro Ocampo, Ramón Alfonso Gallego Rendón
3.3. Aspectos básicos de Búsqueda Tabú
3.3.1. Configuración inicial
La configuración inicial puede ser obtenida aleatoriamente, por medio de
un algoritmo constructivo o alguna técnica heurística que utilice índices
de sensibilidad. Una configuración aleatoria puede tener la ventaja de que
evita una convergencia prematura, pero una configuración inicial de mala
calidad conduce a un esfuerzo computacional mayor. Una buena configu-
ración inicial que se encuentre con el uso de constructivo puede estar en
una región promisoria y puede conducir a soluciones de alta calidad con
bajos esfuerzos computacionales.
3.3.2. Generación del vecindario
Un vecino de una configuración X es una configuración X’ obtenida a
partir de X por medio de una transición simple. Siendo que en la mayoría
de los casos el vecindario N(X) puede ser muy grande por cuanto implica
un elevado esfuerzo de cómputo en el proceso de búsqueda local, se debe
reducir el número de vecinos a un conjunto N*(X) más pequeño que N(X),
redefiniendo el vecindario. Se tienen diferentes formas de reducir el ve-
cindario:
• Tomar un número determinado de configuraciones seleccionadas alea-
toriamente del conjunto N(X).
• Aspiración adicional. Se utiliza algún criterio como puede ser la re-
ducción de la función objetivo hasta cierto valor. Cuando se encuentra
una configuración que cumpla la condición, se evalúan otras configu-
raciones adicionales. Se deben fijar los números mínimo y máximo de
configuraciones a ser analizadas.
• Lista de reducción de candidatos de élite. Se selecciona un conjunto
de configuraciones vecinas con atributos particulares, las cuales son
llamadas configuraciones de élite.
3.3.3. Selección del mejor vecino
Se evalúa cada vecino, se determina su función objetivo y se verifica si
cumple las restricciones del problema a resolver para determinar la fac-
tibilidad de la configuración vecina. Los vecinos son clasificados en una
lista de acuerdo con el valor de la función objetivo y el proceso selecciona
el mejor candidato.
157 Ingeniería & Desarrollo. Universidad del Norte. 24: 159-185, 2008
P������� �� ���������� ������ �� ������� �������� ��� �������� ����
El primer candidato de la lista (de mejor función objetivo) es seleccionado
siempre que el movimiento efectuado para pasar de la configuración actual
a la configuración vecina no se encuentre prohibido (estado Tabú); si es
factible este modo de selección, se denomina selección agresiva, que imita
las características de un algoritmo goloso.
Si el mejor vecino de la lista de candidatos está clasificado como tabú por
el proceso de optimización, el criterio de aspiración permite que sea se-
leccionado a pesar de la prohibición, si la configuración analizada mejora
la configuración incumbente (es la mejor solución encontrada hasta el
momento por el proceso).
Si en el vecindario generado no existe ninguna configuración que mejore
la función objetivo, entonces se selecciona la mejor de las peores en tanto
que no haya sido clasificada como Tabú durante el proceso de optimización.
Esta estrategia evita que se quede atrapado en óptimos locales.
3.3.4. Actualización de la estructura Tabú
Búsqueda Tabú usa una estructura que tiene la misma codificación de la
configuración X, para almacenar la información de los atributos que han
cambiado o que han permanecido inalterables en el proceso de búsqueda.
Esta información se almacena en las memorias de corto y largo plazo, las
cuales pueden tener un criterio de almacenamiento fijo o variable a lo lar-
go del proceso, dependiendo del comportamiento de la búsqueda. Esto es
lo que constituye la memoria adaptativa. La memoria usada en Búsqueda
Tabú puede ser explícita o por atributos [12]. La memoria explícita alma-
cena la información completa de configuraciones élite (configuraciones de
buena calidad) encontradas durante la búsqueda. La memoria basada en
atributos almacena la información de los atributos que cambian al pasar
de una configuración a otra, presentando como ventajas la facilidad de
almacenamiento, manipulación y verificación. Con esto se evita regresar a
configuraciones ya visitadas, lo cual es ventajoso; pero también se podrían
dejar de conocer regiones no visitadas que tengan atributos prohibidos de
aquellas ya exploradas.
158 Ingeniería & Desarrollo. Universidad del Norte. 24: 149-175, 2008
John Fredy Franco Baquero, Eliana Mirledy Toro Ocampo, Ramón Alfonso Gallego Rendón
4. MODELO MATEMÁTICO Y CODIFICACIÓN
La información del problema es codificada a través de matrices y vectores
como se describe a continuación:
• La información de las características requeridas por los eventos se al-
macena en la matriz características_eventos, en la que para cada evento
(filas), respecto a cada característica (columnas), aparece un ‘1’ si el
evento requiere la característica o aparece un ‘0’ en caso contrario.
• La información de las características que tienen los salones se almacena
en la matriz características_salones, en la que para cada salón (filas),
respecto a cada característica (columnas), aparece un ‘1’ si el salón tiene
la característica o aparece un ‘0’ en caso contrario.
• Se tiene un vector que indica la capacidad de los salones: capacidad_sa-
lones, en el que en la posición ‘i’ se almacena la capacidad del salón ‘i’.
• La información de los estudiantes que están matriculados en cada
evento se representa en la matriz eventos_estudiantes, en la que en la
posición (i,j) tiene un ‘1’ si el estudiante ‘j’ (columna) asiste al evento ‘i’
(fila) o tiene un ‘0’ en caso contrario.
• A partir de las matrices características_eventos, características_salones
y del vector capacidad_salones se puede crear la matriz eventos_salo-
nes que en la posición (i,j) tendrá un ‘1’ si el evento ‘i’ (filas) se puede
programar en el salón ‘j’ (columnas) o tendrá un ‘0’ en caso contrario.
Esta matriz resume las condiciones de características y capacidad de
los salones frente a los eventos.
• La programación de los eventos se puede representar en una matriz
(evento_hora_salón) con número de filas igual al número de eventos
y con dos columnas. Para cada evento, en la primera columna se ubica
la hora en la que se programa y en la segunda columna se almacena el
salón donde se realiza.
• Se puede formar la matriz horario_eventos con número de filas igual
al número de eventos y con 45 columnas que corresponden al total de
horas. La matriz horario_eventos en la posición (i,j) tiene un ‘1’ si el
evento ‘i’ se programa a la hora ‘j’ o tiene un ‘0’ en caso contrario.
• El horario de los estudiantes se puede generar a partir de las matrices
evento_hora_salón y eventos_estudiantes, con lo que puede conocer la
hora y el salón programados para cada estudiante según los eventos
que tenga matriculados.
159 Ingeniería & Desarrollo. Universidad del Norte. 24: 159-185, 2008
P������� �� ���������� ������ �� ������� �������� ��� �������� ����
Para facilitar la comprobación de las restricciones blandas se forma la
matriz horario_estudiante con número de filas igual al número de estu-
diantes y con 45 columnas que corresponden al total de horas. La matriz
horario_estudiante en la posición (i,j) tiene un ‘1’ si el estudiante ‘i’ tiene
programado un evento en la hora ‘j’ o tiene un ‘0’ en caso contrario. La
matriz horario_estudiante se puede calcular como:
'
:
HA EA ET
donde
HA: matriz horario de los estudiantes
ET : matriz horario de los eventos
EA: matriz evento estudiante

A continuación se presenta el modelo matemático para el problema de
programación óptima de horarios de clase.
La restricción (1) asegura que cada evento se programa una sola vez. La
restricción (2) representa la condición de que en un salón, en un bloque de
tiempo, no se puede programar más de un evento. La restricción (3) permite
garantizar que el salón asignado cumple con la capacidad y las características
requeridas por el evento correspondiente. La restricción (4) previene que
se presenten cruces de horarios para los estudiantes; esta restricción usa la
matriz HA, que contiene los horarios de los estudiantes, construida según
las ecuaciones (8) y (9). La ecuación (5) define la variable hf que representa
el número de eventos programados al final de cada día para todos los es-
tudiantes. La ecuación (6) define la variable hu que representa el número
de eventos únicos en cada día para todos los estudiantes. La ecuación (7)
define la variable hc que representa los casos en que se programan más de
dos eventos consecutivos en un día para todos los estudiantes.
160 Ingeniería & Desarrollo. Universidad del Norte. 24: 149-175, 2008
John Fredy Franco Baquero, Eliana Mirledy Toro Ocampo, Ramón Alfonso Gallego Rendón
est
Variables de decisión :
1 si el evento'e' se programa en el salón's'
en el bloque de tiempo't'
X :
0 si el evento'e' no se programa en el salón's'
en el bloque de tiempo't'
minimiza
¦
¦
¦
¦
¦
¦
¦
( )
( )
( ) ( )
( ) ( )
. .
,
, , ,
, ,
S T
E
est E
s N t N
est S T
e N
est est E S T
T A
r z hf +hu+hc
s a
X =1 e N 1
X 1 s N t N 2
X ES e s X 0 e N s N t N 3
HA t a 1 t N a N 4
hf HA a
∈ ∈


≤ ∈ ∈
− ≥ ∈ ∈ ∈ , ]
¸ ]
≤ ∈ ∈

∑ ∑

( ) ( )
( )
( )
( )
( )
( )
( )
( )
( )
( ) ( )
,
,
,
, ,
'
A
2
H d
t H d 8
A
A
S
t H a N
1 HA a t
5
a N d 1
H d k 2
5 7
a N d 1 k 1 t H d k
est E T
s N
t 5
hu e 6
hc HA a t 7
ET e t X e N t N 8
HA EA ET

∈ ∈
¦ ¦
¦ ¦
− −
¦ ¦
¦ ¦
¦ ¦

+ +
∈ +

∈ ∈

∑ ∑
∑ ∑
∑ ∑∑ ∏

' ´
» -
» -
» -
» -
» -
» -
˙ ¤
( )
:
A
E
S
T
9
donde
N : conjunto de estudiantes
N : conjunto de eventos
N : conjunto de salones
N : bloques de tiempo
ES : matriz evento salón
ET : matriz horario de los eventos
HA: matriz horario

[ ]
de los estudiantes
EA: matriz evento estudiante
H = 9,18, 27, 36, 45
161 Ingeniería & Desarrollo. Universidad del Norte. 24: 159-185, 2008
P������� �� ���������� ������ �� ������� �������� ��� �������� ����
5. APLICACIÓN DE BÚSQUEDA TABÚ A LA PROGRAMACIÓN
ÓPTIMA DE HORARIOS DE CLASE.
La metodología empleada para la solución del problema sigue cuatro fases.
En la primera de ellas se obtiene una programación inicial de los eventos
por medio de un constructivo, para que los eventos sean programados
en salones habilitados, a fin de tener una configuración inicial con pocas
restricciones duras violadas. En la segunda fase se emplea una búsqueda
local para disminuir las restricciones duras violadas. En la tercera fase se
alcanza una solución factible, en la que se cumplen todas las restricciones
duras, empleando Búsqueda Tabú para minimizar restricciones duras. En la
cuarta fase se usa Búsqueda Tabú para minimizar las restricciones blandas,
manteniendo la factibilidad de la configuración. El desarrollo de las cuatro
fases se muestra en la figura 1.
Figura 1. Fases de solución del problema.
Constructivo
Búsqueda local
para factibilidad
Búsqueda Tabú
para factibilidad
Búsqueda Tabú
para optimalidad
Cálculo de
función objetivo
162 Ingeniería & Desarrollo. Universidad del Norte. 24: 149-175, 2008
John Fredy Franco Baquero, Eliana Mirledy Toro Ocampo, Ramón Alfonso Gallego Rendón
5.1. Constructivo para generar una configuración inicial
El constructivo propuesto para generar una configuración inicial sigue la
idea de programar de manera prioritaria los eventos que tienen menor
número de salones habilitados. Para esto se crea una lista ordenada de
eventos de menor a mayor número de salones habilitados. Inicialmente
se programan los eventos que solo se pueden efectuar en un determindo
salón, para evitar que quede por fuera el suceso en cuestión. Una vez que
se pautan los eventos que tienen un solo salón habilitado, se continúa con la
programación de los siguientes acontecimientos con dos salones habilitados,
luego con tres salones y así, sucesivamente, en orden creciente.
Para programar un evento primero se busca un salón habilitado usando la
matriz eventos_salones y se debe encontrar un bloque de tiempo libre para
asignarle, revisando que a esa misma hora no existan otros ya programados
con estudiantes comunes entre ellos, usando la matriz ‘estudiantes comu-
nes’. En caso de que no se cumpla la condición anterior, el evento se deja
temporalmente sin programar, para evitar generar restricciones duras de
cruces de horarios de estudiantes.
Al final del proceso anterior, se buscan salones habilitados y disponibles,
para ubicar los eventos aún no programados, sin importar que en el bloque
de tiempo que se vaya a asignar existan actividades que ya fueron progra-
madas y que tienen estudiantes comunes con el nuevo evento a incluirse.
Debido a que es posible que no se encuentren salones habilitados que estén
disponibles para algunos eventos no programados, entonces se buscan
salones disponibles aunque no sean preparados para su desarrollo.
Como resultado de la programación efectuada, se tendrán algunos even-
tos en un salón que no está habilitado para ellos. El siguiente objetivo del
constructivo consiste en asignar salones adecuados para todos los eventos.
Por ello se buscan los sitios adecuados para las actividades con salones no
habilitados a partir del intercambio de los lugares entre dos de esos even-
tos, usando la matriz eventos_salones, de tal manera que ambas actividades
resulten programadas en instalaciones habilitadas. En caso de que aún se
tengan problemas con los salones y no existan intercambios que solucionen
estos problemas, se identifican las horas disponibles en todos los lugares,
para intentar mover eventos sin problemas a otro sitio habilitado para ello.
De tal forma, en el espacio dejado por estos eventos se pueden programar
otros que tenían problemas locativos. Finalmente, el constructivo entrega
una configuración inicial en la que todos los eventos se encuentran progra-
163 Ingeniería & Desarrollo. Universidad del Norte. 24: 159-185, 2008
P������� �� ���������� ������ �� ������� �������� ��� �������� ����
mados en salones habilitados, por lo que no se violan restricciones duras
del segundo tipo (compatibilidad entre eventos y salones), pero pueden
existir cruces de horarios para los estudiantes (violación de restricciones
duras del tercer tipo).
En la figura 2 se muestra un diagrama del constructivo propuesto para
generar una configuración inicial.
Figura 2. Diagrama del algoritmo constructivo
Inicio
Programar eventos
según número de
salones habilitados
Matriz evento
salón explícito
¿Eventos no
programados?
No
Configuración
final constructivo
Programar eventos
en salones
habilitados
Si
¿Eventos en
salones no
habilitados?
No
Si
¿Eventos
no programados?
Si
No
Programar eventos
en salones
disponibles
Movimiento de
evento a
salones habilitados
Intercambio
de salones
entre eventos
164 Ingeniería & Desarrollo. Universidad del Norte. 24: 149-175, 2008
John Fredy Franco Baquero, Eliana Mirledy Toro Ocampo, Ramón Alfonso Gallego Rendón
5.2. Evaluación de la función objetivo.
Para evaluar la función objetivo de una programación de horarios, se cuentan
las restricciones duras y blandas que son violadas. Se empieza por revisar
las restricciones duras de la configuración, verificando si el salón en el que
se programa cada evento está habilitado, es decir, si tiene las características
y la capacidad requeridas para su desarrollo; por esto se usa la matriz even-
to_salón. Luego se revisa si existen cruces de horarios para los estudiantes,
analizando para cada hora si los eventos programados en todos los salones
en dicho lapso tienen estudiantes en común. De esta manera, se detecta un
cruce de horarios para dichos estudiantes mediante la matriz estudiantes
comunes. Para lograrlo se analizan todas las posibilidades de combinacio-
nes de dos salones a la misma hora; la ventaja de revisar esta restricción de
la manera mencionada reside en que no es necesario generar y analizar el
horario de todos los estudiantes de forma explícita, sino más bien realizar
el análisis desde el punto de vista de los eventos, dado que la cantidad de
operaciones computacionales es menor y la evaluación de la configuración
se hace más eficiente. Debido a la codificación usada, siempre se cumple
que en un salón a una misma hora no se programa más de un evento, por
lo que es innecesario verificar esta restricción.
Para la revisión de las restricciones blandas, se debe generar el horario de
los estudiantes; conocida la programación de los eventos y los estudiantes
que los asisten, se usa la matriz evento_estudiante_explicito, que guarda la
información de la matriz eventos_estudiantes de manera eficiente, aprove-
chando su tendencia esparcidora, dado que no todos los estudiantes asisten
a un evento en particular. De esta manera, la generación de los horarios se
hace de forma eficiente: se revisa el de cada estudiante y día por día; si se
presentan más de dos eventos consecutivos o eventos únicos, constituyen
violaciones de restricciones blandas. Para conocer el número de estudian-
tes que tienen programados eventos en una hora final de un día, se revisa
en cada salón, a la hora final de cada día, si existe un evento programado;
en dicho caso, el número de restricciones blandas violadas corresponde al
número de estudiantes que asisten al evento referido.
Índice de sensibilidad
De forma simultánea a la evaluación de la función objetivo de una configu-
ración, se crea un índice para cada evento; mediante un contador que alma-
cena el número de problemas asociados a este, teniendo índices diferentes
165 Ingeniería & Desarrollo. Universidad del Norte. 24: 159-185, 2008
P������� �� ���������� ������ �� ������� �������� ��� �������� ����
para las restricciones duras y las blandas, según sea el tipo de problema.
Con estos índices se orienta el proceso de búsqueda.
5.3. Estructura de vecindad
Ya que el constructivo permite encontrar una configuración inicial en la
que los eventos no tienen problemas con los salones, es conveniente definir
una estructura de vecindad en la cual las nuevas configuraciones sigan
manteniendo la factibilidad, según los salones asignados, pero calibrando
el tamaño del vecindario en cantidad y calidad.
El vecindario de una configuración consiste en configuraciones obtenidas
haciendo pequeños cambios a la configuración actual. Un pequeño cambio
en la configuración puede ser la modificación de hora o de salón para un
evento. Con el fin de alterar la hora de un evento, sin que se afecte su fac-
tibilidad por el salón, se puede intercambiar el bloque de tiempo de dicho
evento con el de otro suceso en el mismo lugar. También es posible variar el
salón en el que se programa un evento, moviéndolo a un bloque de tiempo
libre en otro sitio (o el mismo) siempre que el nuevo salón se encuentre
habilitado para el evento. El movimiento anterior puede, además, implicar
un cambio en la hora del evento.
Seleccionando un evento, se pueden generar configuraciones vecinas a
partir de:
• Intercambio del bloque de tiempo del evento con otro suceso en el
mismo salón.
• Movimiento del evento a un bloque de tiempo libre, en un salón
habilitado para la actividad.
Para seleccionar los eventos que sirven para generar la vecindad se usa el
índice de sensibilidad que se forma al calcular la función objetivo. De esta
forma, haciendo una lista ordenada, los eventos que van a cambiar son
aquellos que tienen un índice asociado mayor.
Para ilustrar la estructura de vecindad propuesta, hay que considerar la
programación de los eventos mostrada en la figura 3. Suponer que el even-
to 56, que está programado en el salón 2 en la hora 9, es candidato para
generar configuraciones vecinas. Suponer, además, que el evento 56 puede
programarse en los salones 2 y 3.
166 Ingeniería & Desarrollo. Universidad del Norte. 24: 149-175, 2008
John Fredy Franco Baquero, Eliana Mirledy Toro Ocampo, Ramón Alfonso Gallego Rendón
3.
1 2 3 4 5 6 7 8 9
1 E1 E279 E5 E137E234E201 E76 E12
2 E45 E89 E114 E92 E169E192 E56
3 E3 E127 E263 E34
s
a
l
o
n
e
s
horas
evento
candidato
Figura 3. Evento candidato en la estructura de vecindad
Se puede generar una nueva configuración intercambiando los bloques de
tiempo de los eventos 56 y 89 que están en el salón 2.
1 2 3 4 5 6 7 8 9
1 E1 E279 E5 E137E234E201 E76 E12
2 E45 E89 E114 E92 E169E192 E56
3 E3 E127 E263 E34
1 2 3 4 5 6 7 8 9
1 E1 E279 E5 E137E234E201 E76 E12
2 E45 E56 E114 E92 E169E192 E89
3 E3 E127 E263 E34
s
a
l
o
n
e
s
horas
horas
s
a
l
o
n
e
s
Figura 4. Intercambio de eventos
Otra configuración se obtiene al mover el evento 56 de la hora nueve al
espacio disponible del salón 3, en la hora 3.
167 Ingeniería & Desarrollo. Universidad del Norte. 24: 159-185, 2008
P������� �� ���������� ������ �� ������� �������� ��� �������� ����
1 2 3 4 5 6 7 8 9
1 E1 E279 E5 E137E234E201 E76 E12
2 E45 E89 E114 E92 E169E192 E56
3 E3 E127 E263 E34
1 2 3 4 5 6 7 8 9
1 E1 E279 E5 E137E234E201 E76 E12
2 E45 E89 E114 E92 E169E192
3 E3 E56 E127 E263 E34
s
a
l
o
n
e
s
horas
horas
s
a
l
o
n
e
s
Figura 5. Movimiento de un evento
5.4. Manejo de la memoria de corto plazo
La estructura de vecindad permite generar configuraciones vecinas, toman-
do como base la configuración actual. El proceso de búsqueda local debe
revisar estas configuraciones vecinas e identificar cuál de ellas es la mejor,
en términos de factibilidad y de función objetivo, para seleccionarla como
la siguiente configuración.
En la implementación de Búsqueda Tabú se utiliza una estructura de memoria
de corto plazo que evita regresar a configuraciones ya visitadas, con lo que
se puede escapar de óptimos locales en el proceso de búsqueda. La memoria
de corto plazo consiste en un vector (estado _ tabú) que almacena el estado
de prohibición de un evento. Cuando se ejecuta un movimiento en el que
participa un evento, la posición del vector estado _ tabú asociado a ese evento
cambia a un valor_tabú, el cual corresponde al número de iteraciones en que
se prohíben movimientos que involucren al suceso que cambió. Siguiendo
esta idea, algunas configuraciones vecinas se prohíben, en virtud de que
168 Ingeniería & Desarrollo. Universidad del Norte. 24: 149-175, 2008
John Fredy Franco Baquero, Eliana Mirledy Toro Ocampo, Ramón Alfonso Gallego Rendón
son generadas con el movimiento de un evento que se encuentra proscrito.
El valor_tabú mencionado es un parámetro de control de Búsqueda Tabú, que
debe afinarse para obtener buenos resultados. Los elementos del vector estado
_ tabú diferentes de cero se disminuyen en una unidad en cada iteración
hasta que lleguen a cero, estado en el que se permiten movimientos que
cambien la programación del evento relacionado.
Dependiendo del tamaño de la estructura de vecindad y del valor _ tabú
seleccionado, se tendrán configuraciones vecinas no prohibidas, generadas
a partir de cambios en eventos no proscritos. En la figura 6 se muestra el
manejo del vector estado _ tabú considerando el movimiento representado
en la figura 5 (evento 56). En la figura 8 se presenta el diagrama de Búsqueda
Tabú empleado, que es el mismo en las fases de búsqueda de factibilidad
y luego búsqueda de optimalidad, cambiando únicamente el criterio para
seleccionar la mejor configuración según la función objetivo: restricciones
duras o restricciones blandas violadas.
eventos E1 E2 E3 … E56 … E263 … E279 …
0 1 0 0 4 3
E1 E2 E3 … E56 … E263 … E279 …
0 0 0 5 3 2
Vector Tabú
Figura 6. Manejo del vector estado_tabú
5.5. Criterio de aspiración
Si se da el caso en que la mejor configuración vecina se encuentre prohibida,
y su función objetivo mejora la mejor función objetivo encontrada hasta el
momento en la búsqueda (valor de la incumbente), el criterio de aspiración
permite seleccionar esta configuración a pesar de estar excluída.
5.6. Diversificación usando memoria basada en frecuencia
Cuando la función objetivo no mejora después de una cantidad determinada
de iteraciones siguiendo el proceso de Búsqueda Tabú basado en memoria de
corto plazo, es conveniente emplear diversificación a partir de la memoria
de largo plazo basada en frecuencia.
169 Ingeniería & Desarrollo. Universidad del Norte. 24: 159-185, 2008
P������� �� ���������� ������ �� ������� �������� ��� �������� ����
La memoria propuesta basada en frecuencia almacena el número de veces
en que la programación de un evento ha sido modificada. Esta memoria se
implementa en un vector con dimensión igual al número de eventos. En la
figura 7 se muestra un ejemplo de la memoria de largo plazo. De la figura
7 se puede afirmar que la programación del evento1 ha cambiado 23 veces,
la del evento 56 se ha alterado 4 veces, mientras que la programación del
evento 3 no ha sufrido variaciones a lo largo del proceso de búsqueda.
eventos E1 E2 E3 … E56 … E263 … E279 …
23 17 0 4 76 41
Figura 7. Memoria de largo plazo
La estrategia de diversificación emplea la memoria de largo plazo, usando
un vector ordenado de forma ascendente según el número de cambios
de un evento. De ese vector ordenado se toman los primeros elementos
(que corresponden a aquellos sucesos que menos han cambiado) donde el
número de eventos y el número de iteraciones con los que se hace diver-
sificación, son parámetros adicionales de Búsqueda Tabú. La programación
de los eventos seleccionados es cambiada de manera forzada, para que se
dirija la búsqueda a regiones no visitadas (o poco frecuentadas). En el caso
asociado a la figura 6, al evento 3, que no ha cambiado, se le modificará su
programación.
170 Ingeniería & Desarrollo. Universidad del Norte. 24: 149-175, 2008
John Fredy Franco Baquero, Eliana Mirledy Toro Ocampo, Ramón Alfonso Gallego Rendón
Figura 8. Diagrama del algoritmo de Búsqueda Tabú
Si
No
No
Si
Si
Si No
No
No
No
Si
Si
k = 0
Actualizar
incumbente
Se
mejora la
incumbente
Tomar la mejor
configuración
vecina
Se
revisó toda la
vecindad
Actualizar lista de me-
jores configuraciones
vecinas
Solución final
Atributos
cambiados tienen
estado tabú
Se cumple
criterio de
aspiración
Evaluar
configuración
Generar una
configuración
vecina
Aplicar
diversificación
Inicio
Se
cumple criterio
de parada
k<#
inter. max. sin
encontrar mejores
soluciones
171 Ingeniería & Desarrollo. Universidad del Norte. 24: 159-185, 2008
P������� �� ���������� ������ �� ������� �������� ��� �������� ����
5. PRUEBAS Y RESULTADOS
Los casos de prueba corresponden a las instancias 1, 2, 3 y 4 de la referencia
[1]. Para cada uno se muestra el número de eventos, de salones, de carac-
terísticas y de estudiantes correspondientes. Se empleó un tiempo fijo de
400 segundos para el proceso de búsqueda. En la tabla 2 se muestran los
parámetros de Búsqueda Tabú empleados; la tabla 3 señala las condiciones
de los casos de prueba. En la tabla 4 están los resultados obtenidos con la
metodología propuesta y en la tabla 5 se presentan las comparaciones con
respuestas encontradas por otras metodologías.
Tabla 2
Parámetros usados en Búsqueda Tabú
Valor
Tabú
Tamaño
lista índice
Búsqueda Tabú, restricciones duras 4 10
Búsqueda Tabú, restricciones blandas 20 40
Tiempo para reiniciar memoria de corto
plazo
200 s.
Tiempo para diversificación 12 s.
Tabla 3
Condiciones casos de prueba
I II III IV
Eventos 400 400 400 350
Salones 10 10 10 10
Características 10 10 10 5
Estudiantes 200 200 200 350
172 Ingeniería & Desarrollo. Universidad del Norte. 24: 149-175, 2008
John Fredy Franco Baquero, Eliana Mirledy Toro Ocampo, Ramón Alfonso Gallego Rendón
Tabla 4
Resultados de la optimización para los casos de prueba
I II III IV
Restricciones blandas 99 66 113 101
Horas únicas en un día para un estudiante 4 7 4 20
Más de dos horas continuas para un estudiante 64 39 46 81
Evento en hora final de día para un estudiante 31 20 63 0
Tabla 5
Comparación de resultados
I II III IV
Búsqueda Tabú propuesta 99 66 113 101
Ganador competencia con
Simulated Annealing
45 25 65 44
Algoritmo memético [X1]
(prom. 10 corridas)
104 91 126 127
Algoritmo híbrido [X2]
(mejores resultados)
57 31 61 5
[X1] A memetic algorithm for University Course Timetabling. Olivia
Rossi-Doria and Ben Paechter. School of Computing, Napier University,
Scotland
[X2] International Timetabling Competition
A Hybrid Approach. Marco Chiarandini.Intellektik, Technische
Universität Darmstadt, Germany
173 Ingeniería & Desarrollo. Universidad del Norte. 24: 159-185, 2008
P������� �� ���������� ������ �� ������� �������� ��� �������� ����
6. CONCLUSIONES Y RECOMENDACIONES
El problema de asignación de salones o programación de horarios de clase
es de alta complejidad matemática, dadas las variables relacionadas y las
condiciones involucradas. Debido a la cantidad limitada de recursos (en este
caso salones), el desarrollo de metodologías que proporcionen soluciones
para su adecuado aprovechamiento, satisfaciendo diferentes conjuntos de
restricciones, es un área de constante investigación.
El modelo matemático planteado es una contribución al problema de
programación óptima de horarios de clase, que no se encuentra en la lite-
ratura especializada. El modelo condensa las restricciones duras y blandas
y muestra las relaciones entre la programación de los eventos y el horario
de los estudiantes.
La estrategia para generar la configuración inicial demostró ser eficiente:
realizar la programación de los eventos teniendo como prioridad evitar,
en lo posible, restricciones duras y aplicar movimientos adecuados que las
reduzcan, todo esto con un costo computacional ínfimo. Así, el número de
iteraciones necesarias en la etapa de Búsqueda Tabú para restricciones duras
es bastante pequeño comparado con estrategias que no siguen la prioridad
mencionada.
El índice de sensibilidad usado para generar las configuraciones vecinas
es de utilidad para guiar el proceso de búsqueda, ya que los eventos que
generan más violaciones en las restricciones tienen la prioridad para generar
el vecindario. Aunque las pruebas efectuadas mostraron que los mejores
resultados se obtienen mediante una lista ordenada de tamaño apreciable
de los eventos, que se efectúa según el índice (10%).
Los movimientos propuestos para la generación del vecindario tienen la
capacidad, junto con las estrategias de Búsqueda Tabú, de escapar de óptimos
locales y reducir restricciones duras y blandas, ya que permiten el cambio
de salones y horas para cualquier evento. La aplicación de la estrategia de
diversificación mostró ser útil cuando el proceso de búsqueda no presenta
mejoras en un número determinado de iteraciones.
En trabajos futuros se pueden incluir restricciones que consideren el grado
de satisfacción de los alumnos con los horarios generados, en cuanto a
variables como las distancias entre salones para eventos consecutivos en
174 Ingeniería & Desarrollo. Universidad del Norte. 24: 149-175, 2008
John Fredy Franco Baquero, Eliana Mirledy Toro Ocampo, Ramón Alfonso Gallego Rendón
los que participen. También pueden agregarse restricciones para tener blo-
ques de eventos que conformen clases con más de una hora de duración y
eventos que correspondan a clases de una misma materia, las cuales exigen
su programación en bloque o en días diferentes. Debe abordarse también
el problema de la programación de horarios de profesores, que es más
fácil que lo tratado en este trabajo, pero que de manera conjunta con el de
asignación de salones, se vuelve más complejo.
Esta nueva propuesta del modelo matemático del problema de salones
es presentada con el fin de que la comunidad académica implemente
nuevas técnicas de solución ya sean exactas o metaheurísticas.
REFERENCIAS
[1] Metaheuristics Network. International Timetabling Competition. Disponible
en: h�p://www.idsia.ch/Files/�comp2002/
[2] C�����, M. W., L������, G., Recent developments in practical examination
timetabling. In: Burke and Ross (1996) pp. 3–21.
[3] W���� , An introduction to timetabling. European Journal of Operational
Research 19 (1985), pp. 151–162.
[4] W����, G. M. C��� P. W., Towards the construction of optimal examination
timetables. INFOR 17 (1979), pp. 219–229.
[5] F�����, J. G., S����, D. R., A heuristic procedure for large-scale examination
scheduling problems. Technical Report 417, Department of Mathematical
Sciences, Clemson University, 1983.
[6] W����, G. M., “Constrained satisfaction, not so constrained satisfaction and the
timetabling problem”. In: A Plenary Talk in the Proceedings of the 3rd International
Conference on the Practice and Theory of Automated Timetabling, University of
Applied Sciences, Konstanz, Aug., 16–18, 2000 (2000), pp. 32–47.
[7] B����, E. K., N�����, J. P., W����, R.F., 1996b. A memetic algorithm for University
exam timetabling. In: Burke and Ross (1996) pp. 241–250.
[8]

S������, Andrea, A survey of automated timetabling, Technical Report CS-R9567,
CWI - Centrum voor Wiskunde en Informática, 1995.
[9] C�����, M. W., L������, G., Recent developments in practical examination
timetabling. In: Burke and Ross, pp. 3–21, 1996.
[10] C�����, M. W., L������, G., Recent developments in practical course
timetabling. In: Burke and Carter, pp. 3–19, 1996.
[11] WERRA, An introduction to timetabling. European Journal of Operational
Research, 19, pp. 151–162, 1985.
[12] G�����, F., Tabu Search Fundamentals and Uses, University of Colorado, Boulder,
Colorado, Apr. 1995.
175 Ingeniería & Desarrollo. Universidad del Norte. 24: 159-185, 2008
P������� �� ���������� ������ �� ������� �������� ��� �������� ����
[13] B����, F. A. Planejamento de sistemas de distribução de energia elétrica utilizando
algoritmo busca tabu, Tesis de Maestría, Universidade Estadual Paulista,
2003.
[14] G������, R. E������, A. T���, E. Técnicas metaheurísticas de optimización.
Universidad Tecnológica de Pereira, 2008.

Problema de asignación óptima de salones resuelto con Búsqueda Tabú
John Fredy Franco Baquero*, Eliana Mirledy Toro Ocampo**, Ramón Alfonso Gallego Rendón***
Resumen
La asignación de salones se plantea como un problema de optimización matemática; es un problema complejo y típico de la investigación de operaciones acerda del cual muchos grupos de investigadores alrededor del mundo discuten sobre la mejor forma de resolverlo. Se presenta el modelo matemático del problema, así como una metodología basada en la Búsqueda Tabú, con el fin de encontrar soluciones factibles que minimicen la función objetivo propuesta, mediante la propuesta de constructivos, estructura de vecindad y estrategias para desenvolver el proceso de búsqueda. La calidad de las soluciones encontradas se valida y compara con casos de prueba de la literatura especializada. Palabras claves: Búsqueda Tabú, metaheurísticas, optimización combinatorial, programación de horarios de clase.
Fecha de recepción: 30 de Agosto de 2008 Fecha de aceptación: 27 de aeptiembre de 2008

Abstract
Classroom assignment is considered as a complex and typical mathematical optimization problem in operation research, that is tried to solve in different ways by several research groups all over the globe. A mathematical model and a methodology based on Tabú search are presented in order to find feasible solutions that minimize the objective function by using constructive algorithms, neighbor structures and other strategies that help the search process. The quality of the solutions found is validated and compared with probe cases found in the specialized literature Key words: Tabu Search, metaheuristics, combinatorial optimization, course timetabling,

* Estudiante de Doctorado en Ingeniería Eléctrica, Universidad Estadual Paulista (Brasil). jffranco@gmail.com ** Magister en Investigación de Operaciones y Estadística. Magister en Ingeniería Eléctrica, Universidad Tecnológica de Pereira. Docente asistente, Facultad de Ingeniería Industrial, Universidad Tecnológica de Pereira (Colombia). elianam@utp.edu.co *** Doctor en Ingeniería Eléctrica, Área de Automática, Universidad de Campiñas (UNICAMP). Docente titular, Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira (Colombia). ragr@utp.edu.co Correspondencia: Universidad Tecnológica de Pereira, Vereda La Julia, Risaralda (Colombia). INGENIERÍA & DESARROLLO
Número 24 Julio-diciembre, 2008 ISSN: 0122-3461

De ser satisfechas las restricciones anteriores. que exige cuantiosas inversiones. entre los que están la infraestructura física y medios educativos. Clasificado como NP completo. que no son de obligatorio cumplimiento y. porque se requiere de una infraestructura y medios educativos adecuados. El modelo plantea un conjunto de restricciones denominadas duras o de obligatorio cumplimiento y un conjunto de restricciones blandas cuyo cumplimiento es optativo. se deberá contar con una adecuada dotación de salones. es decir. Sin embargo. se dice que la propuesta planteada es factible y en estas condiciones se podrían iniciar las labores académicas. 24: 149-175. Ramón Alfonso Gallego Rendón INTRODUCCIÓN Toda institución de educación debe poseer una suficiente cantidad de recursos en infraestructura y medios educativos que le permita impartir una educación de alta calidad. a fin de que no se presente escasez o sobreoferta de ellos. pues se ocasionaría en el primer caso deterioro en la calidad de la educación y en el segundo. Al inicio de cada período académico la administración conoce las asignaturas a las que los estudiantes desean asistir. Las instituciones educativas en el proceso de formación proponen una serie de asignaturas o eventos que deben ser impartidos a los estudiantes adscritos a ella. la forma de resolverlo es a través de algoritmos computacionales. Eliana Mirledy Toro Ocampo. para ello se plantean las restricciones denominadas blandas. Este problema combinatorial es clasificado como del tipo no lineal entero mixto y es de difícil solución. por el contrario. 150 Ingeniería & Desarrollo. así que debe distribuirlas dentro de su planta física en su totalidad de modo que los interesados reciban las materias que solicitaron. miden el grado de satisfacción por parte de los estudiantes. Universidad del Norte. usualmente se desea que los estudiantes desarrollen sus actividades de forma cómoda.John Fredy Franco Baquero. Estos recursos deberán ser lo suficientemente planificados y estudiados. 2008 . laboratorios. deterioro en sus finanzas. salones multimedia y auditorios que permitan desarrollar sus labores académicas con un adecuado grado de satisfacción. los llamados algoritmos heurísticos o metaheurísticos. Se ha observado de tiempo atrás un crecimiento constante en la demanda de cupos estudiantiles en las instituciones de educación. Respecto a la primera. entre otros. Estas inversiones en muchos de los casos podrían diferirse en el tiempo si la institución cuenta con herramientas de trabajo que le permita planificar el uso adecuado de sus recursos. su asignación deberá ser muy bien planificada a fin de establecer un uso adecuado.

así como los casos de prueba. Estos últimos cuentan con un gran desarrollo en la últimas dos décadas. [3]. 24: 159-185. cabe destacar que aún no se ha encontrado una solución global para cada caso. En cambio. métodos de clusterización [4]. los que tienen una base matemática o se apoyan en ella. Adicional a esto. tratando de mejorar los resultados expuestos por otros equipos en cuanto a calidad y tiempo requerido para encontrar la respuesta. Estos métodos se dividen en cuatro tipos: métodos secuenciales [2]. Este trabajo propone una metodología para la solución del problema de asignación óptima de salones usando la técnica de optimización combinatorial Búsqueda Tabú. Una de las ventajas del método matemático permite mencionarlo como el más riguroso y exacto. incluso probados con casos reales. genéticos. entre otros. la principal desventaja es el poco énfasis que le da al modelo matemático aún cuando este haya sido planteado desde el inicio del problema. es decir. se ha creado una amplia bibliografía disponible en la página oficial de la competencia para asignación de salones (Internacional Timetabling Competition) [1]. [5]. pero con la desventaja de su difícil formulación matemática sumada a la gran cantidad de recursos computacionales que requiere. Además. Una gran variedad de métodos se han descrito en la literatura para resolver el problema. métodos híbridos. métodos basados en restricciones [6]. es el enfoque del desarrollo que han alcanzado. gracias a técnicas como recocido simulado. Búsqueda Tabú. 2008 151 . se plantean algoritmos constructivos para generar una configuración inicial de buena calidad y se define la estructura de vecindad para la búsqueda local con Búsqueda Tabú. Se propone un modelo matemático original que muestra las restricciones de forma explícita y compacta. Se pueden dividir en dos tipos: los modelos matemáticos y los heurísticos. así que el problema sigue sin resolverse por completo. Universidad del Norte. y los que utilizan métodos algorítmicos.P������� �� ���������� ������ �� ������� �������� ��� �������� ���� Dada la complejidad del problema. grupos de investigadores alrededor del mundo se han dado a la tarea generar metodologías capaces de resolver este problema. y los métodos metaheurísticos [7]. Ingeniería & Desarrollo. los heurísticos representan una facilidad para la puesta en marcha en el computador y en la confección algorítmica. por lo cual impide el desarrollo de una aplicación general. sin embargo. Otra característica importante encontrada en los trabajos publicados. En la literatura especializada ambos enfoques tienen tanto adeptos como detractores.

los cuales difieren del tipo de eventos. Las restricciones comprenden hechos como evitar los choques de horario.John Fredy Franco Baquero. profesores. DEFINICIÓN DEL PROBLEMA Los problemas de asignación de salones se asocian a la labor de organizar una secuencia de eventos (generalmente asignaturas o exámenes). y de sus restricciones. en la sección 4 se presentan los conceptos básicos de la Búsqueda Tabú y su adecuación al problema específico. [11]. el problema consiste en asignar las sesiones a los períodos de tiempo. sub o sobreasignación de recursos o equipos. de tal manera que ningún profesor o asignatura tenga más de una sesión en el mismo período y que todas las sesiones de la asignatura estén presentes en el horario. continuidad. Universidad del Norte. dispersión de las sesiones. en la última parte se plantean conclusiones y futuros trabajos alrededor de la temática. 2. De acuerdo a lo anterior se pueden identificar tres grupos: 2. incapacidad de las salas. bloques y una matriz de requerimientos (que establece el número de sesiones que cada profesor dicta por asignatura). en un período de tiempo determinado. la sección 5 se refiere a los casos de prueba y resultados obtenidos y. Ramón Alfonso Gallego Rendón Este documento se presenta de la siguiente forma: en la sección 2 se explican algunas generalidades del problema de asignación de salones.1. entre otros [8]. capacidad de las salas. 2. finalmente. asignación de tiempo. 152 Ingeniería & Desarrollo. Tipos de problemas de asignación de salones Un gran número de variaciones de estos problemas han sido propuestos en la literatura [9]. en la sección 3 se indica el modelo matemático propuesto. infra o sobrevaloración de la carga de trabajo e inadecuada disposición para estudiantes y profesores. Generalmente el problema considera el siguiente conjunto de restricciones: asignación de recursos. [10]. institución involucrada (universidad o escuela). satisfaciendo un conjunto de restricciones. considera el horario semanal para las sesiones de las asignaturas de una escuela o colegio. restricciones de tiempo entre sesiones. Eliana Mirledy Toro Ocampo. coherencia de las reuniones.1.1. Dada las asignaturas. 24: 149-175. Asignación de horarios escolares También conocido como Class-Teacher Problem. 2008 .

por el contrario. para el caso de las escuelas se pueden destinar todos los salones como aptos. Tabla 1 Comparación entre la asignación de horarios escolares y universitarios Características Escolar Pocas elecciones Mallas bien estructuradas Ajustado (Poseen gran carga) Pocas salas Mismo tamaño Centralizadas Muy saturado Una sola jornada Satisfacción de restricciones Universitario Muchas elecciones Mallas débilmente estructuradas Flexible (Posee carga liviana) Muchas salas Variedad de tamaños Descentralizadas Medianamente holgado Utiliza mañanas y tardes Minimización de restricciones Transgredidas Programación Disponibilidad profesor Salas Carga estudiantes Criterio de optimización Ingeniería & Desarrollo.2. generalmente con régimen semiflexible.1. debido a que es un grupo de alumnos que toman las mismas asignaturas. 24: 159-185. Asignación de horarios universitarios Este problema consiste en organizar un horario para las sesiones de un conjunto de asignaturas. considerando un número determinado de salas y bloques de tiempo. Otra diferencia que se presenta son los profesores. los estudiantes toman distintas asignaturas. 2008 153 . se presenta el problema de la capacidad de las salas ya que cada asignatura tiene asociada su propio requerimiento. En las escuelas se encargan de enseñar una asignatura y en la universidad generalmente imparten de 1 a 3 asignaturas. Además. por lo que se generan asignaturas en común con otros estudiantes. En el ámbito escolar estos pueden considerarse una entidad.P������� �� ���������� ������ �� ������� �������� ��� �������� ���� 2. En el caso universitario. Universidad del Norte. La principal diferencia entre un horario escolar y uno universitario es la forma como se considera a los estudiantes.

revisar el artículo realizado por Schaerf [8]. laboratorio.1. que un estudiante precise asistir a dos eventos diferentes a la misma hora • Asimismo no es conveniente que en un salón se presenten dos eventos diferentes a la misma hora.2. De ser satisfechas las restricciones anteriores se dice que la propuesta planteada es factible y en estas condiciones se podrían iniciar las labores académicas. Eliana Mirledy Toro Ocampo. medios audiovisuales. es decir. Ramón Alfonso Gallego Rendón 2.3.John Fredy Franco Baquero. por el contrario. • Los horarios entregados a los estudiantes no deben presentar conflictos de horarios. La cantidad de exámenes depende de los requisitos de las instituciones para evaluar los conocimientos de los alumnos que cursan una asignatura en particular con el fin de destacar las diferencias existentes entre los problemas de asignación de horarios universitarios y escolares. 2. 2008 . se describen en la tabla 1 sus principales características. Sin embargo. las cuales no son de obligatorio cumplimiento y. miden el grado de satisfacción por parte de los estudiantes y son las siguientes: 154 Ingeniería & Desarrollo. determinando la cantidad de salas y tiempo para realizar cada examen. 24: 149-175. Universidad del Norte. Para mayor información sobre Timetabling y sus variantes. Asignación de horarios de exámenes Este problema consiste en asignar el horario a los exámenes. computadores. planteando un conjunto de restricciones denominadas duras o de obligatorio cumplimiento y un conjunto de restricciones blandas que no son de obligatorio cumplimiento. para ello se plantean las restricciones denominadas blandas. entre otros. El conjunto de restricciones duras de estricto cumplimiento son las siguientes: • El salón asignado debe cumplir con requisitos apropiados para desarrollar el evento tales como espacio. usualmente se desea que los estudiantes desarrollen sus actividades de forma cómoda. Características del problema El modelo empleado en este trabajo se basa en el utilizado por la comunidad científica del Reino Unido que fue desarrollado para un concurso denominado International Timetabling Competition con el cual se busca resolver el problema University TT [1].

2. Ingeniería & Desarrollo. definiendo la hora y el salón para cada evento de tal forma que si se cumplen las restricciones duras. BÚSQUEDA TABÚ 3. 2008 155 . diversificación. el caso se formula como un problema de programación de los horarios de clase. o entera o mixta. por cada restricción de este tipo que sea violada. Universidad del Norte. 24: 159-185. Función objetivo Esta técnica resuelve problemas del tipo (1): min f(x) s. estrategias de intensificación. Un algoritmo de Búsqueda Tabú completo utiliza técnicas de exploración y de memoria avanzadas. El incumplimiento de alguna de estas restricciones es penalizada por la función objetivo. [13]. path relinking y lista de configuraciones de élite. • Asistir a un evento que se dicte en la última hora del día.a. y X es un conjunto de restricciones que pueden ser lineales o no lineales también. 3. incrementándola en 1. Las variables x pueden ser de naturaleza continua. 3. x ∈ X (1) Donde f es una función general. La exploración sensible de Búsqueda Tabú se basa en la idea de que una mala decisión tomada mediante una estrategia produce más información que una buena selección hecha de forma aleatoria. Según lo anterior. se minimizan las restricciones blandas. entre otras [12].1. [14] es una técnica de optimización combinatorial que proviene de la inteligencia artificial y usa conceptos de memoria adaptativa y exploración sensible. Generalidades Búsqueda Tabú [12]. oscilación estratégica. lineal o no lineal. • Asistir en un día a tan solo un evento. como son: memoria de corto y largo plazo.P������� �� ���������� ������ �� ������� �������� ��� �������� ���� • La asistencia continuada a varios eventos.

Selección del mejor vecino Se evalúa cada vecino. Una configuración aleatoria puede tener la ventaja de que evita una convergencia prematura. 2008 . Cuando se encuentra una configuración que cumpla la condición.3. Generación del vecindario Un vecino de una configuración X es una configuración X’ obtenida a partir de X por medio de una transición simple. se evalúan otras configuraciones adicionales. Se utiliza algún criterio como puede ser la reducción de la función objetivo hasta cierto valor. se debe reducir el número de vecinos a un conjunto N*(X) más pequeño que N(X). Ramón Alfonso Gallego Rendón 3. • 3.3.3. Lista de reducción de candidatos de élite. Aspiración adicional. se determina su función objetivo y se verifica si cumple las restricciones del problema a resolver para determinar la factibilidad de la configuración vecina. 156 Ingeniería & Desarrollo. Una buena configuración inicial que se encuentre con el uso de constructivo puede estar en una región promisoria y puede conducir a soluciones de alta calidad con bajos esfuerzos computacionales. redefiniendo el vecindario. por medio de un algoritmo constructivo o alguna técnica heurística que utilice índices de sensibilidad. pero una configuración inicial de mala calidad conduce a un esfuerzo computacional mayor. Se deben fijar los números mínimo y máximo de configuraciones a ser analizadas. 3. Eliana Mirledy Toro Ocampo.3.John Fredy Franco Baquero. las cuales son llamadas configuraciones de élite.2.1. 24: 149-175. Siendo que en la mayoría de los casos el vecindario N(X) puede ser muy grande por cuanto implica un elevado esfuerzo de cómputo en el proceso de búsqueda local. Universidad del Norte. Se selecciona un conjunto de configuraciones vecinas con atributos particulares. Aspectos básicos de Búsqueda Tabú 3. Configuración inicial La configuración inicial puede ser obtenida aleatoriamente. Los vecinos son clasificados en una lista de acuerdo con el valor de la función objetivo y el proceso selecciona el mejor candidato.3. Se tienen diferentes formas de reducir el vecindario: • • Tomar un número determinado de configuraciones seleccionadas aleatoriamente del conjunto N(X).

3. que imita las características de un algoritmo goloso. las cuales pueden tener un criterio de almacenamiento fijo o variable a lo largo del proceso. si la configuración analizada mejora la configuración incumbente (es la mejor solución encontrada hasta el momento por el proceso). Universidad del Norte. Si en el vecindario generado no existe ninguna configuración que mejore la función objetivo. el criterio de aspiración permite que sea seleccionado a pesar de la prohibición. se denomina selección agresiva. para almacenar la información de los atributos que han cambiado o que han permanecido inalterables en el proceso de búsqueda. Actualización de la estructura Tabú Búsqueda Tabú usa una estructura que tiene la misma codificación de la configuración X. 2008 157 . La memoria explícita almacena la información completa de configuraciones élite (configuraciones de buena calidad) encontradas durante la búsqueda.P������� �� ���������� ������ �� ������� �������� ��� �������� ���� El primer candidato de la lista (de mejor función objetivo) es seleccionado siempre que el movimiento efectuado para pasar de la configuración actual a la configuración vecina no se encuentre prohibido (estado Tabú). Esta estrategia evita que se quede atrapado en óptimos locales. Esto es lo que constituye la memoria adaptativa. Ingeniería & Desarrollo. 24: 159-185. La memoria basada en atributos almacena la información de los atributos que cambian al pasar de una configuración a otra. entonces se selecciona la mejor de las peores en tanto que no haya sido clasificada como Tabú durante el proceso de optimización. 3. Si el mejor vecino de la lista de candidatos está clasificado como tabú por el proceso de optimización. La memoria usada en Búsqueda Tabú puede ser explícita o por atributos [12]. presentando como ventajas la facilidad de almacenamiento. dependiendo del comportamiento de la búsqueda. Con esto se evita regresar a configuraciones ya visitadas.4. si es factible este modo de selección. pero también se podrían dejar de conocer regiones no visitadas que tengan atributos prohibidos de aquellas ya exploradas. manipulación y verificación. Esta información se almacena en las memorias de corto y largo plazo. lo cual es ventajoso.

aparece un ‘1’ si el salón tiene la característica o aparece un ‘0’ en caso contrario. MODELO MATEMÁTICO Y CODIFICACIÓN La información del problema es codificada a través de matrices y vectores como se describe a continuación: • La información de las características requeridas por los eventos se almacena en la matriz características_eventos. Eliana Mirledy Toro Ocampo. La matriz horario_eventos en la posición (i. en la que en la posición (i. en la que para cada salón (filas). La información de las características que tienen los salones se almacena en la matriz características_salones. 24: 149-175. características_salones y del vector capacidad_salones se puede crear la matriz eventos_salones que en la posición (i.John Fredy Franco Baquero. Universidad del Norte. La información de los estudiantes que están matriculados en cada evento se representa en la matriz eventos_estudiantes.j) tiene un ‘1’ si el estudiante ‘j’ (columna) asiste al evento ‘i’ (fila) o tiene un ‘0’ en caso contrario. aparece un ‘1’ si el evento requiere la característica o aparece un ‘0’ en caso contrario. La programación de los eventos se puede representar en una matriz (evento_hora_salón) con número de filas igual al número de eventos y con dos columnas. 2008 . Esta matriz resume las condiciones de características y capacidad de los salones frente a los eventos. El horario de los estudiantes se puede generar a partir de las matrices evento_hora_salón y eventos_estudiantes.j) tendrá un ‘1’ si el evento ‘i’ (filas) se puede programar en el salón ‘j’ (columnas) o tendrá un ‘0’ en caso contrario. en el que en la posición ‘i’ se almacena la capacidad del salón ‘i’. Ramón Alfonso Gallego Rendón 4. A partir de las matrices características_eventos. con lo que puede conocer la hora y el salón programados para cada estudiante según los eventos que tenga matriculados. Se puede formar la matriz horario_eventos con número de filas igual al número de eventos y con 45 columnas que corresponden al total de horas. respecto a cada característica (columnas). Para cada evento. en la que para cada evento (filas). en la primera columna se ubica la hora en la que se programa y en la segunda columna se almacena el salón donde se realiza. respecto a cada característica (columnas).j) tiene un ‘1’ si el evento ‘i’ se programa a la hora ‘j’ o tiene un ‘0’ en caso contrario. Se tiene un vector que indica la capacidad de los salones: capacidad_salones. • • • • • • • 158 Ingeniería & Desarrollo.

no se puede programar más de un evento. esta restricción usa la matriz HA. 24: 159-185. construida según las ecuaciones (8) y (9). La restricción (4) previene que se presenten cruces de horarios para los estudiantes. 2008 159 . La ecuación (6) define la variable hu que representa el número de eventos únicos en cada día para todos los estudiantes. La matriz horario_estudiante se puede calcular como: HA = EA '⋅ ET donde : HA : matriz horario de los estudiantes ET : matriz horario de los eventos EA : matriz evento estudiante A continuación se presenta el modelo matemático para el problema de programación óptima de horarios de clase. La matriz horario_estudiante en la posición (i. La ecuación (7) define la variable hc que representa los casos en que se programan más de dos eventos consecutivos en un día para todos los estudiantes. La restricción (3) permite garantizar que el salón asignado cumple con la capacidad y las características requeridas por el evento correspondiente. en un bloque de tiempo. La ecuación (5) define la variable hf que representa el número de eventos programados al final de cada día para todos los estudiantes. que contiene los horarios de los estudiantes. La restricción (2) representa la condición de que en un salón.P������� �� ���������� ������ �� ������� �������� ��� �������� ���� Para facilitar la comprobación de las restricciones blandas se forma la matriz horario_estudiante con número de filas igual al número de estudiantes y con 45 columnas que corresponden al total de horas. Universidad del Norte. Ingeniería & Desarrollo. La restricción (1) asegura que cada evento se programa una sola vez.j) tiene un ‘1’ si el estudiante ‘i’ tiene programado un evento en la hora ‘j’ o tiene un ‘0’ en caso contrario.

a ) ≤ 1 t∈H a∈N A 5 X est  ES (e. s ∈ N S . t ∈ NT t ∈ NT . Ramón Alfonso Gallego Rendón Variables de decisión : 1 si el evento'e' se programa en el salón 's'  en el bloque de tiempo 't'  X est :  0 si el evento'e' no se programa en el salón 's'  en el bloque de tiempo 't'  minimizar z = hf + hu + hc s. 2008 .45] 160 Ingeniería & Desarrollo. t ∈ NT ET (e. t ) = ∑X est HA = EA '⋅ ET donde : N A : conjunto de estudiantes N E : conjunto de eventos N S : conjunto de salones NT : bloques de tiempo ES : matriz evento − salón ET : matriz horario de los eventos HA : matriz horario de los estudiantes EA : matriz evento estudiante H = [9. s ) − X est  ≥ 0   ∑ HA (a. t ) 2 '  H (d ) ´  » − 1− ∑ HA(a . 27.18. 24: 149-175. a ∈ N A (1) (2 ) (3 ) (4 ) (5 ) (6 ) (7 ) (8 ) (9 ) ≤1 e∈N E hf = ∑ HA (t . Eliana Mirledy Toro Ocampo.a.John Fredy Franco Baquero. t ∈ NT e ∈ N E . 36. Universidad del Norte.t )  »  t= H(d )−8    hu = ∑ ∑ »e  » a∈N A d =1 » » ˙ ¤ hc = a∈N A d =1 k =1 t = H (d )+ k ∑ ∑∑ ∏ s∈N S 5 7 H (d )+ k + 2 HA (a. t ) e ∈ N E . s∈N S t∈N T ∑∑X ∑X est est =1 e ∈ NE s ∈ N S .

Constructivo Búsqueda local para factibilidad Cálculo de función objetivo Búsqueda Tabú para factibilidad Búsqueda Tabú para optimalidad Figura 1. 2008 161 . Universidad del Norte. En la primera de ellas se obtiene una programación inicial de los eventos por medio de un constructivo. En la tercera fase se alcanza una solución factible.P������� �� ���������� ������ �� ������� �������� ��� �������� ���� 5. Fases de solución del problema. En la cuarta fase se usa Búsqueda Tabú para minimizar las restricciones blandas. en la que se cumplen todas las restricciones duras. para que los eventos sean programados en salones habilitados. En la segunda fase se emplea una búsqueda local para disminuir las restricciones duras violadas. Ingeniería & Desarrollo. a fin de tener una configuración inicial con pocas restricciones duras violadas. APLICACIÓN DE BÚSQUEDA TABÚ A LA PROGRAMACIÓN ÓPTIMA DE HORARIOS DE CLASE. empleando Búsqueda Tabú para minimizar restricciones duras. El desarrollo de las cuatro fases se muestra en la figura 1. La metodología empleada para la solución del problema sigue cuatro fases. manteniendo la factibilidad de la configuración. 24: 159-185.

1. 2008 . el constructivo entrega una configuración inicial en la que todos los eventos se encuentran progra- 162 Ingeniería & Desarrollo. Universidad del Norte. luego con tres salones y así. Constructivo para generar una configuración inicial El constructivo propuesto para generar una configuración inicial sigue la idea de programar de manera prioritaria los eventos que tienen menor número de salones habilitados. usando la matriz eventos_salones. Ramón Alfonso Gallego Rendón 5. El siguiente objetivo del constructivo consiste en asignar salones adecuados para todos los eventos. Al final del proceso anterior. se continúa con la programación de los siguientes acontecimientos con dos salones habilitados. Eliana Mirledy Toro Ocampo. 24: 149-175. Como resultado de la programación efectuada. para evitar que quede por fuera el suceso en cuestión. de tal manera que ambas actividades resulten programadas en instalaciones habilitadas. Para esto se crea una lista ordenada de eventos de menor a mayor número de salones habilitados. usando la matriz ‘estudiantes comunes’. en el espacio dejado por estos eventos se pueden programar otros que tenían problemas locativos. para intentar mover eventos sin problemas a otro sitio habilitado para ello. De tal forma. Por ello se buscan los sitios adecuados para las actividades con salones no habilitados a partir del intercambio de los lugares entre dos de esos eventos. se identifican las horas disponibles en todos los lugares. en orden creciente.John Fredy Franco Baquero. se tendrán algunos eventos en un salón que no está habilitado para ellos. se buscan salones habilitados y disponibles. entonces se buscan salones disponibles aunque no sean preparados para su desarrollo. En caso de que aún se tengan problemas con los salones y no existan intercambios que solucionen estos problemas. sucesivamente. el evento se deja temporalmente sin programar. revisando que a esa misma hora no existan otros ya programados con estudiantes comunes entre ellos. para evitar generar restricciones duras de cruces de horarios de estudiantes. Una vez que se pautan los eventos que tienen un solo salón habilitado. sin importar que en el bloque de tiempo que se vaya a asignar existan actividades que ya fueron programadas y que tienen estudiantes comunes con el nuevo evento a incluirse. Finalmente. En caso de que no se cumpla la condición anterior. Inicialmente se programan los eventos que solo se pueden efectuar en un determindo salón. para ubicar los eventos aún no programados. Para programar un evento primero se busca un salón habilitado usando la matriz eventos_salones y se debe encontrar un bloque de tiempo libre para asignarle. Debido a que es posible que no se encuentren salones habilitados que estén disponibles para algunos eventos no programados.

24: 159-185. Diagrama del algoritmo constructivo Ingeniería & Desarrollo. Universidad del Norte. 2008 163 .P������� �� ���������� ������ �� ������� �������� ��� �������� ���� mados en salones habilitados. Inicio Programar eventos según número de salones habilitados Matriz evento salón explícito ¿Eventos no programados? Si Programar eventos en salones habilitados No Configuración final constructivo No Si ¿Eventos en salones no habilitados? ¿Eventos no programados? Si Programar eventos en salones disponibles No Movimiento de evento a salones habilitados Intercambio de salones entre eventos Figura 2. En la figura 2 se muestra un diagrama del constructivo propuesto para generar una configuración inicial. por lo que no se violan restricciones duras del segundo tipo (compatibilidad entre eventos y salones). pero pueden existir cruces de horarios para los estudiantes (violación de restricciones duras del tercer tipo).

analizando para cada hora si los eventos programados en todos los salones en dicho lapso tienen estudiantes en común. Debido a la codificación usada. se detecta un cruce de horarios para dichos estudiantes mediante la matriz estudiantes comunes. Para evaluar la función objetivo de una programación de horarios. sino más bien realizar el análisis desde el punto de vista de los eventos. la generación de los horarios se hace de forma eficiente: se revisa el de cada estudiante y día por día. si existe un evento programado. el número de restricciones blandas violadas corresponde al número de estudiantes que asisten al evento referido. constituyen violaciones de restricciones blandas. dado que la cantidad de operaciones computacionales es menor y la evaluación de la configuración se hace más eficiente. se debe generar el horario de los estudiantes. mediante un contador que almacena el número de problemas asociados a este. Eliana Mirledy Toro Ocampo. Para conocer el número de estudiantes que tienen programados eventos en una hora final de un día. es decir. Índice de sensibilidad De forma simultánea a la evaluación de la función objetivo de una configuración. Se empieza por revisar las restricciones duras de la configuración. que guarda la información de la matriz eventos_estudiantes de manera eficiente. se cuentan las restricciones duras y blandas que son violadas. 24: 149-175. se usa la matriz evento_estudiante_explicito. siempre se cumple que en un salón a una misma hora no se programa más de un evento. 2008 . si se presentan más de dos eventos consecutivos o eventos únicos. se crea un índice para cada evento. De esta manera. Universidad del Norte. si tiene las características y la capacidad requeridas para su desarrollo. Ramón Alfonso Gallego Rendón 5. por esto se usa la matriz evento_salón. en dicho caso. Luego se revisa si existen cruces de horarios para los estudiantes. aprovechando su tendencia esparcidora.John Fredy Franco Baquero. por lo que es innecesario verificar esta restricción. dado que no todos los estudiantes asisten a un evento en particular. conocida la programación de los eventos y los estudiantes que los asisten. teniendo índices diferentes 164 Ingeniería & Desarrollo. verificando si el salón en el que se programa cada evento está habilitado. se revisa en cada salón. Para la revisión de las restricciones blandas. la ventaja de revisar esta restricción de la manera mencionada reside en que no es necesario generar y analizar el horario de todos los estudiantes de forma explícita.2. De esta manera. Evaluación de la función objetivo. Para lograrlo se analizan todas las posibilidades de combinaciones de dos salones a la misma hora. a la hora final de cada día.

hay que considerar la programación de los eventos mostrada en la figura 3. Un pequeño cambio en la configuración puede ser la modificación de hora o de salón para un evento. El movimiento anterior puede. También es posible variar el salón en el que se programa un evento. De esta forma. Suponer. además. es candidato para generar configuraciones vecinas. haciendo una lista ordenada. que el evento 56 puede programarse en los salones 2 y 3. según los salones asignados. Para ilustrar la estructura de vecindad propuesta. 2008 165 . que está programado en el salón 2 en la hora 9. pero calibrando el tamaño del vecindario en cantidad y calidad. • Movimiento del evento a un bloque de tiempo libre. sin que se afecte su factibilidad por el salón. Seleccionando un evento.3. según sea el tipo de problema. 5. es conveniente definir una estructura de vecindad en la cual las nuevas configuraciones sigan manteniendo la factibilidad. 24: 159-185. se puede intercambiar el bloque de tiempo de dicho evento con el de otro suceso en el mismo lugar. se pueden generar configuraciones vecinas a partir de: • Intercambio del bloque de tiempo del evento con otro suceso en el mismo salón. Universidad del Norte. Para seleccionar los eventos que sirven para generar la vecindad se usa el índice de sensibilidad que se forma al calcular la función objetivo. en un salón habilitado para la actividad. implicar un cambio en la hora del evento. Con el fin de alterar la hora de un evento. Estructura de vecindad Ya que el constructivo permite encontrar una configuración inicial en la que los eventos no tienen problemas con los salones. Suponer que el evento 56. moviéndolo a un bloque de tiempo libre en otro sitio (o el mismo) siempre que el nuevo salón se encuentre habilitado para el evento.P������� �� ���������� ������ �� ������� �������� ��� �������� ���� para las restricciones duras y las blandas. los eventos que van a cambiar son aquellos que tienen un índice asociado mayor. además. El vecindario de una configuración consiste en configuraciones obtenidas haciendo pequeños cambios a la configuración actual. Ingeniería & Desarrollo. Con estos índices se orienta el proceso de búsqueda.

salones 1 2 3 E1 E279 E5 E137 E234 E201 E76 E12 E3 E45 E89 E114 E92 E169 E192 E127 E263 1 2 3 horas 4 5 6 7 8 9 E56 E34 salones 1 2 3 E1 E279 E5 E137 E234 E201 E76 E12 E3 E45 E56 E114 E92 E169 E192 E127 E263 1 2 3 horas 4 5 6 7 8 9 E89 E34 Figura 4.John Fredy Franco Baquero. 166 Ingeniería & Desarrollo. Universidad del Norte. 2008 . Intercambio de eventos Otra configuración se obtiene al mover el evento 56 de la hora nueve al espacio disponible del salón 3. Evento candidato en la estructura de vecindad Se puede generar una nueva configuración intercambiando los bloques de tiempo de los eventos 56 y 89 que están en el salón 2. en la hora 3. Ramón Alfonso Gallego Rendón salones 1 2 E1 E279 E5 E137 E234 E201 E76 E12 E3 E45 E89 E114 E92 E169 E192 E127 E263 1 2 3 horas 4 5 6 7 8 9 E56 evento candidato 3. Eliana Mirledy Toro Ocampo. 24: 149-175. 3 E34 Figura 3.

En la implementación de Búsqueda Tabú se utiliza una estructura de memoria de corto plazo que evita regresar a configuraciones ya visitadas. con lo que se puede escapar de óptimos locales en el proceso de búsqueda. La memoria de corto plazo consiste en un vector (estado _ tabú) que almacena el estado de prohibición de un evento. algunas configuraciones vecinas se prohíben. El proceso de búsqueda local debe revisar estas configuraciones vecinas e identificar cuál de ellas es la mejor. Movimiento de un evento 5. 2008 167 . 24: 159-185. Cuando se ejecuta un movimiento en el que participa un evento. en términos de factibilidad y de función objetivo. Universidad del Norte. en virtud de que Ingeniería & Desarrollo.4. Manejo de la memoria de corto plazo La estructura de vecindad permite generar configuraciones vecinas.P������� �� ���������� ������ �� ������� �������� ��� �������� ���� salones 1 2 3 E1 E279 E5 E137 E234 E201 E76 E12 E3 E45 E89 E114 E92 E169 E192 E127 E263 1 2 3 horas 4 5 6 7 8 9 E56 E34 salones 1 2 3 E1 E279 E5 E137 E234 E201 E76 E12 E3 E45 E89 E114 E92 E169 E192 E56 E127 E263 1 2 3 horas 4 5 6 7 8 9 E34 Figura 5. la posición del vector estado _ tabú asociado a ese evento cambia a un valor_tabú. tomando como base la configuración actual. Siguiendo esta idea. el cual corresponde al número de iteraciones en que se prohíben movimientos que involucren al suceso que cambió. para seleccionarla como la siguiente configuración.

estado en el que se permiten movimientos que cambien la programación del evento relacionado. Diversificación usando memoria basada en frecuencia Cuando la función objetivo no mejora después de una cantidad determinada de iteraciones siguiendo el proceso de Búsqueda Tabú basado en memoria de corto plazo. 24: 149-175. 5. En la figura 6 se muestra el manejo del vector estado _ tabú considerando el movimiento representado en la figura 5 (evento 56). Eliana Mirledy Toro Ocampo. Los elementos del vector estado _ tabú diferentes de cero se disminuyen en una unidad en cada iteración hasta que lleguen a cero. se tendrán configuraciones vecinas no prohibidas. Ramón Alfonso Gallego Rendón son generadas con el movimiento de un evento que se encuentra proscrito. Criterio de aspiración Si se da el caso en que la mejor configuración vecina se encuentre prohibida. que es el mismo en las fases de búsqueda de factibilidad y luego búsqueda de optimalidad.5. cambiando únicamente el criterio para seleccionar la mejor configuración según la función objetivo: restricciones duras o restricciones blandas violadas. eventos E1 0 0 E1 E2 1 0 E2 E3 0 0 E3 Vector Tabú … E56 … E263 … E279 … 0 5 4 3 3 2 … E56 … E263 … E279 … Figura 6. 2008 . Manejo del vector estado_tabú 5. generadas a partir de cambios en eventos no proscritos. En la figura 8 se presenta el diagrama de Búsqueda Tabú empleado. y su función objetivo mejora la mejor función objetivo encontrada hasta el momento en la búsqueda (valor de la incumbente). 168 Ingeniería & Desarrollo. El valor_tabú mencionado es un parámetro de control de Búsqueda Tabú. Dependiendo del tamaño de la estructura de vecindad y del valor _ tabú seleccionado. Universidad del Norte.John Fredy Franco Baquero. que debe afinarse para obtener buenos resultados. es conveniente emplear diversificación a partir de la memoria de largo plazo basada en frecuencia. el criterio de aspiración permite seleccionar esta configuración a pesar de estar excluída.6.

que no ha cambiado. Ingeniería & Desarrollo. al evento 3. se le modificará su programación. para que se dirija la búsqueda a regiones no visitadas (o poco frecuentadas). Universidad del Norte. En la figura 7 se muestra un ejemplo de la memoria de largo plazo. De la figura 7 se puede afirmar que la programación del evento1 ha cambiado 23 veces. eventos E1 23 17 0 4 76 Figura 7. En el caso asociado a la figura 6. La programación de los eventos seleccionados es cambiada de manera forzada. usando un vector ordenado de forma ascendente según el número de cambios de un evento.P������� �� ���������� ������ �� ������� �������� ��� �������� ���� La memoria propuesta basada en frecuencia almacena el número de veces en que la programación de un evento ha sido modificada. 24: 159-185. Esta memoria se implementa en un vector con dimensión igual al número de eventos. la del evento 56 se ha alterado 4 veces. De ese vector ordenado se toman los primeros elementos (que corresponden a aquellos sucesos que menos han cambiado) donde el número de eventos y el número de iteraciones con los que se hace diversificación. mientras que la programación del evento 3 no ha sufrido variaciones a lo largo del proceso de búsqueda. 2008 169 . son parámetros adicionales de Búsqueda Tabú. Memoria de largo plazo E2 E3 … E56 … E263 … E279 … 41 La estrategia de diversificación emplea la memoria de largo plazo.

John Fredy Franco Baquero. max. 2008 . Ramón Alfonso Gallego Rendón Inicio k<# inter. Diagrama del algoritmo de Búsqueda Tabú 170 Ingeniería & Desarrollo. Eliana Mirledy Toro Ocampo. Universidad del Norte. 24: 149-175. sin Si encontrar mejores soluciones Si Se cumple criterio de parada k=0 No No Generar una configuración vecina Evaluar configuración Aplicar diversificación Solución final Atributos Si cambiados tienen estado tabú Se cumple criterio de aspiración No No Actualizar lista de mejores configuraciones vecinas Se revisó toda la vecindad Si Tomar la mejor configuración vecina No Si No Se mejora la incumbente Si Actualizar incumbente Figura 8.

2. Universidad del Norte. 3 y 4 de la referencia [1]. de salones. Se empleó un tiempo fijo de 400 segundos para el proceso de búsqueda. restricciones blandas Tiempo para reiniciar memoria de corto plazo Tiempo para diversificación 4 20 200 s. de características y de estudiantes correspondientes. Tabla 2 Parámetros usados en Búsqueda Tabú Valor Tabú Búsqueda Tabú.P������� �� ���������� ������ �� ������� �������� ��� �������� ���� 5. PRUEBAS Y RESULTADOS Los casos de prueba corresponden a las instancias 1. Tamaño lista índice 10 40 Tabla 3 Condiciones casos de prueba I Eventos Salones Características Estudiantes 400 10 10 200 II 400 10 10 200 III 400 10 10 200 IV 350 10 5 350 Ingeniería & Desarrollo. Para cada uno se muestra el número de eventos. 24: 159-185. restricciones duras Búsqueda Tabú. En la tabla 4 están los resultados obtenidos con la metodología propuesta y en la tabla 5 se presentan las comparaciones con respuestas encontradas por otras metodologías. En la tabla 2 se muestran los parámetros de Búsqueda Tabú empleados. la tabla 3 señala las condiciones de los casos de prueba. 12 s. 2008 171 .

John Fredy Franco Baquero. Napier University. 2008 . Olivia Rossi-Doria and Ben Paechter. 24: 149-175. Scotland [X2] International Timetabling Competition A Hybrid Approach. Eliana Mirledy Toro Ocampo. School of Computing. Germany 172 Ingeniería & Desarrollo. Universidad del Norte. 10 corridas) Algoritmo híbrido [X2] (mejores resultados) 99 45 104 57 II 66 25 91 31 III 113 65 126 61 IV 101 44 127 5 [X1] A memetic algorithm for University Course Timetabling. Ramón Alfonso Gallego Rendón Tabla 4 Resultados de la optimización para los casos de prueba I Restricciones blandas Horas únicas en un día para un estudiante Más de dos horas continuas para un estudiante Evento en hora final de día para un estudiante 99 4 64 31 II 66 7 39 20 III 113 4 46 63 IV 101 20 81 0 Tabla 5 Comparación de resultados I Búsqueda Tabú propuesta Ganador competencia con Simulated Annealing Algoritmo memético [X1] (prom. Technische Universität Darmstadt. Marco Chiarandini.Intellektik.

de escapar de óptimos locales y reducir restricciones duras y blandas. es un área de constante investigación. que no se encuentra en la literatura especializada. el desarrollo de metodologías que proporcionen soluciones para su adecuado aprovechamiento. en lo posible. dadas las variables relacionadas y las condiciones involucradas. Los movimientos propuestos para la generación del vecindario tienen la capacidad. La estrategia para generar la configuración inicial demostró ser eficiente: realizar la programación de los eventos teniendo como prioridad evitar. ya que los eventos que generan más violaciones en las restricciones tienen la prioridad para generar el vecindario. Universidad del Norte. Aunque las pruebas efectuadas mostraron que los mejores resultados se obtienen mediante una lista ordenada de tamaño apreciable de los eventos. El índice de sensibilidad usado para generar las configuraciones vecinas es de utilidad para guiar el proceso de búsqueda. El modelo matemático planteado es una contribución al problema de programación óptima de horarios de clase. todo esto con un costo computacional ínfimo. en cuanto a variables como las distancias entre salones para eventos consecutivos en Ingeniería & Desarrollo. que se efectúa según el índice (10%). ya que permiten el cambio de salones y horas para cualquier evento. Así.P������� �� ���������� ������ �� ������� �������� ��� �������� ���� 6. La aplicación de la estrategia de diversificación mostró ser útil cuando el proceso de búsqueda no presenta mejoras en un número determinado de iteraciones. 24: 159-185. restricciones duras y aplicar movimientos adecuados que las reduzcan. satisfaciendo diferentes conjuntos de restricciones. el número de iteraciones necesarias en la etapa de Búsqueda Tabú para restricciones duras es bastante pequeño comparado con estrategias que no siguen la prioridad mencionada. CONCLUSIONES Y RECOMENDACIONES El problema de asignación de salones o programación de horarios de clase es de alta complejidad matemática. junto con las estrategias de Búsqueda Tabú. El modelo condensa las restricciones duras y blandas y muestra las relaciones entre la programación de los eventos y el horario de los estudiantes. 2008 173 . En trabajos futuros se pueden incluir restricciones que consideren el grado de satisfacción de los alumnos con los horarios generados. Debido a la cantidad limitada de recursos (en este caso salones).

Recent developments in practical examination timetabling.. Andrea. European Journal of Operational Research. [4] W����. C��� P. 1996. K. Recent developments in practical examination timetabling. Debe abordarse también el problema de la programación de horarios de profesores. “Constrained satisfaction. S����. In: Burke and Carter.. M. Department of Mathematical Sciences. P. W����. W. L������.. 241–250. [6] W����. pp. M.ch/Files/�comp2002/ [2] C�����. Recent developments in practical course timetabling. pp. G. Towards the construction of optimal examination timetables. L������. [5] F�����. pero que de manera conjunta con el de asignación de salones. pp. R. 1996. 1983. Ramón Alfonso Gallego Rendón los que participen. L������. J. International Timetabling Competition.. 1995. N�����. 32–47. [8] S������. [12] G�����. pp. 1985.. CWI . se vuelve más complejo. not so constrained satisfaction and the timetabling problem”.idsia. G. In: Burke and Ross. W. [9] C�����. Technical Report CS-R9567.. Disponible en: h�p://www. 174 Ingeniería & Desarrollo. Technical Report 417. Eliana Mirledy Toro Ocampo. In: A Plenary Talk in the Proceedings of the 3rd International Conference on the Practice and Theory of Automated Timetabling. Boulder. A memetic algorithm for University exam timetabling. [10] C�����. INFOR 17 (1979). G. 3–21. European Journal of Operational Research 19 (1985). 219–229.John Fredy Franco Baquero. J. 2008 . Konstanz. [7] B����.Centrum voor Wiskunde en Informática.. G. E. pp. G. M. F. Universidad del Norte. pp... Apr. A heuristic procedure for large-scale examination scheduling problems. A survey of automated timetabling. Tabu Search Fundamentals and Uses. M. 151–162.. An introduction to timetabling. Colorado. 16–18. In: Burke and Ross (1996) pp. W. In: Burke and Ross (1996) pp. REFERENCIAS [1] Metaheuristics Network. R. W. G. 151–162. An introduction to timetabling. 2000 (2000). University of Applied Sciences.. [11] WERRA. 3–19. También pueden agregarse restricciones para tener bloques de eventos que conformen clases con más de una hora de duración y eventos que correspondan a clases de una misma materia. 24: 149-175.. 19. las cuales exigen su programación en bloque o en días diferentes.F. Aug.. Esta nueva propuesta del modelo matemático del problema de salones es presentada con el fin de que la comunidad académica implemente nuevas técnicas de solución ya sean exactas o metaheurísticas. 1996b. que es más fácil que lo tratado en este trabajo. 1995. 3–21. D. [3] W���� .. University of Colorado.. M. Clemson University.

[14] G������. 2008 175 . Ingeniería & Desarrollo. A. E������. Universidade Estadual Paulista. R.P������� �� ���������� ������ �� ������� �������� ��� �������� ���� [13] B����. Técnicas metaheurísticas de optimización. T���. Universidad Tecnológica de Pereira. 2003. E. A. 24: 159-185. Tesis de Maestría. Planejamento de sistemas de distribução de energia elétrica utilizando algoritmo busca tabu. F. 2008. Universidad del Norte.