UN ALGORITMO EVOLUTIVO PARA RESOLVER EL PROBLEMA DE ´ CALENDARIZACION PARA UNIVERSIDADES Xavier Cabezas G.1 , Fernando Sandoya2 MSc.

en Investigaci´n de Operaciones1 , MSc. en Investigaci´n de Operaciones2 o o Instituto de Ciencias Matem´ticas a Escuela Superior Polit´cnica del Litoral e Campus “Gustavo Galindo V.”, Km. 30.5, v´ Perimetral ıa Apartado 09-01-5863, Guayaquil, Ecuador xavier.cabezas@stat-eeio.com, fsandoya@espol.edu.ec Resumen En esta investigaci´n se realiz´ el dise˜o y la implementaci´n un Algoritmo Evolutivo para resolver o o n o el problema de Calendarizaci´n de Materias Basado en Plan de Estudio (CB-CTT), el cual es o un caso particular de la Calendarizaci´n Educacional para Universidades. Se consideran nueve o restricciones, cuatro que no deben infringirse bajo ning´n motivo (duras), como la asignaci´n de dos u o recursos en un mismo lugar al mismo tiempo, y cinco cuyo no cumplimiento se obliga a minimizarse (suaves). Se dise˜a un Algoritmo Gen´tico y se lo implementa en Matlab R con aportes en el dise˜o n e n de la representaci´n de una soluci´n y en los procedimientos de Cruce, Mutaci´n y Selecci´n, o o o o obteniendo buenos resultados con los problemas de prueba propuesto por SaTT (Scheduling and Timetabling Group) de la Universidad de Udine, Italia. Palabras Claves: Calendarizaci´n, Metaheur´ o ısticas, Algoritmos Gen´ticos, Matlab. e

Abstract In this research is designed and implemented an Evolutionary Algorithm to the Curriculum-Based Course Timetabling Problem (CB-CTT), which is a particular case of the Scheduling Education for Universities. Nine restrictions were considered, four have not infringed any reason (hard), including the allocation of two resources in one place at the same time, and five that are required to be minimize (soft). A Genetic Algorithm is designed and implemented it in Matlab R with contributions into the design of the representation of a solution and in procedures for crossing, mutation and selection, obtaining good results with test problems proposed by SaTT (Scheduling and Timetabling Group), University of Udine, Italy. Keywords: Timetabling, Metaheuristics, Genetic Algorithm, Matlab.

1

1.

Tabla 1: Clasificaci´n de Problemas de Calendarizao o El Problema de Calendarizaci´n TTP (por sus siglas ci´n Educacional o en ingl´s Timetabling Problem) es un tipo particular e Calendarizaci´n o Ex´menes ETT a de la clase amplia de problemas simplemente de ProMaterias Basado en Inscripciones gramaci´n (Scheduling) [5] y se puede definir de o Educacional CTT EB-CTT forma muy simple: Materias Basado en Plan de Estudios
CTT CB-CTT Definici´n 1.1 (Calendarizaci´n, Zhipeng Lu and o o Jin-Kao Hao [3]). Asignar un n´mero de eventos, u cada uno con ciertas caracter´ ısticas, a un n´mero u limitado de recursos sujeto a restricciones. otro lado los problemas que se podr´n presentar a a o Para poder interpretar lo que en la definici´n 1.1 en el CB-CTT resultar´n de una programaci´n o significan los t´rminos: eventos, recursos y res- no tan buena del plan de estudios por parte de la e o tricciones, se debe estudiar las caracter´ ısticas de un instituci´n educativa. Los conflictos ocurren cuando o problema particular. Para este trabajo, se considera una programaci´n requiera que cualquiera de los e una clase de los TTP’s denominada Educacional, recursos est´ en dos lugares al mismo tiempo. En n o que consiste en la programaci´n de clases de un realidad todo depende del tama˜o de la instituci´n o o conjunto de materias con un n´mero dado de aulas del departamento que ofrece sus cursos y del tiempo u o y periodos de tiempo disponibles que satisfacen requerido para producir la soluci´n. varias restricciones [1]. Las restricciones pueden ser clasificadas en duras y suaves. Las restricciones de tipo duras son utilizadas para encontrar Restricciones consideradas soluciones factibles al problema y no pueden ser 2. infringidas, por otro lado las restricciones suaves para el CB-CTT pueden relajarse de tal forma de buscar soluciones cercanas al ´ptimo que ser´n cotas (inferiores o su- Cuando se realiza una revisi´n de la literatura o a o periores) para buscar nuevas alternativas de soluci´n. del CB-CTT se pueden encontrar una serie de o documentos que presentan formulaciones novedosas El caso Educacional es solo una de las variaciones pero que no siempre consideran las previamente de los TTP’s, tambi´n existen otras aplicaciones definidas por otros autores, lo cual es debido a que e en ´reas muy distintas, tales como transporte (pro- no es posible escribir una que contenga todos los a gramaci´n de salidas de buses), TV (Calendario de casos posibles que pueden presentarse en la vida o Programas de TV) o deportes (programaci´n de ca- real, cada instituci´n educativa posee caracter´ o o ısticas lendarios de juegos), un ejemplo de ´ste ultimo tipo diferentes que hacen que el problema se vuelva muy e ´ de problema se encuentra en [7], donde se muestra particular. un m´todo de soluci´n que utiliza una aproximaci´n e o o con programaci´n lineal entera (ILP, por las siglas Las restricciones que se han considerado para esta o en ingl´s de Integer Linear Programming) para la de- investigaci´n, son las mismas que se proponen en Di e o terminaci´n de horarios de la Liga Italiana de F´tbol. Gaspero [8]. o u

Introducci´n o

Para el caso Educacional se pueden clasificar en Restricciones Duras (HARD constraints) dos grupos: Calendarizaci´n para Ex´menes (ETT, o a Exam Timetabling) y Calendarizaci´n para Materias o Sesiones de clases (lectures): Todas las se(Clases Regulares) (CTT, Course Timetabling), este siones de clases de las materias deben prograultimo a su vez puede ser subdividido en Calen´ marse y asignarse a diferentes periodos. Si la sedarizaci´n por Materias Basado en Inscripciones o si´n de clase no est´ programada, se considera o a (EB-CTT, Enrollment-Based Course Timetabling) una violaci´n. o y Calendarizaci´n por Materias Basado en Plan o de Estudios (CB-CTT, Curriculum-Based Course Aulas Ocupadas (room occupancy): Dos Timetabling), ver Tabla 1. lecturas no pueden ser programas en la misma aula en el mismo periodo. Se cuenta como una Cuando se intenta resolver el TTP, pueden presenviolaci´n adicional cualquier sesi´n de clase exo o tarse una serie de conflictos entre las restricciones tra en una misma aula y periodo. que se plantean, pero ´stas para el caso del EB-CTT e Conflictos (conflicts): Sesiones de clases de se deber´n a la decisi´n que tomen los estudiantes a o las materias del mismo curriculum o dictadas sobre las materias que desean tomar, un cruce por un mismo profesor deben programarse en podr´ ocurrir si la elecci´n no ha sido buena; por ıa o 2

diferentes periodos. Una violaci´n ocurre si dos o sesiones de clases est´n en conflicto. a Disponibilidad (availabilities): Si un profesor de una materia no est´ disponible para dica tarla en un periodo dado, entonces ninguna sesi´n de clase de esta materia debe ubicarse en o ese periodo. Cada sesi´n de clase en un periodo o no disponible para esa materia se cuenta como una violaci´n. o Restricciones Suaves (SOFT constraints) Capacidad de Aulas (Room Capacity): Para cada sesi´n de clase el n´mero de estudiantes o u que asisten a las materias debe ser menor o igual al n´mero de lugares disponibles de todas las auu las que acogen a las sesiones de clases. Se cuenta como una violaci´n a cada alumno por encima o de la capacidad del aula. D´ de Trabajo M´ ıas ınimo (Minimum Working Days): Las sesiones de clases de cada materia deben ser dictadas en un n´mero m´ u ınimo de d´ Cada d´ por debajo del m´ ıas. ıa ınimo se consideran 5 puntos de penalidad. Curriculum Compacto (Curriculum Compactnees): Sesiones de clase que pertenecen a un mismo curriculum deber´n estar juntas unas a con otras (periodos consecutivos). Para un curriculum dado se considera una violaci´n cada o vez que una sesion de clase no sea adyacente a otra en el mismo d´ ıa. Curriculum Compacto version 2 (Curriculum Compactnees ver 2): Sesiones de clases programadas en un mismo d´ no deben tener ıa sesiones de clases de otras materias entre ellas. Estabilizaci´n de Aulas (Room Stability): o Todas las sesiones de clases de una materia deben ser dictadas en una sola aula.

Tabla 2: Contenido del archivo toy.txt

Name: Toy Courses: 4 Rooms: 3 Days: 5 Periods_per_day: 4 Curricula: 2 Constraints: 8 COURSES: SceCosC Ocra 3 3 30 ArcTec Indaco 3 2 42 TecCos Rosa 5 4 40 Geotec Scarlatti 5 4 18 ROOMS: rA 32 rB 50 rC 40 CURRICULA: Cur1 3 SceCosC ArcTec TecCos Cur2 2 TecCos Geotec UNAVAILABILITY_CONSTRAINTS: TecCos 2 0 TecCos 2 1 TecCos 3 2 TecCos 3 3 ArcTec 4 0 ArcTec 4 1 ArcTec 4 2 ArcTec 4 3 ROOM_CONSTRAINTS: SceCosC rA Geotec rB TecCos rC END.

2.1.

Un ejemplo para resolver

Unos datos de ejemplo que sirven de prueba para analizar la eficiencia de heur´ ısticas y metaheur´ ısticas para problemas de Calendarizaci´n (scheduling) y o en particular para problemas de tipo CB-CTT se pueden encontrar en la p´gina web del SaTT: a Scheduling and Timetabling Group 1 , aqu´ se define ı un formato de datos para inicio al que llaman ECTT (Extended Curriculum-based Course Se explica a continuaci´n los componentes de este o TimeTabling format), justamente para el CB- archivo txt. CTT, que contiene tablas con informaci´n espec´ o ıfica
1 Diegm-University of Udine (Italy), main contacts: Prof. Andrea Schaerf y Dr. Luca Di Gaspero; http://tabu.diegm.uniud.it/

que guardan relaci´n con el formato requerido pao ra la competici´n mundialmente conocida ITC o (Internacional Timetabling Competition) De Cesco [1], donde los participantes deben remitirse a esta forma de ingreso, porque entre otras cosas, permite hacer ejecuciones de prueba para algunos ejemplos generados para este fin y compartir experiencia entre investigadores de forma estandarizada. All´ consta un peque˜o ejemplo denominado Toy ı n que tiene valor de la funci´n de evaluaci´n igual a o o cero. Toy se presenta en un archivo plano txt y se detalla en la Tabla 2. Toy se resolver´ con nuestro a algoritmo

Tabla: Datos generales Nombre para el problema a ejecutar. 3

N´mero de aulas. u N´mero de d´ para calendizar. u ıas N´mero de periodos por d´ u ıas. N´mero de curr´ u ıculums. Min-Max calses diarias. N´mero de restricciones de no disponibilidad. u N´mero de restricciones de aulas. u Tabla: Materias Nombre de identificaci´n para las materias. o Nombre de los profesores que dictan las materias. N´mero de clases de cada materia. u M´ ınimo n´mero de d´ para programar a las u ıas materias. N´mero de estudiantes que toman una materia. u

Tabla: Restricciones de aulas Nombre de identificaci´n para las materias. o Nombre de identificaci´n del aula donde no pueo den ser programadas las materias. El archivo “toy.txt” se llama directamente desde la implementaci´n, y cada componente se guarda en o matrices de n´meros cuyos nombres se resumen en la u Tabla 3. Tabla 3: Nombres y c´digos de los archivos txt o
Nombre de la tabla Datos generales Materias (courses) Aulas (rooms) Curr´ ıculums (curricula) No disponibilidad (unavailability constrains) Restricciones de aulas (room constrains) Matrices G C R CR UC RC

3.

Dise˜ o de un Algoritmo n Gen´tico para el CB-CTT e

Valor binario 0-1 que indica si se requiere o no 3.1. El Algoritmo Gen´tico e que dos lecturas programadas en el mismo d´ ıa deban ser asignadas a periodos consecutivo (algo John Holland en su libro Adaptation in Natural and Aritificial Systems del a˜o 1975 [4] fue el primero en n que ocurre en la mayor´ de los casos). ıa utilizar el t´rmino Algortimo Gen´tico (al que abree e viaremos AG), y que como su nombre lo indica, son Tabla: Aulas procedimientos sistem´ticos basados en la seleci´n a o natural de los seres vivos y el paso de informaci´n o Nombre de identificaci´n de las aulas. o gen´tica generaci´n a generaci´n. Holland bas´ su e o o o Capacidad de las aulas. trabajo en la evoluci´n de las especies, propuesta por o Darwin. Identificador que define la ubicaci´n (en un bloo Definici´n 3.1 (Algoritmo Gen´tico [2]). Un algoo e que de edificio por ejemplo) de cada aula. ritmo Gen´tico es una estructura de control que ore ganiza o dirige un conjunto de transformaciones y Tabla: Curr´ ıculums operaciones dise˜adas para simular los procesos de n o Nombre de identificaci´n del curr´ o ıculum (semes- evoluci´n. tre). L´gicamente los t´rminos utilizados por los AG en o e sus implementaciones computacionales guardan reN´mero de cursos de los curr´ u ıculums. laci´n con la evoluci´n natural y por este motivo o o N´mbres de identificaci´n de las materias en ca- es necesario describir algunas caracter´ o o ısticas de este da curr´ ıculum. proceso, m´s a´n si lo que se requiere es un proceso de a u evoluci´n simulado, por medio de un algoritmo mao tem´tico implementado computacionalmente [2] (p´g a a Tabla: Restricciones de no disponibilidad 70). Nombre de identificaci´n para las materias. o Procesos de la evoluci´n o D´ en que las materias no pueden ser prograıas Todas los cambios ocurridos a lo largo del cammadas. bio generacional ocurren en una unidad llamada Periodos del d´ (Timeslots) en que las materias cromosoma, que identifica a cada miembro de una ıa no pueden ser programadas. poblaci´n de individuos, de los cuales nos interesa o 4

la probabilidad que sus caracter´ ısticas gen´ticas e sobrevivan en el futuro. La idea es que, al transcurrir el tiempo, en la poblaci´n solo queden los individuos o m´s fuertes, es decir aquellos que producen buenas a soluciones al problema que se plantea. Los Genes constituyen la estructura m´s simple que forma a un cromosoma, cada miembro de una poblaci´n o tiene el mismo n´mero de genes. Los primeros u algoritmos AG representaban a los genes por medio de valores binarios 1 − 0, sin embargo esto no es aplicable en la mayor´ de los problemas pr´cticos. ıa a

ci´n no necesariamente buena. Deber´ adem´s tener o ıa a un tama˜o adecuado para evitar un bajo rendimiento n del algoritmo, por otro lado una tama˜o de la poblan ci´n muy grande podr´ llevarnos a un tiempo de o ıa proceso fuera de los l´ ımites de lo esperado. Selecci´n para una Nueva Generaci´n o o

Cuando ya se tiene una poblaci´n inicial diversa y de o calidad se debe escoger los candidatos a quienes se aplicar´n los procedimientos de cruce y/o mutaci´n, a o es claro que se requiere que estas soluciones deben o La principal caracter´ ıstica del proceso evolutivo es ser individuos fuertes, lo que simula la elecci´n natural de las especies. Existen varios m´todos para e la supervivencia, la elecci´n natural del m´s fuerte, o a lo que an´logamente quiere decir en un problema seleccionar soluciones entre los que se encuentran a a de optimizaci´n un individuo que procure un mejor dos de las m´s conocidas: Torneo y Rueda de la o Fortuna (Roulette Wheel ). valor de una funci´n objetivo (FO) a minimizar (o o m´ximizar, de acuerdo al contexto de trabajo), es a e o decir un individuo puede ser visto como una soluci´n En el m´todo de selecci´n por Torneo se eligen o aleatoriamente desde la poblaci´n dos individuos o posible que puede mejorar o empeorar a FO. Esto (soluciones) y de estos dos se selecciona aquel que lleva a considerar una funci´n que permita medir que o o tan bueno o malo es un individuo respecto a otro. El al evaluarlo en la funci´n objetivo obtenga el mejor resultado deseado (maximiza o minimiza). cruce de los miembros de una poblaci´n, producen o hijos con caracter´ ısticas que heredan de sus padres, donde cada pareja se elige principalmente por su En la Rueda de la Fortuna los elementos de la nueva o o fortaleza dentro del grupo al que pertenecen. La generaci´n se obtienen por medio de la generaci´n de una variable aleatoria discreta que se define de la busqueda de la soluci´n se consigue mediante la o evaluaci´n de la funci´n objetivo f para cada cadena siguiente forma: o o de la poblaci´n. A la funci´n de evaluaci´n se la o o o 1. Se ordena la Poblaci´n Actual de mayor a menor o conoce con el nombre de fitness y el procedimiento de acuerdo a la valoraci´n de cada cromosoma o requiere que la cadena de genes con mayor valor de en relaci´n a la funci´n objetivo. o o fitness pueda ser identificado, para asignarle mayor probabilidad de reproducirse. La recombinaci´n de o 2. Se suman las evaluaciones de la funci´n objetiva o soluciones es lo que hemos llamado cruce. de todos los cromosomas. 3. A cada cromosoma se le asigna una probabiliOtro situaci´n que se vive en la naturaleza, es que o dad de ser seleccionada de forma aleatoria, con de generaci´n en generaci´n siempre se producen o o Evaluacion(i) cambios estructurales los cuales se esperan que sean Evaluacion = Evaluacion(P oblacion) . para bien, sin embargo con alguna probabilidad un descendiente pudiera traer deformaciones gen´ticas Se selecciona un padre y una madre seg´n el peso e u que lo hagan o bien vulnerable al medio ambiente o dado por la funci´n de evaluaci´n y la tabla de freo o bien lo conviertan en una entidad superior, a esto se cuencias relativas que se construye. lo suele llamar mutaci´n. o 3.1.1. Criterio de parada Adem´s de los procesos de cruce y mutaci´n que a o ya se han explicado, es necesario contar con alg´n u Antes de comenzar a buscar soluciones a un proble- criterio de parada del algoritmo. Es claro, que o ma particular, es necesario contar una un conjunto de mientras avanza el tiempo de ejecuci´n del AG las a a e soluciones (Poblaci´n Inicial ) el cual pueda evolucio- nuevas generaciones ser´n cada vez m´s homog´neas, o nar generaci´n tras generaci´n. La Poblaci´n Inicial por este motivo un criterio natural de parada es o o o u puede ser construida de forma aleatoria o mediante detener el procedimiento cuando un gran n´mero o alg´n procedimiento sistem´tico. Es muy importante de cromosomas de la poblaci´n sean iguales. Otro u a ıa o considerar que este conjunto debe contener suficien- criterio podr´ ser definir un tiempo de ejecuci´n fijo ´ o o te informaci´n para que su transformaci´n procure y luego de la ultima iteraci´n elegir aquella soluci´n o o o una soluci´n final ´ptima o al menos muy cerca del representada por un cromosoma con mejor funci´n o o o o ´ptimo, una poblaci´n muy homog´nea podr´ tener de evaluaci´n (fitness). o e ıa como consecuencia una convergecia hacia una soluPoblaci´n Inicial o 5

Un seudoc´digo cl´sico y simple del AG se muestra Representaci´n del Cromosma en Matlab R o a o a continuaci´n: o Un calendario se ha representado en este trabajo como una matriz de dimensi´n [(d´ o ıas)(ranuras de tiempo por d´ ıa)(curr´ ıculums) × 8]. En este arreglo, el n´mero de filas corresponde a cada periodo disponiu Procedimiento Algoritmo Gen´tico e ble para calendarizar multiplicado por el n´mero de u Generar poblaci´n inicial o Evaluar poblaci´n o curr´ ıculums considerados en un problema particular, While NO Criterio de Parada esto quiere decir que los calendarios de cada curr´ ıcuSelecci´n_poblaci´n o o lum se dispondr´n uno debajo del otro, ver Figura 3, a Cruzar poblaci´n o donde los diferentes colores rojo y azul determinan Mutar poblaci´n o Evaluar poblaci´n o respectivamente un calendario para el curr´ ıculum 1 end While y curr´ ıculum 2.. Por otra parte, cada columna de la matriz representa respectivamente: Figura 1: Simple Pseudoc´digo para el AG o 1. Indicador del n´mero de la fila 1, 2, 3,. . ., etc. u 2. D´ de la semana (laborables). ıa

3.2.

El AG en el CB-CTT y su implementaci´n en Matlab R o

3. Ranura de tiempo (horas de clases disponibles). 4. Materia que sedictar´ en un periodo. a 5. Profesor de la materia. 6. Aula a utilizar. 7. Capacidad del aula a utilizar. 8. N´mero de estudiantes registrados en la mateu ria.

Representaci´n del Cromosoma o Para el CB-CTT cada cromosoma, representa un calendario completo y en este caso cada gen es una estructura compuesta al menos de cinco componentes: 1. D´ ıa 2. Ranura de tiempo

´ Indice

Profesor

Materia

Ranura

3. Profesor 4. Clase (de alguna Materia) 5. Aula El par (D´ Ranura de tiempo) forman un periodo. ıa, Un ejemplo se ilustra en la Figura 2.
D´ ıa

1 2 3 . . . 19 20 21 22 . . . 38 39 40

1 2 3 . . . 4 5 1 2 . . . 3 4 5

1 1 1 . . . 4 4 1 1 . . . 4 4 4

3 0 1 . . . 0 2 0 3 . . . 4 0 3

3 0 1 . . . 0 2 0 3 . . . 4 0 3

2 0 3 . . . 0 3 0 1 . . . 3 0 1

50 0 40 . . . 0 40 0 32 . . . 40 0 32

40 0 30 . . . 2 42 0 40 . . . 18 0 40

Figura 3: Representaci´n matricial de un cromosoo ma (calendario)

Generaci´n de la poblaci´n inicial o o Se ha programado una funci´n a la que llamamos o gcrom para generar la representaci´n matricial o de un cromosoma ubicando aleatoriamente para Figura 2: Representaci´n de un cromosoma para cada curr´ o ıculum en alg´n periodo una materia, u Calendarizaci´n. o un profesor y un aula, adem´s de su capacidad y a del n´mero de estudiantes registrados, tom´ndolas u a 6

Estudiantes

Capacidad

Aula

desde archivos planos previamente importados por otra funci´n denominada readfiles. La funci´n tiene o o cuidado de no ubicar m´s de las materias definidas a para cada curr´ ıculum en el archivo CR.txt. En este punto se aplica un procedimiento que trata de mejorar el cromosoma inicial cambiando aleatoriamente el aula antes asignada por otra, siempre y cuando la funci´n objetivo mejore en su valor, para o este caso esto quiere decir que la restricci´n suave o llamada Capacidad de Aulas se supere. Este procedimiento se ha nombrado mejoraroom.

que permite elegir de entre todos los cromosomas de una poblaci´n a los mejores, aquellos cuya funci´n de o o evaluaci´n sea la mejor posible. El m´todo que se ha o e implementado es la Rueda de la Fortuna (Roulette Wheel ). El procedimiento de cruce En la funci´n cruce, se desarrolla un procedimiento o sistem´tico, que transfiere informaci´n gen´tica de a o e un padre y una madre para generar un hijo y una hija.

El proceso comienza buscando en el calendario del Evaluaci´n de un Cromosoma y de la Pobla- padre y la madre el periodo donde cada una de o ci´n o las materias ya hayan sido prgoramadas. Luego se u a Todas las restricciones consideradas en esta inves- genera un n´mero aleatorio uniforme de par´metros 1 y 0 con el fin de determinar si es el gen del tigaci´n se han programado dentro de la funci´n o o a fitnees, que mide el n´mero de violaciones de cada padre que se tranferir´ al hijo o el de la madre, y u se ubicar´n los datos del ascendiente en el mismo a restricci´n de acuerdo al criterio de la Seci´n 2. Un o o o ejemplo de la aplicaci´n de la funci´n de evaluaci´n periodo encontrado, cuidando que esta ubicaci´n o o o e en Matlab R se presenta en la Figura 4. La suma del est´ libre en el descendiente, caso contrario se o vector fitnessv es la medida de incumplimiento de selecciona una ubicaci´n libre de forma aleatoria. Cuando la elecci´n se ha realizado, la informaci´n o o restricciones. que se tranfiere al otro descendiente es exactamente lo opuesto, siempre que sea posible. Todo esto se lo realiza para cada calendario de cada curr´ ıculum, ver Figura 6. >> [ffitnessv ffitness]=fitness(cromosoma,G,R,UC,C)
ffitnessv = 1 0 ffitness = 66 3 54 2 2 0 4

Figura 4: Ejemplo de aplicaci´n de la funci´n fito o ness La evaluaci´n en la poblaci´n se la realiza utilizano o do la funci´n evaluapoblacion. Este procedimiento o simplemente da el valor de fitness para cada cromosoma, present´ndolos en un vector que se ha llamado a fitnessp, ver Figura 5. Figura 6: Ejemplo de un proceso de cruce para la base de datos Toy. Con el prop´sito de asegurar que las futuras generao ciones posean miembros m´s fuertes, se ha decidido a que al momento de cruzar dos individuos, se elija entre el hijo y la hija, al de menor funci´n de evao luaci´n para que forme parte de la nueva poblaci´n. o o La funci´n fitness se aplica a ambos cromosomas o Figura 5: Ejemplo del vector fitnessp para una po- y se verifica quien sobrevive y quien no. El padre y la madre se seleccionan de forma aleatoria desde blaci´n de tama˜o 5 o n la poblaci´n luego del proceso de selecci´n descrito o o anteriormente. La funci´n que permite este proceo dimiento es crucepoblaci´n. Esta funci´n contiene o o El proceso de selecci´n o el par´metro probcruce que representa la probabia Para poder pasar de generaci´n en generaci´n se ha lidad de que dos individuos se crucen, y se ajusta o o dise˜ado un procedimiento de selecci´n de soluciones luego de experimentos computacionales. n o 7
>> [fitnessp]=evaluapoblacion(poblacion,G,R,UC,C) fitnessp = 36 58 76 71 87

En el primer caso la soluci´n ser´ aquel cromosoo a ma con m´ ınimo fitness, si existe m´s de una soluci´n a o La mutaci´n es un procedimiento que act´a sobre o u encontrada, se elige una de forma aleatoria, y en el los genes. En esta implementaci´n se ha considerado o segundo caso aquel que tenga el valor de cero. En la para cada fila de la representaci´n cromos´mica no o o funci´n criterioparada se implementa el caso 1 y o vac´ ubicar el gen (la fila) en un lugar disponible ıa, en el caso dos se lo considera en el programa general de forma aleatoria, pero en este caso, este cambio del AG, ver Programa 1. se produce siempre que la funci´n de evaluaci´n o o mejore en su medida. Esto asegura que si la mutaci´n en un gen ocurre, esto sea para bien, ver AG completo o Figura 7, donde el valor de la funci´n de evaluaci´n o o ´ para Cromosoma es 97 y para MUTACION es 93. Luego de tener todos los elementos necesarios para la implentaci´n del AG se enlazan todas las rutio nas descritas anteriormente en un solo c´digo. A este o programa general se denomina agcbctt, ver Programa 1. El cual guarda relaci´n estricta con el c´digo o o cl´sico de un AG, ver Figura 1. a Programa 1 “agcbctt.m”: AG completo
function [poblacion tt]=agcbctt(G,C,R,CR,UC,RC,n, probcruce,probmutacion) poblacion=gpob(G,C,CR,RC,R,UC,n); fitnessp=evaluapoblacion(poblacion,G,R,UC,C); iteracion=0; while (criterioparada(fitnessp) || min(fitnessp)==0) ~=1 poblacion=seleccion(poblacion,fitnessp); poblacion=crucepoblacion(poblacion,G,R,UC,C, probcruce); poblacion=mutacionpoblacion(poblacion,G,R,UC,C, probmutacion); fitnessp=evaluapoblacion(poblacion,G,R,UC,C); iteracion=iteracion+1 end posmin=find(fitnessp==min(fitnessp)); tt=poblacion(:,:,posmin);

El procedimiento de mutaci´n o

Figura 7: Ejemplo de un proceso de mutacion para la base de datos Toy. La funci´n mutacion produce estos cambios. Un o par´metro de entrada es probmutacion el cual sirve a para determinar si un gen es candidato a mutar. El proceso de mutaci´n debe aplicarse a cada elemento o de la poblaci´n de acuerdo a una probabilidad que o se define en la funci´n mutacionpoblacion como o probmutacion, esta es la misma probabilidad dada en la funci´n mutacion para decidir si un gen de un o cromosoma mutar´ o no. Esto significa que la misma a probabilidad servir´ para definir si un cromosoma a entra al proceso de mutaci´n adem´s de decidir si o a un gen cambiar´ de posici´n. a o Criterio de Parada

4.
4.1.

Resultados Num´ricos e
Recursos computacionales empleados

En Rodr´ ıguez [6] se define a Matlab R 2 como un instrumento computacional simple, vers´til y de a En teor´ el AG podr´ ejecutarse en tiempo indeıa ıa gran poder para aplicaciones num´ricas, simb´licas e o finido, teniendo en consideraci´n que los elementos o y gr´ficas, que contiene una gran cantidad de a de la poblacion luego de un tiempo t grande se parefunciones predefinidas para aplicaciones en ciencias cer´n entre s´ y se espera adem´s que la funci´n de a ı a o e ingenier´ Esta descripci´n de Matlab muestra ıa. o evaluaci´n tenga un valor cercano a cero (o cero en o muy bien las razones por la cual se ha elegido este el mejor de los casos). Debido a esto un criterio de lenguaje de programaci´n para la implementaci´n o o parada del AG se ha definido en este trabajo como: computacional de un AG dise˜ado espec´ n ıficamente 1. Para si al menos una proporci´n p de individuos para el CB-CTT. o miembros de la poblaci´n tienen el mismo valor o La versi´n de Matlab R que se ha utilizado es Matlab o de fitness, ´ o 7.6.0.324 (R2008a), y los recursos de hardware y 2. Si en alguna iteraci´n alg´n elemento de la poo u software se detallan en la Tabla 4. blaci´n tiene un valor de funci´n de evaluaci´n o o o 2 Matlab R es una marca registrada de The MathWorksTM . igual cero 8

Tabla 4: Recursos para implementaci´n computacioo nal del AG
Sistema Operativo Procesador Memoria RAM Windows R XP Professional Intel R CoreTM 2 Duo 1.06 GHz 2GB

Tabla 5: Experimento computacional (Tama˜o de n Poblaci´n) o
Par´metros a Corridas c/pob Prob. cruce Prob. mutacion % de igual fitness n 10 20 30 40 50 60 70 80 90 100 30 0.8 0.4 0.8 Fitness 10 3 1 1 0 0 0 0 0 0 Iteraciones 15 20 26 25 24 26 23 23 25 27 Segundos 4 11 21 27 33 45 45 51 62 74

4.2.

Calibraci´n de par´metros o a

Los valores de los par´metros de entrada del AG a se han ajustado mediante un proceso de ensayo y error, es decir, se prob´ diferentes valores hasta que o consideramos estabilidad en la ejecuci´n del algorito mo. Con estabilidad se quiere decir que el programa ejecutado alcanza los objetivos deseados en un tiempo razonablemente peque˜o. Un resumen de los n par´metros de entrada se detallan a continuaci´n: a o 1. Tama˜o de la poblaci´n. n o 2. Probabilidad de mutaci´n. o 3. Probabilidad de cruce. La Tabla 5 muestra valores medios de las repeticiones de la funci´n “agcbctt” para los valores de o n = 10, 20, . . . , 100. En la Figura 8 se puede observar que cuando se fijan los valores de probabilidad de cruce y mutaci´n el AG parece encontrar soluciones o o ´ptimas. El n´mero de iteraciones que se necesitan u para que el AG encuentre una soluci´n (no neceo sariamente la ´ptima) de acuerdo a la Figura 9 se o vuelve estable, entre 22 y 26, para valores de n igual a 30, pero como se menciona antes, los cromosomas o ´ptimos se empiezan a encontrar a partir de n = 50. La Figura 10 da una tendencia lineal de crecimiento mientras el tama˜o de la poblaci´n crece. Las pruen o bas para este ejemplo han mostrado que tiempos aceptables del algoritmo podr´ estar entre 30 y 50 ıan segundos, que en el gr´fico se muestran para n entre a 40 y 60. Los valores fijos de las probabilidades de cruce y mutaci´n, se obtuvieron luego de analizar de o forma conjunta los gr´ficos para variaciones en estos a par´metros. a

Figura 8: Tama˜o de Poblaci´n vs Fitness, variaci´n n o o de poblaci´n o

Figura 9: Tama˜o de Poblaci´n vs N´mero de Iten o u raciones, variaci´n de poblaci´n o o

En la Tabla 6 se ha hecho variar la probabilidad de cruce en valores de probcruce = 0,1, 0,2, . . . , 1, y se puede observar en la Figura 11, que el ´ptimo o se encuentra a partir del valor de probabilidad de cruce de 0,5, sin embargo, un an´lisis m´s Figura 10: Tama˜o de Poblaci´n vs Tiempo de Ejea a n o detallado mostr´ que el valor de este par´metro cuci´n, variaci´n de poblaci´n o a o o o podr´ estar entre 0,6 y 0,8. Para estas probaıa bilidades de cruce, el promedio del n´mero de u iteraciones que se necesitaron, est´ entre 23 y 27, entre 40 y 50 segundos como lo presenta la Figura 13. a ver Figura 12 y su tiempo de ejecuci´n promedio o 9

Un an´lisis similar a los dos anteriores se realiza en a la Tabla 7 y en las Figuras 14, 15 y 16, donde se Tabla 6: Experimento computacional (Probabilidad establecen valores de probabilidad de mutaci´n mao de Cruce) yores de 0,5 para un n´mero de iteraciones promedio u Par´metros a entre 0,3 y 0,7, y un tiempo de ejecuci´n aproximado o Corridas c/pob 30 de 50 segundos. n 60
Prob. mutaci´n o % de igual fitness probcruce 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0.4 0.8 Fitness 8 3 1 1 0 0 0 0 0 0 Iteraciones 23 26 27 26 26 27 24 23 24 24 Segundos 16 21 27 31 36 46 45 47 56 62

Tabla 7: Experimento computacional (Probabilidad de Mutaci´n) o
Par´metros a Corridas c/pob n Prob. cruce % de igual fitness probmutacion 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 30 60 0.8 0.8 Fitness 7 4 1 1 0 0 0 0 0 0 Iteraciones 19 22 24 24 23 24 22 23 24 25 Segundos 11 18 26 37 50 63 72 73 77 83

Figura 11: Probabilidad de Cruce vs Fitness, variaci´n de probabilidad de cruce o

Figura 14: Probabilidad de Mutaci´n vs Fitness, vao riaci´n de probabilidad de mutaci´n o o

Figura 12: Probabilidad de Cruce vs N´mero de Iteu raciones, variaci´n de probabilidad de cruce o

Figura 15: Probabilidad de Mutaci´n vs N´mero de o u Iteraciones, variaci´n de probabilidad de mutaci´n o o

4.3.
Figura 13: Probabilidad de Cruce vs Tiempos de Ejecuci´n, variaci´n de probabilidad de cruce o o

Una soluci´n para el ejemplo de o prueba

Se ha ejecutado “agcbctt” para la base de datos Toy del archivo toy.txt, ver Tabla 2, y se 10

>> [ffitnessv ffitness]=fitnessvector(tt,G,R,UC,C) ffitnessv = 0 0 0 0 0 0 0 0 ffitness = 0

Figura 19: Aplicaci´n de la funci´n fitness a la base o o de datos Toy Figura 16: Probabilidad de Mutaci´n vs Tiempos de o Ejecuci´n, variaci´n de probabilidad de mutaci´n o o o

Referencias
[1] Fabio De Cesco, Andrea Schaerf, and Luca Di Gaspero. Benchmarking curriculum-based course timetabling: Formulations, data formats, instances, validation, and results. 2008. [2] Adenso D´ ıaz. Optimizaci´n Heur´ o ıstica y Redes Neuronales. Addison Wesley, 1996. [3] Jin-Kao Hao and Zhipeng Lu. Adaptive tab´ search for course timetabling. ELSEVIER, u 2008. [4] J.H. Holland. Adaptation in natural and artificial systems. University of Michigan Press, Ann Arbor, Michigan; re-issued by MIT Press (1992), 1975. [5] Joseph Y-T Leung. Handbook of Scheduling. Algorithms, Lodels and Perfomance Analysis. Chapman & Hall/CRC. Computer and Information Science Series, 2004. a [6] Luis Rodr´ ıguez Ojeda. Matlab R Conceptos B´sicos y Programaci´n. Instituto de Ciencias Mao tem´ticas, Escuela Superior Polit´cnica del Litoa e ral, 2007. [7] D. Oliveri and F. Della Croce. Scheduling the italian football league: an ilp-based approach. ELSEVIER, 2004. [8] Andrea Schaerf, Fabio De Cesco, and Barry McCollum. The second international timetabling competition (itc-2007): Curriculum-based course timetabling (track 3). Technical Report, 2007.

han obtenido los calendarios de las Figuras 17 y 18 que cumplen con todas las restricciones impuestas Lo par´metros utilizados para este ejemplo fueron: a Tama˜ o de la poblaci´n: 60 n o Probabilidad de Cruce: 0.7 Probabilidad de Mutaci´n: 0.4 o

Figura 17: Calendario para el Curr´ ıculum 1, Toy

Figura 18: Calendario para el Curr´ ıculum 2, Toy En la figura 19 se muestra la funci´n de evaluaci´n o o de la soluci´n presentada. o El n´mero de iteraciones que le tom´ al AG enconu o trar una soluci´n fue 22 y el tiempo de ejecuci´n de o o 19 segundos.

11