AGRADECIMIENTOS
A DIOS:
Por haberme apoyado a lo largo de mi vida, brindndome fuerzas para
salir adelante ante cualquier adversidad.
A MIS PADRES:
Por tener y jams perder la confianza, por ese apoyo y preocupaciones
incondicionales que solo los verdaderos padres pueden brindar a un hijo.
A MIS BEBES:
Mis chiquititos Koda y Cosita que han llenado mi vida de alegras y
preocupaciones, que me han acompaado a lo largo de todo este trayecto y lo
seguirn haciendo ya sea terrenal o espiritualmente, por ese amor y lealtad
incondicional que los mejores amigos puedan tener.
A MI NOVIA:
Por minimizar mis preocupaciones, brindarme valor cuando lo requiera y
darme gratos momentos.
A MIS ASESORES:
Por haberme brindado su tiempo y conocimientos necesarios para la
culminacin de este proyecto.
A CONACYT:
Por haber financiado mis estudios.
ii
iii
iv
Captulo I introduccin
1.1. Problemtica general
El desafo del problema de asignacin de horarios se ve acrecentado en las
instituciones educativas, ya que en ellas el problema se presenta cotidianamente
con cada cambio de periodo escolar. En este tipo de instituciones el problema
general consiste en proponer una planificacin de los recursos escolares
(alumnos, profesores, aulas, equipo educativo etc.) que cumpla con todas las
restricciones impuestas y obtenga una solucin aceptable en un tiempo
moderado. Como tal, esto no es una tarea trivial, ya que debido al nmero de
restricciones impuestas, estos problemas normalmente se vuelven consumidores
de tiempo y difciles de resolver ya que en ellos existe una proporcin directa
entre el tiempo y la calidad de la solucin, motivo por el cual han sido objeto de
estudio de diversos investigadores, e incluso han originado competencias
internacionales tales como international timetabling competition organizada
por metaheuristics networks[2].
Cabe mencionar que los problemas de asignacin de horarios pueden ser
solucionados con diferentes tcnicas tradicionales tales como bsquedas
exhaustivas o programacin lineal. Sin embargo, este tipo de tcnicas
normalmente slo son capaces de resolver instancias pequeas del
problema[43]. Para problemas con una gran cantidad de insumos el tiempo
computacional puede ser inviable, ademas de no garantizar la satisfaccin de las
restricciones.
Debido a lo anterior, han sido desarrollados diversos algoritmos con tcnicas no
tradicionales tales como bsquedas locales, algoritmos genticos y metaheursticas en general, que sean capaces de resolver este tipo de problemas en
un tiempo menor y que aseguren hasta cierto punto la satisfaccin de las
restricciones.
En este trabajo se resolver una instancia real de un problema de asignacin de
horarios en instituciones educativas, tomando como caso de estudio la Facultad
de Psicologa de la Universidad Veracruzana y se dar solucin al mismo
mediante el uso de un algoritmo evolutivo, todo ello siguiendo una metodologa
de aplicacin de este tipo de algoritmo que ha sido desarrollada en el
Laboratorio Nacional de Informtica Avanzada (LANIA) A.C. que se describe a
continuacin.
1.2.Metodologa
Parte de la misin de LANIA se basa en la aplicacin de tecnologa
emergente en la resolucin de problemas reales en el mbito educativo y
Automatizado (PATAT por sus siglas en ingles). Por otra parte, existe un grupo
de trabajo europeo especializado en la investigacin y solucin de horarios
automatizados (EURO-WATT) que se rene una vez al ao y mantiene un sitio
web con informacin relevante sobre los problemas de horarios, por ejemplo,
una bibliografa y varios puntos de referencia.
Al ser considerados problemas NP-duros[12] , los problemas de asignacin de
horarios han sido foco de mltiples investigaciones y probado con muchas
tcnicas de optimizacin, tales como bsquedas locales (bsqueda tab, recocido
simulado , coloreo etc.), algoritmos genticos, algoritmos memticos, colonia de
hormigas etc., tan solo en el periodo 2007-2008 ASAP[39] (Automated
Scheduling, optimisation and planing research group) obtuvo alrededor de 103
documentos presentados y publicados entre captulos de libros, papers y
revistas.
Uno de los enfoques de meta-heursticas ms utilizado para la resolucin de este
tipo de problemas de acuerdo al PATAT es el algoritmo de Bsqueda Tab (TSA).
Sin embargo, actualmente se est presentando una serie de artculos con
enfoques hbridos entre TSA y algoritmos evolutivos[37,38] por citar algunos, el
algoritmo ocupado es el memtico, puesto que es capaz de mezclar la potencia de
un algoritmo gentico y una bsqueda local, para tal caso en la conferencia de
2010 de PATAT se presentaron una serie de algoritmos que utilizan un TSA
como bsqueda local en un algoritmo memtico[37,38].
Por otro lado existen muchos desarrollos en el mercado que dan solucin al
problema en su manera mas general, es decir, toman en cuenta solo las
restricciones tales como empates de profesores y de aulas, sin embargo, la
mayora de estos resuelven el problema concerniente al grupo 1 (asignacin de
horarios escolares), debido a que son los que presentan el caso mas fcil de
resolver, como ejemplo de estos sistemas tenemos a docCF[13],
UNTIS[14],GES[15] , entre otros.
El solucionar este tipo de problemas es de vital importancia para una institucin
y de gran complejidad para el mundo cientfico, incluso se han organizado
certmenes internacionales, en donde se proponen un caso particular con
restricciones difciles de abordar por los participantes, como ejemplo de este
tipo de eventos tenemos a International Timetabling Competition de
Metaheuristics Networks [2] y a PATAT,International Timetabling Competition
[16].
De acuerdo al certamen del PATAT los 5 mejores algoritmos que han sido
enviados para la resolucin de asignacin de horarios son mostrados en la Tabla
1 [40]:
Autor
Tcnica utilizada
Hadrien Cambazard, Emmanuel Hebrard, Utiliza una tcnica hbrida entre un
Barry OSullivan, Alexandre Papadopoulos
operador local personalizado y un
algoritmo Large Neighborhood
Mitsunori Atsuta, Koji Nonobe, y Toshihide Utiliza una tcnica hbrida entre tabu search
Ibaraki
e iterated local search
Marco Chiarandini and Chris Fawcett and Utiliza dos mtodos un hard constraint
Holger H. Hoos
solver y un soft constraint violation
minimizer
Alfred Mayer, Clemens Nothegger, Andreas Utiliza el algoritmo ant colony
Chwatal, and Gunther Raid
Purdue University, West Lafayette
Utiliza una metodologa de varias fases que
incluye Iterative Forward Search, Hill
Climbing, Great Deluge technique y
Simulated Annealing
Tabla 1 Mejores algoritmos para la solucin de problemas de asignacin de horarios de acuerdo al
concurso del PATAT en el ao 2007[40].
1.6. Justificacin
Las justificaciones del presente trabajo de tesis son las siguientes:
1.7. Hiptesis
1.8. Objetivos
Los objetivos del presente trabajo son los siguiente:
Evolucin
Medio
Ambiente
Individuos
Fitness
Computacin
Evolutiva
Problema a
resolver
Soluciones
candidato
Calidad de las
soluciones
candidato
INICIO
INICIAR UNA POBLACIN CON SOLUCIONES CANDIDATO ALEATORIAS
EVALUAR CADA CANDIDATO CON UNA FUNCIN DE CALIDAD
REPETIR HASTA (SE CUMPLA UNA CONDICIN DE PARO)
SELECCIONAR PADRES
CRUZAR PADRES Y GENERAR UNA NUEVA POBLACIN
MUTAR NUEVOS INDIVIDUOS
EVALUAR NUEVOS INDIVIDUOS
SELECCIONAR INDIVIDUOS QUE PASARAN A LA SIGUIENTE GENERACIN
FIN REPETIR
FIN
Es fcil ver que este pseudocdigo cae dentro de la categora de los algoritmos
generate-and-test. La funcin de evaluacin representa una estimacin
heurstica de la solucin de calidad y el proceso de bsqueda es guiada por la
variacin de los operadores. Los algoritmos evolutivos poseen un nmero de
partes que pueden ayudarlo a posicionarlos, como se menciono antes dentro de
los mtodos generate-and-test y estos son[18]:
12
SELECCIN DE PADRES
PADRES
RECOMBINACIN O
CRUZA
MUTACIN
POBLACIN
INICIO
DESCENDENCIA
SELECCIN DE
SOBREVIVIENTES
FIN
Figura 3 Esquema de un algoritmo evolutivo basado en[18]
13
2.4.1. Representacin
El primer paso de un algoritmo evolutivo es construir los candidatos. Es
necesario pasar del contexto original del problema a su espacio de soluciones
donde la evolucin toma su lugar, esto es , construir el fenotipo y el genotipo.
Los objetos que forman las soluciones posibles del problema son llamados
fenotipos, mientras que su codificacin, es decir, los individuos con los cuales
trabaja el algoritmo evolutivo son llamados genotipos. El proceso de transformar
un fenotipo a genotipo se le llama codificacin y al proceso contrario (genotipo fenotipo) se le conoce como decodificacin, tanto al genotipo como al fenotipo se
les conoce como representaciones de una solucin. La Figura 4 muestra un
esquema de lo anterior.
CODIFICACIN
20
FENOTIPO
DECODIFICACIN
11110
GENOTIPO
20
FENOTIPO
2.4.3. Poblacin
La poblacin es un conjunto de soluciones (genotipos o fenotipos) en un
medio ambiente, y es la unidad que evoluciona en los algoritmos evolutivos, ya
que los individuos son solo elementos estticos que no cambian o se adaptan, la
evolucin se da al pasar de generacin en generacin, aunque , por supuesto , un
nmero mayor de individuos otorga una mayor diversidad en el espacio de
solucin de un problema.
14
15
2.4.7. Inicializacin
Es la primera poblacin, normalmente generada por individuos
aleatorios, sin embargo, puede ser que se genere con base en una estrategia
implementada para ayudar al algoritmo en el proceso de bsqueda.
16
2.5.1.1. Representacin
La parte ms difcil de trabajar con este tipo de algoritmos es su
representacin, si bien, los algoritmos genticos simples requieren de una
representacin binaria, ello no es una regla, y es posible crear representaciones
diversas, entre las ms comunes estn la representacin usando valores enteros
y de valores de punto flotante. Sin embargo, en este tipo de representaciones se
debe tener especial cuidado en que los operadores al momento de ser aplicados
sobre un individuo no generen valores invlidos. Supongamos que tenemos un
individuo con representacin decimal y que parte del individuo codifica una
direccin como Norte, Sur , Este y Oeste, el individuo codifica esto de la siguiente
manera Norte = 1, Sur =2,Este =3, Oeste = 4, entonces tenemos cuatro nmeros
posibles 1-2-3-4 , sin embargo , es posible que el operador de mutacin entregue
un 5 6 al mutar esta seccin de dicho individuo.
17
101000010
100100010
Figura 7 Ejemplo de mutacin binaria[28], en este caso el individuo muto los lugares 3 y 4.
123456789
153426789
18
posicin de uno de los allelos de tal forma que ambas estn juntas (ver
Figura 9).
123456789
125346789
123456789
135426789
123456789
154326789
19
20
2.5.2.1. Mutacin
Es el operador principal de las estrategias evolutivas, realiza un cambio
en los valores de las variables de los individuos aadiendo ruido aleatorio
obtenido mediante una funcin de distribucin Normal. Las desviaciones tpicas
a aplicar se encuentran dentro del mismo individuo (son calculadas a partir del
individuo mismo) y coevolucionan junto con la solucin.
Figura 15 Ejemplo de una mquina de estado finito[31], Los smbolos a la izquierda de / son de
entrada y los de la derecha son de salida. El estado inicial es C.
Desarrollada en la dcada de 1960 por Lawrence J. Fogel [20], enfatiza los nexos
de comportamiento entre padres e hijos, en vez de buscar emular a los
operadores genticos especficos [31]. Su objetivo principal es construir
individuos que sean capaces de reconocer un cierto conjunto de entradas y
proporcionar salidas correspondientes a las mismas.
Es importante destacar que este tipo de algoritmos no usan el operador de
recombinacin o cruza puesto que son una abstraccin de la evolucin a nivel de
las especies [31] y parten de la idea de que individuos de diferentes especies
pueden cruzarse.
2.5.3.1. Mutacin
Existen 5 formas posibles de mutar a un individuo cuya representacin
sea una mquina de estado finito, estas son las siguientes:
23
Figura 16 Ejemplo de una frmula lgica representada por un individuo en programacin gentica
24
2.5.4.1. Mutacin
El operador de mutacin empleado en este paradigma no difiere en gran
medida al de los algoritmos genticos, el mecanismo mas usual es seleccionar a
un individuo con base en cierta probabilidad, posteriormente se seleccionara un
nodo de ese individuo y se verificar su probabilidad de mutacin del nodo
especfico, si este nodo ser mutado se prosigue a realizar un cambio aleatorio
en el nodo seleccionado, cuidando que esta mutacin no incumpla con las
normas del individuo, por ejemplo , no genere ciclos infinitos en el caso de ser un
programa, o tenga cierta lgica, por ejemplo no cambie una funcin de tal
manera que pregunte si X == X etc.
2.5.4.2. Recombinacin o cruza
La idea bsica de este operador en la programacin gentica es
seleccionar dos individuos(padres), posteriormente para cada individuo
seleccionar un nodo aleatoriamente, una ves teniendo esto se intercambia la
informacin de los nodos, generando con esto dos nuevos individuos(hijos) (ver
Figura 18).
25
Algoritmos Memticos
lineales, Formas, no-linealidad, cercana al
problema
Llamado agente, solucin al
problema + mecanismo de mejora
local
guiado de Intercambio guiado de informacin
Intercambio no
informacin
Introduccin aleatoria de nueva Introduccin sensible de nueva
informacin
informacin
Aprendizaje Lamarckiano
26
2.5.5.2. Estructura
La Figura 19 muestra la estructura general de un algoritmo memtico
27
POBLACIN INICIAL
BSQUEDA LOCAL
POBLACIN ACTUAL
CRUZA
BSQUEDA LOCAL
MUTACIN
BSQUEDA LOCAL
BSQUEDA LOCAL
Figura 19 Estructura general de un algoritmo memtico
Aqu se puede observar las diferentes etapas en las cuales puede efectuarse la
bsqueda local. Cabe sealar que cuando aparece despus de los operadores ya
sea de cruza o de mutacin, normalmente no ocurre generacin tras generacin,
en vez de esto se prefiere acte cada determinado periodo, el cual puede ser
determinado por un nmero fijo de generaciones o por algn otro motivo tal
como la deteccin de estancamiento en las mejoras de algunos agentes
(individuos) o en la poblacin en general.
La Figura 20 muestra el pseudocdigo de un algoritmo memtico en su aspecto
ms general:
INICIO
INICIAR UNA POBLACIN CON SOLUCIONES CANDIDATO ALEATORIAS
(POSIBLE APLICACIN DE UN ALGORITMO DE BSQUEDA LOCAL)
EVALUAR CADA CANDIDATO CON UNA FUNCIN DE CALIDAD
REPETIR HASTA (SE CUMPLA UNA CONDICIN DE PARO)
SELECCIONAR PADRES
CRUZAR PADRES Y GENERAR UNA NUEVA POBLACIN
MUTAR NUEVOS INDIVIDUOS
EVALUAR NUEVOS INDIVIDUOS
IMPLEMENTAR MEJORA VA BSQUEDA LOCAL
SELECCIONAR INDIVIDUOS QUE PASARAN A LA SIGUIENTE GENERACIN
FIN REPETIR
(POSIBLE APLICACIN DE UN ALGORITMO DE BSQUEDA LOCAL)
FIN
28
29
23 aulas
1 centro de cmputo dividido en dos secciones
1 cmara de Gesell
Direccin
Secretaria acadmica
1 Auditorio
2 Audiovisuales
1 cafetera
1 Explanada con entretenimiento para los estudiantes
1 Biblioteca
Diversos cubculos para los profesores
Diversos laboratorios ubicados fuera del campus
30
Cruce de
Horarios
Cierre de
asignatura
s para
evitar
choque
Alumnos
y
docentes
insatisfechos
Falta de
planeacin
de la
informacin
Problemas sindicales
Informacin de
dificil tratamiento
que al no ser
manejada
eficientemente
conlleva a una
mala asignacin
de recursos,
cierre de
experiencias e
inconformidad
por parte de
alumnos y
docentes
Prdida
de
tiempo
Metodologa
inapropiada
Necesidad de crear
un nuevo horario
cada 6 meses
Inconsistencia
de la carga de
experiencias
entre aulas
(aulas con
mayor nmero
de asignaturas
asignadas que
otras)
Mala
asignacin
de los
recursos
Inconsistencia de
la carga de
experiencias
asignada a
docentes
(docentes con
una mayor carga
acadmica)
Desfase del
calendario acadmico
Sistema actual
100%
dependiente del
experto, su ayuda
es mnima
Alumnos y docentes
insatisfechos
Desconocimiento de
alternativas para
soluciones optimas al
problema
Alumnos,
docentes
y
personal
administrativo
insatisfechos
El personal
administra
-tivo
encargado
de la
elaboracin de
horarios
debe
abandonar
sus otras
actividade
s por un
periodo de
tiempo
considerable
Figura 23 rbol de causa y efecto, problema asignacin de horarios, Facultad de Psicologa, campus
Xalapa, Universidad Veracruzana.
31
Restricciones Blandas
32
33
34
35
Cada algoritmo desarrollado en este trabajo fue ejecutado 30 veces (de acuerdo a
[18]) y las grficas mostradas representan el valor promedio de aptitud de
dichas ejecuciones.
36
Figura 26 Algoritmo gentico con representacin binaria para resolver el problema de horarios.
4.1.1.1 Representacin
Debido al tipo de configuracin que se requiere para los individuos de este
problema se propone la siguiente representacin:
Con el objetivo de poder obtener una codificacin binaria para los individuos del
algoritmo, es necesario primero obtener una codificacin decimal y
posteriormente codificarla a un formato binario. Esto es debido a que toda la
informacin de los elementos necesarios de este problema cuenta
convenientemente con una clave nica e individual representada por un nmero
decimal, la Figura 27 muestra un ejemplo de esta situacin:
37
38
39
M = Cantidad de salones
N = Cantidad de asignaturas
P = Cantidad de profesores
D = Das de la semana
H = Horas disponibles por da
C = Nmero total de horas hbiles por semana obtenido de D * H
Donde:
Total de horas de una materia por da (THMD): Todas las materias pueden o
no tener un nmero de horas asignados en un da determinado:
40
donde :
Donde:
Donde:
41
Figura 30 Algoritmo funcin de calidad, donde solution es una solucin completa y solution{j} es una
variable de la solucin
43
4.1.1.5 Operadores
Cruza
La representacin utilizada en este algoritmo brinda la posibilidad de
desarrollar el operador de cruza de diversas maneras. El tipo de cruza utilizada
por este algoritmo es de dos puntos (vanse Figuras 33 y 34). El motivo de esta
eleccin fue debido a la simplicidad de la misma y a la superioridad mostrada
sobre la cruza de un punto de acuerdo a la literatura especializada[18].
44
Mutacin
El tipo de representacin utilizada permite el desarrollo de un operador
de mutacin sencillo, puesto que solo deber recorrer al individuo mutando
dgito por dgito su estructura con cierta probabilidad. Cabe mencionar que el
operador deber identificar si la asignatura pertenece a la seccin de basificadas
o no, y dependiendo de ello podr mutar los dgitos permitidos (vanse Figuras
35 y 36).
45
Figura 36 Algoritmo de mutacin con representacin binaria. Aqu un dgito es un bit, y un conjunto
de bits representa alguna parte de la codificacin de un gen(materia-profesor-aula-da-hora). Un
dgito es basificado si este pertenecen a un gen que corresponde a una materia basificada.
4.1.1.6 Inicializacin
Con el objetivo de generar puntos de inicio (soluciones) sobre todo el
espacio de bsqueda, la creacin de la primera poblacin de soluciones es
realizada de manera aleatoria con una distribucin uniforma (vase Figura 37):
46
47
Figura 38 Resultados del algoritmo con representacin binaria mutacin 10% cruza 98%. Las
grficas representan el valor promedio de la funcin de calidad a los largo de 1000 generaciones en
un total de 25 ejecuciones.
Mximo valor
de la funcin
de calidad
257
Mediana
66
60
8 horas 23
minutos 43
segundos
Tabla 5 Estadsticas de los resultados obtenidos con el algoritmo gentico de representacin binaria
durante 25 ejecuciones.
48
Una vez desarrollado el algoritmo fue probado con diversas probabilidades del
operador cruza siendo la mas efectiva la probabilidad de 98%, la Figura 40
muestra los resultados de esta ejecucin y la Tabla 6 las estadsticas
correspondientes:
49
Figura 40 Resultado del algoritmo representacin binaria y mutacin dinmica, cruza 98%. Las
grficas representan el valor promedio de la funcin de calidad a los largo de 1000 generaciones en
un total de 25 ejecuciones.
Mximo valor
de la funcin
de calidad
247
Mediana
57
93
10 horas 43
minutos 23
segundos
Tabla 6 Estadsticas de los resultados obtenidos con el algoritmo gentico de representacin binaria
y mutacin dinmica durante 25 ejecuciones.
50
51
4.1.2.2 Operadores
Cruza
Para el tipo de representacin decimal es necesario que el operador de
cruza conozca especficamente donde comienza un gen y termina otro dentro de
la solucin, ya que, cada parte del gen tiene mnimos y mximos nmeros
diferentes, por ejemplo si tenemos 24 aulas y 163 maestros, la parte
correspondientes a aulas permite nmeros entre 1 y 24 mientras que la parte de
maestros acepta valores entre 1 y 163. Si al cruzar se escoge un punto incorrecto
al convertir los genes podra quedar una solucin con un nmero, en la parte
correspondiente a las aulas superior a 24, motivo por el cual la cruza no elegir
un punto al azar de entre toda la solucin si no que partir de puntos que
abarquen genes completos.
Por otro lado, debido a que la cruza de dos puntos result efectiva en la
representacin binaria no se cambiar de esquema y se seguir trabajando con el
mismo enfoque(cruza de dos puntos).La modificacin al algoritmo se representa
en la Figura 42 y se ejemplifica en la Figura 43:
52
Figura 43 Ejemplo de cruza con formato decimal, muestra los puntos claves de cruza
Mutacin
La mutacin para la representacin decimal deber tener especial
cuidado de no mutar una parte de la solucin que conlleve a resultados no
validos, por ejemplo, si se manejan un mximo de 24 aulas, al mutar un aula no
ser posible que mute un nmero 25 o valores negativos. Un ejemplo del diseo
del operador de mutacin se representa en la Figura 44 y el proceso se detalla en
la Figura 45
53
54
Figura 46 Resultados del algoritmo con representacin decimal mutacin 10% cruza 98%. Las
grficas representan el valor promedio de la funcin de calidad a los largo de 1000 generaciones en
un total de 25 ejecuciones.
Mximo valor
de la funcin
de calidad
281
Mediana
92
67
1 hora 10
minutos 28
segundos
Con el objetivo de estudiar con mayor detalle el problema se decidi graficar por
separado los empates de aulas y de profesores. Sin embargo, como puede
visualizarse en la Figura 21, la mejor solucin entregada an est lejos de tener
un valor cero en la funcin de calidad. De la Figura 21 se puede concluir que la
mayor problemtica presentada son los empates de profesores, motivo por el
55
56
57
Figura 49 Resultados del algoritmo gentico con dos poblaciones, se muestra la poblacin con
representacin binaria pasando 20 individuos cada 100 generaciones. Las grficas representan el
valor promedio de la funcin de calidad a lo largo de 1000 generaciones en un total de 25
ejecuciones.
58
Figura 50 Resultados del algoritmo gentico con dos poblaciones. Se muestra la poblacin con
representacin decimal pasando 20 individuos cada 100 generaciones. Las grficas representan el
valor promedio de la funcin de calidad a los largo de 1000 generaciones en un total de 25
ejecuciones.
Tipo
de Mximo
representacin valor de la
funcin de
calidad
Binaria
237
Decimal
215
Mnimo
Media
valor de la
funcin de
calidad
48
124
20
79
Mediana
Desviacin Tiempo
estandar
total por
corrida
94
34
63
60
10 horas 30
minutos 25
segundos
Tabla 8 Estadsticas de resultados obtenidos con el algoritmo gentico con dos poblaciones durante
25 ejecuciones.
59
poblacin binaria logra disminuir a cero los empates de profesores que son el
mayor problema de la poblacin decimal.
Tomando en cuenta que en la poblacin con representacin decimal no se nota
una clara convergencia, seria factible permitirle al algoritmo seguir
desempendose para visualizar si logra obtener algn individuo con una mejor
calidad. Sin embargo, el tiempo computacional en este algoritmo fue muy alto y
completamente prohibitivo de acuerdo a lo permitido por parte de la Facultad de
Psicologa. De ah que es necesario desarrollar un algoritmo que mejore el
proceso bsqueda de soluciones existentes con un costo computacional
permisible.
60
4.1.4.1 Representacin
Debido a que el algoritmo con representacin decimal requiere un tiempo
computacional que se encuentra dentro de los mrgenes contemplados por la
Facultad de Psicologa, se optar por usar esta representacin en el algoritmo
memtico. Adems, esta representacin fue la que logro disminuir mas la funcin
de calidad en el algoritmo de dos poblaciones.
4.1.4.2 Operadores
Tomando como base las problemticas encontradas en los algoritmos
anteriores se propone la creacin de dos operadores los cuales ampliarn la
capacidad de bsqueda y apoyarn en la minimizacin de la funcin de calidad.
Operador 1
Este operador se aplicar en intervalos regulares dentro del ciclo del
algoritmo gentico e intentar disminuir los empates de profesores y
posteriormente los de aulas para las materias no basificadas. Esto debido a que
estas experiencias educativas cuentan con una mayor movilidad al poder
modificar tres de sus parmetros los cuales son hora , da y aula, mientras que las
basificadas solo tienen la posibilidad de mover el parmetro de aula. La Figura
51 muestra el algoritmo y la Figura 53 A) una representacin grfica del
funcionamiento de este operador:
61
Operador 2
Este operador se efectuar al final del algoritmo gentico e intentar
disminuir los empates de aulas para toda la solucin, es decir, a diferencia del
primer operador, no discriminar entre materias basificadas y no basificadas, sin
embargo, la manera en que buscar disminuir los empates es la misma. La Figura
52 muestra el algoritmo y la Figura 53 B) muestra un ejemplo grfico del mismo:
62
Figura 55 Resultados del algoritmo memtico cruza del 98% y mutacin del 10%. Las grficas
representan el valor promedio de la funcin de calidad (separando de ella la parte correspondiente
a los empates de maestros y aulas los cuales representan a las restricciones duras contempladas por
dicha funcin) a lo largo de 1000 generaciones en un total de 25 ejecuciones.
63
Mximo valor
de la funcin
de calidad
220
Mediana
0.079
1 hora 40
minutos 20
segundos
Tabla 9 Estadsticas de los resultados obtenidos con el algoritmo memtico durante 25 ejecuciones.
64
Figura 56 Resultados algoritmo memtico considerando restricciones duras y dbiles. Las grficas
representan el valor promedio de la funcin de calidad (incluyendo todos los tipos de restricciones
contemplados en la funcin) a lo largo de 1000 generaciones en un total de 25 ejecuciones.
65
Figura 57 Modificacin al algoritmo de inicializacin del enfoque decimal cuidando las restricciones
dbiles.
66
Figura 58 Resultados del algoritmo memtico con modificacin en inicializacin de poblacin. Las
grficas representan el valor promedio de la funcin de calidad (incluyendo todos los tipos de
restricciones contemplados en la funcin) a lo largo de 1000 generaciones en un total de 25
ejecuciones.
67
Mediana
0.060
35 minutos
23 segundos
Tabla 10 Estadsticas de los resultados obtenidos con el algoritmo memtico con modificacin en la
inicializacin de la poblacin durante 25 ejecuciones.
Figura 59 Diagrama de cajas de las poblaciones de los algoritmos desarrollados en este trabajo
68
Algoritmo
Binario
Binario
mutacin
dinamico
Decimal
Poblaciones (binario)
Poblaciones
(decimal)
Memtico
Hiptesis nula
Hiptesis alternativa
X
X
X
X
X
X
Tabla 11 Resultados despus de aplicar el test K-S a los resultados de los algoritmos desarrollados
en este trabajo
69
Al obtener estos resultados se puede comprobar que las poblaciones de todos los
algoritmos no siguen una distribucin Normal(distribucin gaussiana).
Con base en los resultados obtenidos por la prueba K-S , la siguiente prueba a
realizar ser la de Wilcoxon, que funciona para muestras no paramtricas, es
decir, que no sigan una distribucin Normal y esta diseada para evaluar si dos
muestras estn relacionadas entre s.
70
Wilcoxon
Hiptesis nula
Hiptesis alternativa
Binario vs decimal
Binario vs memetico
Poblaciones
(Binario)
Poblaciones (Decimal)
vs
Decimal vs memetico
Tabla 12 Resultados al aplicar el test de wilcoxon a los algoritmos desarrollados en este trabajo
71
Figura 60 Resultados del test de Friedman aplicado a los algoritmos desarrollados en este trabajo.
De acuerdo a los resultados obtenidos por esta prueba se puede determinar que
las muestras de los algoritmos memtico, decimal sub poblaciones y binario
mutacin dinmica son significativamente diferentes, mientras que los
algoritmos binario y binario sub-poblacin, as como binario sub poblacin y
decimal pertenecen una misma poblacin, es decir, no poseen una diferencia
significativa estadsticamente de acuerdo con la prueba de Friedman. Aunque el
punto de cruce entre las muestras es muy pequeo, como se puede apreciar en la
Figura 35.
Debido a que el punto de cruce que determina si las poblaciones pertenecen a
una misma poblacin es muy pequea y que la prueba de Wilcoxon brind como
resultado que ninguna muestra perteneca a poblaciones similares, se proceder
a realizar el test de Kruskal-Wallis para poder corroborar los resultados.
72
Figura 61 Resultados al aplicar el test Kruskal-Wallis a los algoritmos desarrollados en este trabajo
Como puede observarse en los resultados de esta prueba se puede afirmar que
todas las muestras pertenecen a poblaciones diferentes al rechazarse la hiptesis
nula y aceptarse la hiptesis alternativa.
73
Captulo V Conclusiones
5.1. Anlisis de la metodologa utilizada
El uso de la metodologa del Laboratorio Nacional de Informtica
Avanzada (LANIA) para el desarrollo de soluciones mediante el uso de
algoritmos evolutivos result ser de gran utilidad para la resolucin del
problema presentado en este trabajo. Dicha metodologa ayuda en gran medida
en la obtencin de un mayor entendimiento del problema, evaluar paso a paso el
comportamiento de los algoritmos evolutivos y brindar una solucin al mismo.
Dentro de los beneficios encontrados se mencionan los siguientes:
1. Brinda una mayor perspectiva del problema a tratar.
2. Otorga una gua paso a paso para la resolucin de problemas.
3. Permite observar modificaciones puntuales necesarias tanto en los
operadores como en las representaciones del algoritmo.
4. Es fcil de entender y de aplicar.
5. Permite atacar el problema de una forma ordenada y estandarizada.
6. Brinda un punto de inicio sencillo.
74
75
76
77
Bibliografa
[1]Wren, A., Scheduling, Timetabling and Rostering - a Special Relationship,
Lecture Notes in Computer Science 1153. Springer-Verlag, Berl n, Heidelberg,
New ork, pags. 46-75,1996.
[2] Metaheuristics Networks International Timetabling Competition
http://www.idsia.ch/Files/ttcomp2002/ consultado el 16-10-2010.
[3] Schaerf, Andrea, A survey of automated Timetabling, Technical eport CS95 7, C I - Centrum voor iskunde en Informatica, 1995.
[ ] John Fredy Franco Baquero, Eliana Mirledy Toro Ocampo, amon Alfonso
Gallego endon, Problema de asignacion optima de salones resuelto con
Busqueda tabu, INGENIE IA & DESARROLLO, Numero 24 Julio-diciembre, 2008
ISSN: 0122-3461
[5] White, G. M. Chan P. W., Towards the construction of optimal examination
timetables. INFOR 17 (1979), pp. 219229.
[6] Fifher, J. G., Shier, D. R., A heuristic procedure for large-scale examination
scheduling problems. Technical Report 417, Department of Mathematical
Sciences, Clemson University, 1983.
[7] White, G. M., Constrained satisfaction, not so constrained satisfaction and the
Timetabling problem. In: A Plenary Talk in the Proceedings of the 3rd
International Conference on the Practice and Theory of Automated Timetabling,
University of Applied Sciences, Konstanz, Aug., 1618, 2000 (2000), pp. 3247.
[8]Burke,E.K.,Newall,J.P.,Weare,R.F.,1996b.AmemeticalgorithmforUniversity
exam Timetabling. In: Burke and Ross (1996) pp. 241250.
[9] Schaerf, Andrea, A survey of automated Timetabling, Technical eport CS95 7, C I - Centrum voor iskunde en Informatica, 1995.
[10] Carter, M. W., Laporte, G., Recent developments in practical examination
Timetabling. In: Burke and Ross, pp. 321, 1996.
[11] Jos Ma. Meja Caballero , Asignacin de horarios de clases universitarias
mediante algoritmos, Universidad del norte divisin de postgrados e
investigaciones en ingeniera, maestra en ingeniera industrial, Barranquillaatlntico 2008, tesis de grado
[12]M. Carrasco and M. Pato. A Multiobjective Genetic Algorithm for the
Class/Teacher Timetabling Problem. Lecture Notes in Computer Science. Vol.
2079, pp. 3-17. 2001
[13] docCF http://www.grupocfdeveloper.com/ consultado el 16-10-2010
[14] UNTIS http://www.grupet.at/espanol/produkte/untis/uebersicht_untis.php consultado el
16-10-2010
78
79
80