Upload
jesus-ignacio-talon-portes
View
908
Download
2
Embed Size (px)
Citation preview
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
SISTEMA GESTOR DE HORARIOS MEDIANTE ALGORITMOS GENÉTICOS (SIGHMAG)
MEMORIA PRESENTADA
COMO REQUISITO PARA OBTENER EL TÍTULO
DE TÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS
DE LA INFORMACIÓN Y COMUNICACIÓN
AUTOR: JESÚS IGNACIO TALÓN PORTES
ASESOR ACADÉMICO: MIA. EFRÉN JUÁREZ CASTILLO
ASESOR INDUSTRIAL: MTI. CÉSAR ADRIÁN ORTEGA
CRESPO
HUEJUTLA DE REYES, HGO. AGOSTO DE 2012
SISTEMA GESTOR DE HORARIOS MEDIANTE ALGORITMOS GENÉTICOS (SIGHMAG)
Memoria presentada
Por
JESÚS IGNACIO TALÓN PORTES
Ante la Universidad Tecnológica de la Huasteca Hidalguensecomo requisito parcial para optar
al título de:
TÉCNICO SUPERIOR UNIVERSITARIOEN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA
SISTEMAS INFORMÁTICOS
Agosto de 2012
DATOS GENERALES DE LA EMPRESA
EMPRESA
UNIVERSIDAD TECNOLÓGICA DE LA HUASTECA HIDALGUENSE
SECTOR
PÚBLICO
DIRECCIÓN
CARRETERA HUEJUTLA CHALAHUIYAPA S/N. COLONIA TEPOXTECO HUEJUTLA DE REYES HIDALGO, CP. 43000 TELÉFONO: 01-789-89-6-20-88
AL 93. EMAIL [email protected]
PROYECTO
SISTEMA GESTOR DE HORARIOS MEDIANTE ALGORITMOS GENÉTICOS (SIGHMAG)
ASESOR INDUSTRIAL
MTI. CÉSAR ADRIÁN ORTEGA CRESPO
CARGO DEL ASESOR
DIRECTOR DE LA CARRERA DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
i
DEDICATORIA
A Dios:
Por brindarme la ayuda espiritual en todos los momentos que más le
necesité y por darme la oportunidad de vivir y disfrutar la vida en este periodo
de tiempo.
A mis padres:
Por brindarme el apoyo suficiente una vez más, para poder llevar a cabo
esta etapa de mis estudios y por permitir demostrarles que todo lo que se
propongan, es posible lograrlo.
ii
AGRADECIMIENTOS
Agradezco a la Universidad Tecnológica de la Huasteca Hidalguense
(UTHH), por darme la oportunidad de tener un espacio en esta casa de
estudios y hacer de mi persona un éxito, así también agradezco por facilitarme
con mi proyecto de titulación, brindando todos los recursos necesarios.
A mi asesor industrial por guiarme y brindarme recursos hacia el
bienestar de mi proyecto de estadía, por los consejos y deseos de superación.
A mi asesor académico por brindarme apoyo en la documentación y
revisión de mi tesis, la comprensión necesaria para cumplir mi meta en el
proyecto.
A los maestros que me enseñaron lo necesario para sacar adelante mi
carrera, por el conocimiento que me proporcionaron y las dudas resueltas.
iii
Índice
DEDICATORIA...............................................................................................................i
AGRADECIMIENTOS..................................................................................................ii
ÍNDICE DE TABLAS....................................................................................................iv
ÍNDICE DE ILUSTRACIONES O FIGURAS............................................................iv
RESUMEN......................................................................................................................vi
ABSTRACT...................................................................................................................vii
I INTRODUCCIÓN...................................................................................................1
II ANTECEDENTES..................................................................................................3
2.1 Datos Generales de la Empresa..........................................................................3
2.2 Trabajos Previos.................................................................................................9
III PLANTEAMIENTO DEL PROBLEMA............................................................12
3.1 Justificación......................................................................................................12
3.2 Objetivo general................................................................................................12
3.3 Metas.................................................................................................................13
IV FUNDAMENTOS TEÓRICOS............................................................................14
V HIPÓTESIS...........................................................................................................23
VI DESARROLLO DEL PROYECTO....................................................................24
6.1 Metodología......................................................................................................24
6.2 Desarrollo..........................................................................................................25
VII RESULTADOS......................................................................................................41
VIIICONCLUSIONES.................................................................................................44
8.1 Recomendaciones y trabajos futuros................................................................45
IX REFERENCIAS BIBLIOGRÁFICAS................................................................46
X ANEXOS..................................................................................................................1
Anexo A: Modelo relacional.........................................................................................1
Anexo B. Ventana de Asignación.................................................................................2
Anexo C. Resultados.....................................................................................................3
Anexo D. Interfaz grafica de registro de materias.........................................................4
Anexo E. Registro de docentes......................................................................................5
Anexo F. Interfaz de asignaciones entre docentes y asignaturas...................................6
Anexo G. Interfaz de asignaciones entre grupos y profesores......................................7
Anexo H. Asignación de salones a una asignatura........................................................8
Anexo I. Asignación de salones a una asignatura.........................................................9
iv
Anexo J. Protocolo de estadía.....................................................................................10
Anexo K. Calendarización del proyecto de estadía.....................................................11
ÍNDICE DE TABLAS
Tabla 1. Tabla de distribución y cargos académicos de TIC (UTHH, 2006b)......7
Tabla 2. Asignación de salones, grupos, asignaturas, docentes.......................27
Tabla 3. Planeación de un grupo.......................................................................27
Tabla 4. Asignación de horas estáticas.............................................................28
Tabla 5. Planeación...........................................................................................29
Tabla 6. Pruebas de tamaño población.............................................................41
Tabla 7. Pruebas de mutación..........................................................................42
Tabla 8. Pruebas de elitismo.............................................................................43
ÍNDICE DE ILUSTRACIONES O FIGURAS
Figura 1 Organigrama del área de Tecnologías de la Información y
Comunicación (UTHH, 2006b)..........................................................................8
Figura 2 Pseudocódigo básico de los algoritmos genéticos..............................17
Figura 3 Selección por torneo...........................................................................17
Figura 4 Mutación multibit.................................................................................19
Figura 5 Diagrama: Función de Mutación.........................................................20
Figura 6 Diagrama: Función de Cruza..............................................................21
Figura 7 Algoritmo genético..............................................................................25
Figura 8 Constitución del GEN..........................................................................28
Figura 9 Inicialización del cromosoma..............................................................30
Figura 10 Población..........................................................................................30
Figura 11 Choques en el individuo....................................................................31
Figura 12 Choques en grupos...........................................................................32
Figura 13 Individuo sin choques entre grupos...................................................32
v
Figura 14 Error de hora consecutiva.................................................................33
Figura 15 Error de día.......................................................................................33
Figura 16 Error de aula.....................................................................................33
Figura 17 Selección de 2 padres por torneo.....................................................35
Figura 18 Representación de cruza de 2 cromosomas de la población y 2 hijos
como resultado..................................................................................................36
Figura 19 Mutación............................................................................................36
Figura 20 Mutación............................................................................................37
Figura 21 Elitismo..............................................................................................38
Figura 22 Terminación......................................................................................38
Figura 23 Gráfica de las pruebas de tamaño de población...............................42
Figura 24 Gráfica de las pruebas de mutación..................................................42
Figura 25 Gráfica de las pruebas de elitismo....................................................43
vi
RESUMEN
La presente memoria fue desarrollada en la Universidad Tecnológica de
la Huasteca Hidalguense en la ciudad de Huejutla de Reyes, Hidalgo. El
proyecto consistió en la creación de un Sistema Gestor de Horarios Mediante
Algoritmos Genéticos (SIGHMAG), el cual trabaja en el acomodo de horarios
de los grupos, asignación de aulas y de horarios estáticos para clases con
asignaturas extracurriculares.
Para llevar a cabo el desarrollo del proyecto se utilizó la metodología basada
en algoritmos genéticos, fundamentada en base a la teoría Darwiniana de la
evolución por medio de la selección natural, partiendo desde la creación de
cromosomas, creación de la población, evaluación de cada individuo, selección
de mejores individuos, el cruce de los individuos seleccionados, la mutación
aleatoria, así como su evaluación y la concepción de nuevas generaciones.
La necesidad de crear un sistema que genere horarios se determinó porque la
gestión de los horarios de clases es de suma importancia y por la dificultad de
encontrar una solución óptima en la planificación de horarios de que cumplan
con los requerimientos de disponibilidad de aulas. Se plantea un sistema lo
suficientemente flexible, capaz de generar un conjunto de posibles soluciones
clasificadas por un nivel de aptitud que será determinado por el cumplimiento
de restricciones.
Algoritmos genéticos, Horarios, Sistema, Programación,
cromosoma.
vii
ABSTRACT
This report was carried out in the Universidad Tecnologica de la
Huasteca Hidalguensein in Huejutla de Reyes, Hidalgo. The project consisted
on the creation of a Schedule Management System through Genetic Algorithms
(SIGHMAG), which works in the arrangement of schedules about groups,
assignment of classrooms and static schedules for classes with extracurricular
subjects.
To carry out the project, was applied the methodology based on genetic
algorithms, based on the Darwinian theory of evolution by natural selection,
starting from the creation of chromosomes, creation of population, evaluation of
each person , selection of the best human being, intersection of selected
individuals, random mutation furthermore, its evaluation and the conception of
new generations.
The need to create a system that generates schedules was determined
as the management of class schedules has a great importance and the difficulty
to find an optimal solution in the schedules planning in order to meet with the
requirements of the classrooms availability. It is proposed a very flexible
system, capable of generating a set of possible solutions classified by an
aptitude level that will be determined by the compliance of restrictions.
Genetic algorithms, Schedules, System Programming, chromosome.
1
I INTRODUCCIÓN
En la mayoría de las universidades de educación superior existe la
necesidad de asignar aulas, días, horas y docentes para desarrollar las
actividades académicas. Siempre al inicio de período escolar se presenta la
necesidad de organizar y distribuir los horarios de clases de maestros,
alumnos, docentes. Sin embargo, se evidencian frecuentemente dificultades
relacionadas con algunas condiciones particulares como la disponibilidad de
maestros, aulas, horas y días que complican su realización.
Para su elaboración normalmente se asigna a una persona entrenada
que a pesar de su conocimiento y por la complejidad de la tarea, tienden a
cometer errores y utilizan bastante tiempo para lograrlo.
Teniendo en cuenta que esta tarea tiene alta importancia resultaría muy
conveniente la automatización del proceso por medio de una herramienta
computacional basada en la inteligencia artificial.
En el presente proyecto se presenta la construcción de un sistema de
información para la generación de los horarios de la Universidad Tecnológica
de la Huasteca Hidalguense. Se mostraran los fundamentos teóricos para la
realización del sistema, posteriormente se mostrará, por medio de gráficas, los
resultados de las diferentes pruebas que se hicieron en el sistema. Finalmente,
se presentan las conclusiones obtenidas.
En el capítulo II Antecedentes: Se describe la empresa donde se realizo
la estadía, se da a conocer la misión, visión y los valores que distinguen la
empresa, también se muestra una descripción del grupo de trabajo.
En el capítulo III Planteamiento del problema: Se da a conocer la
problemática por la cual se construye el sistema generador de horarios, se
especifica la justificación y el porqué se desarrollo el proyecto. Se plantea el
objetivo general y los objetivos específicos, también se dan a conocer las
metas y el tiempo planteado para el desarrollo del proyecto.
2
En el capítulo IV Fundamentos teóricos: se fundamentan las bases
teóricas del proyecto, se especifican las herramientas usadas para el
desarrollo del mismo. Se da a conocer la historia de los algoritmos genéticos,
que son y las distintas formas de implementarlos. Se muestra y explica la
metodología de los algoritmos genéticos.
En el capítulo V Hipótesis: Se ostenta una propuesta que se formulo a
través de la recolección de información y datos, aunque no esté confirmada,
sirve para responder de forma alternativa al problema.
El capítulo VI Desarrollo del proyecto: Es la parte medular del proyecto;
se divide en dos partes: En la primera se presenta la metodología y los pasos a
seguir para la construcción del sistema. La segunda parte explica en orden
cronológico el desarrollo del algoritmo genético, la construcción del gen,
cromosoma, asignaciones y demás pasos de la construcción del SIGHMAG.
El capítulo VII Resultados: Describe las pruebas y análisis realizados al
SIGHMAG, se muestran graficas, y comentarios sobre la funcionalidad del
producto.
El capítulo VIII Conclusiones: Da a conocer las conclusiones a las que
se llego después de haber analizado los resultados. Además se dan a conocer
comentarios y recomendaciones para trabajos futuros.
El capítulo IX Referencias bibliográficas: Se muestra todas las
referencias bibliográficas de las que se obtuvo información para el desarrollo
del proyecto.
El capítulo X Anexos: Muestra imágenes y tablas que sirven como
soporte al desarrollo del presente documento.
3
II ANTECEDENTES
II.1Datos Generales de la Empresa
La Universidad Tecnológica de la Huasteca Hidalguense (UTHH) es una
institución con un alto prestigio y valor académico, el cual está basado en su
modelo educativo de enseñanza práctica 70% y enseñanza teórica 30%, así
mismo por formación general 80% y formación especializada 20%, aunado a
esto su filosofía de excelencia y calidad han hecho de esta universidad una de
las más prestigiadas a nivel regional. (UTHH, 2006a)
El modelo educativo está basado en el estudio educativo de países de
primer mundo como son Japón con sus Colegios Técnicos; Gran Bretaña y sus
Institutos Politécnicos; Francia con su Sistema de Institutos Universitarios de
Tecnología; los Colegios Comunitarios de los Estados Unidos de América; y las
Escuelas de Formación Técnica de Alemania, donde esta modalidad ha
funcionado por décadas y ha contribuido a la mejora económica de estos
países. (UTHH, 2006a)
En un análisis realizado a través de la Secretaria de Educación Pública
(SEP) en 1989 se detectó en México la incompatibilidad entre la enseñanza
superior con las necesidades de los estudiantes y del sector productivo, y
pocas opciones para continuar la preparación superior de los jóvenes. Por ello
la Secretaria de Educación Pública en coordinación con los gobiernos estatales
optaron por la creación de Universidades Tecnológicas cuyo objetivo es
“Desarrollar la educación tecnológica superior posterior al bachillerato con
duración de dos años, mediante la participación de planes y programas de
estudios a lo largo de seis cuatrimestres, equivalentes a tres mil horas de
estudio, y que conlleva a la obtención del título de Técnico Superior
Universitario. (UTHH, 2005b)
Más tarde la UTHH, con las anteriores experiencias ganadas, realizó un
estudio socio - histórico, micro y macro-regional de la Huasteca muy completo
4
para el cual los expertos realizaron diagnósticos de las necesidades
manifiestas de la región logrando incorporar las aspiraciones y opiniones de los
potenciales usuarios de esta universidad: estudiantes, empleadores y
productores; de manera tal que la Universidad Tecnológica de la Huasteca
Hidalguense no sólo significa la implantación de un centro educativo en una
región clave de nuestro Estado, sino también la posibilidad de acercar y difundir
los avances de carácter tecnológico a un medio rural. (UTHH, 2005b)
La Universidad Tecnológica de la Huasteca Hidalguense, abrió sus
puertas en enero de 1996, con un curso propedéutico de seis semanas de
duración. (UTHH, 2005b)
En enero de 1997, dio inicio el primer cuatrimestre, con las carreras de
Informática y Mecánica. El 24 de abril de 1997 , se publicó en el periódico
oficial del Gobierno del Estado de Hidalgo, el Decreto de Creación de la
Universidad Tecnológica de la Huasteca Hidalguense como un organismo
público descentralizado del Gobierno Estatal, para lo que se conjuntaron tanto
esfuerzos de la Federación como del Estado, siendo la número cuatro en el
Estado de Hidalgo; cabe resaltar la iniciativa Hidalguense de transformar el
concepto de Universidad Tecnológica de Desarrollo, como innovación para las
zonas marginadas con un incipiente sector productivo, en contraste con todas
las anteriores universidades que fueron fundadas donde existe un sector
productivo muy importante en su entorno. (UTHH, 2005b)
Por su ubicación, el tipo de carreras, el carácter intensivo de sus planes
y programas de estudios, así como el bajo costo económico de las colegiaturas
la UTHH representó desde sus inicios, una alternativa accesible para los
jóvenes de la región. (UTHH, 2005b)
II.1.1 Misión
Ofrecer servicios educativos y de gestión tecnológica, mediante
programas de calidad, apoyados en personal competente, infraestructura y
tecnología de vanguardia, para formar integralmente Técnicos Superiores
5
Universitarios e Ingenieros que coadyuven al desarrollo regional con un amplio
sentido de responsabilidad social. (UTHH, 2009)
II.1.2 Visión
Ser una institución reconocida a nivel nacional por su calidad educativa y
de servicios, con resultados en investigación aplicada, incidiendo en el
desarrollo sustentable de la región, que forme integralmente profesionales en
Técnico Superior Universitario e Ingeniería, con valores, competitivos y
comprometidos con su entorno, mediante programas educativos acreditados,
cuerpos académicos en consolidación, infraestructura de vanguardia y gestión
eficiente, que impulsen el desarrollo de la región y del país. (UTHH, 2009)
II.1.3 Política de calidad
La UTHH establece el compromiso de prestar servicios educativos,
sustentados en la filosofía de mejora continua, con la finalidad de atender y
satisfacer los requerimientos de los alumnos, egresados y de los sectores
productivo y social. (UTHH, 2009)
Valores
Compromiso.
Creatividad.
Honestidad.
Respeto.
(UTHH, 2009)
II.1.4 Descripción del TSU
La Universidad Tecnológica de la Huasteca Hidalguense forma Técnicos
Superiores Universitarios en dos años de estudios intensivos. Este modelo
educativo orienta el proceso de enseñanza-aprendizaje con base en los
siguientes atributos:
6
Pertinencia: Las carreras que se imparten en la Universidad
Tecnológica se identifican con las necesidades reales de su
entorno.
Polivalencia: Se otorga una sólida formación general en
conocimientos científicos y técnicos, capacitando al estudiante
para desarrollarse con éxito en cualquier rubro del sector
productivo.
Flexibilidad: los planes de estudio se actualizan constantemente
para adecuarse a los cambios científicos y tecnológicos. Se
cancelan o se abren carreras de acuerdo a las necesidades
regionales.
Intensidad: los contenidos de las materias que se imparten se
concentran en sus aspectos fundamentales y prácticos. Los
horarios de estudio son de 35 horas por semana distribuidos en el
aula, el taller o laboratorio y las prácticas en la empresa, además
de actividades extracurriculares que demandan una dedicación de
tiempo completo por parte del alumno durante los años de
formación. (UTHH, 2005a)
La posición de un Técnico Superior Universitario en el organigrama de
trabajo no depende de un ingeniero o licenciado para trabajar, a este se le
considera de mando medio. El Técnico es capaz de responsabilizarse de un
equipo de trabajo, tiene su propio campo de acción, trabaja con iniciativa propia
y realiza la programación de sus actividades. (UTHH, 2005a)
El Técnico Superior Universitario puede desempeñarse
profesionalmente en una amplia gama de actividades productivas; colaborando
en una organización, prestando sus servicios libremente, o creando su propia
empresa. (UTHH, 2005a)
Ante la carencia de Técnicos Superiores, la mayoría de los egresados
de licenciatura ocupan esas posiciones en el mercado laboral sin estar
preparados para ello, lo que ocasionaba demérito en su desempeño
profesional. (UTHH, 2005a)
7
II.1.5 Descripción donde se realizó la estadía
El presente proyecto se realizó dentro de la carrera de Tecnologías de la
Información y Comunicación (TIC) de la Universidad Tecnológica de la
Huasteca Hidalguense ubicada en la ciudad de Huejutla de Reyes Hidalgo en
la carretera Huejutla-Chalahuiyapa S/N.
El área de TIC está compuesta por un director de área que gestiona los
recursos que tiene a su disposición (tanto humanos como materiales), tiene
como colaboradora una secretaria de dirección que controla y agenda las
reuniones y avisos del personal docente, además existen profesores asociados
que tienen contratos temporales de duración determinada que imparten las
asignaturas, los profesores investigadores asociados son los trabajadores
académicos que se dedican a las labores de docencia e investigación y a las
correspondientes en extensión y difusión de la cultura, los profesores de
asignatura quienes de acuerdo con la categoría que fije su nombramiento, son
remunerados en función del número de horas de clase que impartan frente al
grupo, además existe un jefe oficina que dirige los laboratorios y les da
mantenimiento, los coordinadores son los que arreglan y preparan los métodos
para la mejora continua de los servicios de la carrera. Se presenta una tabla
con el total de trabajadores y sus respectivos puestos:
Nivel Unidad administrativa TotalII Director de área 1IV Profesores asociados 4
IVProf. Investigadores
asociados3
IV Prof. De asignatura 12V Coordinador 1
VII Jefe de oficina 1X Secretaría de dirección 1
Tabla 1. Tabla de distribución y cargos académicos de TIC (UTHH, 2006b)
8
Se presenta una descripción de la estructura de la organización del área
de TIC, mediante un organigrama que define los niveles de jerarquía y la
relación entre los distintos puestos de trabajo, mencionados anteriormente:
Figura 1 Organigrama del área de Tecnologías de la Información y Comunicación (UTHH, 2006b)
II.1.6 Perfil profesional del programa educativo de TIC
Capacidad de análisis y síntesis habilidades para la investigación básica,
las capacidades individuales y las destrezas sociales; habilidades gerenciales y
las habilidades para comunicarse en un segundo idioma. (UTHH, 2004b)
II.1.7 Competencias específicas
Formula proyectos de tecnologías de información, mediante procesos
estándares y modelos de calidad para contribuir con el logro de los objetivos
estratégicos de las organizaciones. (UTHH, 2004b)
Coordinador del Servicio de Carrera
Jefe de Oficina del Laboratorio de Computo
Secretaria de información
Dirección de la carrera de tecnologías de la información y
comunicación
Profesor Investigador
Profesor Investigador Asociado
Profesor de asignatura
9
II.1.8 Misión del programa educativo de tecnologías de la información y
comunicación
Ofrecer servicios educativos, mediante programas de calidad apoyados
con tecnología de vanguardia para formar Técnicos Superiores Universitarios
en Tecnologías de la Información y Comunicación e Ingenieros en Tecnologías
de la Información comprometidos y emprendedores, que respondan a las
expectativas de la sociedad y coadyuven al desarrollo sustentable de la región.
(UTHH, 2004b)
II.1.9 Visión del programa educativo tecnologías de la información y
comunicación al 2012
Ser un programa educativo en Tecnologías de la Información y
Comunicación acreditado por el Consejo de Acreditación de la Enseñanza de la
Ingeniería (CACEI), con planes y programas de estudio basados en
competencias profesionales, que satisfaga las expectativas de los alumnos y
del sector productivo, a través de un servicio educativo de calidad y que preste
servicios de aplicación del conocimiento con docentes habilitados y
organizados en cuerpos académicos consolidados. (UTHH, 2004a)
II.2Trabajos Previos
Los primeros ejemplos de lo que hoy podríamos llamar algoritmos
genéticos aparecieron a finales de los 50 y principios de los 60, programados
en computadoras por biólogos evolutivos que buscaban explícitamente realizar
modelos de aspectos de la evolución natural. A ninguno de ellos se le ocurrió
que esta estrategia podría aplicarse de manera más general a los problemas
artificiales, pero ese reconocimiento no tardaría en llegar: “La computación
evolutiva estaba definitivamente en el aire en los días formativos de la
computadora electrónica”. (Melanie, 1999)
10
Existen numerosos proyectos de asignación de horarios basados y
desarrollados con algoritmos genéticos, muchos han generado buenos
resultados, estos se han utilizado en grandes universidades a lo largo del
mundo.
Algunos de los sistemas generadores de horarios más destacados y
que han dado un buen resultado son;
Asignación de horarios de clases universitarias mediante
algoritmos evolutivos, desarrollado por el ingeniero José María
Mejía Caballero para la Universidad De La Guajira en
Barranquilla. El sistema es capaz de generar los horarios de toda
la universidad, donde cada director de cada carrera puede asignar
a cada asignatura el profesor que más le convenga.(Mejía Caballero
& Paternina Arboleda, 2009).
Experimentos con Algoritmos Genéticos para resolver un
problema real de Programación Maestros-Horarios-Cursos
desarrollado en el Departamento de Matemáticas de la
Universidad de Sonora, en Hermosillo Sonora. El sistema
considera que algunas asignaturas tienen que ser recibidas en
algunas aulas, el sistema puede asignar cursos a profesores, y
maneja los horarios de diferentes departamentos. (P. Flores, et al.,
2005).
Elaboración de Horarios Académicos Usando Algoritmos
Genéticos, es un software de asignación de horarios desarrollado
en Bogotá Colombia. Este trabajo aporta un modelo
computacional basado en algoritmos genéticos (AG), el cual fue
programado en MATLAB, el sistema maneja los horarios de cada
alumno, es decir se adapta a los cursos que pueda tener el
alumno. (Martínez, 2010)
11
Análisis, Diseño e Implementación de un sistema de Información
Para la Gestión Académica de un Instituto Superior Tecnológico,
desarrollado en Lima, agosto de 2011, por Alexander Daniel
Norabuena Guevara, el sistema que se desarrollo en la institución
puede manejar los horarios de los alumnos entre las clases y
después de haber finalizado, cabe resaltar que los servicios
educativos se ofrecen antes, durante y después de los estudios
regulares de los alumnos, ya que involucran actividades previas a
la matriculación de los estudiantes y posteriores al termino de sus
estudios, como es el caso de las certificaciones.(Norabuena Guevara,
2011).
Algoritmos Genéticos para la Optimización de Asignación de
Espacios Áulicos tomando en cuenta que algunas son de ciertas
capacidades y se usan en algunas fechas en particular para
eventos, además se maneja la distancia entre aulas para que el
alumno ahorre tiempo de una asignatura a la otra, fue
desarrollado por el Grupo de Investigación Sobre Inteligencia
Artificial (GISIA) en chaco argentina(Karanik & Pérez).
Sistema Gestor de Horarios Mediante Algoritmos Genéticos
desarrollado por el ingeniero en TIC Rafael de la Cruz Bautista,
en Huejutla de Reyes, Hidalgo. Para la Universidad Tecnológica
de la Huasteca Hidalguense, un sistema generador de horarios
que mediante algoritmos genéticos y una serie de datos genera
los horarios de la carrera de TIC. (Bautista, 2012)
Son varios los trabajos previos desarrollados hasta el momento sobre la
asignación de horarios mediante algoritmos genéticos los que han resuelto en
su momento el problema para el cual fueron realizados.
12
III PLANTEAMIENTO DEL PROBLEMA
III.1 Justificación
Actualmente el director del área de Tecnologías de la Información Y
Comunicación (TIC), realiza la gestión de horarios manualmente mediante una
herramienta de la paquetería Microsoft office, y un algoritmo de envió de
mensajes llamado Escitala.
El desarrollar el sistema que gestione y genere los horarios, ayudará al
mejor acomodo y administración de los salones, aulas y horas, se podrán
generar los horarios más rápidamente mientras el director desarrolla otras
tareas. Al finalizar la generación de horarios estos puede tener un margen de
error mínimo.
El sistema gestor de horarios se adaptará a diversas situaciones como el
manejo de clases con horarios estáticos definidos por el usuario.
III.2 Objetivo general
Realizar un sistema gestor de horarios para agilizar el proceso de
programación de Alumnos-Aulas-Maestros-Materias y proporcionar un mayor
aprovechamiento de los recursos con los que cuenta el área de TIC mediante
un procedimiento de optimización metaheurística a través del método de
algoritmos genéticos.
III.2.1 Objetivos específicos
Realizar un análisis del funcionamiento de los algoritmos genéticos y así
diseñar una solución que optimice la asignación de horarios en el área
que se vaya a implementar, aprovechando de la mejor manera posible
sus recursos y con un mínimo de esfuerzo.
Asegurar que el sistema generador de horarios tenga las restricciones
necesarias para que dé una solución clara y un mínimo de errores
13
aceptable, y que los recursos con los que se cuenta estén bien
administrados.
Diseñar un sistema amigable y dinámico para el usuario.
III.3 Metas
Terminar en dos semanas desde el inicio del proyecto una investigación
sobre el funcionamiento de los algoritmos genéticos.
Se recopilará en la primer semana, la información de la institución para
la realización del sistema.
Desarrollar en 7 semanas una interfaz grafica y amigable para el
usuario.
Terminar en 3 meses el sistema generador de horarios con las
restricciones necesarias y arrojando soluciones con un mínimo de
errores aceptable al problema planteado.
IV FUNDAMENTOS TEÓRICOS
14
Un sistema de información (SI) es un tipo especializado de sistema que
puede definirse de muchas maneras, un SI es un conjunto de elementos o
componentes interrelacionados para recolectar (entrada), manipular (proceso) y
diseminar (salida) datos de información y para proveer un mecanismo de
retroalimentación para el cumplimiento de un objetivo. (Stair & Reynolds, 2000).
Para que el sistema de información pueda funcionar necesita un
lenguaje de programación que manipulará los datos de entrada y ofrecerá una
salida de datos útil, también se requiere de un manejador de base de datos
que guardará y gestionará los datos necesarios para que el SI funcione.
IV.1.1 Sistema gestor de base de datos Microsoft SQL Server
SQL Server es una plataforma global de base de datos que ofrece
administración de datos empresariales con herramientas integradas de
inteligencia empresarial. El motor de la base de datos SQL Server permite
crear y administrar aplicaciones de datos. (Dumler, 2011)
Permite desarrollar objetos de base de datos en lenguajes .NET. Pueden
crearse Objetos de código, incluyendo Funciones, Procedimientos en lenguajes
como C# y VB.NET. (Dumler, 2011)
Permite realizar varias tareas al mismo tiempo que incluyen: creación y
ejecución de una consulta, visualización de objetos del servidor, administración
de un objeto, supervisión de la actividad del sistema y visualización de la ayuda
en línea. SQL Server Management Studio aloja un entorno de desarrollo para la
creación, edición y administración de secuencias de comandos y
procedimientos almacenados a través de Transact-SQL. (Dumler, 2011)
IV.1.2 Entorno de desarrollo Microsoft Visual Studio
15
Visual Studio une en un mismo entorno diseñadores visuales para
interfaces de usuario nativas y Web, diseñadores de esquemas y recursos,
editores de código específicos para múltiples lenguajes, así como los
compiladores y utilidades necesarias para generar aplicaciones a partir de
todos esos elementos. (Charte & Serrano Pérez, 2002)
IV.1.3 Lenguaje de programación C#
El lenguaje de programación C# se creó como un lenguaje orientado a
objetos que recoge las características más avanzadas de Java, así como las
más potentes de C++. Esto permitirá acceder con C# a todos los servicios que
brinde la plataforma .NET, al igual que permitirá crear código, así como
acceder a las interfaces de programación de las aplicaciones existentes.
(Bueno Martín & Cambronero Sánchez, 2003)
La sintaxis y estructuración de C# es similar a la de C++, ya que
Microsoft pretende con esto facilitar la migración de los programadores en C y
C++ al nuevo lenguaje. Así mismo C# ofrece también la sencillez y
productividad propias de Visual Basic. (Bueno Martín & Cambronero Sánchez, 2003)
IV.1.4 Algoritmos genéticos
IV.1.4.1 Historia de los algoritmos genéticos
Los algoritmos genéticos (AG) fueron descubiertos y formalizados
teóricamente por John Holland en 1975. Su aplicación principal es en la
solución de problemas en la búsqueda y optimización y están basados en los
métodos de evolución biológica: selección natural, reproducción y mutación.
Desde sus inicios han sido usados en problemas reales tales como:
optimización y control de tuberías de gas, diseño de redes de comunicación,
diseño de armaduras metálicas, etc. (P Flores, 2005)
IV.1.4.2 ¿Qué son los algoritmos genéticos?
16
Expuesto concisamente, un algoritmo genético (o AG para abreviar) es
una técnica de programación que imita a la evolución biológica como estrategia
para resolver problemas. Dado un problema específico a resolver, la entrada
del AG es un conjunto de soluciones potenciales a ese problema, codificadas
de alguna manera, y una métrica llamada función de aptitud que permite
evaluar cuantitativamente a cada candidata. Estas candidatas pueden ser
soluciones que ya se sabe que funcionan, con el objetivo de que el AG las
mejore, pero se suelen generar aleatoriamente. (Marczyk, 2004)
Luego el AG evalúa cada candidata de acuerdo con la función de
aptitud. En un acervo de candidatas generadas aleatoriamente, por supuesto,
la mayoría no funcionarán en absoluto, y serán eliminadas. Sin embargo, por
puro azar, unas pocas pueden ser prometedoras, pueden mostrar actividad,
aunque sólo sea actividad débil e imperfecta, hacia la solución del problema.
(Marczyk, 2004)
Estas candidatas prometedoras se conservan y se les permite
reproducirse. Se realizan múltiples copias de ellas, pero las copias no son
perfectas; se introducen cambios aleatorios durante el proceso de copia.
Luego, esta descendencia digital prosigue con la siguiente generación,
formando un nuevo acervo de soluciones candidatas, y son sometidas a una
ronda de evaluación de aptitud. Las candidatas que han empeorado o no han
mejorado con los cambios en su código son eliminadas de nuevo; pero, de
nuevo, por puro azar, las variaciones aleatorias introducidas en la población
pueden haber mejorado a algunos individuos, convirtiéndolos en mejores
soluciones del problema, más completas o más eficientes. De nuevo, se
seleccionan y copian estos individuos vencedores hacia la siguiente generación
con cambios aleatorios, y el proceso se repite. Las expectativas son que la
aptitud media de la población se incrementará en cada ronda y, por tanto,
repitiendo este proceso cientos o miles de rondas, pueden descubrirse
soluciones muy buenas del problema. (Marczyk, 2004)
Se presenta en la figura 2 el algoritmo básico, para la construcción del
algoritmo genético.
17
Figura 2 Pseudocódigo básico de los algoritmos genéticos.
IV.1.5 Métodos de selección
Un algoritmo genético puede utilizar muchas técnicas diferentes para
seleccionar a los individuos que deben copiarse hacia la siguiente generación,
pero abajo se listan algunos de los más comunes. Algunos de estos métodos
son mutuamente exclusivos, pero otros pueden utilizarse en combinación, algo
que se hace a menudo. (Marczyk, 2004)
Selección por torneo: se elige una muestra de individuos de la
población aleatoriamente, y los miembros de cada muestra
compiten entre ellos. Sólo se eligen a 2 individuos de cada
muestra para la reproducción. (Marczyk, 2004)
En la figura 3 se presenta la selección por torneo, que consiste en tomar
una muestra de la población, evaluar a los individuos y elegir el que tenga
mayor optimización.
Figura 3 Selección por torneo.
Selección elitista: se garantiza la selección de los miembros más
aptos de cada generación. (La mayoría de los AGs no utilizan
elitismo puro, sino que usan una forma modificada por la que el
individuo mejor, o algunos de los mejores, son copiados hacia la
18
siguiente generación en caso de que no surja nada mejor).
(Marczyk, 2004)
Selección proporcional a la aptitud: los individuos más aptos
tienen más probabilidad de ser seleccionados, pero no la certeza.
(Marczyk, 2004)
Selección por rueda de ruleta: una forma de selección
proporcional a la aptitud en la que la probabilidad de que un
individuo sea seleccionado es proporcional a la diferencia entre su
aptitud y la de sus competidores. (Conceptualmente, esto puede
representarse como un juego de ruleta; cada individuo obtiene
una sección de la ruleta, pero los más aptos obtienen secciones
mayores que las de los menos aptos. Luego la ruleta se hace
girar, y en cada vuelta aleatoria se elige al individuo que posea la
sección en la que se pare la ruleta). (Marczyk, 2004)
Selección jerárquica: los individuos atraviesan múltiples rondas de
selección en cada generación. Las evaluaciones de los primeros
niveles son más rápidas y menos discriminatorias, mientras que
los que sobreviven hasta niveles más altos son evaluados más
rigurosamente. La ventaja de este método es que reduce el
tiempo total de cálculo al utilizar una evaluación más rápida y
menos selectiva para eliminar a la mayoría de los individuos que
se muestran poco o nada prometedores, y sometiendo a una
evaluación de aptitud más rigurosa y computacionalmente más
costosa sólo a los que sobreviven a esta prueba inicial. (Marczyk,
2004)
IV.1.6 Operadores genéticos
IV.1.6.1 Mutación
19
Una vez que la selección ha elegido a los individuos aptos, éstos deben
ser alterados aleatoriamente con la esperanza de mejorar su aptitud para la
siguiente generación. Existen dos estrategias básicas para llevar esto a cabo.
La primera y más sencilla se llama mutación. Al igual que una mutación en los
seres vivos cambia un gen por otro, una mutación en un algoritmo genético
también causa pequeñas alteraciones en puntos concretos del código de un
individuo. Abajo se listan algunos de los métodos de mutación más comunes.
(Marczyk, 2004)
Mutación de bit: existe una única probabilidad de que se produzca
una mutación de algún bit. De producirse, el algoritmo toma
aleatoriamente un bit, y lo invierte. (Marczyk, 2004)
Mutación multibit: cada bit tiene una probabilidad de mutarse o no,
que es calculada en cada pasada del operador de mutación
multibit. (Marczyk, 2004)
Figura 4 Mutación multibit.
Mutación de gen: igual que la mutación de bit, solamente que, en
vez de cambiar un bit, cambia un gen completo. Puede sumar un
valor aleatorio, un valor constante, o introducir un gen aleatorio
nuevo. (Marczyk, 2004)
20
Figura 5 Diagrama: Función de Mutación
Mutación multigen: igual que la mutación de multibit, solamente
que, en vez de cambiar un conjunto de bits, cambia un conjunto
de genes. Puede sumar un valor aleatorio, un valor constante, o
introducir un gen aleatorio nuevo. Esta mutación es la que se
produce implícitamente en nuestra implementación de cruce.
(Marczyk, 2004)
Mutación de intercambio: existe una probabilidad de que se
produzca una mutación. De producirse, toma dos bits/genes
aleatoriamente y los intercambia. (Marczyk, 2004)
Mutación de barajado: existe una probabilidad de que se
produzca una mutación. De producirse, toma dos bits o dos genes
aleatoriamente y baraja de forma aleatoria los bits o genes, y los
asigna al gen que esta mutando. (Marczyk, 2004)
IV.1.6.2 Cruza
Implica elegir a dos individuos para que intercambien segmentos de su
código, produciendo una descendencia artificial cuyos individuos son
combinaciones de sus padres. Este proceso pretende simular el proceso
análogo de la recombinación que se da en los cromosomas durante la
reproducción sexual. Se enlistan abajo las formas comunes de cruzamiento:
(Viteri, 2010)
21
Cruzamiento de un punto: En el que se establece un punto de
intercambio en un lugar aleatorio del genoma de los dos individuos, y
uno de los individuos contribuye todo su código anterior a ese punto y el
otro individuo contribuye todo su código a partir de ese punto para
producir una descendencia. (Viteri, 2010)
Figura 6 Diagrama: Función de Cruza
Cruce básico: se selecciona un punto al azar de la cadena. La parte
anterior del punto es copiada del genoma del padre y la posterior del de
la madre. (Viteri, 2010) (Ver figura 4)
Cruce multipunto: igual que el cruce básico, sólo que estableciendo más
de un punto de cruce. (Viteri, 2010)
Cruce segmentado: existe una probabilidad de que un cromosoma sea
punto de un cruce. Conforme se va formando la nueva cadena del
descendiente, para cada gen, se verifica si ahí se va producir un cruce.
(Viteri, 2010)
Cruce uniforme: para cada gen de la cadena del descendiente existe
una probabilidad de que el gen pertenezca al padre, y otra de que
pertenezca a la madre. (Viteri, 2010)
IV.1.7 Elitismo
Consiste en guardar siempre el mejor individuo de la población para la
siguiente generación, normalmente sustituyéndolo por el peor. Hay estudios
que indican que un algoritmo con selección elitista asegura la convergencia del
Algoritmo genético (AG) hacia un óptimo global. (Rakauer, 2002)
22
IV.1.8 Función de evaluación
Durante la evaluación, se decodifica el gen, convirtiéndose en una serie
de parámetros de un problema, se halla la solución del problema a partir de
esos parámetros, y se le da una puntuación a esa solución en función de lo
cerca que esté de la mejor solución. A esta puntuación se le llama fitness.
El fitness determina siempre los cromosomas que se van a reproducir, y
aquellos que se van a eliminar, pero hay varias formas de considerarlo para
seleccionar la población de la siguiente generación:
Asignar un valor en base al número de errores que tiene el
cromosoma.
En algunos casos, el fitness no es una sola cantidad, sino
diversos números, que tienen diferente consideración. Basta con
que el fitness forme un orden parcial, es decir, que se puedan
comparar dos individuos y decir cuál de ellos es mejor. Esto suele
suceder cuando se necesitan optimizar varios objetivos.
IV.1.8.1 Definición de restricciones
Son las que establecen las reglas de funcionamiento y definen la calidad
de la solución o el resultado obtenido. Aquella solución que satisfaga de mejor
manera todas las restricciones es la mejor solución.
Las restricciones se pueden clasificar en fuertes y débiles de acuerdo
con el peso sobre la calidad de la solución. En este caso tenemos las
siguientes:
Fuertes: Aquellas que son de obligatorio cumplimiento para validar la
solución obtenida.
Débiles: aquellas que mejoran la calidad de la solución, pero no son de
obligatorio cumplimiento.
23
V HIPÓTESIS
Existe una solución óptima para el problema de asignación de horarios y
salones de la Universidad Tecnológica de la Huasteca Hidalguense,
construyendo un sistema que genere los horarios mediante la metodología de
los algoritmos genéticos.
La solución deseada se plantea en términos de medidas de desempeño.
El objetivo de la investigación destaca que la solución propuesta debe ser
viable (debe ser ágil y óptima); la solución se plantea en términos de calidad de
los resultados obtenidos y tiempo computacional requerido para conseguirlos.
La primera es una medida de lo óptimo; la segunda, de lo ágil.
Es posible diseñar un sistema de información que mediante un algoritmo
de optimización pueda resolver la asignación de salones y horarios de clases
universitarias, basado principalmente en algoritmos genéticos, que obtenga los
mejores valores de función objetivo. Las soluciones pueden lograrse en un
tiempo no superior a 2 horas proporcionando información práctica para la
gestión.
24
VI DESARROLLO DEL PROYECTO
VI.1 Metodología
En el sentido más estricto, la metodología es el instrumento para obtener
información sobre la realidad, es el vehículo para recorrer el camino del método
científico, el saber sobre el camino para llegar a algo. Es un conjunto de
saberes, de técnicas y aproximaciones que tienen su vigencia ortopédica, su
sentido de ayuda. (Lerma, 2003)
Los algoritmos genéticos son una metodología de búsqueda de
soluciones, usa individuos, cada individuo representa una solución al problema
planteado. (Lerma, 2003)
La información de cada individuo se codifica en unidades de
almacenamiento denominadas genes y la suma de estos genes conforma el
cromosoma computacional. Cada cromosoma representa a un individuo
(solución a un problema) y contiene toda la información genética de la especie.
La suma de los individuos constituye la población que tiene como componentes
los padres de donde serán obtenidos los hijos por medio de los cruces, la
selección o fitness y las Mutaciones. (Lerma, 2003)
Una vez constituido el individuo que está representado en el cromosoma
y este cromosoma en la suma de los genes, se determina la población, lo cual
exige que se establezcan los criterios de selección que harán que las
generaciones posteriores cumplan los criterios establecidos por las
restricciones definidas anteriormente. (Lerma, 2003)
La implementación del fitness o proceso de selección garantiza que de
cada generación de individuos se escojan los mejores representantes para
tratar de preservar la información genética más valiosa y así producir mejores
25
hijos. Se entiende por fitness la función de aptitud, que es el parámetro que
evalúa una solución y permite que el algoritmo genético eleve su rendimiento al
mejorar la aptitud de los cromosomas conforme avanza el proceso. (Lerma, 2003)
Adicionalmente para aumentar la posibilidad de mejoramiento se
introduce periódicamente un fenómeno de cambio genético al azar por medio
de la mutación. Esta consiste en cambiar de forma aleatoria la información
contenida en un gen, generando un cambio en el individuo que al pasar por el
fitness podría beneficiar la búsqueda de las características ideales de la
solución. (Lerma, 2003)
Los algoritmos genéticos usan un ciclo evolutivo, ofreciendo en cada
generación una mejor solución para el problema. En la figura 7 se muestra una
figura que representa la metodología que usan los algoritmos genéticos:
Figura 7 Algoritmo genético
VI.2 Desarrollo
Para la generación de los horarios, se necesita la siguiente lista de
datos:
Las materias que se impartirán en la semana y el número de
horas asignadas. (Ver anexo D)
26
Una lista de los docentes que impartirán las clases. (Ver anexo E)
Los cuatrimestres activos para la generación del horario.
Los salones en que se impartirán las clases.
Un catálogo de las horas que conforman el horario.
El número de días y sus respectivos nombres, en el que se
acomodaran las clases.
Los turnos que existen en la universidad o carrera.
Los grupos a los que se darán las clases.
Las asignaturas que tendrán horarios estáticos.
Es obligatorio también hacer las asignaciones correspondientes, para la
administración de los horarios. A continuación se presenta una lista de las
asignaciones que deben existir para la gestión de los horarios:
La asignatura debe tener uno o más docentes asignados para dar
las clases (asignación llamada docente-asignatura). (Ver anexo F)
Los grupos deben tener un maestro en especifico que les imparta
cierta asignatura, es por esto que la asignación docente-
asignatura es asignada a un grupo. (Ver anexo G)
Las asignaturas tienen uno o más salones en las que se pueden
impartir las clases. (Ver anexo H)
Existen asignaturas con horas estáticas, estas deben tener
asignadas las horas y días en que se ofrecerán las clases. (Ver
anexo I)
En la tabla 2 se presenta un ejemplo de las asignaciones que se
necesitan para poder generar la planeación de cada grupo: en esta tabla se
encuentran asignadas las asignaturas, los salones en que se pueden impartir
las asignaturas, el docente que le impartirá la asignatura a cada grupo, y los
grupos a los que se les impartirán las clases.
clvG rupo G rupo As ignatura Horas Docente As ignatura G rado T urno
13 ADIS E ÑO G R ÁF IC O 6
Hermes S alazar C asanova
AR E A DE MUL T IME DIA Y C O ME R C IO E L E C T R Ó NIC O 3ª Matutino
13 AS IS T E MAS O P E R AT IVO S 5
J ose de jesus gonzales torres
AR E A DE MUL T IME DIA Y C O ME R C IO 3ª Matutino
13 A Mercadotecnia 4J uan C arlos Martinez Magos
AR E A DE MUL T IME DIA Y C O ME R C IO 3ª Matutino
13 AIDIO MA E X T R ANJ E R O III 4 Ingles
AR E A DE MUL T IME DIA Y C O ME R C IO 3ª Matutino
13 AADMINIS T R AC IÓN DE L A 3
Y ucels Anai del C armen Morales
AR E A DE MUL T IME DIA Y C O ME R C IO 3ª Matutino
13 AMO DE L ADO DE P R O C E S O S 3
Heidi del carmen morales
AR E A DE MUL T IME DIA Y C O ME R C IO 3ª Matutino
13 A T aller de inf 3G adiel R amos Hernandez
AR E A DE MUL T IME DIA Y C O ME R C IO 3ª Matutino
13 A INT E G R ADO R A I 2R afael martinez C asanova
AR E A DE MUL T IME DIA Y C O ME R C IO 3ª Matutino
13 AF O R MAC IÓ N S O C IO C UL T UR A 2
C P . Maryol T orres R amírez
AR E A DE MUL T IME DIA Y C O ME R C IO 3ª Matutino
13 A T UT O R IAS 2C arlos Andres R odriguez Arguelles
AR E A DE MUL T IME DIA Y C O ME R C IO 3ª Matutino
T abla de planeacion del grupo A
27
As ignatura S alones Docente G rupos
Mercadotecnia G 1, B 1, L ab 1Heidi del carmen morales 3-A, 3-B
Mercadotecnia G 1, B 1, L ab 1R afael martinez C asanova 3-C , 3-D
S is temas operativos L ab 7
G adiel R amos Hernandez 3-C , 3-D
DIS E ÑO G R ÁF IC O L ab 2, B 1, L ab 1
R afael martinez C asanova 3-C , 3-D
IDIO MA E X T R ANJ E R O III L ab 4, L ab2, L ab 1Anahi 3-A, 3-BADMINIS T R ACIÓ N DE L A F UNC IÓ N L ab 8
Y ucels Anai del C armen Morales 3-A, 3-B
Vis ta de las as ignaciones realizadas para el S IG HMAG
Tabla 2. Asignación de salones, grupos, asignaturas, docentes.
Posteriormente de que se hayan realizado las asignaciones se puede
obtener la planeación de cada grupo. En la tabla 3 se muestran las asignaturas
que se les impartirán al grupo, los docentes que impartirán la asignatura, y el
tipo de hora que se le asignará.
Tabla 3. Planeación de un grupo.
G rupo As ignatura Aula Día HoraA T UT O R IAS Audiovisual L unes 1A T UT O R IAS Audiovisual L unes 2
As ignación de horas estáticas para el grupo A, con as ignatura T utorías
28
En la tabla 4 se muestra la asignación de horas estáticas para el grupo
A, que tendrá 2 clases de tutorías el día lunes en la sala audiovisual, en la
primera y segunda hora.
Tabla 4. Asignación de horas estáticas
VI.2.1 Inicialización.
La concepción del gen se realiza por la combinación de las variables
involucradas en el problema como son aulas, horas y días. Se crea el gen
guardándolo en un arreglo (Conjunto de valores de un mismo tipo), donde la
información se encuentra codificada por números de la siguiente manera:
Donde a cada variable se le asigna un identificador. La figura 8 presenta un
ejemplo que se decodificaría de la siguiente manera; la clase se tomaría en el
salón “G4” el día “Martes”, de “9:30 a 10:30”.
clvG rupo G rupo As ignatura Horas Docente As ignatura G rado T urno
13 ADIS E ÑO G R ÁF IC O 6
Hermes S alazar C asanova
AR E A DE MUL T IME DIA Y C O ME R C IO E L E C T R Ó NIC O 3ª Matutino
13 AS IS T E MAS O P E R AT IVO S 5
J ose de jesus gonzales torres
AR E A DE MUL T IME DIA Y C O ME R C IO 3ª Matutino
13 A Mercadotecnia 4J uan C arlos Martinez Magos
AR E A DE MUL T IME DIA Y C O ME R C IO 3ª Matutino
13 AIDIO MA E X T R ANJ E R O III 4 Ingles
AR E A DE MUL T IME DIA Y C O ME R C IO 3ª Matutino
13 AADMINIS T R AC IÓN DE L A 3
Y ucels Anai del C armen Morales
AR E A DE MUL T IME DIA Y C O ME R C IO 3ª Matutino
13 AMO DE L ADO DE P R O C E S O S 3
Heidi del carmen morales
AR E A DE MUL T IME DIA Y C O ME R C IO 3ª Matutino
13 A T aller de inf 3G adiel R amos Hernandez
AR E A DE MUL T IME DIA Y C O ME R C IO 3ª Matutino
13 A INT E G R ADO R A I 2R afael martinez C asanova
AR E A DE MUL T IME DIA Y C O ME R C IO 3ª Matutino
13 AF O R MAC IÓ N S O C IO C UL T UR A 2
C P . Maryol T orres R amírez
AR E A DE MUL T IME DIA Y C O ME R C IO 3ª Matutino
13 A T UT O R IAS 2C arlos Andres R odriguez Arguelles
AR E A DE MUL T IME DIA Y C O ME R C IO 3ª Matutino
T abla de planeacion del grupo A
29
Figura 8 Constitución del GEN
VI.2.2 Generación del cromosoma
Luego de hacer la construcción del gen con los datos suministrados al
sistema, se conforma el cromosoma (horario), que es la suma de varios genes.
Es importante aclarar que el tamaño del mismo dependerá del número de
materias y grupos, se muestra una tabla con la planeación de un grupo (Ver
tabla 5).
Tabla 5. Planeación.
Para crear el cromosoma se toma primeramente el primer registro
en la tabla de planeaciones que en este caso es DISEÑO
GRAFICO (Ver tabla 5).
A continuación se obtendrá un aula que se haya asignado a la
asignatura de DISEÑO GRAFICO (en la figura 2 se pueden
observar que salones fueron asignados a la asignatura DISEÑO
GRAFICO) en este caso seleccionaremos aleatoriamente el aula
“LAB 2” que tiene como clave el numero 2.
Posteriormente se obtendrá el día y la hora aleatoriamente,
supóngase que para el día se obtiene el 2 y para la hora el 1
entonces el gen iniciaría con los valores: 2, 2,1.
30
Este proceso se repite por cada fila de la tabla de planeación.
Entonces para la asignatura de diseño grafico el proceso se repetirá 6
veces, se muestra una figura de como se inicializaría el cromosoma (Ver figura
9).
Figura 9 Inicialización del cromosoma.
VI.2.3 Población
A partir del cromosoma construido y siguiendo con las especificaciones
de los AG, el siguiente paso es la creación de la población, definida como un
conjunto de individuos, cada uno con un cromosoma independiente. Como se
contempló en los parámetros iníciales, consta de N número de individuos.
El proceso de la generación de la población inicia de la misma manera
que la generación del cromosoma, solo que en esta fase se crean varios
cromosomas de manera aleatoria, la población se guarda temporalmente en
una arreglo bidimensional de N numero de espacios, el arreglo contiene todos
los individuos. (Ver figura 10)
Figura 10 Población.
31
VI.2.4 Evaluación
Cada individuo se evaluará por medio del fitnness (sistema de selección
o entrenamiento) para establecer cuál es la mejor opción de horario. Cada
individuo tiene asignado un valor de optimización, este es inicializado con un
valor de 976503 que es el numero de choques maximos que puede tener un
individuo, se debe tomar en cuenta que cada tipo de error disminuye en una
cantidad de puntos al valor de optimización.
La función de evaluación en el SIGHMAG, recibe un individuo y lo evalúa
para conocer cuál es su valor de optimización.
VI.2.4.1 Tipos de error
Posteriormente en la función de evaluación se buscan errores, cada
error resta un puntaje a la optimización.
VI.2.4.1.1 Choques entre materias
Regla 1: evalúa que ningún Gen se repita, es decir si tenemos el gen
con Aula igual a 1, día igual a 1, y hora igual a 1. No se debe repetir otro gen
como ese en todo el individuo, este tipo de error quita 3 puntos a la
optimización.
En la figura 11 el gen con valores 1, 1, 1 se repite en otra posición del
arreglo ocasionando un error.
Figura 11 Choques en el individuo.
32
VI.2.4.1.2 Choques entre grupos
Regla 2: El cromosoma del SIGHMA se puede dividir en segmentos,
cada segmento representa un grupo, en la imagen inferior tenemos el grupo A
y el grupo B, en el grupo A existe un error, ya que el gen número 1 y el gen
número 4, tienen el día y la hora igual, pero, el aula es distinta entonces al
decodificar el individuo, el grupo A tendría dos clases al mismo tiempo en
“AULAS” distintas. Este error resta 3 puntos al valor de optimización.
Figura 12 Choques en grupos.
En la figura 13 se muestra como quedaría el gen sin errores, como se
puede observar los genes son los mismos pero se encuentran en grupos
distintos.
Figura 13 Individuo sin choques entre grupos.
VI.2.4.1. Errores en los bloques de hora
Regla 3: Este tipo de error quitara 2 puntos al valor de optimización del
individuo. Un bloque de hora se forma cuando una asignatura debe tener dos
clases el mismo día, aula y horas seguidas, los errores surgen cuando no se
forma el bloque de hora correctamente, se enlistan los tipos de error de bloque:
33
La hora no es consecutiva: Este tipo de error quitara 2 puntos al valor de
optimización del individuo. En la figura 14 se aprecia un bloque de horas
formado por dos genes, pero este bloque de hora tiene un error, las
horas no van seguidas una de la otra, la forma correcta seria que en el
gen 2 el valor de la hora fuera un 2.
Figura 14
Error de hora consecutiva.
El día no es el correcto: Este tipo de error quitara 2 puntos al valor de
optimización del individuo. Este tipo de error es parecido al de las horas
consecutivas, el día de clase no es el mismo, la forma correcta seria que
en los dos genes el día sea el mismo. (Ver figura 15)
Figura 15 Error de día.
El aula no es la correcta: Este tipo de error quitara 2 puntos al valor de
optimización del individuo. El error de aula se forma cuando en un
bloque de hora, el aula no es la misma. En la figura 16 se observa, como
se da este error en un cromosoma.
Figura 16
Error de aula.
34
VI.2.4.2 Restricciones que se deben cumplir al generar cada
horario:
Las restricciones se pueden clasificar en fuertes y débiles de acuerdo
con el peso sobre la calidad de la solución. En este caso tenemos las
siguientes:
Fuertes: Aquellas que son de obligatorio cumplimiento para validar la
solución obtenida.
o Un profesor no puede estar en dos aulas diferentes el mismo día
y a la misma hora.
o Un aula no puede estar ocupada dos veces o por dos grupos al
mismo tiempo.
o Un profesor no puede dictar una asignatura que no le
corresponda.
o Un grupo solo puede tener una clase en un periodo de tiempo.
o Algunas asignaturas deben ser impartidas en un salón en
específico.
o Existen asignaturas que tienen un día, salón y horario específico.
o Cada grupo tiene un profesor, que le impartirá cierta asignatura.
Débiles: aquellas que mejoran la calidad de la solución, pero no son de
obligatorio cumplimiento.
o Un profesor no puede excederse en el número de horas
programadas.
o Todos los profesores deben tener carga académica.
o En ningún caso se puede unir más de dos horas seguidas de la
misma asignatura en un mismo día.
VI.2.5 Selección de padres
El método de selección elegido para el algoritmo genético del SIGHMAG
es; selección por torneo. Durante la etapa de selección de padres es preciso
35
mencionar que se toma una muestra de N número de individuos de manera
aleatoria, una vez realizado este pasó, se comienzan a evaluar todos los
individuos de la muestra mediante la función de evaluación o fitness explicada
anteriormente, una vez que toda la muestra ya ha sido evaluada, se eligen a
los dos individuos con mayor valor de optimización, estos serán los nuevos
padres, en la imagen inferior se aprecia una muestra de la población que ha
sido evaluada, y de ella se han elegido a 2 padres. (Ver imagen 17)
Figura 17 Selección de 2 padres por torneo.
VI.2.6 Padres
Los padres son 2 individuos que fueron elegidos durante el proceso de
selección, estos serán los padres que se ocuparan para la cruza. Durante la
selección se eligen muchos padres que mediante la recombinación crearan
nuevos individuos. (Ver figura 17)
VI.2.7 Recombinación
El siguiente paso en la metodología es la recombinación o cruza que
consiste en obtener dos nuevos hijos de los padres que se eligieron. La cruza
es el proceso de crear dos nuevos hijos para la nueva generación, se hace
combinando los genes de los padres, en la figura 12 tenemos un ejemplo de
cruza. Para generar el hijo 1, el padre 1 pasa el gen numero 1 al hijo 1, y el
padre 2 pasa el gen numero 2 al hijo 1, esto se repite con los demás genes de
manera consecutiva. De igual forma para generar el hijo 2; el padre 1 le pasa el
gen 2 al hijo 1, y el padre 2 le pasa el gen numero 1 al hijo 2, de igual manera
de forma consecutiva. (Ver figura 18)
36
Figura 18 Representación de cruza de 2 cromosomas de la población y 2 hijos como resultado.
VI.2.8 Mutación
Una vez que se tiene la población temporal (individuos de la nueva
generación) se realiza el proceso de mutación en un porcentaje deseado por el
usuario. La mutación se realiza en los errores del cromosoma y en posiciones
aleatorias del individuo. El proceso de mutación se desarrolla de la siguiente
manera; se toma uno de los individuos aleatoriamente, se comienza a evaluar
con la función de evaluación, cuando la función de evaluación encuentre un
error en cualquier parte del individuo; comenzara a mutar ese gen, para ello se
debe conocer la posición del gen, esto para poder conocer a que asignatura,
grupo y turno pertenece. Una vez que se tiene la asignatura se comienza a
mutar el aula, para ello se buscará un aula de manera aleatoria entre las
asignadas, posteriormente se mutará el día para ello se elegirá entre los días
de la semana que son 5, y finalmente se mutará la hora, se elige
aleatoriamente entre las horas del turno que tiene el gen. En la figura 19 se
observa un individuo que ha sido mutado en varias posiciones (Ver figura 19).
Figura 19 Mutación.
37
VI.2.9 Hijos
Los hijos son los individuos que fueron creados a partir de la cruza.
Formaran parte de la nueva población, y remplazaran a la generación anterior.
(Ver figura 20)
Figura 20 Mutación.
VI.2.10 Elitismo
Una vez realizadas las operaciones genéticas se realiza la evaluación de
la población temporal, posteriormente se aplica el elitismo en un porcentaje
determinado por el usuario. La función de elitismo conserva a los mejores
individuos de la generación anterior para pasarlas a la nueva población creada.
Se desarrolla de la siguiente forma; en la figura 21 (ver figura 21), se muestra
una generación anterior y una nueva generación. La función de elitismo
evaluara toda la generación anterior con la función de evaluación, buscara el
individuo con mejor optimización y se guardara en un arreglo, posteriormente
se evalúa la nueva generación con la función de evaluación, se busca al
individuo con menor valor de optimización, una vez encontrado, se remplazará
el peor individuo por el mejor individuo de la generación anterior.
38
Figura 21 Elitismo.
VI.2. Terminación.
Al terminar todas las generaciones, se elige el mejor individuo de la
última generación, este se decodificará y con él se generarán los horarios.
En la figura 22 se tiene como primer gen 2, 2, 1 este gen se decodificaría
de la siguiente manera, el aula será el establecido por el identificador, el día
será martes y la hora será de 7:30 a 8:30, y así sucesivamente cada gen
tendrá que ser decodificado. En el anexo C (Ver anexo C) se muestra como
quedaría el gen después de decodificar.
Figura 22 Terminación.
VI.2. Diseño del algoritmo genético del SIGHMAG
Inicia población (i)
Evalúa población (i)
Elitismo (x)
Hacer Mientras
39
Hacer Mientras llena población
Toma muestra (c)=población (i)
Evalúa muestra (c)
Selecciona Padre1= Muestra (Mayor posición)
Selecciona Padre2=Muestra (Mayor posición)
Hijo1=cruza (Padre1, Padre2)
Hijo2=cruza (Padre2, Padre1)
Población Temporal (i)=Hijo1
Población Temporal (i+1)=Hijo2
Fin Mientras
Mientras cumple porcentaje de mutación
Población-Temporal (aleatoria)=Mutar Aula-Día-Hora (p)
Fin mientras
Población =Población-Temporal
Hacer mientras cumple-porcentaje-elitismo
Población (aleatoria) = mejores(x)
Fin mientras
Obtiene_mejor_individuo(poblacion)
Mientras (Generaciones o individuo-optimo)
Se genera una población de tamaño T según el usuario lo establezca en
la interfaz (Ver Anexo B), posteriormente se evalúa la población inicial para
obtener los mejores individuos de la primera población. Una vez teniendo los
datos necesarios se toma una muestra de la población inicial del tamaño 10 y
se evalúa cada una de ellas hasta terminar la evaluación de la muestra. La
evaluación determina el fitness de cada individuo y mediante este valor se
seleccionan los 2 mejores mismos que serán los padres seleccionados para
poder realizar el cruce de éstos y obtener a los dos nuevos hijos que pasarán a
la siguiente generación.
El siguiente proceso del algoritmo corresponde al porcentaje de
mutación de la nueva población, definido por el usuario en la interfaz (Ver
Anexo B), seleccionando de la nueva población la posición aleatoria y obtener
40
al individuo, posteriormente se sustituyen los valores de Hora y Día en cada
gen de este cromosoma. Concluyendo el porcentaje de mutación deseado, se
realiza el elitismo en la nueva población generada, pasando los datos de los
mejores cromosomas de la generación anterior.
Realizado todo este proceso, el algoritmo genético evalúa cada
generación de la misma manera hasta llegar al límite de generaciones. Al final
se toma al mejor de cada generación para mostrarlo en una tabla del formulario
(Ver Anexo C) de generaciones realizadas. En este mismo formulario se
pueden enviar los datos del mejor individuo el cual contiene el horario de todos
los grupos a formato Excel.
Poblacion Mutacion Elitismo Errores100 3 1 3200 3 1 2,8300 3 1 3,1400 3 1 2,8500 3 1 3,1
Grafica en busca de la mejor población
100 200 300 400
41
VII RESULTADOS
Al terminar el sistema generador de horarios, se desarrollaron pruebas
para encontrar que tamaño de población era el optimo, también se hicieron
pruebas para encontrar que porcentaje de mutación y elitismo eran los
adecuados para le generación de los horarios.
VII.1.1Pruebas de tamaño de población
Se desarrollaron pruebas al SIGHMAG para conocer qué cantidad de
población era es la mejor opción para poder realizar los horarios, se
desarrollaron 10 pruebas con poblaciones de 100, 200, 300, 400, 500. Los
resultados de la pruebas se resumen en la tabla 6. Con las pruebas se
demuestra que encontrar el tamaño óptimo de población es difícil, ya que el
algoritmo se comporta de maneras impredecibles.
Tabla 6. Pruebas de tamaño población.
En la figura 21 se observa el resultado de las pruebas, los peores
resultados se encuentran en las pruebas con tamaño de población 300 y 500,
las mejores pruebas se encuentran en las pruebas con tamaño de población
200 y 400. Es difícil diferir entre que tamaño de población elegir pues los
resultados son algo incongruentes, porque el comportamiento del algoritmo es
impredecible. También se puede observar que el rango de error entre todas las
pruebas está entre 2.8 y 3.1, un rango mínimo.
Poblacion Mutacion Elitismo Errores200 6 3 4,3200 9 3 3,3200 12 3 2,9200 15 3 5,4200 18 3 5,7200 21 3 6200 24 3 6,2
42
Figura 23 Gráfica de las pruebas de tamaño de población.
VII.1.2Pruebas de mutación
Una vez que se tuvo la cantidad de población optima para la generación
de los horarios, se desarrollaron pruebas al SIGHMAG para conocer qué
porcentaje de mutación era el mejor para poder realizar los horarios, se
desarrollaron 50 pruebas, divididas de 10 en 10, se hicieron 10 pruebas con
población mutación 6, 10 pruebas con mutación 9 y así sucesivamente con un
rango de 3. (Ver tabla 7)
Tabla 7. Pruebas de
mutación.
Poblacion Mutacion Elitismo Errores200 12 3 4,3200 12 6 3,3200 12 9 2,9200 12 12 5,4200 12 15 5,7200 12 18 6200 12 21 6,2
43
Figura 24 Gráfica de las pruebas de mutación.
En la grafica de la figura 22 se puede observar que el menor número de
errores se encuentra en el porcentaje mutación de 12
VII.1.3Pruebas de elitismo.
Se desarrollaron las pruebas con el mejor porcentaje de mutación y de
población, con un valor de elitismo de 3, 6, 9, 12, 15, 18, 21. (Ver tabla 8)
Tabla 8. Pruebas de elitismo.
Figura 25 Gráfica de las pruebas de elitismo.
La grafica de la figura 23 demuestra que variar la mutación o darle un
rango mayor no ayuda en nada a disminuir los errores en el algoritmo, pero se
recomienda asignar un 3% de elitismo para que la optimización de los
individuos no tienda a disminuir.
44
VIII CONCLUSIONES
La generación de horarios es una tarea difícil en cualquier institución
educativa y puede ser optimizada por la utilización de un programa de
computación basado en algoritmos genéticos.
Las pruebas de implementación permiten concluir que la utilización de
este modelo de cromosoma, llevado a un sistema de software, posibilita la
realización del horario de forma automatizada.
Las pruebas demuestran que los valores más aptos para asignar al
algoritmo genético, son los siguientes, para la población se encontraron
mejores resultado con un valor de 200, para la mutación un porcentaje del 12%
y para el elitismo se encontró que no ayuda mucho al algoritmo genético, solo
lo ayuda para que no tienda a disminuir el porcentaje de optimización de los
individuos, pero, si se desea contar con esta función, se aconseja que se le
asigne un valor del 3%.
El usar una mutación selectiva ayuda mucho al algoritmo, lo hace más
rápido porque no muta todo el individuo. Una mutación del tipo selectiva ayuda
a que los genes que ya están correctos en un individuo no se pierdan.
Se demostró que el elitismo no es eficiente en el algoritmo pero lo ayuda
a que no tienda a disminuir el porcentaje de optimización, debido a que siempre
se conserva al mejor individuo.
El tener muchas restricciones durante la generación de horarios hace
que algoritmo pierda rendimiento, esto se puede mejorar con un equipo de
cómputo que tenga un hardware de alto rendimiento.
45
VIII.1 Recomendaciones y trabajos futuros
El SIGHMAG generó los horarios de manera óptima, sin embargo le
faltan las siguientes restricciones:
Creación de bloques
Que el profesor no tenga más de una materia al mismo día y hora.
El asignar un docente a un grupo no es recomendable, sería
mejor que el algoritmo los asigne.
Falto desarrollar las interfaces para:
Hacer dinámico los horarios de recesos.
Determinar los turnos matutino y vespertino de manera grafica.
Asignar los horarios estáticos por grupo.
Exportar los horarios a Excel con el estándar de los horarios de
TIC
Se recomienda hacer pruebas con la selección de tipo jerárquica, ya que
este tipo de selección ocupa menos recursos al principio de las generaciones.
Y ocupa más recursos al finalizar las generaciones es decir cuando el rango de
errores es mínimo.
46
IX REFERENCIAS BIBLIOGRÁFICAS
1
X ANEXOS
Anexo A: Modelo relacional de la Base de datos (dbhorarios)
2
Anexo B. Ventana de Asignación del Tamaño de Población, muestra,
Porcentaje de Mutación y Porcentaje de Elitismo para la Generación de
Horarios.
Anexo C. Resultados Obtenidos después de Terminar las Generaciones
Definidas o Resultado Obtenidos de los horarios de TIC.
3
Anexo D. Interfaz grafica de registro de materias.
4
Anexo E. Registro de docentes.
5
Anexo F. Interfaz de asignaciones entre docentes y asignaturas.
6
Anexo G. Interfaz de asignaciones entre grupos y profesores.
7
Anexo H. Asignación de salones a una asignatura
8
Anexo I. Asignación de salones a una asignatura
9
10
Anexo J. Protocolo de estadía.
11
Anexo K. Calendarización del proyecto de estadía.