You are on page 1of 20

RISI 7(1), 37 - 55 (2010)

Revista de Investigacin de Sistemas e Informtica


Facultad de Ingeniera de Sistemas e Informtica ISSN 1815-0268 (versin impresa)
Universidad Nacional Mayor de San Marcos ISSN 1816-3823 (versin electrnica)

Sistema de apoyo a la generacin de horarios basado en


algoritmos genticos

Augusto Cortez Vsquez1,2, Gissela Rosales Gernimo1, Ral Naupari Quiroz1, Hugo Vega Huerta Z.1,2

1
Universidad Nacional Mayor de San Marcos
Facultad de Ingeniera de Sistemas e Informtica
2
Universidad Ricardo Palma
Facultad de Ingeniera

cortez_august@yahoo.fr, hugovegahuerta@hotmail.com

RESUMEN
El artculo presenta un estudio para solucionar el problema de elaboracin de horarios o timeta-
bling en una facultad. Propone un modelo matemtico en el cual se definen las restricciones del
problema, y luego se establece el diseo de la solucin y la adaptacin del algoritmo a esta. Para
resolver el problema planteado utiliza algoritmos genticos los cuales pertenecen al grupo de tcni-
cas meta heursticas. Con este desarrollo se pretende obtener un modelo cuyo principal objetivo es
el de reducir el tiempo y la ocurrencia de errores en la generacin manual de los horarios de clase
por parte de las autoridades responsables de la Facultad de Ingeniera de Sistemas e Informtica
de la Universidad Nacional Mayor de San Marcos, y satisfacer al mximo las necesidades de los
usuarios. Esto significa un avance tecnolgico y organizativo cuyo propsito es el de minimizar los
cruces entre cursos y horas, evitando extensos intervalos entre clases y disminuyendo los niveles
de insatisfaccin entre los docentes y estudiantes.
Palabras claves: Algoritmos genticos, Timetabling, Optimizacin, asignacin de carga acad-
mica.

ABSTRACT
The paper presents a study to solve the problem of developing a schedule or in a school timetabling.
It proposes a mathematical model which defines the constraints of the problem, and then establis-
hing the solution design and adaptation of this algorithm. To resolve the problem using genetic al-
gorithms which belong to the meta heuristic techniques. With this development is to obtain a model
whose main objective is to reduce the time and the occurrence of errors in the manual generation
of school hours by the authorities of the Faculty of Engineering and Computer Systems National
University Mayor de San Marcos, and to fully satisfy the needs of users. This means a technolo-
gical and organizational whose purpose is to minimize the crossings between courses and hours,
avoiding large gaps between classes and lowering the levels of dissatisfaction among teachers and
students.
Key words: Genetic algorithms, Timetabling, Optimization, academic load allocation.

37
Revista de Ingeniera de Sistemas e Informtica vol. 7, N. 1, Enero - Julio 2010

1. INTRODUCCIN programados en el mismo periodo de tiempo, o que a


un docente se le programan dos cursos en el mismo
La asignacin de recursos limitados, sujetos a restric-
horario o periodo, etc.
ciones de distinto tipo, ha sido un problema de relevan-
cia en reas como la administracin de las organiza- Causas del problema
ciones e incluso la inteligencia artificial. Por lo general,
la solucin de este tipo de problemas trae consigo una Para realizar la asignacin de horarios, los encargados
serie de condiciones de eficiencia, tiempo y oportuni- no cuentan con una planeacin exacta de la informa-
dad que deben ser tomadas en cuenta, ms all de la cin a usar, como
forma correcta de realizar la asignacin. En particular - Cantidad de estudiantes que llevaran un curso
se trata de resolver el problema de generacin de ho- (alumnos que aprobaron el curso prerrequisito, mas
rarios de clases, tomando como dominio del problema los repitentes
los cursos que se dictan en la Facultad de Ingeniera - Cantidad de grupos que se debe aperturar por cada
de Sistemas e Informtica de la Universidad Nacional curso;
Mayor de San Marcos. El objetivo es maximizar el uso
- Disponibilidad horaria por parte de los docentes
de los recursos, minimizar el desperdicio del espacio
fsico y establecer adecuadamente la carga acadmica - Inventario de aulas de acuerdo a capacidades
de los docentes para lograr la asignacin completa de
los horarios de clases. 2. MATERIALES Y MTODOS
Aunque existen varios mtodos de resolucin como Restricciones para realizar horarios de clases
puede ser la bsqueda nodo por nodo de forma sis-
temtica [10], o la utilizacion de mtodos de bsqueda Larrosa [7] define el trmino restricciones como condi-
heurstica [10], la propuesta que se hace en este traba- ciones que debe satisfacer el horario generado; y las
jo es utilizar algoritmos genticos. clasifica en dos tipos:

Problemtica Restricciones obligatorias, son propiedades espa-


ciales o temporales. Toda restriccin obligatoria debe
En toda institucin de educacin superior, al inicio cumplirse, la violacin de alguna origina un horario no
de cada perodo acadmico se presenta la necesi- vlido.
dad de asignar y coordinar los recursos econmicos,
materiales y humanos en beneficio de los estudiantes. Restricciones deseables son restricciones que en
Actualmente, como caso particular, en la Facultad de realidad denotan preferencias del usuario (polticas
Ingeniera de Sistemas e Informtica la tarea de ela- flexibles) y se desea que se cumplan en la medida de
boracin de horarios acadmicos se realiza de forma lo posible. La violacin de algunas de ellas seguir pro-
manual, estimando y estipulando los recursos como duciendo un horario vlido, pero de menor calidad que
mejor parecen ajustarse segn el criterio del respon- si se cumplieran todas stas.
sable de elaborar dichos horarios en cada semestre Adicionalmente clasificaremos cada uno de estos tipos
acadmico. Esta tarea normalmente requiere varios en Restricciones generales las cuales podrn aplicar-
das de trabajo; sin embargo, debido al volumen de se a la mayora de problemas de timetabling universita-
datos y variables que intervienen en el proceso, la rio y las Restricciones especficas que son propias de
tarea resulta ser costosa, compleja y no siempre cul- una sola institucin, en este caso la FISI.
mina en resultados satisfactorios; como por ejemplo,
Para la solucin de nuestro problema slo se conside-
realizar una asignacin de aulas que permanecen
rarn las restricciones obligatorias.
medianamente vacas ya que la cantidad de alumnos
matriculados es menor a su capacidad o viceversa, Restricciones Obligatorias
es decir, tal vez se asignan recintos muy pequeos
para una gran cantidad de estudiantes, etc. Adems Restricciones Obligatorias Generales
se puede producir insatisfaccin en algunos aspectos, ROG1. Un curso debe tener asignado a lo ms un
tales como, que un estudiante no podr matricularse docente en un aula en un periodo especfico.
en todos los cursos que desea debido a que estn

38
RISI 7(1), 37 - 56 (2010) Sistema de apoyo a la generacin de horarios basado en algoritmos genticos

ROG2. Un docente debe tener asignado a lo ms Restricciones Deseables


un curso en un aula en un periodo especfico.
Restricciones Deseables Generales
ROG3. Un aula puede tener a lo ms un curso asig-
nado y un docente en un periodo especfico. I. RDG1. Dos cursos de semestres consecutivos no
deben de ser asignados en un mismo periodo de
ROG4. No es posible asignar a un docente un cur- tiempo.
so por el cual no posea preferencia.
II. RDG2. Los bloques de un curso deben de distribuir-
ROG5. No se puede asignar un curso a un docente se lo mejor posible en la semana.
fuera de su disponibilidad de tiempo.
III. RDG3. Se debe minimizar el nmero de horas li-
ROG6. La cantidad de estudiantes en un curso no bres entre el fin de una clase y el inicio de otra.
puede sobrepasar la capacidad del aula. IV. RDG4. Pueden existir prioridades o penalidades
ROG7. Un curso debe cumplir con una cantidad de sobre cursos para que sean dictados en periodos
horas semanales requeridas. Segn sea el caso, si determinados. Es decir, una solucin ser de ma-
el nmero de horas acadmicas es par se asigna- yor calidad mientras se cumplan adecuadamente
r dos horas diarias hasta cubrir la totalidad, sino las prioridades o se tenga la menor cantidad de
se asignar un da de tres horas y el resto de dos asignaciones a perodos penalizados.
horas. A cada uno de estos grupos de horas se les
llamar bloques. Restricciones Deseables Especficas

ROG8. Las horas de un bloque para un determina- V. RDE1. No se deben de asignar cursos en horario
do curso en un mismo da deben de ser consecuti- de almuerzo.
vas adems de ser asignados a un docente y aula. Modelo General
ROG9. Cada bloque de un determinado curso slo Conjunto de Datos
puede asignarse a lo ms una sola vez cada da.
VI. Sea C = {1,..., c} c Z el vector de cursos aca-
ROG10. Los cursos no deben de solaparse entre dmicos.
ellos, ni en duracin ni ubicacin fsica, una vez Ejemplo: C = {
seleccionada la hora de inicio de stos y el aula
Algortmica I Clculo I Base de Datos
correspondiente.
}
Restricciones Obligatorias Especficas VII. Sea G = {g1,...,gn} el vector de grupos aperturados
ROE1. Un docente debe de impartir una cantidad para los cursos. Cada g G contiene un conjunto
determinada de horas de dictado de clases como de cursos Cg C, que no pueden ser programados
mximo y como mnimo segn su categora. en un mismo periodo de tiempo. Dos grupos distin-
ROE2. Los cursos de teora y prctica deben de tos pueden tener cursos iguales, por ejemplo sea
asignarse a aulas de tipo no laboratorio. Cg1 y Cg2 dos cursos pertenecientes a los grupos G1
ROE3. Los cursos de laboratorio deben de asignar- y G2, con G1 G2 puede ocurrir que Cg1 Cg2 0.
se a aulas de tipo laboratorio. Ejemplo: G = {
ROE4. No deben coincidir los horarios de los cursos Grupo 1 Grupo 2 Grupo 3
que corresponden a un mismo semestre y grupo.
}
ROE5. Pueden existir asignaciones previas de cur-
sos a un determinado periodo y aula. VIII.Sea L= {l1,...,ln} el vector de tipos que indica la mo-
dalidad del dictado de los cursos. Cada l L con-
ROE6. Pueden existir asignaciones previas de do-
tiene un conjunto de cursos Cl C, que no pueden
centes a un determinado perodo y curso.
ser programadas en un mismo periodo de tiempo.
ROE7. Los cursos son clasificados en los turnos de Dos tipos distintos pueden tener cursos iguales, por
maana, tarde y noche segn el semestre al que ejemplo sea Cl1 y Cl2 dos cursos pertenecientes a
pertenecen. los tipos L1 y L2, con L1 L2 puede ocurrir que Cl1
Cl2 0.

39
Revista de Ingeniera de Sistemas e Informtica vol. 7, N. 1, Enero - Julio 2010

Definimos de antemano L= {lt, lp, ll}, cada elemen- XIV.Sea TC la matriz de periodos de tiempo t T en
to correspondiente a los cursos de tipo de teora, que se puede dictar el curso c C.
practica y laboratorio. Ejemplo: TC = {
Ejemplo: L= { Algortmica I
Base de

Inteligencia

Datos Artificial
Teora Prctica Laboratorio Periodo 1 1 0 0
} Periodo 2 1 0 0
IX. Sea T = {1,..., t} w Z el vector de periodos de 1 0 0
Periodo 6 0 1 0
tiempo en el que se puede dictar un curso cualquie-
Periodo 7 0 1 0
ra c C.
0 1 0
Ejemplo: T = { Periodo 11 0 0 1
Periodo 1 Periodo 2 Periodo 84 Periodo 12 0 0 1

Lunes 8am 9am Lunes 9am 10am Sbado 9pm 10pm 0 0 1
} Periodo 15 1 0 0
X. Sea I= {i1,...,in} el vector de das de la semana que ...
agrupa diferentes periodos. Cada i I contiene un }
conjunto de periodos Ti T. Dos das distintos no XV. Sea TD la matriz de periodos de tiempo t T co-
pueden tener periodos iguales, por ejemplo sea Ti1 rrespondiente a la disponibilidad horaria del docen-
y Ti2 dos periodos pertenecientes a los tipos I1 y I2, te para dictar un curso c C.
con I1 I2 debe ocurrir que Ti1 Ti2 = 0.
Ejemplo: TD = {
Definimos de antemano I= {il, im, ie, ij, iv, is}, cada Csar Augusto Alcntara
Luis Alarcn Loayza
elemento correspondiente a los das lunes, martes, Loayza
mircoles, jueves, viernes y sbado. Periodo 1 0 0
Periodo 2 0 0
Ejemplo: I= {
0 0
Lunes Martes Mircoles Jueves Viernes Sbado Periodo 6 1 0
} Periodo 7 1 0
XI. Sea D = {1,...,d} d Z el vector de docentes que 1 0
pueden dictar un curso cualquiera c C. Periodo 11 0 1
Periodo 12 0 1
Ejemplo: D= {
0 1
Jaime Pariona Quispe Daniel Quinto Pasce Periodo 15 0 0
}
XII. Sea A = {1,...,a} a Z el vector de aulas donde }
se puede dictar un curso cualquiera c C. XVI.Sea K = {k1,...,ka} k Z el vector de capacida-
Ejemplo: A= { des de las diferentes aulas.
Aula 101 Aula 102 Aula 103 Aula 104 Ejemplo: K= {
} 50 alumnos (Aula 101) 50 40 30
XIII.Sea DC la matriz de docentes d D que dictan el }
curso c C.
XVII.Sea Q = {q1,...,qc} q Z el vector de cantidad
Ejemplo: DC= { mxima de alumnos por curso.
Jaime Pariona Gilberto Salinas Azaa Ejemplo: Q= {
Algortmica I 0 0
0 0 50 alumnos (Algortmica I) 50 50 40
Base de Datos 1 0 }
0 0
XVIII.Sea H = {h1,...,hc} h Z el vector de cantidad
Anlisis de Sistemas 0 1
0 0 de horas semanales que se le asigna a cada uno
} de los cursos.

40
RISI 7(1), 37 - 56 (2010) Sistema de apoyo a la generacin de horarios basado en algoritmos genticos

Ejemplo: H= { Ejemplo: PrvCD= {


6 horas (Algortmica I) 5 5 3 Augusto Cortez
Luis Alarcn Loayza
Vasquez
} Algortmica I 0 0
XIX.Sea MHD = {p1,...,pd} p Z el vector de cantidad 0 0
mxima de horas que debe dictar semanalmente ALgoritmica III 1 0
0 0
un docente d D.
Anlisis de Sistemas 0 1
Ejemplo: MHD = { 0 0
7 horas ( Jaime Pariona Quispe ) 8 6 4 Proyecto de Tesis I 0 1
}
}
XX. Sea NHD = {n1,...,nd} n Z el vector de cantidad
mnima de horas que debe dictar semanalmente un XXIV.Sea PrvTC el vector de asignaciones previas de
docente d D. un curso c C que se dicta en el periodo t T.
Ejemplo: NHD = { Ejemplo: PrvTC = {
Base de Inteligencia
5 horas ( Lucecita del Pino ) 4 3 3 Algortmica I
Datos Artificial
} Periodo 1 1 0 0
Periodo 2 0 0 0
XXI.Sea S = {s1,...,sn} el vector de semestres (o ciclos
0 0 0
acadmicos) que est asociado a los diferentes
Periodo 6 0 0 0
cursos. Cada s S contiene un conjunto de cursos Periodo 7 0 0 0
Cs C, que no pueden ser programadas en un mis- 0 0 0
mo periodo de tiempo. Dos semestres distintos no Periodo 11 0 0 1
pueden tener cursos iguales, por ejemplo sea Cs1 y Periodo 12 0 1 0
Cs2 dos cursos pertenecientes a los semestres S1 y 0 0 0
S2, con S1 S2 debe ocurrir que Cs1 Cs2 = 0. }
Definimos de antemano S= {s1,s2,s3,s4,s5,s6,s7,s8,s9,s XXV.Sea DTC el vector de periodos deseables t T
10
}, cada elemento correspondiente a los cursos de donde un curso c C se pueda dictar.
los semestres del 1 al 10.
Ejemplo: DTC = {
Ejemplo: S = { Base de Estructura de
Algortmica I
Datos datos
Semestre I Semestre II Semestre III Semestre X
Periodo 1 1 0 0
} Periodo 2 1 0 0
XXII.Sea M = {m1..,mn} el vector de tipos para indicar 0 0 0
las clases de aulas existentes. Cada m M contie- Periodo 20 0 1 0
ne un conjunto de aulas Am A. Dos tipos distintos Periodo 21 0 1 0
pueden tener aulas iguales, por ejemplo sea Am1 y 0 0 0
Am2 dos aulas pertenecientes a los tipos M1 y M2, Periodo 39 0 0 1
Periodo 40 0 0 1
con M1 M2 puede ocurrir que Am1 Am2 0.
0 0 0
Definimos de antemano M={mt,mp,ml}, cada ele-
}
mento correspondiente a las aulas de tipo teora,
practica y laboratorio. Parmetros
Ejemplo: M = { Definimos los siguientes parmetros que corresponden
Teora Prctica Laboratorio
a cada uno de los recursos involucrados:
} y = cantidad de periodos semanales
XXIII.Sea PrvCD el vector de asignaciones previas z = cantidad de aulas,
de docentes d D que dictan el curso c C. n = cantidad de cursos,
p = cantidad de docentes, y, z, n, p Z

41
Revista de Ingeniera de Sistemas e Informtica vol. 7, N. 1, Enero - Julio 2010

Variables de decisin [DC = Matriz de docentes y cursos]


Tenemos Xijkl como variables binario-valoradas: 1, si X i jkl = DC jk
asignan un aula i, al curso j, un docente k, en el periodo
l. X i jkl = 1, i A, l T , j C , k D
1 si el aula i es asignada al curso j con el docen- (ROG4)
te k en el periodo l. Todo docente k debe tener asignado un curso j dentro
Xijkl = 0 si no. de su disponibilidad de tiempo.
i = {1,.., z}, j ,= {1,.., n}, k = {1,.., p}, l = {1,.., y} [TD = Matriz de docentes y periodos de tiempo]

X i jkl = TD jk
Variable de duracin
X i jkl = 1, i A, l T , j C , k D
Tenemos Wijkl tiempo de ocupacin del aula i por el cur-
(ROG5)
so j con el docente k en el periodo l.
Todo curso j debe tener una cantidad de alumnos Q
RZ matriculados que no sobrepase la capacidad K del aula
Wijkl = i.
i = {1,.., z}, j ,= {1,.., n}, k = {1,.., p}, l = {1,.., y} X ijkl <= 1 + (K i - Q j )
Modelamiento de Restricciones Obligatorias
X i jkl = 1, i A, l T , j C , k D
Este modelamiento se dar en funcin de las restriccio-
(ROG6)
nes obligatorias mencionadas anteriormente:
Todo curso j debe cumplir con una cantidad de horas
Todo curso j que se dicta en un periodo especfico l debe semanales H.
tener asignado a lo ms un docente k en un aula i.

z p y
p
X
z
* Wi jkl = H j
X
i =1 k =1
i jkl 1
i =1 k =1 l =1
i jkl

j C , l T (ROG1) j C (ROG7.a)
Todo docente k que ensea en un periodo especfico l
debe tener asignado a lo ms un curso j en un aula i. Todo curso j cuya cantidad de horas acadmicas sea
par se le asignar bloques de dos horas diarias hasta
z n cubrir la totalidad, sino se le asignar un da de tres
X
i =1 j =1
i jkl 1 horas y el resto de dos horas.

W ijkl = 2 + H j mod2
k D, l T (ROG2)
Toda aula i en un periodo especfico l debe tener asig- i A, l T , j C , k D (ROG7.b)
nado a lo ms un curso j y un docente k.
Todo curso j debe tener asignado un bloque de horas a
lo ms una vez dentro de los periodos [a,b] que perte-
n p
necen a un da de la semana I.
X
j =1 k =1
i jkl 1
z p b
i A, l T (ROG3) X
i =1 k =1 l =a
i jkl 1
Todo docente k debe tener asignado un curso j que co-
rresponda a su preferencia.

42
RISI 7(1), 37 - 56 (2010) Sistema de apoyo a la generacin de horarios basado en algoritmos genticos

j C , a, b T [a, b] I (ROG9) p b z
Todo curso j debe ser nicamente asignado en una aula
i con un docente k desde que inicia en un periodo a
X
k =1 j = a i =1
i jkl 1
hasta la finalizacin de su tiempo de duracin W.
a +Wijka
l T , a, b C [a, b] S [a, b] G
X
l =a
i jkl 1 (ROE4)

Existen asignaciones previas de un curso j a un deter-


X i jka = 1, i A, l , a T , j C , k D minado perodo l y un aula i.
(ROG10) PrvCDi jkl = X ijkl
Todo docente k tiene una cantidad mnima de horas
NHD y una cantidad mxima de horas MHD de dictado X i jkl = 1, i A, l T , j C , k D
de clases. [W = Vector de ocupacin del aula i por el (ROE5)
curso j con el docente k en el periodo l]
Existen asignaciones previas de un docente k a un de-
terminado perodo l y un curso j.
z p y z p y

X
i =1 j =1 l =1
i jkl * Wi jkl MHDk X i jkl * Wi jkl NHDk
i =1 j =1 l =1
PrvTCi jkl = X ijkl
k D (ROE1)
X i jkl = 1, i A, l T , j C , k D
Todo curso j de tipo teora Lt debe ser asignado a un (ROE6)
aula i de tipo no laboratorio Mt.
L jT = M iT Los cursos son clasificados en los turnos de maana,
tarde y noche segn el semestre al que pertenecen
X i jkl = 1, i A, l T , j C , k D X i jkl = TTC jl
(ROE2.a)
X i jkl = 1, i A, l T , j C , k D
Todo curso j de tipo prctica Lp debe ser asignado a un ... (ROE7)
aula i de tipo no laboratorio Mp.
Modelamiento de Restricciones Deseables
L jP = M iP
Este modelamiento se dar en funcin de las restriccio-
nes deseables mencionadas anteriormente:
X i jkl = 1, i A, l T , j C , k D
(ROE2.b) Todo curso j que pertenece a un rango inicial a y rango
final b no debe ser asignado en un mismo periodo l con
Todo curso j de tipo laboratorio Ll debe ser asignado a respecto a otro rango inicial c y un rango final d que
un aula i de tipo laboratorio Ml. corresponden a semestres S consecutivos.

L jL = M iL p b z p d z

X i jkl = 1, i A, l T , j C , k D X i jkl + X i jkl 1


k =1 j =a i =1 k =1 j =c i =1
(ROE3)
l T , a, b, c, d C [a, b],[c, d ] S (RDG1)
Todo curso j dentro de un rango con valor inicial a y
Los bloques de un curso deben de distribuirse adecua-
un valor final b que pertenece a un semestre S y a un
damente durante la semana.
Grupo G debe ser asignado a un aula i y un docente k
y no debe coincidir con otro rango de cursos de otro Vi das que ocupa el curso en la semana / (ultimo da
semestre y con ningn otro grupo. de la semana que ocupa el curso-primer da de la se-

43
Revista de Ingeniera de Sistemas e Informtica vol. 7, N. 1, Enero - Julio 2010

Existen a lo mximo 3 grupos por cada curso a pro-


mana usado para el curso) Vs j C (RDG2) gramar.
Minimizar el nmero de horas libres entre el fin de una Los cursos a programar se pueden dictar en las diferen-
clase y el inicio de otra. tes modalidades de tipo teora, practica y laboratorio
Bi Total de horas ocupadas por algn curso/ (ultima Existen un total de 84 periodos de tiempo posibles que
hora ocupada del da por algn curso - primera hora van desde el lunes a las 8 am. hasta el sbado a las
10:00 pm. definiendo la duracin por periodo de 60 mi-
ocupada del da por algn curso) Bs i I nutos.
(RDG3)
Los diferentes periodos de tiempo son contenidos en
Todo curso j debe ser dictado en un periodo l determi- los das lunes, martes, mircoles, jueves, viernes y s-
nado. bado.
DTC jl = X ijkl X i jkl = 1 (RDG4) y (RDE1) Se cuenta con un total de una plana de 101 docentes.
Se cuenta con un total de 25 aulas hbiles para dictar
las clases
Funcin objetivo Son 10 semestres (ciclos acadmicos) en total.
Funcin objetivo global Existen tres clasificaciones diferentes de aulas, de teo-
N
ra, prctica y laboratorio.
fog ( x) = fol ( x) Parmetros
x =1 84 = cantidad de periodos semanales
x = {1,.., N } 25 = cantidad de aulas,

Donde x representa cada elemento de la matriz, N re- 68 = cantidad de cursos,


presenta el nmero total de elementos en la matriz de 101 = cantidad de docentes, x,y,n,p Z
cuatro dimensiones.
Variables de decisin
Funcin objetivo local
Tenemos Xijkl como variables binario-valoradas: 1, si
fol ( x) = ( chsl ( x) + chsg ( x) / 2) * ( chpl ( x) + chpg ( x) / 2) asignan una aula i, al curso j, un docente k, en el pe-
riodo l.
En donde, chsl y chpl representa los conflictos de aulas
y docentes en un mismo semestre, respectivamente, 1 si el aula i es asignada al curso j con el docente k en
mientras que chsg y chpg representan los conflictos de el periodo l.
aulas y docentes entre semestres. Xijkl = 0 si no.

Criterio de optimizacin
i = {1,.., 25}, j , = {1,..,68}, k = {1,..,101}, l = {1,..,84}
Min( fog ( x) = w , donde w es una constante Variable de duracin
cualquiera.
Tenemos Wijkl tiempo de ocupacin del aula i por el cur-
Modelo Particular so j con el docente k en el periodo l.
Una vez definido el modelo general debemos adaptarlo RZ
a la FISI, dando como resultado un modelo particular el Wijkl = 0
cual acota an ms el dominio del problema.
i = {1,.., 25}, j , = {1,..,68}, k = {1,..,101}, l = {1,..,84}
Conjunto de Datos
Se cuenta con un total de 68 cursos a programar.

44
RISI 7(1), 37 - 56 (2010) Sistema de apoyo a la generacin de horarios basado en algoritmos genticos

Modelamiento de Restricciones Obligatorias


Segn las restricciones obligatorias mencionadas an- j C , a, b T [a, b] I (ROG9)
teriormente:
a +T jlka
25 101

X i jkl 1
X
l =a
i jkl 1
i =1 k =1
25 101 b
j C , l T (ROG1) X
i =1 k =1 l = a
i jkl 1
25 68

X
i =1 j =1
i jkl 1
X i jka = 1, i A, l , a T , j C , k D
(ROG10)
k D, l T 25 68 84 25 68 84

X i jkl *Wi jkl MHDk X i jkl *Wi jkl NHDk


(ROG2)

i =1 j =1 l =1 i =1 j =1 l =1
68 101

X
j =1 k =1
i jkl 1
k D (ROE1)

L jT = M iT
i A, l T (ROG3)
X i jkl = 1, i A, l T , j C , k D
X i jkl = 1, i A, l T , j C , k D (ROE2.a)

(ROG4) L jP = M iP

X i jkl = TD jk X i jkl = 1, i A, l T , j C , k D
(ROE2.b)
L jL = M iL
X i jkl = 1, i A, l T , j C , k D
X i jkl = 1, i A, l T , j C , k D
(ROG5)
(ROE3)
X i jkl = 1, i A, l T , j C , k D
25 b 101
(ROG6)
X
i =1 j = a j =1
i jkl 1
25 101 84
X ijkl = 1 + (K i - Q j )
X
i =1 k =1 l =1
i jkl * Ti jkl = H j
l T , a, b C [a, b] S [a, b] L
(ROE4)

j C (ROG7.a) PrvCDi jkl = X ijkl PrvTCi jkl = X ijkl


T ijkl = 2 + H jmod2 X i jkl = 1, i A, l T , j C , k D
(ROE5)
i A, l T , j C , k D
(ROG7.b)

45
Revista de Ingeniera de Sistemas e Informtica vol. 7, N. 1, Enero - Julio 2010

En donde, chsl y chpl representa los conflictos de aulas


X i jkl = 1, i A, l T , j C , k D y docentes en un mismo semestre, respectivamente,
(ROE6) mientras que chsg y chpg representan los conflictos de
salones y profesores entre semestres.
X i jkl = TTC jl
Criterio de Optimizacin
X i jkl = 1, i A, l T , j C , k D
... (ROE7) Min( fog ( x) = 0
Hiptesis General
Modelamiento de Restricciones Deseables
La automatizacin del proceso de generacin de hora-
Segn las restricciones deseables mencionadas ante- rios de clases con un margen de error de 2%, mediante
riormente: el uso de algoritmos genticos, reducir el tiempo y los
25 b 101 25 d 101 recursos empleados, adems de aumentar la calidad
X
i =1 j = a k =1
i jkl + X i jkl 1
i =1 j = c k =1
de los mismos y elevar el grado de satisfaccin por par-
te del alumnado y el docente.
l T , a, b, c, d C [a, b], [c, d ] S (RDG1) Variables e Indicadores
Vi das que ocupa el curso en la semana/ (ultimo da A continuacin detallaremos la variable independiente y
de la semana que ocupa el curso-primer da de la se- las variables dependientes que forman parte de la hip-
mana usado para el curso) Vs j C (RDG2) tesis planteada, as como tambin el indicador asocia-
do a dichas variables:

Bi Total de horas ocupadas por algn curso/ (ultima Variable independiente 1: La automatizacin del pro-
hora ocupada del da por algn curso - primera hora ceso de generacin de horarios de clases.

ocupada del da por algn curso) Bs i I Indicador: Nmero de tareas manuales realizadas
(RDG3) en el proceso de generacin de horarios.
DTC jl = X ijkl Variable Dependiente 1: Margen de error del 2%.
X i jkl = 1 Indicador: Numero de clases del horario acadmi-
(RDG4) y (RDE1) co semestral que infrinjan una o ms restricciones del
Funcin Objetivo problema.
Funcin objetivo global Variable Dependiente 2: Reducir el tiempo de genera-
14422800 cin de horarios.
fog ( x) = fol ( x)
x =1
Indicador: Tiempo en la generacin de horarios de
clases.
x = {1,..,14422800} Variable Dependiente 3: Reducir el uso de recursos
implicados en la elaboracin de los horarios de clases
Donde x representa cada elemento de la matriz, N re-
Indicador: Costo de los recursos involucrados en la
presenta el nmero total de Elementos en la matriz de
elaboracin de horarios de clases.
cuatro dimensiones. El valor 14422800 es producto de
multiplicar las 25 aulas por los 68 cursos por los 101 Variable Dependiente 4: Aumentar la calidad de la
docentes por los 84 periodos. solucin.
Funcin objetivo local Indicador: Numero de clases del horario acadmi-
co semestral que infrinjan una o ms restricciones del
fol ( x) = ( chsl ( x) + chsg ( x) / 2) * ( chpl ( x) + chpg ( x) / 2)
problema.
Variable Dependiente 5: Aumentar la satisfaccin del

46
RISI 7(1), 37 - 56 (2010) Sistema de apoyo a la generacin de horarios basado en algoritmos genticos

alumnado. Componentes de un algoritmo gentico


Indicador: Nmero de reclamos presentados por Un Algoritmo gentico tiene cinco componentes bsi-
los alumnos. cos:
Variable Dependiente 6: Aumentar la satisfaccin del 1. Una representacin de las soluciones potenciales
docente del problema.
Indicador: Nmero de reclamos presentados por Un procedimiento para crear una poblacin inicial
los docentes. de posibles soluciones.
2. Una funcin de evaluacin que permite clasificar
Marco Terico las soluciones en trminos de su aptitud.
En este captulo se presentarn los conceptos bsicos 3. Un conjunto de operadores de evolucin que alte-
que se requieren para abordar los algoritmos genti- ran la composicin de los individuos de la poblacin
cos, as como un ejemplo que permita comprender a travs de las generaciones.
cmo aplicarlo a un problema de eleccin. Una configuracin paramtrica de elementos ta-
les como el tamao de la poblacin, probabilidad
Introduccin a los algoritmos genticos
de cruzamiento, probabilidad de mutacin, criterio
Esta tcnica se basa en los mecanismos de seleccin de parada, etc.
que utiliza la naturaleza, de acuerdo a los cuales los in-
Algoritmo gentico simple
dividuos ms aptos de una poblacin son los que sobre-
viven, al adaptarse ms fcilmente a los cambios que se Existen mltiples propuestas y variantes de algoritmos
producen en su entorno. La tcnica de los Algoritmos genticos. En este parte estudiaremos la propuesta ori-
Genticos se encuentra dentro de un marco ms amplio ginal de Goldberg (1989), conocida como ALGORITMO
que viene a ser la Inteligencia Artificial, y ms an en la GENTICO SIMPLE.La representacin tradicionalmen-
rama que se ha denominado Computacin Evolutiva. te utilizada es una cadena binaria. A la cadena general
se le llama cromosoma. A cada subcadena (posicin en
Definicin de algoritmos genticos la cadena general) se le denomina gen y al valor dentro
John Koza [12] define algoritmo gentico :Es un algo- de esta posicin se le llama alelo. La representacin
ritmo matemtico altamente paralelo que transforma es el genotipo que se corresponde con una solucin al
un conjunto de objetos matemticos individuales con problema (fenotipo). Existe un proceso de codificacin
respecto al tiempo usando operaciones modeladas de (y su inverso de decodificacin) que permite pasar de
acuerdo al principio Darwiniano de reproduccin y su- fenotipo a genotipo y viceversa.
pervivencia del ms apto, y tras haberse presentado de La codificacin especifica una funcin de correspon-
forma natural una serie de operaciones genticas de dencia fC: S {0,1}*, siendo S el espacio de soluciones
entre las que destaca la recombinacin sexual. del problema. La funcin inversa es la decodificacin
Un algoritmo gentico est compuesto por [22]: fD: {0,1}* S, puede ser una funcin parcial. La com-
plejidad de fC y de fD depender de las caractersticas
Mdulo evolutivo: Presenta un mecanismo de de-
del problema y de las variables a codificar.
codificacin que se encarga de interpretar la infor-
macin de un individuo y una funcin de evaluacin
que mide la calidad del mismo.
Mdulo poblacional: Posee una representacin Cromosoma
Gen 1 0 1 0
poblacional y las tcnicas necesarias para poder
(1 ms
manipularla como son la tcnica de representacin, posiciones)
el criterio de seleccin y de reemplazo. Aqu tam- Alelo
(0 1 en Codificacin Binaria)
bin se define el tamao de la poblacin y la condi-
cin de terminacin.
Mdulo reproductivo: Contiene los operadores Figura 1. Individuo gentico binario
genticos.

47
Revista de Ingeniera de Sistemas e Informtica vol. 7, N. 1, Enero - Julio 2010

Funcionamiento Algoritmo bsico


El proceso algortmico bsico del AG es como sigue: El Algoritmo Gentico Simple, tambin denominado
1. [Inicio] se genera la poblacin aleatoria de n cromo- Cannico, presenta un conjunto de pasos u opera-
somas (soluciones posibles para el problema). ciones que permiten hallar la solucin a un problema.
Dado un estado inicial y una entrada, a travs de pasos
2. [Aptitud] se evala la aptitud f (x) de cada cromoso- sucesivos y bien definidos se llega a un estado final,
ma x de la poblacin. obteniendo una solucin.
3. [Prueba] si la condicin de trmino est satisfecha,
se para el algoritmo, se devuelve la mejor solucin A continuacin mostraremos el procedimiento bsico
de la poblacin actual y se va al paso 7. del AG:
4. [Nueva poblacin] se crea una nueva poblacin re-
Begin
t:=0
pitiendo los siguientes pasos, hasta que se cumpla Inicializar P(t) // Generar una poblacin inicial
la condicin de parada. Evaluar P(t) // Computar la funcin de evaluacin
Mientras no sea condicin de trmino, repetir
a. [Seleccin] se selecciona dos cromosomas pa- t : = t+ 1
dres, de una poblacin, segn su aptitud (cuan- Seleccionar P(t+1) a partir de P(t)
to mejor es la aptitud, mayor es la probabilidad Emparejamiento sobre P(t) // Obtener descendientes
Aplicar Mutacin sobre P(t) // Segn probabilidad
de ser seleccionado). Sustituir P(t) por P(t+1) // Insertar la nueva generacin
b. [Emparejamiento] con una probabilidad de em- Evaluar P(t) // Computar la funcin de evaluacin
parejamiento, los padres se emparejan para
Fin Mientras
formar a un nuevo descendiente (hijos). Si no End
se realiza emparejamiento alguno, el descen-
diente es la copia exacta de los padres. Figura 3. Pseudocdigo de un algoritmo gentico
c. [Mutacin] con una probabilidad de mutacin, el
nuevo descendiente muta (en alguna posicin P(t) es la poblacin de individuos en la generacin t;
de su cromosoma). Emparejamiento y Mutacin son operadores genticos
que permiten recombinar la informacin contenida en
5. [Sustituir] la nueva poblacin generada es aplicada
los cromosomas.
para otra iteracin del algoritmo.
6. [Bucle] se va al paso 2. En la aplicacin de algoritmos genticos, se necesita una
codificacin o representacin del problema que resulte
7. Fin del algoritmo.
adecuada al mismo. Adems se requiere una funcin de
evaluacin o de adaptacin al problema, la cual asigna
COMIENZO
un valor a cada posible solucin codificada indicando la
Inicio
bondad de la solucin. Durante la ejecucin del algoritmo,
los padres deben ser seleccionados para la reproduccin
Generacin n cromosomas
Sustituir
o intercambio gentico lo que producir nuevos hijos o
soluciones, a los cuales, con cierta probabilidad, se les
Generacin n+1
aplicar una mutacin. El resultado de la combinacin
Aptitud
de los pasos anteriores ser un conjunto de individuos,
Mutacin

Evaluacin de fitness Descendiente muta


posibles soluciones al problema, los cuales pasarn a
Emparejamiento
formar parte de la siguiente generacin.
Formar nuevo individuo
Seleccin Operadores Genticos
Aptitud - Probabilidad
Prueba
Los operadores genticos consisten en los mtodos u
Terminar? operaciones que se pueden ejecutar sobre una pobla-
cin y se dividen en 4 categoras: Seleccin, Empareja-
FIN
miento, Mutacin y Reemplazo.
Figura 2. Funcionamiento de un algoritmo gentico Seleccin: Proceso que escoge los miembros de la

48
RISI 7(1), 37 - 56 (2010) Sistema de apoyo a la generacin de horarios basado en algoritmos genticos

poblacin que sern utilizados para la reproduccin. ROG7. Un curso debe cumplir con una cantidad de
Su meta es dar ms oportunidades de seleccin a los horas semanales requeridas. Segn sea el caso si el
miembros ms aptos de la poblacin. nmero de horas acadmicas es par se asignar dos
horas diarias hasta cubrir la totalidad, sino se asignar
Emparejamiento: Consiste en unir de alguna forma los
un da de tres horas y el resto de dos horas. A cada uno
cromosomas de dos padres para formar dos descen-
de estos grupos de horas se les llamar bloques.
dientes. Existen diversas variaciones, dependiendo del
nmero de puntos de divisin a emplear, la forma de Definiendo de este modo la unidad a la cual se asignar
ver el cromosoma, etc. los recursos y asegurando que el algoritmo asignar
recursos a todas las clases sin excepcin con la finali-
Mutacin: Se encarga de modificar en forma aleatoria
dad de generar un horario factible, entonces se tendrn
uno o ms genes del cromosoma de un descendiente.
cumplidas de antemano la restriccin obligatoria ante-
Reemplazo: Es el mtodo por el cual se insertan los rior as como la siguiente:
hijos en la poblacin; por ejemplo, mediante la elimina-
ROG8. Las horas de un bloque para un determinado
cin del individuo ms dbil o al azar.
curso en un mismo da deben de ser consecutivas ade-
ms de ser asignados a un mismo docente y aula
3. RESULTADOS Y DISCUSIN
Esto nos permitir ahorrar tiempo computacional de-
Adaptacin del algoritmo bido a que se evitar la evaluacin del cumplimiento
de estas restricciones, y adems se podr simplificar la
Tomando en cuenta las bases tericas mostradas en implementacin del algoritmo.
los captulos 2 y 3, la estructura del problema observa-
do en el capitulo 1 y considerando los motivos por los Mediante un ejemplo sencillo veremos la generacin
cuales se seleccion los Algoritmos Genticos, la parte de las clases y su correspondiente estructura: Consi-
de este captulo tiene como objetivo disear un algorit- deremos el curso de Algortmica I, el cual tiene 3 tipos
mo que trate con eficacia y eficiencia el problema. Las definidos y se le aperturarn 3 grupos en el presente
modificaciones que se realicen al algoritmo se tratarn semestre, adems en la siguiente tabla tenemos las
en los siguientes puntos. horas semanales de dictado por cada tipo definido para
el curso:
Unidad de asignacin Tipo de Curso Horas de Dictado
En nuestro caso el elemento al cual le vamos a asignar Teora 5
los recursos (docentes, horarios y aulas) es la clase; la Practica 3
cual se define como la combinacin de un curso, el tipo Laboratorio 4
de ste, la cantidad de horas a dictar y el grupo. Tabla 1. Horas de Dictado de Algortmica I
CURSO TIPO DE CURSO HORAS DE DICTADO GRUPO Ahora tomaremos en cuenta lo expresado en la restric-
cin ROG7 : Para el curso de Algortmica I de tipo teo-
Fiigura 4. Estructura de la unidad de asignacin (clase)
ra se tiene asociado una cantidad de horas de dictado
impar, por lo tanto se tendra una clase de teora de tres
Una vez definido esto, nuestro algoritmo se encargar
horas y otra de dos. Por consiguiente el total de clases
de asignar un docente, un horario y un aula determina-
generadas seran:
da a cada una de las clases, los cuales son necesarios
para llevarla a cabo. Curso Tipo Horas Grupo
Algortmica I Teora 3 1
El proceso que generar el universo de clases, que Algortmica I Teora 2 1
servirn de elementos de entrada al algoritmo, ser un Algortmica I Practica 3 1
procedimiento lineal. Este tomar en cuenta los tipos Algortmica I Laboratorio 2 1
de curso (teora, prctica y laboratorio), la cantidad de Algortmica I Laboratorio 2 1
horas de dictado por cada tipo, los grupos que se aper- Algortmica I Teora 2 2
turen para el semestre en curso y la siguiente restric- Algortmica I Teora 3 2
cin obligatoria: Algortmica I Practica 3 2

49
Revista de Ingeniera de Sistemas e Informtica vol. 7, N. 1, Enero - Julio 2010

Algortmica I Laboratorio 2 2 plan las restricciones relacionadas a los periodos de


Algortmica I Laboratorio 2 2 tiempo, cursos y docentes; adems se debe cerciorar
Algortmica I Teora 2 3 que cada horario no tenga ms asignaciones que aulas
Algortmica I Teora 3 3 disponibles, dado de que si esto no se verifica entonces
Algortmica I Prctica 3 3 no existira solucin posible para la siguiente fase.
Algortmica I Laboratorio 2 3
Algortmica I Laboratorio 2 3 Tercera fase asigna aulas a las clases, las cuales ya
poseen horarios y docentes asignados como resultado
Tabla 2. Clases generadas para el curso de Algortmica I de la primera y segunda fase.
Separacin en Sub-fases Puesto que existe un mayor nmero de restricciones
En este punto veremos cmo el problema, que como implicadas con los horarios, resulta mejor considerar
ya hemos mencionado anteriormente corresponde a esta fase en segundo lugar debido a que controlare-
la asignacin de recursos (docentes, aulas, horarios) mos las restricciones de los docentes con respecto a
a las clases, ser simplificado debido a que no se asig- los horarios que no se pudieron controlar en la primera
narn todos en un mismo momento. Dicha asignacin fase. Y no se ha considerado como ltima fase debido
se realizar uno a uno a travs de diferentes fases de- a que no hay restricciones en el uso de las aulas con
limindose el espacio de soluciones cada vez que se respecto a los horarios considerados.
van asignando dichos recursos. En la fase uno encontramos restricciones que estn
A continuacin definimos 3 fases segn los recursos relacionadas con la preferencia de dictado de cursos
a asignar: por parte de los docentes y la disponibilidad de stos.
En la fase dos, referida a los horarios, hay restricciones
Fase 1: Asignacin de docentes a las clases tales como la determinacin de la facultad a programar
Fase 2: Asignacin de horarios a las clases algunos cursos solamente por la maana por la tarde,
Fase 3: Asignacin de aulas a las clases la no posibilidad de programarlos en ciertas horas, en-
tre otras. En la fase tres podemos manejar restricciones
relacionadas a la necesidad de ciertas clases por hacer
Clase Docente uso de aulas especficas. Esto puede ser ejemplificado
con la programacin de aulas para las clases de labo-
ratorio de ciertos cursos. Sin embargo, debemos obser-
var que hay relativamente pocas restricciones referidas
Clase Horario a las asignaciones de las aulas porque el nmero de
aulas en la facultad es grande. De hecho, la asignacin
de aulas a las clases que tienen ya horarios asignados
es una tarea de menor complejidad comparada a la de
Clase Aula asignar horarios a las clases, igualmente ocurre con la
primera fase correspondiente a la asignacin de docen-
tes la cual tambin es de menor complejidad.
Figura 5. Fases para la asignacin de clases a los recursos Si quisiramos atacar el problema en una sola fase
implicara validar todas las restricciones obligatorias
A continuacin veremos con ms detalle cada una de por la asignacin de horarios, docentes y aulas a las
las fases y la forma como stas interactan: clases, tendramos entonces restricciones obligatorias
Primera fase asigna los docentes a las clases, toman- tales como que no se debe asignar dos o ms clases
do en cuenta que todas las restricciones obligatorias en el mismo horario y aula, asignar a un docente a
correspondientes al docente y al curso se cumplan. La ms de una clase en el mismo horario. Puesto que
solucin resultante pasar a la un algoritmo gentico es una tcnica metaheurstica,
esto es absolutamente posible a lo largo del curso de
Segunda fase, la cual se encargar de asignar diver- su evolucin. Dado que penalizamos tal situacin, los
sos horarios a las clases cerciorndose de que se cum- algoritmos genticos se esfuerzan eventualmente a

50
RISI 7(1), 37 - 56 (2010) Sistema de apoyo a la generacin de horarios basado en algoritmos genticos

quitar tales asignaciones, pero esto est a expensas Es importante observar que los tres cromosomas son
de, posiblemente, cientos de iteraciones para encontrar iguales a nivel de estructura, pero aquello que los dife-
la solucin factible. Para ilustrar esta idea supongamos renciar ser el significado que tengan los alelos (valo-
que la asignacin del docente y horario ya estn defi- res de los genes) en cada fase; es decir, los alfabetos
nidos y ocurriese un conflicto de dos clases en un mis- usados en cada una de las fases sern distintos.
mo horario y aula, simplemente deberamos cambiar el
aula de clases a otra aula con el mismo horario; esto Codificacin mediante alfabetos duros
es cierto especialmente para esas clases que no tienen Como ya se ha mostrado tericamente existe una codi-
preferencia alguna de lugar. Este cambio es siempre ficacin directa y una codificacin indirecta, siendo sta
posible, y se hace a menudo, siempre y cuando el n- ltima la ms comn. En la codificacin indirecta se tra-
mero de las clases asignadas a un horario no exceda za la gama de valores posibles en una dimensin ms
el nmero de las aulas disponibles en ese horario. Lo simple, a menudo un espacio binario. La representa-
mismo ocurre con los docentes, podemos cambiar el cin binaria tiene ventajas de cmputo y de programa-
horario asignado a otro horario con el mismo docente cin debido a que presenta una estructura ms simple;
siempre y cuando los horarios disponibles para el do- sin embargo, cuando tratamos casos ms complejos es
cente no sean sobrepasados. difcil tratarlo a travs de una codificacin indirecta de-
Actualmente, el nmero de aulas disponibles es el bido a la complejidad de cmputo que implicara tener
mismo en cualquier horario, no cambia con respecto que traducir cada representacin.
al tiempo, en otras palabras las aulas se encuentran Para nuestro caso, notamos que la utilizacin de una
disponibles en su totalidad para todos los horarios con- representacin directa, debido a su facilidad de eva-
siderados; mientras que para el caso de los docentes luacin, permite el diseo de un sistema ms complejo
y su disponibilidad, stos son considerados datos ms tanto en sus condiciones y sus objetivos. Es por ello
voltiles y complejos. Por lo tanto, podemos ahorrar que para nuestro modelo consideraremos una codifica-
centenares de iteraciones adicionales de heurstica, cin directa en lugar de una codificacin indirecta.
separando el problema en fases.
Alfabeto utilizado
La simplificacin y la solucin del problema, dividindo-
lo en estas tres fases fomentan el hallazgo de solucio- En base a los requisitos particulares, y luego de esta-
nes de una manera ms rpida, puesto que la combi- blecida la arquitectura y codificacin a utilizar, mostra-
nacin de los conflictos de los docentes, de los horarios remos el alfabeto que se emplear en cada una de las
y de las aulas no se considera simultneamente, sino fases:
en diversas fases.
Fase 1 Fase 2 Fase 3
Representacin del problema el alfabeto constar Se usara la misma Se usara la misma
de enteros que re- forma de represen- forma de repre-
La solucin se realiza en tres fases, por tanto, tendre- presentarn a cada tacin para los ho- sentacin para las
mos que definir tres cromosomas, uno para cada fase. docente, los cuales rarios aulas
sern asignados
Cada uno de los cromosomas tendr una cantidad de
a cada una de las
genes igual al nmero de clases y el valor de estos ge- clases en el semes-
nes (alelos) ser igual al recurso asignado a la clase. tre actual. Con esto
Una ilustracin spera de un cromosoma es como si- tendremos un alfa-
beto especfico aso-
gue:
ciado a cada clase a
la cual le vayamos
Clase 1 Clase 2 Clase 3 Clase N asignar un docente

De esta manera logramos que el valor que vaya a to-


Recurso i Recurso j Recurso k Recurso l mar cada gen no se encuentre fuera del dominio esta-
blecido para cada recurso, ya que con una representa-
Figura 4.4. Representacin vectorial del cromosoma cin binaria podramos obtener un conjunto de valores
que no sean correctos y que no correspondan al rango

51
Revista de Ingeniera de Sistemas e Informtica vol. 7, N. 1, Enero - Julio 2010

de valores de los recursos. Por ejemplo, tenemos un Inicializacin de la poblacin


conjunto de 20 docentes cuyo alfabeto estar definido
La primera etapa en un Algoritmo Gentico es la gene-
desde el valor 1 al 20 y si para ello usamos una com-
racin de la poblacin inicial, que como ya se mencion
binacin binaria para representar dichos valores, en-
se suele realizar de manera aleatoria. Aqu se darn
tonces podramos obtener valores que se encuentren
valores a todos los genes de los N cromosomas, donde
fuera de este rango.
N representa el tamao de la poblacin inicial, es decir,
Tambin puede suceder que a las clases no se les la cantidad de soluciones que se considerarn en cada
pueda asignar ciertas aulas o ciertos horarios o ciertos etapa.
docentes por algn motivo, entonces nosotros pode-
Como en nuestro caso se abordar el problema en tres
mos quitar esas combinaciones del alfabeto correspon-
fases diferentes teniendo para cada una de stas un
diente. Por ejemplo, en caso que queramos asignar un
algoritmo gentico asociado, el cual se encargar de
docente a una clase, deberamos primero seleccionar
la asignacin de un recurso en particular (docentes,
al docente entre los que ya estn definidos; pero imagi-
horarios y aulas) a las clases, necesitaremos entonces
nemos que slo dos de ellos tienen preferencia para el
tambin tres fases de inicializacin.
dictado de dicha clase, entonces si quitamos ciertos va-
lores del alfabeto evitaramos que se asigne un docente Con respecto a la estructura del cromosoma, en nuestro
que no tenga preferencia por dicha clase. caso estar determinada por un arreglo de enteros para
cada una de las tres fases consideradas. Una primera
Esta clase de codificacin dura protege al modelo con-
apreciacin podra considerar la asignacin, a cada n-
tra la violacin de restricciones obligatorias, ahorrando
dice del arreglo, de valores aleatorios dentro del con-
de esta manera recursos computacionales y minimi-
junto de los enteros, desde 1 a un lmite superior que
zando el tiempo. Bajo este criterio es imposible que los
vendra a ser el nmero total del recurso segn la fase.
segmentos del cromosoma tomen valores fuera del es-
Por ejemplo consideremos que deseamos inicializar
pacio factible de soluciones. En nuestro problema time-
diez clases con docentes y contamos con una plana de
tabling, esto significa que si un docente desea ensear
veinte docentes, entonces tendremos un arreglo de lon-
solamente en los horarios de la maana, el algoritmo
gitud diez donde cada ndice del arreglo corresponder
gentico nunca le asignar una clase de la tarde en
a una clase, y el arreglo como sabemos representar al
toda su poblacin, desde la primera iteracin hasta la
cromosoma. Adems codificaremos cada docente del
ltima. La probabilidad de que no se cumpla esta res-
uno al veinte de manera consecutiva. Por lo tanto la
triccin es nula; sin embargo, esto tambin hace que al
inicializacin comenzara seleccionando un valor alea-
sistema le resulte difcil encontrar una solucin, puesto
torio entre uno y veinte para asignarlo al ndice 0 del
que se ocupar de generar los diversos espacios de
arreglo, luego escogeramos otro valor aleatorio en el
alfabetos que estarn asociados a las clases en cada
mismo rango y lo asignaramos al valor del ndice 1, y
una de sus fases.
as sucesivamente hasta completar el cromosoma con
Una vez detallada la conceptualizacin de nuestra idea valores y posteriormente formar todos los cromosomas
veamos las restricciones que se emplearn en cada de la poblacin inicial.
una de las fases, las cuales limitarn el uso de alfabe-
Con esto tendramos la poblacin lista para comenzar
tos en los diferentes genes de la poblacin y a su vez
a ejecutar el algoritmo, sin embargo vemos ciertas de-
no tendrn que ser tomadas en cuenta en la evaluacin
ficiencias en este mtodo. Imaginemos que queremos
de la solucin.
asignar un docente a la clase de Algortmica I y segn
En la fase uno (docente En la fase dos (horario en la fase tres (aula - el mtodo de inicializacin descrito, deberamos enton-
- clase), acotar la lista de - clase), anlogamente clase), la limitacin de ces asignarle aleatoriamente un docente entre los vein-
docentes que puedan a lo indicado en la fase las aulas en las que se
dictar una clase deter- uno, los horarios en los pueda dictar una clase, te ya definidos, Resulta que slo tres de ellos tienen
minada, nos permitir que se pueda dictar una nos permitir dejar de preferencia para el dictado de Algortmica I, entonces
dejar de lado la evalua- clase, nos permitir de- lado la evaluacin de las
cin de las siguientes jar de lado la evaluacin siguientes restricciones: podra suceder que se asigne en la poblacin inicial un
restricciones: de las siguientes restric- ROE2, ROE3, ROG6 docente que no tenga preferencia por el curso. Las op-
ROG4, ROG5, ROE6, ciones:
ROE7 y ROE5 ROE5, ROE7, ROG5,
ciones para el manejo de este error seran: desechar-
las, asignndoles una baja aptitud en el momento de la

52
RISI 7(1), 37 - 56 (2010) Sistema de apoyo a la generacin de horarios basado en algoritmos genticos

evaluacin, lo cual implicara su desaparicin en trmi- Otro aspecto a tener en cuenta, es la posibilidad de
nos estadsticos al cabo de unas pocas generaciones introducir en la poblacin inicial soluciones de buena
junto a la prdida de informacin valiosa que pudieran calidad, por ejemplo, procedentes de la experiencia
contener; o Repararlas, lo cual aparece como una tarea acumulada en procesos anteriores. Esta forma de intro-
costosa pues habr de ser realizada en una gran canti- ducir conocimiento especfico es muy til pues permite
dad de ocasiones a lo largo del proceso evolutivo. Nin- al algoritmo contar con informacin valiosa inicialmen-
guna de las alternativas parece ptima en s misma. te. No obstante debe ser realizado con cuidado, pues
sembrar la poblacin inicial con soluciones no aleato-
La opcin que proponemos consiste en evitar la ge-
rias puede alterar el proceso evolutivo al dirigir la bs-
neracin de este tipo de individuos no factibles. Este
queda hacia un determinado espacio.
problema podra evitarse si al momento de generar la
poblacin inicial no se tomarn en cuenta ciertos recur- 4. CONCLUSIONES
sos que por las restricciones previamente nombradas, La Facultad de Ingeniera de Sistemas e Informtica
sera imposible que se use para una determinada clase. de la UNMSM no utiliza herramientas computacionales
Usando el mismo ejemplo anterior para la clase de Al- para generar los horarios de clase, los cuales manejan
gortmica I debera asignarse un docente aleatorio pero un alto grado de complejidad durante su elaboracin.
no del conjunto total de veinte docentes sino solamente Es por esto que se plante desarrollar una herramienta
de los tres posibles que pueden dictar dicho curso. basada en algoritmos genticos, que permita cubrir las
Con esto estamos generando una poblacin inicial que necesidades existentes y en cuyo proceso de investi-
de antemano ya cumple ciertas restricciones, lo cual gacin se lleg a las conclusiones que se presentan a
aliviar la tarea del mtodo que evaluar las solucio- continuacin:
nes, ya que no sern tomados en cuenta durante la 1. Se construy un algoritmo que permite encontrar
evaluacin. Dado que si los cromosomas iniciales no soluciones buenas y/o consideradas aceptables
consideran estos valores, las poblaciones subsecuen- dentro del margen de error definido y restricciones
tes generadas nunca los tendrn presentes, con ello se planteadas. Con lo cual se deduce que el objetivo
pretende ahorrar tiempo en la ejecucin del algoritmo. general de esta investigacin, que es encontrar una
Esta solucin tiene la ventaja aadida de permitir elimi- solucin mediante el uso de algoritmos genticos
nar directamente soluciones de muy mala calidad sin al problema de asignacin de docentes, periodos y
necesidad de evaluarlas. aulas a los cursos, se ha cumplido a cabalidad.
Dado que la estructura del cromosoma es igual en cada 2. Otra conclusin, desprendida del proceso de inves-
fase, esto es, un arreglo de longitud igual al nmero de tigacin, est relacionada con la divisin del pro-
clases a las cuales se les va asignar un recurso, el m- blema en distintas fases. Inicialmente no se pudo
todo utilizado (mostrado en el ejemplo anterior) para la apreciar el impacto total de su aplicacin sobre el
inicializacin de la poblacin ser el mismo para cada problema, pero una vez concluida la investigacin
una de las fases. Lo que variar por cada fase, aparte se observ lo siguiente:
del recurso en particular, sern los alfabetos generados 2.1. La divisin por fases permite reducir el tiempo
para cada gen de los cromosomas; esto se realizar a de procesamiento y el uso de recursos; debido
travs de un procedimiento lineal que acotar dichos a que en la medida que se van encontrando so-
alfabetos. luciones en cada fase, las cuales resultan ser
El hacer uso de un alfabeto en particular para cada gen informacin de entrada de la fase subsecuente,
del cromosoma, en cualquiera de las tres fases, nos el espacio de soluciones se va acotando cada
permitir en gran medida ahorrar la evaluacin de un vez ms. La aplicacin de la tcnica divide y
gran nmero de restricciones, dado que las soluciones vencers result de gran ayuda al momento
iniciales elaboradas no presentarn la infraccin de de tratar de resolver el problema a partir de la
estas restricciones. Con lo cual podramos considerar solucin de subproblemas.
sta como una mejor solucin que simplemente el he- Otro logro conseguido gracias a la divisin en
cho de asignar valores aleatorios. fases fue la simplicidad obtenida en la imple-
mentacin del algoritmo, debido a que las res-

53
Revista de Ingeniera de Sistemas e Informtica vol. 7, N. 1, Enero - Julio 2010

tricciones relacionadas a los docentes, periodos 3. Una vez establecido el procesamiento del algorit-
y aulas fueron tomadas en cuenta de manera mo en un servidor, podr ser organizado sobre una
separada unas de otras, de acuerdo al recurso arquitectura de procesamiento distribuida. En este
asociado a cada fase. punto se presentan varias opciones, una es armar
2.2. Se pudo observar una debilidad al mtodo. una arquitectura de computacin paralela (compu-
Pues tal vez al momento de acotar el espacio tacin grid) ya que proporciona una gran cantidad
de soluciones mediante la generacin de una de recursos segn se necesite, claro que este mo-
solucin parcial por parte de una fase anterior, delo sera independiente al algoritmo y tendra que
se perdan ciertas soluciones factibles que ya realizarse un trabajo previo para implementar esta
no podran ser exploradas por las fases subse- arquitectura. Otra opcin ms ligada a la implemen-
cuentes y en la cual podra estar la solucin que tacin de la solucin sera elaborar un modelo de
estemos buscando. Para solucionar esto se procesamiento maestro-esclavo, donde un servidor
plante maximizar la diversidad de individuos maestro controle el proceso evolutivo, concentre la
dentro de la poblacin, de tal manera que nues- informacin resultante y asigne carga de trabajo a
tra poblacin se encuentre lo ms distribuido sus servidores esclavos. Dicha carga de trabajo po-
posible dentro del espacio de bsqueda acota- dra ser la evaluacin de una parte de los individuos
do donde el algoritmo poda desplazarse. Esto de la poblacin, dado que esto es lo que ms tiem-
significa hacer que los individuos sean lo ms po toma en procesar.
diferentes posibles en la poblacin sin interferir 4. Con la finalidad de hacer que el software sea ms
con los procesos de evolucin normal. configurable, se recomienda permitir a los futuros
usuarios poder escoger entre todas las restriccio-
TRABAJOS A FUTURO nes que maneja el sistema y decidir cules se aco-
plan a su realidad problema especfico.
1. Se pueden combinar algoritmos genticos con otra
5. Como ltima recomendacin, se sugiere aumentar
metaheurstica para mejorar el tiempo de genera-
el potencial del software al momento de la genera-
cin y calidad de la solucin. Por ejemplo, la fun-
cin de horarios integrando esta herramienta con
cin que se encarga de calcular la aptitud de cada
la informacin contenido en el SUM de la UNMSM
individuo de la poblacin en las diferentes fases
con la cual se podra calcular de manera automti-
podra ser remplazada por una red neuronal, la
ca la cantidad de grupos que se deberan aperturar
cual se encargara de realizar dicho clculo. Con
para los diferentes cursos de manera automtica o
lo cual se dotara a este nuevo algoritmo hbrido
por lo menos sugerirlos para su aprobacin.
una caracterstica de aprendizaje adicional a una
bsqueda guiada.
A su vez podra utilizarse una heurstica de bsque- 5. FUENTES BIBLIOGRFICAS
da, tal como un algoritmo voraz, que se encargue de Libros
generar la poblacin inicial con cierto grado de pre-
procesamiento y que por ende sea mejor que simple- Dawkins R. (1976). The Selfish Gene. USA, New
mente inicializar la poblacin de manera aleatoria. York:Oxford University Press.
2. La segunda mejora sera la de implementar un Daz, Adenso (1996).Optimizacin heurstica y redes
servicio Web con este algoritmo para que se pue- neuronales. Espaa: Editorial Paraninfo.
da tener acceso a l, de tal manera que no sea Fogel, David B (1995). Evolutionary Computation: To-
usado solamente por la facultad sino tambin abrir ward a New Philosophy of Machine Intelligence.
la posibilidad de brindar este servicio a otras fa- USA: IEEE Press.
cultades y/o instituciones que lo requieran. Otra Garey, Michael R. (1979). Computers and intractabi-
ventaja de implementar el servicio sera que se lity. A guide to the Theory of NP- Completeness.
estara destinando la carga del procesamiento a USA:Bell Telephone Laboratories.
un servidor dedicado para liberar al cliente de di- Gil Londoo, Natyhelem (2006). Algoritmos Genticos.
cha tarea. Medelln.

54
RISI 7(1), 37 - 56 (2010) Sistema de apoyo a la generacin de horarios basado en algoritmos genticos

Gil Tallavo, Marcos y Antonio Martnez, Amads (2006). Saleh M.A, Elmohamed y Fox, Geoffrey (1998) A
Algoritmo basado en Tab Search para el Proble- comparison of Annealing Techniques for Academic
ma de Asignacin de Horarios de Clases. Departa- Course Scheduling. Practice and Theory of Auto-
mento de Computacin Facultad de Ciencias y Tec- mated Timetabling II, Selected Papers from the 2nd
nologa Universidad de Carabobo Valencia, Estado International Conference, PATAT97.
Carabobo, Venezuela. Vzquez Espi, Mariano (1994). Recocido simulado: un
Glover, F. y Laguna, M. (1993). Tab Search. Modern nuevo algoritmo para la optimizacin de estructu-
Heuristic Techniques for Combinatorial Problems, ras. Madrid.
USA: C. Reeves, ed. Blackwell Scientific Publishing. Whitley, Darrell (1997). A genetic algorithm tutorial. Ho-
Goldberg, D. y Voessne, S (1999). Optimizing global- landa: Editorial Springer.
local search hybrids. In GECCO99: Proceedings
of the Genetic and Evolutionary Computation Con- Revistas
ference. pp. 220-228. Larrosa, J. y Meseguer (2003). Restricciones blandas:
Goldberg, David E. (1989). Genetic Algorithms in modelos y algoritmos. Revista Iberoamericana de
Search, Optimization, and Machine Learning, Ad- Inteligencia Artificial, Vol. Otoo/2003, N. 20, pp.
dison-Wesley Publishing Company. 69-81.
Johnsonbaugh, Richard (1999). Matemticas Discre- Alkan, Alpay y zcan,Ender (2003). Memetic Algo-
tas. Cuarta edicin, Prentice Hall. rithms for Timetabling. Evolutionary Computation,
Kaufmann, A. y Faure, R. (1977). Invitacin a la Inves- 2003. CEC 03. The 2003 Congress on, Vol. 3, pp.
tigacin de Operaciones. Segunda edicin, Mxi- 1796-1802.
co: CECSA. Berretta R,Cotta C, y Moscato P. (2003) Enhancing
Koza, John R. (1992). Genetic Programming. On the the performance of memetic algorithms by using a
Programming of Computers by Means of Natural matching-based recombination algorithm: Results
Selection. USA: The MIT Press. on the number partitioning problem. In M. Resende
Krasnogor, N. y Smith, J. (2005). A Tutorial for Com- and J. Pinho de Sousa, editors, Metaheuristics:
petent Memetic Algorithms: Model, Taxonomy and Computer Decision Making. Kluwer Academic Pu-
Design Issues. IEEE Transactions on Evolutionary blishers, Boston MA.
Computation. Casado Yusta, Silvia y Pacheco Bonrostro, Joaqun
Leiserson, C. Rivest, R. y Stein, C. Cormen, T. (2001). Intro- (2003). Estudio Comparativo de diferentes estra-
duction to algorithms. USA:The MIT Press McGrawHill. tegias meta heursticas para la resolucin del Labor
Scheduling Problem. Estudios de Economa Apli-
Lpez Ceballo, Paulina Danae (2000). El Mtodo de
bsqueda Tab para la programacin de horarios. cada, Vol. Diciembre/2003, N. 21, pp. 537-554.
Mxico: Editorial Universidad de Sonora. Franco Baquero, John Fredy, Eliana Mirledy Toro
Macas, E. A. (2004). Algoritmos de Bsqueda Local Ocampo y Ramn Alfonso Gallego Rendn (2008).
de GRASP para Solucin de 3-SAT. pp. 219-225. Course timetabling problem resolved using Tabu
Search. Ingeniera y Desarrollo N. 24.
Merz, P. y Freisleben, B.(1999) A comparison of me-
metic algorithms, tab search, and ant colonies for Glover, F (1989). Tab search - part I. ORSA Journal on
the quadratic assignment problem. In Proceedings Computing, Vol. Verano/2003, N. 3.
of the 1999 International Congress of Evolutionary Kirkpatrick S., Gelatt C.D. y Vecchi M.P, (1983) Optimi-
Computation (CEC 99). Washington DC, USA. zation by Simulated Annealing. Science, Vol. 220,
Michalewicz, Zbigniew (1996). Genetic algorithms + N 4598.
data structures = evolution programs. Alemania: Melin, B., Moreno Prez, J.A., Moreno Vega, J.M.
Editorial Springer. (2003) Meta heursticas: Una visin global. Revista
Moscazo, P. (1989). On evolution, search, optimiza- Iberoamericana de Inteligencia Artificial 19, 2, 7-28.
tion, genetic algorithms and martial arts: Towards Mushi, A. R. (2007). Simulated Annealing Algorithm
memetic algorithms. California Institute of Technol- for the Examinations Timetabling Problem. African
ogy, Pasadena, California, USA, Tech. Rep. Caltech Journal of Science and Technology (AJST) Science
Concurrent Computation Program, Reporte 826.

55
Revista de Ingeniera de Sistemas e Informtica vol. 7, N. 1, Enero - Julio 2010

and Engineering Series Vol. 8, N. 2, pp. 24- 32. Matriz (matemtica). Septiembre 2009 (Referido 01/11/2009).
Naji Azimi,Zahra (2004). Comparison of metaheuristic Disponible en URL: http://http://es.wikipedia.org/
algorithms for examination timetabling problem. J. wiki/Matriz_(matem%C3%A1tica)
Appl. Math. & Computing Vol. 16(2004), N 1-2, pp. Programacin Lineal. Octubre 2007 (Referido 01/12/2009).
337-354. Disponible en URL: http://es.wikipedia.org/wiki/
Programaci%C3%B3n_lineal
Fuentes Electrnicas
Red neuronal artificial. Agosto 2008 (Referido
Algoritmos genticos y computacin evolutiva. Abril 10/11/2009). Disponible en URL: http://es.wikipedia.
2004 (Referido 01/10/2009). Disponible en URL: org/wiki/Red_neuronal_artificial
http://the-geek.org/docs/algen/
Timetable. Octubre 2007 (Referido 01/10/2009). Dis-
Algoritmo voraz. Julio 2006 (Referido 01/12/2009). Dis- ponible en URL: http://en.wikipedia.org/wiki/Time-
ponible en URL: http://es.wikipedia.org/wiki/Algorit- table
mo_voraz
Vector (informtica). Diciembre 2008 (Referido 01/11/2009).
Inteligencia artificial. Octubre 2009 (Referido 06/11/2009). Disponible en URL: http://es.wikipedia.org/wiki/Ma-
Disponible en URL: http://es.wikipedia.org/wiki/Inte- triz_(programaci%C3%B3n)
ligencia_artificial
Vuelta Atrs. Febrero 2006 (Referido 20/11/2009). Dis-
Java Docs. Octubre 2009 (Referido 15/12/2009). Dis- ponible en URL: http://es.wikipedia.org/wiki/Vuel-
ponible en URL:http://jgap.sourceforge.net/java- ta_Atr%C3%A1s
doc/3.4.4/

56