Anda di halaman 1dari 84

i

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

CAPTULO I INTRODUCCIN ......................................................................................................... 1


1.1. PROBLEMTICA GENERAL....................................................................................................................... 1
1.2.METODOLOGA .......................................................................................................................................... 1
1.3. DEFINICIN DEL PROBLEMA DE ASIGNACIN DE HORARIOS ............................................................. 2
1.4. CLASIFICACIN DEL PROBLEMA ............................................................................................................. 3
1.5. TRABAJO RELACIONADO.......................................................................................................................... 4
1.6. JUSTIFICACIN .......................................................................................................................................... 6
1.6.1.
Justificacin cientfica ............................................................................................................ 6
1.6.2.
Justificacin tecnolgica ....................................................................................................... 6
1.7. HIPTESIS ................................................................................................................................................. 6
1.8. OBJETIVOS ................................................................................................................................................. 7
1.8.1. Objetivo general .................................................................................................................................. 7
1.8.2. Objetivos especficos ......................................................................................................................... 7
1.9. ORGANIZACIN DEL DOCUMENTO ......................................................................................................... 7
CAPTULO II COMPUTACIN EVOLUTIVA ................................................................................ 9
2.1. INTRODUCCIN ......................................................................................................................................... 9
2.2. HISTORIA DE LA COMPUTACIN EVOLUTIVA .................................................................................... 10
2.3. CARACTERSTICAS GENERALES DE LOS ALGORITMOS EVOLUTIVOS .............................................. 11
2.4. COMPONENTES DE LOS ALGORITMOS EVOLUTIVOS ......................................................................... 14
2.4.1. Representacin ..................................................................................................................................14
2.4.2. Funcin de calidad...........................................................................................................................14
2.4.3. Poblacin..............................................................................................................................................14
2.4.4. Mecanismo de seleccin de padres ...........................................................................................15
2.4.5. Mecanismo de seleccin de supervivientes ...........................................................................15
2.4.6. Operadores de variacin...............................................................................................................15
2.4.6.1. Mutacin ....................................................................................................................................................................... 15
2.4.6.2. Recombinacin o cruza .......................................................................................................................................... 16

2.4.7. Inicializacin ......................................................................................................................................16


2.4.8. Condicin de trmino .....................................................................................................................16
2.5. CLASIFICACIN DE LA COMPUTACIN EVOLUTIVA........................................................................... 17
2.5.1. Algoritmos Genticos ......................................................................................................................17
2.5.1.1. Representacin .......................................................................................................................................................... 17
2.5.1.2. Seleccin de candidatos......................................................................................................................................... 18
2.5.1.3. Mutacin ....................................................................................................................................................................... 18
2.5.1.4. Recombinacin cruza .......................................................................................................................................... 19

2.5.2. Estrategias Evolutivas ...................................................................................................................21


2.5.2.1. Mutacin ....................................................................................................................................................................... 22
2.5.2.2. Recombinacin o cruza .......................................................................................................................................... 22

2.5.3. Programacin Evolutiva ...............................................................................................................22


2.5.3.1. Mutacin ....................................................................................................................................................................... 23

2.5.4. Programacin Gentica ................................................................................................................23


2.5.4.1. Mutacin ....................................................................................................................................................................... 25
2.5.4.2. Recombinacin o cruza .......................................................................................................................................... 25

2.5.5. Programacin Memtica ..............................................................................................................26


2.5.5.1. Caractersticas generales ...................................................................................................................................... 27
2.5.5.2. Estructura..................................................................................................................................................................... 27

CAPTULO III CASO DE ESTUDIO ...............................................................................................29


3.1. FACULTAD DE PSICOLOGA .................................................................................................................. 29
3.2 ANLISIS DEL PROBLEMA DE ASIGNACIN DE HORARIOS................................................................ 31
3.3 SISTEMA ACTUAL ................................................................................................................................... 33
CAPTULO IV DESARROLLO Y RESULTADOS DE LA METODOLOGA PARA
SOLUCIONAR EL PROBLEMA DE ASIGNACIN DE HORARIOS DE LA FACULTAD DE
PSICOLOGA UNIVERSIDAD VERACRUZANA CAMPUS XALAPA ......................................35
4.1 DESARROLLO Y RESULTADOS DE LA METODOLOGA PARA LA SOLUCIN DEL PROBLEMA ......... 36
4.1.1 Aplicacin de algoritmos inspirados en la naturaleza en su versin original ......36

iii

4.1.1.1 Representacin ........................................................................................................................................................... 37


4.1.1.2. Funcin de Calidad................................................................................................................................................... 40
4.1.1.3 Seleccin de Padres .................................................................................................................................................. 42
4.1.1.4 Seleccin de sobrevivientes.................................................................................................................................. 43
4.1.1.5 Operadores ................................................................................................................................................................... 44
Cruza......................................................................................................................................................................................... 44
Mutacin ................................................................................................................................................................................. 45
4.1.1.6 Inicializacin ................................................................................................................................................................ 46
4.1.1.7 Condicin de paro ..................................................................................................................................................... 47
4.1.1.8 Evaluacin del desempeo del algoritmo ...................................................................................................... 47

4.1.2 Representaciones Alternativas ...................................................................................................50


4.1.2.1 Representacin decimal ......................................................................................................................................... 51
4.1.2.2 Operadores ................................................................................................................................................................... 52
Cruza......................................................................................................................................................................................... 52
Mutacin ................................................................................................................................................................................. 53
4.1.2.3 Evaluacin del desempeo del algoritmo ...................................................................................................... 54

4.1.3 Esquemas Poblacionales ................................................................................................................56


4.1.3.1 Evaluacin del desempeo del algoritmo ...................................................................................................... 57

4.1.4 Algoritmo hbrido ............................................................................................................................60

4.1.4.1 Representacin ........................................................................................................................................................... 61


4.1.4.2 Operadores ................................................................................................................................................................... 61
Operador 1............................................................................................................................................................................. 61
Operador 2............................................................................................................................................................................. 62
4.1.4.3 Evaluacin del desempeo del algoritmo ...................................................................................................... 63
4.1.4.4 Modificacin al algoritmo memtico ................................................................................................................ 66
Inicializacin......................................................................................................................................................................... 66
4.1.4.5 Evaluacin del desempeo del algoritmo ...................................................................................................... 66
4.2. VISUALIZACIN GRFICA DE LOS DATOS ........................................................................................... 68
4.3.
PRUEBAS ESTADSTICAS ............................................................................................................... 69

4.3.1. Prueba de Kolmogorov Smirnov de una muestra..........................................................69


4.3.2. Prueba de Wilcoxon ........................................................................................................................70
4.3.3. Prueba de Friedman .......................................................................................................................71
4.3.4. Prueba de Kruskal-Wallis.............................................................................................................72
CAPTULO V CONCLUSIONES.......................................................................................................74
5.1. ANLISIS DE LA METODOLOGA UTILIZADA ...................................................................................... 74
5.2. ANLISIS DE LA HIPTESIS PLANTEADA............................................................................................ 74
5.3. ANLISIS DE LOS OBJETIVOS PLANTEADOS ....................................................................................... 76
5.4. TRABAJO FUTURO ................................................................................................................................. 77
BIBLIOGRAFA .................................................................................................................................78

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

empresarial. derivado de ello, el grupo de investigacin en cmputo inspirado en


la naturaleza ha propuesto una serie de pasos que permiten la resolucin de
problemas reales usando algoritmos meta-heursticos biolgicamente inspirados
[42]. la intencin principal de la metodologa es proveer de una gua a aquellos
interesados en aplicar un algoritmo de este tipo en la resolucin de un problema
particular.
Esta metodologa cuenta con los siguientes pasos:
1. Aplicacin de algoritmos inspirados en la naturaleza en su versin
original: el primer paso consiste en aplicar el algoritmo que, de acuerdo al
estudio del estado del arte, sea el ms popular al resolver un problema
particular, en su versin original (sin modificaciones) y evaluar si el
problema se resuelve de manera satisfactoria. Para ello se asume un
diseo experimental adecuado y que proporcione evidencia slida del
desempeo del algoritmo.
2. Representaciones alternativas: el segundo paso, en el caso de que los
resultados no fueran satisfactorios en el paso previo, consiste en disear
representaciones alternativas a las soluciones del problema, de manera
que el espacio de bsqueda que se define sea diferente y donde la
bsqueda pudiera eficientarse y, as, resolver el problema de manera
satisfactoria. Este cambio de representacin puede involucrar el cambio
de los operadores de variacin que permiten generar nuevas soluciones a
partir de las ya existentes.
3. Esquemas poblacionales: si las representaciones alternativas no
funcionaran, se deber disear un esquema donde diferentes poblaciones
de soluciones manejen diferentes representaciones del problema y exista
un mecanismo de control que permita que todas ellas evolucionen de
manera paralela y colaborativa, para verificar si, en conjunto, puedan
resolver el problema.
4. Hibridacin: consiste en combinar dos algoritmos de bsqueda de manera
que puedan, en conjunto, resolver el problema. Existen dos posibilidades,
el enfoque combinado (dos algoritmos meta-heursticos que manejan
bsqueda global) o el enfoque memtico (un algoritmo meta-heurstico
de bsqueda global con un algoritmo de bsqueda local).
5. Enfoque hper-heurstico: consisten en la generacin de un mecanismo de
control que permita la ejecucin de manera conveniente de tres o ms
algoritmos meta-heursticos, donde cada uno de ellos se activa de acuerdo
a las decisiones del mecanismo de control que estn basadas en el
desempeo de cada uno de ellos.

1.3. Definicin del problema de asignacin de horarios


Los problemas de asignacin de horarios escolares pueden ser pensados
como un proceso de toma de decisiones donde concierne ubicar recursos
limitados a determinadas tareas a travs del tiempo, Wren[1] define este tipo de
problemas como : la asignacin, sujeta a restricciones, de los recursos otorgados
con el propsito de ser establecidos en un espacio de tiempo, de tal manera que
satisfaga lo ms cercanamente posible el conjunto de objetivos deseados.
2

El objetivo planteado por un problema de asignacin de horarios escolar,


comnmente llamado Scheduling, es crear una plantilla en la cual se tengan
perfectamente estructuradas las asignaciones, ya sea de materias o de exmenes
que sern impartidas por cierto grupo de profesores sin que existan choques de
horarios entre los profesores de ubicacin de las materias/exmenes en las
aulas. Como tal forma parte de la divisin de problemas NP-duros[12] debido a
la limitacin de los recursos, la cantidad de restricciones que pueden llegar a
tener y la forma en que estas son aplicadas.
Los problemas de asignacin de horarios estn asociados a organizar una
secuencia de eventos con recursos limitados y restricciones impuestas en un
periodo de tiempo especificado. Las restricciones pueden comprender hechos
tales como evitar choques de horario entre asignaturas, incapacidad de las salas,
Infra sobre-valoracin de la carga de trabajo, inadecuada disposicin para
estudiantes y profesores, sub sobre-asignacin de recursos o equipos, entre
otros [3]. Cabe sealar que cada instancia educativa presenta restricciones
propias de su institucin, aunque generalmente el problema considera el
siguiente conjunto de restricciones: asignacin de recursos, asignacin de
tiempo, restricciones de tiempo entre sesiones, capacidad de las salas,
continuidad para las sesiones etc.
Por otro lado, tomando como base las diversas complejidades de los algoritmos,
donde en primer lugar encontramos la complejidad P que son algoritmos que
encuentran siempre una solucin a un problema en tiempo polinomial.
Complejidad NP un algoritmo encuentra una solucin a un problema en tiempo
polinomial usando una computadora no determinstica. Complejidad NPCompleto: en estos no existen algoritmos de solucin exacta que entreguen
respuesta en un tiempo razonable, de ah se derivan los problemas de bsqueda
NP-duros, donde no hay algoritmo de tiempo polinomial que lo resuelva, aqu es
donde se encuentran los problemas de tipo de asignacin de horarios [12].
Existen diversas tcnicas para la resolucin de problemas de asignacin de
horarios, las cuales se clasifican en dos grandes grupos[11]:
1. Tcnicas tradicionales: Programacin entera, Programacin Lineal,
Tableau, etc.
2. Tcnicas no tradicionales: Algoritmos heursticos o meta-heursticos
que proveen de una buena solucin en un tiempo moderado y que suelen
proveer de mejores resultados en instancias grandes del problema.

1.4. Clasificacin del problema


Una de las clasificaciones ms comunes para los problemas de asignacin
de horarios es de acuerdo al tipo de problema que se presente en una situacin
real, aqu es posible diferenciar tres diferentes tipos, de acuerdo a la
caracterizacin hecha por A. Wren[1].

1. Rostering (Lista, Catalogo): ubicacin de recursos en determinados


periodos siguiendo un patrn.
2. Sequencing (Secuenciacin): encontrar un orden para la ejecucin de
las actividades.
3. Timetabling: muestra cundo una tarea o evento en particular debe ser
llevado a cabo.

La asignacin de horarios se utiliza diariamente en distintas reas para regular


diferentes operaciones donde sea necesaria una ubicacin de una herramienta
en un sitio determinado en una hora especfica, como por ejemplo en el
transporte (vuelos areos), en el estudio (programacin de clases o de
exmenes), en salud (programacin de cirugas), en el campo del
entretenimiento (deportes, eventos en festivales), etc.
La educacion superior es uno de los campos donde el empleo de buenas tecnicas
de secuenciacion ha llegado a tener mucha importancia en los ultimos anos,
debido a la cantidad de materias que el estudiante puede elegir segn su
inclinacin y a los modelos flexibles, lo que incrementa la dificultad al momento
de programar clases o exmenes. Existen tres categoras en la asignacin de
horarios educativos:
1. Asignacin de horarios escolares: este grupo considera el
problema horario semanal para las sesiones de las asignaturas de
una escuela, el problema consiste en asignar las sesiones por
periodo de tiempo, evitando los choques de horario entre los
profesores, de tal manera que ningn profesor tenga asignadas dos
asignaturas en un mismo periodo de tiempo, en este tipo de
problemas las asignaturas cuentan con un horario y aula
establecidos.
2. Asignacin de horarios universitarios: Consiste en organizar un
horario para las sesiones de un conjunto de asignaturas, tomando
en consideracin un nmero determinado de salas y bloques de
tiempo, presentan el mismo problema de empates de profesores,
las asignaturas no poseen un horario predeterminado y
generalmente no todas las aulas son aptas para todas las
asignaturas.
3. Asignacin de horarios de exmenes: Consiste en asignar el
horario a los exmenes, determinando la cantidad de salas,
capacidad de las mismas (pueden ser de capacidades diferentes) y
tiempo para realizar cada examen.

1.5. Trabajo relacionado


Una gran cantidad de investigaciones para la solucin de los problemas de
asignacin de horarios ha sido presentada en la serie de conferencias
internacionales sobre la prctica y teora de Programacin de Horarios

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.6.1. Justificacin cientfica


Dado que no se tienen antecedentes de la aplicacin de la metodologa
antes descrita en problemas de asignacin de horarios se desea evaluar su
aplicacin en una instancia real proveniente de la Facultad de Psicologa de la
Universidad Veracruzana.
1.6.2. Justificacin tecnolgica
Considerando que no se tienen antecedentes de la aplicacin de tcnicas
emergentes de inteligencia artificial en la resolucin del problema de asignacin
de horarios en la Universidad Veracruzana, se busca probar su factibilidad y asu
vez que se puede generar una herramienta til y eficiente en una Facultad de la
Universidad Veracruzana.

1.7. Hiptesis

Es posible encontrar, en un tiempo razonable para el usuario, una


solucin factible, es decir, un horario que cumpla con los requerimientos
establecidos por la Facultad de Psicologa, mediante el uso de un algoritmo metaheurstico inspirado en la naturaleza.
Los requerimientos de la Facultad de Psicologa versan sobre la eliminacin de
empalmes de horarios entre maestros y aulas en un tiempo permitido por dicha
Facultad y el cuidar que se mantenga la asignacin de materias basificadas, entre
otros aspectos que se detallarn ms adelante en este documento.

1.8. Objetivos
Los objetivos del presente trabajo son los siguiente:

1.8.1. Objetivo general


Encontrar una solucin computacional, basada en algoritmos meta-heursticos
inspirados en la naturaleza, que sea capaz de resolver de manera automatizada
la asignacin de horarios de la Facultad de Psicologa, campus Xalapa, de la
Universidad Veracruzana.

1.8.2. Objetivos especficos


1. Disear un algoritmo, basado en la metodologa de aplicacin de
algoritmos meta-heursticos inspirados en la naturaleza, que sea capaz de
brindar una solucin eficiente y eficaz al problema de asignacin de
horarios de dicha Facultad.
2. Generar un diseo experimental que permita valorar adecuadamente el
desempeo de los algoritmos que se generen con base en la metodologa
antes descrita
3. Crear un sistema que sea capaz de optimizar la recoleccin , modificacin
y extraccin de la informacin de experiencias educativas, asignaturas,
docentes y horarios escolares de la Facultad de Psicologa , campus
Xalapa, Universidad Veracruzana.
4. Generar un prototipo funcional que permita el uso del algoritmo descrito
en el objetivo no. 1 de esta lista

1.9. Organizacin del documento


El documento est organizado de la siguiente manera:

El captulo 2 incluye una introduccin al cmputo evolutivo,


destacando sus principales algoritmos.
7

El captulo 3 describe el caso de estudio resuelto en este trabajo.

El captulo 4 presenta el desarrollo de la metodologa descrita


anteriormente (captulo 1) y detalla los resultados obtenidos por cada
algoritmo desarrollado.

Finalmente el captulo 5 resume las conclusiones de la tesis y


establece el trabajo futuro.

Captulo II Computacin Evolutiva


2.1. Introduccin
Yo al igual que Dios no juego al azar ni creo en la casualidad V de
Vendetta
La naturaleza encuentra brillantes soluciones a los problemas mediante la
evolucin continuada de las especies. Ligeras variaciones aleatorias en los genes
de los descendientes, dan lugar a individuos con diferente capacidad de
adaptacin a su entorno. Primando la reproduccin de los mejor adaptados, la
especie evoluciona a formas cada vez ms eficientes para sobrevivir en su
entorno.
La computacin evolutiva es una rama de la inteligencia artificial utilizada
principalmente en problemas con espacios de bsqueda extensos y no lineales,
en donde otros mtodos no son capaces de encontrar soluciones en un tiempo
razonable. sta toma su inspiracin en los procesos naturales de la evolucin, el
hecho de que muchos cientficos hayan elegido a la evolucin natural como
medio de inspiracin para la creacin de algoritmos no es nada sorprendente, ya
que el poder de la evolucin (la forma en la que sta se manifiesta) es evidente
en todas las especies del planeta. Este tipo de computacin ayuda a la resolucin
de problemas en los que su espacio de bsqueda es tan amplio que es imposible
poder abarcarlo todo para entregar la solucin ptima.
La evolucin natural puede ser vista de la siguiente manera: se tiene un medio
ambiente con una cierta poblacin de individuos que intentan sobrevivir y
reproducirse en dicho medio. La calidad (aptitud) de estos individuos est dada
por su medio ambiente, en donde, los mejores individuos (los ms aptos) son
aquellos que logran el objetivo de adaptarse al medio ambiente y por tanto
reproducirse, generando con esto una descendencia capaz de adaptarse mejor al
medio que sus predecesores.
La idea original de la computacin evolutiva es intentar emular a la evolucin
natural (ver Figura 1), en donde, la calidad de los individuos en un medio
ambiente es generada a travs de una funcin, normalmente llamada funcin de
aptitud, los individuos son soluciones completas generadas normalmente al azar
y se evalan a modo de que los mejores individuos sean capaz de reproducirse y
dejar descendencia (semillas o nuevas soluciones posibles), las cuales a su vez
pasarn por la misma funcin de calidad para ver quienes podrn reproducirse
en una futura generacin y el proceso se repite hasta cumplir con una condicin
de paro.
La computacin evolutiva ofrece la posibilidad de resolver problemas cuyo
espacio de bsqueda sea muy complejo o tenga demasiados ptimos locales en
los cuales los algoritmos tradicionales converjan demasiado rpido en una
solucin factible.

Evolucin

Medio
Ambiente

Individuos

Fitness

Computacin
Evolutiva

Problema a
resolver

Soluciones
candidato

Calidad de las
soluciones
candidato

Figura 1 Computacin natural imitando a la evolucin natural(basado en [18]).

2.2. Historia de la computacin evolutiva


La idea bsica de aplicar los principios darwinianos para la
automatizacin de solucin de problemas complejos data de los aos 40. Ya en
1948 Alan Turing propuso la bsqueda de la evolucin gentica y por 1962
Bremermann ya haba realizado experimentos acerca de la optimizacin de la
evolucin y la recombinacin.
Los primeros ejemplos de algoritmos genticos aparecieron a principios de los
aos 60, programados en computadoras por bilogos evolutivos que buscaban
explcitamente realizar modelos de aspectos de la evolucin natural. A ninguno
de ellos se le ocurri que esta estrategia podra aplicarse de manera ms general
para la solucin de diversas ndoles, pero ese reconocimiento no tardara en
llegar, de hecho en palabras de Mitchell[35] La computacin evolutiva estaba
definitivamente en el aire en los das formativos de la computadora electrnica.
En 1962 H.J. Bremermann haba desarrollado algoritmos inspirados en la
evolucin para optimizacin de funciones y aprendizaje automtico, pero sus
trabajos generaron poca reaccin. En 1965 surgi un desarrollo ms exitoso,
cuando Ingo Rechenberg y Schwefel dieron a conocer lo que llamaron
estrategias evolutivas [23,24]. En esta tcnica no haba poblacin ni
cruzamiento; un padre mutaba para producir un descendiente, y se conservaba
el mejor de los dos, convirtindose en el padre de la siguiente ronda de mutacin.
Versiones posteriores introdujeron la idea de poblacin.
El siguiente desarrollo importante en el campo vino en 1966, cuando L.J. Fogel,
A.J. Owens y M.J. Walsh[19,20] introdujeron en Amrica una tcnica que
llamaron programacin evolutiva. En este mtodo, las soluciones candidatas
para los problemas se representaban como mquinas de estado finito sencillas;
al igual que en la estrategia evolutiva de Rechenberg, su algoritmo funcionaba
mutando aleatoriamente una de estas mquinas simuladas y conservando la
mejor de las dos. Tambin al igual que las estrategias evolutivas, hoy en da
existe una formulacin ms amplia de la tcnica de programacin evolutiva que
todava es un rea de investigacin en curso. Sin embargo, lo que todava faltaba
en estas dos metodologas era el reconocimiento de la importancia del
cruzamiento.
En 1962, el trabajo de John Holland [21,22] estableci las bases para desarrollos
posteriores; y lo que es ms importante, Holland fue tambin el primero en
proponer explcitamente el cruzamiento y otros operadores de recombinacin.
10

Sin embargo, el trabajo fundamental en el campo de los algoritmos genticos


apareci en 1975, con la publicacin del libro Adaptation in natural and
artificial systems'' por parte de Holland. Este libro fue el primero en presentar
sistemtica y rigurosamente el concepto de sistemas digitales adaptativos
utilizando la mutacin, la seleccin y el cruzamiento, simulando el proceso de la
evolucin biolgica como estrategia para resolver problemas. El libro tambin
intent colocar a los algoritmos genticos sobre una base terica firme
introduciendo el concepto de esquema [35,36]. Ese mismo ao, la importante
tesis de Kenneth De Jong Analisys of the behaviour of a class of genetic
adaptative system estableci el potencial de los AGs demostrando que podan
desenvolverse bien en una gran variedad de funciones de prueba, incluyendo
paisajes de bsqueda ruidosos, discontinuos y multimodales[30] .
Estos trabajos establecieron un inters ms generalizado en la computacin
evolutiva. Entre principios y mediados de los 80, los algoritmos genticos se
estaban aplicando en una amplia variedad de reas, desde problemas
matemticos abstractos como el bin-packing y la coloracin de grafos hasta
asuntos tangibles de ingeniera como el control de flujo en una lnea de
ensamble, reconocimiento, clasificacin de patrones y optimizacin estructural
etc.[30].
Al principio, estas aplicaciones eran principalmente tericas, sin embargo, al
seguir proliferando la investigacin, los algoritmos genticos migraron hacia el
sector comercial, al cobrar importancia con el crecimiento exponencial de la
potencia de computacin y el desarrollo de Internet. Hoy en da, la computacin
evolutiva es un campo floreciente, y los algoritmos genticos estn resolviendo
problemas de inters cotidiano en reas de estudio tan diversas como la
prediccin en la bolsa y la planificacin de la cartera de valores, ingeniera
aeroespacial, diseo de microchips, bioqumica y biologa molecular, diseo de
horarios en aeropuertos y lneas de montaje y en el corazn de todo esto se halla
nada ms que la simple y poderosa teora de Charles Darwin: que el azar en la
variacin, junto con la ley de la seleccin, es una tcnica de resolucin de
problemas de inmenso poder y de aplicacin casi ilimitada.

2.3. Caractersticas generales de los algoritmos evolutivos


La idea bsica de todas las tcnicas de los algoritmos evolutivos es la
siguiente:

Obtener una poblacin inicial de individuos (soluciones factibles).


Determinar un medio ambiente para la poblacin que cause una seleccin
natural.
Determinar una funcin de calidad para los individuos dentro del medio
ambiente.

La idea detrs de esto es cruzar y mutar a los individuos, en la cruza se


seleccionan a dos o ms individuos (padres), se toman caractersticas de los
mismos y se generan nuevos individuos a partir de la combinacin de las
11

caractersticas de los padres. En la mutacin se toma a un individuo mediante


cierta probabilidad y se altera su cdigo ligeramente, hasta generar a un nuevo
individuo. Estos parmetros permiten entre otras cosas crear diversidad (por
medio de la mutacin) y explotar soluciones factibles para obtener una mejor
solucin (por medio de la cruza).
Cabe mencionar que el proceso de mutacin y cruza es estocstico ya que al
seleccionar a los individuos se requiere de la generacin de nmeros aleatorios,
sin embargo, el proceso de seleccionar a los individuos ms aptos mediante
tcnicas como ruleta o torneo sesga la bsqueda hacia zonas prometedoras del
espacio de bsqueda.
La Figura 2 muestra el pseudocdigo general de un algoritmo evolutivo:

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

Figura 2 Algoritmo evolutivo general [30]

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]:

Son basados en poblacin, procesan varias soluciones candidato


simultneamente.
Usan la recombinacin para mezclar la informacin de varios candidatos.
Son estocsticos.

Su esquema general se muestra en la Figura 3[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]

La representacin de los candidatos puede variar significativamente, siendo las


mas comunes:

Cadenas de String de un cierto alfabeto (algoritmos genticos)


Vectores con valores reales(Estrategias evolutivas)
Mquinas de estado finito(Programacin evolutiva)
rboles(Programacin gentica)

Sin embargo, existen representaciones alternativas dependiendo del problema


que se quiere resolver.

13

2.4. Componentes de los algoritmos evolutivos


Los componentes principales de los algoritmos evolutivos son los
siguientes:

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

Figura 4 Codificacin y decodificacin de soluciones

2.4.2. Funcin de calidad


El objetivo de la funcin de calidad es representar los requerimientos
para la adaptacin de los individuos en el medio ambiente. Esta funcin es
asignada a las representaciones de los individuos (sea genotpica o fenotpica)
para determinar su calidad dentro del medio ambiente y asignar su probabilidad
de supervivencia o cruza dentro de la poblacin.

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

2.4.4. Mecanismo de seleccin de padres


Este mecanismo es el encargado de seleccionar los individuos que podrn
generar descendencia. Normalmente los individuos con una mayor calidad
(definida mediante la funcin de calidad) tienen mayor posibilidad de ser
elegidos, sin embargo, si slo los de mejor calidad son elegidos se puede
presentar la situacin de encontrarse atrapado en algn ptimo local, esto es,
puede que el algoritmo pierda diversidad.

2.4.5. Mecanismo de seleccin de supervivientes


Similar al mecanismo de seleccin de padres, con la diferencia del
momento en que operan, ya que mientras la seleccin de padres acta antes de
generar la descendencia, el mecanismo de supervivencia acta despus de
generada la descendencia y es la encargada de elegir a los individuos de mejor
calidad (aunque depende del algoritmo evolutivo adaptado) para que pasen a la
siguiente generacin.

2.4.6. Operadores de variacin


Su objetivo es crear nueva descendencia a partir de una anterior y con
esto generar nuevas soluciones candidato. Como tal tenemos los siguientes:
2.4.6.1. Mutacin
Es una pequea variacin impuesta a un individuo, este operador es
siempre estocstico y su objetivo radica en brindar una mayor diversidad a la
poblacin (ver Figura 5).

Figura 5 Ejemplo de Mutacin

15

2.4.6.2. Recombinacin o cruza


Es el proceso de combinar dos o ms individuos para generar nuevos con
caractersticas similares a sus predecesores, a este proceso se le llama
descendencia. Al igual que la mutacin, este operador es estocstico, aunque la
seleccin de los individuos a cruzarse puede variar, ya sea por la implementacin
de una ruleta de probabilidades, el uso de un torneo, etc.
El objetivo es explotar varias soluciones dadas al combinar individuos y generar
nuevos (ver Figura 6).

Figura 6 Ejemplo de una cruza de dos puntos

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.

2.4.8. Condicin de trmino


Existen varias condiciones de terminacin para los algoritmos evolutivos,
entre las ms populares tenemos :

El mximo tiempo de procesamiento permitido por el CPU.


Por un periodo de tiempo determinado.
Por un determinado nmero de generaciones (ciclos del algoritmo).
El valor de la funcin de aptitud de la poblacin alcanz el valor de un
umbral (no se detectan mejoras significativas).
La funcin de calidad ha llegado a su lmite (se encontr al mejor
individuo o a un ptimo deseable).

16

Una vez terminado el algoritmo se procede normalmente a devolver aquellos


individuos que maximicen o minimicen la funcin de calidad segn sea el caso
deseado.

2.5. Clasificacin de la computacin evolutiva


Existen diferentes paradigmas dentro de la computacin evolutiva, la mayora de
ellos difiere generalmente en la representacin de los individuos, aunque otras lo
hacen en la forma y utilizacin de los componentes del algoritmo evolutivo. Las
principales se presentan a continuacin.

2.5.1. Algoritmos Genticos


Los algoritmos genticos fueron inicialmente concebidos por Holland
como resultado de su estudio acerca del comportamiento adaptativo [28] y
plasmados en su libro Adaptation in natural and artificial system.
Los algoritmos genticos en su versin ms estricta poseen una representacin
binaria, una funcin de calidad que les permita sobrevivir en un medio ambiente
y que acte generacionalmente, deben tener una probabilidad de mutacin muy
baja y hacen nfasis en una cruza inspirada genticamente.

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

2.5.1.2. Seleccin de candidatos


La seleccin de los candidatos tanto para cruzarse como para formar
parte de la nueva generacin usualmente se logra implementando ya sea una
ruleta, en la cual a cada individuo le corresponde determinada porcin de
probabilidad dependiendo de su contribucin al total de aptitud en la poblacin
Se gira la ruleta y se selecciona al individuo correspondiente, este mtodo
asegura en cierta medida que los individuos con mejor calidad sern los elegidos
para reproduccin. Otro mtodo popular es implementar torneos, en los cuales
se seleccionan dos o mas individuos y se elige al mejor candidato determinado
por su funcin de calidad, en ambas metodologas el proceso se repite hasta
obtener el nmero de individuos requeridos para reproduccin.
Es comn en los algoritmos genticos conservar de generacin en generacin
ciertos individuos con el fin de que stos generen descendencia, normalmente se
seleccionan a los mejores de la generacin anterior, los cuales reemplazan a los
peores de la nueva generacin (determinado por la funcin de calidad).
2.5.1.3. Mutacin
La mutacin en los algoritmos genticos es el operador encargado de
generar diversidad en la poblacin, cambia (muta) una parte de un individuo.
Normalmente se efecta despus de la recombinacin o cruza. Existen diversos
tipos de mutaciones, y algunas cambian dependiendo la representacin de los
individuos. Dentro de las ms comunes tenemos las siguientes:

Mutacin Binaria: en representaciones binarias se toma cada bit por


separado y se estima su probabilidad de mutar, si esta fue positiva, es
decir, se mutar, cambiara su nmero de 0 a 1 de 1 a 0 segn sea el caso
(ver Figura 7).

101000010

100100010

Figura 7 Ejemplo de mutacin binaria[28], en este caso el individuo muto los lugares 3 y 4.

Mutacin Swap: En este tipo de mutacin no es necesario una


representacin binaria como tal, simplemente se debe seleccionar dos
posiciones(alelos) de un individuo aleatoriamente y se intercambian de
lugar ( ver Figura 8).

123456789

153426789

Figura 8 Ejemplo de mutacin swap[28] en este caso se seleccionaron e intercambiaron las


posiciones 2 y 5

Mutacin de Insercin: Parecido a la mutacin swap, aqu se seleccionan


dos posiciones (alelos) de un individuo aleatoriamente y se cambia la

18

posicin de uno de los allelos de tal forma que ambas estn juntas (ver
Figura 9).

123456789

125346789

Figura 9 Ejemplo de mutacin de insercin[28] aqu fueron seleccionadas las posiciones 2 y 5

Mutacin Scramble: En este tipo de mutacin se seleccionan dos puntos


aleatoriamente, se toman todas las posiciones(allelos) del individuo que
estn entre los puntos seleccionados y se revuelven (ver Figura 10).

123456789

135426789

Figura 10 Ejemplo de mutacin Scramble[28] aqu fueron seleccionados los puntos 2 y 5

Mutacin de Inversin: Aqu se seleccionan dos posiciones de un


individuo, se toman todos las posiciones intermedias y se invierte su
orden (ver Figura 11).

123456789

154326789

Figura 11 Ejemplo de mutacin de inversin[28] aqu fueron seleccionadas las posiciones 2 y 5

2.5.1.4. Recombinacin cruza


Para muchos el ms importante de los operadores en los algoritmos
genticos. La cruza es la encargada de explotar las soluciones posibles, su
funcin es la de generar una nueva poblacin (crear descendencia) generacin
tras generacin. En su forma bsica selecciona dos individuos (llamados padres)
, toma la informacin de ambos y crea un nuevo individuo con partes de
informacin de los dos individuos seleccionados con anterioridad.
Existen diversas formas de cruzar a los individuos seleccionados, algunas
inspiradas en la biologa y otras propias de la representacin elegida, las ms
comunes son las siguientes:

19

Recombinacin de un punto: Aqu se selecciona un punto aleatorio de un


individuo y se cambia a partir del punto determinado la informacin de
ambos individuos seleccionados para generar exactamente otros dos
individuos (descendencia). Aqu, para el primer individuo creado se toma
la primera seccin del individuo seleccionado 1 (la parte antes del punto
incluyendo al mismo) y la parte posterior al punto del individuo
seleccionado 2, de la misma manera para generar al segundo individuo
simplemente se intercambian las posiciones tomadas (ver Figura 12).

Figura 12 Ejemplo de recombinacin de un punto[28] aqu fue seleccionado el punto 4

Recombinacin de N-puntos: De la misma manera que la anterior, con la


diferencia de que aqu es posible seleccionar mas de un punto (ver Figura
13).

Figura 13 Ejemplo de una cruza de dos puntos[28]

20

Cruza uniforme: En este tipo de cruza se asigna una probabilidad


(normalmente de 0.5) a cada parte del individuo(alelo) y se efecta un
volado, de tal manera que si gana el individuo 1, esa parte de l pasar al
nuevo individuo, si pierde ser el individuo 2 quien proporcione su gen. El
proceso se repite para todas las partes de los individuos. Este tipo de
cruza puede generar varios individuos a partir de solo dos predecesores
(ver Figura 14).

Figura 14 Ejemplo de cruza uniforme[28]

2.5.2. Estrategias Evolutivas


Las estrategias evolutivas fueron inventadas en la dcada de 1960 por
Rechenberg y Schwefel quienes estaban trabajando en la Universidad Tcnica de
Berln en aplicaciones concernientes a la optimizacin de formas, ellos
describieron un algoritmo bsico llamado los dos eslabones de la estrategia
evolutiva.
Este tipo de algoritmos trabajan con una poblacin de individuos que pertenecen
al dominio de los nmeros reales, que mediante los procesos de mutacin y de
recombinacin evolucionan para alcanzar el ptimo de la funcin objetivo.
Cada individuo de la poblacin es una solucin potencial al problema, la
representacin de cada individuo de la poblacin consta de 2 tipos de variables:
las variables objeto y las variables estratgicas. Las variables objeto son los
posibles valores que hacen que la funcin objetivo alcance el ptimo global y las
variables estratgicas son los parmetros mediante los que se gobierna el
proceso evolutivo o, en otras palabras, las variables estratgicas indican de qu
manera las variables objeto son afectadas por la mutacin.
Haciendo una analoga ms precisa, el genotipo en las estrategias evolutivas es el
conjunto formado por las variables objeto y las variables estratgicas y el
fenotipo son las variables objeto, ya que conforme se da la variacin de stas, se
percibe un mejor o peor desempeo del individuo.
Las estrategias evolutivas pueden definirse como algoritmos evolutivos
enfocados hacia la optimizacin paramtrica, teniendo como caractersticas
21

principales que utilizan una representacin a travs de vectores reales, una


seleccin de supervivientes determinstica y operadores genticos especficos de
cruce y mutacin.
Las estrategias evolutivas pueden dividirse en dos tipos: Simples y Mltiples.

Simples: Son consideradas como procedimientos estocsticos de


optimizacin paramtrica con paso adaptativo. Esta caracterstica las
hace similares al recocido simulado. En este caso, se hace evolucionar un
solo individuo usando nicamente a la mutacin como operador gentico.
Son relativamente sencillas, y se denominan tambin estrategias
evolutivas de dos miembros. Debido a que evoluciona un solo individuo a
la vez, no son consideradas estrictamente como mtodos evolutivos. A
pesar de ser muy sencillas, son de gran utilidad prctica y han sido
utilizadas, con algunas mejoras, para resolver problemas reales en
diversas reas.

Mltiples: Surgen como respuesta a las debilidades de las estrategias


evolutivas simples, las cuales tienden a converger hacia sub-ptimos. En
las estrategias evolutivas mltiples existen mltiples individuos
(poblacin), y se producen en cada generacin varios nuevos individuos,
usando los operadores de mutacin y cruza. En cuanto a los criterios de
reemplazo, siempre se usa un esquema determinstico pudindose
utilizar una estrategia de insercin o de inclusin.

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.

2.5.2.2. Recombinacin o cruza


En las estrategias evolutivas el cruce se realiza de una forma literalmente
sencilla, simplemente se toman dos individuos y a partir de ellos se generara un
nuevo individuo, el cual en cada casilla del arreglo de nmeros reales se coloca el
promedio del valor que sus predecesores tienen en la misma posicin.

2.5.3. Programacin Evolutiva


La programacin evolutiva fue desarrollada originalmente para simular la
evolucin como un proceso de aprendizaje para poder generar inteligencia
artificial. Esta rama de la computacin evolutiva es prcticamente una variacin
22

de los algoritmos genticos, donde el cambio ms significativo es la


representacin de los individuos, puesto que aqu cada individuo de la poblacin
est formado por una mquina de estado finito (ver Figura 15).

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:

Cambiar un smbolo de salida.


Cambiar una transicin.
Agregar un estado.
Borrar un estado.
Cambiar el estado inicial.

2.5.4. Programacin Gentica


Este tipo de algoritmos son una variacin de los algoritmos genticos, en
donde su diferencia mas sustancial es la representacin de los individuos, puesto
que aqu cada individuo es representado por un rbol. El objetivo principal de

23

esta tcnica de la computacin evolutiva es la evolucin automtica de


programas usando ideas basadas en la seleccin natural, permitiendo realizar
regresin simblica, esto es, permiten obtener adems de un dato numrico
predictivo, una expresin matemtica en funcin de las variables de entrada[32].
Bsicamente son una metodologa automatizada inspirada por la evolucin
biolgica para encontrar programas informticos que mejor realicen una tarea
definida por el usuario. Es por ello que son una tcnica de aprendizaje de
mquina particular que utiliza un algoritmo evolutivo para optimizar una
poblacin de programas informticos segn una funcin de calidad determinada
por la habilidad de un programa para realizar una tarea computacional dada.
Tomando como base el tipo de representacin de los individuos dentro de esta
tcnica es fcil entender su gran potencial, por ejemplo tomando en cuenta la
siguiente frmula lgica :
, su representacin
se muestra en la Figura 16:

Figura 16 Ejemplo de una frmula lgica representada por un individuo en programacin gentica

Incluso es fcil representar algn programa informtico, por ejemplo , tomando


como base el siguiente algoritmo :
Int i = 1
While (i < 20)
i = i+1;
su representacin se muestra en la Figura 17:

24

Figura 17 Ejemplo de un algoritmos representando por un individuo en programacin gentica

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).

Figura 18 Ejemplo de cruza en la programacin gentica[28]

25

2.5.5. Programacin Memtica


Los algoritmos memticos son tcnicas de optimizacin que combinan
sinrgicamente la bsqueda basada en poblaciones (algoritmos evolutivos) y las
bsquedas locales (Tab, Recosido Simulado etc.). Su idea fundamental es
mantener una cierta poblacin mediante los operadores tradicionales de los
algoritmos evolutivos(cruza y mutacin) e ir evolucionando estos individuos
mediante mejoras significativas a cada uno con bsquedas locales, es aqu donde
se diferencian de los algoritmos genticos, puesto que en los algoritmos
memticos el individuo evoluciona constantemente al aplicarse un
procedimiento meta heurstico en l, dado que tienen la capacidad de
evolucionar por s solo mediante una bsqueda local. Los diseadores de
algoritmos memticos prefieren denominarle agente a un individuo. La Tabla 2
muestra las diferencias entre un algoritmo gentico y un memtico[33]
Operadores Algoritmos Genticos
Codificacin Esquemas, cadenas
alfabetos predefinidos
Individuo
Solucin al problema
Cruza
Mutacin
Mejora local

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

Tabla 2 Diferencias entre un algoritmo gentico y un algoritmo memtico

La primera diferencia significativa entre estas dos tcnicas de la computacin


evolutiva es la codificacin de los individuos, puesto que en los algoritmos
genticos se parte de cadenas que mediante codificacin se obtiene una solucin
(fenotipo y genotipo), sin embargo, sta no es una restriccin para los algoritmos
memticos, ya que stos se basan en una experiencia de la persona que los esta
creando. Entonces es posible ajustar cualquier tipo de modelo como individuo,
en ocasiones, los individuos pueden tener algn programa o mejora significativa
en ellos mismos.
En el caso de la mutacin, para los dems algoritmos evolutivos esta es un
proceso estocstico, sin embargo, en los memticos se prefiere sea una mutacin
especializada en el problema, la cual deber modificar a un agente (individuo)
significativamente con la idea de que mejore su calidad.
El operador de cruza tambin se ve afectado, puesto que en los algoritmos
memticos es guiada, es decir, se pretende cruzar individuos de tal forma que su
descendiente obtenga especficamente lo mejor de ambos, motivo por el cual su
desarrollo y modelo depende exclusivamente del problema en cuestin, el
ejemplo mas comn de esto es la cruza EAX[34] (Edge Assembly Crossover)
diseada especficamente para problemas del agente viajero.

26

La diferencia ms significativa es la aplicacin de bsquedas locales para mejorar


a los agentes (individuos) de la poblacin, pues es la principal fuerza de los
algoritmos memticos, ya que sus agentes son capaces de evolucionar
individualmente, al mismo tiempo que evoluciona la poblacin gracias a los
operadores de cruza y mutacin. Existen diversos momentos en los cuales
pueden aplicarse los operadores de bsqueda locales, normalmente se prefiere
sea despus de aplicar los operadores de mutacin y cruza. Sin embargo, puede
ocurrir al generar la poblacin inicial, o inclusive al terminar el ciclo de
generaciones. En este ltimo caso se dice que trabaja como si un algoritmo
gentico diera buenas semillas a un algoritmo de bsqueda local.

2.5.5.1. Caractersticas generales

Los algoritmos memticos son algoritmos hbridos que incorporan


conocimiento y combinan estrategias de bsqueda.
Se potencia al mecanismo cooperativo de los algoritmos evolutivos
incorporando un mecanismo guiado de competicin.
Los individuos tienen la potencialidad de intentar mejoras, y compiten
entre s por propagar su descendencia.
En la terminologa de los algoritmos memticos, a los individuos se los
denomina agentes.
La operativa de un algoritmo memtico es la de un algoritmo evolutivo
tradicional, con el agregado de una bsqueda local.

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

Figura 20 Pseudocdigo de algoritmo memtico[18]

28

Captulo III caso de estudio


3.1. Facultad de Psicologa
La Facultad de Psicologa (Figura 21 y 22) de la Universidad Veracruzana
Campus Xalapa, est ubicada en el municipio de Xalapa , estado de Veracruz,
Mxico. Es una institucin de educacin superior que ofrece la carrera de
Licenciatura en Psicologa. Fundada en 1963. Entre los aos 1966 al 1976 logr
ocupar un lugar prominente en el desarrollo y enseanza de la Psicologa a nivel
Nacional e Internacional [17].

Figura 21 Ubicacin de la Facultad de Psicologa, Xalapa, Veracruz, Mxico

29

Figura 22 Frente del Campus de la Facultad de Psicologa

Esta Facultad cuenta con la siguiente infraestructura [17]:

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

En el aspecto acadmico en la Institucin laboran aproximadamente 121


docentes y estudian ms de 600 alumnos. Cuentan con el modelo flexible de la
Universidad Veracruzana aprobado como primer nivel por parte del Consejo
Nacional para la Enseanza e Investigacin en Psicologa (CNEIP). Tiene 78
experiencias educativas y 408 asignaturas posibles (una experiencia educativa
puede ser impartida ms de dos veces en un mismo semestre, cada una de las
experiencias impartidas se le conoce como asignatura y se identifica por un
nmero de seccin y una clave conocida como nrc).
La Facultad inicia periodos cada 6 meses (semestrales), en los cuales en
promedio apertura 168 asignaturas, los alumnos son libres de escoger la
asignatura que ellos gusten, cumpliendo con una serie de requisitos, tales como :
nmero de crditos, materias seriadas, disponibilidad de horario etc.
Un periodo no es igual al otro, debido a que las asignaturas aperturadas son
diferentes, normalmente con base en peticiones de los alumnos o conocimiento
previo de los administradores de dicha Facultad.

30

3.2 Anlisis del problema de asignacin de horarios


Al no contar con periodos de configuracin de asignaturas iguales, no se puede
asignar una asignatura a un aula fija permanentemente, ms aun, pueden crearse
nuevas asignaturas en base a los alumnos y la disponibilidad de los profesores.
sto conlleva a la necesidad de configurar un horario cada inicio de ciclo (cada 6
meses) para todas las asignaturas que sern impartidas, la Figura 23 muestra un
rbol de causa y efecto del problema de la asignacin de horarios de esta
Facultad.
Deficiencia en la asignacin
de horarios, Facultad de
Psicologia, campus xalapa,
Universidad Veracruzana

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.

El problema de asignacin de horarios de esta Facultad cuenta con restricciones


muy particulares, las cuales hacen difcil la organizacin de un horario escolar. Al
formar parte de un sindicato, algunos maestros tienen a su cargo permanente
ciertas asignaturas (llamadas de aqu en adelante como basificadas). Estas
asignaturas tienen un da y un horario fijo el cual no puede ser movido salvo
previo acuerdo con el profesor que la imparte. Mas an ningn otro profesor
puede impartir dicha asignatura.
Existen otro tipo de asignaturas, las cuales no tienen asignado ningn profesor
permanentemente (llamadas no basificadas de ahora en adelante). A este tipo de
asignaturas es posible cambiarles el horario, el da y el aula en que sern
impartidas.

31

No existe un nmero de horas fijo por asignatura; de hecho existen asignaturas


con una necesidad de 3 horas a la semana y otras con 12 horas. Actualmente se
cuenta con 408 asignaturas, las cuales suman un total de 2602 horas.
No todos los docentes pueden impartir cualquier asignatura, dependiendo su
formacin se le asignan determinadas asignaturas posibles a impartir,
actualmente la Facultad cuenta con 121 docentes activos.
La Facultad tiene 23 posibles aulas, todas ellas con las mismas caractersticas y
cada una de ellas est disponible 14 horas diarias (de 7am a 9pm) de lunes a
viernes. Sin embargo, es deseable al crear la asignacin de horarios, sea
minimizado las ltimas dos horas.
Tomando en cuenta los datos anteriores, el espacio de bsqueda por cada
materia sta determinado de la siguiente manera : NHM * NP * NH*ND*NA ,
donde NHM es la suma de las horas de las materias posibles, NP es el nmero
total de docentes, NH es el nmero de horas disponibles por aula, ND es el
nmero de das posibles y NA es el nmero de aulas disponibles, el resultado de
este calculo es : 2602 * 121 * 14 * 5 *23 = 506,895,620 posibles combinaciones
para una asignatura en particular. Si tomamos en consideracin que en un
periodo normal se seleccionan 168 asignaturas a aperturarse, tenemos entonces
: 506,895,620 * 168 = 85,158,464,160 posibles horarios. Por supuesto, la amplia
mayora de ellos no son horarios vlidos debido a las restricciones impuestas por
la Facultad, algunas de ellas de carcter forzado (restriccin dura) y otras que
pueden tolerarse(restriccin blanda), la Tabla 3 muestra las restricciones
existentes:
Restricciones Duras

Restricciones Blandas

No puede existir empates de horario


entre profesores
No puede existir empates de horariosaula entre materias

Evitar en lo posible asignaciones en las


ltimas dos horas del da
Los horarios de una asignatura deben
tener
cierta
coherencia
(horas
consecutivas)
No es posible colocar una asignatura en No deben existir huecos de horarios en
un horario no permitido
las aulas (horarios consecutivos)
En el caso de las materias basificadas no Una asignatura debe ser impartida en
es posible el cambio de horario ni da
solo un aula
No es posible cambiar de profesor a una
materia
Deben respetarse los 5 das laborables
Tabla 2 Restricciones del problema de asignacin de horarios escolar de la Facultad de Psicologa

Debido a la configuracin de las materias y a las mltiples restricciones


impuestas por la Facultad, su problema de asignacin de horarios est ubicado
en el grupo 2 (asignacin de horarios universitarios) y es un problema de
bsqueda NP-duro.

32

3.3 Sistema Actual


La Facultad cuenta con un sistema organizador de horarios de forma
manual. En l se crea un periodo, se seleccionan las asignaturas y profesores y se
confa en la habilidad del experto para configurar las horas, das y aulas
necesarias para evitar los empates. Este sistema manda un aviso cuando existe
un empate al momento de que se asignan las horas, muestra a las asignaturas
informando si son basificadas o no y a los profesores disponibles para
determinada asignatura.
La efectividad del actual sistema radica en que detecta los empates posibles,
ayudando en gran parte a la anterior forma de hacerlo (completamente manual
en una hoja de clculo). Tambin permite el cambio de profesores o eliminacin
de una asignatura (normalmente esto se hace cuando no existe forma de
eliminar empates). En este sistema el experto toma la iniciativa de aperturar
tantas asignaturas como sea posible, normalmente logra un promedio de 168
asignaturas por periodo.
Este procedimiento es demasiado tedioso y tardado, ya que en promedio el
experto puede tardarse hasta una semana en generar un horario vlido. Adems,
esta tarea debe realizarse dos veces por ao.
Las Figuras 24 y 25 muestran parte de la interfaz de usuario del sistema actual:

Figura 24 Sistema actual para el diseo de horarios escolares Facultad de Psicologa de la


Universidad Veracruzana

33

Figura 25 Sistema actual para el diseo de horarios escolares en la Facultad de Psicologa de la


Universidad Veracruzana

34

Captulo IV Desarrollo y resultados de la metodologa para


solucionar el problema de asignacin de horarios de la
Facultad de Psicologa Universidad Veracruzana campus
Xalapa
Una de las principales problemticas presentadas por los problemas de
asignacin de horarios es su gran espacio de bsqueda. Esto puede hacerse ver
en el caso de estudio presentado en este proyecto, puesto que abarca alrededor
de 85,158,464,160 soluciones posibles por periodo. Si se intentara resolver la
problemtica por un algoritmo de programacin entera abordando todas las
posibles soluciones con el objetivo de encontrar aquella que resulte ptima, y
suponiendo que se tardase un milisegundo por solucin, el tiempo consumido
por el algoritmo seria alrededor de 2 aos en poder culminar con xito su
objetivo.
Por otro lado este tipo de problemas exigen el cumplimiento de ciertas
restricciones, las cuales, debido a su naturaleza obligatoria se convierten en
grandes consumidoras de tiempo computacional. De hecho los problemas de
asignacin de horarios con un nmero considerable de variables difcilmente
llegan a terminar en tiempos permisibles para las instituciones si se opta por
solucionarlos mediante programacin del tipo entera, lineal o tableau. Cabe
mencionar que el caso de estudio cuenta con una restriccin particular,
originada por la naturaleza de las asignaturas de la misma Universidad. Esta
restriccin obliga a dividir a las asignaturas en dos clases, las basificadas, que
son asignaturas con horario y da forzados y las no basificadas, aquellas en las
cuales el horario es de libre modificacin.
Otro punto importante a considerar como limitante para el algoritmo es el
tiempo mximo permitido para entregar una solucin aceptable por la
institucin educativa, el cual radica en un mximo de 8 horas.
Con base en el anlisis de los puntos anteriores las medidas a considerar para
medir el buen desempeo de los algoritmos desarrollados sern las siguientes:
1. Tiempo computacional (tiempo necesario para entregar una solucin
aceptable).
2. Valor promedio de aptitud en la poblacin.
3. Valor de la mediana de aptitud en la poblacin.
4. Mejor solucin en la poblacin.
5. Desviacin estndar del valor de aptitud en la poblacin.
Los datos del experimento corresponden al periodo 21051 de la Facultad de
Psicologa , el cual cuenta con 168 experiencias educativas, 120 profesores, 20
aulas, 14 horas por da y 5 das.
Para poder medir el tiempo computacional, todas las pruebas fueron realizadas
en un mismo equipo que cuenta con las caractersticas indicadas en la Tabla 4:

35

Configuracin del equipo de cmputo


Sistema operativo
Mac OSX 10.6.6
Procesador
2.53 GHz intel core 2
Duo
Memoria
4 GB 1067 MHz DDr3
Tabla 4 Muestra la configuracin del equipo de cmputo en el cual fueron ejecutados los algoritmos

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.

4.1 Desarrollo y resultados de la metodologa para la solucin


del problema
Parte de los objetivos presentados en este documento conlleva a la
resolucin de problemas utilizando la metodologa de desarrollo de algoritmos
inspirados en la naturaleza del Laboratorio Nacional de Informtica Avanzada
(LANIA) . Debido a sto el presente captulo desarrollar una serie de algoritmos
basados en las etapas de dicha metodologa con el objetivo de dar solucin a la
problemtica presentada.

4.1.1 Aplicacin de algoritmos inspirados en la naturaleza en su versin original


Existe una gran diversidad de representaciones posibles de individuos
para la resolucin de este tipo de problemas de asignacin de horarios usando
algoritmos evolutivos. Sin embargo, se opt para iniciar el proceso, por una
representacin general y tradicional como lo es una codificacin binaria. La
Figura 26 muestra el algoritmo de este proceso:

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:

Cada gen ser codificado de la siguiente manera : materia-profesor-horada-aula


En primera instancia, cada parte del gen tendr formato decimal, este
nmero corresponder a una clave nica de cada elemento,
posteriormente se realizar su cambio en formato binario.
La solucin tendr estructuradas de manera ordenada las asignaturas con
formato basificado y se diferencian de las que no lo son.

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

Figura 27 Ejemplo de obtencin de una codificacin decimal

La codificacin binaria se obtiene al convertir los nmeros de la representacin


decimal en formato binario, para poder realizarla se hace uso de las siguientes
frmulas:

L = int[log2(lsup - linf) + .9] : Entrega el nmero de dgitos necesarios


para poder convertir cualquier nmero decimal ubicado entre los rangos
lsup y linf a binario.
X_real = L_inf + ((X_decod*(L_sup L_inf)) / (2L-1) : Devuelve, con base
en un rango de valores, el nmero correspondiente.

Por ejemplo supongamos que el rango de profesores se encuentra entre 1 y 350,


entonces tenemos que:
L = int[log2(350 - 1) + .9] = 9.35 = 9
Es decir , se requieren 9 dgitos binarios para poder codificar los nmeros
ubicados dentro del rango 1-350, donde 000000000 = 1 y 111111111 = 350, sin
embargo, esto no es del todo cierto, debido a que 000000000 = 0 y 111111111 =
511, y es aqu donde entra la primera frmula:
111111111 = 511
X_real = 1 + ((511 * (350-1))/(29-1)) = 350
Como puede observarse, el aplicar estas frmulas hace posible la codificacin de
representaciones decimales a binarias, la Figura 28 muestra un ejemplo de ello.

38

Figura 28 Ejemplo de conversin de formato binario a decimal

El algoritmo completo de conversin de decimal a binario se presenta en la


Figura 29:

Figura 29 Convierte nmeros decimales en nmeros binarios de acuerdo a su rango, donde


solution{i} es un cromosoma binario y solution{i,j} es un gen del cromosoma solution{i}.

39

4.1.1.2. Funcin de Calidad


Con la idea principal de poder definir la funcin de calidad, sern tomadas
las siguientes variables:

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

Tomando en cuenta las variables anteriores, sern definidas a continuacin cada


una de las restricciones consideradas en este proyecto, as como funciones
requeridas para las mismas:
Total de horas por materia (THM): Cada asignatura posee un nmero variable
de horas asignadas durante los D das disponibles :

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:

Determinar si una hora h, en el da d es establecida para la materia n


(NDH):

40

Restriccin fuerte de asignaturas (RFA y ColFA): Un saln m, en un da d, de


una hora h solo puede tener establecida una asignatura n:

donde :

Restriccin fuerte de profesores (RFP y ColFP): Un profesor p en un da d, con


una hora h, solo puede tener establecida una asignatura n:

Donde:

Restriccin dbil de profesores (RDP y ColDP): Un profesor p con una


asignatura n debe poder impartir dicha asignatura exclusivamente en un saln
m:

Donde:

Restriccin dbil de materias (ColDA): Los horarios h, en un da d, de una


asignatura n slo deben tener 3 horas de diferencia:

41

Tomando en consideracin las definiciones anteriores la funcin de calidad es la


siguiente:

La idea de dividir las restricciones dbiles en la funcin de calidad previamente


descrita entre 2 es simplemente una ponderacin otorgada para prestar mas
atencin a las restricciones duras. El algoritmo para calcular la funcin de
calidad se presenta en la Figura 30:

Figura 30 Algoritmo funcin de calidad, donde solution es una solucin completa y solution{j} es una
variable de la solucin

4.1.1.3 Seleccin de Padres


En este punto se propone una seleccin de padres por torneo binario, es
decir, se tomaran dos individuos aleatoriamente de la poblacin actual, se
evaluar su funcin de calidad y se seleccionar al mejor de ellos con base en
esta ltima, luego se repite el proceso una vez ms y de esta manera tenemos dos
individuos que se cruzarn. Este proceso se repetir hasta que se obtenga el
42

nmero de parejas requeridas para generar un nmero de descendientes igual al


tamao actual de la poblacin, es decir, si se tiene una poblacin de n
individuos se generaran n descendientes y para ello se necesitan n/2 parejas
dado que de la cruza de dos individuos se generarn dos nuevos individuos. El
algoritmo aparece en la Figura 31:

Figura 31 Algoritmo de seleccin de padres mediante torneo binario.

4.1.1.4 Seleccin de sobrevivientes


Para mantener a la poblacin con un tamao fijo durante el proceso, se
realiza una seleccin de sobrevivientes generacional, es decir, los nuevos
individuos, es decir los hijos recin creados (New_population) permanecen y
aquellos de la poblacin actual son eliminados, excepto el mejor de ellos, que
reemplazar al peor de los hijos. A sto ltimo se le conoce con el nombre de
elitismo. El algoritmo se muestra en la figura 32:

Figura 32 Algoritmo seleccin de sobrevivientes, donde New_population representa a la poblacin


actual y Old_population a la poblacin de la cual se gener New_population.

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].

Figura 33 Ejemplo cruza de dos puntos con representacin binaria

44

Figura 34 Algoritmo de cruza representacin binaria, donde Old_population es la poblacin actual y


mediante la cual se generar al conjunto de hijos llamado New_population y New_population{i}
representa un hijo dentro de New_population. Flip regresa 1 0 con probabilidad prob

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 35 Ejemplo del operador de mutacin

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

Figura 37 Algoritmo de inicializacin con representacin binaria, donde subjects{j,k} representa la


hora k de la asignatura subjects{j}.

4.1.1.7 Condicin de paro


Tomando en consideracin la restriccin de tiempo , se controlar el
trmino del algoritmo mediante un determinado nmero de generaciones. Lo
anterior puede apreciarse en el algoritmo completo detallado en la Figura 1.

4.1.1.8 Evaluacin del desempeo del algoritmo


Una vez desarrollado el algoritmo. ste fue probado con diversas
combinaciones de sus parmetros (tamao de poblacin, nmero de
generaciones, porcentaje de cruza y porcentaje de mutacin). La Figura 38 y la
Tabla 5 muestra los resultados obtenidos con probabilidad de mutacin del 10%

47

, cruza del 98%, nmero de individuos 100 y nmero de generaciones 1000,


mismas que ofrecieron un mejor resultado con la funcin de calidad.

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

Mnimo valor Media


de la funcin
de calidad
49
108

Mediana

Desviacin Tiempo total


estandar
por corrida

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

La grfica anterior sugiere que el algoritmo gentico con representacin binaria


converge en un periodo relativamente corto de generaciones. La Tabla 2 muestra
el resultado promedio de las ejecuciones realizadas con este algoritmo con valor
de cruza del 98%, mutacin del 10% nmero de individuos 100 y nmero de
individuos 1000:
De acuerdo a estos resultados se puede apreciar que el algoritmo sufre de
convergencia prematura (se obtiene una solucin no aceptable de manera rpida
y el algoritmo no puede mejorarla al paso de las generaciones). Adems el valor
alto de la desviacin estndar indica que el algoritmo no es robusto y varia en la
calidad de los resultados entregados. Por otro lado, el tiempo requerido es
superior al indicado por la Facultad, aunado a ello, la mejor solucin entregada
contiene un valor alto ( es decir, pobre) en la funcin de calidad.
Es posible que el algoritmo converja en pocas generaciones debido a que el
operador de mutacin no es capaz de explorar correctamente, motivo por el cual
se propone ahora un enfoque con mutacin dinmica que dependa del nmero
de generaciones del algoritmo, la intencin es promover la exploracin durante
las primeras etapas de la bsqueda , mientras que en las etapas finales la
mutacin ser muy pequea para favorecer la convergencia. La frmula para
dicho proceso se encuentra en [18] y es la siguiente :
1-(0.9 * (Generacin actual/nmero total de generaciones))
El algoritmo desarrollado se muestra en la Figura 39:

Figura 39 Algoritmo principal enfoque binario con mutacin dinmica

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

Mnimo valor Media


de la funcin
de calidad
87
131

Mediana

Desviacin Tiempo total


estandar
por corrida

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.

Como se puede observar , este enfoque no permite un adecuado espacio de


bsqueda e incrementa el costo computacional, motivo por el cual se omite la
idea de un operador dinmico de mutacin. La Tabla 3 muestra el resultado
promedio de todas las corridas generadas con los valores de cruza del 98% ,
nmero de individuos 100 y nmero de generaciones 1000:

4.1.2 Representaciones Alternativas


Debido a que el tipo de representacin binaria no logro un nivel aceptable
en la funcin de calidad y trajo consigo un costo computacional elevado de

50

acuerdo a los estndares permitidos por la Facultad, se proceder a utilizar un


nuevo tipo de representacin. Para tal efecto se propone un formato decimal. Ya
que es el formato en el que se encuentran las claves de todas las variables del
problema y como consecuencia se espera tener un costo computacional menor.

4.1.2.1 Representacin decimal


La idea bsica de cambiar a una representacin decimal es disminuir el
costo computacional que agrega la decodificacin a partir de la representacin
binaria, debido a que las configuraciones de los parmetros de los genes
(profesor-materia-hora-da-aula) estn en nmeros decimales y de esta manera
se evita la conversin de los mismos. Con el objetivo de cambiar el tipo de
representacin fue necesario modificar la funcin de inicializacin como se
indica en la Figura 41:

Figura 41 Algoritmo principal enfoque decimal, donde subjects{j,k} representa la hora k de la


asignatura subjects{j}.

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:

Figura 42 Algoritmo cruza representacin decimal, donde Old_population es la poblacin a travs de


la cual ser generada New_population y New_population{i} representa a una solucin del conjunto
de soluciones de New_population

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

Figura 44 Ejemplo de mutacin con representacin decimal

53

Figura 45 Algoritmo de mutacin con representacin decimal, una variable es basificada o no


dependiendo el tipo de asignatura que corresponda su representacin en el gen. Por su parte
no_aulas, no_dias y no_horas representan los lmites superiores de cada variable a mutar.

4.1.2.3 Evaluacin del desempeo del algoritmo


El mejor resultado observado con la representacin decimal fue la
configuracin del 10% de probabilidad de mutacin y 98% de probabilidad en
cruza, los resultados de este experimento se muestran en la Figura 46 y las
estadsticas se incluyen en la Tabla 7:

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

Mnimo valor Media


de la funcin
de calidad
61
132

Mediana

Desviacin Tiempo total


estandar
por corrida

92

67

1 hora 10
minutos 28
segundos

Tabla 7 Estadsticas de resultados obtenidos con el algoritmo gentico de representacin decimal


durante 25 ejecuciones.

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

cual se puede plantear un mecanismo especial para minimizar este tipo de


empates.

Como se puede observar en la Tabla 4, la funcin de calidad sta no mostr


cambios favorables en cuanto a su disminucin. Sin embargo, el tiempo
computacional se vi favorecido al reducir de 8 horas a slo 1 hora, lo cual se
encuentra dentro del umbral permitido por la Facultad de Psicologa.

4.1.3 Esquemas Poblacionales


El punto 3 de la metodologa de desarrollo tiene como objetivo analizar
ms a fondo los beneficios que detallan cada una de las representaciones
probadas en los 2 pasos anteriores.
Debido a la caracterstica del problema presentado a lo largo de este trabajo , se
han desarrollado dos diferentes representaciones : la binaria y la decimal,
motivo por el cual se optar por construir un algoritmo con ms de una
poblacin. En el se tendrn dos poblaciones cada una correspondiente al tipo de
representaciones antes mencionadas. Ambas poblaciones contarn con los
mismos elementos y configuracin de operadores, adems, evolucionarn en
paralelo, de esta forma cada determinado nmero de generaciones, cierto
nmero de integrantes de ambas poblaciones pasarn a la otra poblacin, es
decir, cada poblacin intercambiar individuos a su poblacin vecina, el objetivo
de combinar los espacios de bsqueda de ambas, permitiendo ampliar la
diversidad de las soluciones. La Figura 47 muestra un ejemplo de esta propuesta:

Figura 47 Algoritmo gentico paralelo con dos poblaciones e intercambio de soluciones.

56

El algoritmo puede observarse en la Figura 48:

Figura 48 Algoritmo gentico con dos poblaciones

4.1.3.1 Evaluacin del desempeo del algoritmo


Una de las ideas fundamentales de la implementacin de un enfoque con
dos poblaciones es lograr beneficiar a alguna de ellas mejorando su proceso de
bsqueda dentro del espacio de soluciones existentes. Motivo por el cual se opt
por graficar el comportamiento de cada poblacin de manera individual. Las
Figuras 49 y 50 muestran el resultado de la mejor combinacin de parmetros
para ambas poblaciones , a su vez, en la Tabla 8 se muestran las estadsticas para
cada poblacin:

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.

Como se muestra en las Figuras 49 y 50 y en la Tabla 8, al ocupar la tcnica de


subpoblaciones se logra visualizar un claro beneficio por parte de ambas
poblaciones. De hecho, la poblacin con representacin decimal es ampliamente
favorecida al obtener una calidad inferior a los 25 empates. Por su parte , la

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.

4.1.4 Algoritmo hbrido


Con base en
los resultados de los algoritmos anteriormente
desarrollados, es posible enmarcar las debilidades generales presentadas por los
mismos:
1. Costo y tiempo computacional elevado o prohibitivo.
2. Existencia de numerosos ptimos locales.
3. La deficiente exploracin del espacio de bsqueda de soluciones por parte
de los operadores.
4. El principal problema de la minimizacin de la funcin de calidad es
debido a la restriccin dura concerniente a los profesores.
Una manera de atacar las debilidades antes mencionadas es el uso de algoritmos
memticos[42], que proponen un mtodo de integracin de bsqueda global con
bsqueda local. La forma en que este tipo de algoritmo es capaz de contrarrestar
los problemas presentados por los algoritmos anteriores est determinado por
los siguientes factores:
1. Es factible el desarrollo de cualquier representacin motivo por el cual se
utilizar la representacin decimal, ya que ofreci un costo y tiempo
computacional menor con respecto a la representacin binaria.
2. La bsqueda local puede ser enfocada a la ampliacin de la explotacin,
lo cual, de acuerdo a lo observado en el esquema de dos poblaciones,
fomenta la convergencia, evitando ptimos locales y permitiendo una
minimizacin de la funcin de calidad.
3. Es posible orientar la bsqueda local para fomentar la eliminacin de las
restricciones ms problemticas denotadas por los enfoques
anteriormente desarrollados.

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:

Figura 51 Algoritmo operador uno, population{i,j} representa el empate de profesores j de la


solucin population{i} y population{i,k} simboliza el empate k de aulas de la solucin population{i},
no_empates_profesor alude a los empates encontrados para el profesor en population{i},
no_empates_aulas indica los empates de aulas hallados en population{i}

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:

Figura 52 Algoritmo operador 2 , population{i,j} representa el empate de aulas j de la solucin


population{i} , no_empates_aulas alude a los empates de aulas hallados en population{i}

La Figura 53 muestra un ejemplo del proceso de ambos operadores y en la


Figura 54 se muestra el algoritmo memtico completo.

Figura 53 Ejemplo de la funcionalidad de los operadores

62

Figura 54 Algoritmo memtico con representacin decimal

4.1.4.3 Evaluacin del desempeo del algoritmo


El beneficio de los operadores fue evidente al realizar todas las pruebas
debido a que los individuos de la poblacin convergen rpidamente a un valor de
la funcin de calidad cero como lo muestra la Figura 55 y la Tabla 9:

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

Las bajas repentinas en la media y el valor de la mejor solucin por generacin


corresponden al momento en que entra en ejecucin el operador 1. Es
importante mencionar que no es necesaria la ejecucin de las 1000 generaciones
debido a la rpida obtencin de un individuo con calidad 2, lo cual es vlido para
la Facultad de Psicologa. Por su parte el operador 2 logr obtener un valor para
la funcin de calidad 0. Sin embargo , ste no entr en ejecucin hasta el final del
ciclo. Este algoritmo soluciona el problema de la Facultad de Psicologa en un
tiempo computacional permitido por la misma como lo muestra la Tabla 9:

Mximo valor
de la funcin
de calidad
220

Mnimo valor Media


de la funcin
de calidad
0
0.00375

Mediana

Desviacin Tiempo total


estandar
por corrida

0.079

1 hora 40
minutos 20
segundos

Tabla 9 Estadsticas de los resultados obtenidos con el algoritmo memtico durante 25 ejecuciones.

Una vez solucionado el problema de horarios considerando slo las restricciones


duras se procede a atacarlo ahora considerando tambin el otro grupo de
restricciones (las dbiles). La Figura 56 muestra el resultado anterior tomando
en cuenta tambin estas restricciones :

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.

Como se puede apreciar en la Figura 56 las restricciones dbiles tanto de


profesores como de aulas no logran ser satisfechas del todo. Para atacar estas
problemtica se propone una inicializacin especial que minimice la aparicin de
las mismas.

65

4.1.4.4 Modificacin al algoritmo memtico


Inicializacin
Para evitar la existencia de restricciones dbiles se propone crear
soluciones aleatorias por secciones y despus integrarlas a la solucin global, es
decir, se tomar una materia y se determinar cuntas horas posee, en vez de
crear las estructuras de hora, da, aula de manera completamente aleatoria se
crearn horas consecutivas, por ejemplo, si el proceso de aleatoriedad para el
parmetro de horas es 7:00 8:00 am y la materia posee 3 horas, las siguientes
dos horas sern 8:00-9:00 am y 9:00-10:00 am, siempre y cuando el da sea el
mismo, en caso de cambiar el da se seleccionar una hora aleatoria de nuevo.
Con respecto al parmetro de aula sta se seleccionar al azar y ser la misma
para toda la materia. La Figura 57 muestra el algoritmo del proceso de
inicializacin modificacin:

Figura 57 Modificacin al algoritmo de inicializacin del enfoque decimal cuidando las restricciones
dbiles.

4.1.4.5 Evaluacin del desempeo del algoritmo


Los cambios realizados al algoritmo mejoraron significativamente en el
desempeo del mismo como lo muestra la Figura 58 :

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.

Cabe mencionar que a diferencia de todos los experimentos anteriores, aqu el


algoritmo fue probado con 420 generaciones en vez de 1000. Es fcil observar
como el cambio en la inicializacin de los individuos result satisfactorio, puesto
que ahora el algoritmo es capaz de entregar un resultado aceptable en trminos
de las restricciones duras y dbiles. Adems, su tiempo y costo computacional

67

estn dentro de lo permitido por la Facultad de Psicologa. La Tabla 10 muestra


las estadsticas de todos los experimentos realizados:
Mximo valor
de la funcin
de calidad
220

Mnimo valor Media


de la funcin
de calidad
0
0.0023

Mediana

Desviacin Tiempo total


estandar
por corrida

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.

4.2. Visualizacin grfica de los datos


La presentacin grfica de los datos es una forma ampliamente utilizada
como herramienta de anlisis, ya que permite identificar aspectos relevantes de
una manera rpida y simple. Cuando se dispone de datos de una o varias
poblaciones, y antes de abordar anlisis estadsticos, un primer paso consiste en
presentar la informacin de forma que esta pueda visualizarse de manera ms
sistemtica y resumida.
Tomando lo anterior en cuenta, fue desarrollado un diagrama de cajas de los
resultados obtenidos en 25 ejecuciones independientes por cada algoritmo
desarrollado en la presente tesis, este diagrama permite evaluar todas las
muestras y dar a conocer su comportamiento con respecto a sus medidas de
tendencia central como la media, desviacin estndar , lmites inferiores y
superiores etc. La Figura 59 muestra dicha grfica:

Figura 59 Diagrama de cajas de las poblaciones de los algoritmos desarrollados en este trabajo

Como se puede visualizar en el diagrama de la Figura 34, uno de los grandes


problemas de la mayora de estos algoritmos es su alta desviacin estndar, as
como de sus limites superiores. Es de notarse como el algoritmo memtico tiene
el comportamiento ms estable que los dems algoritmos puesto que su
desviacin estndar en muy pequea y tcnicamente la media alcanza a explicar
a toda su poblacin.

68

4.3. Pruebas estadsticas


El uso de la Estadstica es de gran importancia en la investigacin
cientfica. Casi todas las investigaciones aplicadas requieren algn tipo de
anlisis estadstico con el objetivo de evaluar sus resultados. En algunos casos,
para resolver un problema de carcter emprico es preciso llevar a cabo un
anlisis bastante complejo, otras veces, basta con efectuar un anlisis muy
simple y directo. La eleccin de uno u otro tipo de anlisis estadstico depende
del problema que se plantee en el estudio as como de la naturaleza de los datos.
Desde este punto de vista, la Estadstica constituye un instrumento de
investigacin y no un producto final de esta ltima[41].
Al iniciar el anlisis estadstico de una serie de datos, un primer paso consiste en
describir la distribucin de las variables estudiadas y, en particular, de los datos
numricos para poder determinar si estos siguen una distribucin normal o no.
Con el objetivo de poder demostrar si los datos recolectados de todos los
algoritmos desarrollados siguen una distribucin Normal, sern evaluados
mediante el test K-S (Kolmogorov-Smirnov) de una muestra.

4.3.1. Prueba de Kolmogorov Smirnov de una muestra


El test de Kolmogorov-Smirnov (K-S) de una muestra se basa en la idea de
comparar la funcin de distribucin acumulada de los datos observados con la de
una distribucin normal, midiendo la mxima distancia entre ambas curvas.
Como en cualquier prueba de hiptesis, la hiptesis nula se rechaza cuando el
valor del estadstico supera un cierto valor crtico que se obtiene de una tabla de
probabilidad. Las hiptesis de esta prueba son las siguientes:
1. Hiptesis nula : La poblacin sigue una distribucin normal.
2. Hiptesis alternativa : La poblacin no sigue una distribucin normal.
Los resultados obtenidos al aplicar la prueba con una confianza de 99% se
observan en la Tabla 11 (cabe destacar que los resultados fueron los mismo al
evaluarlos con una confianza del 90 y 95%):

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.

4.3.2. Prueba de Wilcoxon


Partiendo de la base de que algunos contrastes de hiptesis dependen del
supuesto de Normalidad, muchos de estos contrastes siguen siendo
aproximadamente vlidos cuando se aplican a muestras muy grandes, incluso si
la distribucin de la poblacin no es Normal. Sin embargo, muchas veces se da
tambin el caso de que, en aplicaciones prcticas, dicho supuesto de Normalidad
no sea sostenible. Lo deseable entonces ser buscar la inferencia en contrastes
que sean vlidos bajo un amplio rango de distribuciones de la poblacin. Tales
contrastes se denominan no paramtricos.
La prueba de Wilcoxon es una prueba no paramtrica para comparar la mediana
de dos muestras relacionadas y determinar si existen diferencias entre ellas. Se
utiliza como alternativa a la prueba t de Student cuando no se puede suponer la
Normalidad de dichas muestras.
Las hiptesis de esta prueba son las siguientes:
1. Hiptesis nula: Los datos de las dos poblaciones son ejemplos
independientes de una distribucin continua idntica con medianas
iguales.
2. Hiptesis alternativa : Los datos de las dos poblaciones no son ejemplos
independientes de una misma distribucin continua y sus medianas no
son iguales.
Los resultados al aplicar la prueba de Wilcoxon a todos los algoritmos
desarrollados con un nivel de confianza del 99% se observan en la Tabla 12
(cabe sealar que los niveles de confianza 90 y 95% devolvieron los mismos
resultados). La prueba se aplic a pares de algoritmos para verificar diferencias
significativas entre ellos.

70

Wilcoxon

Hiptesis nula

Hiptesis alternativa

Binario vs binario dinamico

Binario vs Poblaciones (Binario)

Binario vs Poblaciones (Decimal)

Binario vs decimal

Binario vs memetico

Binario dinmico vs Poblaciones


(Binario)

Binario dinamico vs Poblaciones


(Decimal)

Binario dinamico vs decimal

Binario dinamico vs memetico

Poblaciones
(Binario)
Poblaciones (Decimal)

vs

Poblaciones (Binario) vs decimal

Poblaciones (Binario) vs memetico

Poblaciones (Decimal) vs decimal

Poblaciones (Decimal) vs memetico

Decimal vs memetico

Tabla 12 Resultados al aplicar el test de wilcoxon a los algoritmos desarrollados en este trabajo

Los resultados de acuerdo a la prueba Wilcoxon, se puede concluir con un grado


de significancia del 99% que el comportamiento de cada algoritmo es diferente
en todos los casos desarrollados en este trabajo.
Con el objetivo de corroborar los datos obtenidos mediante esta prueba , se
proceder a realizar el anlisis de Friedman, mismo que permite determinar si
todas las poblaciones presentadas son mutuamente excluyentes o no.

4.3.3. Prueba de Friedman


Uno de los mtodos estadsticos mas utilizados para comparar varias muestras y
poder determinar cuales de ellas poseen una distribucin similar es el test de
Friedman. Se trata de un equivalente no paramtrico al test de medidas
repetidas ANOVA. Calcula el orden de los resultados observados por algoritmo (rj
para el algoritmo j con k algoritmos) para cada funcin, asignando al mejor de
ellos el orden 1, y al peor el orden k. Bajo la hiptesis nula, que se forma a partir
de suponer que los resultados de los algoritmos son equivalentes y, por tanto,
sus rankings son similares y la hiptesis alternativa que afirma lo contrario[44].

71

La Figura 60 muestra el resultado del test Friedman al ser aplicado a los


algoritmos desarrollados en este trabajo:

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.

4.3.4. Prueba de Kruskal-Wallis


En estadstica, la prueba de Kruskal-Wallis es un mtodo no paramtrico para
probar si un grupo de datos proviene de la misma poblacin. Intuitivamente, es
idntico al ANOVA con los datos reemplazados por categoras, sin embargo, ya

72

que es una prueba no paramtrica, la prueba de Kruskal-Wallis no asume


normalidad en los datos, de hecho, no asume ningn tipo de distribucin.
La prueba de Kruskal-Wallis compara varios grupos usando la mediana de cada
uno de ellos, en lugar de las medias.
Las ventajas fundamentales de esta prueba frente a otras pruebas estadsticas
son principalmente dos: 1) no necesita establecer supuestos sobre las
poblaciones originales tan exigentes como la Normalidad de los datos o la
homocedasticidad de los mismos; y 2) permite trabajar con datos ordinales.
La Figura 61 muestra los resultados tras aplicar el test de Kruskal-Wallis a los
algoritmos desarrollados en este trabajo:

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.

5.2. Anlisis de la hiptesis planteada


La hiptesis presentada en el capitulo 1 :
Es posible encontrar, en un tiempo razonable para el usuario, una solucin
factible, es decir, un horario que cumpla con los requerimientos establecidos por la
Facultad de Psicologa, mediante el uso de un algoritmo meta heurstico inspirado
en la naturaleza.
fue aceptada debido a que el algoritmo memtico con los 2 operadores locales
desarrollados logr obtener al menos una solucin factible en los trminos
establecidos por la Facultad de Psicologa. Por otro lado, el algoritmo de
subpoblaciones tambin brind una solucin aceptable, sin embargo, el tiempo
computacional requerido por el no logro satisfacer el margen mximo requerido
por la Facultad.
Cabe destacar que el principal problema de los algoritmos que no lograron
obtener una solucin con calidad satisfactoria fue debido a la existencia de la
restriccin de asignaturas basificadas. sto fue comprobado al correr dichos
algoritmos sin esta restriccin y todos a excepcin del algoritmo de mutacin
dinmica lograron obtener una mejor solucin, aunque su tiempo computacional
no disminuy significativamente. La Figura 62 muestra el comportamiento del
algoritmo con representacin decimal al eliminar la restriccin de asignaturas
basificadas (el resultado incluyendo las asignaturas basificadas puede verse en la
Figura 46):

74

Figura 62 Algoritmo representacin decimal sin restricciones de experiencias basificadas, 1000


generaciones, 100 individuos de poblacin, cruza 98% y mutacin 10%

75

Como se observa en la Figura 62, al eliminar la restriccin de las asignaturas


basificadas el algoritmo con representacin decimal es capaz de satisfacer
paulatinamente las restricciones del problema.

5.3. Anlisis de los objetivos planteados


Con respecto a los objetivos presentados en el Captulo 1 de este trabajo
se puede considerar el cumplimiento de todos ellos puesto que, para el objetivo
general :
Encontrar una solucin computacional, basada en algoritmos meta heursticos
inspirados en la naturaleza, que sea capaz de resolver de manera automatizada la
asignacin de horarios de la Facultad de Psicologa, Campus Xalapa, de la
Universidad Veracruzana.
El algoritmo memtico cumple con dicho objetivo solucionando el problema al
encontrar una solucin que logro satisfacer las restricciones planteadas en un
tiempo computacional relativamente bajo y permitido por la Facultad de
Psicologa.
Con respecto a los objetivos especficos los cuales se citan a continuacin:

Disear un algoritmo, basado en la metodologa de aplicacin de


algoritmos meta heursticos inspirados en la naturaleza, que sea capaz de
brindar una solucin eficiente y eficaz al problema de asignacin de
horarios de dicha Facultad.
Generar un diseo experimental que permita valorar adecuadamente el
desempeo de los algoritmos que se generen con base en la metodologa
antes descrita
Crear un sistema que sea capaz de optimizar la recoleccin , modificacin
y extraccin de la informacin de experiencias educativas, asignaturas,
docentes y horarios escolares de la Facultad de Psicologa, Campus
Xalapa, Universidad Veracruzana.
Generar un prototipo funcional que permita el uso del algoritmo descrito
en el objetivo no. 1 de esta lista

Fue desarrollado un prototipo de sistema que logra almacenar la informacin


requerida, el cual ejecuta de manera automtica la solucin al problema
presentado mediante la integracin del algoritmo memtico desarrollado en este
trabajo, dicho algoritmo es capaz de encontrar un solucin factible para la
Facultad de Psicologa como se muestra en el Captulo 5.
Con el objetivo de contar con resultados confiables, todos los algoritmos fueron
sometidos a 30 ejecuciones con los mismos parmetros de entrada, y se recabo

76

informacin estadstica de los mismos, consistentes en medidas de tendencia


central as como del mejor individuo generado por cada algoritmo e informacin
del comportamiento de las restricciones de la poblacin de cada uno.
Posteriormente se analizaron los resultados obtenidos de los algoritmos con 4
test estadsticos los cuales son : Kolmogorov, Wilcoxon, Friedman y KruskalWallis con el objetivo de dar confianza estadstica al comportamiento y
desempeo de las tcnicas utilizadas en este trabajo.
Por todo lo anterior es factible decir que este trabajo cumpli de manera
satisfactoria con sus objetivos planteados.

5.4 Trabajo Futuro

Analizar la sensibilidad de los parmetros y operadores del algoritmo


memtico.
Resolver el problema de asignacin de horarios escolar en otras
Facultades de la Universidad Veracruzana con el algoritmo memtico

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

[15] GES http://www.grupoges.com.mx/ consultado el 16-10-2010


[1 ] PATAT,International Timetabling Competition
http://www.cs.qub.ac.uk/itc2007/ consultado el 16-10-2010
[17] Facultad de Psicologa, Universidad Veracruzana http://www.uv.mx/facpsi/
consultado el 16-10-2010
[18] A. E. Eiben, J.E. Smith , Introducction to evolutionary computing, natural
computing series, springer.
[19] L.J. Fogel, P.J. Angeline, T. Bck, Eda. Proceedings of the 5th Annual
Conference on Evolutionary Programming, MIT Press , Cambridge, MA, 1996.
[20] L.J. Fogel, A.J. Owens, M.J. Walsh. Artificial Intelligence through Simulated
Evolution, Wiley, Chichester, UK, 1966.
[21] J.H. Holland. Genetic algorithms and the optimal allocation of trials. SIAM J.
Of Computing, 2pp.88-105, 1973.
[22]J.H. Holland. Adaption in Natural and artificial Systems. MIT Press,
Cambridge, MA, 1992. 1st. Edition: 1975, The University of Michigan Press, Ann
Arbor.
[23] I. Rechenberg. Evolution strategie: optimierung Technisher Systeme nach
Prinzipien des Biologischen Evolution. Fromman-Hozlboog Verlag, Stuttgart,
1973.
[24] H.P. Schwefel. Evolution and Optimum Seeking. Wiley , New York 1995.
[25] T. Bck Evolutionary Algorithms in Theory and Practice. Oxford University
Press, Oxford. UK, 1996.
[26] T. Bck, D.B. Fogel, Z. Michalewicz, Eds. Evolutionary Computating 1: Basic
Algorithms and Operators . Institute of Physics Publishing. Bristol. 2000.
[27] T. Bck , D.B. Fogel, Z. Michalewicz, Eds. Evolutionary Computation 2:
Advance Algorithms and Operators. Institute of Physics Publishing, Bristol, 2000.
[28] A.E.Eiben, Z. Michaelewicz, Eds. Evolutionary Computation. IOS Press, 1998.
[29] Z. Michalewicz. Genetic Algorithms + Data Structures = Evolution Programs,
springer, Berln, Heidelberg, New York, 3rd edn., 1996.
[30] David E. Goldberg, Genetic Algoritms in Search Optimization & Machine
Learning, Addison-Wesley Publishing Company.
[31] Santana Quintero,Luis Vicente, Coello Coello Carlos A. ,Una introduccin a la
computacin evolutiva y algunas de sus aplicaciones en economia y finanzas,
Revista de mtodos cuantitativos para la economa y la empresa paginas 3-25,
diciembre 2006.

79

[32] Pervys Rengifo Rengifo, Leonardo Jimnez, Programacin Gentica,


Fundacin universitaria Konrad Lorenz, Facultad de matemticas e ingenieras ,
ingeniera en sistemas.
[33]Pablo Moscato, Carlos Cotta, An Introduction to memetic Algorithms,
Inteligencia artificial, Revista iberoamericana de inteligencia artificial, No. 19 ,pp
131-148, ISSN: 1137-3601.
[34] Yuichi Nagata, Shigenubo Kobayashi, An analysis of Edge Assembly
Crossover for the Traveling Salesman Problem,0-7803-5731-0/99 1999 IEEE.
[35] Mitchell, Melanie. An Introduction to Genetic Algorithms. MIT Press, 1996.
[36] Haupt, Randy y Sue Ellen Haupt. Practical Genetic Algorithms. John Wiley &
Sons, 1998.
[37] Baumelt Zdenek Sucha Premysl Hanz alek Zdenek An Evolutionary
Algorithm in a Multistage Approach for an Employee Rostering Problem with a
High Diversity of Shifts PATAT 2010
[38] Burke, E.K., Cowling, P., De Causmaecker, P. and Berghe, G.V.: A Memetic
Approach to the Nurse Rostering Problem. Applied Intelligence 15, 199-214
(2001)
[39] http://www.asap.cs.nott.ac.uk/ASAP_Brochure20072008.pdf consultado el
12 de enero del 2011
[40] http://www.cs.qub.ac.uk/itc2007/winner/finalorder.htm consultado el 12
de enero del 2011
[41] Ms.C: Arsenio Celorrio Snchez, Pruebas de hiptesis no paramtricas de KS, http://www.monografias.com/trabajos11/docima/docima.shtml, consultado
el 15 de enero del 2011.
[42] Hart, William E.; Krasnogor, Natalio; Smith, J.E. (Eds.). Recent Advance in
Memetic Algoritmics, Studies in Fuzziness and Soft Computing, Vol. 166, ISBN
978-3-540-22904-9

80

Anda mungkin juga menyukai