Está en la página 1de 11

ALGORITMO BASADO EN TABU SEARCH PARA EL

PROBLEMA DE ASIGNACI

ON DE HORARIOS DE CLASES
MARCOS GIL TALLAV

O
Departamento de Computaci on
Facultad de Ciencias y Tecnologa
Universidad de Carabobo
Valencia, Estado Carabobo, Venezuela
E-mail: margilt@cantv.net
AMAD

IS ANTONIO MART

INEZ
Departamento de Computaci on
Facultad de Ciencias y Tecnologa
Universidad de Carabobo
Valencia, Estado Carabobo, Venezuela
E-mail: aamartin@uc.edu.ve
RESUMEN
El problema de asignaci on de horarios de clases
en una instituci on universitaria consiste en asig-
nar lo mejor posible las clases para los estudian-
tes en bloques de tiempo semanales y en deter-
minadas aulas, bajo ciertas restricciones [1]. La
complejidad de este problema ha motivado la uti-
lizaci on de m etodos heursticos y metaheursticas
para tratar de encontrar buenas soluciones en
un tiempo computacional razonable. En este tra-
bajo se presenta un algoritmo basado en la me-
taheurstica Tabu Search para la resoluci on del
problema de asignaci on de horarios de clases en
el Departamento de Computaci on de la Facultad
Experimental de Ciencias y Tecnologa de la Uni-
versidad de Carabobo. Los resultados experimen-
tales muestran que, en general, el algoritmo desa-
rrollado produce mejores soluciones que el m eto-
do manual, en cuanto a la calidad de los horarios
obtenidos y a la cantidad de tiempo empleado pa-
ra generarlos.
Palabras claves
Metaheursticas, Optimizaci on Combinatoria,
Problema de Asignaci on de Horarios de Clases,
Tabu Search
1. Introducci on
El Problema de Asignaci on de Horarios
(PAH) consiste, b asicamente, en asignar una se-
rie de actividades o eventos en perodos de tiem-
po, bajo ciertas restricciones, de manera tal que
se satisfagan lo mejor posible un conjunto de ob-
jetivos [2].
El Problema de Asignaci on de Horarios de
Clases en una instituci on universitaria es una ins-
tancia del PAH que consiste en asignar lo mejor
posible (seg un algunos criterios) las clases para
los estudiantes en horas acad emicas semanales
y en determinadas aulas, bajo ciertas restriccio-
nes [1]. Tanto estas restricciones como los crite-
rios que determinan si un horario es mejor que
otro son factores que varan considerablemente
dependiendo de los requerimientos especcos de
cada instituci on, raz on por la cual se hace muy
difcil dise nar una soluci on que se adapte a todas
las instancias.
El Problema de Asignaci on de Horarios de
Clases en una instituci on universitaria es NP-
Completo [3, 4]; esto ha motivado la utiliza-
ci on de m etodos heursticos y metaheursticas pa-
ra tratar de encontrar buenas soluciones en un
tiempo computacional razonable. Entre las t ecni-
cas utilizadas hasta ahora para resolver este pro-
blema se tienen los Algoritmos Gen eticos [5], la
Programaci on L ogica de Restricciones [6] y Tabu
Search [7, 8]. En este sentido, en los ultimos a nos
se han reportado resultados satisfactorios con la
aplicaci on de estas t ecnicas [5, 7, 8].
Tabu Search (TS) [9, 10, 11, 12] es una
metaheurstica dise nada para resolver problemas
de optimizaci on combinatoria, que est a basada
en principios generales de Inteligencia Articial
(IA). En esencia, es una t ecnica que trata de guiar
un procedimiento iterativo de b usqueda local pa-
ra que no quede atrapado en un optimo local
que no sea global. A tal efecto, TS toma de la
IA el concepto de memoria y lo implementa me-
diante estructuras simples, con el objetivo de di-
rigir la b usqueda teniendo en cuenta la historia de
esta. Dicho de otra manera, el procedimiento tra-
ta de extraer informaci on de lo sucedido y actuar
en consecuencia, por lo cual podra decirse que
hay un cierto aprendizaje y que la b usqueda es
inteligente.
Para el momento del desarrollo de este tra-
bajo, los horarios de clases del Departamento
de Computaci on de la Facultad Experimental de
Ciencias y Tecnologa (FaCyT) de la Universidad
de Carabobo (UC) se realizan de forma manual,
lo cual requiere de bastante tiempo y esfuerzo. Es
por esto que se desea una herramienta de softwa-
re que realice la asignaci on de horarios de clases
de este departamento de manera automatizada y
eciente. En este trabajo se dise na un modelo de
costos para la determinaci on de la calidad de los
horarios, y se desarrolla un algoritmo basado en
la metaheurstica Tabu Search para la resoluci on
del problema de asignaci on de horarios de clases
en el Departamento de Computaci on de la FaCyT
de la UC.
Este artculo fue estructurado en seis sec-
ciones, incluyendo la introducci on. En la secci on
2 se realiza la delimitaci on del problema. En la
secci on 3 se describe brevemente la metaheursti-
ca Tabu Search. En la secci on 4 se exponen los
detalles de la soluci on al problema. La secci on 5
reporta los resultados experimentales obtenidos
por el algoritmo desarrollado. En la secci on 6 se
establecen las conclusiones y se dan recomenda-
ciones para trabajos futuros.
2. Delimitaci on del problema
El Problema de Asignaci on de Horarios
(PAH) puede verse como un problema de optimi-
zaci on combinatoria, puesto que se requiere ha-
cer la mejor asignaci on entre todas las posibles
asignaciones de horarios. Para ello, basta con de-
nir el conjunto de soluciones, con sus respecti-
vas restricciones asociadas (si existen), y la fun-
ci on objetivo.
En este problema se suelen identicar dos
tipos de restricciones: primarias y secundarias.
Las primarias denen la factibilidad o validez de
un horario de clases y, generalmente, expresan li-
mitaciones fsicas, como lo son la incapacidad de
un profesor o estudiante de estar en dos lugares
distintos al mismo tiempo. Las restricciones pri-
marias corresponden a las restricciones sobre las
soluciones de un problema de optimizaci on com-
binatoria, de manera que el espacio de soluciones
estara denido por el conjunto de todos los hora-
rios posibles que cumplan todas estas restriccio-
nes.
Las secundarias se reeren a restricciones
que no son obligatorias, pero se desean satisfa-
cer lo mayor posible. Un ejemplo de restricci on
secundaria puede ser el aprovechamiento optimo
de los recursos (tiempo y aulas, entre otros). El
grado de satisfacci on de estas restricciones es
el que dene la calidad de los horarios de clases y,
por ende, permite determinar cu ando un horario
es mejor que otro. Esto implica que se debe de-
nir una manera de evaluar la satisfacci on de las
restricciones secundarias, lo cual correspondera
a la funci on objetivo del problema. Esta manera
de evaluar la satisfacci on de estas restricciones se
denir a en la secci on 4 como modelo de costos.
En esta secci on se realiza la instanciaci on
del problema de asignaci on de horarios de clases
al caso particular del Departamento de Compu-
taci on de la Facultad Experimental de Ciencias y
Tecnologa (FaCyT) de la Universidad de Cara-
bobo (UC). En la subsecci on 2.1 se explican al-
gunos t erminos necesarios para la comprensi on
del problema. En la subsecci on 2.2 se denen las
restricciones primarias y secundarias. En la sub-
secci on 2.3 se presenta la formalizaci on del pro-
blema.
2.1. Denici on de t erminos
En esta subsecci on se denen una serie
de t erminos utilizados en el Departamento de
Computaci on de la FaCyT de la UC, cuyos sig-
nicados son importantes para la comprensi on de
la naturaleza del problema de asignaci on de ho-
rarios de clases en este departamento. Ellos son
los siguientes:
A no: Perodo de estudios de la carrera que dura
aproximadamente 9 meses. Las carreras de
FaCyT son de 5 a nos actualmente.
Asignatura: Materia o curso del plan de estu-
dios de la carrera. Cada asignatura pertenece
a un a no especco de la carrera.
Secci on: Subgrupo de estudiantes de todos los
inscritos en cierta asignatura. Cada secci on
recibe clases separadamente. Las secciones
de una asignatura se numeran para diferen-
ciarlas entre s. Cada secci on tiene asignado
un profesor que le dicta clases.
Secci on compuesta: Conjunto de todas las sec-
ciones de asignaturas de un a no que com-
parten un mismo n umero de secci on en sus
asignaturas. Normalmente, las secciones de
una secci on compuesta comprenden casi los
mismos estudiantes.
Aula: Espacio fsico donde se dictan las clases a
los estudiantes.
Asignatura pr actica: Asignatura cuyas clases
requieren el uso de determinados equipos
fsicos. Estas asignaturas requieren un aula
especial dotada con los equipos necesarios.
Laboratorio: Aula dotada con ciertos equipos
fsicos, utilizada para dictar clases de asig-
naturas pr acticas.
Hora acad emica: Perodo de tiempo de aproxi-
madamente 60 minutos en el que se divide
el tiempo disponible en un da para dar cla-
ses. En ocasiones, se le llama simplemente
hora por simplicidad.
El Departamento de Computaci on posee va-
rias asignaturas adscritas a cada uno de los cin-
co a nos de la carrera, y los estudiantes inscri-
tos en una asignatura son separados en secciones.
Adem as, los estudiantes generalmente ven todas
o la mayora de las asignaturas de un a no, asigna-
dos en secciones del mismo n umero, es decir, en
una sola secci on compuesta.
El problema de asignaci on de horarios de
clases en este departamento se reduce entonces
a realizar asignaciones de tres elementos: seccio-
nes, aulas y horas acad emicas, satisfaciendo las
restricciones requeridas.
2.2. Restricciones
En conjunto con la Coordinaci on de Ho-
rarios del Departamento de Computaci on de la
FaCyT de la UC, se denieron las restricciones
primarias y secundarias del problema de asigna-
ci on de horarios de clases de este departamen-
to, ya que no estaban explcitamente denidas. A
continuaci on, se enuncian cada una de ellas en
lenguaje natural.
2.2.1. Restricciones primarias
1. Dos secciones no deben estar asignadas al
mismo tiempo en la misma aula.
2. Dos aulas no deben estar asignadas al mismo
tiempo con la misma secci on.
3. Dos secciones de una secci on compuesta no
deben estar asignadas al mismo tiempo.
4. Dos secciones con el mismo profesor no de-
ben estar asignadas al mismo tiempo.
5. Una secci on no debe estar asignada en horas
en las cuales su profesor no est a disponible.
6. Un aula no debe ser asignada en horas en las
cuales no est a disponible.
7. La cantidad de estudiantes de una secci on
debe ser menor o igual a la capacidad de
cualquier aula asignada a esa secci on.
8. El n umero de horas asignadas semanalmen-
te a una secci on debe ser igual al especica-
do por su asignatura. Seg un este n umero, las
horas deben ser repartidas en varios das de
la siguiente manera: en caso de que sea par,
dos horas por da; y en caso de que sea im-
par, tres horas un da y dos horas en el resto
de los das.
9. Las horas asignadas a una secci on en un da
deben ser consecutivas y reciben el nombre
de bloque.
10. Las horas de un bloque de una secci on deben
estar asignadas en la misma aula.
11. Las secciones de asignaturas te oricas (no
pr acticas) s olo deben asignarse en aulas que
no sean laboratorios.
12. Las secciones de asignaturas pr acticas deben
asignarse en sus aulas (laboratorios) pre-
asignadas.
2.2.2. Restricciones secundarias
1. Dos secciones cuyas asignaturas son de a nos
consecutivos no deben estar asignadas al
mismo tiempo.
2. Los bloques de las secciones de una secci on
compuesta deben estar distribuidos lo mejor
posible sobre los das disponibles.
3. Los bloques de las secciones de una sec-
ci on compuesta deben estar asignados en un
turno del da: ma nana o tarde.
4. No se deben asignar secciones a la hora de
almuerzo.
2.3. Descripci on formal
En esta subsecci on se presenta una des-
cripci on formal del problema de asignaci on de
horarios de clases del Departamento de Compu-
taci on de la FaCyT de la UC.
Se tienen los conjuntos:
A, asignaturas
P, profesores
S, secciones
U, aulas
A
p
A, asignaturas pr acticas
U
lab
U, laboratorios
Se tienen las variables:
na N, representa el n umero de a nos de la ca-
rrera
nd N, representa el n umero de das que se im-
parten clases en la semana
nhd N, representa el n umero de horas
acad emicas por da
Se tienen los subconjuntos:
N
na
= {n N : 1 n na}
N
nd
= {n N : 1 n nd}
N
nhd
= {n N : 1 n nhd}
Se tienen las funciones:
a no : A N
na
, dada una asignatura a A,
a no(a) representa el a no en el que se imparte
a
nhs : A N, dada una asignatura a
A, nhs(a) representa el n umero de horas
acad emicas semanales requeridas para a
aula : A
p
U
lab
, dada una asignatura pr acti-
ca a
p
A
p
, aula(a
p
) representa el aula
preasignada para a
p
disp
p
: P 2
N
nd
N
nhd
, dado un profesor p P,
disp
p
(p) representa los pares (da, hora) en
los que p no est a disponible
asig : S A, dada una secci on s S, asig(s)
representa la asignatura de s
prof : S P, dada una secci on s S, prof(s)
representa el profesor que le dicta clases a s
nsa : S N, dada una secci on s S, nsa(s)
representa el n umero de s en su asignatura
ne : S N, dada una secci on s S, ne(s) re-
presenta el n umero de estudiantes que com-
prende s
cap : U N, dada un aula u U, cap(u) repre-
senta la capacidad de estudiantes de u
disp
u
: U 2
N
nd
N
nhd
, dado un aula u U,
disp
u
(p) representa los pares (da, hora) en
los que u no est a disponible
sc : N
na
N S, dados i = a no(asig(s))
y j = nsa(s), sc(i, j) representa la secci on
compuesta n umero j del a no i
3. Tabu Search
Tabu Search (TS) [9, 10, 11, 12] es una me-
taheurstica dise nada para resolver problemas de
optimizaci on combinatoria, que est a basada en la
b usqueda local y en principios generales de Inte-
ligencia Articial (IA).
TS comienza de la misma forma que una
b usqueda local ordinaria, procediendo de manera
iterativa de una soluci on a otra hasta que se sa-
tisfaga un criterio de terminaci on. Sin embargo, a
diferencia de la b usqueda local, TS siempre toma
la mejor soluci on de la vecindad, sin importar que
no mejore la soluci on actual, por lo cual se debe
guardar la mejor soluci on encontrada en toda la
b usqueda hasta el momento.
Para evitar regresar a una soluci on previa-
mente visitada, se registran atributos de movi-
mientos o de soluciones recientemente visitadas
en estructuras denominadas listas tab u (usual-
mente es una lista por cada atributo). De esta ma-
nera, se denen las llamadas condiciones tab u,
las cuales establecen que los movimientos o solu-
ciones vecinas que contengan alguno de los atri-
butos presentes en estas listas no se deben tomar
en cuenta al evaluar la vecindad. Esta caracters-
tica corresponde a la llamada memoria a corto
plazo.
El n umero de iteraciones que un atributo se
mantiene en una lista tab u se denomina tabu te-
nure, el cual puede ser est atico o variable. Este
valor no debe ser muy peque no para no caer en
un ciclo de movimientos, ni muy grande para que
la lista tab u sea manejable y no se utilice mucho
tiempo de c omputo para recorrerla. Existe un ta-
bu tenure asociado con cada lista tab u.
En ocasiones, puede convenir aceptar una
soluci on de la vecindad incluso si cumple alguna
de las condiciones tab u, por ejemplo, porque es
mejor que la mejor soluci on encontrada hasta el
momento. Para ello, TS tambi en dene los llama-
dos criterios de aspiraci on, los cuales permiten
hacer caso omiso a las condiciones tab u.
TS tambi en incluye una memoria a largo
plazo, aunque no siempre es implementada. El
objetivo de esta memoria es identicar patrones
comunes en las buenas soluciones y as incentivar
la b usqueda en las regiones donde se observan
estos patrones. Adem as, cuando se llevan muchas
iteraciones sin encontrar una soluci on mejor, esta
memoria tambi en permite explorar regiones con
patrones totalmente distintos a los de las mejores
soluciones.
La orientaci on de la b usqueda en TS se ba-
sa en las estrategias de intensicaci on y diver-
sicaci on. La estrategia de intensicaci on diri-
ge el proceso de b usqueda local en la vecindad
de una soluci on, utilizando memoria a corto pla-
zo (principalmente) y criterios de aspiraci on. Por
otra parte, la estrategia de diversicaci on condu-
ce al proceso de b usqueda a explorar regiones del
espacio de soluciones que no han sido visitadas,
y a generar nuevas soluciones que dieran de al-
guna manera de aquellas ya consideradas. La di-
versicaci on se apoya en memoria a largo plazo.
El ciclo de TS puede terminar por distintas
condiciones, entre las cuales se destacan las si-
guientes:
Haber alcanzado cierto n umero m aximo de
iteraciones.
Haber realizado cierta cantidad de iteracio-
nes sin actualizaci on de la mejor soluci on
encontrada.
Haber encontrado una soluci on cuyo costo
sea mejor que un valor predenido.
La combinaci on de algunas de las condicio-
nes anteriores.
4. Dise no de la soluci on
En esta secci on se presentan los detalles de
la soluci on al problema de asignaci on de horarios
de clases del Departamento de Computaci on de la
Facultad Experimental de Ciencias y Tecnologa
(FaCyT) de la Universidad de Carabobo (UC).
En la subsecci on 4.1 se dene el modelo de
costos. En la subsecci on 4.2 se describe breve-
mente la representaci on de datos escogida. En la
subsecci on 4.3 se describen los componentes que
conforman el algoritmo de asignaci on de horarios
de clases desarrollado.
4.1. Modelo de costos
Como se mencion o anteriormente, se re-
quiere de una manera de evaluar la satisfacci on
de las restricciones secundarias, para as obtener
la funci on objetivo del problema de optimizaci on
combinatoria asociado con el Problema de Asig-
naci on de Horarios (PAH). Con este n, se de-
ni o un modelo de costos utilizando las notaciones
denidas en la formalizaci on del problema mos-
trada en la secci on 2 de este documento.
Sea : N
na
N N
nd
N
nhd

{verdadero, falso} una funci on tal que:
(i, j, k, h) =
_
_
_
verdadero si s sc(i, j), u U
[(s, u, k, h) H]
falso en caso contrario
Se denen entonces los siguientes t erminos
de la funci on de costos:
1. Sea:
= {((s
p
, u
p
, k
p
, h
p
), (s
r
, u
r
, k
r
, h
r
))
H
2
: a no(asig(s
p
)) = a no(asig(s
r
)) 1
k
p
= k
r
h
p
= h
r
}
el conjunto de todos los pares de asignacio-
nes en tiempos iguales (das y horas) en los
que las secciones son de asignaturas de a nos
consecutivos.
El primer t ermino de la funci on de costos
viene dado por:
= ||
Este t ermino cuenta el n umero de veces que
una secci on de una asignatura de cierto a no
recibe clases a la misma hora acad emica que
otra secci on de una asignatura de un a no
consecutivo.
2. Sean:
nh
k
ij
= |{h N
nhd
: (i, j, k, h)}|
el n umero de horas que tiene asignada la
secci on compuesta j del a no i en el da k,

ij
=

nd
k=1
nh
k
ij
nd
el promedio ideal de horas por da para la
secci on compuesta j del a no i, y

ij
=
nd

k=1

nh
k
ij

ij

la suma de las variaciones con respecto a


ij
de la mencionada secci on compuesta.
El segundo t ermino de la funci on de costos
viene dado por:
=
na

i=1

ij
Este t ermino acumula, por cada da de cla-
ses de una secci on compuesta, las variacio-
nes de la cantidad de horas asignadas con
respecto a la cantidad de horas ideal por da.
Dicho de otra manera, acumula factores de
dispersi on de las horas asignadas en la se-
mana por cada secci on compuesta.
3. Sean:
nbl
k
ij
el n umero de bloques libres en el da k para
la secci on compuesta j del a no i comprendi-
dos entre la primera y ultima hora asignada,
(tbl
q
)
k
ij
el tama no del q- esimo bloque libre en el da
k para la secci on compuesta j del a no i entre
la primera y ultima hora asignada, y

ij
=
nd

k=1
_
_
nbl
k
ij

nbl
k
ij

q=1
(tbl
q
)
k
ij
_
_
un factor de dispersi on de las horas asigna-
das en el da k para la secci on compuesta j
del a no i.
El tercer t ermino de la funci on de costos vie-
ne dado por:
=
na

i=1

ij
Este t ermino acumula, por cada da de cla-
ses de una secci on compuesta, factores de
dispersi on de las horas asignadas en el da.
4. Sean:
dm
k
ij
= mn ({h N
nhd
: (i, j, k, h)}) 1
el n umero de horas libres entre la hora de
inicio y la primera hora asignada en el da k
a la secci on compuesta j del i,
dt
k
ij
= nhdmax ({h N
nhd
: (i, j, k, h)})
el n umero de horas libres entre la hora nal
y la ultima hora asignada en el da k a la
secci on compuesta j del i, y

ij
= mn
_
nd

k=1
dm
k
ij
,
nd

k=1
dt
k
ij
_
un factor de cercana al turno al que m as
cerca se encuentra la secci on compuesta j
del a no i.
El cuarto t ermino de la funci on de costos
viene dado por:
=
na

i=1

ij
Este t ermino trata de determinar en
qu e turno del da recibe clases cada sec-
ci on compuesta, y acumula, por cada una,
factores de adaptaci on al turno.
5. Sea h
a
la hora de almuerzo y sean:
am
k
ij
= h
a
max({h N
nhd
: (i, j, k, h) h h
a
})
la cantidad de horas asignadas continuamen-
te desde la hora de almuerzo hacia la hora de
inicio que tiene la secci on compuesta j del
a no i,
at
k
ij
= mn({h N
nhd
: (i, j, k, h)
h h
a
}) h
a
la cantidad de horas asignadas continuamen-
te desde la hora de almuerzo hacia la hora -
nal que tiene la secci on compuesta j del a no
i, y

ij
=
nd

k=1
mn
_
_
am
k
ij
_
2
,
_
at
k
ij
_
2
_
un factor de adaptaci on a la hora de almuer-
zo de la secci on compuesta j del a no i.
El quinto t ermino de la funci on de costos
viene dado por:
=
na

i=1

ij
Este t ermino acumula, por cada secci on
compuesta, factores de adaptaci on a la ho-
ra de almuerzo.
Finalmente, la funci on de costos viene dada
por:
f(H) = w
1
+ w
2
+ w
3
+ w
4
+ w
5

donde
w
i
R(1 i 5)
5

i=1
w
i
= 1
Los valores w
i
se utilizan como pesos para
los t erminos de manera que, adaptando sus va-
lores, se pueden establecer prioridades entre los
t erminos.
4.2. Representaci on de datos
Para representar a un horario de clases, se
deni o un arreglo H
nd|U|nhd
de enteros, don-
de nd es el n umero de das, |U| es el n umero de
aulas y nhd es el n umero de horas por da. Cada
valor h
ijk
en el arreglo representa el n umero de la
secci on que est a asignada para ver clases en el da
i, en el aula j a la hora k. En el caso de que no se
tenga ninguna secci on asignada se tiene h
ijk
= 0.
En la gura 1 se presenta una ilustraci on de la es-
tructura de datos.
Adem as de esta estructura se denieron
otras estructuras auxiliares, las cuales redundan
cierta informaci on pero permiten vercar las
restricciones, tanto primarias como secundarias,
de una manera m as eciente.
. . .
s
2
s
2 . . .
s
1
s
1
s
1 . . . s
8
s
3
s
3
s
5
s
5 . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
s
7
s
7
s
7 . . . s
9
1
2
3
|U|
1 2 3 nhd
horas
a
u
l
a
s
4
s
2
s
2 . . .
. . .
s
1
s
1 . . . s
7
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
s
4
s
4
s
5
s
5 . . .
1
2
3
|U|
1 2 3 nhd
horas
a
u
l
a
s
4
Da 1 Da nd
. . . . . .
.
.
.
.
.
.
. . .
Figura 1. Estructura de datos principal
4.3. Componentes del algoritmo
4.3.1. Construcci on de la soluci on
inicial
El algoritmo de generaci on de la soluci on
inicial es b asicamente un procedimiento greedy
(voraz) aleatorizado, en el que se asignan prime-
ro las secciones con m as restricciones, tomando
das y aulas aleatorios y probando cada hora se-
cuencialmente.
4.3.2. Denici on de los movimientos
Despu es de analizar el rendimiento y el cos-
to de distintos tipos de movimientos, se estable-
ci o el de intercambio de bloques. Este intercam-
bio puede ser entre dos bloques de dos horas, dos
bloques de tres horas, un bloque de tres horas y
otro de dos horas con una hora libre antes o des-
pu es del bloque, dos bloques de dos horas con
una hora libre antes o despu es del bloque, o un
bloque de dos o tres horas y un bloque libre del
mismo tama no. La vecindad de una soluci on vie-
ne dada por cierta cantidad de movimientos alea-
torios. En las guras 2 y 3 se presentan ejemplos
de intercambio de bloques.
Al realizar este tipo de movimiento siempre
se cumplen las restricciones primarias 9, 10, y la
2 cuando se realiza en el mismo da. Las restric-
ciones primarias 5, 6, 7, 11 y 12 se eval uan en
tiempo constante utilizando las estructuras de da-
tos b asicas, y las 3, 4, 8, y la 2 cuando se realiza
en das distintos, se eval uan en tiempo constante
con la ayuda de las estructuras de datos auxilia-
res denidas para tal n. La restricci on primaria
s
2
s
2 . . .
s
1
s
1
s
1 . . . s
8
. . . s
12
s
3
s
3
s
5
s
5 . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
s
7
s
7
s
7 . . . s
9
1
2
3
nu
1 2 3 nhd
horas
a
u
l
a
s
4
s
2
s
2 . . .
. . .
s
10
s
10 . . .
s
11
s
11 . . . s
7
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
s
4
s
4
s
6
s
6 . . .
1
2
3
nu
1 2 3 nhd
horas
a
u
l
a
s
4
Da k
1
Da k
2
. . . . . .
.
.
.
.
.
.
4 4
Figura 2. Ilustraci on de movimiento (a)
s
2
s
2 . . .
s
1
s
1
s
1 . . . s
8
. . . s
12
s
3
s
3
s
5
s
5 . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
s
7
s
7
s
7 . . . s
9
1
2
3
nu
1 2 3 nhd
horas
a
u
l
a
s
4
s
2
s
2 . . .
. . .
s
10
s
10 . . .
s
11
s
11 . . . s
7
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
s
4
s
4
s
6
s
6 . . .
1
2
3
nu
1 2 3 nhd
horas
a
u
l
a
s
4
Da k
1
Da k
2
. . . . . .
.
.
.
.
.
.
4 4
Figura 3. Ilustraci on de movimiento (b)
1 siempre se cumple gracias a la representaci on
de datos seleccionada. De esta manera, los movi-
mientos se realizan en tiempo constante.
4.3.3. Condiciones tab u
Como condici on tab u unica se tiene que al-
guno de los bloques del movimiento ha sido re-
cientemente utilizado. De acuerdo con esto, des-
pu es de intercambiar dos bloques, los mismos no
podr an ser utilizados en un movimiento durante
la cantidad de iteraciones que indique el tabu te-
nure.
4.3.4. Criterios de aspiraci on
Como unico criterio de aspiraci on se tiene
el criterio de la mejor soluci on.

Este signi-
ca que no se toma en cuenta el estatus tab u de
una soluci on cuando esta tiene menor costo que
la mejor soluci on encontrada hasta el momento.
4.3.5. Condiciones de terminaci on
Se denieron dos condiciones de termina-
ci on del ciclo principal del algoritmo:
Se han realizado cierto n umero m aximo de
iteraciones.
Si se llega a cierto n umero de iteraciones
sin mejorar la mejor soluci on encontrada
en toda la b usqueda, se regresa a esa me-
jor soluci on y se hace una intensicaci on de
la b usqueda en la vecindad, por medio de
la duplicaci on del n umero de movimientos
aleatorios por iteraci on. Si al realizar esta
intensicaci on todava no se encuentra una
mejor soluci on, el ciclo se detiene.
5. Resultados experimentales
El algoritmo de asignaci on de horarios de
clases basado en Tabu Search, desarrollado en
este trabajo, fue implementado en el lenguaje
de programaci on C++, utilizando las libreras
est andares de entrada y salida y la Standard
Template Library (STL). El programa ejecutable,
llamado TSTimetabler, se produjo utilizando el
compilador GNU C++ (g++), en ambiente Li-
nux.
Se prob o el programa con varios casos de
prueba para determinar la calidad de las solucio-
nes, y a su vez comparar los resultados con los
obtenidos a trav es del m etodo manual. Las prue-
bas se realizaron en un computador con procesa-
dor Intel Pentium 4 de 1,4 GHz, 256 MB de RAM
y sistema operativo Red Hat Linux 9.0.
5.1. Naturaleza de las pruebas
Los casos de prueba consistieron en los da-
tos para realizar cinco horarios de clases, cua-
tro de los cuales corresponden a horarios reque-
ridos por el Departamento de Computaci on de la
Facultad Experimental de Ciencias y Tecnologa
(FaCyT) de la Universidad de Carabobo (UC) en
fechas pasadas, y el ultimo caso fue dise nado es-
peccamente para probar el algoritmo desarro-
llado. Para los cuatro primeros casos se posee su
soluci on manual y no se tiene informaci on sobre
la disponibilidad de los profesores.
Los valores de los pesos de los t erminos que
conforman la funci on de costos (funci on objeti-
vo) fueron los siguientes: w
1
= 0,2, w
2
= 0,2,
w
3
= 0,2, w
4
= 0,2 y w
5
= 0,2. Los par ametros
del algoritmo, as como la consideraci on que se
tom o sobre ellos, se describen a continuaci on:
N umero m aximo de iteraciones (ni): n umero
m aximo de iteraciones del ciclo principal
del algoritmo. Este par ametro fue gradual-
mente incrementado por cada prueba.
N umero de movimientos por iteraci on (nm):
n umero de movimientos aleatorios que se
prueban en cada iteraci on. Este par ametro
se prob o con 3 valores moderados: 10, 20 y
40.
tabu tenure: cantidad de iteraciones que se man-
tiene una soluci on (horario) en la lista tab u.
Este par ametro se mantuvo siempre con un
valor de 2, debido a que en algunas pruebas
previas no se notaron variaciones importan-
tes en los resultados.
N umero m ax. de iteraciones sin mejora (mim):
n umero de iteraciones que deben pasar sin
que se mejore la soluci on actual para retor-
nar a la mejor soluci on encontrada y hacer
una b usqueda m as exhaustiva (intensica-
ci on). Este par ametro se mantuvo en 1.000
o 2.000, dependiendo del n umero m aximo
de iteraciones.
5.2. Resultados obtenidos
En la tabla 1 se presentan los valores de la
funci on objetivo obtenidos con los distintos casos
de prueba y par ametros del algoritmo. Y en la ta-
bla 2 se pueden observar los tiempos (en segun-
dos) empleados por el programa en cada corrida
mostrada en la tabla 1.
ni nm mim Caso 1 Caso 2 Caso 3 Caso 4 Caso 5
Mtodo manual 33,28 53,36 48,32 53,16 ---
10 10 1.000 81,72 94,08 76,52 64,96 85,84
10 20 1.000 79,28 85,6 79,28 62 86,76
10 40 1.000 78,56 81,48 80,2 61,6 78,56
50 10 1.000 70,52 72,16 70,16 59,72 67,36
50 20 1.000 58,08 59,48 60,4 51,8 58,16
50 40 1.000 42,6 61 53,76 50,24 59,48
200 10 1.000 35,76 55,48 51 45,36 53,44
200 20 1.000 25,76 45,28 45,12 37,56 52,64
200 40 1.000 23,08 45 33,8 28,1 49,88
1.000 10 1.000 18,6 32,64 33,92 31 51,36
1.000 20 1.000 19,48 30,84 27,6 28,16 46,64
1.000 40 1.000 13,16 20,08 27,12 27,28 43,52
5.000 10 2.000 10,48 19,76 29,64 22,16 43,04
5.000 20 2.000 13,28 15,36 25,88 22,36 49,52
5.000 40 2.000 9,84 14,8 17,8 23,56 47,72
10.000 10 2.000 12,08 17,72 23,8 26,76 41,4
10.000 20 2.000 11,48 15,36 22,92 26,56 43,72
10.000 40 2.000 11,76 16,84 19,28 22,28 41,92
Tabla 1. Valores de la funci on objetivo obtenidos en las pruebas
ni nm mim Caso 1 Caso 2 Caso 3 Caso 4 Caso 5
10 10 1.000 0,031 0,031 0,016 0,031 0,032
10 20 1.000 0,062 0,062 0,062 0,047 0,031
10 40 1.000 0,109 0,109 0,109 0,078 0,078
50 10 1.000 0,125 0,141 0,125 0,093 0,109
50 20 1.000 0,266 0,266 0,25 0,203 0,187
50 40 1.000 0,516 0,531 0,531 0,39 0,359
200 10 1.000 0,531 0,547 0,546 0,406 0,375
200 20 1.000 1,047 1,078 1,046 0,781 0,75
200 40 1.000 2,047 2,141 2,063 1,5 1,469
1.000 10 1.000 2,563 2,641 2,609 1,906 1,828
1.000 20 1.000 5,031 5,219 5,11 3,765 3,625
1.000 40 1.000 9,953 10,265 10,156 7,5 7,235
5.000 10 2.000 12,422 12,859 12,703 9,375 5,984
5.000 20 2.000 17,141 23,437 25,422 18,672 18,156
5.000 40 2.000 37,531 50,562 36,891 32,375 22,328
10.000 10 2.000 14,579 16,735 25,219 14,828 7,109
10.000 20 2.000 44,25 22,547 28,406 11,813 21,156
10.000 40 2.000 34 49,948 58,719 36,266 23,969
Tabla 2. Tiempos empleados por la implementaci on del algoritmo
durante las pruebas (en segundos)
5.3. An alisis e interpretaci on de los
resultados
A medida que se incrementa el n umero
m aximo de iteraciones, se obtienen valores
menores de la funci on objetivo (mejores),
pero con mayor tiempo de ejecuci on.
A partir de las 5.000 iteraciones como m axi-
mo no se obtienen mejoras signicativas so-
bre las soluciones.
La duplicaci on del n umero de movimien-
tos aleatorios realizados por iteraci on hace
que el tiempo de ejecuci on del programa sea
aproximadamente el doble.
Al comparar los valores de la funci on objeti-
vo con los obtenidos de los horarios realiza-
dos manualmente, se evidencia la superiori-
dad del algoritmo al cabo de cierto n umero
de iteraciones razonable.
6. Conclusiones y trabajo futuro
El algoritmo basado en la metaheurstica
Tabu Search para la asignaci on de horarios de cla-
ses ha sido desarrollado, probado con datos reales
y comparado con resultados obtenidos a trav es
del m etodo manual.
Los experimentos realizados muestran que,
en todos los casos de prueba, el algoritmo basado
en Tabu Search encuentra mejores soluciones que
las obtenidas con el m etodo manual, en un tiempo
de c omputo razonable. Esto lleva a pensar que el
algoritmo debe, en general, encontrar buenas so-
luciones al problema de asignaci on de horarios de
clases en el Departamento de Computaci on de la
Facultad Experimental de Ciencias y Tecnologa
(FaCyT) de la Universidad de Carabobo (UC).
Los resultados experimentales obtenidos
por el algoritmo basado en Tabu Search mues-
tran los benecios de combinar un procedimiento
greedy (voraz) aleatorizado (utilizado para gene-
rar la soluci on inicial) con las estrategias de in-
tensicaci on y diversicaci on y con estructuras
de memoria a corto y largo plazo.
Para la realizaci on de trabajos futuros se
dan las siguientes recomendaciones:
Investigar sobre otras posibles restricciones
secundarias, y sus correspondientes t ermi-
nos en el modelo de costos, para mejorar la
calidad de los horarios.
Estudiar la posibilidad de extender la fun-
cionalidad del programa para que funcione
en los otros departamentos que constituyen
la Facultad Experimental de Ciencias y Tec-
nologa de la UC.
Incorporar al programa desarrollado dentro
de una interfaz gr aca que administre la in-
formaci on del departamento.
Con la nalizaci on de otros trabajos que se
avocan a este problema, se puede realizar un
estudio experimental m as completo, de ma-
nera que se comparen los resultados obteni-
dos por cada uno de ellos.
Referencias
[1] A. Schaerf, A survey of automated time-
tabling, Articial Intelligence Review, Vol.
13, No. 2, pages 87127, 1999.
[2] A. Wren, Scheduling, Timetabling and
Rostering - a special relationship?, Lecture
Notes In Computer Science, Vol. 1153, pa-
ges 4675, 1995.
[3] T. B. Cooper and J. H. Kingston, The
Complexity of Timetable Construction Pro-
blems, Lecture Notes In Computer Scien-
ce, Vol. 1153, pages 283295, 1995.
[4] S. Even, A. Itai and A. Shamir, On the
complexity of timetabling and multicom-
modity ow problems, SIAM Journal of
Computation, Vol. 5, No. 4, pages 691703,
1976.
[5] A. Colorni, M. Dorigo and V. Maniezzo, A
genetic algorithmto solve the timetable pro-
blem, Technical Report No. 90-060, Politec-
nico di Milano, Italy, 1992.
[6] M. Yoshikawa, K. Kaneko, Y. Nomura and
M. Watanabe, A constraint-based approach
to high school timetabling problems: a ca-
se study, Proceedings of the 12th Natio-
nal Conference on Articial Intelligence
(AAAI-94), pages 11111116, 1994.
[7] A. Schaerf, Tabu Search Techniques for
Large High-School Timetabling Problems,
Proceedings of the 13th National Conferen-
ce on Articial Intelligence (AAAI-96), pa-
ges 363368, 1996.
[8] M. J. Souza, L. S. Ochi and N. Maculan,
A GRASP-Tabu Search Algorithm to sol-
ve a School Timetabling Problem, Procee-
dings of the 4th Metaheuristics Internatio-
nal Conference, pages 5359, 2001.
[9] F. Glover, Tabu Search - Part I, ORSA
Journal on Computing, Vol. 1, No. 3, pages
190206, 1989.
[10] F. Glover, Tabu Search - Part II, ORSA
Journal on Computing, Vol. 2, No. 1, pages
432, 1990.
[11] F. Glover and M. Laguna, Tabu Search in
Modern Heuristic Techniques for Combina-
torial Problems, C. R. Reeves, Ed., Black-
well, Oxford, pages 70150, 1993.
[12] F. Glover and M. Laguna, Tabu Search.
Boston, MA: Kluwer Academic Publishers,
1997.

También podría gustarte