BORIS ANTONIO ARANDA BENITEZ

148
GENERACION DE HORARIOS MEDIANTE SISTEMAS BASADOS EN CONOCIMIENTO TESIS QUE PARA OBTENER EL GRADO DE MAESTRO EN CIENCIAS DE LA COMPUTACION PRESENTA: BORIS ANTONIO ARANDA BENITEZ DIRECTOR: DR. ALVARO DE ALBORNOZ BUENO CODIRECTOR: M. en C. JOSÉ RAFAEL CEN ZUBIETA México, D.F. Octubre del 2007 INSTITUTO POLITECNICO NACIONAL CENTRO DE INVESTIGACION EN COMPUTACION

Transcript of BORIS ANTONIO ARANDA BENITEZ

Page 1: BORIS ANTONIO ARANDA BENITEZ

GENERACION DE HORARIOS MEDIANTE SISTEMASBASADOS EN CONOCIMIENTO

TESIS

QUE PARA OBTENER EL GRADO DEMAESTRO EN CIENCIAS DE LA COMPUTACION

PRESENTA

BORIS ANTONIO ARANDA BENITEZ

DIRECTOR DR ALVARO DE ALBORNOZ BUENOCODIRECTOR M en C JOSEacute RAFAEL CEN ZUBIETA

Meacutexico DF Octubre del 2007

INSTITUTO POLITECNICO NACIONAL

CENTRO DE INVESTIGACION EN COMPUTACION

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

RESUMEN

En este estudio se aborda al problema NP-completo de la elaboracioacuten dehorarios en una escuela de nivel superior Se definen los elementos deun conjunto de Sistemas Expertos un moacutedulo de Programacioacuten Loacutegicade Restricciones y un moacutedulo de Algoritmos Geneacuteticos para solucionarel problemaComenzando con la determinacioacuten de grupos por abrir despueacutes laasignacioacuten de horario a los grupos posteriormente sigue la asignacioacuten deaula a los grupos y terminando con la propuesta de profesor para lasasignaturas se logra generar un conjunto de soluciones aceptables dehorarios sin problemas que satisfacen las restricciones naturales queimponen las entidades involucradas (catedraacuteticos aulas asignaturas y losgrupos) en el proceso

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

ABSTRACT

This research deals about the Timetabling NP-complete problem appliedat the Instituto Tecnologico de Zacatepec In this document theelements of three Experts System a constrains logic programmingmodule and a Genetics Algorithms module to solve the problem arepresented

Starting with a process to determine how many groups should be openthe next semester after this continue the timetabling assignation to thegroups the next process is the classroom assignation to the groups andthe final module propose a teacher for the groups all this make a setof acceptable solutions without timetabling problems where the naturalconstrains are satisfied

AGRADECIMIENTOS

Agradezco a Dios la oportunidad de vivir para ver terminado este trabajo

Agradezco a mi madre su constante iexcl Ahora una maestriacutea

Agradecimiento especial al Instituto Politeacutecnico Nacional al Centro deInvestigacioacuten en Computacioacuten y al Instituto Tecnoloacutegico de Zacatepecpor haber permitido y facilitado todo para que esta maestriacutea se impartiera

Al Dr Adolfo Guzmaacuten Arenas y al Dr Heacutector Medelliacuten Hernaacutendez porquefueron los autores intelectuales de traer el programa de maestriacutea alTecnoloacutegico de Zacatepec

Al Dr Alvaro de Albornoz Bueno porque sin el curso que impartioacute deInteligencia Artificial y Sistemas Expertos yo seguiriacutea creyendo que esimposible generar los horarios de manera automaacutetica gracias tambieacuten porsu apoyo incondicional y asesoriacutea por uacuteltimo le agradezco la lectura totalal documento final y la aplicacioacuten de las normas de la Real AcademiaEspantildeola al mismo

Al Dr Agustiacuten Gutieacuterrez Torneacutes por su apoyo y confianza en miacute

Debo dar las gracias a Olivia Saacutenchez Cadena por ese tremendo curso deprogramacioacuten visual y tambieacuten a Laura Villavicencio Goacutemez que con lafrase ldquosolo a los nintildeos se les tiene que decir que hacerrdquo me motivoacute acontinuar hasta terminar este trabajo

A mis compantildeeras y compantildeeros por los agradables momentos pasadosdurante el desarrollo de los cursos

A mis alumnos de Ingenieriacutea en Sistemas Computacionales porque con sutiacutepico sentido del humor juvenil me motivaron para cambiar deldquolicenciadordquo a ldquomcrdquo

Agradezco a la ANUIES con su programa Supera por el apoyo econoacutemicobrindado

Se agradece tambieacuten a COSNET por su apoyo dentro del proyecto deinvestigacioacuten 65504-P

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

IacuteNDICE

RESUMEN iABSTRAC iiIacuteNDICE iiiLISTA DE FIGURAS v

CAPIacuteTULO 1 INTRODUCCIOacuteN11 Antecedentes 112 Planteamiento del problema 213 Objetivo general 414 Objetivos especiacuteficos 515 Justificacioacuten 5151 Justificacioacuten teoacuterica 5152 Justificacioacuten metodoloacutegica 5153 Justificacioacuten praacutectica 616 Alcances y limitaciones 7

CAPIacuteTULO 2 MARCO TEOacuteRICO21 El estado del arte 9211 Antecedentes 9212 Algunos meacutetodos para resolver el Problema de la Generacioacuten de Horarios 92121 Algoritmos Geneacuteticos 122122 Programacioacuten Loacutegica de Restricciones 122123 Redes Neuronales 132124 Recocido Simulado 132125 Operadores Recombinatorios Especializados 132126 El Sistema Experto basado en reglas 14213 Observaciones realizadas a algunos paquetes generadores de horarios 1522 Los horarios 16221 El problema de la elaboracioacuten de horarios 1723 El proceso de la elaboracioacuten de horarios 22

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

CAPIacuteTULO 3 TEacuteCNICAS DE INTELIGENCIA ARTIFICIALUTILIZADAS PARA LA GENERACIOacuteN DE HORARIOS31 Sistemas Expertos 24311 Funcioacuten de un Sistema Experto 25312 Arquitectura de Sistemas Expertos 25313 La base de conocimiento 26314 Motor de inferencias 27315 iquestPor queacute utilizar un Sistema Experto 27316 Construccioacuten de prototipos 2832 Algoritmos geneacuteticos 29321 Antecedentes 29322 Definicioacuten de Algoritmo Geneacutetico 30323 Ventajas y desventajas 31324 iquestCoacutemo saber si es posible usar un Algoritmo Geneacutetico 31325 Paraacutemetros que deben ser especificados en el programa 3233 Programacioacuten Loacutegica de Restricciones(PLR) 34331 Antecedentes de la PLR 34332 Restricciones 35333 Sistemas con restricciones 37334 Referencia histoacuterica de las restricciones 37335 Satisfaccioacuten de las restricciones 38336 Resolucioacuten de restricciones 38337 Organizacioacuten de proyectos 38

CAPIacuteTULO 4 ANAacuteLISIS Y DISENtildeO41 Recopilacioacuten de la informacioacuten 4142 Anaacutelisis de la informacioacuten 4643 Solucioacuten definida 4844 Requerimientos del sistema 4945 Disentildeo del sistema 52451 Mapa conceptual del proyecto 52452 Mapas conceptuales de los moacutedulos 54453 Diagramas de contexto 62454 Diagramas entidad relacioacuten 674 55 Diccionario de la base de datos 73456 Lista de funciones o programas 85457 Diagrama de arquitectura (menuacutes) 87

CAPIacuteTULO 5 IMPLEMENTACIOacuteN51 Pantallas del sistema 89

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

CAPIacuteTULO 6 PRUEBAS Y RESULTADOS61 Pruebas del sistema 11462 Pruebas del sistema 115621 Prueba 1 Aacuterea de menuacutes 115622 Prueba 2 Validacioacuten de entradas 118623 Prueba 3 Desplegado de resultados 1206231 Moacutedulo generacioacuten de grupos por abrir 1206232 Moacutedulo generacioacuten de horarios 1216233 Moacutedulo asignacioacuten de aula 1226234 Moacutedulo seleccioacuten de catedraacuteticos 127

CAPIacuteTULO 7 CONCLUSIONES Y TRABAJOS FUTUROS71 Conclusiones 13172 Trabajos futuros 132

REFERENCIAS BIBLIOGRAacuteFICAS 133

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

LISTA DE FIGURAS

Figura Nombre Paacutegina

31 Arquitectura de un Sistema Experto 2632 Pseudocoacutedigo del Algoritmo Geneacutetico simple 3341 Mapa conceptual del proyecto 5242 Diagrama de secuencia 5443 Sistema Experto generador de grupos 5544 Diagrama del moacutedulo Programacioacuten Loacutegica de Restricciones 5745 Diagrama del moacutedulo Algoritmo Geneacutetico 5846 Diagrama de Sistema Experto para sugerir profesor a asignatura 6047 Diagrama de Sistema Experto para sugerir asignaturas para

catedraacutetico61

48 Diagrama de contexto del proyecto 6449 Diagrama de funciones fundamentales (entradas) 65410 Diagrama de funciones fundamentales (salidas) 66411 Diagrama entidad relacioacuten del moacutedulo administrativo 67412 Diagrama E-R del moacutedulo para determinar y ajustar nuacutemero de

grupos68

413 Diagrama E-R del moacutedulo para asignar aulas (Algoritmo Geneacutetico) 69414 Diagrama E-R del moacutedulo para asignar horario (PLR) 70415 Diagrama E-R del moacutedulo designa mejor catedraacutetico (Sistema

Experto)71

416 Diagrama E-R del moacutedulo selecciona mejor materia (SistemaExperto)

72

51 Portada inicial del proyecto 8852 Acerca del sistema 8953 Menuacute principal del proyecto 8954 Menuacute grupos por abrir 9055 Materias 9056 Consulta materias 9157 Pantalla servicios escolares 9158 Pantalla consulta servicios escolares 9259 Pantalla criterios por materia 92510 Pantalla consulta criterios por materia 93511 Pantalla carreras 93512 Pantalla criterios 94513 Pantalla consulta criterios 94514 Pantalla reglas 95515 Pantalla consulta reglas 95516 Pantalla ajustes 96

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

517 Pantalla consulta ajustes 96518 Pantalla criterios por regla 97519 Pantalla consulta criterios por regla 97520 Pantalla caacutelculo de ajustes 98521 Pantalla explicacioacuten de la inferencia 98522 Pantalla inicial del moacutedulo generacioacuten de horarios 99523 Pantalla principal del moacutedulo generacioacuten de horarios 99524 Pantalla principal del menuacute Algoritmos Geneacuteticos 100525 Pantalla de administracioacuten de grupos 100526 Pantalla de consulta de administracioacuten de grupos 101527 Pantalla del control de aulas 101528 Pantalla de consultas del control de aulas 102529 Pantalla para generacioacuten de poblacioacuten inicial 102530 Pantalla de evaluacioacuten de versiones 103531 Pantalla del proceso de seleccioacuten 103532 Pantalla del proceso de clonacioacuten 104

533 Pantalla de mutacioacuten 104534 Pantalla del proceso de cruzamiento 105535 Horarios finales 105536 Pantalla menuacute seleccioacuten de catedraacuteticos 106537 Pantalla de perfiles 106538 Pantalla de consulta perfiles 107539 Pantalla perfiles de las materias 107540 Pantalla consulta perfiles de las materias 108541 Pantalla captura datos de catedraacuteticos 108542 Pantalla consulta datos de catedraacuteticos 109543 Pantalla captura perfil de catedraacuteticos 109544 Pantalla consulta perfil de catedraacuteticos 110545 Pantalla muestra inferencia catedraacuteticos para materia 110546 Pantalla explicacioacuten del porqueacute un maestro puede dar una materia 111547 Pantalla materias que puede impartir un profesor 111548 Pantalla de explicacioacuten del porqueacute un profesor puede dar una

materia112

61 Portada inicial del proyecto 11562 Menuacute principal del proyecto 11663 Menuacute grupos por abrir 11664 Pantalla menuacute seleccioacuten de catedraacuteticos 11765 Pantalla principal del menuacute Algoritmos Geneacuteticos 11766 Pantalla de captura de datos de las Materias 11867 Pantalla de captura de datos de Criterios por Materia 11968 Pantalla de captura de datos de Carreras 11969 Pantalla caacutelculo de ajustes 120

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

610 Pantalla inicial del moacutedulo generacioacuten de horarios 121611 Pantalla principal del moacutedulo generacioacuten de horarios 122612 Pantalla del control de aulas 123613 Pantalla de consultas del control de aulas 123614 Pantalla de genera poblacioacuten inicial 124615 Pantalla de evaluacioacuten de versiones 124616 Pantalla del proceso de seleccioacuten 125617 Pantalla del proceso de clonacioacuten 125618 Pantalla de mutacioacuten 126619 Pantalla del proceso de cruzamiento 126620 Horarios finales 127621 Pantalla captura perfil de catedraacuteticos 128622 Pantalla muestra inferencia catedraacuteticos para materia 128623 Pantalla explicacioacuten porque un maestro puede dar una materia 129624 Pantalla materias que puede impartir un profesor 129625 Pantalla de explicacioacuten porque un profesor puede dar una materia 130

Capiacutetulo 1 Introduccioacuten

CAPIacuteTULO 1

INTRODUCCIOacuteN

11 Antecedentes

iquestQueacute es un horario

ldquoEl horario completo bien puede gobernar las vidas demiles de alumnos y cientos de profesores para los 200 diacuteasdel antildeo escolar semestre a semestre hora tras hora Comouna poderosa herramienta puede faacutecilmente crear o deshacersituaciones de ensentildeanza aprendizajerdquo [Johnson 1980]

En la educacioacuten superior la historia siempre es la misma la proporcioacuten de tiempodictada por el horario para los alumnos y profesores es generalmente muy baja Apesar de esto las dificultades en la creacioacuten de los horarios son grandes Existenvarios departamentos y carreras cada uno con sus propias ideas de coacutemo y cuaacutendo sedeben programar sus cursos El nuacutemero de estudiantes puede variar considerablementede antildeo en antildeo Similarmente las preferencias de los alumnos a favor o en contra delas materias pueden variar dramaacuteticamente de un semestre a otro Los estudiantespueden tomar cursos de un departamento o de varios de ellos aun maacutes puedenseleccionar materias de otras carreras La reciente desaparicioacuten de las restricciones decreacuteditos para cursar las asignaturas complica maacutes la situacioacuten porque ampliacutea el rangode materias que puede tomar un alumno Los horarios aparecen en varias formasmatutinos vespertinos mixtos y todo el diacutea Los horarios escolares indican cuando unmaestro y un alumno deben ir a cada clase Todas las escuelas tienen un horario decursos que dirige lo que cada estudiante y catedraacutetico debe hacer en determinadomomento Esta tesis versa especiacuteficamente sobre el problema de construir horariospara Institutos Tecnoloacutegicos en Meacutexico

La planeacioacuten de los horarios es un trabajo que se realiza semestralmente antes de iniciarel siguiente periodo escolar tomando en cuenta la demanda de grupos que se ofreceraacuteny asignando a estos grupos los alumnos el aula el catedraacutetico y el horariocorrespondiente mediante informacioacuten que se obtiene de varias maneras

El principal objetivo de este proyecto es dar una solucioacuten aproximada (aceptable) alproblema de la generacioacuten de horarios de una escuela de nivel superior que se resumeasiacute

Capiacutetulo 1 Introduccioacuten

ldquoDado un conjunto de departamentos y carreras asignaturas con prerrequisitos gruposcatedraacuteticos con especialidad y horario definidos aulas laboratorios y alumnos con suspreferencias de materias el problema es construir un condensado de horarios factibleque satisfaga todas las restricciones fuertes y minimice las restricciones medias ysuavesrdquo

Las restricciones fuertes son restricciones de espacio y tiempo tal como planear doscursos en un aula al mismo tiempo Las restricciones medias y suaves son laspreferencias de maestros y estudiantes que deberaacuten ser satisfechas si es posible[Elmohamed 1998]

El problema de la generacioacuten de horarios ha sido tratado por muchos investigadoresutilizando meacutetodos que van desde la investigacioacuten de operaciones hasta disciplinas de laInteligencia Artificial como son Algoritmos Geneacuteticos Recocido Simulado RedesNeuronales etc

12 Planteamiento del problema

La generacioacuten de horarios es una forma particular del problema de asignacioacuten derecursos En el caso maacutes general existe una serie de objetos (recursos) y una serie deprocesos que necesitan ser realizados por cada uno de esos objetos En un contextoeducacional cada estudiante debe asistir a un nuacutemero predeterminado de clases y elprofesor debe impartirlas durante la semana en un aula predeterminada el estudiante elprofesor y el aula pasan aquiacute a ser el objeto y las clases el proceso

La complejidad del problema de la generacioacuten de horarios

La generacioacuten de horarios es un problema de optimizacioacuten combinatorio multi-dimensional no Euclidiano con muacuteltiples restricciones y por lo tanto difiacutecil de resolver[Elmohamed 1998]

El problema de la generacioacuten de horarios esta agrupado dentro de los considerados decomplejidad NP-completos es decir que no pueden ser resueltos en tiempo polinomialusando un algoritmo determiniacutestico No se conoce un algoritmo determiniacutestico detiempo polinomial para resolver alguno de esos problemas y la mayoriacutea de la gente creeque dichos algoritmos no existen[Karp 1972]

La generacioacuten de horarios es la asignacioacuten de lapsos de tiempo a un conjunto de eventossujeto a las restricciones en esas asignaciones Seguacuten Elmohamed [Elmohamed 1998]el problema NP-completo de la elaboracioacuten de horarios es un problema para la

Capiacutetulo 1 Introduccioacuten

satisfaccioacuten de restricciones que puede ser definido de la siguiente maneraPara una escuela dada con

Np profesores con sus horarios y turnos Nq materias con su temario y objetivosNx aulas y laboratorios con su capacidad Ns estudiantes

es requerido programar Nt parejas de

alumno-materiahora-materiamaestro-materiaaula-materia

una vez definidas las parejas anteriores se deben programar elementos de la formamateria-maestro-hora -aula

En un liacutemite de Nt lapsos de tiempo para producir una programacioacuten factible En unaprogramacioacuten factible no se puede encontrar a un profesor grupo o estudiante en maacutesde un lugar al mismo tiempo y un aula no puede ser asignada con maacutes de una clase a lavez o maacutes estudiantes de su capacidad o un profesor programado fuera de su horarionormal o con maacutes horas frente a grupo de las reglamentarias ademaacutes de un conjuntoadicional de restricciones

Importancia del problema

La administracioacuten de los recursos comprende la apertura de los grupos para inscribir alos alumnos el proacuteximo semestre la asignacioacuten de carga acadeacutemica a los catedraacuteticos lautilizacioacuten de aulas y laboratorios de quiacutemica produccioacuten coacutemputo electromecaacutenicaaulas de dibujo y demaacutes instalaciones del Instituto Tecnoloacutegico de Zacatepec (ITZ)Cuando por errores imputables al creador de los horarios se hizo una mala planeacioacuten sederivan los siguientes problemasbull Alumnos que se inscriben con una carga de creacuteditos menor a la miacutenima por falta de

grupos suficientesbull Alumnos que deben estar en el ITZ desde las 700 hrs hasta las 2000 hrs varios

diacuteas a la semana por abrir grupos en horarios muy separadosbull Alumnos que pierden la secuencia de materias seriadas por falta de cupobull Alumnos que deben permanecer 1 oacute 2 semestres maacutes en el ITZ por no prever

suficientes grupos para semestres terminalesbull Catedraacuteticos que no imparten el miacutenimo reglamentario de horas frente a grupo por

no crearles grupos suficientesbull Catedraacuteticos a los que se les avisa 1 diacutea antes del inicio de clases que impartiraacuten una

Capiacutetulo 1 Introduccioacuten

asignatura nuevabull Asignaturas que son impartidas por profesores que no cumplen el perfil deseado en

esa asignaturabull Choque de grupos en las aulasbull Choque de grupos en laboratoriosbull Falta de laboratorio a algunos gruposbull Deficiente utilizacioacuten de las aulas

La creacioacuten de un sistema que evite de manera automaacutetica caer en errores como losmencionados NO ES TAREA TRIVIAL intentar resolver este problema involucra laelaboracioacuten de un ldquosistema inteligenterdquo capaz de tomar decisiones aprender inferirbasaacutendose en hechos generar nueva informacioacuten y a partir de ella nuevamente volver adecidir El sistema que se elabore debe tener la capacidad para deducir e inducir de unamanera combinada

Desventajas del sistema actual

La mayoriacutea de los problemas anteriores son ocasionados por alguno o varios de lossiguientes motivosbull Todo el proceso de caacutelculo y administracioacuten de los recursos es manualbull El proceso de elaboracioacuten coincide con el cierre de semestre actual y como las

personas responsables tambieacuten son catedraacuteticos deben combinar la generacioacuten dehorarios con las evaluaciones finales revisioacuten de proyectos y entrega decalificaciones de sus grupos a los alumnos

bull La elaboracioacuten de los horarios es un proceso que se lleva semanas de labor diariabull Requiere la atencioacuten total de los coordinadores durante todo el tiempo de

elaboracioacutenbull Al no tener la informacioacuten automatizada se tienen peacuterdidas de tiempo en la toma de

decisiones como por ejemplo en el preacutestamo de aulas no utilizadas o en la forma decompartir catedraacuteticos

bull Se tienen fuertes restricciones debido a los horarios de los catedraacuteticosbull Hay fuertes dificultades cuando se deben negociar cambios de horarios porque el

proceso implica mover asignaturas buscar aulas dejar paquetes de materias porsemestre etc

bull El estado de aacutenimo del coordinador influye en la elaboracioacuten de los horarios

13 Objetivo general

Generacioacuten de una solucioacuten aproximada del condensado de horarios para una escuela denivel superior que satisfaga las restricciones ocasionadas por los recursos involucradosmediante la elaboracioacuten de un sistema hiacutebrido (experto geneacutetico y loacutegico restrictivo)

Capiacutetulo 1 Introduccioacuten

14 Objetivos especiacuteficos

Se tiene el disentildeo e implementacioacuten de un sistema que

bull Proporciona una solucioacuten aproximada aceptable al problema de la generacioacuten dehorarios

bull Permite a los coordinadores delegar a la computadora la asignacioacuten de recursosbull Ahorra tiempo en la generacioacuten de los horariosbull Reduce el trabajo manualbull Agiliza la toma de decisionesbull Reduce el tiempo de elaboracioacuten de horariosbull Facilita la modificacioacuten de informacioacuten generadabull Aumenta la eficiencia en las negociaciones entre jefes y coordinadoresbull Lleva al Instituto Tecnoloacutegico de Zacatepec (ITZ) a la modernizacioacuten en este

proceso

15 Justificacioacuten del sistema

151 Justificacioacuten teoacuterica

La utilizacioacuten de la Inteligencia Artificial (IA) para la solucioacuten de problemas de la vidacotidiana ha sido una estrategia utilizada cuando los sistemas tradicionales decomputacioacuten no proveen mecanismos suficientes para garantizar una solucioacuten adecuadasu utilizacioacuten para la generacioacuten de horarios (creacioacuten de grupos asignacioacuten de horaasignacioacuten de aula determinacioacuten de catedraacutetico) presenta una alternativa ideal paracomprobarlo

152 Justificacioacuten metodoloacutegica

La utilizacioacuten de un grupo de Sistemas Expertos que realice la asignacioacuten de losrecursos para la generacioacuten de grupos y le proponga una materia determinada a unprofesor seguacuten el perfil acadeacutemico de ambos reuacutene las caracteriacutesticas necesarias paradar la solucioacuten elegante y efectiva al problema planteado anteriormente porque

bull Se requiere del conocimiento de un experto para plantear el funcionamiento delsistema

bull El conocimiento se alimentaraacute a una base de conocimientos que conste de variaspartes

bull Para la generacioacuten de grupos de una asignatura dada el sistema debe ldquorazonarrdquo paradeterminar cuantos de eacutestos se deben abrir para ofertarlos a los alumnos

Capiacutetulo 1 Introduccioacuten

bull En la asignacioacuten de nuevas materias a los catedraacuteticos el sistema debe ldquodeterminarrdquoquieacuten es el maacutes idoacuteneo para impartirla de acuerdo al perfil de ambos materia ymaestro

La Programacioacuten Loacutegica de Restricciones (PLR) es una de las teacutecnicas que maneja demanera natural informacioacuten sometida a ciertas restricciones y fue seleccionada paraseguir trabajando en la resolucioacuten del problema porque

bull Los horarios deben satisfacer ciertas restricciones como por ejemplo no se debengenerar mas grupos de los necesarios no puede haber dos materias con el mismogrupo no deben existir grupos del mismo paquete a la misma hora etc

bull Cada paquete de un semestre es un objeto que por siacute mismo posee ciertascualidades y restricciones por ejemplo no debe tener horas sin asignatura entre lahora inicial y final existen materias que se deben impartir de una hora diaria otrasdeben ser impartidas de 2 horas diarias etc

bull La solucioacuten presentada por la PLR inicia con datos aleatorios de un horario despueacutesse verifica si las restricciones se cumplen o no si se cumplen se guarda el dato si nose genera un nuevo dato aleatorio

Los Algoritmos Geneacuteticos utilizados aquiacute para asignar aula a los grupos cumplen con lametodologiacutea de la Computacioacuten Evolutiva porque

bull Se tienen datos iniciales de los grupos (materia-hora)bull Se genera una poblacioacuten inicial que son n versiones de un condensado de horarios

sin aulabull Esta poblacioacuten inicial es evaluada se seleccionan los condensados maacutes adecuados y

se eliminan las versiones menos adecuadasbull Se realizan cruzamientos mutaciones clonaciones y se crea la nueva generacioacuten de

horariosbull Se repite el proceso hasta llegar a una utilizacioacuten eficiente de las aulas

Por lo anterior se pueden observar las ventajas de utilizar un sistema inteligente sobreuno convencional para solucionar el problema planteado

Una vez definido el modelo para solucionar el problema de la asignacioacuten de horariospara las asignaturas aulas y catedraacuteticos de una institucioacuten de educacioacuten superior seraacutefaacutecil extrapolarlo para solucionar algunos problemas referentes a la planeacioacuten dehorarios de otro tipo de escuelas de nivel medio superior

153 Justificacioacuten praacutectica

La creacioacuten de un sistema que resuelva el problema de la elaboracioacuten de horarios ygenere automaacuteticamente la programacioacuten de grupos aulas y maestros sin violar las

Capiacutetulo 1 Introduccioacuten

restricciones fuertes minimizando las restricciones medias y suaves optimizando lautilizacioacuten de las aulas cumpliendo con las restricciones de los profesores asignandoprofesores adecuados para impartir las clases traeraacute como consecuencia condicionespara mejorar el proceso de ensentildeanza aprendizaje

16 Alcances y limitaciones

Alcances

El sistema generaraacute un espacio de soluciones finito que satisfaga las restriccionesfuertes medias y suaves optimizando el uso de los recursos disponibles se puede decirque el sistema optimizaraacute los recursos cuando los horarios generados tengan lascaracteriacutesticas mencionadas maacutes adelante

Esta tesis documenta la creacioacuten de un sistema basado en el conocimiento parasolucionar el problema de la generacioacuten de horarios en el Instituto Tecnoloacutegico deZacatepec que permite

bull Generar grupos suficientes para que todos los estudiantes se inscriban al menos conla carga miacutenima reglamentaria

bull Que los alumnos tengan horarios adecuados a sus necesidades y preferenciasbull Que todos los grupos tengan capacidad suficiente para todos los estudiantes que

deseen inscribirsebull Que los profesores impartan materias de acuerdo a su perfil profesionalbull Evitar los choques de grupos en aulas y laboratoriosbull Que todos los grupos tengan aula asignada desde el inicio del semestrebull La utilizacioacuten oacuteptima de las aulas y laboratoriosbull La correcta asignacioacuten de aulas y laboratorios a los cursosbull Realizar de manera automaacutetica la asignacioacuten de los recursosbull Determinar el nuacutemero de grupos que se deben abrirbull Llenar las aulas con grupos sin permitir choque de horariosbull Imprimir la lista de grupos ofertados para el semestre siguientebull Cuando exista el grupo de una materia sin maestro determinar cual es el mejor para

impartirla

Tener un Sistema terminado que contenga los siguientes moacutedulos

Sistema administrativo para control de horarios Sistema Experto para determinar la cantidad de grupos por abrir Sistema Experto para sugerir materias a un catedraacutetico Sistema Experto para seleccionar los mejores catedraacuteticos para impartir una

asignatura

Capiacutetulo 1 Introduccioacuten

Moacutedulo de Programacioacuten Loacutegica de Restricciones para generar los horarios a lospaquetes de materias por semestre

Moacutedulo de Algoritmo Geneacutetico para asignar aula a los grupos

Cada moacutedulo tendraacute

bull Interfaces de usuario amigablesbull Tiempos de ejecucioacuten raacutepidos (independientemente de la maacutequina objetivo)bull Reglas de inferencia para generar resultados (soacutelo los Sistemas Expertos)bull Buacutesquedas heuriacutesticas o aleatorias seguacuten el casobull Procesos para realizar induccioacuten y deduccioacuten (soacutelo los Sistemas Expertos)bull Manejo de incertidumbre (soacutelo los Sistemas Expertos)bull Un moacutedulo de explicaciones en lenguaje natural

Limitaciones

El sistema estaacute disentildeado para generar horarios de una escuela de nivel superior donde elcoordinador de cada carrera es el responsable de la generacioacuten de sus horarios controlarsus profesores impartir cierto nuacutemero de materias y utilizar cierta cantidad de aulas ylaboratorios

Trabaja exclusivamente en lenguaje espantildeol

Las reglas de la base de conocimiento tienen un formato predeterminado por unasintaxis definida para el sistema

El sistema estaacute elaborado para trabajar en microcomputadoras compatibles con IBM

No maneja los horarios individuales de los alumnos en el proceso de inscripcioacuten estaactividad deberaacute ser realizada por los sistemas del departamento de servicios escolares

Capiacutetulo 2 Marco teoacuterico

CAPIacuteTULO 2

MARCO TEOacuteRICO

21 El estado del arte

211 Antecedentes

El problema de la generacioacuten de horarios ha sido atacado de varias maneras a nivelmundial inclusive existe un grupo internacional que convoca al congreso llamadoPATATxx (Practice and Theory of Automated Timetabling) donde xx es el antildeo delcongreso en cuestioacuten

La ASAP (Automated scheduling optimization and planing group) es otro organismocuyo fin principal es conducir investigacioacuten en modelos heuriacutesticas y algoritmos para laproduccioacuten automaacutetica de soluciones de alta calidad a una gran variedad de problemasde planeacioacuten y optimizacioacuten del mundo real incluyendo elaboracioacuten de horarioslogiacutestica asignacioacuten de espacio y mantenimiento de inventarios

212 Algunos meacutetodos para resolver el Problema de laGeneracioacuten de Horarios

La generacioacuten de horarios acadeacutemicos ha sido acometida por muchos investigadoresbaacutesicamente dentro del aacuterea de la Investigacioacuten de Operaciones

2121 Investigacioacuten de Operaciones

El algoritmo para resolver problemas de asignacioacuten se denomina Huacutengaro ya que fuerondos matemaacuteticos Huacutengaros Koumlnig (1916) y Egervary (1931) los que aportaron lasteoriacuteas que sirven de base a este meacutetodo [Daellenbach 1987]

Este problema se presenta en diversos casos de toma de decisiones Los problemastiacutepicos de asignacioacuten implican asignar tareas a maacutequinas trabajadores a tareas yproyectos personal de ventas a territorios de ventas contratos a licitaciones horarios deaulas disponibles a horarios de maestros disponibles enfermos a camas disponibles delhospital cierto nuacutemero de empleados a cierta cantidad de puestos en una empresaaviones a destinos aeacutereos entre otros

Capiacutetulo 2 Marco teoacuterico

Una caracteriacutestica importante de los problemas de asignacioacuten es que se asigna untrabajador una tarea a una sola maacutequina proyectoEn particular se busca elconjunto de asignaciones que optimice el objetivo planteado tal como minimizar costosminimizar tiempo o maximizar utilidad

La formulacioacuten del problema general de asignacioacuten es

Sujeta a

Corresponde a un caso especial del problema del transporte en el cual las variables Xijsoacutelo pueden tomar el valor 0 oacute 1 tomar el valor 1 si el origen i se hace corresponder aldestino j y 0 en caso contrario

El Algoritmo Huacutengaro

Este algoritmo se usa para resolver problemas de minimizacioacuten ya que es maacutes eficazque el empleado para resolver el problema del transporte por el alto grado dedegeneracioacuten que pueden presentar los problemas de asignacioacuten Las fases para laaplicacioacuten del meacutetodo Huacutengaro son

Capiacutetulo 2 Marco teoacuterico

Paso 1 Encontrar primero el elemento maacutes pequentildeo en cada fila de la matriz de costosmm se debe construir una nueva matriz al restar de cada costo el costo miacutenimo de cadafila encontrar para esta nueva matriz el costo miacutenimo en cada columna A continuacioacutense debe construir una nueva matriz (denominada matriz de costos reducidos) al restar decada costo el costo miacutenimo de su columna

Paso 2 (En algunos pocos textos este paso se atribuye a Flood) Consiste en trazar elnuacutemero miacutenimo de liacuteneas (horizontales o verticales o ambas uacutenicamente de esasmaneras) que se requieren para cubrir todos los ceros en la matriz de costos reducidos sise necesitan m liacuteneas para cubrir todos los ceros se tiene una solucioacuten oacuteptima entre losceros cubiertos de la matriz Si se requieren menos de m liacuteneas para cubrir todos losceros se debe continuar con el paso 3 El nuacutemero de liacuteneas para cubrir los ceros es iguala la cantidad de asignaciones que hasta ese momento se pueden realizar

Paso 3 Encontrar el menor elemento diferente de cero (llamado k) en la matriz decostos reducidos que no estaacute cubierto por las liacuteneas dibujadas en el paso 2 acontinuacioacuten se debe restar k de cada elemento no cubierto de la matriz de costosreducidos y sumar k a cada elemento de la matriz de costos reducidos cubierto por dosliacuteneas (intersecciones) Por uacuteltimo se debe regresar al paso 2

Notas

1 Para resolver un problema de asignacioacuten en el cual la meta es maximizar la funcioacutenobjetivo se debe multiplicar la matriz de ganancias por menos uno (-1) y resolver elproblema como uno de minimizacioacuten

2 Si el nuacutemero de filas y de columnas en la matriz de costos son diferentes el problemade asignacioacuten estaacute desbalanceado El meacutetodo Huacutengaro puede proporcionar una solucioacutenincorrecta si el problema no estaacute balanceado debido a lo anterior se debe balancearprimero cualquier problema de asignacioacuten (antildeadiendo filas o columnas ficticias) antes deresolverlo mediante el meacutetodo Huacutengaro

3 En un problema grande puede resultar difiacutecil obtener el miacutenimo nuacutemero de filasnecesarias para cubrir todos los ceros en la matriz de costos actual Se puede demostrarque si se necesitan j liacuteneas para cubrir todos los ceros entonces se pueden asignarsolamente j trabajos a un costo cero en la matriz actual esto explica porqueacute terminacuando se necesitan m liacuteneas

Capiacutetulo 2 Marco teoacuterico

Tambieacuten han aparecido meacutetodos no convencionales que atacan el problema desdediferentes aacutengulos Los maacutes usuales son

Algoritmos Geneacuteticos Redes Neuronales Recocido Simulado Buacutesquedas Tabuacute Sistemas Expertos Programacioacuten Loacutegica de Restricciones Grafos Coloreados Operadores Recombinatorios Especializados

2122 Algoritmos Geneacuteticos

Los Algoritmos Geneacuteticos han sido utilizados satisfactoriamente para planear exaacutemenesy cursos en cierto nuacutemero de casos [Corne 1993] utiliza una buena aproximacioacutentradicional donde cada gene representa la hora en la cual se presentaraacute un examen ocurso Con operadores de cruzamiento y mutacioacuten como los mencionadosanteriormente agrega sustanciosos ahorros de tiempo al meacutetodo de Corne [Paechter1994] da una aproximacioacuten diferente donde el gene de cada examen no solo especificaldquoel cuandordquo sino que tambieacuten busca un nuevo horario del examen si despueacutes delcruzamiento el curso esta causando un conflicto Si el examen no puede ser programadoen alguna hora entonces no se agrega a la planeacioacuten con la finalidad de no tenerhorarios infactibles

[Burke1994] incorpora dominios de conocimiento especiacutefico para asegurar que ningunade las soluciones candidato es no factible En particular una representacioacuten directa seutilizada que incluye no soacutelo el cuaacutendo sino tambieacuten el doacutende un curso o examendeberaacuten ser tomados permitiendo al programador de horarios detener la ejecucioacuten delalgoritmo en cualquier punto y tener ya una serie de soluciones de buenos horariosfactibles

2123 Programacioacuten Loacutegica de Restricciones

Varios autores han presentado teacutecnicas de Programacioacuten Loacutegica de Restricciones pararesolver problemas de asignacioacuten de horarios pero eacuteste sigue siendo un nuevo enfoqueTambieacuten han aparecido algunos usando PLR para la planeacioacuten de clase-maestro[Yoshikawa 1994]

Kang y White presentaron una buena aproximacioacuten estaacutendar de PLR programandocursos sin permitir ningun conflicto [Kang y White 1994] Ellos usaron una teacutecnica dereversa equivalente al backtracking con lo cual cuando un curso no puede ser

Capiacutetulo 2 Marco teoacuterico

asignado uno similar es desasignado y el nuevo es colocado en su lugar Esto previeneuna buacutesqueda exhaustiva completa Esto tambieacuten introduce el concepto de undelimitador de tamantildeo que establece un maacuteximo en el tamantildeo del aula que puede usarun curso en particular Las restricciones son priorizadas en cinco diferentes categoriacuteasdonde la categoriacutea cinco debe ser liberada antes que la categoriacutea cuatro y asiacute con lasdemaacutes Este procedimiento fue utilizado para programar exitosamente los cursos de laUniversidad de Otawa

Tambieacuten se ha utilizado la teacutecnica de la Programacioacuten Loacutegica de Restricciones parahacer los horarios de una facultad utilizando una regla heuriacutestica para seleccionar quecurso asignar primero [Fahrion y Dollanski 1992]

2124 Redes Neuronales

De las distintas categoriacuteas de las Redes Neuronales Artificiales la maacutes apropiada pararesolver el problema es la familia de las Redes Neuronales de reaccioacuten basadas enneuronas multiestado con ecuaciones de teoriacutea de campos con significado controlandolas dinaacutemicas Las ecuaciones anteriores son usadas en lugar de los procedimientospara actualizacioacuten de demanda estocaacutesticos que han sido usados por otros esquemas paraevitar quedar atorados en circuitos locales miacutenimos [Carrasco 2004]

2125 Recocido Simulado

Recocido Simulado se refiere al uso de una teacutecnica de optimizacioacuten combinatoria odiscreta Divide el problema en grupos del mismo tiempo de clase los cuales sonespecificados por cada departamento acadeacutemico basados en la habilidad de losinstructores Funciona asiacute

1 El proceso asigna aulas procesando un grupo a la vez empezando con el primero2 El proceso continuacutea hasta que todos los grupos son procesados3 Cuando una solucioacuten es obtenida dividiendo el problema en conjuntos de horario

una mutacioacuten especial es generada con grupos traslapados Esto podriacutea generar unamala asignacioacuten de aula para minimizar esto se utiliza el siguiente paso

4 Los grupos son procesados basados en el nuacutemero de aulas este nuacutemero de aulas esoptimizado y se termina con las horas de clase con el miacutenimo de paquetes a esa hora

5 La implementacioacuten del programa genera una base de datos con la nueva asignacioacutende salones para el proacuteximo semestre [Abramson 1991]

2126 Operadores Recombinatorios Especializados

Los operadores de cruzamiento de los Algoritmos Geneacuteticos producen buenas

Capiacutetulo 2 Marco teoacuterico

combinaciones de genes para ser pasados entre los diferentes miembros de unapoblacioacuten En los Algoritmos Geneacuteticos estaacutendar es un procedimiento similar a escogerlos primeros n genes del primer padre y los uacuteltimos del segundo padre esteprocedimiento no es uacutetil en situaciones donde existen fuertes restricciones sobre laforma de los miembros de la poblacioacuten aquiacute un operador violaraacute esos requerimientosEl operador de recombinacioacuten heuriacutestico hiacutebrido trabaja asiacute

1 Los grupos no programados del periodo anterior son pasados al algoritmo2 Primero selecciona aquellos grupos programados en el periodo i en los padres 1 y 23 Los grupos extra son seleccionados de aquellos programados en el periodo i ya sea

del padre 1 o del padre 2 o de los dejados del periodo i ndash 14 Cualquiera de los grupos no programados es pasado al periodo i+15 Soacutelo los grupos que no crean conflicto con aquellos ya programados para este

periodo pueden ser seleccionados [Wilke 2002]

2127 El Sistema Experto Basado en Reglas

Los Sistemas Basados en Reglas proporcionan un buen punto de referencia para saberque tan buenos son otros meacutetodos en comparacioacuten a esta teacutecnica estaacutendar Varias deestas reglas son usadas para proporcionar sensibles elecciones para los movimientos enel algoritmo de Recocido Simulado en lugar de seleccionar cambios de manera aleatoriase ha usado este sistema como un preprocesador para generar una buena aproximacioacuteninicial y darla al Recocido Simulado

El Sistema Experto Basado en Reglas consiste en un nuacutemero de reglas (o heuriacutesticas) yrecursioacuten convencional para ayudar en la generacioacuten de asignacioacuten de clases Lasestructuras de datos o componentes del sistema son

bull Una matriz de distancias entre los departamentos acadeacutemicos y los edificios queseraacuten utilizados

bull Estructura de los datos de las materias para cada grupo programado en el campobull Estructura para las aulas (independientemente del tipo de aula) involucradas en el

procesobull Horarios para cada periodo de tiempo guardando cuales estaacuten disponibles y

cuales ya fueron ocupadasbull La estructura de los departamentosbull Las preferencias de los estudiantes indicando las clases requeridas

independientemente del semestre que sean las materias [Gervaacutes 1999]

Capiacutetulo 2 Marco teoacuterico

213 Observaciones realizadas a algunos paquetes generadores de horarios

Nombre DeMIStDescripcioacuten Puede describirse como un paquete que realiza bien las operaciones decasa (la propia universidad que lo creoacute) pero salioacute tan costoso como si hubierancomprado un paquete [Demist 2000]Proveedor DeMISt University

KnowTISEs un proyecto iniciado por la universidad de Leeds En la literatura aparece como unpaquete que es mejor para la generacioacuten de Grandes Horarios para una universidad quepara un departamento Utiliza el beneficio de gran cantidad de informacioacutencentralizada para la optimizacioacuten de recursos [Schedul 2000]Leeds University

STARSSTARS(Space Time and Resources Management) Igual que el anterior corre mejor enla elaboracioacuten de horarios de buen tamantildeo que en una aplicacioacuten departamentalDe Montfort University

Meeting maker Office TalkEs un generador de clases y acciones diarias es bueno cuando no es uacutetil el horario delos alumnos ya que proporciona uacutenicamente los espacios para las clases [Gervaacutes 1999]Varios proveedores

GP-UNTISEs un paquete australiano que funciona perfectamente para los requerimientos de lasescuelas secundariasTimetabling Services UK

Syllabus PlusEs una buena opcioacuten para uso departamental cumple los requerimientos de unauniversidad para la generacioacuten de horarios no trabaja a nivel de estudiantes pero si lohace con grupos de ellos no es factible para la generacioacuten de Grandes HorariosScientia LTD

Facility TimetablerEs una buena opcioacuten para uso departamental y para Grandes Horarios tiene interfaz conlos sistemas de alumnos y permite la creacioacuten de horarios individuales permite el uso

Capiacutetulo 2 Marco teoacuterico

centralizado de las aulas para una buena optimizacioacutenFacility Systems

Mimosa for WindowsEs un software general de planificacioacuten de la ensentildeanza y de programacioacuten de horariosLa aplicacioacuten utiliza todas las propiedades de Windows eficientemente es raacutepida tienegran capacidad y lo mas importante es tan flexible que puede aplicarse en todo el tipode escuelas desde la escuela primaria a las universidades desde las escuelasvocacionales a las academias militares

Se podriacutea decir que este producto cubririacutea todas las necesidades de la institucioacuten perohan existido algunos inconvenientes ya que no cubre con las necesidades deldepartamento tan solo da ayuda al usuario para que pueda generar sus horarios ademaacutesel tener tantos botones en pantalla (200) podriacutean confundir al usuario y realizar horarioserroacuteneos y no se resolveriacutea el problema [Nielsoft 2000]Mimosa Software Oy Finlandia

GestHor BSPEs un producto informaacutetico para resolver problemas de horarios escolares en escuelasbaacutesicas escuelas secundarias y escuelas profesionales

Toacutemese en cuenta que la mayoriacutea de los sistemas mencionados se enfoca solo a laasignacioacuten aula ndash materia y no abarca lo que es asignacioacuten materia ndash profesor

22 Los horarios

Existe mucha literatura referente a los horarios con una gran variedad de subtiacutetulos ydiferentes problemas Una gran variedad de algoritmos han sido propuestos empleandometodologiacuteas y heuriacutesticas de buacutesqueda produciendo horarios completos o soacuteloayudando durante el proceso Una de las grandes preguntas para la elaboracioacuten dehorarios es que si eacutestos pueden ser generales es decir iquestse puede encontrar un algoritmoo meacutetodo suficientemente general que produzca buenos horarios para todos losproblemas y para todas las restricciones La alternativa desde luego es continuardesarrollando algoritmos especializados aislados cada vez que un problema de horariosaparece

Al trabajar con una solucioacuten para el problema de los horarios se deben contestar lassiguientes preguntas iquestTodas las escuelas de nivel superior elaboran los horarios de lamisma manera iquestSon grandes o pequentildeas las diferencias en la forma de elaborar loshorarios iquestQueacute tan necesaria es la ayuda de la computadora iquestSoacutelo se requiere unpaquete general para la elaboracioacuten de los horarios iquestQueacute funcionalidad debe tener

Capiacutetulo 2 Marco teoacuterico

dicho paquete iquestQueacute tan grande y complejo es el problema de elaboracioacuten de horariosiquestQueacute propiedades debe poseer un horario aceptable para que una institucioacuten lo use

Se han realizado algunas encuestas para conocer si las escuelas de nivel superior tienensistemas computarizados para la elaboracioacuten de horarios si no los tienen si lonecesitaban y queacute caracteriacutesticas deberiacutea poseer El estudio concluyoacute que existe una grandemanda para tal sistema que se requiere un alto grado de asistencia automatizada yque la mayoriacutea de los elaboradores de horarios no estaban muy contentos con sussistemas actuales [Comm y Mathaisel 1988]

[Dowsland y Lim 1982] consideraron el problema de la elaboracioacuten de horarios peroproporcionaron alternativas en la encuesta de la utilidad de sistemas automatizados[Junginger 1986] establece que ldquoAunque los horarios producidos requierenmodificacioacuten las escuelas estaacuten contentas con los resultados El tiempo ahorrado fueconsiderable arriba del 75rdquo Dowsland por otro lado concluye que ldquoEs muy difiacuteciljuzgar el eacutexito actual de los paquetes para la elaboracioacuten de horarios pero el uso muylimitado de ellos sugiere que sus ventajas son limitadasrdquo Claramente ninguacuten disentildeadorde sistemas puede garantizar la idea de que su producto seraacute bienvenido con los brazosabiertos

[Pendlebury 1986] encuestoacute a las universidades politeacutecnicas britaacutenicas con respecto ala elaboracioacuten de horarios de cursos Doce de las treinta que contestaron la encuestautilizan elaboracioacuten de horarios por computadora (siete a gran escala y cuatro lo hacenen pequentildea escala) Es interesante notar que Pendlebury encontroacute que la mayoriacutea de loscursos se basan en clases que son muy independientes unas de otras y en la mayoriacutea delas instituciones encuestadas los departamentos individuales son responsables deproducir sus propios horarios

221 El problema de la elaboracioacuten de horarios

La elaboracioacuten de horarios es el acto de programar cursos a periacuteodos de tiempo asignarun aula a esos cursos y asignar un catedraacutetico a dicho curso

A menudo se hacen afirmaciones acerca de la naturaleza del problema que puedenpermitir encontrar una solucioacuten maacutes eficientemente Sin embargo cuando se trata deconstruir un sistema general se estaacute limitado a que las afirmaciones son el miacutenimocomuacuten denominador de todos los posibles escenarios

Una informacioacuten impliacutecita que ha sido hecha a menudo es la independencia entreunidades acadeacutemicas separadas Algunas universidades programan preguntando a susdepartamentos los horarios de sus propios cursos Una unioacuten central de dichos horarioses entonces utilizada para asegurar que todas las restricciones relevantes son cumplidasEn muchos casos esta es la forma normal en que es producido el horario de los cursos

Capiacutetulo 2 Marco teoacuterico

aunque algunos departamentos desarrollan su propio software para la programacioacuten decursos

En varias universidades los alumnos pueden tomar algunos de sus cursos endepartamentos diferentes al suyo Obviamente la independencia no debe ser asumidageneralmente debido a que puede haber diferencia en la programacioacuten de los cursos decada departamento En el Tecnoloacutegico de Zacatepec por ejemplo la probabilidadpromedio de que un curso tenga conflicto con uno de otro departamento es 1650mientras que la probabilidad de que dos cursos del mismo departamento tengan conflictoes 2250 notaacutendose una gran diferencia en el resultado

Dificultades encontradas por los responsables de la generacioacuten de horarios

Algunas dificultades experimentadas por los departamentos y facultades sonmencionadas aquiacute

bull Los programas acadeacutemicos se hacen cada vez maacutes flexibles (los estudiantesseleccionan queacute asignaturas tomar cuaacutendo doacutende y con quieacuten)

bull Algunos departamentos tienen asignaturas para ofrecer pero no tienen muchosalumnos

bull Los espacios para ofrecer las materias son cada vez menos y el problema se agravacuando los alumnos no quieren asistir en las tardes o los saacutebados

bull El staff de profesores no siempre estaacute disponible para impartir clases por muacuteltiplesrazones

bull Los alumnos pueden solicitar los grupos del proacuteximo semestre desde antes de queinicie pero al llegar el momento de inscribirse no lo hacen

bull Los departamentos estaacuten ansiosos por ofrecer una gran variedad de grupos teniendolos recursos pero esto puede ocasionar problemas

bull Existe una gran variedad de reglas al momento de asignar las aulas (pertenencia alas carreras prioridades de profesores etc)

bull Como no hay un costo asociado a la utilizacioacuten de un aula y no hay sanciones porreservarla y no utilizarla los departamentos acadeacutemicos no tienen un buen motivopara hacer una correcta utilizacioacuten del espacio

bull La falta de recursos ocasiona el mayor de los problemas porque obliga a laoptimizacioacuten en la planeacioacuten

Cursos y estudiantes

El problema de la elaboracioacuten de horarios estaacute relacionado esencialmente con el nuacutemerode eventos que requieren ser programados en este caso los cursos para los estudiantesClaramente el tamantildeo del problema variacutea entre los diferentes centros de estudio desdepequentildeos problemas con alrededor de 50 a 100 cursos hasta los 500 o 1000 cursos que

Capiacutetulo 2 Marco teoacuterico

programar Esta variacioacuten en el tamantildeo afectaraacute el tiempo requerido para resolver elproblema Un problema pequentildeo puede ser resuelto casi de manera oacuteptima mientrasque en uno grande se deben usar buacutesquedas heuriacutesticas u otras formas de acotar elespacio de buacutesqueda de una solucioacuten en un periodo de tiempo razonable

Se debe esperar que el nuacutemero de cursos y el nuacutemero de alumnos esteacuten correlacionadosEl nuacutemero de cursos ofrecidos y desde luego programados debe ser calculado porextrapolacioacuten del promedio de 5 o 6 cursos por alumno y con cupo promedio de 30alumnos por curso obviamente algunos alumnos se inscribiraacuten en 7 u 8 cursos porsemestre mientras que los cursos tendraacuten inscritos entre 20 y 40 alumnos Losalumnos dependiendo del semestre en que se encuentran inscritos deben matricularse aciertos cursos especiacuteficos para ese semestre dichos cursos deben programarse de maneraque los alumnos tengan la menor cantidad de tiempo entre el primer y el uacuteltimo cursodel diacutea permitieacutendoles con esto realizar actividades complementarias

En el Tecnoloacutegico de Zacatepec para una carrera con 900 alumnos se requieren ofertaraproximadamente entre 140 y 160 cursos ademaacutes los estudiantes pueden matricularse encursos ofrecidos por otros departamentos (esto ampliacutea el rango de posibilidades para losalumnos)

Los cursos y los departamentos

El promedio de los cursos ofrecidos por cada departamento variacutea considerablementeentre las diferentes escuelas de nivel superior La razoacuten de esta variabilidad puede servista como un indicador de la naturaleza de la complejidad de la planeacioacuten de horarios

Cada departamento ofrece cursos a los estudiantes de las carreras a las que da soportedirecto pero ademaacutes debe ofrecer cursos para todas las otras carreras de la institucioacutenque lo requieran esto es si un departamento X solicita la apertura de determinadonuacutemero de cursos a un departamento Y el departamento Y debe ofertar los cursossolicitados por X para los alumnos matriculados en el departamento X aunado a estoalgunos cursos ofertados por el departamento Y tienen compatibilidad con cursosofrecidos por X y por lo tanto los estudiantes de Y y X pueden ingresar indistintamenteen cualquiera de los cursos

Los cursos los semestres y las horas

Una de las afirmaciones que se pueden hacer en las instituciones de nivel superior es quelos cursos generalmente inician durante cierto periodo de tiempo y pueden tenerduracioacuten semestral (la gran mayoriacutea) trimestral y sin fechas predeterminadas (algunosposgrados por ejemplo) En general los cursos empiezan a las 700 AM y terminandependiendo del lugar a las 2000 o a las 2100 horas de lunes a saacutebado Aunque estopermite tener un amplio margen de horas para programar los cursos esto hace tambieacuten

Capiacutetulo 2 Marco teoacuterico

aun maacutes difiacutecil la elaboracioacuten de los horarios porque aumenta el rango de posiblescombinaciones donde programar cursos

Los cursos se pueden programar en periodos de tiempo muy variados aunque la mayoriacuteade los programadores de horarios siguen los siguientes patrones

bull Curso diario de 1 horabull Curso de dos horas en diacuteas saltados (lunes y mieacutercoles jueves y viernes

mieacutercoles y viernes)bull Curso de dos horas diarias 3 diacuteas por semana (lunes mieacutercoles y viernes)

(lunes martes y jueves) o (martes jueves y viernes)bull Cursos de cuatro horas en un solo diacutea por semanabull En el peor de los casos se programan cursos con la combinacioacuten de algunos

de los anteriores

Dependiendo del curso algunos tienen duracioacuten de cuatro horas teoacutericas semanales otroscombinan cuatro horas de teoriacutea y dos de praacutectica y algunos excepcionalmente sonprogramados con cuatro horas de praacutectica y dos de teoriacutea Las horas de praacutecticageneralmente se realizan en laboratorios o praacutecticas de campo agregando esto un nuevoparaacutemetro para la complejidad de la elaboracioacuten de horarios

Los cursos y las aulas

Las aulas son el espacio fiacutesico donde se impartiraacuten los cursos pueden ser salones declase laboratorios salones de exposicioacuten aulas para aplicacioacuten de exaacutemenes aulas paraactividades deportivas musicales o recreativas cada aula tiene capacidad para quecierto nuacutemero definido de estudiantes reciba sin problema unidades de ensentildeanzaaprendizaje

En una encuesta realizada por la Universidad de Nottingham [Burke y Elliman 1998] sedefinioacute que la programacioacuten de los cursos en las aulas es uno de los mayores problemasa los que se enfrentan los responsables de la elaboracioacuten de horarios Esto proviene dedos problemas mayores El primer problema es la escasez de aulas disponibles ya queen algunas de las escuelas de nivel superior el crecimiento de la poblacioacuten estudiantil hasido mayor que el crecimiento del nuacutemero de aulas disponibles para la ensentildeanza Elsegundo problema ocurre cuando se programa un curso en mas de un aula o saloacuten declase

La ocupacioacuten de las aulas es variable de acuerdo al departamento para el que seaasignada algunos prefieren utilizarlas al maacuteximo en el turno matutino otros en el turnovespertino tienen ocupacioacuten total algunos las utilizan exhaustivamente de lunes ajueves unos departamentos las llenan los viernes y saacutebados y otros tienen que utilizarlastodo el diacutea de lunes a saacutebado inclusive solicitan prestadas a los otros departamentosaquellos espacios que no son utilizados en alguacuten diacutea y hora a la semana

Capiacutetulo 2 Marco teoacuterico

Para el Tecnoloacutegico de Zacatepec el recurso llamado las aulas debe ser optimizado enuna buena planeacioacuten de horarios esto es deben ser utilizadas al maacuteximo todos los diacuteasde la semana desde las 700 hasta las 2100 de lunes viernes y los saacutebados hasta las1500 horas

Tipos de cursos

Una de las cosas a tomarse en cuenta durante la elaboracioacuten de los horarios es el tipo decurso a programar

bull Teoacutericos como los cursos matemaacuteticos cursos de administracioacuten etcbull Teoacuterico praacutecticos como los cursos de electroacutenica sistemas digitalesbull Lenguajes de programacioacutenbull Con praacutecticas de campo que deben salir al aire librebull Con praacutecticas de quiacutemica

Otra consideracioacuten es el tipo de aula requerida por los diferentes tipos de cursos

bull cursos que requieren medios audiovisuales simples (pizarroacuten y gis)bull algunos cursos adicionalmente requieren proyectores de acetatos y salas

obscurecidasbull cursos que requieren equipo de coacutemputo equipo de proyeccioacuten equipo de video y

televisioacuten para el desarrollo de la caacutetedra etcbull cursos que requieren laboratorios con computadorasbull que requieren equipos de medicioacuten electroacutenica generadores de sentildeales enchufes

eleacutectricos ybull cursos que requieren mesas tomas eleacutectricas y equipos para conexioacuten de redes

Los cursos y los catedraacuteticos

Definitivamente eacutesta es una de las principales consideraciones que tienen en cuenta losprogramadores de horarios la asignacioacuten de los cursos a los catedraacuteticos porque es unproceso que no puede realizarse de manera aleatoria es un proceso delicado porque deesto depende la efectividad del proceso de ensentildeanzandashaprendizaje

Los catedraacuteticos tienen caracteriacutesticas individuales que los hacen uacutenicosindependientemente de la profesioacuten que hayan estudiado Tienen intereses diferentesmeacutetodos diferentes aacutereas de preferencia diferentes perfil profesiograacutefico distinto tienenactividades extralaborales variadas asiacute que

iquestCoacutemo asignarle un curso a un catedraacutetico para que logre un oacuteptimo resultado en el

Capiacutetulo 2 Marco teoacuterico

proceso de ensentildeanza-aprendizajeiquestCoacutemo garantizar que el curso asignado a un profesor seraacute bien impartidoiquestCoacutemo saber que el profesor estaacute capacitado para ofrecer un buen cursoiquestCuaacuteles son los requisitos que debe reunir un profesor para impartir cierto cursoiquestDependen soacutelo de la profesioacuten los cursos que puede impartiriquestCoacutemo conocer de antemano las preferencias de los profesoresiquestEl nivel de estudio de los profesores les capacita para impartir cualquier cursoiquestDeben los profesores ser guiados a una especialidad por los programadores dehorarios

Las respuestas a todas estas preguntas incorporadas en un sistema generador de horariosiquestpermitiraacuten hacer una buena asignacioacuten de catedraacutetico a un curso

El condensado de horarios

Es un documento emitido cada semestre por los responsables de la elaboracioacuten de loshorarios que contiene la informacioacuten requerida por los alumnos jefes de departamento ycatedraacuteticos para conocer la distribucioacuten de las materias los grupos las aulas las horasy los catedraacuteticos que impartiraacuten los cursos en otras palabras el condensado de materiases el documento final de los HORARIOS que marcaraacute las acciones de todos el semestreactual

23 El proceso de la elaboracioacuten de horarios

El proceso de la elaboracioacuten de horarios abarca cada accioacuten que es requerida para crearel horario final completo y correcto de los datos iniciales Esto incluye recibir validary dar formato a los datos generar la versioacuten inicial hacer las correcciones y luegoproducir el condensado final de horarios El proceso de la generacioacuten de horariosabarca

bull la generacioacuten del dato de cuantos cursos se van a ofertarbull asignacioacuten de horario a esos cursosbull proporcionar aulas a los cursosbull designar profesores para los cursos definidos

la parte difiacutecil de esto es generar los horarios con los recursos disponibles en cadadepartamento cada etapa tiene sus restricciones (fuertes y suaves) los recursos no soninagotablesEl uso de la computadora

En una encuesta realizada por la Universidad de Nottingham [Burke y Elliman 1998]referente a la forma de elaborar horarios en las demaacutes universidades se encontroacute que un

Capiacutetulo 2 Marco teoacuterico

58 de ellas utilizan la computadora en alguna etapa del proceso de eacutestas el 21 tienela facilidad de realizar la programacioacuten aunque generalmente requieren captura manualde informacioacuten y conocimientos previos del problema particular del proceso El 1tienen paquetes comerciales y el 14 tienen paquetes hechos en casa para generarhorarios y el 2 aseguran que estaacuten desarrollando o comprando un paquete

Dado el tamantildeo de los horarios de dichas universidades es sorprendente que muchas notengan alguna forma de automatizacioacuten Esto se debe en la mayoriacutea de los casos a quelos horarios no cambian significativamente de un antildeo a otro Sin embargo de lasuniversidades que no programan horarios por computadora la mitad usa el horario delantildeo pasado y la otra mitad empiezan desde cero cada vez Cuando no se usa el horariodel antildeo pasado generalmente toma 4 semanas elaborar uno nuevo En la mayoriacutea de loscasos donde se usa la computadora generalmente no se toma en cuenta el horario delantildeo anterior

Causas de cambio de los horarios antildeo tras antildeo

Para que un horario pueda ser usado antildeo tras antildeo debe ser lo suficientemente robustopara que los cambios que ocurran en los datos de entrada produzcan soacutelo una pequentildeaalteracioacuten o modificacioacuten en el condensado final de horarios El uso del condensado delantildeo pasado depende en la cantidad de cambios que deben hacerse y esto a su vezdepende de cuanto cambie la cantidad de grupos que deben ofertarse para cadaasignatura y esto depende de la cantidad de alumnos que pueden cursar una asignaturaahora bien la cantidad de alumnos estaacute en funcioacuten de los iacutendices de aprobacioacuten yreprobacioacuten del periodo de los alumnos que por alguna razoacuten no cursaron unaasignatura y de la cantidad de grupos ofertados el periodo pasado

Si cambia la cantidad de horas frente a grupo asignada a un departamento entoncescambiaraacute el condensado de horarios con respecto al del antildeo pasado porque eso afectadirectamente en la cantidad de cursos que podraacute ofertarse este periodo este es uno de losrecursos maacutes variables que influyen para hacer cambios en los condensados antildeo trasantildeo

La redistribucioacuten de aulas y laboratorios (que no se realiza a menudo) llega tambieacuten ainfluir en los cambios

El cambio de horario matutino a vespertino (o viceversa) solicitado por un catedraacuteticoque es el especialista en impartir cierto curso ocasiona los cambios del condensado dehorarios del antildeo anterior al nuevo

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

CAPIacuteTULO 3

TEacuteCNICAS DE INTELIGENCIA ARTIFICIAL UTILIZADASPARA LA GENERACIOacuteN DE HORARIOS

31 Sistemas Expertos (SE)Bajo el teacutermino de Sistemas Expertos se entiende un nuevo tipo de software que imita elcomportamiento de un experto humano en la solucioacuten de un problema Un SE puedealmacenar conocimientos de expertos para un campo determinado y solucionar unproblema mediante razonamiento loacutegico de conclusiones

Los Sistemas Expertos son sistemas que buscan modelar el conocimiento yprocedimientos usados por un experto humano para resolver un problemadeterminado[Saacutenchez 1999]

iquestUn Sistema Experto utiliza teacutecnicas de la Inteligencia Artificial (IA)

Los Sistemas Expertos son uno de los puntos que componen las investigaciones en elcampo de la IA Un sistema de computadoras que trabaje con teacutecnicas de IA deberaacuteestar en situacioacuten de combinar informacioacuten de forma ldquointeligenterdquo alcanzarconclusiones y justificarlas (al igual que el resultado final) Los Sistemas Expertos sonuna expresioacuten de los sistemas basados en el conocimiento Con la aplicacioacuten de teacutecnicasde Inteligencia Artificial finaliza la transicioacuten del procesamiento de datos alprocesamiento de conocimientos

Un Sistema Experto es un sistema informaacutetico que simula el proceso de aprendizaje dememorizacioacuten de razonamiento de comunicacioacuten y de accioacuten de un experto humano enuna determinada rama o dominio Estas caracteriacutesticas le permiten almacenar datos yconocimiento sacar conclusiones loacutegicas tomar decisiones aprender de la experiencia ylos datos existentes comunicarse con humanos explicar el porqueacute de las decisionestomadas y realizar acciones como consecuencia de todo lo anterior

La incorporacioacuten dentro de un sistema de computadoras de un componente basado enel conocimiento correspondiente a una habilidad experta de tal forma que el sistemapueda ofrecer asesoramiento inteligente o tomar una decisioacuten inteligente sobre unafuncioacuten del proceso Una caracteriacutestica adicional deseable que muchos consideranfundamental es la capacidad del sistema si se le solicita de justificar su propia liacutenea derazonamiento de un modo directamente inteligible para el interrogador El estiloadoptado para alcanzar estas caracteriacutesticas es la programacioacuten basada en reglas[Waterman 1986]

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

311 Funcioacuten de un Sistema Experto

La funcioacuten de un Sistema Experto es aportar soluciones a problemas de un dominioespeciacutefico imitando la forma de razonamiento de los seres humanos es decir el SistemaExperto debe ser capaz de mostrar soluciones inteligentes [Giarratamo 1998]

Acceder a los conocimientos adquiridos por experiencia es lo maacutes difiacutecil ya que losexpertos al igual que otras personas apenas los reconocen como tales Son buscadoscon mucho esfuerzo y cuidado siendo descubiertos de uno en uno poco a poco

Ventajas del Sistema Experto

Experto Humano Experto ArtificialMortal PermanenteDifiacutecil de documentar Faacutecil de documentarDifiacutecil de transferir Faacutecil de transferirImpredecible ConsistenteMaacutes caro Menos caro

Ventajas del Experto Humano

Experto Humano Experto ArtificialCreativo No creativoAdaptable Requiere mantenimientoExperiencia sensorial Entrada simboacutelicaConocimiento de sentido comuacuten Conocimiento teacutecnico

312 Arquitectura de Sistemas Expertos [Gines 1986] [Giarratamo 1998]

La arquitectura general de un SE (Fig 31) estaacute compuesta fundamentalmente de

bull Base de Conocimiento Representa el conocimiento adquirido del expertohumano incluyendo experiencia sentido comuacuten e intuicioacuten

bull Motor de Inferencia Decide que se debe aplicar que se debe hacer resuelveconflictos nuevos hace uso de la base del conocimiento Proporcionamecanismos de razonamiento buacutesqueda aprendizaje etc

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

bull Interfaz Usuario Facilita la comunicacioacuten entre el Sistema Experto y el usuarioque realiza las consultas

bull Subsistema de Adquisicioacuten Mejor conocido como la Interfaz de Expertopermite ingresar el conocimiento a la Base de Conocimientos por parte delhumano experto en alguacuten dominio de conocimiento

bull Subsistema de explicaciones Permite dar a conocer los resultados obtenidospor el Sistema Experto

313 La base de conocimiento

El enfoque maacutes comuacuten para representar el dominio del conocimiento que se requierepara un SE son las reglas de produccioacuten Estas pueden ser referidas como reglasldquosituacioacuten-accioacutenrdquo o ldquoif-thenrdquo De esta forma con frecuencia una base deconocimientos estaacute fraguada principalmente de reglas las cuales son invocadas por uncasamiento de patrones con las particularidades de las tareas circunstanciales que vanapareciendo en la base de hechosLas reglas en una base de conocimientos representan el dominio de hechos y laheuriacutestica de un buen juicio de acciones a tomar cuando uno llega a situacionesespeciacuteficas La fuerza de un SE yace en el conocimiento especiacutefico del dominio delproblema Casi todos los sistemas existentes basados en reglas contienen cientos o milesde ellas y generalmente se obtienen de entrevistas con expertos durante un tiempo largoEn cualquier SE las reglas se conectan una a otra por ligas de asociacioacuten para formar

Base de

Motor de

Subsistema deadquisicioacuten

del

Subsistemade

explicacione

Interfazde

usuario

Ingeniero delconocimiento y experto Usuario

Base de hechos

Figura 31 Arquitectura de un Sistema Experto

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

redes de reglas Una vez que han sido ensambladas tales redes entonces se tiene unarepresentacioacuten de un cuerpo de conocimientos que es sustancial

Generalmente un experto tiene muchas reglas de criterio empiacutericas por lo que el soportesuele ser incompleto para la evidencia que se dispone En tales casos una teacutecnica es la devincular valores numeacutericos a cada regla para indicar el grado de certidumbre que eacutestatiene En la operacioacuten de SE los valores de certidumbre se combinan unos a otros atraveacutes de la red considerando tambieacuten la certidumbre de los datos de entrada delproblema para llegar finalmente a un valor de certidumbre de la solucioacuten final

314 El motor de inferencias

El sistema experto modela el proceso de razonamiento humano con un moacutedulo conocidocomo el motor de inferencia Dicho motor de inferencia trabaja con la informacioacutencontenida en la base de conocimientos y la base de hechos para deducir nuevos hechosContrasta los hechos particulares de la base de hechos con el conocimiento contenido enla base de conocimientos para obtener conclusiones acerca del problemaEl modelo de problema - solucioacuten y sus meacutetodos organizan y controlan las etapas que sevan tomando para la resolucioacuten de problemas Un modelo muy poderoso y comuacuten es elde encadenar las reglas `` if-then-else con el fin de formar alguna liacutenea derazonamiento Si el encadenamiento se inicia a partir de un conjunto de condiciones y semueve hacia alguna conclusioacuten el meacutetodo se llama encadenamiento hacia adelante y ensu caso contrario el encadenamiento es hacia atraacutes

Un problema de encadenamiento hacia adelante sin una apropiada heuriacutestica de podaderivaraacute muchas soluciones de las cuales no todas son necesarias En el caso deencadenamiento hacia atraacutes es necesario tambieacuten trabajar con una heuriacutestica apropiadacon la finalidad de poder manejar submetas conjuntivas En general para atacar elproblema de conjuncioacuten es necesario encontrar un caso en donde todas las submetasinteractuantes se satisfagan Pero con frecuencia una buacutesqueda de tal naturaleza nos dauna explosioacuten combinatoria de posibilidades Es por esta razoacuten que el dominioapropiado de la heuriacutestica y su esquema inferencial deberaacuten ser encontrados para cadatipo de problemas para que de esta manera se tenga un SE eficaz y eficiente

315 iquestPor queacute utilizar un Sistema Experto [Pluss 1999] [Sanchez 1999]

1 Con la ayuda de un Sistema Experto personas con poca experiencia pueden resolverproblemas que requieren un conocimiento formal especializado

2 Los Sistemas Expertos pueden obtener conclusiones y resolver problemas de formamaacutes raacutepida que los expertos humanos

3 Los Sistemas Expertos razonan pero basaacutendose en un conocimiento adquirido y notienen sitio para la subjetividad

Capiacutetulo 2 Marco teoacuterico

4 El uso de Sistemas Expertos es especialmente recomendado en las siguientessituaciones

bull Cuando los expertos humanos en una determinada materia son escasos

bull En situaciones complejas donde la subjetividad humana puede llevar aconclusiones erroacuteneas

bull Cuando es muy elevado el volumen de datos que ha de considerarse paraobtener una conclusioacuten

316 Construccioacuten de prototipos [Turban 1995]

En el desarrollo de Sistemas Expertos se plantean dos importantes riesgos

1- No existen implementaciones similares que puedan servir de orientacioacuten al encargadodel desarrollo en la casi totalidad de los casos

2- En muchos puntos los requisitos necesarios estaacuten esbozados con muy poca precisioacuten

El disentildeo y la especificacioacuten requieren una temprana determinacioacuten de la interfaz delsoftware y de la funcionalidad de los componentes En el desarrollo de SistemasExpertos deben alterarse a menudo durante y tambieacuten despueacutes de su implementacioacuten yaque los requisitos se han ido configurando y han obtenido mayor precisioacuten o porque seha descubierto que deben iniciarse otras viacuteas de solucioacuten Durante el desarrollo resultamaacutes apropiado empezar con implementaciones tipo test para encontrar el camino haciauna solucioacuten definitiva y para hacerlas coincidir con las necesidades del usuario

32 Algoritmos Geneacuteticos

321 Antecedentes [Medina 2004] [Goldberg 1989] [Davis 1991]

El Algoritmo Geneacutetico es una teacutecnica de buacutesqueda basada en la teoriacutea de la evolucioacutende Darwin que ha cobrado tremenda popularidad en todo el mundo durante los uacuteltimosantildeos

Esta teacutecnica se basa en los mecanismos de seleccioacuten que utiliza la naturaleza de acuerdoa los cuales los individuos maacutes aptos de una poblacioacuten son los que sobreviven al

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

adaptarse maacutes faacutecilmente a los cambios que se producen en su entorno Hoy en diacutea sesabe que estos cambios se efectuacutean en los genes de un individuo (unidad baacutesica decodificacioacuten de cada uno de los atributos de un ser vivo) y que sus atributos maacutesdeseables se transmiten a sus descendientes cuando eacuteste se reproduce sexualmente

En 1859 Darwin publica su libro laquoEl origen de las especiesraquo El libro causoacute una granpoleacutemica en el mundo cientiacutefico por las revolucionarias teoriacuteas en eacutel contenidas que lasespecies evolucionan acorde al medio para adaptarse a eacuteste Con ello el universopasaba de ser una creacioacuten de Dios estaacutetica y perfecta desde su inicio a un conjunto deindividuos en constante competicioacuten y evolucioacuten para poder perpetuar su especie en eltiempo La existencia de una especie pasa asiacute a ser algo dinaacutemico las especies se creanevolucionan y desaparecen si no se adaptan Para cada especie animal la naturalezaproponiacutea un crudo filtro soacutelo los mejores los maacutes aptos los que mejor se adapten almedio conseguiacutean sobrevivir lo suficiente para llegar a la madurez y encontrar unapareja para perpetuar sus aptitudes que le haciacutean maacutes apto

La informaacutetica ve aquiacute un claro proceso de optimizacioacuten Se toman los individuos mejoradaptados (mejores soluciones temporales) se cruzan (se mezclan ) generando nuevosindividuos (nuevas soluciones) que contendraacuten parte del coacutedigo geneacutetico (informacioacuten)de sus dos antecesores y por lo tanto aunque el nuevo individuo no tenga que estarforzosamente mejor adaptado de hecho puede que ni la probabilidad de que el nuevoindividuo generado esteacute mejor adaptado que los padres sea alta el promedio de laadaptacioacuten de toda la poblacioacuten si mejora ya que tienden a perpetuarse y extenderse lasmejores caracteriacutesticas y a extinguirse las poco beneficiosas o perjudiciales En losAlgoritmos Geneacuteticos se crea una nueva abstraccioacuten -la poblacioacuten- cuya funcioacuten decoste mejoraraacute globalmente por lo que puede que se encuentre alguacuten individuo conmejores caracteriacutesticas

Un investigador de la Universidad de Michigan llamado John Holland era consciente dela importancia de la seleccioacuten natural y a fines de los antildeos 60 desarrolloacute una teacutecnica quepermitioacute incorporarla a un programa Su objetivo era lograr que las computadorasaprendieran por siacute mismas A la teacutecnica que inventoacute Holland se le llamoacute originalmentePlanes Reproductivos pero se hizo popular bajo el nombre Algoritmo Geneacutetico trasla publicacioacuten de su libro en 1975

En esa universidad Holland impartiacutea un curso titulado Teoriacutea de sistemas adaptativosDentro de este curso y con una participacioacuten activa por parte de sus estudiantes fuedonde se crearon las ideas que maacutes tarde se convertiriacutean en los Algoritmos GeneacuteticosLos objetivos de su investigacioacuten fueron dos

Imitar los procesos adaptativos de los sistemas naturales y Disentildear sistemas artificiales (normalmente programas) que retengan los mecanismos

importantes de los sistemas naturales

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

Unos 15 antildeos maacutes adelante David Goldberg actual delfiacuten de los Algoritmos Geneacuteticosconocioacute a Holland y se convirtioacute en su estudiante Golberg era un ingeniero industrialtrabajando en disentildeo de tuberiacuteas y fue uno de los primeros que tratoacute de aplicar losAlgoritmos Geneacuteticos a problemas industriales Aunque Holland tratoacute de disuadirleporque pensaba que el problema era excesivamente complejo Goldberg consiguioacute loque queriacutea escribiendo un Algoritmo Geneacutetico en una computadora personal Apple IIEstas y otras aplicaciones creadas por estudiantes de Holland convirtieron a losAlgoritmos Geneacuteticos en un campo con base suficiente como para celebrar la primeraconferencia en 1985 ICGAacute85 Tal conferencia se sigue celebrando bianualmente[Beasley 1993]

Una definicioacuten bastante completa de un Algoritmo Geneacutetico es la propuesta por JohnKoza es un algoritmo matemaacutetico altamente paralelo que transforma un conjunto deobjetos matemaacuteticos individuales con respecto al tiempo usando operaciones modeladasde acuerdo al principio Darwiniano de reproduccioacuten y supervivencia del maacutes apto y trashaberse presentado de forma natural una serie de operaciones geneacuteticas de entre las quedestaca la recombinacioacuten sexual Cada uno de estos objetos matemaacuteticos suele ser unacadena de caracteres (letras o nuacutemeros) de longitud fija que se ajusta al modelo de lascadenas de cromosomas y se les asocia con una cierta funcioacuten matemaacutetica que refleja suaptitud [Koza 1992] 322 Definicioacuten de AG

Los Algoritmos Geneacuteticos (AG) son meacutetodos adaptativos que pueden usarse pararesolver problemas de buacutesqueda y optimizacioacuten Estaacuten basados en el proceso geneacutetico delos organismos vivos A lo largo de las generaciones las poblaciones evolucionan en lanaturaleza de acorde con los principios de la seleccioacuten natural y la supervivencia de losmaacutes fuertes postulados por Darwin Por imitacioacuten de este proceso los AlgoritmosGeneacuteticos son capaces de ir creando soluciones para problemas del mundo real Laevolucioacuten de dichas soluciones hacia valores oacuteptimos del problema depende en buenamedida de una adecuada codificacioacuten de las mismas [Goldberg 1989]

Un Algoritmo Geneacutetico consiste en una funcioacuten matemaacutetica que toma como entradas alos ejemplares y retorna como salidas cuaacuteles de ellos deben generar descendencia para lanueva generacioacuten

Los Algoritmos Geneacuteticos presentan ventajas sobre otros algoritmos que los hacenpreferibles para determinado tipo de aplicaciones Algunas de las caracteriacutesticas de losAlgoritmos Geneacuteticos son

bull Son algoritmos estocaacutesticos Dos ejecuciones distintas pueden dar dos solucionesdistintas Esto es uacutetil por el hecho de que hay gran cantidad de isoacutemeros que

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

corresponden a soluciones vaacutelidas por lo que es interesante que distintas ejecucionespuedan dar isoacutemeros distintos

bull Son algoritmos de buacutesqueda muacuteltiple luego dan varias soluciones Aunquehabitualmente la energiacutea de los individuos de la poblacioacuten final es similar losindividuos suelen ser distintos entre si Con el modelo de paralelizacioacuten empleado -geneacutetico multipoblacional- la probabilidad de obtener muchas soluciones distintas esmaacutes alta todaviacutea

bull Son los algoritmos que hacen una barrida mayor al subespacio de posiblessoluciones vaacutelidas De hecho se considera que de todos los algoritmos deoptimizacioacuten estocaacutesticos los Algoritmos Geneacuteticos son de los maacutes exploratoriosdisponibles

323 Ventajas y Desventajas [Bull 1993]

bull No necesitan conocimientos especiacuteficos sobre el problema que intentan resolverbull Operan de forma simultaacutenea con varias soluciones en vez de trabajar de forma

secuencial como las teacutecnicas tradicionalesbull Cuando se usan para problemas de optimizacioacuten de una funcioacuten objetivo- resultan

menos afectados por los oacuteptimos locales (falsas soluciones) que las teacutecnicastradicionales

bull Usan operadores probabiliacutesticos en vez de los tiacutepicos operadores determiniacutesticos delas otras teacutecnicas

bull La mayoriacutea de las otras teacutecnicas de optimizacioacuten son tambieacuten estocaacutesticasbull Pueden tardar mucho en converger o no converger en absoluto dependiendo en

cierta medida de los paraacutemetros que se utilicen tamantildeo de la poblacioacuten nuacutemero degeneraciones etc-

bull Pueden converger prematuramente debido a una serie de problemas de diversaiacutendole

324 iquestCoacutemo saber si es posible usar un Algoritmo Geneacutetico

La aplicacioacuten maacutes comuacuten de los Algoritmos Geneacuteticos ha sido la solucioacuten de problemasde optimizacioacuten en donde han mostrado ser muy eficientes y confiables Sin embargono todos los problemas pudieran ser apropiados para la teacutecnica y se recomienda engeneral tomar en cuenta las siguientes caracteriacutesticas del mismo antes de intentar usarlabull Su espacio de buacutesqueda (ie sus posibles soluciones) debe estar delimitado dentro

de un cierto rangobull Debe poderse definir una funcioacuten de aptitud que indique que tan buena o mala es

una cierta respuestabull Las soluciones deben codificarse de una forma que resulte relativamente faacutecil de

implementar en la computadora

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

Decisiones para implementar un Algoritmo Geneacutetico [Michalewicz 1992]

Las decisiones que hay que tomar para implementar un Algoritmo Geneacutetico son

bull Criterio de codificacioacuten Coacutemo se va a almacenar la informacioacuten en el genomabull Criterio de tratamiento de individuos no factibles Coacutemo se van a tratar a los

individuos que no cumplan las restriccionesbull Criterio de inicializacioacuten Coacutemo se va a construir la poblacioacuten inicialbull Criterio de parada Determina cuaacutendo el algoritmo ha llegado a una solucioacuten

aceptablebull Funcioacuten de adaptacioacuten Corresponde a la funcioacuten de costo de la investigacioacuten

operativa tradicionalbull Operadores geneacuteticos Se emplean para determinar coacutemo va a ser la nueva

generacioacuten Baacutesicamente son los operadores de cruce y mutacioacuten aunque pueden serempleados otros adicionales -muerte aborto envejecimiento- Tanto cruce comomutacioacuten pueden ser realizados de muchas formas distintas

bull Criterios de reemplazo Los criterios que determinan quieacutenes se van a cruzar Notienen que ser obligatoriamente los mismos que los criterios de seleccioacuten de lospadres

bull Paraacutemetros de funcionamiento Determinados paraacutemetros que sin poder serenglobados en ninguno de los anteriores son fundamentales para el funcionamientode un Algoritmo Geneacutetico Es el caso por ejemplo del tamantildeo de la poblacioacuten laprobabilidad de la aplicacioacuten de los operadores geneacuteticos etc

325 Paraacutemetros que deben ser especificados en el programa

Nordm de generaciones cantidad de veces que se produce una nueva generacioacuten deindividuos utilizando las reglas anteriormente explicadas Por loacutegica cuantas maacutesgeneraciones se produzcan se obtendraacuten mejores individuosNordm de individuos por generacioacuten en este ejemplo la cantidad de individuos de unageneracioacuten a otra es constante no variacuteaNordm de entrenamientos cantidad de veces que se lleva a cabo un entrenamiento entrediferentes generaciones de individuos

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

Fig 32 Pseudocoacutedigo del Algoritmo Geneacutetico simple

Los Algoritmos Geneacuteticos son una poderosa herramienta de propoacutesito general deoptimizacioacuten que modela los principios de la evolucioacuten [Burke 1994]

El proceso es el siguiente

1 Una poblacioacuten random de horarios factibles es creada Cada horario es evaluado deacuerdo a una conjunto de criterios (por ejemplo el tamantildeo del horario cuantosgrupos son colocados a la misma hora y en el mismo saloacuten cuantos salones hayvaciacuteos)

2 Los horarios son seleccionados de manera aleatoria para ser las bases de la proacuteximageneracioacuten Los buenos horarios son maacutes deseables que los malos En las bases dela evaluacioacuten de estos miembros de la poblacioacuten (horarios factibles) se escogen lospadres de la proacutexima generacioacuten de horarios Evaluando numeacutericamente durante elproceso de seleccioacuten buscando los mejores horarios los peores horarios soneliminados al mismo tiempo que la buacutesqueda se dirige hacia las aacutereas maacutespromisorias del espacio de soluciones

3 El Operador Mutacioacuten se aplica generalmente a un solo miembro de la poblacioacuten einvolucra el cambio aleatorio de la hora o aula de algunos grupos despueacutesalmacena el nuevo horario siempre manteniendo un horario factible Esto agrega

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

un elemento que permite tambieacuten introducir material geneacutetico uacutetil que ha sidoperdido en otros horarios en las primeras generaciones

4 El Operador de Cruzamiento toma una pareja de horarios y los combina de algunamanera para producir uno o dos nuevos horarios esto se hace generalmente deforma aleatoria seleccionando algunos grupos de la mantildeana de un miembro de lapoblacioacuten y los algunos grupos de la tarde de otro miembro para producir un nuevohorario cualquier grupo que no pueda ser colocado de esta manera se manda alperiodo siguiente disponible

5 La nueva poblacioacuten es generada El proceso seraacute repetido hasta que una buenasolucioacuten sea generada

33 Programacioacuten Loacutegica de Restricciones (PLR)

331 Antecedentes de la PLR

La Programacioacuten Loacutegica de Restricciones (PLR) es una teacutecnica que tiene mucho encomuacuten con los algoritmos de asignacioacuten heuriacutestica Dechter describe asiacute el problemade la satisfaccioacuten de restricciones ldquoUn problema de satisfaccioacuten de restricciones (PSR)es representado por una red de restricciones consistente en un conjunto de n variablesX1 Xn con sus respectivos valores de dominio RR n y un conjunto derestricciones Una restriccioacuten Ci (Xi1Xij)es un subconjunto del producto cartesiano Ri1 x x R i1 formado por todas las tuplas de valores para un subconjunto(X i1X ij) delas variables que son compatibles unas con otrasrdquo [Detcher 1990]

Una solucioacuten de la red es una asignacioacuten de valores a todas las variables de tal formaque todas las restricciones son satisfechasrdquo Esta es una representacioacuten maacutes poderosaque el modelo de los Grafos Coloreados porque puede representar restricciones mascomplejas El problema de los grafos coloreados es equivalente a un PLR binario en lacual cada restriccioacuten soacutelo tiene dos variables

Este modelo se resuelve tratando de asignar valores a cada una de las variables encuestioacuten y entonces regresando si se encuentra en un punto muerto y quitandorestricciones si se descubre que no se puede encontrar solucioacuten El orden en el que lasvariables son seleccionadas y el orden de los valores que son asignados a las variablespuede ser alterado para tratar aumentar la velocidad de buacutesqueda

La PLR es un meacutetodo que permite el disentildeo raacutepido de prototipos de resolucioacuten deproblemas complejos Las principales aportaciones en esta liacutenea se centran en eldesarrollo de programas que incluyen conjuntos de restricciones adaptadas a unadeterminada familia de problemas asiacute como al disentildeo formal e implementacioacuten demodelos de interpretacioacuten en paralelo con el fin de mejorar la eficiencia del proceso

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

deductivo El objetivo final es disponer de sistemas de resolucioacuten implementados paraapoyar la creacioacuten de sistemas donde la explosioacuten combinatoria de los elementos de unproblema hace muy difiacutecil la buacutesqueda de una solucioacuten en un tiempo razonable [Farion1992]

En esta seccioacuten se proporciona una breve introduccioacuten de la Programacioacuten Loacutegica conRestricciones y sus aplicaciones dentro del marco general de la programacioacuten loacutegica Setrata eacuteste de un campo que ha tenido una notable expansioacuten debido a su potencialaplicacioacuten praacutectica dado que el anaacutelisis de las restricciones permite mejorarconsiderablemente la eficiencia del caacutelculo de determinadas funciones

332 Restricciones

En primer lugar se empieza por contestar la pregunta iquestQueacute es una restriccioacuten Estacuestioacuten se puede responder tan brevemente como escribe Roman Bartak[1998]Una restriccioacuten es simplemente una relacioacuten loacutegica entre varias variablesdesconocidas tomando cada una un valor dentro de un dominio determinado (peA+B=C-el circulo estaacute dentro del cuadrado- etc)Asiacute las restricciones aparecen de forma natural en todos los campos del conocimientohumano La suma de los aacutengulos de un triaacutengulo es 180 grados es un ejemplo derestriccioacuten que aparece en el mundo real De hecho las restricciones son el medionatural en el que las personas expresamos los problemas en todas las aacutereas

Con la explicacioacuten dada se ve de forma natural que las restricciones gozan de variaspropiedades interesantes

bull las restricciones pueden especificar informacioacuten parcial es decir en lasrestricciones no hace falta que se den de forma uacutenica los valores de sus variables

bull las variables son no direccionales es decir en una restriccioacuten tiacutepica sobre dosvariables (XY) se puede inferir una restriccioacuten sobre X dada una restriccioacutensobre Y y viceversa

bull las restricciones son declarativas es decir se puede especificar que relacioacutendeben mantener sin especificar el procedimiento computacional que implementeesa relacioacuten

bull las restricciones son aditivas es decir el orden de imposicioacuten de las restriccionesno importa todo lo que importa al fin y al cabo es la conjuncioacuten de restriccionesy su efecto

bull las restricciones no suelen ser independientes normalmente restricciones dentrodel conjunto total de restricciones comparte variables

Asiacute siguiendo esta idea el objetivo de la Programacioacuten Loacutegica con Restricciones essustituir el proceso de unificacioacuten por la resolucioacuten de restricciones sobre un dominio

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

particular de intereacutes Con esta visioacuten se considera que el procesador de restriccionesdebe encargarse de comprobar la consistencia del conjunto de restricciones y dentro delo posible reducirlo a alguna forma normal

Seguacuten Elmohamed [Elmohamed 1998] las restricciones pueden ser divididas en trestipos fuertes medias y suaves

Restricciones fuertes Son todas aquellas que deben ser cumplidas obligatoriamente elcosto de no cumplir estas restricciones es sumamente alto y por lo tanto en un horariofactible su costo asociado por incumplimiento debe ser cero Por ejemplo (en unproblema real se pueden encontrar de 10 a 15 restricciones fuertes)

bull Dos o maacutes clases impartidas por un profesor no se pueden programar a lamisma hora

bull Una clase teoacuterica y su laboratorio no se pueden programar a la misma hora en elmismo diacutea

bull Una clase no se puede programar en un aula a menos que su capacidad seamayor al nuacutemero de alumnos inscritos

Restricciones medias Estas restricciones no se refieren a conflictos de tiempo perotienen asociado un alto costo a ellas sin embargo este costo no es tan alto como el de lasrestricciones fuertes En el condensado de horarios final el costo de estas restriccioneses minimizado y es deseable reducirlo a cero Por ejemplo (en un problema real sepueden tener entre 20 y 25 restricciones medias)

bull Para cada estudiante el balancear las secciones LunMieVie y MarJuebull Balancear o distribuir y equilibrar las horas de clase en la semanabull Las clases pueden requerir periodos de tiempo contiguosbull Las clases se pueden agrupar con otras clases formando paquetesbull Los horarios particulares deben tener la menor cantidad de ldquohoyosrdquo posible esto

es que las clases deben ser consecutivas unas despueacutes de otras

Restricciones suaves Estas restricciones no tienen nada que ver con conflictos detiempo y tienen un bajo costo asociado a ellas Tambieacuten en el condensado de horariosfinal este costo es minimizado pero no necesariamente debe ser cero Por ejemplo (sepueden tener entre 30 y 40 restricciones suaves)

bull Balancear la inscripcioacuten en cursos de varios paquetesbull Especificar la hora de comida y otros periodos de descansobull Los catedraacuteticos pueden requerir periodos de tiempo sin clasebull No inscribir alumnos-atletas en cursos que tengan conflicto con sus horas de

praacutectica deportiva etc

333 Sistemas con RestriccionesUna manera maacutes formal de definir las restricciones es considerarlas como una foacutermulade primer orden interpretada en una estructura para asiacute tener en cuenta la semaacutenticaparticular del sistema de restricciones Esta semaacutentica declarativa es adecuada cuando

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

existe a priori una estructura que se adecua al sistema de restricciones (pe Los realespara las restricciones aritmeacuteticas) pero esto no funciona demasiado bien para lossistemas de restricciones maacutes praacutecticos (pe Dominios finitos) Obviamente no se puededireccionar ninguacuten caacutelculo operacional relacionado con el propio procesador de lasrestricciones [Elmohamed 2001]

334 Referencia Histoacuterica de las RestriccionesLas restricciones como un aacuterea de trabajo que combina investigacioacuten de un gran nuacutemerode campos incluyendo Inteligencia Artificial Lenguajes de Programacioacuten CaacutelculoSimboacutelico y Loacutegica Computacional Las restricciones sobre redes y los problemas desatisfabilidad con restricciones empezaron a estudiarse por los investigadores deInteligencia Artificial en los antildeos 70

La programacioacuten con restricciones ha sido aplicada con notable eacutexito en numerososcampos Los trabajos en esta aacuterea se remontan a la investigacioacuten de InteligenciaArtificial y Representacioacuten Graacutefica por Computadora por los antildeos 60 y 70 En la uacuteltimadeacutecada sin embargo ha empezado a darse una mayor conciencia de que las restriccionesproporcionan las bases para un potente acercamiento a la programacioacuten modelado yresolucioacuten de problemas y que los diferentes esfuerzos por explotar estas ideas puedenser unidos bajo el mismo prisma conceptual y praacutectico la programacioacuten conrestricciones

Entre los dominios tratados por los sistemas de Programacioacuten Loacutegica con Restriccioneslos que maacutes ampliamente son investigados son sin duda los dominios finitos losnuacutemeros reales y racionales con restricciones aritmeacuteticas y los booleanos De hecho 3de los principales lenguajes de Programacioacuten Loacutegica con Restricciones son un claroejemplo de esta tendencia CHIP que proporciona restricciones sobre dominios finitosracionales y booleanos PrologIII que incluye racionales booleanos y listas y PLR(R)que maneja restricciones sobre reales

En la actualidad se pueden observar dos ramas principales en los avances en laprogramacioacuten con restricciones que parten de diferente base y por tanto usan diferentemetodologiacutea para resolver las restricciones Estas dos ramas son

bull Satisfaccioacuten de Restriccionesbull Resolucioacuten de Restricciones

335 Satisfaccioacuten de RestriccionesLa satisfaccioacuten de restricciones parte de los avances en Inteligencia Artificial (problemascombinatorios) y los Graacuteficos por computadora (sistema de SKETCHPAD[1963]expresando coherencia geomeacutetrica en el caso de anaacutelisis de escenas)

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

336 Resolucioacuten de RestriccionesLa resolucioacuten de restricciones difiere de la satisfaccioacuten de restricciones porque usavariables con dominios infinitos Ademaacutes las restricciones individuales son maacutescomplicadas por ejemplo ecuaciones no lineales En consecuencia los algoritmos deresolucioacuten de restricciones usan meacutetodos algebraicos y numeacutericos en vez decombinaciones y buacutesqueda Sin embargo existe metodologiacutea para discretizar losdominios infinitos en un nuacutemero finito de componentes y entonces se aplican lasteacutecnicas de Satisfaccioacuten de Restricciones

La programacioacuten con restricciones ha sido aplicada con eacutexito en numerosos campos Lasaplicaciones recientes incluyen [Detcher 1990]

bull Graacuteficos por Computadorabull Procesamiento del Lenguaje Natural (construccioacuten de analizadores eficientes)bull Sistemas de Bases de Datos (para reforzar yo mantener la consistencia de los

datosbull Problemas de Investigacioacuten Operativa (como la optimizacioacuten de problemas)bull Biologiacutea Molecular (secuenciacioacuten de ADN)bull Aplicaciones de Empresabull Ingenieriacutea Eleacutectrica (localizacioacuten de fallos)bull Disentildeo de Circuitos (para computar configuraciones)bull Planificacioacuten y organizacioacutenbull Configuracioacutenbull Juegosbull Configuracioacuten de horariosbull Criptoaritmeacuteticabull Coloreado de Grafosbull Razonamiento de hipoacutetesis quiacutemicas

En esta seccioacuten se va a dedicar una parte a cada una las aplicaciones maacutes estudiadas

337 Organizacioacuten de Proyectos

El problema de la Organizacioacuten es el proceso de asignar actividades a recursos en eltiempo En el caso general de organizacioacuten es un proceso de tomar decisiones donde sepueden tomar dos tipos de decisiones

bull Decisiones de situar temporalmente Cuaacutendo deberiacutea empezar cada actividadbull Decisiones de asignacioacuten de recursos Con queacute recursos deberiacutea ejecutarse cada

actividad

Los problemas de organizacioacuten y de asignacioacuten de recursos estaacuten basados enrestricciones Diferentes restricciones pueden afectar a la organizacioacuten la duracioacuten de

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

una actividad las fechas de contrato restricciones precedentes tiempos de transferenciao de inicio de la actividad la capacidad de los recursos y el reparto de recursos

La relajacioacuten de las restricciones principales caracteriza la calidad de los problemas deorganizacioacuten Estas restricciones son las relacionadas con fechas de entregaproductividad periodicidad de los cambios de herramientas niveles de inventariomargen de tiempo etc Algunas de estas restricciones pueden ser combinadas en lafuncioacuten de evaluacioacuten para la optimizacioacuten

Las aplicaciones industriales de las teacutecnicas de resolucioacuten de restricciones a losproblemas del tipo de asignacioacuten de tareas incluye[Detcher 1990]

bull Organizacioacuten de la produccioacutenbull Organizacioacuten y planificacioacuten del transporte y la logiacutesticabull Administracioacuten del traacuteficobull Disentildeo de horarios de recursos y de hombresbull Asignacioacuten de plantilla incluyendo aplicaciones de ingenieriacutea de organizacioacutenbull Problemas de empaquebull Configuracioacuten de maacutequinas

Claramente hay muchos problemas relacionados en el aacuterea de la organizacioacuten en lapraacutectica para los sistemas comerciales e industriales reales los liacutemites entre unos y otrosno estaacuten claros Es difiacutecil encontrar alguacuten problema real que se ajuste a un modelopreconcebido sin tener que descartar partes del problema y aproximar otras asiacute que hayque tomar estos modelos con amplio margen de aproximacioacuten

Otra complicacioacuten es el tema de la optimizacioacuten En algunos casos el usuario estaacutesatisfecho soacutelo con tener una manera automaacutetica de tener la respuesta pero la mayoriacuteaquieren tener al menos una buena respuesta y algunos el mejor resultado posible Perodebido a la gran complejidad combinatoria de la mayoriacutea de los problemas reales deorganizacioacuten una optimizacioacuten real es muy difiacutecil asiacute que en la mayoriacutea de los casos seusa la programacioacuten con restricciones en combinacioacuten con otras teacutecnicas tales comoAlgoritmos Geneacuteticos para dar soluciones casi oacuteptimas en un tiempo razonable

Normalmente los problemas de organizacioacuten se presentan usando variables conrestricciones fuertes y restricciones suaves Estas pueden ser agrupadas en la abstraccioacutendel problema de organizacioacuten Asiacute tiacutepicamente el tiempo de comienzo y fin y laduracioacuten de cada actividad se representan por variables con restricciones Los dominiosde estas variables son el rango de tiempo de intereacutes en la organizacioacuten requerida

Capiacutetulo 4 Anaacutelisis y Disentildeo

CAPIacuteTULO 4

ANAacuteLISIS Y DISENtildeO

41 Recopilacioacuten de informacioacuten

bull Documentos recopilados

bull Cataacutelogo de asignaturas prerrequisitos y semestrebull Cataacutelogo de aulas y su capacidadbull Cataacutelogo de catedraacuteticos horas disponiblesbull Mapa reticular de la carrerabull Reporte de grupos abiertos en periodo actualbull Reporte de alumnos por grupo en periodo actualbull Reporte de alumnos no inscritos por materia y semestrebull Reporte de simulacioacuten (si todos aprobaran sus cursos)bull Reporte del iacutendice de reprobacioacuten del semestre anteriorbull Encuesta aplicada para determinar los conocimientos requeridos

para impartir una materiabull Encuesta aplicada para obtener los conocimientos de cada

catedraacuteticobull Aacuterbol de conocimiento realizado para determinar los grupos por

abrir de cada asignaturabull Aacuterbol de conocimiento del perfil de las asignaturasbull Aacuterbol de conocimiento del perfil de los catedraacuteticosbull Aacuterbol de conocimiento de los criterios de apertura de materia

bull El proceso de la elaboracioacuten de los horarios

1 Elaboracioacuten de los reportes estadiacutesticos del periodo actual(grupos abiertos alumnos por grupo alumnos no inscritos pormateria simulacioacuten iacutendice de reprobacioacuten)

2 Caacutelculo de la estimacioacuten de alumnos por materia del proacuteximoperiodo

3 Caacutelculo del nuacutemero de grupos por materia requeridos para elproacuteximo periodo

4 Ajuste de los grupos por materia requeridos para el proacuteximoperiodo

5 Formacioacuten de los grupos en paquetes por semestre6 Asignacioacuten de hora y aula a los grupos

Capiacutetulo 4 Anaacutelisis y Disentildeo

7 Seleccioacuten de catedraacutetico al grupo y viceversa8 Ajustes en hora aula y catedraacutetico por grupo9 Elaboracioacuten del reporte condensado para publicacioacuten de horarios10 Elaboracioacuten de los reportes de grupos sin maestro maestros con

horas disponibles grupos sin aula

Para elaborar los horarios de los grupos y maestros un semestre determinado se tienenen consideracioacuten los siguientes elementos

bull El estadiacutestico de Servicios Escolares (SE)El departamento de SE cuenta con un sistema que registra todo el historial acadeacutemicode los alumnos inscritos en el ITZ las materias cursadas y sus calificaciones lasdiferentes carreras con su retiacutecula de asignaturas y sus prerrequisitos los grupos delsemestre actual la cantidad de alumnos en cada grupo de una asignatura los iacutendicesde reprobacioacuten de semestres anteriores las materias que puede cursar un alumno elproacuteximo semestre etceacutetera Toda esta informacioacuten plasmada en reportesdiferentes es la base para la generacioacuten de los horarios del proacuteximo semestre

bull Los grupos requeridosSobre la base de operaciones aplicadas a la informacioacuten estadiacutestica se obtiene lacantidad de grupos requeridos para abrirse el proacuteximo semestre este nuacutemero degrupos es la cantidad oacuteptima con la que se podraacuten inscribir los alumnos sin tenerproblemas de falta de espacio el alterar disminuyendo o aumentando el nuacutemero degrupos requeridos puede ocasionar alumnos con carga crediticia menor a lareglamentaria o que existan grupos con menos de 10 alumnos respectivamente

bull Las aulasEl ITZ cuenta con 52 aulas repartidas entre las 8 carreras a cada coordinador decarrera se le asigna determinado numero de aulas para su administracioacuten asiacute que alasignar el aula a cada grupo debe cuidar la correcta distribucioacuten de los grupos en loshorarios correspondientes y que la capacidad de las aulas no rebase el numero dealumnos inscritos

bull Los maestros y departamentosCada departamento esta formado por un jefe y los catedraacuteticos que forman laacademia de cada carrera los profesores pueden ser de tiempo completo frac34 y frac12tiempo o profesores de asignatura cada uno tiene un horario predeterminado en turnomatutino o vespertino los catedraacuteticos de un departamento cubren las asignaturas desu carrera y apoyan a otras carreras a cubrir las materias que tienen el perfil de esaacademia los catedraacuteticos son uno de los recursos mas difiacuteciles de controlar

Restricciones propias de los profesores

o Materia no tiene maestro

o Maestro tiene horas disponibles

Capiacutetulo 4 Anaacutelisis y Disentildeo

o Maestro tiene materias preferencia

o Maestro ha impartido materia

o Maestro solicita materia

o Maestro tiene restricciones de nuacutemero de materias a impartir

o Restriccioacuten no pueden darse maacutes de tres materias diferentes

o Maestro tiene una profesioacuten

o Maestro tiene un perfil

o Maestro tiene un aacuterea definida

o Maestro prefiere materias especialidad

o Maestro prefiere materias semestres iniciales

bull Las materias o asignaturasEn cada carrera se tiene un mapa reticular que tiene las materias de cada semestre elnombre los creacuteditos las horas de teoriacutea y praacutectica las ligas con los prerrequisitos lasmaterias de la especialidad seleccionada etc

Restricciones propias de las asignaturas

o Materia de 1deg semestre

o Materia de 2deg semestre

o Materia de 3deg semestre

o Materia de 4deg semestre

o Materia de 5deg semestre

o Materia de 6deg semestre

o Materia de 7deg semestre

o Materia de 8deg semestre

o Materia de 9deg semestre

o Materia de especialidad

o Materia tiene prerrequisito

o Materia es de baacutesicas

o Materia requiere conocimientos de Base de Datos

o Materia requiere conocimientos de Electroacutenica

o Materia la puede impartir cualquier maestro

Capiacutetulo 4 Anaacutelisis y Disentildeo

o Materia requiere conocimientos de Redes

o Materia requiere ser impartida por ingeniero

o Materia tiene complejidad alta

o Materia debe ser impartida por catedraacutetico con grado de maestriacutea

o Materia requiere conocimientos de Arquitectura de Computadoras

o Materia no tiene cadenas

o Materia de Administracioacuten

o Materia de Ingenieriacutea Industrial

o Materia requiere conocimientos de Aacutelgebra

o Materia requiere conocimientos de Caacutelculo Diferencial e Integral

o Materia requiere conocimientos de Quiacutemica Inorgaacutenica y Orgaacutenica

o Materia requiere una elaboracioacuten de proyectos

bull Las carrerasLas 8 carreras que se imparten en el ITZ son ordenadas por nuacutemero de alumnos

1 Ingenieriacutea en Sistemas Computacionales2 Licenciatura en Informaacutetica3 Licenciatura en Administracioacuten4 Ingenieriacutea Civil5 Ingenieriacutea Electromecaacutenica6 Ingenieriacutea Industrial7 Ingenieriacutea Quiacutemica8 Ingenieriacutea Bioquiacutemica

bull Los horarios de grupoUna vez determinados los grupos requeridos para el proacuteximo semestre se procede a laasignacioacuten de horario de acuerdo al nuacutemero de horas teoacuterico-praacutecticas se le asignaaula y un catedraacutetico responsable se fija tambieacuten un nuacutemero de alumnos y el tiempode laboratorio en caso de ser necesario

Capiacutetulo 4 Anaacutelisis y Disentildeo

Diagrama de flujo del proceso

Elaboracioacuten de los reportes estadiacutesticos

Caacutelculo de alumnos por materiaproacuteximo periodo

Caacutelculo del nuacutemero de grupos pormateria requeridos

Ajuste de los grupos por materiarequeridos

Formacioacuten de los grupos en paquetespor semestre

Asignacioacuten de hora y aula a los grupos

Asignacioacuten de catedraacutetico al grupo

Ajustes en hora aula y catedraacutetico porgrupo

Elaboracioacuten del reporte condensado

Elaboracioacuten de reportes varios

Todo cuadrabien

Si

No

Fin

Inicio

Capiacutetulo 4 Anaacutelisis y Disentildeo

42 Anaacutelisis de la informacioacuten

bull Cataacutelogo de asignaturas prerrequisitos y semestre

Funcioacuten Dar a conocer las asignaturas de una carrera los prerrequisitos de las materiasy el semestre al que pertenece una asignatura los creacuteditos miacutenimos que debe tenerun alumno para cursar la asignatura

Origen Reporte emitido por el departamento de Servicios Escolares

Campos del reporte nombre carrera nombre asignaturas creacuteditos miacutenimos materiasprerrequisito semestre al que pertenece la asignatura

bull Cataacutelogo de aulas y su capacidad

Funcioacuten Dar a conocer la nomenclatura y capacidad de las aulas y laboratorios del ITZ

Origen Departamento de Planeacioacuten

Campos del reporte Nombre del edificio nuacutemero de aula capacidad

bull Cataacutelogo de catedraacuteticos horas disponibles

Funcioacuten Dar a conocer los catedraacuteticos por departamento y sus horas disponibles frentea grupo

Origen Departamentos acadeacutemicos

Campos del reporte Nombre del departamento clave de profesor nombre del profesorcantidad de horas frente a grupo que debe tener

bull Mapa reticular de la carrera

Funcioacuten Mostrar el mapa reticular de una carrera graacuteficamente muestra las asignaturaspor semestre sus requisitos foacutermula crediticia etc

Origen Divisioacuten de Estudios Profesionales

Campos del reporte Nombre y clave de la carrera nombre y clave de las asignaturasfoacutermula crediticia (nuacutemero de horas teoacutericas nuacutemero de horas praacutecticas creacuteditos dela asignatura) las materias prerrequisito de otras materias de especialidad semestrede la asignatura nuacutemero de creacuteditos necesarios para poder cursar una asignatura

Capiacutetulo 4 Anaacutelisis y Disentildeo

bull Reporte de grupos abiertos en periodo actual

Funcioacuten Muestra los cursos que son ofertados en el periodo actual

Origen Departamento de Servicios Escolares

Campos del reporte Nombre de la carrera nombre de las asignaturas grupo de loscursos cantidad de alumnos inscritos nombre del catedraacutetico que lo imparte

bull Reporte de alumnos por grupo en periodo actual

Funcioacuten Muestra la cantidad de alumnos inscritos por semestre de una carrera

Origen Departamento de Servicios Escolares

Campos del reporte Nombre de la carrera semestres del 1 al 13 nuacutemero de alumnosinscritos por semestre

bull Reporte de alumnos no inscritos por materia y semestre

Funcioacuten Muestra los alumnos que pudieron inscribirse a una materia pero que poralguna razoacuten no lo hicieron

Origen Departamento de Servicios Escolares

Campos del reporte Nombre de la carrera nombre de la materia por semestre nuacutemerode alumnos que pudieron inscribirse y no lo hicieron

bull Reporte de simulacioacuten (si todos aprobaran sus cursos)

Funcioacuten Este reporte simula que todos los alumnos inscritos en los cursos acreditan elcurso entonces cuenta cuantos estudiantes pueden cursar todas las asignaturas comosi hubieran aprobado todos sus cursos actuales

Origen Departamento de Servicios Escolares

Campos del reporte Nombre de la carrera nombre de la asignatura y por semestre elnuacutemero de alumnos que pueden cursar una materia

bull Reporte del iacutendice de reprobacioacuten del semestre anterior

Funcioacuten Dar a los coordinadores los iacutendices de aprobacioacuten y reprobacioacuten de los cursosdel periodo anterior

Capiacutetulo 4 Anaacutelisis y Disentildeo

Origen Departamento de Servicios EscolaresCampos del reporte Nombre de la carrera nombre de la asignatura total de alumnos

aprobados total de alumnos reprobados del periodo anterior

bull Encuesta de conocimientos requeridos para impartir asignatura

Funcioacuten Obtener los datos de los conocimientos que debe poseer un catedraacutetico quequiera impartir una asignatura

Origen Academia de cada departamentoCampos del reporte Nombre de la asignatura objetivo de la asignatura carrera lista de

conocimientos requeridos para impartir la asignatura carrera adecuada del profesorque imparta la asignatura

bull Encuesta de conocimientos requeridos para perfil de profesores

Funcioacuten Obtener los datos de los conocimientos que debe posee un catedraacutetico

Origen Academia de cada departamento

Campos del reporte Nombre del catedraacutetico carrera del catedraacutetico conocimientos enaacutereas particulares de cada asignatura

43 Solucioacuten definida

Resolver el problema iniciando con la metodologiacutea ldquodivide y venceraacutesrdquo el problemageneral se dividiraacute en 6 problemas particulares

a) Sistema de Informacioacuten para control de horariosb) Sistema Experto para definicioacuten y generacioacuten de grupos

por abrirc) Moacutedulo Programacioacuten Loacutegica de Restricciones para

asignar horario a los gruposd) Moacutedulo Algoritmos Geneacuteticos para asignar aula a los

grupos ya definidose) Sistema Experto para definir catedraacutetico para

asignaturaf) Sistema Experto para asignar asignatura a catedraacutetico

Debido a la naturaleza y caracteriacutesticas de la informacioacuten todos lossistemas seraacuten realizados iniciando desde cero la recopilacioacuten deinformacioacuten el anaacutelisis el disentildeo y la programacioacuten de cada moacutedulo delsistema programado en Visual Basic y Bases de Datos en Access

Capiacutetulo 4 Anaacutelisis y Disentildeo

La principal ventaja de eacutesta opcioacuten es que el sistema estaacute hecho a la medida de lasnecesidades de la institucioacuten poniendo las restricciones en el formato que se tienenactualmente la desventaja es que se debe desarrollar TODO el sistema

44 Requerimientos del sistema

Los Motores de Inferencias deben ser disentildeados con las siguientes caracteriacutesticas

bull Buacutesqueda de primero en profundidad en ocasiones cuando se interactuacutee con elusuario este tipo de buacutesqueda seraacute utilizado para recorrer toda la base deconocimiento

bull Buacutesqueda heuriacutestica en la que el usuario deberaacute dar datos iniciales de por dondeempezar la buacutesqueda de alguna informacioacuten

bull Tomar informacioacuten de la Base de Conocimiento y guardarla en las bases de datos ytambieacuten inferir la informacioacuten y guardarla en las bases de datos para su posteriortratamiento e impresioacuten

bull Seleccionar la mejor opcioacuten y presentarla al usuario para los casos en que el usuariodecida cambiar alguacuten dato la maacutequina deberaacute presentar una opcioacuten y saber indicarel porqueacute la ldquoeligioacuterdquo

bull Dar otras soluciones ademaacutes de la oacuteptima teniendo porcentajes de aceptacioacuten paracada solucioacuten y permitiendo la buacutesqueda de maestros a impartir materias aulas paraalguacuten grupo o cantidad de grupos a abrir

bull Dar resultados en lenguaje natural de modo que el usuario entienda claramente loque la maacutequina le comunica

bull Trabajar interactivamente con el usuario para que eacuteste pueda cuestionar el porqueasignoacute un maestro abrioacute grupos asignoacute un aula etceacutetera

bull Tener capacidad para el uso del paradigma basado en analogiacuteas ldquoSi un maestro yadio la materia en alguacuten semestre entonces puede darla en este semestrerdquo o bien ldquoSieste paquete de materias estaacute completo entonces repite todo el paquete estesemestrerdquo

Interfaz de Usuario recibe y entrega informacioacuten interactuando con el usuario esdecir el usuario puede

1) alimentar hechos2) solicitar resultados y reportes3) cuestionar coacutemo se obtuvieron ciertas conclusiones

La interfaz de usuario debe tener las caracteriacutesticas siguientes

bull Comunicarse en el lenguaje del usuario sea un humano u otro dispositivobull Recibir hechos del usuario y almacenarlos en la base de hechosbull Presentar de manera amigable los objetivos a buscar e inferencias en pantallabull Dar de manera clara la explicacioacuten de la inferencia realizada

Capiacutetulo 4 Anaacutelisis y Disentildeo

bull Dar resultados por escrito en informesbull Proporcionar al usuario la facilidad de alimentar la base de conocimientosbull Dar al usuario la facultad de corregir las inferenciasbull Si el usuario es inexperto facilitar la ayuda necesaria

Seleccioacuten del lenguaje de programacioacuten

Visual Basic 60 proporciona a los programadores facilidad para desarrollar aplicacionescomplejas en poco tiempo (comparado con lo que cuesta programar en Visual C++ porejemplo)

El sistema necesita interfaces amigables al usuario con ventanas y botones emergentesen cualquier momento y Visual Basic 60 es una herramienta de disentildeo de aplicacionespara Windows en la que eacutestas se desarrollan en una gran parte a partir del disentildeo de unainterfaz graacutefica (pudiendo incorporar todos los elementos de este entorno informaacuteticoventanas botones cajas de diaacutelogo y texto botones de opcioacuten y de seleccioacuten barras dedesplazamiento graacuteficos menuacutes etc) En una aplicacioacuten Visual Basic 60 el programaestaacute formado por una parte de coacutedigo puro y otras partes asociadas a los objetos queforman la interfaz graacutefica Visual Basic 60 permite la programacioacuten de sus ventanasbotones y componentes de manera maacutes faacutecil que Java con sus Applets

En la parte del sistema de control de horarios que es un sistema de informacioacuten comuacutenlos programas que llenan de informacioacuten las bases de datos son muy parecidos unos conotros al hacer los procesos de altas bajas modificaciones consultas y validaciones seutilizan las ventajas que Visual Basic 60 ofrece de la Programacioacuten Orientada aObjetos (POO) eacutesta es una forma de programacioacuten que utiliza objetos ligados mediantemensajes para la solucioacuten de problemas Puede considerarse como una extensioacuten naturalde la programacioacuten estructurada en un intento de potenciar los conceptos demodularidad y reutilizacioacuten de coacutedigo Las caracteriacutesticas fundamentales de la POO sonabstraccioacuten encapsulamiento herencia y polimorfismo

Visual Basic 60 soporta la abstraccioacuten la encapsulacioacuten el polimorfismo y lareutilizacioacuten de coacutedigo Los objetos de Visual Basic estaacuten encapsulados es decircontienen su propio coacutedigo y sus propios datos

Manejador de Base de datos para el almacenamiento de la informacioacutenEl manejador de base de datos a utilizar seraacute Microsoft Access debido a que los usuariosque alimentan la base de conocimientos son expertos en diferentes aacutereas delconocimiento y tiene conocimientos limitados de los diferentes manejadores y estaacuten maacutesfamiliarizados con Microsoft Access Ademaacutes de que Access es transportablefaacutecilmente

Ademaacutes la cantidad y tipo de informacioacuten que se almacena en las tablas no requieremanejadores de bases de datos potentes o con caracteriacutesticas especiales

Capiacutetulo 4 Anaacutelisis y Disentildeo

Sistemagenerador dehorarios

SistemaExperto

Reglas

Criterios

Criterios por regla Conocimiento

Procesos

Capturaestadiacutesticas

Calcula grupos

Ajusta grupos

Sistema expertoasigna materia

Sistema Expertoasigna maestro

Asigna materia

Asigna catedraacutetico

Conocimientos

Procesos

Materias

Perfil general

Catedraacuteticos

Perfil materias

Perfil maestro

Asignacioacutenmateria-maestro

Asignacioacutenmaestro-materia

Buacutesqueda independiente

B adelante

B atraacutes

Abduccioacuten

Explicacioacuten

MoacuteduloPLR

Asigna horario

Datos

Arbol derestricciones Procesos

Materia

Grupos

Paquetes

Horario

Restriccioacuten 1

Restriccioacuten 3

Restriccioacuten 2

Restriccioacuten N

Genera random

Evaluacutea restricciones

Guarda grupo

MoacuteduloAlgoritmoGeneacutetico

Asigna aula

Operadores Geneacuteticos

Evaluacioacuten

Cruzamiento

Seleccioacuten

Mutacioacuten

Poblacioacuten Inicial

Versioacuten 1

Versioacuten 2

Versioacuten 3

Versioacuten N

Condensadodatos grales

Materia

Hora

Aula

Control escolar

Sistema deInformacioacuten

Aulas

Horarios

Grupos

Maestros

Datosestadiacutesticos

Datosgenerales

Datos condensado

Materias

45 MAPA CONCEPTUAL DEL PROYECTO

Capiacutetulo 4 Anaacutelisis y Disentildeo

Capiacutetulo 4 Anaacutelisis y Disentildeo

En la Figura 41 se muestra el mapa conceptual del proyecto La burbuja centralrepresenta el sistema generador de horarios y cada rama representa uno de los seismoacutedulos que lo componen las burbujas de cada rama contienen a su vez variasramificaciones en las que se muestran de manera graacutefica los componentes maacutesrepresentativos de los procesos utilizados la informacioacuten que manejan el conocimientoque utilizan y las restricciones involucradas

El moacutedulo Servicios Escolares contiene informacioacuten necesaria para la administracioacuten delos horarios en general y proporciona los datos para el funcionamiento de los demaacutesmoacutedulos

El moacutedulo Sistema Experto Creacioacuten de Grupos (SECG) muestra el conocimiento yprocesos utilizados para definir la cantidad de grupos a ofertar a partir de la informacioacutenestadiacutestica proporcionada por servicios escolares maacutes adelante en el documento seexplica a detalle su funcionamiento

En la Figura 41 se aprecia que los moacutedulos Sistema Experto AsignaCatedraacutetico(SEAC) y Sistema Experto Asigna Materia(SEAM) comparten las bases deconocimiento porque el conocimiento de un SE es la base de hechos del otro en amboscasos los procesos difieren solamente en la informacioacuten que utilizan y en los resultadosque producen noacutetese que existe un proceso que es ldquobuacutesqueda independienterdquo que puedecatalogarse como un Sistema Experto adicional que sirve para sugerir las asignaturasque puede impartir una persona que no estaacute dentro de las bases de datos de maestros ypor lo tanto su perfil tampoco estaraacute capturado en esta caso los hechos (su perfil deconocimientos) es capturado en el momento de la consulta

El moacutedulo de Algoritmos Geneacuteticos (AG) muestra los datos que recibe como se generauna poblacioacuten inicial el tratamiento que se le aplica por medio de los operadoresgeneacuteticos y la informacioacuten que se genera

Por uacuteltimo en la Figura 41 se nota tambieacuten el moacutedulo donde se utiliza la ProgramacioacutenLoacutegica de Restricciones que contiene 3 ramas donde una representa los datos recibidosy la informacioacuten generada otra rama denota un aacuterbol de restricciones que deben sersatisfechas por los paquetes de horarios la uacuteltima rama denota los procesos que se llevana cabo debe notarse que existe un proceso aleatorio que genera cada grupo un procesoque evaluacutea el grupo contra las restricciones y uno mas que guarda los grupos quecumplieron con todas

En este mapa conceptual no se muestra en que orden se ejecuta cada moacutedulo delproyecto la Figura 42 ilustra la secuencia de ejecucioacuten de los moacutedulos

La Figura 42 muestra el diagrama con la secuencia en que se van ejecutando losprocesos los datos que ingresan a cada moacutedulo y la informacioacuten que genera

Capiacutetulo 4 Anaacutelisis y Disentildeo

452 MAPAS CONCEPTUALES DE LOS MOacuteDULOS

Servicios Escolares

Datos Estadiacutesticos

Sistema Experto Creacioacuten de Grupos

Materias y grupos requeridos

Moacutedulo PLR

Materia + grupo + hora

Moacutedulo AG

Materia + grupo + hora + aula

Sistema ExpertoAsigna Catedraacutetico Sistema Experto

Asigna Materia

Sugiere profesorpara asignaturas

Sugiere asignaturapara profesor

Materia + grupo + hora + aula +profesor

Condensado final de materias

1

2

3

4

5 6

Fig 42 Diagrama de secuencia

Capiacutetulo 4 Anaacutelisis y Disentildeo

Como puede verse todo inicia cuando Servicios Escolares enviacutea la informacioacuten a laDivisioacuten de Estudios Profesionales (donde ldquohabitanrdquo los coordinadores) quienes son losresponsables de la elaboracioacuten de los horarios

Un primer proceso captura la informacioacuten que proviene de Servicios Escolares elsegundo moacutedulo define cuantos grupos deben programarse el tercer proceso asigna lahora a cada grupo el cuarto moacutedulo es el proceso que asigna las aulas los procesosquinto y sexto sirven para sugerir queacute catedraacutetico es el maacutes adecuado para cada grupo ycomo resultado final se tiene el condensado final de horarios para el siguiente semestre

En la Figura 43 se muestran los componentes del primer Sistema Experto utilizado paradefinir la cantidad de grupos que deben ofertarse el proacuteximo semestre en la partesuperior izquierda de la figura esta el coordinador de la carrera quien es el encargado decargar el conocimiento a las Bases de Conocimiento utilizando la interfaz de experto esla persona indicada para definir los criterios que tiene cada materia define las reglaspara la agrupacioacuten de los criterios y define en cada regla que tipo de ajuste se realiza

Experto

Coordinador

Interfaz Experto

Base deConocimientos

CriteriosReglasAjustes

Motor de Inferencia ListasMateriasGrupos requeridos

UsuarioMoacutedulo Explicacioacuten

Usuario(coordinador

novato)

Interfaz Usuario

Base Hechos

Informacion Estadiacutestica

Fig 43 Sistema Experto Generador de Grupos

Capiacutetulo 4 Anaacutelisis y Disentildeo

El usuario en la parte inferior de la figura puede ser el coordinador o su asistente y seencarga de capturar la informacioacuten estadiacutestica proporcionada por servicios escolares queson los datos de alumnos inscritos actualmente en cada materia el iacutendice de reprobacioacutenlos alumnos inscritos en la materias prerrequisito una simulacioacuten de los alumnosprobables para cursar esa materia si todos los inscritos aprueban todo y los alumnos quepueden cursar las materias pero no se inscribieron

Con los datos anteriores se realiza la siguiente operacioacuten

(Inscritos en materia iacutendice de reprobacioacuten de materia) 100 +Alumnos no inscritos +Alumnos en prerrequisito ndash (alumnos en prerrequisito iacutendice de reprobacioacuten) 100 +(Simulacioacuten ndash alumnos en prerrequisito ndash no inscritos) = Alumnos del proacuteximo semestre

Este uacuteltimo dato (alumnos del proacuteximo semestre) proporciona la cantidad de alumnospor materia que pueden inscribirse en los grupos seguacuten los estadiacutesticos de ServiciosEscolares pero no contempla preferencias de alumnos conveniencia de inscripcioacuten etc

Ofrecer los grupos necesarios para la inscripcioacuten de alumnos tomando el dato calculadoocasiona que al terminar las inscripciones existan grupos vaciacuteos grupos sobresaturadosalumnos con pocas materias y varios problemas mas

La finalidad de este Sistema Experto es realizar un ajuste al dato calculadoanteriormente para incluir en su caacutelculo todas aquellas caracteriacutesticas y experiencia delcoordinador para minimizar los problemas mencionados en el paacuterrafo anterior

Los ajustes pueden ser de varios tiposbull Ajuste draacutestico hacia abajo Se aplica una reduccioacuten del 50 al dato calculadobull Ajuste hacia arriba Se agrega un grupo maacutes al dato calculadobull Ajuste hacia abajo Se resta un grupo al dato calculadobull Ajuste numeacuterico Se ajusta utilizando la regla del redondeo de decimalesbull Ajuste draacutestico hacia arriba Se suman 2 oacute 3 grupos al dato calculado

Cuando utilizar una u otra regla estaacute definido por los criterios que cada materia contienenaturalmente y que con el paso de los semestres puede variar (aunque tambieacuten puedenpasar antildeos sin sufrir ninguacuten cambio)

La Figura 44 describe la utilizacioacuten de la teacutecnica de la Inteligencia Artificial llamadaProgramacioacuten Loacutegica de Restricciones para generar el condensado de grupos a partir deuna lista de materias que contiene solamente el nombre y la cantidad de grupos que sedeben abrir de una materia

Capiacutetulo 4 Anaacutelisis y Disentildeo

EoseX

Ugacgg

Lgc

s

ListasMaterias

Procesoformador depaquetes

Lista grupo +paquete

Moacutedulo generadorRandom Hora

Restricciones satisfec

Restriccio

Materia +hora

Moacuteduloverificadorrestriccione

s

Restriccionesnosatisfechas

Fig 44 Diagrama del moacutedulo Programacioacuten Loacutegica de Restriccione

xiste un proceso inicial que forma los ldquopaquetesrdquo de grupos esto es las materias serdenan por el semestre al que corresponden (generalmente son 6 materias poremestre) despueacutes para cada semestre se generan los grupos correspondientes si porjemplo se deben hacer 3 grupos de la materia X se generan tres registros de la materia y cada registro se etiqueta

Materia X grupo AA Materia X grupo AB y Materia X grupo AC

na vez que todas las materias han sido generadas y ldquoempaquetadasrdquo se pasan alenerador de horario en bloques de un paquete a la vez Este proceso funcionasignando un horario aleatorio a cada grupo despueacutes se verifica que cada grupo cumplaon todas las restricciones que son del tipo grupo no ldquochocardquo con otro del paqueterupo proporciona horario continuo al paquete grupo tiene horario de 2 horas por diacutearupo no deja horas vaciacuteas en paquete grupo cumple con todas sus horas asignadas etc

a Figura 45 muestra el disentildeo del Algoritmo Geneacutetico utilizado para asignar aula a losrupos que provienen del moacutedulo anterior (PLR) y recibe como datos de entrada unondensado de horarios (materia + grupo + hora)

Capiacutetulo 4 Anaacutelisis y Disentildeo

Procesoevaluacioacuten

Condensado

Materia +Grupo +Hora

Generador de versiones aleatorias

Genera versioacuten asigna aula

Versioacuten 3

Versioacuten 2

Versioacuten 1

Versioacuten N

Poblacioacuten inicial

ProcesoseleccioacutenProceso cruzamiento

clonacioacuten mutacioacuten

Versioacuten z

Versioacuten y

Versioacuten x

Versioacuten w

Nueva generacioacuten

Individuos aptos

Individuos no aptosReciclaje

CondensadoMateria + grupo +hora + aula

Fig 45 Diagrama del moacutedulo Algoritmo Geneacutetico

Capiacutetulo 4 Anaacutelisis y Disentildeo

Esta rama de la Inteligencia Artificial es utilizada generalmente para procesos deoptimizacioacuten y en esta ocasioacuten se utiliza para asignar las aulas al condensado dematerias

Al inicio se reciben como datos generales el condensado de materias La poblacioacuteninicial se obtiene copiando N veces (N versiones) este condensado y agregando a cadaregistro el nuacutemero de versioacuten y un aula asignada de manera aleatoria de esta manera seobtienen N versiones diferentes del condensado original

Cada versioacuten es entonces evaluada contando el nuacutemero de choques en aula y la cantidadde espacios vaciacuteos por aula a cada versioacuten se le genera un vector para guardar laevaluacioacuten (cromosoma de evaluacioacuten) y de esta manera se mide el grado de aptitud quetiene cada versioacuten

Las versiones que tienen menos choques y menos espacios vaciacuteos se consideran con ungrado de aptitud alto y son las mejores al contrario las que tienen muchos choquesson consideradas de aptitud baja no sirven para la reproduccioacuten y son desechadas

Una vez seleccionadas la mejores versiones se procede a la aplicacioacuten de los operadoresgeneacuteticos el primero que se aplica es el cruzamiento y consiste en elegir dos versionesde alta aptitud tomar segmentos seleccionados heuriacutesticamente de ellas y formar unnuevo individuo (una nueva versioacuten) se repite este proceso Y veces con las diferentesversiones hasta tener una nueva generacioacuten de N condensados de horarios

Repetir este proceso de generacioacuten evaluacioacuten y seleccioacuten durante Z generacionesaplicando cuando se necesite la clonacioacuten que es un proceso de copiar completamenteuna versioacuten (con alto grado de aptitud) a la nueva generacioacuten

Al principio la convergencia hacia horarios sin choques en aula es raacutepida pero al pasode las generaciones disminuye entonces se debe usar la mutacioacuten que es un proceso deacceder manualmente los registros de alguna versioacuten Zi en la generacioacuten Z y corregiralguacuten aula al final despueacutes de varias generaciones selecciones cruzamientosclonaciones y mutaciones se obtiene un condensado de aulas libres de choques y conpocos espacios vaciacuteos

En la Figura 46 se muestran los componentes del Sistema Experto utilizado para sugerircuales son los catedraacuteticos que mejor se desempentildeariacutean para impartir una asignaturatomando en cuenta los conocimientos que tiene un profesor (adquiridos a lo largo de sucarrera) y cuales son los conocimientos necesarios para impartir la caacutetedra de algunaasignatura

Capiacutetulo 4 Anaacutelisis y Disentildeo

Todo inicia haciendo una encuesta a los profesores acerca del perfil y los conocimientosnecesarios para poder impartir una asignatura el objetivo de la misma y los principalestemas que abarca todo lo anterior se captura en la base de hechos como el perfil de lamateria

Posteriormente se hace otra encuesta a los profesores pidieacutendoles que seleccionencuales son los conocimientos y el grado de dominio que tienen de los diferentes toacutepicosde las asignaturas esto se convierte en el perfil del catedraacutetico Por uacuteltimo con unproceso de induccioacuten se determina para cada materia cual es el grado de certeza con elcual puede un profesor impartir una asignatura

Experto

Coordinador

Interfaz Experto

Base deConocimientos

CatedraacuteticosConocimientos profesorPerfil profesor

Motor de Inferencia Lista profesores paraimpartir una materia

Jefedepartamento

Moacutedulo Explicacioacuten

Usuario(coordinador

novato)

Interfaz Usuario

Base Hechos

Perfil

Fig 46 Diagrama de Sistema Experto para sugerir profesor a asignatura

Capiacutetulo 4 Anaacutelisis y Disentildeo

Noacutetese en la Figura 47 que el coordinador captura el conocimiento referente a lasasignaturas (objetivo temas caracteriacutesticas necesarias para impartirla) y este esalmacenado en la Base de Conocimientos

Por otro lado un profesor debe llenar una encuesta en la que indique cuales son lostemas que domina y en que porcentaje lo hace (esto es el perfil del catedraacutetico) estainformacioacuten se almacena en la base de hechos--

El Motor de Inferencia hace los matchs respectivos y genera una lista de las materias quepuede impartir un profesor y con que grado de certeza estaacute capacitado para hacerlo

Por uacuteltimo el moacutedulo de explicacioacuten informa el porqueacute dio esa inferencia mostrando lascaracteriacutesticas de materia y profesor que hicieron match

Fig 47 Diagrama de Sistema Experto para sugerir asignaturas para catedraacutetico

Experto

Coordinador

Interfaz Experto

Base deConocimientos

MateriasCaracteriacutesticas MateriasPerfil materia

Motor de Inferencia Lista materias para unprofesor

Profesor

Moacutedulo Explicacioacuten

Profesor nuevoInterfaz Usuario

Base Hechos Perfil profesor

Capiacutetulo 4 Anaacutelisis y Disentildeo

453 Diagrama de contextoEn la Figura 48 se detallan los elementos que intervienen aportando y recibiendoinformacioacuten para el funcionamiento del sistema

Los departamentos acadeacutemicos aportan al sistema una lista con los catedraacuteticos quelaboran ahiacute incluye los datos personales de los profesores nuacutemero de tarjeta nombrecarrera etc Los coordinadores de carrera son los responsables de la elaboracioacuten de loshorarios estos funcionarios son la pieza fundamental de este proceso porque aportan susconocimientos para

bull Definir el ajuste al dato estadiacutestico proporcionado por Servicios Escolaresbull Definir las restricciones para la creacioacuten de los paquetes de gruposbull Definir las restricciones para asignar hora a cada grupobull La distribucioacuten de los grupos en las aulasbull Asignar la asignatura que mejor puede impartir un catedraacuteticobull Asignarle a una asignatura al profesor que mejor puede impartirla

El departamento de Servicios Escolares es el iniciador del proceso de la elaboracioacuten dehorarios aporta los datos estadiacutesticos obtenidos de la situacioacuten escolar actual de losalumnos cada alumno estaacute inscrito en alguna de las 8 carreras que se ofrecen en elInstituto estaacute cursando entre 5 y 8 asignaturas por semestre en cada periodo acredita oreprueba algunas materias En cada carrera se tiene un mapa reticular que incluyeaproximadamente 50 asignaturas con prerrequisitos creacuteditos horas en aula horas enlaboratorio orden por semestre etc

El departamento Divisioacuten de Estudios Profesionales (donde estaacuten adscritos loscoordinadores de carrera) es el responsable de distribuir las aulas disponibles delInstituto entre los distintos coordinadores las aulas son un recurso escaso y por lo tantovalioso de esta distribucioacuten depende en gran medida la holgura o estrechez que tienenlos coordinadores para asignar las aulas a los grupos creados

Los profesores son otro de los recursos valiosos de una institucioacuten son los responsablesde transmitir sus conocimientos a los alumnos cada catedraacutetico posee conocimientos dediversas aacutereas toacutepicos y ramas del saber humano el perfil del catedraacutetico estaacute enrelacioacuten directa con el dominio que tiene de cada una de ellas y varia desde unconocimiento superficial hasta el dominio total de un aacuterea

Los generadores random de los moacutedulos PLR y AG proporcionan la informacioacutennecesaria generada de manera aleatoria para el funcionamiento de esos moacutedulos

A los coordinadores y alumnos se les proporciona un condensado de horarios losalumnos conocen los grupos a los que se pueden inscribir las horas las aulas y loscatedraacuteticos que las impartiraacuten

Capiacutetulo 4 Anaacutelisis y Disentildeo

Sistema para laelaboracioacuten de

horarios

Departamentosacadeacutemicos

Jefes dedepartamento

Divisioacuten deEstudios

Profesionales

DepartamentoServiciosEscolares

Alumnos

Coordinadoresde carrera

Coordinadoresde carrera

Lista catedraacuteticos disponibles

Conocimientos

Reporte datos estadiacutesticos

Lista aulas disponibles

Condensado de horarios

Horarios disponibles

Lista horarios profesores

Profesores Generadoresaleatorios

Perfil maestro

Horas y aulas aleatorios

Fig 48 Diagrama de contexto del proyecto

Cap

iacutetulo

4

Anaacute

lisis

y D

isentilde

o

Sist

ema

para

lael

abor

acioacute

n de

hora

rios

Dep

arta

men

tos

acad

eacutemic

os

Div

isioacute

n de

Estu

dios

Prof

esio

nale

s

Dep

arta

men

toSe

rvic

ios

Esco

lare

sC

oord

inad

ores

de c

arre

ra

List

a ca

tedr

aacutetic

os d

ispo

nibl

es

Con

ocim

ient

osR

epor

teda

tose

stad

iacutestic

osLi

sta

aula

s dis

poni

bles

Prof

esor

esG

ener

ador

esal

eato

rios

Perf

il m

aest

roH

oras

y a

ulas

Fig

49

Dia

gram

a de

func

ione

s fun

dam

enta

les (

entra

das)

Cap

tura

supe

rfil

deco

noci

mie

nto

Cap

tura

las

aula

s

Enviacute

a da

tos

Cap

tura

suco

noci

mie

nto

Enviacute

a da

tos

depr

ofes

ores G

ener

ada

tos

Cla

ve n

ombr

eho

ras

turn

o

Tips

tru

cos

cono

cim

ient

ohe

uriacutes

tico

Cla

ve c

apac

idad

ed

ifici

o

Alu

mno

sin

scrit

os

sim

ulac

ioacuten

no

insc

ritos

iacutend

ice

repr

obac

ioacuten

Toacutepi

cos y

tem

asqu

e do

min

aA

ula

y ho

raal

eato

rios

Capiacutetulo 4 Anaacutelisis y Disentildeo

Sistema para laelaboracioacuten de

horarios

Coordinadoresde carrera

Jefes dedepartamento Alumnos

Fig 410 Diagrama de funciones fundamentales (salidas)

Imprimecondensado

Imprime lista Imprimehorarios

Maestro materiahora

Materia grupohora aula

maestrosugerido

Condensado de horarios Horarios disponibles

Lista horarios profesores

Materia grupohora aula

maestro

Capiacutetulo 4 Anaacutelisis y Disentildeo

454 Diagrama entidad - relacioacuten

NOTA Los siguientes diagramas muestran las tablas utilizadas por cada moacutedulo paramayor claridad se repitieron las tablas necesarias para representar cada parte del sistemapero en la base de datos no existe tal duplicacioacuten

Este diagrama contiene las tablas del moacutedulo administrativo de los horarios en unprincipio eacutestas eran las uacutenicas tablas de un sistema de control de horarios

FK_HORARIOS_REFERENCE_MATERIASFK_MATERIAS_REFERENCE_SERVICIO

FK_MATERIAS_REFERENCE_RAMA_MAT FK_MATERIAS_REFERENCE_CARRERAS

HORARIOS

GrupoId_aulaHora_inicioHora_lunesHora_martesHora_miercolesHora_juevesHora_viernesHora_sabadoObservacionesPeriodoAnioid_materiaId_catedratico

Text(2)INTEGERINTEGERText(6)Text(6)Text(6)Text(6)Text(6)Text(6)Text(30)Text(20)INTEGERINTEGERSMALLINT

ltfk3gt

ltfk2gtltfk1gt

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave de asig prerequisitoclave de asig prerequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

MATERIAS

SERVICIOS_ESCOLARESId_materiaINSCRITOSNO INSCRITOSSIMULACIONPROXIMO SEMESTREGRUPOS REQUERIDOSIndice de reprobacionperiodoantildeoGrupos ajustadoAlumnos ajustadoId_ajusteId_regla

INTEGERSMALLINTSMALLINTSMALLINTSMALLINTDOUBLEDOUBLEText(7)INTEGERSMALLINTSMALLINTINTEGERSMALLINT

RAMA_MATERIA

Id_ramaNombre_rama

COUNTERText(30)

ltpkgt

CARRERAS

Id_CarreraNombre_carrera

Text(15)Text(50)

ltpkgt

Fig 411 Diagrama entidad ndash relacioacuten del moacutedulo administrativo

Capiacutetulo 4 Anaacutelisis y Disentildeo

Este diagrama muestra las tablas donde se almacena el conocimiento de loscoordinadores para que el Sistema Experto del moacutedulo sugiera y aplique el ajuste aldato de cantidad de grupos sugerido por Servicios Escolares La relacioacuten entre las tablasva generando las reglas de produccioacuten

MATERIAS

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave asig prerrequisitoclave asig prerrequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

REGLAS

DescriId_reglaId_ajusteTot_peso

Text(70)COUNTERINTEGERINTEGER

ltpkgtltfkgt

FK_MATERIAS_REFERENCE_SERVICIO

FK_HECHOS_R_REFERENCE_CRITERIO

FK_HECHOS_R_REFERENCE_REGLAS

FK_HISTORIA_REFERENCE_REGLAS

FK_HISTORIA_REFERENCE_CRITERIO

FK_REGLAS_REFERENCE_AJUSTES

FK_HISTORIA_REFERENCE_MATERIAS

FK_HISTORIA_REFERENCE_CRITERIO

SERVICIOS_ESCOLARES

Id_materiaINSCRITOSNO INSCRITOSSIMULACIONPROXIMO SEMESTREGRUPOS REQUERIDOSIndice de reprobacioacutenperiodoantildeoGrupos ajustadoAlumnos ajustadoId_ajusteId_regla

INTEGERSMALLINTSMALLINTSMALLINTSMALLINTDOUBLEDOUBLEText(7)INTEGERSMALLINTSMALLINTINTEGERSMALLINT

HECHOS_REGLAS

Id_criterioId_reglaPromedio

INTEGERINTEGERINTEGER

ltfk2gtltfk1gt

CRITERIOS

Id_criterioDescripcion

COUNTERText(60)

ltpkgt

HISTORIAL_CRITERIOS

Id_criterioId_reglaPeso de la regla

INTEGERINTEGERSMALLINT

ltfk2gtltfk1gt

AJUSTES

TipoDescripcionId_ajuste

Text(25)MemoCOUNTER ltpkgt

HISTORIAL_MATERIA

Id_materiaId_criterioprioridad

INTEGERINTEGERSMALLINT

ltfk2gtltfk1gt

Fig 412 Diagrama E-R del moacutedulo para determinar y ajustar nuacutemero de grupos

Capiacutetulo 4 Anaacutelisis y Disentildeo

En este diagrama se muestra la base de datos que almacena la informacioacuten quemanipula el moacutedulo Algoritmo Geneacutetico las tablas maacutes representativas sonPOBLACION donde se guardan todas las versiones que forman las generaciones dehorarios y CROMOSOMAS que almacena el registro de evaluacioacuten de cada versioacuten dehorarios

FK_HORARIO__REFERENCE_AULAS

FK_HORARIO__REFERENCE_POBLACIO

FK_MATERIAS_REFERENCE_TIPO_HOR

FK_POBLACIO_REFERENCE_AULAS

FK_POBLACIO_REFERENCE_MATERIAS

FK_POBLACIO_REFERENCE_CROMOZOM1 1

HORARIO_AULA

VersionAulaLunesMartesMiercolesJuevesViernesSabadoHoraId_aula

INTEGERText(6)SMALLINTSMALLINTSMALLINTSMALLINTSMALLINTSMALLINTSMALLINTINTEGER

ltfk2gt

ltfk1gt

AULAS

Id_aulaCapacidad_aulaNombre_aulaDisponible

COUNTERSMALLINTText(50)YesNo

ltpkgt

POBLACION

Id_materiaGrupoId_catedraticoAulaHora_inicioHora_lunesHora_martesHora_miercolesHora_juevesHora_viernesVersionId_aulaPeriodoAnio

INTEGERText(4)INTEGERText(4)INTEGERText(6)Text(6)Text(6)Text(6)Text(6)INTEGERINTEGERText(10)INTEGER

ltfk2gt

ltfk1gtltfk3gt

MATERIAS

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave de asig prerequisitoclave de asig prerequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

TIPO_HORARIO

Tipo_horario

DescripcionLunes

MartesMiercoles

Jueves

ViernesSabado

COUNTER

Text(20)SMALLINT

SMALLINTSMALLINT

SMALLINT

SMALLINTSMALLINT

ltpkgt

CROMOZOMAS

VersionSemestreChoquesVacias

INTEGERINTEGERINTEGERINTEGER

ltpkgt

Fig 413 Diagrama E-R del moacutedulo para asignar aulas (Algoritmo Geneacutetico)

Capiacutetulo 4 Anaacutelisis y Disentildeo

En esta Figura 414 se pueden observar las tablas involucradas en el proceso paragenerar los paquetes de materias por semestre y la asignacioacuten de horario a cada grupodel paquete utilizando la teacutecnica Programacioacuten Loacutegica de Restricciones noacutetese que noexiste una tabla de restricciones eacutestas se aplican por software a cada grupo generado

FK_MATERIAS_REFERENCE_SERVIC

FK_MATERIAS_REFERENCE_TIPO_H

FK_HORARIOS_REFERENCE_MATERI

MATERIA

Id_materiMateriNum de HrsNum de HrsClave deId_CarrerCreditoSemestrObservacioneTroncoalumnos porclave de asigclave de asigId_ramSuma_maOrdeTipo_horari

INTEGEText(40SMALLINSMALLINText(8Text(15SMALLINSMALLINText(60YesNSMALLINText(40Text(40INTEGESMALLINSMALLININTEGE

ltpkfk4

ltfk1

ltfk3

ltfk2

SERVICIOS_ESCOLARE

Id_materiINSCRITONOSIMULACIOPROXIMOGRUPOSIndice deperiodantildeGruposAlumnosId_ajustId_regl

INTEGESMALLINSMALLINSMALLINSMALLINDOUBLDOUBLText(7INTEGESMALLINSMALLININTEGESMALLIN

TIPO_HORARI

Tipo_horariDescripcioLuneMarteMiercoleJueveVierneSabad

COUNTEText(20SMALLINSMALLINSMALLINSMALLINSMALLINSMALLIN

ltpk

HORARIO

GrupId_aulHora_iniciHora_luneHora_marteHora_miercoleHora_jueveHora_vierneHora_sabadObservacionePeriodAniid_materiId_catedratic

Text(2INTEGEINTEGEText(6Text(6Text(6Text(6Text(6Text(6Text(30Text(20INTEGEINTEGESMALLIN

ltfk3

ltfk2ltfk1

Fig414 Diagrama E-R del moacutedulo para asignar horario (PLR)

Capiacutetulo 4 Anaacutelisis y Disentildeo

FK_HECHOS_M_REFERENCE_MATERIAS

FK_HECHOS_M_REFERENCE_CATEDRAT

HECHOS_MAT_PROF

Id_catedraticoId_materiaPromedio

SMALLINTSMALLINTSMALLINT

ltpkfk1gtltpkfk2gt

FK_PERFIL_C_REFERENCE_CATEDRAT

FK_PERFIL_C_REFERENCE_PERFILES

FK_PERFILES_REFERENCE_TIPO_PER

FK_PROF_PAR_REFERENCE_CATEDRAT

FK_PROF_PAR_REFERENCE_MATERIAS

PERFIL_CATEDRATICO

Id_catedraticoId_perfilPrioridad_perfil_cate

SMALLINTINTEGERSMALLINT

ltfk1gtltfk2gt

CATEDRATICOS

Id_catedraticoApellido_paternoApellido_maternoNombre_catedraticoTitulo_catedraticoSuma_cate

SMALLINTText(20)Text(20)Text(20)Text(30)SMALLINT

ltpkgt

PERFILES

Id_perfilId_tipoDescripcion_perfil

COUNTERINTEGERText(60)

ltpkgtltfkgt

TIPO_PERFIL

Id_tipoTipo_perfil

COUNTERText(30)

ltpkgt

PROF_PARA_MAT

Id_materiaId_catedraticoPorcentaje_cate

INTEGERSMALLINTSMALLINT

ltpkfk2gtltpkfk1gt

MATERIAS

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave de asig prerequisitoclave de asig prerequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

Fig 415 Diagrama E-R del moacutedulo designa mejor catedraacutetico (Sistema Experto)

Capiacutetulo 4 Anaacutelisis y Disentildeo

En las figuras de la paacutegina anterior y eacutesta (Fig 415 y 416) se muestran las tablasutilizadas por los Sistemas Expertos para sugerir que materias puede impartir unprofesor y tambieacuten sugiere que profesores pueden impartir una asignatura

FK_PERFILES_REFERENCE_TIPO_PER

FK_PERFIL_M_REFERENCE_MATERIAS

FK_PERFIL_M_REFERENCE_PERFILES

FK_MAT_PARA_REFERENCE_MATERIAS

FK_MAT_PARA_REFERENCE_CATEDRAT

FK_HECHOS_M_REFERENCE_MATERIAS

FK_HECHOS_M_REFERENCE_CATEDRAT

PERFILES

Id_perfilId_tipoDescripcion_perfil

COUNTERINTEGERText(60)

ltpkgtltfkgt

TIPO_PERFIL

Id_tipoTipo_perfil

COUNTERText(30)

ltpkgt

PERFIL_MATERIA

Id_materiaId_perfilPrioridad_perfil_mat

INTEGERINTEGERINTEGER

ltfk2gtltfk1gt

MATERIAS

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave de asig prerequisitoclave de asig prerequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

MAT_PARA_PROF

Id_catedraticoId_materiaPorcentaje_mat

SMALLINTINTEGERSMALLINT

ltpkfk1gtltpkfk2gt

CATEDRATICOS

Id_catedraticoApellido_paternoApellido_maternoNombre_catedraticoTitulo_catedraticoSuma_cate

SMALLINTText(20)Text(20)Text(20)Text(30)SMALLINT

ltpkgt

HECHOS_MAT_PROF

Id_catedraticoId_materiaPromedio

SMALLINTSMALLINTSMALLINT

ltpkfk1gtltpkfk2gt

Fig 416 Diagrama E-R del moacutedulo selecciona mejor materia (sistema experto)

Capiacutetulo 4 Anaacutelisis y Disentildeo

455 Diccionario de la Base de Datos

Nombre HORARIOS_CON_CONOCIMIENTOComentario Base de datos del sistema ldquoGeneracioacuten de horarios mediante Sistemas

Basados en ConocimientordquoDBMS Microsoft Access 97

Lista de Tablas

Nombre Tipo deObjeto

AJUSTES TableAULAS TableCARRERAS TableCATEDRATICOS TableCRITERIOS TableCROMOSOMAS TableHECHOS TableHECHOS_MAT_PROF TableHECHOS_PROF_MAT TableHECHOS_REGLAS TableHISTORIAL_CRITERIOS TableHISTORIAL_MATERIA TableHORARIO_AULA TableHORARIOS TableMAT_PARA_PROF TableMATERIAS TablePERFIL_CATEDRATICO TablePERFIL_MATERIA TablePERFILES TablePOBLACION TablePROF_PARA_MAT TableRAMA_MATERIA TableREGLAS TableSERVICIOS_ESCOLARES TableTIPO_HORARIO TableTIPO_PERFIL Table

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla AJUSTESFuncioacuten Almacena los datos de los tipos de ajuste que se aplican por el Sistema Experto al

dato estadiacutestico que define cuantos grupos se deben abrir de cada materia

Lista de columnas de la tabla AJUSTESNombre Tipo de

DatoLong Llave

Primaria ForaneaComentario

Tipo Text(25) 25 Nombre del tipo de ajusteDescripcioacuten Memo Explicacioacuten del ajuste a realizar al nuacutemero

de grupos calculados segun estadisticosId_ajuste COUNTER 4 X Identificador del ajuste

Tabla AULASFuncioacuten Almacena los datos de las aulas que existen en cada edificio del instituto

Lista de columnas de la tabla AULASNombre Tipo de

DatoLong Llave

Primaria ForaneaComentario

Id_aula COUNTER 4 X Identificador del aulaCapacidad_aula SMALLINT 4 Nuacutemero maacuteximo de alumnos en el

aulaNombre_aula Text(50) 50 Nombre del aula (edificio+numero)Disponible YesNo 1 Disponibilidad del aula

Tabla CARRERASFuncioacuten Almacena los datos de las carreras que se imparten en el ITZ

Lista de columnas de la tabla CARRERASNombre Tipo de

DatoLong Llave

Primaria ForaneaComentario

Id_Carrera Text(15) 15 X Clave de la carreraNombre_carrera Text(50) 50 Nombre de la carrera

Tabla CATEDRATICOSFuncioacuten Almacena los datos de los CATEDRAacuteTICOS que imparten clases en las diferentes carreras del

Instituto Se utilizan los datos en los Sistemas Expertos que definen cual es el mejor catedraacuteticopara impartir una materia

Capiacutetulo 4 Anaacutelisis y Disentildeo

Lista de columnas de la tabla CATEDRATICOSNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_catedratico SMALLINT 4 X Nuacutemero de tarjeta del catedraacuteticoApellido_paterno Text(20) 20 Apellido paterno del catedraacuteticoApellido_materno Text(20) 20 Apellido materno del catedraacuteticoNombre_catedratico Text(20) 20 Nombre del catedraacuteticoTitulo_catedratico Text(30) 30 Grado de estudios y tiacutetulo del

catedraacuteticoSuma_cate SMALLINT 4 Suma total de las pesos de los perfiles

pertenecientes al catedraacutetico

Tabla CRITERIOSFuncioacuten Tabla de los criterios utilizados por el experto para crear las reglas que definen el tipo de

ajuste inferido por el Sistema Experto para definicioacuten de grupos por abrir

Lista de columnas de la tabla CRITERIOSNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_criterio COUNTER 4 X Identificador del criterio aplicado auna materia para crear grupos

Descripcion Text(60) 60 Descripcioacuten del criterio

Tabla CROMOSOMASFuncioacuten Almacena los datos de la evaluacioacuten de cada versioacuten de horarios generada ya sea por la

poblacioacuten inicial o por los operadores geneacuteticos se genera un cromosoma por cadasemestre en cada versioacuten

Lista de columnas de la tabla CROMOSOMASNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Version INTEGER 4 X Nuacutemero de individuo o versioacuten dehorarios

Semestre INTEGER 4 Semestre al que pertenece el datoChoques INTEGER 4 Nuacutemero de choques de versioacuten y

semestreVacias INTEGER 4 Nuacutemero de aulas vaciacuteas del individuo

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla HECHOS_MAT_PROFFuncioacuten Esta tabla almacena el resultado de la inferencia del Sistema Experto materias para

profesor indica para cada catedraacutetico las materias y el porcentaje de certeza con quepuede impartirlas

Lista de columnas de la tabla HECHOS_MAT_PROFNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_catedratico SMALLINT 4 X Identificador del catedraacuteticoId_materia SMALLINT 4 X Identificador de la asignaturaPromedio SMALLINT 4 Porcentaje de certeza con que un

profesor puede impartir una materia(resultado de la inferencia)

Tabla HECHOS_PROF_MATFuncioacuten Almacena los datos de la inferencia del Sistema Experto que calcula para una materia

determinada cuales son los mejores maestros para impartirla

Lista de columnas de la tabla HECHOS_PROF_MATNombre Tipo de

DatoLongitud

LlavePrimaria Foraacutenea

Comentario

Id_catedratico SMALLINT 4 X Identificador del catedraacuteticoId_materia SMALLINT 4 X Identificador de la asignaturaPromedio SMALLINT 4 Porcentaje de certeza con que una

materia puede ser impartida por unprofesor (resultado de la inferencia)

Tabla HECHOS_REGLASFuncioacuten Almacena los porcentajes de certeza con que se dispara una regla del Sistema Experto

que define los grupos por abrir

Lista de columnas de la tabla HECHOS_REGLASNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_criterio SMALLINT 4 X Identificador del criterioId_regla SMALLINT 4 X Identificador de la reglaPromedio INTEGER 4 Porcentaje de certeza con que una

regla dispara un criterio

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla HISTORIAL_CRITERIOS

Funcioacuten Almacena las reglas formadas por los criterios utilizados por el Sistema Experto paradefinir los grupos por abrir

Lista de columnas de la tabla HISTORIAL_CRITERIOSNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_criterio INTEGER 4 X Identificador del criterio pertenecientea la regla

Id_regla INTEGER 4 X Identificador de la reglaPeso de la regla SMALLINT 4 Peso del criterio en la regla

Tabla HISTORIAL_MATERIAFuncioacuten Tabla que almacena la definicioacuten de cada materia con base en los criterios utilizados por

las reglas para definir por materia el nuacutemero de grupos por abrir

Lista de columnas de la tabla HISTORIAL_MATERIANombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materia para suasignacioacuten de criterios

Id_criterio INTEGER 4 X Identificador del criterio que se aplicaa la materia para describirla

Prioridad SMALLINT 4 Peso del criterio en la materia

Tabla HORARIOS

Funcioacuten Almacena los datos del condensado final de horarios aquiacute se almacena el producto finaldel sistema para su posterior publicacioacuten y distribucioacuten entre la comunidad tecnoloacutegica

Lista de columnas de la tabla HORARIOSNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materiaGrupo Text(2) 2 Identificador del grupo A B CId_catedratico SMALLINT 4 X Catedraacutetico asignado al grupoId_aula INTEGER 4 X Aula asignada al grupoHora_inicio INTEGER 4 Hora de inicio del grupoHora_lunes Text(6) 6 Horas que se imparte el grupo el diacutea

lunes

Capiacutetulo 4 Anaacutelisis y Disentildeo

Hora_martes Text(6) 6Hora_miercoles Text(6) 6Hora_jueves Text(6) 6Hora_viernes Text(6) 6Hora_sabado Text(6) 6Observaciones Text(30) 30 Observaciones al grupoPeriodo Text(20) 20 Periodo Ene-jun o Ago-dicAnio INTEGER 4 Antildeo en que se utiliza el horario

Tabla HORARIO_AULAFuncioacuten Tabla auxiliar utilizada como almacenamiento temporal durante el proceso de evaluacioacuten

en el Algoritmo Geneacutetico guarda los datos de ocupacioacuten choques y no utilizacioacuten decada aula por hora diacutea y versioacuten

Lista de columnas de la tabla HORARIO_AULANombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Version INTEGER 4 X Nuacutemero de individuo o versioacutenAula Text(6) 6 Nombre del aulaLunes SMALLINT 4 Nuacutemero de horas que se utiliza el aula

el diacutea lunesMartes SMALLINT 4Miercoles SMALLINT 4Jueves SMALLINT 4Viernes SMALLINT 4Sabado SMALLINT 4Hora SMALLINT 4 Hora de utilizacioacuten del aulaId_aula INTEGER 4 X Identificador del aula en la versioacuten

Tabla MATERIASFuncioacuten Esta es una de las principales tablas del proyecto se utiliza en todos los moacutedulos del

sistema contiene informacioacuten base para caacutelculos diversos ademaacutes contiene tambieacuten lasllaves de diferentes tablas que describen de manera de manera especial a las materias

Lista de columnas de la tabla MATERIASNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia COUNTER 4 X Identificacioacuten de la materia llaveprincipal

Materia Text(40) 40 Nombre de la materiaNum de Hrs prac SMALLINT 4 Nuacutemero de horas praacutecticasNum de Hrs teo SMALLINT 4 Nuacutemero de horas teoacutericasClave de Asig Text(8) 8 Clave oficial de la materiaId_Carrera Text(15) 15 X Carrera a la que pertenece la materiaCreditos SMALLINT 4 Creacuteditos de la materia

Capiacutetulo 4 Anaacutelisis y Disentildeo

Semestre SMALLINT 4 Semestre en que se imparte la materiaObservaciones Text(60) 60Tronco comun YesNo 1 Definicioacuten de especialidad o tronco

comuacutenalumnos porgrupo

SMALLINT 4 Capacidad sugerida de los grupos deesta materia

clave de asigprerequisito

Text(40) 40 Clave de asignatura del prerrequisito

clave de asigprerequisito1

Text(40) 40 Clave de asignatura del prerrequisito

Id_rama INTEGER 4 X Identificador de la rama a la quepertenece la materia

Suma_mat SMALLINT 4 Suma total de los perfilespertenecientes a la materia

Orden SMALLINT 4 Es el nuacutemero de materia en un paqueteTipo_horario INTEGER 4 X El tipo de horario asignado a materia

Tabla MAT_PARA_PROFFuncioacuten La tabla almacena para cada catedraacutetico las asignaturas que puede impartir y el grado

de certeza con que puede hacerlo se almacena en esta tabla el resultado de la inferenciadel Sistema Experto

Lista de columnas de la tabla MAT_PARA_PROFNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_catedratico SMALLINT 4 X Nuacutemero de tarjeta del profesorId_materia INTEGER 4 X Identificador de la materiaPorcentaje_mat SMALLINT 4 Porcentaje de certeza con que un

profesor puede impartir una materia

Tabla PERFILESFuncioacuten Tabla que contiene una relacioacuten de todas las caracteriacutesticas de las materias

caracteriacutesticas necesarias para poder impartirlas es al mismo tiempo la tabla quecontiene la relacioacuten general de los conocimientos que poseen los profesores

Lista de columnas de la tabla PERFILESNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_perfil COUNTER 4 X Identificador del perfil paraasignaciones de materias acatedraacuteticos

Id_tipo INTEGER 4 X Identificador del tipo del perfilDescripcion_perfil Text(60) 60 Descripcioacuten de una caracteriacutestica del

perfil de una materia o un catedraacutetico

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla PERFIL_CATEDRATICOFuncioacuten Tabla que contiene el perfil de todos los catedraacuteticos (pueden llamarse las reglas) del

Sistema Experto que recomienda profesores para las materias el perfil de un catedraacuteticoesta definido por los conceptos que domina de las materias

Lista de columnas de la tabla PERFIL_CATEDRATICONombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_catedratico SMALLINT 4 X Identificador del catedraacutetico paradefinicioacuten de su perfil acadeacutemico

Id_perfil INTEGER 4 X Identificador del perfil que define aun catedraacutetico

Prioridad_perfil_cate SMALLINT 4 Porcentaje en que contribuye elperfil especificado en la definicioacutendel catedraacutetico

Tabla PERFIL_MATERIAFuncioacuten Esta tabla almacena las reglas que definen el perfil de una materia contiene las

caracteriacutesticas y temas que forman el temario de la materia

Lista de columnas de la tabla PERFIL_MATERIANombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materia en laregla de la materia

Id_perfil INTEGER 4 X Identificador del perfilperteneciente a una materia

Prioridad_perfil_mat INTEGER 4 Porcentaje en que contribuye esteperfil particular a definir unamateria

Tabla PROF_PARA_MATFuncioacuten Esta tabla almacena la inferencia del Sistema Experto para determinar cuales son los

mejores profesores para impartir una materia contiene para cada asignatura una lista delos profesores y el porcentaje de certeza con que pueden desempentildearse si la imparten

Capiacutetulo 4 Anaacutelisis y Disentildeo

Lista de columnas de la tabla PROF_PARA_MATNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de materiaId_catedratico SMALLINT 4 X Identificador de catedraacuteticoPorcentaje_cate SMALLINT 4 de certeza con que el catedraacutetico X

puede impartir la materia Y

Tabla POBLACIONFuncioacuten La tabla es la maacutes importante para el moacutedulo de Algoritmo Geneacutetico porque almacena los

datos de cada individuo hipoacutetesis o versioacuten que son generados ya sea por la poblacioacuteninicial aleatoria o por los diversos operadores geneacuteticos contiene copias (versiones) delcondensado de horarios con aulas aleatorias

Lista de columnas de la tabla POBLACIONNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materiaGrupo Text(4) 4 Grupo de la materiaId_catedratico INTEGER 4 X Identificador del catedraticoAula Text(4) 4 X Nombre del aula (edificio + numero)Hora_inicio INTEGER 4 Hora de inicio del grupoHora_lunes Text(6) 6 Hora inicio del lunesHora_martes Text(6) 6Hora_miercoles Text(6) 6Hora_jueves Text(6) 6Hora_viernes Text(6) 6Version INTEGER 4 X Nuacutemero de la versioacuten o hipoacutetesisPeriodo Text(10) 10 Periodo o semestre del grupoAnio INTEGER 4 Antildeo del grupo

Tabla RAMA_MATERIAFuncioacuten La tabla almacena la clasificacioacuten de las materias de acuerdo a las ciencias a la que

pertenecen

Lista de columnas de la tabla RAMA_MATERIANombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_rama COUNTER 4 X Identificador de la rama de unamateria (clasificacioacuten)

Nombre_rama Text(30) 30 Descripcioacuten de la rama de unamateria

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla REGLAS

Funcioacuten Esta tabla almacena las reglas utilizadas para generar los grupos que se deben ofertar elproacuteximo semestre indicando para cada regla el tipo de ajuste que debe aplicarse

Lista de Columnas de la Tabla REGLASNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Descripcion Text(70) 70 Descripcioacuten de la regla para ajustarel nuacutemero de grupos

Id_regla COUNTER 4 X Identificador de la reglaId_ajuste INTEGER 4 X Identificador del tipo de ajuste que

se aplica cuando esta regla sedispara para alguna materia

Tot_peso INTEGER 4 Total de los pesos de lascaracteriacutesticas de esta regla

Tabla SERVICIOS_ESCOLARESFuncioacuten En esta tabla se almacenan los datos estadiacutesticos de cada materia que provienen de

Servicios Escolares para el caacutelculo del nuacutemero de grupos que deben abrirse para elproacuteximo semestre contiene tambieacuten los paraacutemetros proporcionados por el SistemaExperto para realizar el ajuste al nuacutemero de grupos calculado inicialmente

Lista de columnas de la tabla SERVICIOS_ESCOLARESNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materiaINSCRITOS SMALLINT 4 Nuacutemero de alumnos inscritos

actualmente en el grupoNO INSCRITOS SMALLINT 4 Nuacutemero de alumnos que pueden

cursar la materia pero no seinscribieron

SIMULACION SMALLINT 4 Simulacioacuten de Servicios Escolaresde alumnos que podraacuten cursar lamateria

PROXIMOSEMESTRE

SMALLINT 4 Resultado del calculo de ServEscolares de alumnos que cursaraacutenla materia

GRUPOSREQUERIDOS

DOUBLE 4 Grupos requeridos para abrirproacuteximo semestre seguacuten caacutelculosiniciales

Indice dereprobacion

DOUBLE 4 Indice de reprobacioacuten de la materia

periodo Text(7) 7 Periodo de caacutelculo de horarios actual(semestre ene-jun o ago-dic)

Capiacutetulo 4 Anaacutelisis y Disentildeo

antildeo INTEGER 4 Antildeo de caacutelculo de horariosGrupos ajustado SMALLINT 4 Nuacutemero de grupos a solicitar para

abrir proacuteximo semestreAlumnos ajustado SMALLINT 4 Caacutelculo final del numero de alumnos

del proacuteximo semestre en estamateria

Id_ajuste INTEGER 4 X Tipo del ajuste aplicado por elSistema Experto al campogrupos_requeridos

Id_regla SMALLINT 4 X Regla que se disparo para realizar elajuste

Tabla TIPO_HORARIOFuncioacuten Esta tabla almacena los formatos de los distintos tipos de horario que existen y se ofrecen

para cada materia horarios de 2345 diacuteas a la semana y de 123 o 4 horas por diacutea

Lista de columnas de la tabla TIPO_HORARIONombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Tipo_horario COUNTER 4 X Identificador del tipo de horarioDescripcion Text(20) 20 Descripcioacuten del tipo de horarioLunes SMALLINT 4 Nuacutemero de horas del lunesMartes SMALLINT 4 Nuacutemero de horas del martesMiercoles SMALLINT 4 Nuacutemero de horas del mieacutercolesJueves SMALLINT 4 Nuacutemero de horas del juevesViernes SMALLINT 4 Nuacutemero de horas del viernesSabado SMALLINT 4 Nuacutemero de horas del saacutebado

Tabla TIPO_PERFILFuncioacuten Aquiacute se almacena una clasificacioacuten de los perfiles de acuerdo a la rama de conocimiento

a la que pertenecen

Lista de columnas de la tabla TIPO_PERFILNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_tipo COUNTER 4 X Identificador del tipo de perfilTipo_perfil Text(30) 30 Descripcioacuten del tipo de perfil de los

catedraacuteticos o las materias

Capiacutetulo 4 Anaacutelisis y Disentildeo

456 Lista de funciones o programas

Nombre Programa Descripcioacuten del programa

Ajustes Datos generales de los tipos de ajustes que se aplican al nuacutemero degrupos por abrir al dato de Servicios Escolares

Aulas Captura los datos de las aulas disponibles para claseCaptura_horarios Este programa realiza los cambios posteriores a la generacioacutenCarreras Captura los datos de las carreras del tecnoloacutegicoCatedraticos Datos generales de los catedraacuteticosClonacion Obtiene una copia (clon) del mejor individuo de una generacioacutenCons_ajuste Muestra yo imprime los datos generales de los ajustesCons_aulas Emite una pantalla de consulta general de aulasCons_captura_horarios Muestra una pantalla de consulta de los horarios generadosCons_carrera Despliega yo imprime las carrerasCons_catedratico Muestraimprime los datos generales de los catedraacuteticosCons_criterio Formulario que muestra yo despliega los criterios generalesCons_critXmat Muestra yo imprime los criterios de una materiaCons_critXregla Despliegaimprime los criterios que forman una reglaCons_gpos_abrir Explicacioacuten de la inferencia realizada (reglas disparadas)Cons_hist_crit Muestra las reglas de produccioacuten de los criteriosCons_materia Pantalla que despliega yo imprime datos de las materiasCons_materia_gral Pantalla de consulta general de los datos de materiasCons_perf_cate Consultaimprime los datos del perfil acadeacutemico de los

catedraacuteticosCons_perf_mate Consultaimprime los datos del perfil acadeacutemico de las materiasCons_perfil Muestraimprime datos de los perfilesCons_perfiles Consulta a la lista de perfiles o caracteriacutesticas Cons_perfilxmat Consulta a las reglas de produccioacuten del perfil de una materiaCons_rama Consulta a la lista de ramas (clasificacioacuten de las materias)Cons_reglas Consulta a la base de reglas para ajustar nuacutemero de gruposCons_serv_esc Consulta a las tablas que tienen informacioacuten de Servicios

EscolaresCons_serv_escol Pantalla que muestra yo imprime los datos estadiacutesticos de Serv

EscCons_tipo_perfil Consulta a los tipos de perfil (clasificacioacuten de perfiles)Crit_X_mat Formulario que captura los criterios pertenecientes a una materiaCrit_X_regla Captura los criterios que forman una regla de produccioacutenCriterios Pantalla que captura el conocimiento de criterios para el SECriteriosxmat Pantalla de captura para los criterios por materiaCruzamiento Programa que realiza la combinacioacuten (cruza) de individuos de la

poblacioacuten en el Algoritmo Geneacutetico

Capiacutetulo 4 Anaacutelisis y Disentildeo

Evaluacion Programa que realiza la creacioacuten del cromosoma de evaluacioacuten alevaluar las versiones de horarios de una generacioacuten

Explica_ajustes Moacutedulo de explicacioacuten del porque se aplicoacute determinado ajuste auna materia

Explica_mat_p_prof Explicacioacuten del porque una materia puede ser impartida por unprofesor con cierto grado de certidumbre

Explica_prof_p_mat Explicacion del porque un profesor puede impartir una materiacon cierto grado de certidumbre

Genera_horarios Sistema que utiliza Programacioacuten Loacutegica de Restricciones paragenerar los paquetes de horarios de un semestre

Genera_paquete Muestra el paquete generado por el procesoGrupo_nuevo Programa que va generando los paquetesGrupos_por_abrir Inferencia realizada para definir el ajuste aplicado a los grupos

definidos por Servicios EscolaresHistorial_criterios Captura los criterios necesarios para hacer una reglaHistorial_materia Captara los criterios por materiaMat_para_prof Inferencia realizada para determinar que profesores pueden

impartir una materiaMaterias Actualizacioacuten al archivo datos generales de las materiasMenu_algoritmos_geneticos Menuacute del moacutedulo para asignar aula a los gruposMenu_generacion_grupos Menuacute del Sistema Experto para definir cuantos grupos abrirMenu_asigna_horario Menuacute del moacutedulo asignacioacuten de horarioMenu_principal Menuacute principal del sistemaMenu_sel_catedra Menuacute del Sistema Experto para seleccioacuten de catedraacuteticos a

materiaMutacion Programa que hace la modificacioacuten de informacioacuten de aulas de

alguna versioacuten (versioacuten)Perfil_catedratico Captura el perfil acadeacutemico de los catedraacuteticosPerfil_materia Captura el perfil acadeacutemico de las materiasPerfiles Datos generales del perfil acadeacutemico de materias y catedraacuteticosPoblacion_inicial Programa que genera versiones de horarios y que de manera

aleatoria le va asignando aula a los gruposPortada_principal Es la ventana de entrada al sistemaProf_para_mat Inferencia realizada para determinar que materias pueden ser

impartidas por un profesorRama Programa que capturas las posibles ramas de los materiasReglas Datos generales de las reglas de produccioacuten para definir el No de

grupos por abrirSeleccioacuten Proceso que selecciona las mejores versiones de horarios (mejores

individuos) y elimina las menos aptasServ_escolares Pantalla de captura de los datos estadiacutesticos de Servicios EscolaresTipo_perfil Programa que captura la clasificacioacuten de los perfiles de materias y

profesores

Capiacutetulo 4 Anaacutelisis y Disentildeo

457 Diagrama de Arquitectura (Menuacutes)

Menuacute general

Menuacute Grupos porabrir

MenuacuteGeneracioacuten de

horarios

MenuacuteAsignacioacuten de

aulas

Datos de materias

Estadiacutesticos Serv Esc

Criterios

Criterios por materia

Reglas

Criterios por regla

Ajustes

Carreras

Nuacutemero de grupos

MenuacuteSeleccioacuten decatedraacuteticos

Genera paquete

Genera horarios

Datos generalesgrupos

Datos de aulas

Genera poblacioacuteninicial

Evaluacioacuten

Seleccioacuten

Cruzamiento

Clonacioacuten

Mutacioacuten

Horarios finales

Perfiles

Perfil de las materias

Perfil de catedraacuteticos

Catedraacuteticos

Perfil de loscatedraacuteticos

Asignacioacuten materia aprofesor

Asignacioacuten profesor amateria

Capiacutetulo 4 Anaacutelisis y Disentildeo

Capiacutetulo 5 Implementacioacuten del sistema

CAPIacuteTULO 5

IMPLEMENTACIOacuteN

51 Pantallas del sistema

La Figura 51 muestra la portada inicial del proyecto Contiene los logotipos de las tresinstituciones participantes y el nombre del proyecto

Fig 51 Portada inicial del proyecto

La Figura 52 es la pantalla que proporciona la informacioacuten de los autores del proyecto

Es el botoacutende entrada alsistema

Botoacuten deinformacioacuten delos autores

Capiacutetulo 5 Implementacioacuten del sistema

Fig 52 Acerca del sistema

La Figura 53 muestra el menuacute principal del proyecto contiene y 4 moacutedulos La primeraopcioacuten incluye los moacutedulos administrativo y generacioacuten de grupos la segunda opcioacutenincluye seleccioacuten de maestro y seleccioacuten de materia

Fig 53 Menuacute principal del proyecto

Moacutedulos delproyecto

Cuadro queproporcionalainformacioacutende la opcioacutensentildealada porel cursor

Capiacutetulo 5 Implementacioacuten del sistema

En la Figura 54 se tiene la pantalla del menuacute que agrupa los programas del moacuteduloadministrativo y Sistema Experto para determinar el nuacutemero de grupos por abrir seguacutenlos caacutelculos realizados con los datos de Servicios Escolares y el ajuste a ese dato

Fig 54 Menuacute grupos por abrir

Este programa del moacutedulo administrativo (Figura 55) sirve para capturar la informacioacutengeneral de las asignaturas que componen una carrera

Fig 55 Materias

Programas delos moacutedulos

Descripcioacutende laactividad delprogramaseleccionado

Nombre de laasignatura

Nuacutemero dehoraspraacutecticas yteoacutericas

Alumnos por grupopara calcularcantidad de grupos

Dato para formarpaquetes porsemestre

Icono quehabilita lacaptura denuevosdatos

Icono queregresa alMenuacute anterior

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 56 es un ejemplo de la consulta de datos en pantalla

Fig 56 Consulta Materias

La Figura 57 es la pantalla donde se capturan los datos estadiacutesticos provenientes deServicios Escolares contiene la informacioacuten necesaria para realizar el caacutelculo originaldel nuacutemero de grupos de cada asignatura que se debe abrir para ofertarse a los alumnosel siguiente semestre la foacutermula mostrada proporciona tal dato

Botoacuten queregresa elcontrol alprogramaque loinvocoacute

Alumnosesperados parael proacuteximo

Fccg

Datosestadiacutesticos

Fig 57 Pantalla Servicios Es

semestre

oacutermula paraaacutelculoantidad-rupos

Caacutelculosgeneral y pormateria

Grupos (datoestadiacutestico)

colares

Capiacutetulo 5 Implementacioacuten del sistema

En la Figura 58 se muestra la pantalla de consulta de los datos estadiacutesticosproporcionados por Servicios Escolares

Fig 58 Pantalla consulta Servicios Escolares

Esta pantalla captura las caracteriacutesticas por materia que dan origen al conocimientonecesario para definir el tipo de ajuste que se aplica al dato del nuacutemero de gruposproporcionado por los caacutelculos estadiacutesticos de la pantalla anterior

Criterios de unamateria

Fig 59 Pantalla criterios por materia

Grado deimportancia de esacaracteriacutestica para la

Capiacutetulo 5 Implementacioacuten del sistema

En la Figura 510 se muestra un ejemplo de la consulta a la base de datos del sistema enla parte de criterios por materia

Fig 510 Pantalla consulta criterios por materia

Esta pantalla (fig 511) proporciona al sistema la capacidad de capturar modificarborrar e imprimir las carreras del Instituto Tecnoloacutegico de Zacatepec

Fig 511 Pantalla carreras

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 512 proporciona al sistema la capacidad para capturar los criterios(conocimientos) del experto para definir a cada materia

Fig 512 Pantalla criterios

La Figura 513 muestra un ejemplo de consulta al archivo de los criterios capturados enel sistema

Fig 513 Pantalla consulta criterios

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 514 muestra la pantalla de captura de las reglas que componen el SistemaExperto para determinar el tipo de ajuste que se aplicaraacute al dato estadiacutestico del nuacutemerode grupos que se van a abrir el proacuteximo semestre cada regla tiene asignado un tipo deajuste

Fig 514 Pantalla reglas

La Figura 515 muestra un ejemplo de la consulta al archivo de las reglas que utiliza elSistema Experto para determinar nuacutemero de grupos por ofertar el proacuteximo semestre

Fig 515 Pantalla consulta reglas

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 516 muestra la pantalla de captura al archivo de ajustes noacutetese que ladescripcioacuten explica en extenso la accioacuten que se realiza al aplicar este ajuste provenientede una regla disparada por los criterios pertenecientes a la definicioacuten de una materia

Fig 516 Pantalla ajustes

La Figura 517 muestra la pantalla de la consulta a los ajustes que contiene el sistema

Fig 517 Pantalla consulta ajustes

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 518 muestra la pantalla que captura los criterios para cada regla Una reglaestaacute formada por el mismo tipo de criterios que definen a las materias

Criteriosde una

Fig 518 Pantalla criterios por regla

La Figura 519 muestra el ejemplo de una consulta de los criterios que definen a unaregla

Fig 519 Pantalla consulta criterios por regla

Reglas de produccioacuten Criterios por regla

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 520 es la pantalla maacutes importante de moacutedulo de generacioacuten de grupos porquees donde se realiza la inferencia para calcular el tipo de ajuste que se va a aplicar a cadamateria con base en las reglas que se disparan y que hacen match los criterios de unaregla y los criterios de una materia

Fig 520 Pantalla caacutelculo de ajustes

Esta pantalla (Figura 521) ofrece una explicacioacuten mostrando los criterios que definenuna materia y su correspondiente regla disparada mostrando los criterios de la regla quehacen match con los criterios de la materia

Fig 521 Pantalla explicacioacuten de la inferencia

Asignaturaa la que sele aplicaraacuteel ajuste

Regla quese disparaseguacutencriterios

Tipo deajuste quese aplica

Dato seguacutenestadiacutestico

Datos seguacutenajuste delSistemaExperto

Inferenciageneral

Inferenciaindividual

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 522 muestra el formulario que forma los paquetes de materias seguacuten laretiacutecula de una carrera muestra el nuacutemero de grupos por cada materia que se van aformar y hace los paquetes asignando los grupos AA AB AC AD

Fig 522 Pantalla inicial del moacutedulo generacioacuten de horarios

La Figura 523 es el formulario del moacutedulo Programacioacuten Loacutegica de Regenera los horarios por paquete satisfaciendo las restricciones para forlibre de choques continuo (sin horas muertas) cumpliendo las horas por m

Fig 523 Pantalla principal del moacutedulo generacioacuten de horari

Semestre al que sele formaraacuten lospaquetes

Paquetes generadosHora de iniciode clases decada grupo

Materias delsemestre

Nuacutemero de gruposal que se lesgeneraraacute horario

MateriaPaquete

Nuacutemero dehoras por diacutea

Botonesque invocanal moacutedulogeneradorde horarios

stricciones quemar un horarioateria etc

Hora de iniciode la materia

os

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 524 muestra el moacutedulo para asignar aula a los horarios que ya tienen materiagrupo y hora

Fig 524 Pantalla principal del menuacute Algoritmos Geneacuteticos

Esta pantalla (Figura 525) se utiliza para hacer altas bajas consulta y modificaciones alos grupos que se les va a dar aula

Fig 525 Pantalla de administracioacuten de grupos

Periodode loshorarios

Hora iniciodel grupo

Hora por diacutea

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 526 muestra una consulta de la pantalla administracioacuten de grupos

Fig 526 Pantalla de consulta de administracioacuten de grupos

La Figura 527 muestra la pantalla para actualizar las aulas disponibles por las personasque generan los horarios estas aulas estaacuten disponibles para que el Algoritmo Geneacuteticolas utilice para asignarles grupos durante el proceso

Fig 527 Pantalla del control de aulas

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 528 muestra la consulta de las aulas que utiliza el moacutedulo generacioacuten deaulas

Fig 528 Pantalla de consultas del control de aulas

La Figura 529 muestra la pantalla que genera la poblacioacuten inicial a partir de los datosgenerales proveniente de los moacutedulos anteriores

Fig 529 Pantalla de genera poblacioacuten inicial

Nuacutemero dehipoacutetesisversiones oindividuos

Aula aleatoriagenerada

Este botoacuteninicia lageneracioacutende las nversionesde horarios

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 530 muestra la pantalla que evaluacutea las versiones originadas y genera paracada una de ellas un cromosoma cuyos genes contienen la informacioacuten obtenida

Fig 530 Pantalla de evaluacioacuten de versiones

La Figura 531 muestra el formulario del proceso de seleccioacuten de las mejores versionesde horarios toma aquellas que tienen menor numero de choques y mayor espacio deocupacioacuten de aulas

Fig 531 Pantalla del proceso de seleccioacuten

Cantidad deversiones quesobreviviraacuten

Cromosomas delos mejoresindividuos

Botoacuten queinicia elproceso deseleccioacuten

Botoacuten queinicia elproceso deeliminacioacuten

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 532 muestra la pantalla del proceso de clonacioacuten donde se selecciona la mejorversioacuten y se obtiene un clon ideacutentico con un nuevo nuacutemero de versioacuten

Fig 532 Pantalla del proceso de clonacioacuten

La Figura 533 muestra la pantalla del proceso de mutacioacuten utilizado para hacer elcambio ldquomutarrdquo los datos de una versioacuten para romper alguacuten ciclado de la tendencia haciael resultado o simplemente para acelerar el proceso de optimizacioacuten

Cromosomasde versionesmaacutes aptas

Nuacutemero demejor versioacuten

Poblacioacutenversiones

Cromosomamuestra lasmejoresversiones

Aulas quepueden mutarse

Botoacuten queinicia elproceso demutacioacuten

Nuacutemero deversioacuten

Fig 533 Pantalla de mutacioacuten

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 534 muestra la pantalla donde se realiza el cruzamiento utilizando plantillaspredeterminadas dirigiendo la cruza de versiones por paquetes de materias agrupadas porsemestre y cada plantilla genera una nueva versioacuten con la combinacioacuten de fragmentosde varias versiones

Fig 534 Pantalla del proceso de cruzamiento

La Figura 535 permite la seleccioacuten y enviacuteo de la mejor versioacuten de horarios y adaptarloal moacutedulo administrativo para su distribucioacuten y publicacioacuten

Fig 535 Horarios finales

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 536 muestra el menuacute de los moacutedulos que sugiere maestros para impartir unaasignatura y sugerencia de asignatura para alguacuten maestro

Fig 536 Pantalla menuacute seleccioacuten de catedraacuteticos

La Figura 537 muestra la pantalla para la captura de caracteriacutesticas de losconocimientos requeridos para dar una materia que son las mismas caracteriacutesticas quedefinen los conocimientos de un profesor para impartir las materias

Fig 537 Pantalla de perfiles

Clasificacioacutende los perfiles

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 538 muestra una consulta de los perfiles agrupados por tipo

Fig 538 Pantalla de consulta perfiles

La Figura 539 muestra la pantalla en la que se definen los conocimientos requeridospara poder impartir una asignatura de acuerdo al perfil y contenido temaacutetico

Fig 539 Pantalla perfiles de las materias

La Figura 540 muestra un ejemplo de la consulta al perfil de una materia

Importancia de lacaracteriacutestica en la materia

Capiacutetulo 5 Implementacioacuten del sistema

Fig 540 Pantalla consulta perfiles de las materias

La Figura 541 es utilizada para capturar los datos de los catedraacuteticos que imparten lasasignaturas de una carrera

Fig 541 Pantalla captura datos de catedraacuteticos

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 542 es una muestra de la consulta al archivo de los catedraacuteticos

Fig 542 Pantalla consulta datos de catedraacuteticos

La Figura 543 muestra la pantalla en que se captura el perfil de los catedraacuteticos elperfil son los conocimientos que tiene el profesor que lo capacitan para impartir algunaasignatura

Fig 543 Pantalla captura perfil de catedraacuteticos

Conocimientosdel profesor

Barra deseleccioacuten deperfiles

Grado dedominio deltema

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 544 muestra una consulta tiacutepica al archivo de perfiles de los catedraacuteticos

Fig 544 Pantalla consulta perfil de catedraacuteticos

La Figura 545 muestra la pantalla de inferencia final que sugiere quienes son loscatedraacuteticos maacutes capacitados para impartir una materia haciendo la inferencia mediantela buacutesqueda de matchs entre el perfil de la asignatura y el perfil del catedraacutetico

Fig 545 Pantalla muestra inferencia catedraacuteticos para materia

Candidatos aimpartir lamateria

Botoacuten del proceso deinferencia generalPorcentaje de certeza con

que puede impartirla

Botoacuten delprocesodeinferenciaparticular

Botoacuten queinvoca almoacutedulo deexplicacioacuten

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 546 muestra la pantalla de explicacioacuten donde se indican los perfiles de lamateria y el perfil del profesor

Fig 546 Pantalla explicacioacuten porque un maestro puede dar una materia

La Figura 547 muestra el resultado de la inferencia del proceso que sugiere las materiasque puede impartir un profesor con base en el perfil de la materia y el perfil del profesor

Fig 547 Pantalla materias que puede impartir un profesor

Posibles materia aimpartir Porcentaje de certeza con

que puede impartirlaBotoacuten del proceso deinferencia general

Botoacuten delprocesodeinferenciaparticular

Botoacuten queinvoca almoacutedulo deexplicacioacuten

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 548 muestra la pantalla de explicacioacuten donde se indican el perfil de la materiay el perfil del profesor

Fig 548 Pantalla de explicacioacuten porque un profesor puede dar una materia

Capiacutetulo 5 Implementacioacuten del sistema

Capiacutetulo 6 Pruebas y Resultados

CAPIacuteTULO 6

PRUEBAS Y RESULTADOS

61 Pruebas del sistema

Se pueden detectar dentro del desarrollo de sistemas las actividades para realizarpruebas las producidas durante la etapa de requerimientos de disentildeo preliminar y las dedisentildeo detallado Clasificadas de otra manera eacutestas pueden ser funcionales deintegracioacuten y de implementacioacuten

La finalidad de realizar Pruebas funcionales es detectar errores que pudieran habersedado durante las fases de anaacutelisis y de especificacioacuten Por otro lado ellas pueden ayudara probar si el disentildeo es correcto ya que esta fase en sus dos niveles preliminar ydetallado estaacute basada en el anaacutelisis y especificacioacuten de requerimientos del sistema Estaactividad es guiada por los objetivos y requerimientos plasmados Se busca en estaprueba la posibilidad de que se haya incurrido en errores de conceptualizacioacuten yo deespecificacioacuten Las pruebas se organizan tomando como guiacutea las diferentes opciones delsistema final

Las Pruebas de integracioacuten se realizan cuando se procede a interconectar los diferentessubsistemas que constituyen el futuro sistema Como es conocido un sistema puede serdesarrollado por diferentes personas Por esta razoacuten es de suma importancia probar lainterconexioacuten de los diferentes subsistemas y asiacute verificar que ha sido realizada demanera correcta

Las Pruebas de implementacioacuten o codificacioacuten son las que se realizan directamentesobre los programas que se estaacuten desarrollando durante la fase de implementacioacuten Estosmoacutedulos o programas a su vez constituyen subsistemas Por esta razoacuten la integracioacuten delos diferentes moacutedulos que forman un subsistema deben ser probados Estas pruebasdeben estar basadas en la especificacioacuten de disentildeo preliminar y detallado [Gerez 1985]

Los siguientes rubros describen las pruebas maacutes importantes que se consideraron paravalidar el sistema las pruebas funcionales Las pruebas de implementacioacuten se realizarondurante el desarrollo de la codificacioacuten de los diferentes moacutedulos

Capiacutetulo 6 Pruebas y Resultados

62 PRUEBAS DEL SISTEMA

621 PRUEBA 1 AacuteREAS DE MENUacuteS

Objetivo Guiar al usuario en el desarrollo del proceso Esta prueba verifica que elsistema tenga como opciones principales y submenuacutes los sentildealados en la definicioacuten derequerimientos

Criterios de aceptacioacuten Cada prueba verifica que el sistema produzca los resultadossentildealados en la definicioacuten de requerimientos

Procedimiento de la prueba A continuacioacuten se despliegan las pantallascorrespondientes a los menuacutes principales y submenuacutes Las opciones principales delproyecto son dos Menu Principal y Datos de los autores

Resultado de la prueba Los resultados fueron satisfactorios En todas las opcionesactivadas el sistema presentoacute los submenuacutes definidos en la etapa de requerimientos

La Figura 61 muestra la portada inicial del proyecto Contiene los logotipos de las tresinstituciones participantes y el nombre del proyecto

Fig 61 Portada inicial del proyecto

Es el botoacutende entrada alsistema

Botoacuten deinformacioacutende los autores

Capiacutetulo 6 Pruebas y Resultados

La Figura 62 muestra el menuacute principal del proyecto y contiene 4 moacutedulos La primeraopcioacuten incluye los moacutedulos administrativo y generacioacuten de grupos la segunda opcioacutenincluye seleccioacuten de maestro y seleccioacuten de materia

Fig 62 Menuacute principal del proyecto

En la Figura 63 se tiene la pantalla del menuacute que agrupa los programas del moacuteduloadministrativo y Sistema Experto para determinar el nuacutemero de grupos por abrir seguacutenlos caacutelculos realizados con los datos de Servicios Escolares y el ajuste a ese dato

Fig 63 Menuacute grupos por abrir

Moacutedulos delproyecto

Cuadro queproporcionalainformacioacutende la opcioacutensentildealada porel cursor

Programas delos moacutedulos

Descripcioacutende laactividad delprogramaseleccionado

Capiacutetulo 6 Pruebas y Resultados

La Figura 64 muestra el menuacute de los moacutedulos que sugiere maestros para impartir unaasignatura y sugerencia de asignatura para alguacuten maestro

Fig 64 Pantalla menuacute seleccioacuten de catedraacuteticos

La Figura 65 muestra el moacutedulo para asignar aula a los horarios que ya tienen materiagrupo y hora

Fig 65 Pantalla principal del menuacute Algoritmos Geneacuteticos

Capiacutetulo 6 Pruebas y Resultados

622 PRUEBA 2 VALIDACIOacuteN DE ENTRADAS

Objetivo Evitar peacuterdidas de tiempo con entradas erroacuteneas de datos y resultados sinvalidez

Criterios de aceptacioacuten Esta prueba deberaacute mostrar de manera exacta la informacioacutenal seleccionar la opcioacuten deseada

Procedimiento de la prueba Se verifica que todas las cajas de texto tengan el dato quese pide y una vez dados todos los datos se guardan para que estos datos posteriormentesean procesados por el sistema y almacenen los datos correctos

Resultado de la prueba Los resultados fueron satisfactorios En todas las opcionesactivadas el sistema presentoacute los resultados correctos a cada opcioacuten Ademaacutes losdesplegados de mensajes de error se presentaron de manera correcta en todas laspruebas

La Figura 66 muestra la captura de datos de una asignatura y enviacutea el correspondientemensaje de error si una caja de texto se encuentra vaciacutea

Fig 66 Pantalla de captura de datos de las Materias

Muestra elmensaje deerror si esque hacefalta alguacuten

Capiacutetulo 6 Pruebas y Resultados

La Figura 67 muestra una pantalla de captura de datos asignando criterios a una materiay valida la no duplicidad de criterios en esa materia se enviacutea el correspondiente mensajede error si una entrada ya fue capturada

Fig 67 Pantalla de captura de datos de Criterios por Materia

La Figura 68 muestra una pantalla de captura de datos de las carreras al encontrar unregistro ya capturado muestra el mensaje de error si una carrera ya fue capturada

Fig 68 Pantalla de captura de datos de Carreras

Muestra elmensajede error sies que yaexiste elregistro

Muestra elmensaje deerror si esque yaexiste elregistro

Capiacutetulo 6 Pruebas y Resultados

623 PRUEBA 3 DESPLEGADO DE RESULTADOS

6231 MOacuteDULO DE GENERACIOacuteN DE GRUPOS POR ABRIR

Objetivo Proporcionar los datos que el moacutedulo pide para que posteriormente elsistema genere el nuacutemero de grupos sugerido por abrir para cada materia

Criterios de aceptacioacuten Esta prueba muestra la lista de grupos que se deben abrirdespueacutes de aplicar los criterios del Sistema Experto

Procedimiento de la prueba Una vez que se proporcionan los datos que el SistemaExperto requiere el sistema generaraacute una lista de los grupos que se deben abrir elproacuteximo semestre

Resultado de la prueba Los resultados fueron satisfactorios En todos los casospresentados el sistema generoacute la lista en forma satisfactoria y con la informacioacutencorrecta

La Figura 69 es la pantalla maacutes importante de moacutedulo de generacioacuten de grupos porquees donde se realiza la inferencia para calcular el tipo de ajuste que se va a aplicar a cadamateria con base en las reglas que se disparan y que hacen match los criterios de unaregla y los criterios de una materia

Asignaturaa la que sele aplicaraacuteel ajuste

Regla quese disparaseguacutencriterios

Tipo deajuste quese aplica

Inferenciageneral

Datoseguacuten

Fig 69 Pantalla caacutelculo de ajustes

Datos seguacutenajuste delSistemaExperto

Inferenciaindividual

Capiacutetulo 6 Pruebas y Resultados

6232 MOacuteDULO DE GENERACIOacuteN DE HORARIOS

Objetivo Proporcionar los datos que el moacutedulo pide para que posteriormente elsistema genere el horario por semestre de las materias de una carrera

Criterios de aceptacioacuten Esta prueba debe mostrar los horarios para las materias sinerrores sin choques de hora en un paquete

Procedimiento de la prueba Recibe como entrada cuantos grupos abrir de cadamateria en cada semestre y genera primero los paquetes posteriormente a cada paquetede materias le asigna la hora por materia

Resultado de la prueba Los resultados fueron satisfactorios En todos los casospresentados el sistema generoacute los horarios correspondientes

La Figura 610 muestra el formulario que forma los paquetes de materias seguacuten laretiacutecula de una carrera muestra el nuacutemero de grupos por cada materia que se van aformar y hace los paquetes asignando los grupos AA AB AC AD

Fig 610 Pantalla inicial del moacutedulo generacioacuten de horarios

Semestre al que sele formaraacuten lospaquetes

Paquetes generadosHora de iniciode clases decada grupo

Materias delsemestre

Nuacutemero de grupospor al que se lesgeneraraacute horario

Botonesque invocanal moacutedulogeneradorde horarios

Capiacutetulo 6 Pruebas y Resultados

La Figura 611 es el formulario del moacutedulo Programacioacuten Loacutegica de Restricciones quegenera los horarios por paquete satisfaciendo las restricciones para formar un horariolibre de choques continuo (sin horas muertas) cumpliendo las horas por materia etc

Fig 611 Pantalla princip

6233 MOacuteDULO ASIGNACIOacuteN D

Objetivo Utilizar los datos generadoaulas a los paquetes de materias

Criterios de aceptacioacuten Esta pruebaasignacioacuten de aula sin choques

Procedimiento de la prueba Se genAlgoritmos Geneacuteticos durante variachoques en el aula

Resultado de la prueba Los resupresentados el sistema generoacute las aula

MateriaPaquete

Nuacutemero dehoras por diacutea

Hora de iniciode la materia

al del moacutedulo generacioacuten de horarios

E AULA

s en el moacutedulo anterior para hacer la asignacioacuten de

debe mostrar los horarios de las materias con una

eran las aulas utilizando los procedimientos de loss generaciones hasta lograr una generacioacuten sin

ltados fueron satisfactorios En todos los casoss correspondientes

Capiacutetulo 6 Pruebas y Resultados

La Figura 612 muestra la pantalla para actualizar las aulas disponibles por las personasque generan los horarios estas aulas estaacuten disponibles para que el Algoritmo Geneacuteticolas utilice para asignarles grupos durante el proceso

Fig 612 Pantalla del control de aulas

La Figura 613 muestra la consulta de las aulas que utiliza el moacutedulo generacioacuten deaulas

Fig 613 Pantalla de consultas del control de aulas

Capiacutetulo 6 Pruebas y Resultados

La Figura 614 muestra la pantalla que genera la poblacioacuten inicial a partir de los datosgenerales proveniente de los moacutedulos anteriores

Fig 614 Pantalla de genera poblacioacuten inicial

La Figura 615 muestra la pantalla que evaluacutea las versiones originadas y genera paracada una de ellas un cromosoma cuyos genes contienen la informacioacuten obtenida

Fig 615 Pantalla de evaluacioacuten de versiones

Nuacutemero dehipoacutetesisversiones oindividuos

Aula aleatoriagenerada

Este botoacuteninicia lageneracioacutende las nversionesde horarios

Capiacutetulo 6 Pruebas y Resultados

La Figura 616 muestra el formulario del proceso de seleccioacuten de las mejores versionesde horarios toma aquellas que tienen menor numero de choques y mayor espacio deocupacioacuten de aulas

Fig 616 Pantalla del proceso de seleccioacuten

La Figura 617 muestra la pantalla del proceso de clonacioacuten donde se selecciona la mejorversioacuten y se obtiene un clon ideacutentico con un nuevo nuacutemero de versioacuten

Fig 617 Pantalla del proceso de clonacioacuten

Cantidad deversiones quesobreviviraacuten

Cromosomas delos mejoresindividuos

Botoacuten queinicia elproceso deseleccioacuten

Botoacuten queinicia elproceso deeliminacioacuten

Cromosomasde versionesmaacutes aptas

Nuacutemero demejor versioacuten

Poblacioacutenversiones

Capiacutetulo 6 Pruebas y Resultados

La Figura 618 muestra la pantalla del proceso de mutacioacuten utilizado para hacer elcambio ldquomutarrdquo los datos de una versioacuten para romper alguacuten ciclado de la tendencia haciael resultado o simplemente para acelerar el proceso de optimizacioacuten

Fig 618 Pantalla de mutacioacuten

La Figura 619 muestra la pantalla donde se realiza el cruzamiento utilizando plantillaspredeterminadas dirigiendo la cruza de versiones por paquetes de materias agrupadas porsemestre y cada plantilla genera una nueva versioacuten con la combinacioacuten de fragmentosde varias versiones

Fig 619 Pantalla del proceso de cruzamiento

Cromosomamuestra lasmejoresversiones

Nuacutemero deversioacuten amutar

Aulas quepueden mutarse

Botoacuten queinicia elproceso demutacioacuten

Capiacutetulo 6 Pruebas y Resultados

La Figura 620 permite la seleccioacuten y enviacuteo de la mejor versioacuten de horarios y adaptarloal moacutedulo administrativo para su distribucioacuten y publicacioacuten

Fig 620 Horarios finales

6234 MOacuteDULO SELECCIOacuteN DE CATEDRATICOS

Objetivo Capturar los datos de los profesores y su perfil profesiograacutefico ademaacutescapturar los conocimientos necesarios para impartir una asignatura para poder sugerircual es el mejor catedraacutetico que puede impartir una asignatura

Criterios de aceptacioacuten Esta prueba debe mostrar la sugerencia de los mejorescatedraacuteticos para una materia y las mejores materias para un catedraacutetico

Procedimiento de la prueba Se daraacuten los datos iniciales de los maestros y el sistemadeberaacute generar una lista a partir de la inferencia del Sistema Experto respectivo yviceversa

Resultado de la prueba Los resultados fueron satisfactorios En todos los casospresentados el sistema infirioacute las materias y los catedraacuteticos correspondientes

Capiacutetulo 6 Pruebas y Resultados

La Figura 621 muestra la pantalla en que se captura el perfil de los catedraacuteticos elperfil son los conocimientos que tiene el profesor que lo capacitan para impartir algunaasignatura

Fig 621 Pantalla captura perfil de catedraacuteticos

La Figura 622 muestra la pantalla de inferencia final que sugiere quienes son loscatedraacuteticos maacutes capacitados para impartir una materia haciendo la inferencia mediantela buacutesqueda de matchs entre el perfil de la asignatura y el perfil del catedraacutetico

Fig 622 Pantalla muestra inferencia catedraacuteticos para materia

Conocimientosdel profesor

Barra deseleccioacuten deperfiles

Grado dedominio deltema

Botoacuten delprocesodeinferenciaparticular

Botoacuten queinvoca almoacutedulo deexplicacioacuten

Candidatos aimpartir lamateria Botoacuten del proceso de

inferencia generalPorcentaje de certeza conque puede impartirla

Capiacutetulo 6 Pruebas y Resultados

La Figura 623 muestra la pantalla de explicacioacuten donde se indican los perfiles de lamateria y el perfil del profesor

Fig 623 Pantalla explicacioacuten porque un maestro puede dar una materia

La Figura 624 muestra el resultado de la inferencia del proceso que sugiere las materiasque puede impartir un profesor con base en el perfil de la materia y el perfil del profesor

Fig 624 Pantalla materias que puede impartir un profesor

Posibles materia aimpartir Porcentaje de certeza con

que puede impartirlaBotoacuten del proceso deinferencia general

Botoacuten delprocesodeinferenciaparticular

Botoacuten queinvoca almoacutedulo deexplicacioacuten

Capiacutetulo 6 Pruebas y Resultados

La Figura 625 muestra la pantalla de explicacioacuten donde se indican el perfil de la materiay el perfil del profesor

Fig 625 Pantalla de explicacioacuten porque un profesor puede dar una materia

Capiacutetulo 6 Pruebas y Resultados

Capiacutetulo 7 Conclusiones y Trabajos Futuros

CAPIacuteTULO 7

CONCLUSIONES Y TRABAJOS FUTUROS

71 CONCLUSIONES

Los meacutetodos de programacioacuten lineal proporcionan una solucioacuten parcial al problema dela generacioacuten de horarios utilizan una ldquorecetardquo predefinida para lograr la optimizacioacutende la asignacioacuten de recursos como lo hace el meacutetodo Huacutengaro La Inteligencia Artificialsoluciona el problema utilizando la heuriacutestica el conocimiento y la experiencia de unexperto humano para solucionar el problema se decidioacute utilizar esta metodologiacutea paraexplorar una solucioacuten aproximada al problema

En el ITZ la generacioacuten de horarios se haciacutea de forma manual no se utilizaba ninguacutenmeacutetodo automatizado Al aplicar algunas teacutecnicas de la Inteligencia Artificial se halogrado generar de manera automatizada los horarios de las materias que se ofertaraacuten elproacuteximo semestre

La aplicacioacuten de varias ramas de la Inteligencia Artificial para la resolucioacuten delproblema de la generacioacuten de horarios viene a demostrar que si es posible generar uncondensado de horarios para el Instituto Tecnoloacutegico de Zacatepec que es una escuelade nivel superior y que estos horarios satisfacen adecuadamente las restricciones fuertesmedias y suaves Para ello fue necesaria la combinacioacuten de varias disciplinas de lacomputacioacuten para generar cada una de las partes que componen un horario y tambieacutenrecomendar los catedraacuteticos mas apropiados para impartir dichos grupos nuevamentequeda demostrado que la Inteligencia Artificial sirve para resolver problemas que lasteacutecnicas convencionales de computacioacuten consideran problema NP-completo

La utilizacioacuten de las teacutecnicas de los Sistemas Expertos para ajustar el nuacutemero de grupospor abrir el proacuteximo semestre permite aplicar el conocimiento y experiencia de lapersona encargada de elaborar los horarios y asiacute disminuir el nuacutemero de gruposcancelados el conocimiento e intuicioacuten del experto humano realizan un ajuste fino alnuacutemero de grupos y como puede notarse el sistema lo hace de manera similar

Para el moacutedulo de generacioacuten de los grupos y los horarios la utilizacioacuten de la teacutecnicallamada Programacioacuten Loacutegica de Restricciones permitioacute la satisfaccioacuten de lasrestricciones que hacen que los horarios sean considerados factibles para su aplicacioacuten a

Capiacutetulo 7 Conclusiones y Trabajos Futuros

los alumnos el proacuteximo semestre ya que los paquetes de materias por semestre tienenhorarios corridos y sin choques en horas nuacutemero de materias completo y buenadistribucioacuten de horas pares e impares

Se utilizoacute tambieacuten la teacutecnica de optimizacioacuten llamada Algoritmos Geneacuteticos pararealizar la asignacioacuten de aulas a cada grupo generado logrando con ello minimizarautomaacuteticamente el nuacutemero de choques de materias en aulas En las pruebas realizadasse logroacute que en la sexta generacioacuten de individuos ya soacutelo hubiera hasta un maacuteximo de 24choques lo que indicaba que soacutelo 4 oacute 5 grupos compartiacutean aula a la misma hora esto erafaacutecilmente corregible realizando una inspeccioacuten visual a la versioacuten de horarios final yajustando los uacuteltimos errores

Por uacuteltimo nuevamente se aplicaron los Sistemas Expertos en el moacutedulo de sugerenciade materias que puede impartir un maestro y en el moacutedulo maestros que pueden impartiruna determinada materia vale la pena comentar que durante las pruebas realizadas loscatedraacuteticos del departamento de Sistemas y Computacioacuten capturaban su perfilprofesiograacutefico y al pedir al sistema la sugerencia de cuaacuteles materias podriacutean impartirlos Sistemas Expertos del proyecto inferiacutean exactamente las materias que loscatedraacuteticos estaacuten impartiendo en este semestre y las que habiacutean impartido en alguacutensemestre anterior demostrando que en efecto para profesores nuevos la recomendacioacutendel sistema seriacutea vaacutelida

72 TRABAJOS FUTUROS

Se sugiere que se ampliacutee el proyecto para que a cada grupo generado con aula y hora sele asigne de manera automaacutetica un catedraacutetico utilizando ya sea Algoritmos Geneacuteticos oProgramacioacuten Loacutegica de Restricciones

Otra posible mejora puede ser incluir la Loacutegica Difusa en los Sistemas Expertos de losmoacutedulos que sugieren las materias que puede impartir un catedraacutetico y los catedraacuteticosque pueden impartir una asignatura

Como ya se comproboacute la factibilidad de generar los horarios de manera automaacutetica sepropone tambieacuten la exploracioacuten de otras ramas y teacutecnicas de la computacioacuten (RedesNeuronales Buacutesqueda Tabuacute Grafos Coloreados etc) para comparar el rendimientotiempo esfuerzo y asiacute poder determinar cuales son mejores o peores teacutecnicas pararesolver el problema de la generacioacuten de horarios

Referencias Bibliograacuteficas

REFERENCIAS BIBLIOGRAacuteFICAS

[Abramson 1991] Abramson D ldquoConstructing School Timetables Using SimulatedAnnealing Secuencial and Parallel Algoritmsrdquo Management Science PWS PublishingBoston 1998

[Beasley 1993] Beasley D amp Bull DR amp Martin RR ldquoAn Overview of GeneticAlgorithms Part 1 Fundamentalsrdquo University Computing

[Bull 1993] Bull DR amp Beasley D amp Martin RR ldquoAn Overview of GeneticAlgorithms Part 2rdquo University Computing Magazine 1993

[Burke1994]Burke EK ldquoA Genetic Algorithm for University Timetablingrdquo AISBworkshop on evolutionary computing Leeds 1994

[Burke 1997] Burke Edmund K ldquoAutomated Scheduling Optimization and PlanningGroup (ASAP)rdquo PATATrsquo97 Proceedings of the 2nd Intenational Conference on thePractice And Theory of Automated Timetabling 1997

[Burke2000] Burke Edmund amp Eliman David amp Weare Rupert ldquoA GeneticAlgorithm Based University Timetabling Systemrdquo PATATrsquo2000 Proceedings of the 5ft

Intenational Conference on the Practice And Theory of Automated Timetabling 2000

[Burke2001] Burke EK amp Eliman DGamp Weare R ldquoAutomated Scheduling OfUniversity Examsrdquo Leeds 2001

[Burke2002] Burke Edmund amp Eliman David amp Weare Rupert ldquoExaminationTimetabling in British Universities ndash A Surveyrdquo Leeds 2002

[Carrasco 2004] Carrasco Marco amp Pato Margarida ldquoSolving Real ClassTeacherTimetabling Problems using Neural Networksrdquo Facultade de Ciencias University ofLisboa Portugal

[Chorafas 1990] Chorafas Dimitris N ldquoKnowledge Engineeringrdquo Van NostrandReinnhold New York USA

Referencias Bibliograacuteficas

[Corne 1993] Corne D ldquoSolving the module exam scheduling problem with geneticalgorithmsrdquo Proceedings of the 6th Intenational conference in Industrial andEngineering applications of Artificial Intelligence and Expert Systems1993

[Daellenbach 1987] Daellenbach Hans amp McNickle Donald ldquoIntroduccioacuten a teacutecnicasde Investigacioacuten de Operacionesrdquo CECSA Meacutexico 1987

[Davis 1991] Davis L ldquoHandbook of Genetic Algorithmsrdquo Van Nostrand ReinholdNew York NY

[Demist2000] Demist ldquoDepartamental Timetabling Proyect ProposalDeMIStinterface to Timetabling Package Proyectrdquo Demist University 2000

[Detcher 1990] Detcher R ldquoEnhancement Schemes for Constraint Processing BackJumping Learning and Cutset Decompositionrdquo Artificial Intelligence 41 (1990)

[Eliman 2000] Eliman David ldquoSpecialised Recombinative Operators for TimetablingProblemsrdquo Cambridge University Press New York 2000

[Elmohamed2000] Elmohamed Saleh ldquoThe timetabling problemrdquo PATATrsquo2000Proceedings of the 5th Intenational Conference on the Practice And Theory ofAutomated Timetabling 2000

[Elmohamed2001] Elmohamed Saleh ldquoConstraint based university coursetimetablingrdquo 4th World Congress on Timetabing Aplication of advanced informationTechnologies London 2001

[Fahrion y Dollanski 1992] Fahrion R amp G Dollanski ldquoConstruction of UniversityFaculty Timetables using Logic Programmingrdquo ACM Sigsoft Notes vol 9 no 3 May1992

[Frenzel 1986]Frenzel Louis E ldquoCrash Course in Artificial Intelligence and ExpertSystemsrdquo Howard W Sams amp Co McMillan Inc Indianapolis USA

[Gerez 1985] Gerez Victor amp Mier Mauricio ldquoDesarrollo y administracioacuten deprogramas de computadorardquo McGraw Hill Meacutexico 1985

[Gervaacutes 1999] Gervaacutes P amp San Miguel B ldquoSequential Building of ConstrainedTimetables Using Rule-Based Heuristics An Expert System for AutomatedTimetablingrdquo Congreso Internacional de Investigacioacuten en Ciencias Computacionales

Referencias Bibliograacuteficas

[Giarratamo 1998] Giarratamo Joseph y Gary Riley ldquoExpert Systems Principles andProgrammingrdquo PWS Kent Publishing Company Boston USA

[Gines 1986] Gines B amp Boose J ldquoKnowledge Acquisition for Knowledge-BasedSystemsrdquo Vol 1amp2 Academic Press London U K

[Goldberg 1989] Goldberg DE ldquoGenetic Algorithms in SearchOptimization andMachine LearningrdquoAddison-Wesley

[Kang y White 1994 ] Kang L amp White GM ldquoA Logic Approach to the Resolutionof Constrains in Timetablingrdquo European Journal of Operational Research vol 61 1994

[Kandel 1991] Kandel Abraham ldquoFuzzy Expert Systemsrdquo CRC Press Inc LondonUK 1991

[Kendall1999] Kendall y Kendall ldquoAnaacutelisis y disentildeo de sistemasrdquo 3ordf edicion PearsonEducacioacuten

[Koza 1992] Koza JR ldquoGenetic Programming On the Programming of Computers bymeans of Natural Selectionrdquo Cambridge MA MIT Press

[Martiacutenez 1999] Martiacutenez Alfaro Horacio ldquoSolucioacuten al problema de asignacioacuten desalones de clases horario y grupo mediante templado simuladordquo Memorias 6ordm CongresoInternacional de Mecatroacutenica e Inteligencia Artificial Meacutexico 1999

[Medina 2004] Medina Pasaflores Horacio ldquoFundamentos de Algoritmos GeneacuteticosrdquoTesis de licenciatura Zacatepec Mexico 2004

[Michalewicz 1992] Michalewicz Z ldquoGenetic algorithms + Data Structures =Evolution Programsrdquo Springer-Verlag New York NY

[Negoita1985] Negoita ConstantinV Expert Systems and Fuzzy Systems TheBenjamin Cummings Publishing Co Menlo Park CA USA

[Nielsoft 2000] Nielsoft informatica ldquoManual de usuario Mimosa for windowsrdquo

[Paechter 1994] Paechter B ldquoTwo solutions to the general timetabling problemusing evolutionary methodsrdquo IEEE WCCI 1994

[Pluss1999] Pluss JJ ldquoSistemas expertos un enfoque pragmaacuteticordquo UNR

Referencias Bibliograacuteficas

[Rich 1996] Rich E y Knight K ldquoInteligencia Artificialrdquo McGraw HillInteramericana Madrid Espantildea

[Russell 1996] Russell S y Norvig P ldquoInteligencia Artificial un enfoque modernordquoPrentice Hall Mexico 1996

[Sanchez1999] Sanchez y Beltran ldquoSistemas expertos una metodologiacutea deprogramacioacutenrdquo Macrobit

[Schedul2000] SchedulExpert ldquoCourse scheduling in post educational institutionsrdquo EdAddison Wesley 2000

[Trick 1999 ] Trick Michael ldquoNetwork resources for coloring a graphrdquo Oracle PressEd McGraw Hill 1999

[Turban 1995] Turban Efraim ldquoDecision Support and Expert Systems ManagementSupport Systemsrdquo Fourth Edition Orentice Hall NJ USA

[Waterman1986] Waterman Donald A ldquoA Guide to Expert Systemsrdquo Addison-Wesley Publishing Co USA

[Weare2000] Weare Rupert amp Burke Edmundo amp Eliman David ldquoA Questionnaireon Exam Timetabling in Universitiesrdquo Annual review of computer Science Volume 2Palo Alto 2000

[Wilke 2002] Wilke P amp Grobner M amp Oster N ldquoA hibrid Genetic Algorithm forSchool Timetablingrdquo Advances in Artificial Intelligence Springer Lecture Notes inComputer Science New York

[Yoshikawa 1994] Yoshikawa M amp Kaneko KldquoA Constraint-based Approach toHigh School Timetabling Problems A Case Studyrdquo AAAI-94 12ordm NationalConference on Artificial Intelligence

Referencias Bibliograacuteficas

Referencias electroacutenicas

httpwwwmonografiacuteascomtrabajos12inteartfinteartfshtmlObregoacuten Arturo Inteligencia artificial y Sistemas expertos IIMAS-UNAM (1992)

httpwwwlafacucomapuntesinformaticasist_conodefaulthtmCruz Ochoa Wilson Sistemas de conocimiento

httpwwwingenieroseninformaticaorgrecursostutorialessist_exphtmlZambrano Molina Darwin Sistemas expertos

httpredcientificacomdocdoc199008210001htmlSamper Marquez Juan Joseacute Introduccioacuten a los sistemas expertos Madrid 2000

httpmismonografiascomarSistemas20expertofuzzyhtmlArede Dario Sistema experto fuzzy

httpcruzrojaguayaorginteligenciainterhtmlAyuquina Martha amp Arellano Gregorio Inteligencia artificial Universidad de Guayaquil

httpdmiuibesabasolointart1-introduccionhtmlAbasolo Mariacutea Joseacute Dra Inteligencia Artificial

Page 2: BORIS ANTONIO ARANDA BENITEZ

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

RESUMEN

En este estudio se aborda al problema NP-completo de la elaboracioacuten dehorarios en una escuela de nivel superior Se definen los elementos deun conjunto de Sistemas Expertos un moacutedulo de Programacioacuten Loacutegicade Restricciones y un moacutedulo de Algoritmos Geneacuteticos para solucionarel problemaComenzando con la determinacioacuten de grupos por abrir despueacutes laasignacioacuten de horario a los grupos posteriormente sigue la asignacioacuten deaula a los grupos y terminando con la propuesta de profesor para lasasignaturas se logra generar un conjunto de soluciones aceptables dehorarios sin problemas que satisfacen las restricciones naturales queimponen las entidades involucradas (catedraacuteticos aulas asignaturas y losgrupos) en el proceso

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

ABSTRACT

This research deals about the Timetabling NP-complete problem appliedat the Instituto Tecnologico de Zacatepec In this document theelements of three Experts System a constrains logic programmingmodule and a Genetics Algorithms module to solve the problem arepresented

Starting with a process to determine how many groups should be openthe next semester after this continue the timetabling assignation to thegroups the next process is the classroom assignation to the groups andthe final module propose a teacher for the groups all this make a setof acceptable solutions without timetabling problems where the naturalconstrains are satisfied

AGRADECIMIENTOS

Agradezco a Dios la oportunidad de vivir para ver terminado este trabajo

Agradezco a mi madre su constante iexcl Ahora una maestriacutea

Agradecimiento especial al Instituto Politeacutecnico Nacional al Centro deInvestigacioacuten en Computacioacuten y al Instituto Tecnoloacutegico de Zacatepecpor haber permitido y facilitado todo para que esta maestriacutea se impartiera

Al Dr Adolfo Guzmaacuten Arenas y al Dr Heacutector Medelliacuten Hernaacutendez porquefueron los autores intelectuales de traer el programa de maestriacutea alTecnoloacutegico de Zacatepec

Al Dr Alvaro de Albornoz Bueno porque sin el curso que impartioacute deInteligencia Artificial y Sistemas Expertos yo seguiriacutea creyendo que esimposible generar los horarios de manera automaacutetica gracias tambieacuten porsu apoyo incondicional y asesoriacutea por uacuteltimo le agradezco la lectura totalal documento final y la aplicacioacuten de las normas de la Real AcademiaEspantildeola al mismo

Al Dr Agustiacuten Gutieacuterrez Torneacutes por su apoyo y confianza en miacute

Debo dar las gracias a Olivia Saacutenchez Cadena por ese tremendo curso deprogramacioacuten visual y tambieacuten a Laura Villavicencio Goacutemez que con lafrase ldquosolo a los nintildeos se les tiene que decir que hacerrdquo me motivoacute acontinuar hasta terminar este trabajo

A mis compantildeeras y compantildeeros por los agradables momentos pasadosdurante el desarrollo de los cursos

A mis alumnos de Ingenieriacutea en Sistemas Computacionales porque con sutiacutepico sentido del humor juvenil me motivaron para cambiar deldquolicenciadordquo a ldquomcrdquo

Agradezco a la ANUIES con su programa Supera por el apoyo econoacutemicobrindado

Se agradece tambieacuten a COSNET por su apoyo dentro del proyecto deinvestigacioacuten 65504-P

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

IacuteNDICE

RESUMEN iABSTRAC iiIacuteNDICE iiiLISTA DE FIGURAS v

CAPIacuteTULO 1 INTRODUCCIOacuteN11 Antecedentes 112 Planteamiento del problema 213 Objetivo general 414 Objetivos especiacuteficos 515 Justificacioacuten 5151 Justificacioacuten teoacuterica 5152 Justificacioacuten metodoloacutegica 5153 Justificacioacuten praacutectica 616 Alcances y limitaciones 7

CAPIacuteTULO 2 MARCO TEOacuteRICO21 El estado del arte 9211 Antecedentes 9212 Algunos meacutetodos para resolver el Problema de la Generacioacuten de Horarios 92121 Algoritmos Geneacuteticos 122122 Programacioacuten Loacutegica de Restricciones 122123 Redes Neuronales 132124 Recocido Simulado 132125 Operadores Recombinatorios Especializados 132126 El Sistema Experto basado en reglas 14213 Observaciones realizadas a algunos paquetes generadores de horarios 1522 Los horarios 16221 El problema de la elaboracioacuten de horarios 1723 El proceso de la elaboracioacuten de horarios 22

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

CAPIacuteTULO 3 TEacuteCNICAS DE INTELIGENCIA ARTIFICIALUTILIZADAS PARA LA GENERACIOacuteN DE HORARIOS31 Sistemas Expertos 24311 Funcioacuten de un Sistema Experto 25312 Arquitectura de Sistemas Expertos 25313 La base de conocimiento 26314 Motor de inferencias 27315 iquestPor queacute utilizar un Sistema Experto 27316 Construccioacuten de prototipos 2832 Algoritmos geneacuteticos 29321 Antecedentes 29322 Definicioacuten de Algoritmo Geneacutetico 30323 Ventajas y desventajas 31324 iquestCoacutemo saber si es posible usar un Algoritmo Geneacutetico 31325 Paraacutemetros que deben ser especificados en el programa 3233 Programacioacuten Loacutegica de Restricciones(PLR) 34331 Antecedentes de la PLR 34332 Restricciones 35333 Sistemas con restricciones 37334 Referencia histoacuterica de las restricciones 37335 Satisfaccioacuten de las restricciones 38336 Resolucioacuten de restricciones 38337 Organizacioacuten de proyectos 38

CAPIacuteTULO 4 ANAacuteLISIS Y DISENtildeO41 Recopilacioacuten de la informacioacuten 4142 Anaacutelisis de la informacioacuten 4643 Solucioacuten definida 4844 Requerimientos del sistema 4945 Disentildeo del sistema 52451 Mapa conceptual del proyecto 52452 Mapas conceptuales de los moacutedulos 54453 Diagramas de contexto 62454 Diagramas entidad relacioacuten 674 55 Diccionario de la base de datos 73456 Lista de funciones o programas 85457 Diagrama de arquitectura (menuacutes) 87

CAPIacuteTULO 5 IMPLEMENTACIOacuteN51 Pantallas del sistema 89

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

CAPIacuteTULO 6 PRUEBAS Y RESULTADOS61 Pruebas del sistema 11462 Pruebas del sistema 115621 Prueba 1 Aacuterea de menuacutes 115622 Prueba 2 Validacioacuten de entradas 118623 Prueba 3 Desplegado de resultados 1206231 Moacutedulo generacioacuten de grupos por abrir 1206232 Moacutedulo generacioacuten de horarios 1216233 Moacutedulo asignacioacuten de aula 1226234 Moacutedulo seleccioacuten de catedraacuteticos 127

CAPIacuteTULO 7 CONCLUSIONES Y TRABAJOS FUTUROS71 Conclusiones 13172 Trabajos futuros 132

REFERENCIAS BIBLIOGRAacuteFICAS 133

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

LISTA DE FIGURAS

Figura Nombre Paacutegina

31 Arquitectura de un Sistema Experto 2632 Pseudocoacutedigo del Algoritmo Geneacutetico simple 3341 Mapa conceptual del proyecto 5242 Diagrama de secuencia 5443 Sistema Experto generador de grupos 5544 Diagrama del moacutedulo Programacioacuten Loacutegica de Restricciones 5745 Diagrama del moacutedulo Algoritmo Geneacutetico 5846 Diagrama de Sistema Experto para sugerir profesor a asignatura 6047 Diagrama de Sistema Experto para sugerir asignaturas para

catedraacutetico61

48 Diagrama de contexto del proyecto 6449 Diagrama de funciones fundamentales (entradas) 65410 Diagrama de funciones fundamentales (salidas) 66411 Diagrama entidad relacioacuten del moacutedulo administrativo 67412 Diagrama E-R del moacutedulo para determinar y ajustar nuacutemero de

grupos68

413 Diagrama E-R del moacutedulo para asignar aulas (Algoritmo Geneacutetico) 69414 Diagrama E-R del moacutedulo para asignar horario (PLR) 70415 Diagrama E-R del moacutedulo designa mejor catedraacutetico (Sistema

Experto)71

416 Diagrama E-R del moacutedulo selecciona mejor materia (SistemaExperto)

72

51 Portada inicial del proyecto 8852 Acerca del sistema 8953 Menuacute principal del proyecto 8954 Menuacute grupos por abrir 9055 Materias 9056 Consulta materias 9157 Pantalla servicios escolares 9158 Pantalla consulta servicios escolares 9259 Pantalla criterios por materia 92510 Pantalla consulta criterios por materia 93511 Pantalla carreras 93512 Pantalla criterios 94513 Pantalla consulta criterios 94514 Pantalla reglas 95515 Pantalla consulta reglas 95516 Pantalla ajustes 96

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

517 Pantalla consulta ajustes 96518 Pantalla criterios por regla 97519 Pantalla consulta criterios por regla 97520 Pantalla caacutelculo de ajustes 98521 Pantalla explicacioacuten de la inferencia 98522 Pantalla inicial del moacutedulo generacioacuten de horarios 99523 Pantalla principal del moacutedulo generacioacuten de horarios 99524 Pantalla principal del menuacute Algoritmos Geneacuteticos 100525 Pantalla de administracioacuten de grupos 100526 Pantalla de consulta de administracioacuten de grupos 101527 Pantalla del control de aulas 101528 Pantalla de consultas del control de aulas 102529 Pantalla para generacioacuten de poblacioacuten inicial 102530 Pantalla de evaluacioacuten de versiones 103531 Pantalla del proceso de seleccioacuten 103532 Pantalla del proceso de clonacioacuten 104

533 Pantalla de mutacioacuten 104534 Pantalla del proceso de cruzamiento 105535 Horarios finales 105536 Pantalla menuacute seleccioacuten de catedraacuteticos 106537 Pantalla de perfiles 106538 Pantalla de consulta perfiles 107539 Pantalla perfiles de las materias 107540 Pantalla consulta perfiles de las materias 108541 Pantalla captura datos de catedraacuteticos 108542 Pantalla consulta datos de catedraacuteticos 109543 Pantalla captura perfil de catedraacuteticos 109544 Pantalla consulta perfil de catedraacuteticos 110545 Pantalla muestra inferencia catedraacuteticos para materia 110546 Pantalla explicacioacuten del porqueacute un maestro puede dar una materia 111547 Pantalla materias que puede impartir un profesor 111548 Pantalla de explicacioacuten del porqueacute un profesor puede dar una

materia112

61 Portada inicial del proyecto 11562 Menuacute principal del proyecto 11663 Menuacute grupos por abrir 11664 Pantalla menuacute seleccioacuten de catedraacuteticos 11765 Pantalla principal del menuacute Algoritmos Geneacuteticos 11766 Pantalla de captura de datos de las Materias 11867 Pantalla de captura de datos de Criterios por Materia 11968 Pantalla de captura de datos de Carreras 11969 Pantalla caacutelculo de ajustes 120

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

610 Pantalla inicial del moacutedulo generacioacuten de horarios 121611 Pantalla principal del moacutedulo generacioacuten de horarios 122612 Pantalla del control de aulas 123613 Pantalla de consultas del control de aulas 123614 Pantalla de genera poblacioacuten inicial 124615 Pantalla de evaluacioacuten de versiones 124616 Pantalla del proceso de seleccioacuten 125617 Pantalla del proceso de clonacioacuten 125618 Pantalla de mutacioacuten 126619 Pantalla del proceso de cruzamiento 126620 Horarios finales 127621 Pantalla captura perfil de catedraacuteticos 128622 Pantalla muestra inferencia catedraacuteticos para materia 128623 Pantalla explicacioacuten porque un maestro puede dar una materia 129624 Pantalla materias que puede impartir un profesor 129625 Pantalla de explicacioacuten porque un profesor puede dar una materia 130

Capiacutetulo 1 Introduccioacuten

CAPIacuteTULO 1

INTRODUCCIOacuteN

11 Antecedentes

iquestQueacute es un horario

ldquoEl horario completo bien puede gobernar las vidas demiles de alumnos y cientos de profesores para los 200 diacuteasdel antildeo escolar semestre a semestre hora tras hora Comouna poderosa herramienta puede faacutecilmente crear o deshacersituaciones de ensentildeanza aprendizajerdquo [Johnson 1980]

En la educacioacuten superior la historia siempre es la misma la proporcioacuten de tiempodictada por el horario para los alumnos y profesores es generalmente muy baja Apesar de esto las dificultades en la creacioacuten de los horarios son grandes Existenvarios departamentos y carreras cada uno con sus propias ideas de coacutemo y cuaacutendo sedeben programar sus cursos El nuacutemero de estudiantes puede variar considerablementede antildeo en antildeo Similarmente las preferencias de los alumnos a favor o en contra delas materias pueden variar dramaacuteticamente de un semestre a otro Los estudiantespueden tomar cursos de un departamento o de varios de ellos aun maacutes puedenseleccionar materias de otras carreras La reciente desaparicioacuten de las restricciones decreacuteditos para cursar las asignaturas complica maacutes la situacioacuten porque ampliacutea el rangode materias que puede tomar un alumno Los horarios aparecen en varias formasmatutinos vespertinos mixtos y todo el diacutea Los horarios escolares indican cuando unmaestro y un alumno deben ir a cada clase Todas las escuelas tienen un horario decursos que dirige lo que cada estudiante y catedraacutetico debe hacer en determinadomomento Esta tesis versa especiacuteficamente sobre el problema de construir horariospara Institutos Tecnoloacutegicos en Meacutexico

La planeacioacuten de los horarios es un trabajo que se realiza semestralmente antes de iniciarel siguiente periodo escolar tomando en cuenta la demanda de grupos que se ofreceraacuteny asignando a estos grupos los alumnos el aula el catedraacutetico y el horariocorrespondiente mediante informacioacuten que se obtiene de varias maneras

El principal objetivo de este proyecto es dar una solucioacuten aproximada (aceptable) alproblema de la generacioacuten de horarios de una escuela de nivel superior que se resumeasiacute

Capiacutetulo 1 Introduccioacuten

ldquoDado un conjunto de departamentos y carreras asignaturas con prerrequisitos gruposcatedraacuteticos con especialidad y horario definidos aulas laboratorios y alumnos con suspreferencias de materias el problema es construir un condensado de horarios factibleque satisfaga todas las restricciones fuertes y minimice las restricciones medias ysuavesrdquo

Las restricciones fuertes son restricciones de espacio y tiempo tal como planear doscursos en un aula al mismo tiempo Las restricciones medias y suaves son laspreferencias de maestros y estudiantes que deberaacuten ser satisfechas si es posible[Elmohamed 1998]

El problema de la generacioacuten de horarios ha sido tratado por muchos investigadoresutilizando meacutetodos que van desde la investigacioacuten de operaciones hasta disciplinas de laInteligencia Artificial como son Algoritmos Geneacuteticos Recocido Simulado RedesNeuronales etc

12 Planteamiento del problema

La generacioacuten de horarios es una forma particular del problema de asignacioacuten derecursos En el caso maacutes general existe una serie de objetos (recursos) y una serie deprocesos que necesitan ser realizados por cada uno de esos objetos En un contextoeducacional cada estudiante debe asistir a un nuacutemero predeterminado de clases y elprofesor debe impartirlas durante la semana en un aula predeterminada el estudiante elprofesor y el aula pasan aquiacute a ser el objeto y las clases el proceso

La complejidad del problema de la generacioacuten de horarios

La generacioacuten de horarios es un problema de optimizacioacuten combinatorio multi-dimensional no Euclidiano con muacuteltiples restricciones y por lo tanto difiacutecil de resolver[Elmohamed 1998]

El problema de la generacioacuten de horarios esta agrupado dentro de los considerados decomplejidad NP-completos es decir que no pueden ser resueltos en tiempo polinomialusando un algoritmo determiniacutestico No se conoce un algoritmo determiniacutestico detiempo polinomial para resolver alguno de esos problemas y la mayoriacutea de la gente creeque dichos algoritmos no existen[Karp 1972]

La generacioacuten de horarios es la asignacioacuten de lapsos de tiempo a un conjunto de eventossujeto a las restricciones en esas asignaciones Seguacuten Elmohamed [Elmohamed 1998]el problema NP-completo de la elaboracioacuten de horarios es un problema para la

Capiacutetulo 1 Introduccioacuten

satisfaccioacuten de restricciones que puede ser definido de la siguiente maneraPara una escuela dada con

Np profesores con sus horarios y turnos Nq materias con su temario y objetivosNx aulas y laboratorios con su capacidad Ns estudiantes

es requerido programar Nt parejas de

alumno-materiahora-materiamaestro-materiaaula-materia

una vez definidas las parejas anteriores se deben programar elementos de la formamateria-maestro-hora -aula

En un liacutemite de Nt lapsos de tiempo para producir una programacioacuten factible En unaprogramacioacuten factible no se puede encontrar a un profesor grupo o estudiante en maacutesde un lugar al mismo tiempo y un aula no puede ser asignada con maacutes de una clase a lavez o maacutes estudiantes de su capacidad o un profesor programado fuera de su horarionormal o con maacutes horas frente a grupo de las reglamentarias ademaacutes de un conjuntoadicional de restricciones

Importancia del problema

La administracioacuten de los recursos comprende la apertura de los grupos para inscribir alos alumnos el proacuteximo semestre la asignacioacuten de carga acadeacutemica a los catedraacuteticos lautilizacioacuten de aulas y laboratorios de quiacutemica produccioacuten coacutemputo electromecaacutenicaaulas de dibujo y demaacutes instalaciones del Instituto Tecnoloacutegico de Zacatepec (ITZ)Cuando por errores imputables al creador de los horarios se hizo una mala planeacioacuten sederivan los siguientes problemasbull Alumnos que se inscriben con una carga de creacuteditos menor a la miacutenima por falta de

grupos suficientesbull Alumnos que deben estar en el ITZ desde las 700 hrs hasta las 2000 hrs varios

diacuteas a la semana por abrir grupos en horarios muy separadosbull Alumnos que pierden la secuencia de materias seriadas por falta de cupobull Alumnos que deben permanecer 1 oacute 2 semestres maacutes en el ITZ por no prever

suficientes grupos para semestres terminalesbull Catedraacuteticos que no imparten el miacutenimo reglamentario de horas frente a grupo por

no crearles grupos suficientesbull Catedraacuteticos a los que se les avisa 1 diacutea antes del inicio de clases que impartiraacuten una

Capiacutetulo 1 Introduccioacuten

asignatura nuevabull Asignaturas que son impartidas por profesores que no cumplen el perfil deseado en

esa asignaturabull Choque de grupos en las aulasbull Choque de grupos en laboratoriosbull Falta de laboratorio a algunos gruposbull Deficiente utilizacioacuten de las aulas

La creacioacuten de un sistema que evite de manera automaacutetica caer en errores como losmencionados NO ES TAREA TRIVIAL intentar resolver este problema involucra laelaboracioacuten de un ldquosistema inteligenterdquo capaz de tomar decisiones aprender inferirbasaacutendose en hechos generar nueva informacioacuten y a partir de ella nuevamente volver adecidir El sistema que se elabore debe tener la capacidad para deducir e inducir de unamanera combinada

Desventajas del sistema actual

La mayoriacutea de los problemas anteriores son ocasionados por alguno o varios de lossiguientes motivosbull Todo el proceso de caacutelculo y administracioacuten de los recursos es manualbull El proceso de elaboracioacuten coincide con el cierre de semestre actual y como las

personas responsables tambieacuten son catedraacuteticos deben combinar la generacioacuten dehorarios con las evaluaciones finales revisioacuten de proyectos y entrega decalificaciones de sus grupos a los alumnos

bull La elaboracioacuten de los horarios es un proceso que se lleva semanas de labor diariabull Requiere la atencioacuten total de los coordinadores durante todo el tiempo de

elaboracioacutenbull Al no tener la informacioacuten automatizada se tienen peacuterdidas de tiempo en la toma de

decisiones como por ejemplo en el preacutestamo de aulas no utilizadas o en la forma decompartir catedraacuteticos

bull Se tienen fuertes restricciones debido a los horarios de los catedraacuteticosbull Hay fuertes dificultades cuando se deben negociar cambios de horarios porque el

proceso implica mover asignaturas buscar aulas dejar paquetes de materias porsemestre etc

bull El estado de aacutenimo del coordinador influye en la elaboracioacuten de los horarios

13 Objetivo general

Generacioacuten de una solucioacuten aproximada del condensado de horarios para una escuela denivel superior que satisfaga las restricciones ocasionadas por los recursos involucradosmediante la elaboracioacuten de un sistema hiacutebrido (experto geneacutetico y loacutegico restrictivo)

Capiacutetulo 1 Introduccioacuten

14 Objetivos especiacuteficos

Se tiene el disentildeo e implementacioacuten de un sistema que

bull Proporciona una solucioacuten aproximada aceptable al problema de la generacioacuten dehorarios

bull Permite a los coordinadores delegar a la computadora la asignacioacuten de recursosbull Ahorra tiempo en la generacioacuten de los horariosbull Reduce el trabajo manualbull Agiliza la toma de decisionesbull Reduce el tiempo de elaboracioacuten de horariosbull Facilita la modificacioacuten de informacioacuten generadabull Aumenta la eficiencia en las negociaciones entre jefes y coordinadoresbull Lleva al Instituto Tecnoloacutegico de Zacatepec (ITZ) a la modernizacioacuten en este

proceso

15 Justificacioacuten del sistema

151 Justificacioacuten teoacuterica

La utilizacioacuten de la Inteligencia Artificial (IA) para la solucioacuten de problemas de la vidacotidiana ha sido una estrategia utilizada cuando los sistemas tradicionales decomputacioacuten no proveen mecanismos suficientes para garantizar una solucioacuten adecuadasu utilizacioacuten para la generacioacuten de horarios (creacioacuten de grupos asignacioacuten de horaasignacioacuten de aula determinacioacuten de catedraacutetico) presenta una alternativa ideal paracomprobarlo

152 Justificacioacuten metodoloacutegica

La utilizacioacuten de un grupo de Sistemas Expertos que realice la asignacioacuten de losrecursos para la generacioacuten de grupos y le proponga una materia determinada a unprofesor seguacuten el perfil acadeacutemico de ambos reuacutene las caracteriacutesticas necesarias paradar la solucioacuten elegante y efectiva al problema planteado anteriormente porque

bull Se requiere del conocimiento de un experto para plantear el funcionamiento delsistema

bull El conocimiento se alimentaraacute a una base de conocimientos que conste de variaspartes

bull Para la generacioacuten de grupos de una asignatura dada el sistema debe ldquorazonarrdquo paradeterminar cuantos de eacutestos se deben abrir para ofertarlos a los alumnos

Capiacutetulo 1 Introduccioacuten

bull En la asignacioacuten de nuevas materias a los catedraacuteticos el sistema debe ldquodeterminarrdquoquieacuten es el maacutes idoacuteneo para impartirla de acuerdo al perfil de ambos materia ymaestro

La Programacioacuten Loacutegica de Restricciones (PLR) es una de las teacutecnicas que maneja demanera natural informacioacuten sometida a ciertas restricciones y fue seleccionada paraseguir trabajando en la resolucioacuten del problema porque

bull Los horarios deben satisfacer ciertas restricciones como por ejemplo no se debengenerar mas grupos de los necesarios no puede haber dos materias con el mismogrupo no deben existir grupos del mismo paquete a la misma hora etc

bull Cada paquete de un semestre es un objeto que por siacute mismo posee ciertascualidades y restricciones por ejemplo no debe tener horas sin asignatura entre lahora inicial y final existen materias que se deben impartir de una hora diaria otrasdeben ser impartidas de 2 horas diarias etc

bull La solucioacuten presentada por la PLR inicia con datos aleatorios de un horario despueacutesse verifica si las restricciones se cumplen o no si se cumplen se guarda el dato si nose genera un nuevo dato aleatorio

Los Algoritmos Geneacuteticos utilizados aquiacute para asignar aula a los grupos cumplen con lametodologiacutea de la Computacioacuten Evolutiva porque

bull Se tienen datos iniciales de los grupos (materia-hora)bull Se genera una poblacioacuten inicial que son n versiones de un condensado de horarios

sin aulabull Esta poblacioacuten inicial es evaluada se seleccionan los condensados maacutes adecuados y

se eliminan las versiones menos adecuadasbull Se realizan cruzamientos mutaciones clonaciones y se crea la nueva generacioacuten de

horariosbull Se repite el proceso hasta llegar a una utilizacioacuten eficiente de las aulas

Por lo anterior se pueden observar las ventajas de utilizar un sistema inteligente sobreuno convencional para solucionar el problema planteado

Una vez definido el modelo para solucionar el problema de la asignacioacuten de horariospara las asignaturas aulas y catedraacuteticos de una institucioacuten de educacioacuten superior seraacutefaacutecil extrapolarlo para solucionar algunos problemas referentes a la planeacioacuten dehorarios de otro tipo de escuelas de nivel medio superior

153 Justificacioacuten praacutectica

La creacioacuten de un sistema que resuelva el problema de la elaboracioacuten de horarios ygenere automaacuteticamente la programacioacuten de grupos aulas y maestros sin violar las

Capiacutetulo 1 Introduccioacuten

restricciones fuertes minimizando las restricciones medias y suaves optimizando lautilizacioacuten de las aulas cumpliendo con las restricciones de los profesores asignandoprofesores adecuados para impartir las clases traeraacute como consecuencia condicionespara mejorar el proceso de ensentildeanza aprendizaje

16 Alcances y limitaciones

Alcances

El sistema generaraacute un espacio de soluciones finito que satisfaga las restriccionesfuertes medias y suaves optimizando el uso de los recursos disponibles se puede decirque el sistema optimizaraacute los recursos cuando los horarios generados tengan lascaracteriacutesticas mencionadas maacutes adelante

Esta tesis documenta la creacioacuten de un sistema basado en el conocimiento parasolucionar el problema de la generacioacuten de horarios en el Instituto Tecnoloacutegico deZacatepec que permite

bull Generar grupos suficientes para que todos los estudiantes se inscriban al menos conla carga miacutenima reglamentaria

bull Que los alumnos tengan horarios adecuados a sus necesidades y preferenciasbull Que todos los grupos tengan capacidad suficiente para todos los estudiantes que

deseen inscribirsebull Que los profesores impartan materias de acuerdo a su perfil profesionalbull Evitar los choques de grupos en aulas y laboratoriosbull Que todos los grupos tengan aula asignada desde el inicio del semestrebull La utilizacioacuten oacuteptima de las aulas y laboratoriosbull La correcta asignacioacuten de aulas y laboratorios a los cursosbull Realizar de manera automaacutetica la asignacioacuten de los recursosbull Determinar el nuacutemero de grupos que se deben abrirbull Llenar las aulas con grupos sin permitir choque de horariosbull Imprimir la lista de grupos ofertados para el semestre siguientebull Cuando exista el grupo de una materia sin maestro determinar cual es el mejor para

impartirla

Tener un Sistema terminado que contenga los siguientes moacutedulos

Sistema administrativo para control de horarios Sistema Experto para determinar la cantidad de grupos por abrir Sistema Experto para sugerir materias a un catedraacutetico Sistema Experto para seleccionar los mejores catedraacuteticos para impartir una

asignatura

Capiacutetulo 1 Introduccioacuten

Moacutedulo de Programacioacuten Loacutegica de Restricciones para generar los horarios a lospaquetes de materias por semestre

Moacutedulo de Algoritmo Geneacutetico para asignar aula a los grupos

Cada moacutedulo tendraacute

bull Interfaces de usuario amigablesbull Tiempos de ejecucioacuten raacutepidos (independientemente de la maacutequina objetivo)bull Reglas de inferencia para generar resultados (soacutelo los Sistemas Expertos)bull Buacutesquedas heuriacutesticas o aleatorias seguacuten el casobull Procesos para realizar induccioacuten y deduccioacuten (soacutelo los Sistemas Expertos)bull Manejo de incertidumbre (soacutelo los Sistemas Expertos)bull Un moacutedulo de explicaciones en lenguaje natural

Limitaciones

El sistema estaacute disentildeado para generar horarios de una escuela de nivel superior donde elcoordinador de cada carrera es el responsable de la generacioacuten de sus horarios controlarsus profesores impartir cierto nuacutemero de materias y utilizar cierta cantidad de aulas ylaboratorios

Trabaja exclusivamente en lenguaje espantildeol

Las reglas de la base de conocimiento tienen un formato predeterminado por unasintaxis definida para el sistema

El sistema estaacute elaborado para trabajar en microcomputadoras compatibles con IBM

No maneja los horarios individuales de los alumnos en el proceso de inscripcioacuten estaactividad deberaacute ser realizada por los sistemas del departamento de servicios escolares

Capiacutetulo 2 Marco teoacuterico

CAPIacuteTULO 2

MARCO TEOacuteRICO

21 El estado del arte

211 Antecedentes

El problema de la generacioacuten de horarios ha sido atacado de varias maneras a nivelmundial inclusive existe un grupo internacional que convoca al congreso llamadoPATATxx (Practice and Theory of Automated Timetabling) donde xx es el antildeo delcongreso en cuestioacuten

La ASAP (Automated scheduling optimization and planing group) es otro organismocuyo fin principal es conducir investigacioacuten en modelos heuriacutesticas y algoritmos para laproduccioacuten automaacutetica de soluciones de alta calidad a una gran variedad de problemasde planeacioacuten y optimizacioacuten del mundo real incluyendo elaboracioacuten de horarioslogiacutestica asignacioacuten de espacio y mantenimiento de inventarios

212 Algunos meacutetodos para resolver el Problema de laGeneracioacuten de Horarios

La generacioacuten de horarios acadeacutemicos ha sido acometida por muchos investigadoresbaacutesicamente dentro del aacuterea de la Investigacioacuten de Operaciones

2121 Investigacioacuten de Operaciones

El algoritmo para resolver problemas de asignacioacuten se denomina Huacutengaro ya que fuerondos matemaacuteticos Huacutengaros Koumlnig (1916) y Egervary (1931) los que aportaron lasteoriacuteas que sirven de base a este meacutetodo [Daellenbach 1987]

Este problema se presenta en diversos casos de toma de decisiones Los problemastiacutepicos de asignacioacuten implican asignar tareas a maacutequinas trabajadores a tareas yproyectos personal de ventas a territorios de ventas contratos a licitaciones horarios deaulas disponibles a horarios de maestros disponibles enfermos a camas disponibles delhospital cierto nuacutemero de empleados a cierta cantidad de puestos en una empresaaviones a destinos aeacutereos entre otros

Capiacutetulo 2 Marco teoacuterico

Una caracteriacutestica importante de los problemas de asignacioacuten es que se asigna untrabajador una tarea a una sola maacutequina proyectoEn particular se busca elconjunto de asignaciones que optimice el objetivo planteado tal como minimizar costosminimizar tiempo o maximizar utilidad

La formulacioacuten del problema general de asignacioacuten es

Sujeta a

Corresponde a un caso especial del problema del transporte en el cual las variables Xijsoacutelo pueden tomar el valor 0 oacute 1 tomar el valor 1 si el origen i se hace corresponder aldestino j y 0 en caso contrario

El Algoritmo Huacutengaro

Este algoritmo se usa para resolver problemas de minimizacioacuten ya que es maacutes eficazque el empleado para resolver el problema del transporte por el alto grado dedegeneracioacuten que pueden presentar los problemas de asignacioacuten Las fases para laaplicacioacuten del meacutetodo Huacutengaro son

Capiacutetulo 2 Marco teoacuterico

Paso 1 Encontrar primero el elemento maacutes pequentildeo en cada fila de la matriz de costosmm se debe construir una nueva matriz al restar de cada costo el costo miacutenimo de cadafila encontrar para esta nueva matriz el costo miacutenimo en cada columna A continuacioacutense debe construir una nueva matriz (denominada matriz de costos reducidos) al restar decada costo el costo miacutenimo de su columna

Paso 2 (En algunos pocos textos este paso se atribuye a Flood) Consiste en trazar elnuacutemero miacutenimo de liacuteneas (horizontales o verticales o ambas uacutenicamente de esasmaneras) que se requieren para cubrir todos los ceros en la matriz de costos reducidos sise necesitan m liacuteneas para cubrir todos los ceros se tiene una solucioacuten oacuteptima entre losceros cubiertos de la matriz Si se requieren menos de m liacuteneas para cubrir todos losceros se debe continuar con el paso 3 El nuacutemero de liacuteneas para cubrir los ceros es iguala la cantidad de asignaciones que hasta ese momento se pueden realizar

Paso 3 Encontrar el menor elemento diferente de cero (llamado k) en la matriz decostos reducidos que no estaacute cubierto por las liacuteneas dibujadas en el paso 2 acontinuacioacuten se debe restar k de cada elemento no cubierto de la matriz de costosreducidos y sumar k a cada elemento de la matriz de costos reducidos cubierto por dosliacuteneas (intersecciones) Por uacuteltimo se debe regresar al paso 2

Notas

1 Para resolver un problema de asignacioacuten en el cual la meta es maximizar la funcioacutenobjetivo se debe multiplicar la matriz de ganancias por menos uno (-1) y resolver elproblema como uno de minimizacioacuten

2 Si el nuacutemero de filas y de columnas en la matriz de costos son diferentes el problemade asignacioacuten estaacute desbalanceado El meacutetodo Huacutengaro puede proporcionar una solucioacutenincorrecta si el problema no estaacute balanceado debido a lo anterior se debe balancearprimero cualquier problema de asignacioacuten (antildeadiendo filas o columnas ficticias) antes deresolverlo mediante el meacutetodo Huacutengaro

3 En un problema grande puede resultar difiacutecil obtener el miacutenimo nuacutemero de filasnecesarias para cubrir todos los ceros en la matriz de costos actual Se puede demostrarque si se necesitan j liacuteneas para cubrir todos los ceros entonces se pueden asignarsolamente j trabajos a un costo cero en la matriz actual esto explica porqueacute terminacuando se necesitan m liacuteneas

Capiacutetulo 2 Marco teoacuterico

Tambieacuten han aparecido meacutetodos no convencionales que atacan el problema desdediferentes aacutengulos Los maacutes usuales son

Algoritmos Geneacuteticos Redes Neuronales Recocido Simulado Buacutesquedas Tabuacute Sistemas Expertos Programacioacuten Loacutegica de Restricciones Grafos Coloreados Operadores Recombinatorios Especializados

2122 Algoritmos Geneacuteticos

Los Algoritmos Geneacuteticos han sido utilizados satisfactoriamente para planear exaacutemenesy cursos en cierto nuacutemero de casos [Corne 1993] utiliza una buena aproximacioacutentradicional donde cada gene representa la hora en la cual se presentaraacute un examen ocurso Con operadores de cruzamiento y mutacioacuten como los mencionadosanteriormente agrega sustanciosos ahorros de tiempo al meacutetodo de Corne [Paechter1994] da una aproximacioacuten diferente donde el gene de cada examen no solo especificaldquoel cuandordquo sino que tambieacuten busca un nuevo horario del examen si despueacutes delcruzamiento el curso esta causando un conflicto Si el examen no puede ser programadoen alguna hora entonces no se agrega a la planeacioacuten con la finalidad de no tenerhorarios infactibles

[Burke1994] incorpora dominios de conocimiento especiacutefico para asegurar que ningunade las soluciones candidato es no factible En particular una representacioacuten directa seutilizada que incluye no soacutelo el cuaacutendo sino tambieacuten el doacutende un curso o examendeberaacuten ser tomados permitiendo al programador de horarios detener la ejecucioacuten delalgoritmo en cualquier punto y tener ya una serie de soluciones de buenos horariosfactibles

2123 Programacioacuten Loacutegica de Restricciones

Varios autores han presentado teacutecnicas de Programacioacuten Loacutegica de Restricciones pararesolver problemas de asignacioacuten de horarios pero eacuteste sigue siendo un nuevo enfoqueTambieacuten han aparecido algunos usando PLR para la planeacioacuten de clase-maestro[Yoshikawa 1994]

Kang y White presentaron una buena aproximacioacuten estaacutendar de PLR programandocursos sin permitir ningun conflicto [Kang y White 1994] Ellos usaron una teacutecnica dereversa equivalente al backtracking con lo cual cuando un curso no puede ser

Capiacutetulo 2 Marco teoacuterico

asignado uno similar es desasignado y el nuevo es colocado en su lugar Esto previeneuna buacutesqueda exhaustiva completa Esto tambieacuten introduce el concepto de undelimitador de tamantildeo que establece un maacuteximo en el tamantildeo del aula que puede usarun curso en particular Las restricciones son priorizadas en cinco diferentes categoriacuteasdonde la categoriacutea cinco debe ser liberada antes que la categoriacutea cuatro y asiacute con lasdemaacutes Este procedimiento fue utilizado para programar exitosamente los cursos de laUniversidad de Otawa

Tambieacuten se ha utilizado la teacutecnica de la Programacioacuten Loacutegica de Restricciones parahacer los horarios de una facultad utilizando una regla heuriacutestica para seleccionar quecurso asignar primero [Fahrion y Dollanski 1992]

2124 Redes Neuronales

De las distintas categoriacuteas de las Redes Neuronales Artificiales la maacutes apropiada pararesolver el problema es la familia de las Redes Neuronales de reaccioacuten basadas enneuronas multiestado con ecuaciones de teoriacutea de campos con significado controlandolas dinaacutemicas Las ecuaciones anteriores son usadas en lugar de los procedimientospara actualizacioacuten de demanda estocaacutesticos que han sido usados por otros esquemas paraevitar quedar atorados en circuitos locales miacutenimos [Carrasco 2004]

2125 Recocido Simulado

Recocido Simulado se refiere al uso de una teacutecnica de optimizacioacuten combinatoria odiscreta Divide el problema en grupos del mismo tiempo de clase los cuales sonespecificados por cada departamento acadeacutemico basados en la habilidad de losinstructores Funciona asiacute

1 El proceso asigna aulas procesando un grupo a la vez empezando con el primero2 El proceso continuacutea hasta que todos los grupos son procesados3 Cuando una solucioacuten es obtenida dividiendo el problema en conjuntos de horario

una mutacioacuten especial es generada con grupos traslapados Esto podriacutea generar unamala asignacioacuten de aula para minimizar esto se utiliza el siguiente paso

4 Los grupos son procesados basados en el nuacutemero de aulas este nuacutemero de aulas esoptimizado y se termina con las horas de clase con el miacutenimo de paquetes a esa hora

5 La implementacioacuten del programa genera una base de datos con la nueva asignacioacutende salones para el proacuteximo semestre [Abramson 1991]

2126 Operadores Recombinatorios Especializados

Los operadores de cruzamiento de los Algoritmos Geneacuteticos producen buenas

Capiacutetulo 2 Marco teoacuterico

combinaciones de genes para ser pasados entre los diferentes miembros de unapoblacioacuten En los Algoritmos Geneacuteticos estaacutendar es un procedimiento similar a escogerlos primeros n genes del primer padre y los uacuteltimos del segundo padre esteprocedimiento no es uacutetil en situaciones donde existen fuertes restricciones sobre laforma de los miembros de la poblacioacuten aquiacute un operador violaraacute esos requerimientosEl operador de recombinacioacuten heuriacutestico hiacutebrido trabaja asiacute

1 Los grupos no programados del periodo anterior son pasados al algoritmo2 Primero selecciona aquellos grupos programados en el periodo i en los padres 1 y 23 Los grupos extra son seleccionados de aquellos programados en el periodo i ya sea

del padre 1 o del padre 2 o de los dejados del periodo i ndash 14 Cualquiera de los grupos no programados es pasado al periodo i+15 Soacutelo los grupos que no crean conflicto con aquellos ya programados para este

periodo pueden ser seleccionados [Wilke 2002]

2127 El Sistema Experto Basado en Reglas

Los Sistemas Basados en Reglas proporcionan un buen punto de referencia para saberque tan buenos son otros meacutetodos en comparacioacuten a esta teacutecnica estaacutendar Varias deestas reglas son usadas para proporcionar sensibles elecciones para los movimientos enel algoritmo de Recocido Simulado en lugar de seleccionar cambios de manera aleatoriase ha usado este sistema como un preprocesador para generar una buena aproximacioacuteninicial y darla al Recocido Simulado

El Sistema Experto Basado en Reglas consiste en un nuacutemero de reglas (o heuriacutesticas) yrecursioacuten convencional para ayudar en la generacioacuten de asignacioacuten de clases Lasestructuras de datos o componentes del sistema son

bull Una matriz de distancias entre los departamentos acadeacutemicos y los edificios queseraacuten utilizados

bull Estructura de los datos de las materias para cada grupo programado en el campobull Estructura para las aulas (independientemente del tipo de aula) involucradas en el

procesobull Horarios para cada periodo de tiempo guardando cuales estaacuten disponibles y

cuales ya fueron ocupadasbull La estructura de los departamentosbull Las preferencias de los estudiantes indicando las clases requeridas

independientemente del semestre que sean las materias [Gervaacutes 1999]

Capiacutetulo 2 Marco teoacuterico

213 Observaciones realizadas a algunos paquetes generadores de horarios

Nombre DeMIStDescripcioacuten Puede describirse como un paquete que realiza bien las operaciones decasa (la propia universidad que lo creoacute) pero salioacute tan costoso como si hubierancomprado un paquete [Demist 2000]Proveedor DeMISt University

KnowTISEs un proyecto iniciado por la universidad de Leeds En la literatura aparece como unpaquete que es mejor para la generacioacuten de Grandes Horarios para una universidad quepara un departamento Utiliza el beneficio de gran cantidad de informacioacutencentralizada para la optimizacioacuten de recursos [Schedul 2000]Leeds University

STARSSTARS(Space Time and Resources Management) Igual que el anterior corre mejor enla elaboracioacuten de horarios de buen tamantildeo que en una aplicacioacuten departamentalDe Montfort University

Meeting maker Office TalkEs un generador de clases y acciones diarias es bueno cuando no es uacutetil el horario delos alumnos ya que proporciona uacutenicamente los espacios para las clases [Gervaacutes 1999]Varios proveedores

GP-UNTISEs un paquete australiano que funciona perfectamente para los requerimientos de lasescuelas secundariasTimetabling Services UK

Syllabus PlusEs una buena opcioacuten para uso departamental cumple los requerimientos de unauniversidad para la generacioacuten de horarios no trabaja a nivel de estudiantes pero si lohace con grupos de ellos no es factible para la generacioacuten de Grandes HorariosScientia LTD

Facility TimetablerEs una buena opcioacuten para uso departamental y para Grandes Horarios tiene interfaz conlos sistemas de alumnos y permite la creacioacuten de horarios individuales permite el uso

Capiacutetulo 2 Marco teoacuterico

centralizado de las aulas para una buena optimizacioacutenFacility Systems

Mimosa for WindowsEs un software general de planificacioacuten de la ensentildeanza y de programacioacuten de horariosLa aplicacioacuten utiliza todas las propiedades de Windows eficientemente es raacutepida tienegran capacidad y lo mas importante es tan flexible que puede aplicarse en todo el tipode escuelas desde la escuela primaria a las universidades desde las escuelasvocacionales a las academias militares

Se podriacutea decir que este producto cubririacutea todas las necesidades de la institucioacuten perohan existido algunos inconvenientes ya que no cubre con las necesidades deldepartamento tan solo da ayuda al usuario para que pueda generar sus horarios ademaacutesel tener tantos botones en pantalla (200) podriacutean confundir al usuario y realizar horarioserroacuteneos y no se resolveriacutea el problema [Nielsoft 2000]Mimosa Software Oy Finlandia

GestHor BSPEs un producto informaacutetico para resolver problemas de horarios escolares en escuelasbaacutesicas escuelas secundarias y escuelas profesionales

Toacutemese en cuenta que la mayoriacutea de los sistemas mencionados se enfoca solo a laasignacioacuten aula ndash materia y no abarca lo que es asignacioacuten materia ndash profesor

22 Los horarios

Existe mucha literatura referente a los horarios con una gran variedad de subtiacutetulos ydiferentes problemas Una gran variedad de algoritmos han sido propuestos empleandometodologiacuteas y heuriacutesticas de buacutesqueda produciendo horarios completos o soacuteloayudando durante el proceso Una de las grandes preguntas para la elaboracioacuten dehorarios es que si eacutestos pueden ser generales es decir iquestse puede encontrar un algoritmoo meacutetodo suficientemente general que produzca buenos horarios para todos losproblemas y para todas las restricciones La alternativa desde luego es continuardesarrollando algoritmos especializados aislados cada vez que un problema de horariosaparece

Al trabajar con una solucioacuten para el problema de los horarios se deben contestar lassiguientes preguntas iquestTodas las escuelas de nivel superior elaboran los horarios de lamisma manera iquestSon grandes o pequentildeas las diferencias en la forma de elaborar loshorarios iquestQueacute tan necesaria es la ayuda de la computadora iquestSoacutelo se requiere unpaquete general para la elaboracioacuten de los horarios iquestQueacute funcionalidad debe tener

Capiacutetulo 2 Marco teoacuterico

dicho paquete iquestQueacute tan grande y complejo es el problema de elaboracioacuten de horariosiquestQueacute propiedades debe poseer un horario aceptable para que una institucioacuten lo use

Se han realizado algunas encuestas para conocer si las escuelas de nivel superior tienensistemas computarizados para la elaboracioacuten de horarios si no los tienen si lonecesitaban y queacute caracteriacutesticas deberiacutea poseer El estudio concluyoacute que existe una grandemanda para tal sistema que se requiere un alto grado de asistencia automatizada yque la mayoriacutea de los elaboradores de horarios no estaban muy contentos con sussistemas actuales [Comm y Mathaisel 1988]

[Dowsland y Lim 1982] consideraron el problema de la elaboracioacuten de horarios peroproporcionaron alternativas en la encuesta de la utilidad de sistemas automatizados[Junginger 1986] establece que ldquoAunque los horarios producidos requierenmodificacioacuten las escuelas estaacuten contentas con los resultados El tiempo ahorrado fueconsiderable arriba del 75rdquo Dowsland por otro lado concluye que ldquoEs muy difiacuteciljuzgar el eacutexito actual de los paquetes para la elaboracioacuten de horarios pero el uso muylimitado de ellos sugiere que sus ventajas son limitadasrdquo Claramente ninguacuten disentildeadorde sistemas puede garantizar la idea de que su producto seraacute bienvenido con los brazosabiertos

[Pendlebury 1986] encuestoacute a las universidades politeacutecnicas britaacutenicas con respecto ala elaboracioacuten de horarios de cursos Doce de las treinta que contestaron la encuestautilizan elaboracioacuten de horarios por computadora (siete a gran escala y cuatro lo hacenen pequentildea escala) Es interesante notar que Pendlebury encontroacute que la mayoriacutea de loscursos se basan en clases que son muy independientes unas de otras y en la mayoriacutea delas instituciones encuestadas los departamentos individuales son responsables deproducir sus propios horarios

221 El problema de la elaboracioacuten de horarios

La elaboracioacuten de horarios es el acto de programar cursos a periacuteodos de tiempo asignarun aula a esos cursos y asignar un catedraacutetico a dicho curso

A menudo se hacen afirmaciones acerca de la naturaleza del problema que puedenpermitir encontrar una solucioacuten maacutes eficientemente Sin embargo cuando se trata deconstruir un sistema general se estaacute limitado a que las afirmaciones son el miacutenimocomuacuten denominador de todos los posibles escenarios

Una informacioacuten impliacutecita que ha sido hecha a menudo es la independencia entreunidades acadeacutemicas separadas Algunas universidades programan preguntando a susdepartamentos los horarios de sus propios cursos Una unioacuten central de dichos horarioses entonces utilizada para asegurar que todas las restricciones relevantes son cumplidasEn muchos casos esta es la forma normal en que es producido el horario de los cursos

Capiacutetulo 2 Marco teoacuterico

aunque algunos departamentos desarrollan su propio software para la programacioacuten decursos

En varias universidades los alumnos pueden tomar algunos de sus cursos endepartamentos diferentes al suyo Obviamente la independencia no debe ser asumidageneralmente debido a que puede haber diferencia en la programacioacuten de los cursos decada departamento En el Tecnoloacutegico de Zacatepec por ejemplo la probabilidadpromedio de que un curso tenga conflicto con uno de otro departamento es 1650mientras que la probabilidad de que dos cursos del mismo departamento tengan conflictoes 2250 notaacutendose una gran diferencia en el resultado

Dificultades encontradas por los responsables de la generacioacuten de horarios

Algunas dificultades experimentadas por los departamentos y facultades sonmencionadas aquiacute

bull Los programas acadeacutemicos se hacen cada vez maacutes flexibles (los estudiantesseleccionan queacute asignaturas tomar cuaacutendo doacutende y con quieacuten)

bull Algunos departamentos tienen asignaturas para ofrecer pero no tienen muchosalumnos

bull Los espacios para ofrecer las materias son cada vez menos y el problema se agravacuando los alumnos no quieren asistir en las tardes o los saacutebados

bull El staff de profesores no siempre estaacute disponible para impartir clases por muacuteltiplesrazones

bull Los alumnos pueden solicitar los grupos del proacuteximo semestre desde antes de queinicie pero al llegar el momento de inscribirse no lo hacen

bull Los departamentos estaacuten ansiosos por ofrecer una gran variedad de grupos teniendolos recursos pero esto puede ocasionar problemas

bull Existe una gran variedad de reglas al momento de asignar las aulas (pertenencia alas carreras prioridades de profesores etc)

bull Como no hay un costo asociado a la utilizacioacuten de un aula y no hay sanciones porreservarla y no utilizarla los departamentos acadeacutemicos no tienen un buen motivopara hacer una correcta utilizacioacuten del espacio

bull La falta de recursos ocasiona el mayor de los problemas porque obliga a laoptimizacioacuten en la planeacioacuten

Cursos y estudiantes

El problema de la elaboracioacuten de horarios estaacute relacionado esencialmente con el nuacutemerode eventos que requieren ser programados en este caso los cursos para los estudiantesClaramente el tamantildeo del problema variacutea entre los diferentes centros de estudio desdepequentildeos problemas con alrededor de 50 a 100 cursos hasta los 500 o 1000 cursos que

Capiacutetulo 2 Marco teoacuterico

programar Esta variacioacuten en el tamantildeo afectaraacute el tiempo requerido para resolver elproblema Un problema pequentildeo puede ser resuelto casi de manera oacuteptima mientrasque en uno grande se deben usar buacutesquedas heuriacutesticas u otras formas de acotar elespacio de buacutesqueda de una solucioacuten en un periodo de tiempo razonable

Se debe esperar que el nuacutemero de cursos y el nuacutemero de alumnos esteacuten correlacionadosEl nuacutemero de cursos ofrecidos y desde luego programados debe ser calculado porextrapolacioacuten del promedio de 5 o 6 cursos por alumno y con cupo promedio de 30alumnos por curso obviamente algunos alumnos se inscribiraacuten en 7 u 8 cursos porsemestre mientras que los cursos tendraacuten inscritos entre 20 y 40 alumnos Losalumnos dependiendo del semestre en que se encuentran inscritos deben matricularse aciertos cursos especiacuteficos para ese semestre dichos cursos deben programarse de maneraque los alumnos tengan la menor cantidad de tiempo entre el primer y el uacuteltimo cursodel diacutea permitieacutendoles con esto realizar actividades complementarias

En el Tecnoloacutegico de Zacatepec para una carrera con 900 alumnos se requieren ofertaraproximadamente entre 140 y 160 cursos ademaacutes los estudiantes pueden matricularse encursos ofrecidos por otros departamentos (esto ampliacutea el rango de posibilidades para losalumnos)

Los cursos y los departamentos

El promedio de los cursos ofrecidos por cada departamento variacutea considerablementeentre las diferentes escuelas de nivel superior La razoacuten de esta variabilidad puede servista como un indicador de la naturaleza de la complejidad de la planeacioacuten de horarios

Cada departamento ofrece cursos a los estudiantes de las carreras a las que da soportedirecto pero ademaacutes debe ofrecer cursos para todas las otras carreras de la institucioacutenque lo requieran esto es si un departamento X solicita la apertura de determinadonuacutemero de cursos a un departamento Y el departamento Y debe ofertar los cursossolicitados por X para los alumnos matriculados en el departamento X aunado a estoalgunos cursos ofertados por el departamento Y tienen compatibilidad con cursosofrecidos por X y por lo tanto los estudiantes de Y y X pueden ingresar indistintamenteen cualquiera de los cursos

Los cursos los semestres y las horas

Una de las afirmaciones que se pueden hacer en las instituciones de nivel superior es quelos cursos generalmente inician durante cierto periodo de tiempo y pueden tenerduracioacuten semestral (la gran mayoriacutea) trimestral y sin fechas predeterminadas (algunosposgrados por ejemplo) En general los cursos empiezan a las 700 AM y terminandependiendo del lugar a las 2000 o a las 2100 horas de lunes a saacutebado Aunque estopermite tener un amplio margen de horas para programar los cursos esto hace tambieacuten

Capiacutetulo 2 Marco teoacuterico

aun maacutes difiacutecil la elaboracioacuten de los horarios porque aumenta el rango de posiblescombinaciones donde programar cursos

Los cursos se pueden programar en periodos de tiempo muy variados aunque la mayoriacuteade los programadores de horarios siguen los siguientes patrones

bull Curso diario de 1 horabull Curso de dos horas en diacuteas saltados (lunes y mieacutercoles jueves y viernes

mieacutercoles y viernes)bull Curso de dos horas diarias 3 diacuteas por semana (lunes mieacutercoles y viernes)

(lunes martes y jueves) o (martes jueves y viernes)bull Cursos de cuatro horas en un solo diacutea por semanabull En el peor de los casos se programan cursos con la combinacioacuten de algunos

de los anteriores

Dependiendo del curso algunos tienen duracioacuten de cuatro horas teoacutericas semanales otroscombinan cuatro horas de teoriacutea y dos de praacutectica y algunos excepcionalmente sonprogramados con cuatro horas de praacutectica y dos de teoriacutea Las horas de praacutecticageneralmente se realizan en laboratorios o praacutecticas de campo agregando esto un nuevoparaacutemetro para la complejidad de la elaboracioacuten de horarios

Los cursos y las aulas

Las aulas son el espacio fiacutesico donde se impartiraacuten los cursos pueden ser salones declase laboratorios salones de exposicioacuten aulas para aplicacioacuten de exaacutemenes aulas paraactividades deportivas musicales o recreativas cada aula tiene capacidad para quecierto nuacutemero definido de estudiantes reciba sin problema unidades de ensentildeanzaaprendizaje

En una encuesta realizada por la Universidad de Nottingham [Burke y Elliman 1998] sedefinioacute que la programacioacuten de los cursos en las aulas es uno de los mayores problemasa los que se enfrentan los responsables de la elaboracioacuten de horarios Esto proviene dedos problemas mayores El primer problema es la escasez de aulas disponibles ya queen algunas de las escuelas de nivel superior el crecimiento de la poblacioacuten estudiantil hasido mayor que el crecimiento del nuacutemero de aulas disponibles para la ensentildeanza Elsegundo problema ocurre cuando se programa un curso en mas de un aula o saloacuten declase

La ocupacioacuten de las aulas es variable de acuerdo al departamento para el que seaasignada algunos prefieren utilizarlas al maacuteximo en el turno matutino otros en el turnovespertino tienen ocupacioacuten total algunos las utilizan exhaustivamente de lunes ajueves unos departamentos las llenan los viernes y saacutebados y otros tienen que utilizarlastodo el diacutea de lunes a saacutebado inclusive solicitan prestadas a los otros departamentosaquellos espacios que no son utilizados en alguacuten diacutea y hora a la semana

Capiacutetulo 2 Marco teoacuterico

Para el Tecnoloacutegico de Zacatepec el recurso llamado las aulas debe ser optimizado enuna buena planeacioacuten de horarios esto es deben ser utilizadas al maacuteximo todos los diacuteasde la semana desde las 700 hasta las 2100 de lunes viernes y los saacutebados hasta las1500 horas

Tipos de cursos

Una de las cosas a tomarse en cuenta durante la elaboracioacuten de los horarios es el tipo decurso a programar

bull Teoacutericos como los cursos matemaacuteticos cursos de administracioacuten etcbull Teoacuterico praacutecticos como los cursos de electroacutenica sistemas digitalesbull Lenguajes de programacioacutenbull Con praacutecticas de campo que deben salir al aire librebull Con praacutecticas de quiacutemica

Otra consideracioacuten es el tipo de aula requerida por los diferentes tipos de cursos

bull cursos que requieren medios audiovisuales simples (pizarroacuten y gis)bull algunos cursos adicionalmente requieren proyectores de acetatos y salas

obscurecidasbull cursos que requieren equipo de coacutemputo equipo de proyeccioacuten equipo de video y

televisioacuten para el desarrollo de la caacutetedra etcbull cursos que requieren laboratorios con computadorasbull que requieren equipos de medicioacuten electroacutenica generadores de sentildeales enchufes

eleacutectricos ybull cursos que requieren mesas tomas eleacutectricas y equipos para conexioacuten de redes

Los cursos y los catedraacuteticos

Definitivamente eacutesta es una de las principales consideraciones que tienen en cuenta losprogramadores de horarios la asignacioacuten de los cursos a los catedraacuteticos porque es unproceso que no puede realizarse de manera aleatoria es un proceso delicado porque deesto depende la efectividad del proceso de ensentildeanzandashaprendizaje

Los catedraacuteticos tienen caracteriacutesticas individuales que los hacen uacutenicosindependientemente de la profesioacuten que hayan estudiado Tienen intereses diferentesmeacutetodos diferentes aacutereas de preferencia diferentes perfil profesiograacutefico distinto tienenactividades extralaborales variadas asiacute que

iquestCoacutemo asignarle un curso a un catedraacutetico para que logre un oacuteptimo resultado en el

Capiacutetulo 2 Marco teoacuterico

proceso de ensentildeanza-aprendizajeiquestCoacutemo garantizar que el curso asignado a un profesor seraacute bien impartidoiquestCoacutemo saber que el profesor estaacute capacitado para ofrecer un buen cursoiquestCuaacuteles son los requisitos que debe reunir un profesor para impartir cierto cursoiquestDependen soacutelo de la profesioacuten los cursos que puede impartiriquestCoacutemo conocer de antemano las preferencias de los profesoresiquestEl nivel de estudio de los profesores les capacita para impartir cualquier cursoiquestDeben los profesores ser guiados a una especialidad por los programadores dehorarios

Las respuestas a todas estas preguntas incorporadas en un sistema generador de horariosiquestpermitiraacuten hacer una buena asignacioacuten de catedraacutetico a un curso

El condensado de horarios

Es un documento emitido cada semestre por los responsables de la elaboracioacuten de loshorarios que contiene la informacioacuten requerida por los alumnos jefes de departamento ycatedraacuteticos para conocer la distribucioacuten de las materias los grupos las aulas las horasy los catedraacuteticos que impartiraacuten los cursos en otras palabras el condensado de materiases el documento final de los HORARIOS que marcaraacute las acciones de todos el semestreactual

23 El proceso de la elaboracioacuten de horarios

El proceso de la elaboracioacuten de horarios abarca cada accioacuten que es requerida para crearel horario final completo y correcto de los datos iniciales Esto incluye recibir validary dar formato a los datos generar la versioacuten inicial hacer las correcciones y luegoproducir el condensado final de horarios El proceso de la generacioacuten de horariosabarca

bull la generacioacuten del dato de cuantos cursos se van a ofertarbull asignacioacuten de horario a esos cursosbull proporcionar aulas a los cursosbull designar profesores para los cursos definidos

la parte difiacutecil de esto es generar los horarios con los recursos disponibles en cadadepartamento cada etapa tiene sus restricciones (fuertes y suaves) los recursos no soninagotablesEl uso de la computadora

En una encuesta realizada por la Universidad de Nottingham [Burke y Elliman 1998]referente a la forma de elaborar horarios en las demaacutes universidades se encontroacute que un

Capiacutetulo 2 Marco teoacuterico

58 de ellas utilizan la computadora en alguna etapa del proceso de eacutestas el 21 tienela facilidad de realizar la programacioacuten aunque generalmente requieren captura manualde informacioacuten y conocimientos previos del problema particular del proceso El 1tienen paquetes comerciales y el 14 tienen paquetes hechos en casa para generarhorarios y el 2 aseguran que estaacuten desarrollando o comprando un paquete

Dado el tamantildeo de los horarios de dichas universidades es sorprendente que muchas notengan alguna forma de automatizacioacuten Esto se debe en la mayoriacutea de los casos a quelos horarios no cambian significativamente de un antildeo a otro Sin embargo de lasuniversidades que no programan horarios por computadora la mitad usa el horario delantildeo pasado y la otra mitad empiezan desde cero cada vez Cuando no se usa el horariodel antildeo pasado generalmente toma 4 semanas elaborar uno nuevo En la mayoriacutea de loscasos donde se usa la computadora generalmente no se toma en cuenta el horario delantildeo anterior

Causas de cambio de los horarios antildeo tras antildeo

Para que un horario pueda ser usado antildeo tras antildeo debe ser lo suficientemente robustopara que los cambios que ocurran en los datos de entrada produzcan soacutelo una pequentildeaalteracioacuten o modificacioacuten en el condensado final de horarios El uso del condensado delantildeo pasado depende en la cantidad de cambios que deben hacerse y esto a su vezdepende de cuanto cambie la cantidad de grupos que deben ofertarse para cadaasignatura y esto depende de la cantidad de alumnos que pueden cursar una asignaturaahora bien la cantidad de alumnos estaacute en funcioacuten de los iacutendices de aprobacioacuten yreprobacioacuten del periodo de los alumnos que por alguna razoacuten no cursaron unaasignatura y de la cantidad de grupos ofertados el periodo pasado

Si cambia la cantidad de horas frente a grupo asignada a un departamento entoncescambiaraacute el condensado de horarios con respecto al del antildeo pasado porque eso afectadirectamente en la cantidad de cursos que podraacute ofertarse este periodo este es uno de losrecursos maacutes variables que influyen para hacer cambios en los condensados antildeo trasantildeo

La redistribucioacuten de aulas y laboratorios (que no se realiza a menudo) llega tambieacuten ainfluir en los cambios

El cambio de horario matutino a vespertino (o viceversa) solicitado por un catedraacuteticoque es el especialista en impartir cierto curso ocasiona los cambios del condensado dehorarios del antildeo anterior al nuevo

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

CAPIacuteTULO 3

TEacuteCNICAS DE INTELIGENCIA ARTIFICIAL UTILIZADASPARA LA GENERACIOacuteN DE HORARIOS

31 Sistemas Expertos (SE)Bajo el teacutermino de Sistemas Expertos se entiende un nuevo tipo de software que imita elcomportamiento de un experto humano en la solucioacuten de un problema Un SE puedealmacenar conocimientos de expertos para un campo determinado y solucionar unproblema mediante razonamiento loacutegico de conclusiones

Los Sistemas Expertos son sistemas que buscan modelar el conocimiento yprocedimientos usados por un experto humano para resolver un problemadeterminado[Saacutenchez 1999]

iquestUn Sistema Experto utiliza teacutecnicas de la Inteligencia Artificial (IA)

Los Sistemas Expertos son uno de los puntos que componen las investigaciones en elcampo de la IA Un sistema de computadoras que trabaje con teacutecnicas de IA deberaacuteestar en situacioacuten de combinar informacioacuten de forma ldquointeligenterdquo alcanzarconclusiones y justificarlas (al igual que el resultado final) Los Sistemas Expertos sonuna expresioacuten de los sistemas basados en el conocimiento Con la aplicacioacuten de teacutecnicasde Inteligencia Artificial finaliza la transicioacuten del procesamiento de datos alprocesamiento de conocimientos

Un Sistema Experto es un sistema informaacutetico que simula el proceso de aprendizaje dememorizacioacuten de razonamiento de comunicacioacuten y de accioacuten de un experto humano enuna determinada rama o dominio Estas caracteriacutesticas le permiten almacenar datos yconocimiento sacar conclusiones loacutegicas tomar decisiones aprender de la experiencia ylos datos existentes comunicarse con humanos explicar el porqueacute de las decisionestomadas y realizar acciones como consecuencia de todo lo anterior

La incorporacioacuten dentro de un sistema de computadoras de un componente basado enel conocimiento correspondiente a una habilidad experta de tal forma que el sistemapueda ofrecer asesoramiento inteligente o tomar una decisioacuten inteligente sobre unafuncioacuten del proceso Una caracteriacutestica adicional deseable que muchos consideranfundamental es la capacidad del sistema si se le solicita de justificar su propia liacutenea derazonamiento de un modo directamente inteligible para el interrogador El estiloadoptado para alcanzar estas caracteriacutesticas es la programacioacuten basada en reglas[Waterman 1986]

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

311 Funcioacuten de un Sistema Experto

La funcioacuten de un Sistema Experto es aportar soluciones a problemas de un dominioespeciacutefico imitando la forma de razonamiento de los seres humanos es decir el SistemaExperto debe ser capaz de mostrar soluciones inteligentes [Giarratamo 1998]

Acceder a los conocimientos adquiridos por experiencia es lo maacutes difiacutecil ya que losexpertos al igual que otras personas apenas los reconocen como tales Son buscadoscon mucho esfuerzo y cuidado siendo descubiertos de uno en uno poco a poco

Ventajas del Sistema Experto

Experto Humano Experto ArtificialMortal PermanenteDifiacutecil de documentar Faacutecil de documentarDifiacutecil de transferir Faacutecil de transferirImpredecible ConsistenteMaacutes caro Menos caro

Ventajas del Experto Humano

Experto Humano Experto ArtificialCreativo No creativoAdaptable Requiere mantenimientoExperiencia sensorial Entrada simboacutelicaConocimiento de sentido comuacuten Conocimiento teacutecnico

312 Arquitectura de Sistemas Expertos [Gines 1986] [Giarratamo 1998]

La arquitectura general de un SE (Fig 31) estaacute compuesta fundamentalmente de

bull Base de Conocimiento Representa el conocimiento adquirido del expertohumano incluyendo experiencia sentido comuacuten e intuicioacuten

bull Motor de Inferencia Decide que se debe aplicar que se debe hacer resuelveconflictos nuevos hace uso de la base del conocimiento Proporcionamecanismos de razonamiento buacutesqueda aprendizaje etc

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

bull Interfaz Usuario Facilita la comunicacioacuten entre el Sistema Experto y el usuarioque realiza las consultas

bull Subsistema de Adquisicioacuten Mejor conocido como la Interfaz de Expertopermite ingresar el conocimiento a la Base de Conocimientos por parte delhumano experto en alguacuten dominio de conocimiento

bull Subsistema de explicaciones Permite dar a conocer los resultados obtenidospor el Sistema Experto

313 La base de conocimiento

El enfoque maacutes comuacuten para representar el dominio del conocimiento que se requierepara un SE son las reglas de produccioacuten Estas pueden ser referidas como reglasldquosituacioacuten-accioacutenrdquo o ldquoif-thenrdquo De esta forma con frecuencia una base deconocimientos estaacute fraguada principalmente de reglas las cuales son invocadas por uncasamiento de patrones con las particularidades de las tareas circunstanciales que vanapareciendo en la base de hechosLas reglas en una base de conocimientos representan el dominio de hechos y laheuriacutestica de un buen juicio de acciones a tomar cuando uno llega a situacionesespeciacuteficas La fuerza de un SE yace en el conocimiento especiacutefico del dominio delproblema Casi todos los sistemas existentes basados en reglas contienen cientos o milesde ellas y generalmente se obtienen de entrevistas con expertos durante un tiempo largoEn cualquier SE las reglas se conectan una a otra por ligas de asociacioacuten para formar

Base de

Motor de

Subsistema deadquisicioacuten

del

Subsistemade

explicacione

Interfazde

usuario

Ingeniero delconocimiento y experto Usuario

Base de hechos

Figura 31 Arquitectura de un Sistema Experto

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

redes de reglas Una vez que han sido ensambladas tales redes entonces se tiene unarepresentacioacuten de un cuerpo de conocimientos que es sustancial

Generalmente un experto tiene muchas reglas de criterio empiacutericas por lo que el soportesuele ser incompleto para la evidencia que se dispone En tales casos una teacutecnica es la devincular valores numeacutericos a cada regla para indicar el grado de certidumbre que eacutestatiene En la operacioacuten de SE los valores de certidumbre se combinan unos a otros atraveacutes de la red considerando tambieacuten la certidumbre de los datos de entrada delproblema para llegar finalmente a un valor de certidumbre de la solucioacuten final

314 El motor de inferencias

El sistema experto modela el proceso de razonamiento humano con un moacutedulo conocidocomo el motor de inferencia Dicho motor de inferencia trabaja con la informacioacutencontenida en la base de conocimientos y la base de hechos para deducir nuevos hechosContrasta los hechos particulares de la base de hechos con el conocimiento contenido enla base de conocimientos para obtener conclusiones acerca del problemaEl modelo de problema - solucioacuten y sus meacutetodos organizan y controlan las etapas que sevan tomando para la resolucioacuten de problemas Un modelo muy poderoso y comuacuten es elde encadenar las reglas `` if-then-else con el fin de formar alguna liacutenea derazonamiento Si el encadenamiento se inicia a partir de un conjunto de condiciones y semueve hacia alguna conclusioacuten el meacutetodo se llama encadenamiento hacia adelante y ensu caso contrario el encadenamiento es hacia atraacutes

Un problema de encadenamiento hacia adelante sin una apropiada heuriacutestica de podaderivaraacute muchas soluciones de las cuales no todas son necesarias En el caso deencadenamiento hacia atraacutes es necesario tambieacuten trabajar con una heuriacutestica apropiadacon la finalidad de poder manejar submetas conjuntivas En general para atacar elproblema de conjuncioacuten es necesario encontrar un caso en donde todas las submetasinteractuantes se satisfagan Pero con frecuencia una buacutesqueda de tal naturaleza nos dauna explosioacuten combinatoria de posibilidades Es por esta razoacuten que el dominioapropiado de la heuriacutestica y su esquema inferencial deberaacuten ser encontrados para cadatipo de problemas para que de esta manera se tenga un SE eficaz y eficiente

315 iquestPor queacute utilizar un Sistema Experto [Pluss 1999] [Sanchez 1999]

1 Con la ayuda de un Sistema Experto personas con poca experiencia pueden resolverproblemas que requieren un conocimiento formal especializado

2 Los Sistemas Expertos pueden obtener conclusiones y resolver problemas de formamaacutes raacutepida que los expertos humanos

3 Los Sistemas Expertos razonan pero basaacutendose en un conocimiento adquirido y notienen sitio para la subjetividad

Capiacutetulo 2 Marco teoacuterico

4 El uso de Sistemas Expertos es especialmente recomendado en las siguientessituaciones

bull Cuando los expertos humanos en una determinada materia son escasos

bull En situaciones complejas donde la subjetividad humana puede llevar aconclusiones erroacuteneas

bull Cuando es muy elevado el volumen de datos que ha de considerarse paraobtener una conclusioacuten

316 Construccioacuten de prototipos [Turban 1995]

En el desarrollo de Sistemas Expertos se plantean dos importantes riesgos

1- No existen implementaciones similares que puedan servir de orientacioacuten al encargadodel desarrollo en la casi totalidad de los casos

2- En muchos puntos los requisitos necesarios estaacuten esbozados con muy poca precisioacuten

El disentildeo y la especificacioacuten requieren una temprana determinacioacuten de la interfaz delsoftware y de la funcionalidad de los componentes En el desarrollo de SistemasExpertos deben alterarse a menudo durante y tambieacuten despueacutes de su implementacioacuten yaque los requisitos se han ido configurando y han obtenido mayor precisioacuten o porque seha descubierto que deben iniciarse otras viacuteas de solucioacuten Durante el desarrollo resultamaacutes apropiado empezar con implementaciones tipo test para encontrar el camino haciauna solucioacuten definitiva y para hacerlas coincidir con las necesidades del usuario

32 Algoritmos Geneacuteticos

321 Antecedentes [Medina 2004] [Goldberg 1989] [Davis 1991]

El Algoritmo Geneacutetico es una teacutecnica de buacutesqueda basada en la teoriacutea de la evolucioacutende Darwin que ha cobrado tremenda popularidad en todo el mundo durante los uacuteltimosantildeos

Esta teacutecnica se basa en los mecanismos de seleccioacuten que utiliza la naturaleza de acuerdoa los cuales los individuos maacutes aptos de una poblacioacuten son los que sobreviven al

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

adaptarse maacutes faacutecilmente a los cambios que se producen en su entorno Hoy en diacutea sesabe que estos cambios se efectuacutean en los genes de un individuo (unidad baacutesica decodificacioacuten de cada uno de los atributos de un ser vivo) y que sus atributos maacutesdeseables se transmiten a sus descendientes cuando eacuteste se reproduce sexualmente

En 1859 Darwin publica su libro laquoEl origen de las especiesraquo El libro causoacute una granpoleacutemica en el mundo cientiacutefico por las revolucionarias teoriacuteas en eacutel contenidas que lasespecies evolucionan acorde al medio para adaptarse a eacuteste Con ello el universopasaba de ser una creacioacuten de Dios estaacutetica y perfecta desde su inicio a un conjunto deindividuos en constante competicioacuten y evolucioacuten para poder perpetuar su especie en eltiempo La existencia de una especie pasa asiacute a ser algo dinaacutemico las especies se creanevolucionan y desaparecen si no se adaptan Para cada especie animal la naturalezaproponiacutea un crudo filtro soacutelo los mejores los maacutes aptos los que mejor se adapten almedio conseguiacutean sobrevivir lo suficiente para llegar a la madurez y encontrar unapareja para perpetuar sus aptitudes que le haciacutean maacutes apto

La informaacutetica ve aquiacute un claro proceso de optimizacioacuten Se toman los individuos mejoradaptados (mejores soluciones temporales) se cruzan (se mezclan ) generando nuevosindividuos (nuevas soluciones) que contendraacuten parte del coacutedigo geneacutetico (informacioacuten)de sus dos antecesores y por lo tanto aunque el nuevo individuo no tenga que estarforzosamente mejor adaptado de hecho puede que ni la probabilidad de que el nuevoindividuo generado esteacute mejor adaptado que los padres sea alta el promedio de laadaptacioacuten de toda la poblacioacuten si mejora ya que tienden a perpetuarse y extenderse lasmejores caracteriacutesticas y a extinguirse las poco beneficiosas o perjudiciales En losAlgoritmos Geneacuteticos se crea una nueva abstraccioacuten -la poblacioacuten- cuya funcioacuten decoste mejoraraacute globalmente por lo que puede que se encuentre alguacuten individuo conmejores caracteriacutesticas

Un investigador de la Universidad de Michigan llamado John Holland era consciente dela importancia de la seleccioacuten natural y a fines de los antildeos 60 desarrolloacute una teacutecnica quepermitioacute incorporarla a un programa Su objetivo era lograr que las computadorasaprendieran por siacute mismas A la teacutecnica que inventoacute Holland se le llamoacute originalmentePlanes Reproductivos pero se hizo popular bajo el nombre Algoritmo Geneacutetico trasla publicacioacuten de su libro en 1975

En esa universidad Holland impartiacutea un curso titulado Teoriacutea de sistemas adaptativosDentro de este curso y con una participacioacuten activa por parte de sus estudiantes fuedonde se crearon las ideas que maacutes tarde se convertiriacutean en los Algoritmos GeneacuteticosLos objetivos de su investigacioacuten fueron dos

Imitar los procesos adaptativos de los sistemas naturales y Disentildear sistemas artificiales (normalmente programas) que retengan los mecanismos

importantes de los sistemas naturales

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

Unos 15 antildeos maacutes adelante David Goldberg actual delfiacuten de los Algoritmos Geneacuteticosconocioacute a Holland y se convirtioacute en su estudiante Golberg era un ingeniero industrialtrabajando en disentildeo de tuberiacuteas y fue uno de los primeros que tratoacute de aplicar losAlgoritmos Geneacuteticos a problemas industriales Aunque Holland tratoacute de disuadirleporque pensaba que el problema era excesivamente complejo Goldberg consiguioacute loque queriacutea escribiendo un Algoritmo Geneacutetico en una computadora personal Apple IIEstas y otras aplicaciones creadas por estudiantes de Holland convirtieron a losAlgoritmos Geneacuteticos en un campo con base suficiente como para celebrar la primeraconferencia en 1985 ICGAacute85 Tal conferencia se sigue celebrando bianualmente[Beasley 1993]

Una definicioacuten bastante completa de un Algoritmo Geneacutetico es la propuesta por JohnKoza es un algoritmo matemaacutetico altamente paralelo que transforma un conjunto deobjetos matemaacuteticos individuales con respecto al tiempo usando operaciones modeladasde acuerdo al principio Darwiniano de reproduccioacuten y supervivencia del maacutes apto y trashaberse presentado de forma natural una serie de operaciones geneacuteticas de entre las quedestaca la recombinacioacuten sexual Cada uno de estos objetos matemaacuteticos suele ser unacadena de caracteres (letras o nuacutemeros) de longitud fija que se ajusta al modelo de lascadenas de cromosomas y se les asocia con una cierta funcioacuten matemaacutetica que refleja suaptitud [Koza 1992] 322 Definicioacuten de AG

Los Algoritmos Geneacuteticos (AG) son meacutetodos adaptativos que pueden usarse pararesolver problemas de buacutesqueda y optimizacioacuten Estaacuten basados en el proceso geneacutetico delos organismos vivos A lo largo de las generaciones las poblaciones evolucionan en lanaturaleza de acorde con los principios de la seleccioacuten natural y la supervivencia de losmaacutes fuertes postulados por Darwin Por imitacioacuten de este proceso los AlgoritmosGeneacuteticos son capaces de ir creando soluciones para problemas del mundo real Laevolucioacuten de dichas soluciones hacia valores oacuteptimos del problema depende en buenamedida de una adecuada codificacioacuten de las mismas [Goldberg 1989]

Un Algoritmo Geneacutetico consiste en una funcioacuten matemaacutetica que toma como entradas alos ejemplares y retorna como salidas cuaacuteles de ellos deben generar descendencia para lanueva generacioacuten

Los Algoritmos Geneacuteticos presentan ventajas sobre otros algoritmos que los hacenpreferibles para determinado tipo de aplicaciones Algunas de las caracteriacutesticas de losAlgoritmos Geneacuteticos son

bull Son algoritmos estocaacutesticos Dos ejecuciones distintas pueden dar dos solucionesdistintas Esto es uacutetil por el hecho de que hay gran cantidad de isoacutemeros que

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

corresponden a soluciones vaacutelidas por lo que es interesante que distintas ejecucionespuedan dar isoacutemeros distintos

bull Son algoritmos de buacutesqueda muacuteltiple luego dan varias soluciones Aunquehabitualmente la energiacutea de los individuos de la poblacioacuten final es similar losindividuos suelen ser distintos entre si Con el modelo de paralelizacioacuten empleado -geneacutetico multipoblacional- la probabilidad de obtener muchas soluciones distintas esmaacutes alta todaviacutea

bull Son los algoritmos que hacen una barrida mayor al subespacio de posiblessoluciones vaacutelidas De hecho se considera que de todos los algoritmos deoptimizacioacuten estocaacutesticos los Algoritmos Geneacuteticos son de los maacutes exploratoriosdisponibles

323 Ventajas y Desventajas [Bull 1993]

bull No necesitan conocimientos especiacuteficos sobre el problema que intentan resolverbull Operan de forma simultaacutenea con varias soluciones en vez de trabajar de forma

secuencial como las teacutecnicas tradicionalesbull Cuando se usan para problemas de optimizacioacuten de una funcioacuten objetivo- resultan

menos afectados por los oacuteptimos locales (falsas soluciones) que las teacutecnicastradicionales

bull Usan operadores probabiliacutesticos en vez de los tiacutepicos operadores determiniacutesticos delas otras teacutecnicas

bull La mayoriacutea de las otras teacutecnicas de optimizacioacuten son tambieacuten estocaacutesticasbull Pueden tardar mucho en converger o no converger en absoluto dependiendo en

cierta medida de los paraacutemetros que se utilicen tamantildeo de la poblacioacuten nuacutemero degeneraciones etc-

bull Pueden converger prematuramente debido a una serie de problemas de diversaiacutendole

324 iquestCoacutemo saber si es posible usar un Algoritmo Geneacutetico

La aplicacioacuten maacutes comuacuten de los Algoritmos Geneacuteticos ha sido la solucioacuten de problemasde optimizacioacuten en donde han mostrado ser muy eficientes y confiables Sin embargono todos los problemas pudieran ser apropiados para la teacutecnica y se recomienda engeneral tomar en cuenta las siguientes caracteriacutesticas del mismo antes de intentar usarlabull Su espacio de buacutesqueda (ie sus posibles soluciones) debe estar delimitado dentro

de un cierto rangobull Debe poderse definir una funcioacuten de aptitud que indique que tan buena o mala es

una cierta respuestabull Las soluciones deben codificarse de una forma que resulte relativamente faacutecil de

implementar en la computadora

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

Decisiones para implementar un Algoritmo Geneacutetico [Michalewicz 1992]

Las decisiones que hay que tomar para implementar un Algoritmo Geneacutetico son

bull Criterio de codificacioacuten Coacutemo se va a almacenar la informacioacuten en el genomabull Criterio de tratamiento de individuos no factibles Coacutemo se van a tratar a los

individuos que no cumplan las restriccionesbull Criterio de inicializacioacuten Coacutemo se va a construir la poblacioacuten inicialbull Criterio de parada Determina cuaacutendo el algoritmo ha llegado a una solucioacuten

aceptablebull Funcioacuten de adaptacioacuten Corresponde a la funcioacuten de costo de la investigacioacuten

operativa tradicionalbull Operadores geneacuteticos Se emplean para determinar coacutemo va a ser la nueva

generacioacuten Baacutesicamente son los operadores de cruce y mutacioacuten aunque pueden serempleados otros adicionales -muerte aborto envejecimiento- Tanto cruce comomutacioacuten pueden ser realizados de muchas formas distintas

bull Criterios de reemplazo Los criterios que determinan quieacutenes se van a cruzar Notienen que ser obligatoriamente los mismos que los criterios de seleccioacuten de lospadres

bull Paraacutemetros de funcionamiento Determinados paraacutemetros que sin poder serenglobados en ninguno de los anteriores son fundamentales para el funcionamientode un Algoritmo Geneacutetico Es el caso por ejemplo del tamantildeo de la poblacioacuten laprobabilidad de la aplicacioacuten de los operadores geneacuteticos etc

325 Paraacutemetros que deben ser especificados en el programa

Nordm de generaciones cantidad de veces que se produce una nueva generacioacuten deindividuos utilizando las reglas anteriormente explicadas Por loacutegica cuantas maacutesgeneraciones se produzcan se obtendraacuten mejores individuosNordm de individuos por generacioacuten en este ejemplo la cantidad de individuos de unageneracioacuten a otra es constante no variacuteaNordm de entrenamientos cantidad de veces que se lleva a cabo un entrenamiento entrediferentes generaciones de individuos

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

Fig 32 Pseudocoacutedigo del Algoritmo Geneacutetico simple

Los Algoritmos Geneacuteticos son una poderosa herramienta de propoacutesito general deoptimizacioacuten que modela los principios de la evolucioacuten [Burke 1994]

El proceso es el siguiente

1 Una poblacioacuten random de horarios factibles es creada Cada horario es evaluado deacuerdo a una conjunto de criterios (por ejemplo el tamantildeo del horario cuantosgrupos son colocados a la misma hora y en el mismo saloacuten cuantos salones hayvaciacuteos)

2 Los horarios son seleccionados de manera aleatoria para ser las bases de la proacuteximageneracioacuten Los buenos horarios son maacutes deseables que los malos En las bases dela evaluacioacuten de estos miembros de la poblacioacuten (horarios factibles) se escogen lospadres de la proacutexima generacioacuten de horarios Evaluando numeacutericamente durante elproceso de seleccioacuten buscando los mejores horarios los peores horarios soneliminados al mismo tiempo que la buacutesqueda se dirige hacia las aacutereas maacutespromisorias del espacio de soluciones

3 El Operador Mutacioacuten se aplica generalmente a un solo miembro de la poblacioacuten einvolucra el cambio aleatorio de la hora o aula de algunos grupos despueacutesalmacena el nuevo horario siempre manteniendo un horario factible Esto agrega

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

un elemento que permite tambieacuten introducir material geneacutetico uacutetil que ha sidoperdido en otros horarios en las primeras generaciones

4 El Operador de Cruzamiento toma una pareja de horarios y los combina de algunamanera para producir uno o dos nuevos horarios esto se hace generalmente deforma aleatoria seleccionando algunos grupos de la mantildeana de un miembro de lapoblacioacuten y los algunos grupos de la tarde de otro miembro para producir un nuevohorario cualquier grupo que no pueda ser colocado de esta manera se manda alperiodo siguiente disponible

5 La nueva poblacioacuten es generada El proceso seraacute repetido hasta que una buenasolucioacuten sea generada

33 Programacioacuten Loacutegica de Restricciones (PLR)

331 Antecedentes de la PLR

La Programacioacuten Loacutegica de Restricciones (PLR) es una teacutecnica que tiene mucho encomuacuten con los algoritmos de asignacioacuten heuriacutestica Dechter describe asiacute el problemade la satisfaccioacuten de restricciones ldquoUn problema de satisfaccioacuten de restricciones (PSR)es representado por una red de restricciones consistente en un conjunto de n variablesX1 Xn con sus respectivos valores de dominio RR n y un conjunto derestricciones Una restriccioacuten Ci (Xi1Xij)es un subconjunto del producto cartesiano Ri1 x x R i1 formado por todas las tuplas de valores para un subconjunto(X i1X ij) delas variables que son compatibles unas con otrasrdquo [Detcher 1990]

Una solucioacuten de la red es una asignacioacuten de valores a todas las variables de tal formaque todas las restricciones son satisfechasrdquo Esta es una representacioacuten maacutes poderosaque el modelo de los Grafos Coloreados porque puede representar restricciones mascomplejas El problema de los grafos coloreados es equivalente a un PLR binario en lacual cada restriccioacuten soacutelo tiene dos variables

Este modelo se resuelve tratando de asignar valores a cada una de las variables encuestioacuten y entonces regresando si se encuentra en un punto muerto y quitandorestricciones si se descubre que no se puede encontrar solucioacuten El orden en el que lasvariables son seleccionadas y el orden de los valores que son asignados a las variablespuede ser alterado para tratar aumentar la velocidad de buacutesqueda

La PLR es un meacutetodo que permite el disentildeo raacutepido de prototipos de resolucioacuten deproblemas complejos Las principales aportaciones en esta liacutenea se centran en eldesarrollo de programas que incluyen conjuntos de restricciones adaptadas a unadeterminada familia de problemas asiacute como al disentildeo formal e implementacioacuten demodelos de interpretacioacuten en paralelo con el fin de mejorar la eficiencia del proceso

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

deductivo El objetivo final es disponer de sistemas de resolucioacuten implementados paraapoyar la creacioacuten de sistemas donde la explosioacuten combinatoria de los elementos de unproblema hace muy difiacutecil la buacutesqueda de una solucioacuten en un tiempo razonable [Farion1992]

En esta seccioacuten se proporciona una breve introduccioacuten de la Programacioacuten Loacutegica conRestricciones y sus aplicaciones dentro del marco general de la programacioacuten loacutegica Setrata eacuteste de un campo que ha tenido una notable expansioacuten debido a su potencialaplicacioacuten praacutectica dado que el anaacutelisis de las restricciones permite mejorarconsiderablemente la eficiencia del caacutelculo de determinadas funciones

332 Restricciones

En primer lugar se empieza por contestar la pregunta iquestQueacute es una restriccioacuten Estacuestioacuten se puede responder tan brevemente como escribe Roman Bartak[1998]Una restriccioacuten es simplemente una relacioacuten loacutegica entre varias variablesdesconocidas tomando cada una un valor dentro de un dominio determinado (peA+B=C-el circulo estaacute dentro del cuadrado- etc)Asiacute las restricciones aparecen de forma natural en todos los campos del conocimientohumano La suma de los aacutengulos de un triaacutengulo es 180 grados es un ejemplo derestriccioacuten que aparece en el mundo real De hecho las restricciones son el medionatural en el que las personas expresamos los problemas en todas las aacutereas

Con la explicacioacuten dada se ve de forma natural que las restricciones gozan de variaspropiedades interesantes

bull las restricciones pueden especificar informacioacuten parcial es decir en lasrestricciones no hace falta que se den de forma uacutenica los valores de sus variables

bull las variables son no direccionales es decir en una restriccioacuten tiacutepica sobre dosvariables (XY) se puede inferir una restriccioacuten sobre X dada una restriccioacutensobre Y y viceversa

bull las restricciones son declarativas es decir se puede especificar que relacioacutendeben mantener sin especificar el procedimiento computacional que implementeesa relacioacuten

bull las restricciones son aditivas es decir el orden de imposicioacuten de las restriccionesno importa todo lo que importa al fin y al cabo es la conjuncioacuten de restriccionesy su efecto

bull las restricciones no suelen ser independientes normalmente restricciones dentrodel conjunto total de restricciones comparte variables

Asiacute siguiendo esta idea el objetivo de la Programacioacuten Loacutegica con Restricciones essustituir el proceso de unificacioacuten por la resolucioacuten de restricciones sobre un dominio

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

particular de intereacutes Con esta visioacuten se considera que el procesador de restriccionesdebe encargarse de comprobar la consistencia del conjunto de restricciones y dentro delo posible reducirlo a alguna forma normal

Seguacuten Elmohamed [Elmohamed 1998] las restricciones pueden ser divididas en trestipos fuertes medias y suaves

Restricciones fuertes Son todas aquellas que deben ser cumplidas obligatoriamente elcosto de no cumplir estas restricciones es sumamente alto y por lo tanto en un horariofactible su costo asociado por incumplimiento debe ser cero Por ejemplo (en unproblema real se pueden encontrar de 10 a 15 restricciones fuertes)

bull Dos o maacutes clases impartidas por un profesor no se pueden programar a lamisma hora

bull Una clase teoacuterica y su laboratorio no se pueden programar a la misma hora en elmismo diacutea

bull Una clase no se puede programar en un aula a menos que su capacidad seamayor al nuacutemero de alumnos inscritos

Restricciones medias Estas restricciones no se refieren a conflictos de tiempo perotienen asociado un alto costo a ellas sin embargo este costo no es tan alto como el de lasrestricciones fuertes En el condensado de horarios final el costo de estas restriccioneses minimizado y es deseable reducirlo a cero Por ejemplo (en un problema real sepueden tener entre 20 y 25 restricciones medias)

bull Para cada estudiante el balancear las secciones LunMieVie y MarJuebull Balancear o distribuir y equilibrar las horas de clase en la semanabull Las clases pueden requerir periodos de tiempo contiguosbull Las clases se pueden agrupar con otras clases formando paquetesbull Los horarios particulares deben tener la menor cantidad de ldquohoyosrdquo posible esto

es que las clases deben ser consecutivas unas despueacutes de otras

Restricciones suaves Estas restricciones no tienen nada que ver con conflictos detiempo y tienen un bajo costo asociado a ellas Tambieacuten en el condensado de horariosfinal este costo es minimizado pero no necesariamente debe ser cero Por ejemplo (sepueden tener entre 30 y 40 restricciones suaves)

bull Balancear la inscripcioacuten en cursos de varios paquetesbull Especificar la hora de comida y otros periodos de descansobull Los catedraacuteticos pueden requerir periodos de tiempo sin clasebull No inscribir alumnos-atletas en cursos que tengan conflicto con sus horas de

praacutectica deportiva etc

333 Sistemas con RestriccionesUna manera maacutes formal de definir las restricciones es considerarlas como una foacutermulade primer orden interpretada en una estructura para asiacute tener en cuenta la semaacutenticaparticular del sistema de restricciones Esta semaacutentica declarativa es adecuada cuando

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

existe a priori una estructura que se adecua al sistema de restricciones (pe Los realespara las restricciones aritmeacuteticas) pero esto no funciona demasiado bien para lossistemas de restricciones maacutes praacutecticos (pe Dominios finitos) Obviamente no se puededireccionar ninguacuten caacutelculo operacional relacionado con el propio procesador de lasrestricciones [Elmohamed 2001]

334 Referencia Histoacuterica de las RestriccionesLas restricciones como un aacuterea de trabajo que combina investigacioacuten de un gran nuacutemerode campos incluyendo Inteligencia Artificial Lenguajes de Programacioacuten CaacutelculoSimboacutelico y Loacutegica Computacional Las restricciones sobre redes y los problemas desatisfabilidad con restricciones empezaron a estudiarse por los investigadores deInteligencia Artificial en los antildeos 70

La programacioacuten con restricciones ha sido aplicada con notable eacutexito en numerososcampos Los trabajos en esta aacuterea se remontan a la investigacioacuten de InteligenciaArtificial y Representacioacuten Graacutefica por Computadora por los antildeos 60 y 70 En la uacuteltimadeacutecada sin embargo ha empezado a darse una mayor conciencia de que las restriccionesproporcionan las bases para un potente acercamiento a la programacioacuten modelado yresolucioacuten de problemas y que los diferentes esfuerzos por explotar estas ideas puedenser unidos bajo el mismo prisma conceptual y praacutectico la programacioacuten conrestricciones

Entre los dominios tratados por los sistemas de Programacioacuten Loacutegica con Restriccioneslos que maacutes ampliamente son investigados son sin duda los dominios finitos losnuacutemeros reales y racionales con restricciones aritmeacuteticas y los booleanos De hecho 3de los principales lenguajes de Programacioacuten Loacutegica con Restricciones son un claroejemplo de esta tendencia CHIP que proporciona restricciones sobre dominios finitosracionales y booleanos PrologIII que incluye racionales booleanos y listas y PLR(R)que maneja restricciones sobre reales

En la actualidad se pueden observar dos ramas principales en los avances en laprogramacioacuten con restricciones que parten de diferente base y por tanto usan diferentemetodologiacutea para resolver las restricciones Estas dos ramas son

bull Satisfaccioacuten de Restriccionesbull Resolucioacuten de Restricciones

335 Satisfaccioacuten de RestriccionesLa satisfaccioacuten de restricciones parte de los avances en Inteligencia Artificial (problemascombinatorios) y los Graacuteficos por computadora (sistema de SKETCHPAD[1963]expresando coherencia geomeacutetrica en el caso de anaacutelisis de escenas)

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

336 Resolucioacuten de RestriccionesLa resolucioacuten de restricciones difiere de la satisfaccioacuten de restricciones porque usavariables con dominios infinitos Ademaacutes las restricciones individuales son maacutescomplicadas por ejemplo ecuaciones no lineales En consecuencia los algoritmos deresolucioacuten de restricciones usan meacutetodos algebraicos y numeacutericos en vez decombinaciones y buacutesqueda Sin embargo existe metodologiacutea para discretizar losdominios infinitos en un nuacutemero finito de componentes y entonces se aplican lasteacutecnicas de Satisfaccioacuten de Restricciones

La programacioacuten con restricciones ha sido aplicada con eacutexito en numerosos campos Lasaplicaciones recientes incluyen [Detcher 1990]

bull Graacuteficos por Computadorabull Procesamiento del Lenguaje Natural (construccioacuten de analizadores eficientes)bull Sistemas de Bases de Datos (para reforzar yo mantener la consistencia de los

datosbull Problemas de Investigacioacuten Operativa (como la optimizacioacuten de problemas)bull Biologiacutea Molecular (secuenciacioacuten de ADN)bull Aplicaciones de Empresabull Ingenieriacutea Eleacutectrica (localizacioacuten de fallos)bull Disentildeo de Circuitos (para computar configuraciones)bull Planificacioacuten y organizacioacutenbull Configuracioacutenbull Juegosbull Configuracioacuten de horariosbull Criptoaritmeacuteticabull Coloreado de Grafosbull Razonamiento de hipoacutetesis quiacutemicas

En esta seccioacuten se va a dedicar una parte a cada una las aplicaciones maacutes estudiadas

337 Organizacioacuten de Proyectos

El problema de la Organizacioacuten es el proceso de asignar actividades a recursos en eltiempo En el caso general de organizacioacuten es un proceso de tomar decisiones donde sepueden tomar dos tipos de decisiones

bull Decisiones de situar temporalmente Cuaacutendo deberiacutea empezar cada actividadbull Decisiones de asignacioacuten de recursos Con queacute recursos deberiacutea ejecutarse cada

actividad

Los problemas de organizacioacuten y de asignacioacuten de recursos estaacuten basados enrestricciones Diferentes restricciones pueden afectar a la organizacioacuten la duracioacuten de

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

una actividad las fechas de contrato restricciones precedentes tiempos de transferenciao de inicio de la actividad la capacidad de los recursos y el reparto de recursos

La relajacioacuten de las restricciones principales caracteriza la calidad de los problemas deorganizacioacuten Estas restricciones son las relacionadas con fechas de entregaproductividad periodicidad de los cambios de herramientas niveles de inventariomargen de tiempo etc Algunas de estas restricciones pueden ser combinadas en lafuncioacuten de evaluacioacuten para la optimizacioacuten

Las aplicaciones industriales de las teacutecnicas de resolucioacuten de restricciones a losproblemas del tipo de asignacioacuten de tareas incluye[Detcher 1990]

bull Organizacioacuten de la produccioacutenbull Organizacioacuten y planificacioacuten del transporte y la logiacutesticabull Administracioacuten del traacuteficobull Disentildeo de horarios de recursos y de hombresbull Asignacioacuten de plantilla incluyendo aplicaciones de ingenieriacutea de organizacioacutenbull Problemas de empaquebull Configuracioacuten de maacutequinas

Claramente hay muchos problemas relacionados en el aacuterea de la organizacioacuten en lapraacutectica para los sistemas comerciales e industriales reales los liacutemites entre unos y otrosno estaacuten claros Es difiacutecil encontrar alguacuten problema real que se ajuste a un modelopreconcebido sin tener que descartar partes del problema y aproximar otras asiacute que hayque tomar estos modelos con amplio margen de aproximacioacuten

Otra complicacioacuten es el tema de la optimizacioacuten En algunos casos el usuario estaacutesatisfecho soacutelo con tener una manera automaacutetica de tener la respuesta pero la mayoriacuteaquieren tener al menos una buena respuesta y algunos el mejor resultado posible Perodebido a la gran complejidad combinatoria de la mayoriacutea de los problemas reales deorganizacioacuten una optimizacioacuten real es muy difiacutecil asiacute que en la mayoriacutea de los casos seusa la programacioacuten con restricciones en combinacioacuten con otras teacutecnicas tales comoAlgoritmos Geneacuteticos para dar soluciones casi oacuteptimas en un tiempo razonable

Normalmente los problemas de organizacioacuten se presentan usando variables conrestricciones fuertes y restricciones suaves Estas pueden ser agrupadas en la abstraccioacutendel problema de organizacioacuten Asiacute tiacutepicamente el tiempo de comienzo y fin y laduracioacuten de cada actividad se representan por variables con restricciones Los dominiosde estas variables son el rango de tiempo de intereacutes en la organizacioacuten requerida

Capiacutetulo 4 Anaacutelisis y Disentildeo

CAPIacuteTULO 4

ANAacuteLISIS Y DISENtildeO

41 Recopilacioacuten de informacioacuten

bull Documentos recopilados

bull Cataacutelogo de asignaturas prerrequisitos y semestrebull Cataacutelogo de aulas y su capacidadbull Cataacutelogo de catedraacuteticos horas disponiblesbull Mapa reticular de la carrerabull Reporte de grupos abiertos en periodo actualbull Reporte de alumnos por grupo en periodo actualbull Reporte de alumnos no inscritos por materia y semestrebull Reporte de simulacioacuten (si todos aprobaran sus cursos)bull Reporte del iacutendice de reprobacioacuten del semestre anteriorbull Encuesta aplicada para determinar los conocimientos requeridos

para impartir una materiabull Encuesta aplicada para obtener los conocimientos de cada

catedraacuteticobull Aacuterbol de conocimiento realizado para determinar los grupos por

abrir de cada asignaturabull Aacuterbol de conocimiento del perfil de las asignaturasbull Aacuterbol de conocimiento del perfil de los catedraacuteticosbull Aacuterbol de conocimiento de los criterios de apertura de materia

bull El proceso de la elaboracioacuten de los horarios

1 Elaboracioacuten de los reportes estadiacutesticos del periodo actual(grupos abiertos alumnos por grupo alumnos no inscritos pormateria simulacioacuten iacutendice de reprobacioacuten)

2 Caacutelculo de la estimacioacuten de alumnos por materia del proacuteximoperiodo

3 Caacutelculo del nuacutemero de grupos por materia requeridos para elproacuteximo periodo

4 Ajuste de los grupos por materia requeridos para el proacuteximoperiodo

5 Formacioacuten de los grupos en paquetes por semestre6 Asignacioacuten de hora y aula a los grupos

Capiacutetulo 4 Anaacutelisis y Disentildeo

7 Seleccioacuten de catedraacutetico al grupo y viceversa8 Ajustes en hora aula y catedraacutetico por grupo9 Elaboracioacuten del reporte condensado para publicacioacuten de horarios10 Elaboracioacuten de los reportes de grupos sin maestro maestros con

horas disponibles grupos sin aula

Para elaborar los horarios de los grupos y maestros un semestre determinado se tienenen consideracioacuten los siguientes elementos

bull El estadiacutestico de Servicios Escolares (SE)El departamento de SE cuenta con un sistema que registra todo el historial acadeacutemicode los alumnos inscritos en el ITZ las materias cursadas y sus calificaciones lasdiferentes carreras con su retiacutecula de asignaturas y sus prerrequisitos los grupos delsemestre actual la cantidad de alumnos en cada grupo de una asignatura los iacutendicesde reprobacioacuten de semestres anteriores las materias que puede cursar un alumno elproacuteximo semestre etceacutetera Toda esta informacioacuten plasmada en reportesdiferentes es la base para la generacioacuten de los horarios del proacuteximo semestre

bull Los grupos requeridosSobre la base de operaciones aplicadas a la informacioacuten estadiacutestica se obtiene lacantidad de grupos requeridos para abrirse el proacuteximo semestre este nuacutemero degrupos es la cantidad oacuteptima con la que se podraacuten inscribir los alumnos sin tenerproblemas de falta de espacio el alterar disminuyendo o aumentando el nuacutemero degrupos requeridos puede ocasionar alumnos con carga crediticia menor a lareglamentaria o que existan grupos con menos de 10 alumnos respectivamente

bull Las aulasEl ITZ cuenta con 52 aulas repartidas entre las 8 carreras a cada coordinador decarrera se le asigna determinado numero de aulas para su administracioacuten asiacute que alasignar el aula a cada grupo debe cuidar la correcta distribucioacuten de los grupos en loshorarios correspondientes y que la capacidad de las aulas no rebase el numero dealumnos inscritos

bull Los maestros y departamentosCada departamento esta formado por un jefe y los catedraacuteticos que forman laacademia de cada carrera los profesores pueden ser de tiempo completo frac34 y frac12tiempo o profesores de asignatura cada uno tiene un horario predeterminado en turnomatutino o vespertino los catedraacuteticos de un departamento cubren las asignaturas desu carrera y apoyan a otras carreras a cubrir las materias que tienen el perfil de esaacademia los catedraacuteticos son uno de los recursos mas difiacuteciles de controlar

Restricciones propias de los profesores

o Materia no tiene maestro

o Maestro tiene horas disponibles

Capiacutetulo 4 Anaacutelisis y Disentildeo

o Maestro tiene materias preferencia

o Maestro ha impartido materia

o Maestro solicita materia

o Maestro tiene restricciones de nuacutemero de materias a impartir

o Restriccioacuten no pueden darse maacutes de tres materias diferentes

o Maestro tiene una profesioacuten

o Maestro tiene un perfil

o Maestro tiene un aacuterea definida

o Maestro prefiere materias especialidad

o Maestro prefiere materias semestres iniciales

bull Las materias o asignaturasEn cada carrera se tiene un mapa reticular que tiene las materias de cada semestre elnombre los creacuteditos las horas de teoriacutea y praacutectica las ligas con los prerrequisitos lasmaterias de la especialidad seleccionada etc

Restricciones propias de las asignaturas

o Materia de 1deg semestre

o Materia de 2deg semestre

o Materia de 3deg semestre

o Materia de 4deg semestre

o Materia de 5deg semestre

o Materia de 6deg semestre

o Materia de 7deg semestre

o Materia de 8deg semestre

o Materia de 9deg semestre

o Materia de especialidad

o Materia tiene prerrequisito

o Materia es de baacutesicas

o Materia requiere conocimientos de Base de Datos

o Materia requiere conocimientos de Electroacutenica

o Materia la puede impartir cualquier maestro

Capiacutetulo 4 Anaacutelisis y Disentildeo

o Materia requiere conocimientos de Redes

o Materia requiere ser impartida por ingeniero

o Materia tiene complejidad alta

o Materia debe ser impartida por catedraacutetico con grado de maestriacutea

o Materia requiere conocimientos de Arquitectura de Computadoras

o Materia no tiene cadenas

o Materia de Administracioacuten

o Materia de Ingenieriacutea Industrial

o Materia requiere conocimientos de Aacutelgebra

o Materia requiere conocimientos de Caacutelculo Diferencial e Integral

o Materia requiere conocimientos de Quiacutemica Inorgaacutenica y Orgaacutenica

o Materia requiere una elaboracioacuten de proyectos

bull Las carrerasLas 8 carreras que se imparten en el ITZ son ordenadas por nuacutemero de alumnos

1 Ingenieriacutea en Sistemas Computacionales2 Licenciatura en Informaacutetica3 Licenciatura en Administracioacuten4 Ingenieriacutea Civil5 Ingenieriacutea Electromecaacutenica6 Ingenieriacutea Industrial7 Ingenieriacutea Quiacutemica8 Ingenieriacutea Bioquiacutemica

bull Los horarios de grupoUna vez determinados los grupos requeridos para el proacuteximo semestre se procede a laasignacioacuten de horario de acuerdo al nuacutemero de horas teoacuterico-praacutecticas se le asignaaula y un catedraacutetico responsable se fija tambieacuten un nuacutemero de alumnos y el tiempode laboratorio en caso de ser necesario

Capiacutetulo 4 Anaacutelisis y Disentildeo

Diagrama de flujo del proceso

Elaboracioacuten de los reportes estadiacutesticos

Caacutelculo de alumnos por materiaproacuteximo periodo

Caacutelculo del nuacutemero de grupos pormateria requeridos

Ajuste de los grupos por materiarequeridos

Formacioacuten de los grupos en paquetespor semestre

Asignacioacuten de hora y aula a los grupos

Asignacioacuten de catedraacutetico al grupo

Ajustes en hora aula y catedraacutetico porgrupo

Elaboracioacuten del reporte condensado

Elaboracioacuten de reportes varios

Todo cuadrabien

Si

No

Fin

Inicio

Capiacutetulo 4 Anaacutelisis y Disentildeo

42 Anaacutelisis de la informacioacuten

bull Cataacutelogo de asignaturas prerrequisitos y semestre

Funcioacuten Dar a conocer las asignaturas de una carrera los prerrequisitos de las materiasy el semestre al que pertenece una asignatura los creacuteditos miacutenimos que debe tenerun alumno para cursar la asignatura

Origen Reporte emitido por el departamento de Servicios Escolares

Campos del reporte nombre carrera nombre asignaturas creacuteditos miacutenimos materiasprerrequisito semestre al que pertenece la asignatura

bull Cataacutelogo de aulas y su capacidad

Funcioacuten Dar a conocer la nomenclatura y capacidad de las aulas y laboratorios del ITZ

Origen Departamento de Planeacioacuten

Campos del reporte Nombre del edificio nuacutemero de aula capacidad

bull Cataacutelogo de catedraacuteticos horas disponibles

Funcioacuten Dar a conocer los catedraacuteticos por departamento y sus horas disponibles frentea grupo

Origen Departamentos acadeacutemicos

Campos del reporte Nombre del departamento clave de profesor nombre del profesorcantidad de horas frente a grupo que debe tener

bull Mapa reticular de la carrera

Funcioacuten Mostrar el mapa reticular de una carrera graacuteficamente muestra las asignaturaspor semestre sus requisitos foacutermula crediticia etc

Origen Divisioacuten de Estudios Profesionales

Campos del reporte Nombre y clave de la carrera nombre y clave de las asignaturasfoacutermula crediticia (nuacutemero de horas teoacutericas nuacutemero de horas praacutecticas creacuteditos dela asignatura) las materias prerrequisito de otras materias de especialidad semestrede la asignatura nuacutemero de creacuteditos necesarios para poder cursar una asignatura

Capiacutetulo 4 Anaacutelisis y Disentildeo

bull Reporte de grupos abiertos en periodo actual

Funcioacuten Muestra los cursos que son ofertados en el periodo actual

Origen Departamento de Servicios Escolares

Campos del reporte Nombre de la carrera nombre de las asignaturas grupo de loscursos cantidad de alumnos inscritos nombre del catedraacutetico que lo imparte

bull Reporte de alumnos por grupo en periodo actual

Funcioacuten Muestra la cantidad de alumnos inscritos por semestre de una carrera

Origen Departamento de Servicios Escolares

Campos del reporte Nombre de la carrera semestres del 1 al 13 nuacutemero de alumnosinscritos por semestre

bull Reporte de alumnos no inscritos por materia y semestre

Funcioacuten Muestra los alumnos que pudieron inscribirse a una materia pero que poralguna razoacuten no lo hicieron

Origen Departamento de Servicios Escolares

Campos del reporte Nombre de la carrera nombre de la materia por semestre nuacutemerode alumnos que pudieron inscribirse y no lo hicieron

bull Reporte de simulacioacuten (si todos aprobaran sus cursos)

Funcioacuten Este reporte simula que todos los alumnos inscritos en los cursos acreditan elcurso entonces cuenta cuantos estudiantes pueden cursar todas las asignaturas comosi hubieran aprobado todos sus cursos actuales

Origen Departamento de Servicios Escolares

Campos del reporte Nombre de la carrera nombre de la asignatura y por semestre elnuacutemero de alumnos que pueden cursar una materia

bull Reporte del iacutendice de reprobacioacuten del semestre anterior

Funcioacuten Dar a los coordinadores los iacutendices de aprobacioacuten y reprobacioacuten de los cursosdel periodo anterior

Capiacutetulo 4 Anaacutelisis y Disentildeo

Origen Departamento de Servicios EscolaresCampos del reporte Nombre de la carrera nombre de la asignatura total de alumnos

aprobados total de alumnos reprobados del periodo anterior

bull Encuesta de conocimientos requeridos para impartir asignatura

Funcioacuten Obtener los datos de los conocimientos que debe poseer un catedraacutetico quequiera impartir una asignatura

Origen Academia de cada departamentoCampos del reporte Nombre de la asignatura objetivo de la asignatura carrera lista de

conocimientos requeridos para impartir la asignatura carrera adecuada del profesorque imparta la asignatura

bull Encuesta de conocimientos requeridos para perfil de profesores

Funcioacuten Obtener los datos de los conocimientos que debe posee un catedraacutetico

Origen Academia de cada departamento

Campos del reporte Nombre del catedraacutetico carrera del catedraacutetico conocimientos enaacutereas particulares de cada asignatura

43 Solucioacuten definida

Resolver el problema iniciando con la metodologiacutea ldquodivide y venceraacutesrdquo el problemageneral se dividiraacute en 6 problemas particulares

a) Sistema de Informacioacuten para control de horariosb) Sistema Experto para definicioacuten y generacioacuten de grupos

por abrirc) Moacutedulo Programacioacuten Loacutegica de Restricciones para

asignar horario a los gruposd) Moacutedulo Algoritmos Geneacuteticos para asignar aula a los

grupos ya definidose) Sistema Experto para definir catedraacutetico para

asignaturaf) Sistema Experto para asignar asignatura a catedraacutetico

Debido a la naturaleza y caracteriacutesticas de la informacioacuten todos lossistemas seraacuten realizados iniciando desde cero la recopilacioacuten deinformacioacuten el anaacutelisis el disentildeo y la programacioacuten de cada moacutedulo delsistema programado en Visual Basic y Bases de Datos en Access

Capiacutetulo 4 Anaacutelisis y Disentildeo

La principal ventaja de eacutesta opcioacuten es que el sistema estaacute hecho a la medida de lasnecesidades de la institucioacuten poniendo las restricciones en el formato que se tienenactualmente la desventaja es que se debe desarrollar TODO el sistema

44 Requerimientos del sistema

Los Motores de Inferencias deben ser disentildeados con las siguientes caracteriacutesticas

bull Buacutesqueda de primero en profundidad en ocasiones cuando se interactuacutee con elusuario este tipo de buacutesqueda seraacute utilizado para recorrer toda la base deconocimiento

bull Buacutesqueda heuriacutestica en la que el usuario deberaacute dar datos iniciales de por dondeempezar la buacutesqueda de alguna informacioacuten

bull Tomar informacioacuten de la Base de Conocimiento y guardarla en las bases de datos ytambieacuten inferir la informacioacuten y guardarla en las bases de datos para su posteriortratamiento e impresioacuten

bull Seleccionar la mejor opcioacuten y presentarla al usuario para los casos en que el usuariodecida cambiar alguacuten dato la maacutequina deberaacute presentar una opcioacuten y saber indicarel porqueacute la ldquoeligioacuterdquo

bull Dar otras soluciones ademaacutes de la oacuteptima teniendo porcentajes de aceptacioacuten paracada solucioacuten y permitiendo la buacutesqueda de maestros a impartir materias aulas paraalguacuten grupo o cantidad de grupos a abrir

bull Dar resultados en lenguaje natural de modo que el usuario entienda claramente loque la maacutequina le comunica

bull Trabajar interactivamente con el usuario para que eacuteste pueda cuestionar el porqueasignoacute un maestro abrioacute grupos asignoacute un aula etceacutetera

bull Tener capacidad para el uso del paradigma basado en analogiacuteas ldquoSi un maestro yadio la materia en alguacuten semestre entonces puede darla en este semestrerdquo o bien ldquoSieste paquete de materias estaacute completo entonces repite todo el paquete estesemestrerdquo

Interfaz de Usuario recibe y entrega informacioacuten interactuando con el usuario esdecir el usuario puede

1) alimentar hechos2) solicitar resultados y reportes3) cuestionar coacutemo se obtuvieron ciertas conclusiones

La interfaz de usuario debe tener las caracteriacutesticas siguientes

bull Comunicarse en el lenguaje del usuario sea un humano u otro dispositivobull Recibir hechos del usuario y almacenarlos en la base de hechosbull Presentar de manera amigable los objetivos a buscar e inferencias en pantallabull Dar de manera clara la explicacioacuten de la inferencia realizada

Capiacutetulo 4 Anaacutelisis y Disentildeo

bull Dar resultados por escrito en informesbull Proporcionar al usuario la facilidad de alimentar la base de conocimientosbull Dar al usuario la facultad de corregir las inferenciasbull Si el usuario es inexperto facilitar la ayuda necesaria

Seleccioacuten del lenguaje de programacioacuten

Visual Basic 60 proporciona a los programadores facilidad para desarrollar aplicacionescomplejas en poco tiempo (comparado con lo que cuesta programar en Visual C++ porejemplo)

El sistema necesita interfaces amigables al usuario con ventanas y botones emergentesen cualquier momento y Visual Basic 60 es una herramienta de disentildeo de aplicacionespara Windows en la que eacutestas se desarrollan en una gran parte a partir del disentildeo de unainterfaz graacutefica (pudiendo incorporar todos los elementos de este entorno informaacuteticoventanas botones cajas de diaacutelogo y texto botones de opcioacuten y de seleccioacuten barras dedesplazamiento graacuteficos menuacutes etc) En una aplicacioacuten Visual Basic 60 el programaestaacute formado por una parte de coacutedigo puro y otras partes asociadas a los objetos queforman la interfaz graacutefica Visual Basic 60 permite la programacioacuten de sus ventanasbotones y componentes de manera maacutes faacutecil que Java con sus Applets

En la parte del sistema de control de horarios que es un sistema de informacioacuten comuacutenlos programas que llenan de informacioacuten las bases de datos son muy parecidos unos conotros al hacer los procesos de altas bajas modificaciones consultas y validaciones seutilizan las ventajas que Visual Basic 60 ofrece de la Programacioacuten Orientada aObjetos (POO) eacutesta es una forma de programacioacuten que utiliza objetos ligados mediantemensajes para la solucioacuten de problemas Puede considerarse como una extensioacuten naturalde la programacioacuten estructurada en un intento de potenciar los conceptos demodularidad y reutilizacioacuten de coacutedigo Las caracteriacutesticas fundamentales de la POO sonabstraccioacuten encapsulamiento herencia y polimorfismo

Visual Basic 60 soporta la abstraccioacuten la encapsulacioacuten el polimorfismo y lareutilizacioacuten de coacutedigo Los objetos de Visual Basic estaacuten encapsulados es decircontienen su propio coacutedigo y sus propios datos

Manejador de Base de datos para el almacenamiento de la informacioacutenEl manejador de base de datos a utilizar seraacute Microsoft Access debido a que los usuariosque alimentan la base de conocimientos son expertos en diferentes aacutereas delconocimiento y tiene conocimientos limitados de los diferentes manejadores y estaacuten maacutesfamiliarizados con Microsoft Access Ademaacutes de que Access es transportablefaacutecilmente

Ademaacutes la cantidad y tipo de informacioacuten que se almacena en las tablas no requieremanejadores de bases de datos potentes o con caracteriacutesticas especiales

Capiacutetulo 4 Anaacutelisis y Disentildeo

Sistemagenerador dehorarios

SistemaExperto

Reglas

Criterios

Criterios por regla Conocimiento

Procesos

Capturaestadiacutesticas

Calcula grupos

Ajusta grupos

Sistema expertoasigna materia

Sistema Expertoasigna maestro

Asigna materia

Asigna catedraacutetico

Conocimientos

Procesos

Materias

Perfil general

Catedraacuteticos

Perfil materias

Perfil maestro

Asignacioacutenmateria-maestro

Asignacioacutenmaestro-materia

Buacutesqueda independiente

B adelante

B atraacutes

Abduccioacuten

Explicacioacuten

MoacuteduloPLR

Asigna horario

Datos

Arbol derestricciones Procesos

Materia

Grupos

Paquetes

Horario

Restriccioacuten 1

Restriccioacuten 3

Restriccioacuten 2

Restriccioacuten N

Genera random

Evaluacutea restricciones

Guarda grupo

MoacuteduloAlgoritmoGeneacutetico

Asigna aula

Operadores Geneacuteticos

Evaluacioacuten

Cruzamiento

Seleccioacuten

Mutacioacuten

Poblacioacuten Inicial

Versioacuten 1

Versioacuten 2

Versioacuten 3

Versioacuten N

Condensadodatos grales

Materia

Hora

Aula

Control escolar

Sistema deInformacioacuten

Aulas

Horarios

Grupos

Maestros

Datosestadiacutesticos

Datosgenerales

Datos condensado

Materias

45 MAPA CONCEPTUAL DEL PROYECTO

Capiacutetulo 4 Anaacutelisis y Disentildeo

Capiacutetulo 4 Anaacutelisis y Disentildeo

En la Figura 41 se muestra el mapa conceptual del proyecto La burbuja centralrepresenta el sistema generador de horarios y cada rama representa uno de los seismoacutedulos que lo componen las burbujas de cada rama contienen a su vez variasramificaciones en las que se muestran de manera graacutefica los componentes maacutesrepresentativos de los procesos utilizados la informacioacuten que manejan el conocimientoque utilizan y las restricciones involucradas

El moacutedulo Servicios Escolares contiene informacioacuten necesaria para la administracioacuten delos horarios en general y proporciona los datos para el funcionamiento de los demaacutesmoacutedulos

El moacutedulo Sistema Experto Creacioacuten de Grupos (SECG) muestra el conocimiento yprocesos utilizados para definir la cantidad de grupos a ofertar a partir de la informacioacutenestadiacutestica proporcionada por servicios escolares maacutes adelante en el documento seexplica a detalle su funcionamiento

En la Figura 41 se aprecia que los moacutedulos Sistema Experto AsignaCatedraacutetico(SEAC) y Sistema Experto Asigna Materia(SEAM) comparten las bases deconocimiento porque el conocimiento de un SE es la base de hechos del otro en amboscasos los procesos difieren solamente en la informacioacuten que utilizan y en los resultadosque producen noacutetese que existe un proceso que es ldquobuacutesqueda independienterdquo que puedecatalogarse como un Sistema Experto adicional que sirve para sugerir las asignaturasque puede impartir una persona que no estaacute dentro de las bases de datos de maestros ypor lo tanto su perfil tampoco estaraacute capturado en esta caso los hechos (su perfil deconocimientos) es capturado en el momento de la consulta

El moacutedulo de Algoritmos Geneacuteticos (AG) muestra los datos que recibe como se generauna poblacioacuten inicial el tratamiento que se le aplica por medio de los operadoresgeneacuteticos y la informacioacuten que se genera

Por uacuteltimo en la Figura 41 se nota tambieacuten el moacutedulo donde se utiliza la ProgramacioacutenLoacutegica de Restricciones que contiene 3 ramas donde una representa los datos recibidosy la informacioacuten generada otra rama denota un aacuterbol de restricciones que deben sersatisfechas por los paquetes de horarios la uacuteltima rama denota los procesos que se llevana cabo debe notarse que existe un proceso aleatorio que genera cada grupo un procesoque evaluacutea el grupo contra las restricciones y uno mas que guarda los grupos quecumplieron con todas

En este mapa conceptual no se muestra en que orden se ejecuta cada moacutedulo delproyecto la Figura 42 ilustra la secuencia de ejecucioacuten de los moacutedulos

La Figura 42 muestra el diagrama con la secuencia en que se van ejecutando losprocesos los datos que ingresan a cada moacutedulo y la informacioacuten que genera

Capiacutetulo 4 Anaacutelisis y Disentildeo

452 MAPAS CONCEPTUALES DE LOS MOacuteDULOS

Servicios Escolares

Datos Estadiacutesticos

Sistema Experto Creacioacuten de Grupos

Materias y grupos requeridos

Moacutedulo PLR

Materia + grupo + hora

Moacutedulo AG

Materia + grupo + hora + aula

Sistema ExpertoAsigna Catedraacutetico Sistema Experto

Asigna Materia

Sugiere profesorpara asignaturas

Sugiere asignaturapara profesor

Materia + grupo + hora + aula +profesor

Condensado final de materias

1

2

3

4

5 6

Fig 42 Diagrama de secuencia

Capiacutetulo 4 Anaacutelisis y Disentildeo

Como puede verse todo inicia cuando Servicios Escolares enviacutea la informacioacuten a laDivisioacuten de Estudios Profesionales (donde ldquohabitanrdquo los coordinadores) quienes son losresponsables de la elaboracioacuten de los horarios

Un primer proceso captura la informacioacuten que proviene de Servicios Escolares elsegundo moacutedulo define cuantos grupos deben programarse el tercer proceso asigna lahora a cada grupo el cuarto moacutedulo es el proceso que asigna las aulas los procesosquinto y sexto sirven para sugerir queacute catedraacutetico es el maacutes adecuado para cada grupo ycomo resultado final se tiene el condensado final de horarios para el siguiente semestre

En la Figura 43 se muestran los componentes del primer Sistema Experto utilizado paradefinir la cantidad de grupos que deben ofertarse el proacuteximo semestre en la partesuperior izquierda de la figura esta el coordinador de la carrera quien es el encargado decargar el conocimiento a las Bases de Conocimiento utilizando la interfaz de experto esla persona indicada para definir los criterios que tiene cada materia define las reglaspara la agrupacioacuten de los criterios y define en cada regla que tipo de ajuste se realiza

Experto

Coordinador

Interfaz Experto

Base deConocimientos

CriteriosReglasAjustes

Motor de Inferencia ListasMateriasGrupos requeridos

UsuarioMoacutedulo Explicacioacuten

Usuario(coordinador

novato)

Interfaz Usuario

Base Hechos

Informacion Estadiacutestica

Fig 43 Sistema Experto Generador de Grupos

Capiacutetulo 4 Anaacutelisis y Disentildeo

El usuario en la parte inferior de la figura puede ser el coordinador o su asistente y seencarga de capturar la informacioacuten estadiacutestica proporcionada por servicios escolares queson los datos de alumnos inscritos actualmente en cada materia el iacutendice de reprobacioacutenlos alumnos inscritos en la materias prerrequisito una simulacioacuten de los alumnosprobables para cursar esa materia si todos los inscritos aprueban todo y los alumnos quepueden cursar las materias pero no se inscribieron

Con los datos anteriores se realiza la siguiente operacioacuten

(Inscritos en materia iacutendice de reprobacioacuten de materia) 100 +Alumnos no inscritos +Alumnos en prerrequisito ndash (alumnos en prerrequisito iacutendice de reprobacioacuten) 100 +(Simulacioacuten ndash alumnos en prerrequisito ndash no inscritos) = Alumnos del proacuteximo semestre

Este uacuteltimo dato (alumnos del proacuteximo semestre) proporciona la cantidad de alumnospor materia que pueden inscribirse en los grupos seguacuten los estadiacutesticos de ServiciosEscolares pero no contempla preferencias de alumnos conveniencia de inscripcioacuten etc

Ofrecer los grupos necesarios para la inscripcioacuten de alumnos tomando el dato calculadoocasiona que al terminar las inscripciones existan grupos vaciacuteos grupos sobresaturadosalumnos con pocas materias y varios problemas mas

La finalidad de este Sistema Experto es realizar un ajuste al dato calculadoanteriormente para incluir en su caacutelculo todas aquellas caracteriacutesticas y experiencia delcoordinador para minimizar los problemas mencionados en el paacuterrafo anterior

Los ajustes pueden ser de varios tiposbull Ajuste draacutestico hacia abajo Se aplica una reduccioacuten del 50 al dato calculadobull Ajuste hacia arriba Se agrega un grupo maacutes al dato calculadobull Ajuste hacia abajo Se resta un grupo al dato calculadobull Ajuste numeacuterico Se ajusta utilizando la regla del redondeo de decimalesbull Ajuste draacutestico hacia arriba Se suman 2 oacute 3 grupos al dato calculado

Cuando utilizar una u otra regla estaacute definido por los criterios que cada materia contienenaturalmente y que con el paso de los semestres puede variar (aunque tambieacuten puedenpasar antildeos sin sufrir ninguacuten cambio)

La Figura 44 describe la utilizacioacuten de la teacutecnica de la Inteligencia Artificial llamadaProgramacioacuten Loacutegica de Restricciones para generar el condensado de grupos a partir deuna lista de materias que contiene solamente el nombre y la cantidad de grupos que sedeben abrir de una materia

Capiacutetulo 4 Anaacutelisis y Disentildeo

EoseX

Ugacgg

Lgc

s

ListasMaterias

Procesoformador depaquetes

Lista grupo +paquete

Moacutedulo generadorRandom Hora

Restricciones satisfec

Restriccio

Materia +hora

Moacuteduloverificadorrestriccione

s

Restriccionesnosatisfechas

Fig 44 Diagrama del moacutedulo Programacioacuten Loacutegica de Restriccione

xiste un proceso inicial que forma los ldquopaquetesrdquo de grupos esto es las materias serdenan por el semestre al que corresponden (generalmente son 6 materias poremestre) despueacutes para cada semestre se generan los grupos correspondientes si porjemplo se deben hacer 3 grupos de la materia X se generan tres registros de la materia y cada registro se etiqueta

Materia X grupo AA Materia X grupo AB y Materia X grupo AC

na vez que todas las materias han sido generadas y ldquoempaquetadasrdquo se pasan alenerador de horario en bloques de un paquete a la vez Este proceso funcionasignando un horario aleatorio a cada grupo despueacutes se verifica que cada grupo cumplaon todas las restricciones que son del tipo grupo no ldquochocardquo con otro del paqueterupo proporciona horario continuo al paquete grupo tiene horario de 2 horas por diacutearupo no deja horas vaciacuteas en paquete grupo cumple con todas sus horas asignadas etc

a Figura 45 muestra el disentildeo del Algoritmo Geneacutetico utilizado para asignar aula a losrupos que provienen del moacutedulo anterior (PLR) y recibe como datos de entrada unondensado de horarios (materia + grupo + hora)

Capiacutetulo 4 Anaacutelisis y Disentildeo

Procesoevaluacioacuten

Condensado

Materia +Grupo +Hora

Generador de versiones aleatorias

Genera versioacuten asigna aula

Versioacuten 3

Versioacuten 2

Versioacuten 1

Versioacuten N

Poblacioacuten inicial

ProcesoseleccioacutenProceso cruzamiento

clonacioacuten mutacioacuten

Versioacuten z

Versioacuten y

Versioacuten x

Versioacuten w

Nueva generacioacuten

Individuos aptos

Individuos no aptosReciclaje

CondensadoMateria + grupo +hora + aula

Fig 45 Diagrama del moacutedulo Algoritmo Geneacutetico

Capiacutetulo 4 Anaacutelisis y Disentildeo

Esta rama de la Inteligencia Artificial es utilizada generalmente para procesos deoptimizacioacuten y en esta ocasioacuten se utiliza para asignar las aulas al condensado dematerias

Al inicio se reciben como datos generales el condensado de materias La poblacioacuteninicial se obtiene copiando N veces (N versiones) este condensado y agregando a cadaregistro el nuacutemero de versioacuten y un aula asignada de manera aleatoria de esta manera seobtienen N versiones diferentes del condensado original

Cada versioacuten es entonces evaluada contando el nuacutemero de choques en aula y la cantidadde espacios vaciacuteos por aula a cada versioacuten se le genera un vector para guardar laevaluacioacuten (cromosoma de evaluacioacuten) y de esta manera se mide el grado de aptitud quetiene cada versioacuten

Las versiones que tienen menos choques y menos espacios vaciacuteos se consideran con ungrado de aptitud alto y son las mejores al contrario las que tienen muchos choquesson consideradas de aptitud baja no sirven para la reproduccioacuten y son desechadas

Una vez seleccionadas la mejores versiones se procede a la aplicacioacuten de los operadoresgeneacuteticos el primero que se aplica es el cruzamiento y consiste en elegir dos versionesde alta aptitud tomar segmentos seleccionados heuriacutesticamente de ellas y formar unnuevo individuo (una nueva versioacuten) se repite este proceso Y veces con las diferentesversiones hasta tener una nueva generacioacuten de N condensados de horarios

Repetir este proceso de generacioacuten evaluacioacuten y seleccioacuten durante Z generacionesaplicando cuando se necesite la clonacioacuten que es un proceso de copiar completamenteuna versioacuten (con alto grado de aptitud) a la nueva generacioacuten

Al principio la convergencia hacia horarios sin choques en aula es raacutepida pero al pasode las generaciones disminuye entonces se debe usar la mutacioacuten que es un proceso deacceder manualmente los registros de alguna versioacuten Zi en la generacioacuten Z y corregiralguacuten aula al final despueacutes de varias generaciones selecciones cruzamientosclonaciones y mutaciones se obtiene un condensado de aulas libres de choques y conpocos espacios vaciacuteos

En la Figura 46 se muestran los componentes del Sistema Experto utilizado para sugerircuales son los catedraacuteticos que mejor se desempentildeariacutean para impartir una asignaturatomando en cuenta los conocimientos que tiene un profesor (adquiridos a lo largo de sucarrera) y cuales son los conocimientos necesarios para impartir la caacutetedra de algunaasignatura

Capiacutetulo 4 Anaacutelisis y Disentildeo

Todo inicia haciendo una encuesta a los profesores acerca del perfil y los conocimientosnecesarios para poder impartir una asignatura el objetivo de la misma y los principalestemas que abarca todo lo anterior se captura en la base de hechos como el perfil de lamateria

Posteriormente se hace otra encuesta a los profesores pidieacutendoles que seleccionencuales son los conocimientos y el grado de dominio que tienen de los diferentes toacutepicosde las asignaturas esto se convierte en el perfil del catedraacutetico Por uacuteltimo con unproceso de induccioacuten se determina para cada materia cual es el grado de certeza con elcual puede un profesor impartir una asignatura

Experto

Coordinador

Interfaz Experto

Base deConocimientos

CatedraacuteticosConocimientos profesorPerfil profesor

Motor de Inferencia Lista profesores paraimpartir una materia

Jefedepartamento

Moacutedulo Explicacioacuten

Usuario(coordinador

novato)

Interfaz Usuario

Base Hechos

Perfil

Fig 46 Diagrama de Sistema Experto para sugerir profesor a asignatura

Capiacutetulo 4 Anaacutelisis y Disentildeo

Noacutetese en la Figura 47 que el coordinador captura el conocimiento referente a lasasignaturas (objetivo temas caracteriacutesticas necesarias para impartirla) y este esalmacenado en la Base de Conocimientos

Por otro lado un profesor debe llenar una encuesta en la que indique cuales son lostemas que domina y en que porcentaje lo hace (esto es el perfil del catedraacutetico) estainformacioacuten se almacena en la base de hechos--

El Motor de Inferencia hace los matchs respectivos y genera una lista de las materias quepuede impartir un profesor y con que grado de certeza estaacute capacitado para hacerlo

Por uacuteltimo el moacutedulo de explicacioacuten informa el porqueacute dio esa inferencia mostrando lascaracteriacutesticas de materia y profesor que hicieron match

Fig 47 Diagrama de Sistema Experto para sugerir asignaturas para catedraacutetico

Experto

Coordinador

Interfaz Experto

Base deConocimientos

MateriasCaracteriacutesticas MateriasPerfil materia

Motor de Inferencia Lista materias para unprofesor

Profesor

Moacutedulo Explicacioacuten

Profesor nuevoInterfaz Usuario

Base Hechos Perfil profesor

Capiacutetulo 4 Anaacutelisis y Disentildeo

453 Diagrama de contextoEn la Figura 48 se detallan los elementos que intervienen aportando y recibiendoinformacioacuten para el funcionamiento del sistema

Los departamentos acadeacutemicos aportan al sistema una lista con los catedraacuteticos quelaboran ahiacute incluye los datos personales de los profesores nuacutemero de tarjeta nombrecarrera etc Los coordinadores de carrera son los responsables de la elaboracioacuten de loshorarios estos funcionarios son la pieza fundamental de este proceso porque aportan susconocimientos para

bull Definir el ajuste al dato estadiacutestico proporcionado por Servicios Escolaresbull Definir las restricciones para la creacioacuten de los paquetes de gruposbull Definir las restricciones para asignar hora a cada grupobull La distribucioacuten de los grupos en las aulasbull Asignar la asignatura que mejor puede impartir un catedraacuteticobull Asignarle a una asignatura al profesor que mejor puede impartirla

El departamento de Servicios Escolares es el iniciador del proceso de la elaboracioacuten dehorarios aporta los datos estadiacutesticos obtenidos de la situacioacuten escolar actual de losalumnos cada alumno estaacute inscrito en alguna de las 8 carreras que se ofrecen en elInstituto estaacute cursando entre 5 y 8 asignaturas por semestre en cada periodo acredita oreprueba algunas materias En cada carrera se tiene un mapa reticular que incluyeaproximadamente 50 asignaturas con prerrequisitos creacuteditos horas en aula horas enlaboratorio orden por semestre etc

El departamento Divisioacuten de Estudios Profesionales (donde estaacuten adscritos loscoordinadores de carrera) es el responsable de distribuir las aulas disponibles delInstituto entre los distintos coordinadores las aulas son un recurso escaso y por lo tantovalioso de esta distribucioacuten depende en gran medida la holgura o estrechez que tienenlos coordinadores para asignar las aulas a los grupos creados

Los profesores son otro de los recursos valiosos de una institucioacuten son los responsablesde transmitir sus conocimientos a los alumnos cada catedraacutetico posee conocimientos dediversas aacutereas toacutepicos y ramas del saber humano el perfil del catedraacutetico estaacute enrelacioacuten directa con el dominio que tiene de cada una de ellas y varia desde unconocimiento superficial hasta el dominio total de un aacuterea

Los generadores random de los moacutedulos PLR y AG proporcionan la informacioacutennecesaria generada de manera aleatoria para el funcionamiento de esos moacutedulos

A los coordinadores y alumnos se les proporciona un condensado de horarios losalumnos conocen los grupos a los que se pueden inscribir las horas las aulas y loscatedraacuteticos que las impartiraacuten

Capiacutetulo 4 Anaacutelisis y Disentildeo

Sistema para laelaboracioacuten de

horarios

Departamentosacadeacutemicos

Jefes dedepartamento

Divisioacuten deEstudios

Profesionales

DepartamentoServiciosEscolares

Alumnos

Coordinadoresde carrera

Coordinadoresde carrera

Lista catedraacuteticos disponibles

Conocimientos

Reporte datos estadiacutesticos

Lista aulas disponibles

Condensado de horarios

Horarios disponibles

Lista horarios profesores

Profesores Generadoresaleatorios

Perfil maestro

Horas y aulas aleatorios

Fig 48 Diagrama de contexto del proyecto

Cap

iacutetulo

4

Anaacute

lisis

y D

isentilde

o

Sist

ema

para

lael

abor

acioacute

n de

hora

rios

Dep

arta

men

tos

acad

eacutemic

os

Div

isioacute

n de

Estu

dios

Prof

esio

nale

s

Dep

arta

men

toSe

rvic

ios

Esco

lare

sC

oord

inad

ores

de c

arre

ra

List

a ca

tedr

aacutetic

os d

ispo

nibl

es

Con

ocim

ient

osR

epor

teda

tose

stad

iacutestic

osLi

sta

aula

s dis

poni

bles

Prof

esor

esG

ener

ador

esal

eato

rios

Perf

il m

aest

roH

oras

y a

ulas

Fig

49

Dia

gram

a de

func

ione

s fun

dam

enta

les (

entra

das)

Cap

tura

supe

rfil

deco

noci

mie

nto

Cap

tura

las

aula

s

Enviacute

a da

tos

Cap

tura

suco

noci

mie

nto

Enviacute

a da

tos

depr

ofes

ores G

ener

ada

tos

Cla

ve n

ombr

eho

ras

turn

o

Tips

tru

cos

cono

cim

ient

ohe

uriacutes

tico

Cla

ve c

apac

idad

ed

ifici

o

Alu

mno

sin

scrit

os

sim

ulac

ioacuten

no

insc

ritos

iacutend

ice

repr

obac

ioacuten

Toacutepi

cos y

tem

asqu

e do

min

aA

ula

y ho

raal

eato

rios

Capiacutetulo 4 Anaacutelisis y Disentildeo

Sistema para laelaboracioacuten de

horarios

Coordinadoresde carrera

Jefes dedepartamento Alumnos

Fig 410 Diagrama de funciones fundamentales (salidas)

Imprimecondensado

Imprime lista Imprimehorarios

Maestro materiahora

Materia grupohora aula

maestrosugerido

Condensado de horarios Horarios disponibles

Lista horarios profesores

Materia grupohora aula

maestro

Capiacutetulo 4 Anaacutelisis y Disentildeo

454 Diagrama entidad - relacioacuten

NOTA Los siguientes diagramas muestran las tablas utilizadas por cada moacutedulo paramayor claridad se repitieron las tablas necesarias para representar cada parte del sistemapero en la base de datos no existe tal duplicacioacuten

Este diagrama contiene las tablas del moacutedulo administrativo de los horarios en unprincipio eacutestas eran las uacutenicas tablas de un sistema de control de horarios

FK_HORARIOS_REFERENCE_MATERIASFK_MATERIAS_REFERENCE_SERVICIO

FK_MATERIAS_REFERENCE_RAMA_MAT FK_MATERIAS_REFERENCE_CARRERAS

HORARIOS

GrupoId_aulaHora_inicioHora_lunesHora_martesHora_miercolesHora_juevesHora_viernesHora_sabadoObservacionesPeriodoAnioid_materiaId_catedratico

Text(2)INTEGERINTEGERText(6)Text(6)Text(6)Text(6)Text(6)Text(6)Text(30)Text(20)INTEGERINTEGERSMALLINT

ltfk3gt

ltfk2gtltfk1gt

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave de asig prerequisitoclave de asig prerequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

MATERIAS

SERVICIOS_ESCOLARESId_materiaINSCRITOSNO INSCRITOSSIMULACIONPROXIMO SEMESTREGRUPOS REQUERIDOSIndice de reprobacionperiodoantildeoGrupos ajustadoAlumnos ajustadoId_ajusteId_regla

INTEGERSMALLINTSMALLINTSMALLINTSMALLINTDOUBLEDOUBLEText(7)INTEGERSMALLINTSMALLINTINTEGERSMALLINT

RAMA_MATERIA

Id_ramaNombre_rama

COUNTERText(30)

ltpkgt

CARRERAS

Id_CarreraNombre_carrera

Text(15)Text(50)

ltpkgt

Fig 411 Diagrama entidad ndash relacioacuten del moacutedulo administrativo

Capiacutetulo 4 Anaacutelisis y Disentildeo

Este diagrama muestra las tablas donde se almacena el conocimiento de loscoordinadores para que el Sistema Experto del moacutedulo sugiera y aplique el ajuste aldato de cantidad de grupos sugerido por Servicios Escolares La relacioacuten entre las tablasva generando las reglas de produccioacuten

MATERIAS

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave asig prerrequisitoclave asig prerrequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

REGLAS

DescriId_reglaId_ajusteTot_peso

Text(70)COUNTERINTEGERINTEGER

ltpkgtltfkgt

FK_MATERIAS_REFERENCE_SERVICIO

FK_HECHOS_R_REFERENCE_CRITERIO

FK_HECHOS_R_REFERENCE_REGLAS

FK_HISTORIA_REFERENCE_REGLAS

FK_HISTORIA_REFERENCE_CRITERIO

FK_REGLAS_REFERENCE_AJUSTES

FK_HISTORIA_REFERENCE_MATERIAS

FK_HISTORIA_REFERENCE_CRITERIO

SERVICIOS_ESCOLARES

Id_materiaINSCRITOSNO INSCRITOSSIMULACIONPROXIMO SEMESTREGRUPOS REQUERIDOSIndice de reprobacioacutenperiodoantildeoGrupos ajustadoAlumnos ajustadoId_ajusteId_regla

INTEGERSMALLINTSMALLINTSMALLINTSMALLINTDOUBLEDOUBLEText(7)INTEGERSMALLINTSMALLINTINTEGERSMALLINT

HECHOS_REGLAS

Id_criterioId_reglaPromedio

INTEGERINTEGERINTEGER

ltfk2gtltfk1gt

CRITERIOS

Id_criterioDescripcion

COUNTERText(60)

ltpkgt

HISTORIAL_CRITERIOS

Id_criterioId_reglaPeso de la regla

INTEGERINTEGERSMALLINT

ltfk2gtltfk1gt

AJUSTES

TipoDescripcionId_ajuste

Text(25)MemoCOUNTER ltpkgt

HISTORIAL_MATERIA

Id_materiaId_criterioprioridad

INTEGERINTEGERSMALLINT

ltfk2gtltfk1gt

Fig 412 Diagrama E-R del moacutedulo para determinar y ajustar nuacutemero de grupos

Capiacutetulo 4 Anaacutelisis y Disentildeo

En este diagrama se muestra la base de datos que almacena la informacioacuten quemanipula el moacutedulo Algoritmo Geneacutetico las tablas maacutes representativas sonPOBLACION donde se guardan todas las versiones que forman las generaciones dehorarios y CROMOSOMAS que almacena el registro de evaluacioacuten de cada versioacuten dehorarios

FK_HORARIO__REFERENCE_AULAS

FK_HORARIO__REFERENCE_POBLACIO

FK_MATERIAS_REFERENCE_TIPO_HOR

FK_POBLACIO_REFERENCE_AULAS

FK_POBLACIO_REFERENCE_MATERIAS

FK_POBLACIO_REFERENCE_CROMOZOM1 1

HORARIO_AULA

VersionAulaLunesMartesMiercolesJuevesViernesSabadoHoraId_aula

INTEGERText(6)SMALLINTSMALLINTSMALLINTSMALLINTSMALLINTSMALLINTSMALLINTINTEGER

ltfk2gt

ltfk1gt

AULAS

Id_aulaCapacidad_aulaNombre_aulaDisponible

COUNTERSMALLINTText(50)YesNo

ltpkgt

POBLACION

Id_materiaGrupoId_catedraticoAulaHora_inicioHora_lunesHora_martesHora_miercolesHora_juevesHora_viernesVersionId_aulaPeriodoAnio

INTEGERText(4)INTEGERText(4)INTEGERText(6)Text(6)Text(6)Text(6)Text(6)INTEGERINTEGERText(10)INTEGER

ltfk2gt

ltfk1gtltfk3gt

MATERIAS

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave de asig prerequisitoclave de asig prerequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

TIPO_HORARIO

Tipo_horario

DescripcionLunes

MartesMiercoles

Jueves

ViernesSabado

COUNTER

Text(20)SMALLINT

SMALLINTSMALLINT

SMALLINT

SMALLINTSMALLINT

ltpkgt

CROMOZOMAS

VersionSemestreChoquesVacias

INTEGERINTEGERINTEGERINTEGER

ltpkgt

Fig 413 Diagrama E-R del moacutedulo para asignar aulas (Algoritmo Geneacutetico)

Capiacutetulo 4 Anaacutelisis y Disentildeo

En esta Figura 414 se pueden observar las tablas involucradas en el proceso paragenerar los paquetes de materias por semestre y la asignacioacuten de horario a cada grupodel paquete utilizando la teacutecnica Programacioacuten Loacutegica de Restricciones noacutetese que noexiste una tabla de restricciones eacutestas se aplican por software a cada grupo generado

FK_MATERIAS_REFERENCE_SERVIC

FK_MATERIAS_REFERENCE_TIPO_H

FK_HORARIOS_REFERENCE_MATERI

MATERIA

Id_materiMateriNum de HrsNum de HrsClave deId_CarrerCreditoSemestrObservacioneTroncoalumnos porclave de asigclave de asigId_ramSuma_maOrdeTipo_horari

INTEGEText(40SMALLINSMALLINText(8Text(15SMALLINSMALLINText(60YesNSMALLINText(40Text(40INTEGESMALLINSMALLININTEGE

ltpkfk4

ltfk1

ltfk3

ltfk2

SERVICIOS_ESCOLARE

Id_materiINSCRITONOSIMULACIOPROXIMOGRUPOSIndice deperiodantildeGruposAlumnosId_ajustId_regl

INTEGESMALLINSMALLINSMALLINSMALLINDOUBLDOUBLText(7INTEGESMALLINSMALLININTEGESMALLIN

TIPO_HORARI

Tipo_horariDescripcioLuneMarteMiercoleJueveVierneSabad

COUNTEText(20SMALLINSMALLINSMALLINSMALLINSMALLINSMALLIN

ltpk

HORARIO

GrupId_aulHora_iniciHora_luneHora_marteHora_miercoleHora_jueveHora_vierneHora_sabadObservacionePeriodAniid_materiId_catedratic

Text(2INTEGEINTEGEText(6Text(6Text(6Text(6Text(6Text(6Text(30Text(20INTEGEINTEGESMALLIN

ltfk3

ltfk2ltfk1

Fig414 Diagrama E-R del moacutedulo para asignar horario (PLR)

Capiacutetulo 4 Anaacutelisis y Disentildeo

FK_HECHOS_M_REFERENCE_MATERIAS

FK_HECHOS_M_REFERENCE_CATEDRAT

HECHOS_MAT_PROF

Id_catedraticoId_materiaPromedio

SMALLINTSMALLINTSMALLINT

ltpkfk1gtltpkfk2gt

FK_PERFIL_C_REFERENCE_CATEDRAT

FK_PERFIL_C_REFERENCE_PERFILES

FK_PERFILES_REFERENCE_TIPO_PER

FK_PROF_PAR_REFERENCE_CATEDRAT

FK_PROF_PAR_REFERENCE_MATERIAS

PERFIL_CATEDRATICO

Id_catedraticoId_perfilPrioridad_perfil_cate

SMALLINTINTEGERSMALLINT

ltfk1gtltfk2gt

CATEDRATICOS

Id_catedraticoApellido_paternoApellido_maternoNombre_catedraticoTitulo_catedraticoSuma_cate

SMALLINTText(20)Text(20)Text(20)Text(30)SMALLINT

ltpkgt

PERFILES

Id_perfilId_tipoDescripcion_perfil

COUNTERINTEGERText(60)

ltpkgtltfkgt

TIPO_PERFIL

Id_tipoTipo_perfil

COUNTERText(30)

ltpkgt

PROF_PARA_MAT

Id_materiaId_catedraticoPorcentaje_cate

INTEGERSMALLINTSMALLINT

ltpkfk2gtltpkfk1gt

MATERIAS

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave de asig prerequisitoclave de asig prerequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

Fig 415 Diagrama E-R del moacutedulo designa mejor catedraacutetico (Sistema Experto)

Capiacutetulo 4 Anaacutelisis y Disentildeo

En las figuras de la paacutegina anterior y eacutesta (Fig 415 y 416) se muestran las tablasutilizadas por los Sistemas Expertos para sugerir que materias puede impartir unprofesor y tambieacuten sugiere que profesores pueden impartir una asignatura

FK_PERFILES_REFERENCE_TIPO_PER

FK_PERFIL_M_REFERENCE_MATERIAS

FK_PERFIL_M_REFERENCE_PERFILES

FK_MAT_PARA_REFERENCE_MATERIAS

FK_MAT_PARA_REFERENCE_CATEDRAT

FK_HECHOS_M_REFERENCE_MATERIAS

FK_HECHOS_M_REFERENCE_CATEDRAT

PERFILES

Id_perfilId_tipoDescripcion_perfil

COUNTERINTEGERText(60)

ltpkgtltfkgt

TIPO_PERFIL

Id_tipoTipo_perfil

COUNTERText(30)

ltpkgt

PERFIL_MATERIA

Id_materiaId_perfilPrioridad_perfil_mat

INTEGERINTEGERINTEGER

ltfk2gtltfk1gt

MATERIAS

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave de asig prerequisitoclave de asig prerequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

MAT_PARA_PROF

Id_catedraticoId_materiaPorcentaje_mat

SMALLINTINTEGERSMALLINT

ltpkfk1gtltpkfk2gt

CATEDRATICOS

Id_catedraticoApellido_paternoApellido_maternoNombre_catedraticoTitulo_catedraticoSuma_cate

SMALLINTText(20)Text(20)Text(20)Text(30)SMALLINT

ltpkgt

HECHOS_MAT_PROF

Id_catedraticoId_materiaPromedio

SMALLINTSMALLINTSMALLINT

ltpkfk1gtltpkfk2gt

Fig 416 Diagrama E-R del moacutedulo selecciona mejor materia (sistema experto)

Capiacutetulo 4 Anaacutelisis y Disentildeo

455 Diccionario de la Base de Datos

Nombre HORARIOS_CON_CONOCIMIENTOComentario Base de datos del sistema ldquoGeneracioacuten de horarios mediante Sistemas

Basados en ConocimientordquoDBMS Microsoft Access 97

Lista de Tablas

Nombre Tipo deObjeto

AJUSTES TableAULAS TableCARRERAS TableCATEDRATICOS TableCRITERIOS TableCROMOSOMAS TableHECHOS TableHECHOS_MAT_PROF TableHECHOS_PROF_MAT TableHECHOS_REGLAS TableHISTORIAL_CRITERIOS TableHISTORIAL_MATERIA TableHORARIO_AULA TableHORARIOS TableMAT_PARA_PROF TableMATERIAS TablePERFIL_CATEDRATICO TablePERFIL_MATERIA TablePERFILES TablePOBLACION TablePROF_PARA_MAT TableRAMA_MATERIA TableREGLAS TableSERVICIOS_ESCOLARES TableTIPO_HORARIO TableTIPO_PERFIL Table

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla AJUSTESFuncioacuten Almacena los datos de los tipos de ajuste que se aplican por el Sistema Experto al

dato estadiacutestico que define cuantos grupos se deben abrir de cada materia

Lista de columnas de la tabla AJUSTESNombre Tipo de

DatoLong Llave

Primaria ForaneaComentario

Tipo Text(25) 25 Nombre del tipo de ajusteDescripcioacuten Memo Explicacioacuten del ajuste a realizar al nuacutemero

de grupos calculados segun estadisticosId_ajuste COUNTER 4 X Identificador del ajuste

Tabla AULASFuncioacuten Almacena los datos de las aulas que existen en cada edificio del instituto

Lista de columnas de la tabla AULASNombre Tipo de

DatoLong Llave

Primaria ForaneaComentario

Id_aula COUNTER 4 X Identificador del aulaCapacidad_aula SMALLINT 4 Nuacutemero maacuteximo de alumnos en el

aulaNombre_aula Text(50) 50 Nombre del aula (edificio+numero)Disponible YesNo 1 Disponibilidad del aula

Tabla CARRERASFuncioacuten Almacena los datos de las carreras que se imparten en el ITZ

Lista de columnas de la tabla CARRERASNombre Tipo de

DatoLong Llave

Primaria ForaneaComentario

Id_Carrera Text(15) 15 X Clave de la carreraNombre_carrera Text(50) 50 Nombre de la carrera

Tabla CATEDRATICOSFuncioacuten Almacena los datos de los CATEDRAacuteTICOS que imparten clases en las diferentes carreras del

Instituto Se utilizan los datos en los Sistemas Expertos que definen cual es el mejor catedraacuteticopara impartir una materia

Capiacutetulo 4 Anaacutelisis y Disentildeo

Lista de columnas de la tabla CATEDRATICOSNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_catedratico SMALLINT 4 X Nuacutemero de tarjeta del catedraacuteticoApellido_paterno Text(20) 20 Apellido paterno del catedraacuteticoApellido_materno Text(20) 20 Apellido materno del catedraacuteticoNombre_catedratico Text(20) 20 Nombre del catedraacuteticoTitulo_catedratico Text(30) 30 Grado de estudios y tiacutetulo del

catedraacuteticoSuma_cate SMALLINT 4 Suma total de las pesos de los perfiles

pertenecientes al catedraacutetico

Tabla CRITERIOSFuncioacuten Tabla de los criterios utilizados por el experto para crear las reglas que definen el tipo de

ajuste inferido por el Sistema Experto para definicioacuten de grupos por abrir

Lista de columnas de la tabla CRITERIOSNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_criterio COUNTER 4 X Identificador del criterio aplicado auna materia para crear grupos

Descripcion Text(60) 60 Descripcioacuten del criterio

Tabla CROMOSOMASFuncioacuten Almacena los datos de la evaluacioacuten de cada versioacuten de horarios generada ya sea por la

poblacioacuten inicial o por los operadores geneacuteticos se genera un cromosoma por cadasemestre en cada versioacuten

Lista de columnas de la tabla CROMOSOMASNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Version INTEGER 4 X Nuacutemero de individuo o versioacuten dehorarios

Semestre INTEGER 4 Semestre al que pertenece el datoChoques INTEGER 4 Nuacutemero de choques de versioacuten y

semestreVacias INTEGER 4 Nuacutemero de aulas vaciacuteas del individuo

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla HECHOS_MAT_PROFFuncioacuten Esta tabla almacena el resultado de la inferencia del Sistema Experto materias para

profesor indica para cada catedraacutetico las materias y el porcentaje de certeza con quepuede impartirlas

Lista de columnas de la tabla HECHOS_MAT_PROFNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_catedratico SMALLINT 4 X Identificador del catedraacuteticoId_materia SMALLINT 4 X Identificador de la asignaturaPromedio SMALLINT 4 Porcentaje de certeza con que un

profesor puede impartir una materia(resultado de la inferencia)

Tabla HECHOS_PROF_MATFuncioacuten Almacena los datos de la inferencia del Sistema Experto que calcula para una materia

determinada cuales son los mejores maestros para impartirla

Lista de columnas de la tabla HECHOS_PROF_MATNombre Tipo de

DatoLongitud

LlavePrimaria Foraacutenea

Comentario

Id_catedratico SMALLINT 4 X Identificador del catedraacuteticoId_materia SMALLINT 4 X Identificador de la asignaturaPromedio SMALLINT 4 Porcentaje de certeza con que una

materia puede ser impartida por unprofesor (resultado de la inferencia)

Tabla HECHOS_REGLASFuncioacuten Almacena los porcentajes de certeza con que se dispara una regla del Sistema Experto

que define los grupos por abrir

Lista de columnas de la tabla HECHOS_REGLASNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_criterio SMALLINT 4 X Identificador del criterioId_regla SMALLINT 4 X Identificador de la reglaPromedio INTEGER 4 Porcentaje de certeza con que una

regla dispara un criterio

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla HISTORIAL_CRITERIOS

Funcioacuten Almacena las reglas formadas por los criterios utilizados por el Sistema Experto paradefinir los grupos por abrir

Lista de columnas de la tabla HISTORIAL_CRITERIOSNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_criterio INTEGER 4 X Identificador del criterio pertenecientea la regla

Id_regla INTEGER 4 X Identificador de la reglaPeso de la regla SMALLINT 4 Peso del criterio en la regla

Tabla HISTORIAL_MATERIAFuncioacuten Tabla que almacena la definicioacuten de cada materia con base en los criterios utilizados por

las reglas para definir por materia el nuacutemero de grupos por abrir

Lista de columnas de la tabla HISTORIAL_MATERIANombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materia para suasignacioacuten de criterios

Id_criterio INTEGER 4 X Identificador del criterio que se aplicaa la materia para describirla

Prioridad SMALLINT 4 Peso del criterio en la materia

Tabla HORARIOS

Funcioacuten Almacena los datos del condensado final de horarios aquiacute se almacena el producto finaldel sistema para su posterior publicacioacuten y distribucioacuten entre la comunidad tecnoloacutegica

Lista de columnas de la tabla HORARIOSNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materiaGrupo Text(2) 2 Identificador del grupo A B CId_catedratico SMALLINT 4 X Catedraacutetico asignado al grupoId_aula INTEGER 4 X Aula asignada al grupoHora_inicio INTEGER 4 Hora de inicio del grupoHora_lunes Text(6) 6 Horas que se imparte el grupo el diacutea

lunes

Capiacutetulo 4 Anaacutelisis y Disentildeo

Hora_martes Text(6) 6Hora_miercoles Text(6) 6Hora_jueves Text(6) 6Hora_viernes Text(6) 6Hora_sabado Text(6) 6Observaciones Text(30) 30 Observaciones al grupoPeriodo Text(20) 20 Periodo Ene-jun o Ago-dicAnio INTEGER 4 Antildeo en que se utiliza el horario

Tabla HORARIO_AULAFuncioacuten Tabla auxiliar utilizada como almacenamiento temporal durante el proceso de evaluacioacuten

en el Algoritmo Geneacutetico guarda los datos de ocupacioacuten choques y no utilizacioacuten decada aula por hora diacutea y versioacuten

Lista de columnas de la tabla HORARIO_AULANombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Version INTEGER 4 X Nuacutemero de individuo o versioacutenAula Text(6) 6 Nombre del aulaLunes SMALLINT 4 Nuacutemero de horas que se utiliza el aula

el diacutea lunesMartes SMALLINT 4Miercoles SMALLINT 4Jueves SMALLINT 4Viernes SMALLINT 4Sabado SMALLINT 4Hora SMALLINT 4 Hora de utilizacioacuten del aulaId_aula INTEGER 4 X Identificador del aula en la versioacuten

Tabla MATERIASFuncioacuten Esta es una de las principales tablas del proyecto se utiliza en todos los moacutedulos del

sistema contiene informacioacuten base para caacutelculos diversos ademaacutes contiene tambieacuten lasllaves de diferentes tablas que describen de manera de manera especial a las materias

Lista de columnas de la tabla MATERIASNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia COUNTER 4 X Identificacioacuten de la materia llaveprincipal

Materia Text(40) 40 Nombre de la materiaNum de Hrs prac SMALLINT 4 Nuacutemero de horas praacutecticasNum de Hrs teo SMALLINT 4 Nuacutemero de horas teoacutericasClave de Asig Text(8) 8 Clave oficial de la materiaId_Carrera Text(15) 15 X Carrera a la que pertenece la materiaCreditos SMALLINT 4 Creacuteditos de la materia

Capiacutetulo 4 Anaacutelisis y Disentildeo

Semestre SMALLINT 4 Semestre en que se imparte la materiaObservaciones Text(60) 60Tronco comun YesNo 1 Definicioacuten de especialidad o tronco

comuacutenalumnos porgrupo

SMALLINT 4 Capacidad sugerida de los grupos deesta materia

clave de asigprerequisito

Text(40) 40 Clave de asignatura del prerrequisito

clave de asigprerequisito1

Text(40) 40 Clave de asignatura del prerrequisito

Id_rama INTEGER 4 X Identificador de la rama a la quepertenece la materia

Suma_mat SMALLINT 4 Suma total de los perfilespertenecientes a la materia

Orden SMALLINT 4 Es el nuacutemero de materia en un paqueteTipo_horario INTEGER 4 X El tipo de horario asignado a materia

Tabla MAT_PARA_PROFFuncioacuten La tabla almacena para cada catedraacutetico las asignaturas que puede impartir y el grado

de certeza con que puede hacerlo se almacena en esta tabla el resultado de la inferenciadel Sistema Experto

Lista de columnas de la tabla MAT_PARA_PROFNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_catedratico SMALLINT 4 X Nuacutemero de tarjeta del profesorId_materia INTEGER 4 X Identificador de la materiaPorcentaje_mat SMALLINT 4 Porcentaje de certeza con que un

profesor puede impartir una materia

Tabla PERFILESFuncioacuten Tabla que contiene una relacioacuten de todas las caracteriacutesticas de las materias

caracteriacutesticas necesarias para poder impartirlas es al mismo tiempo la tabla quecontiene la relacioacuten general de los conocimientos que poseen los profesores

Lista de columnas de la tabla PERFILESNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_perfil COUNTER 4 X Identificador del perfil paraasignaciones de materias acatedraacuteticos

Id_tipo INTEGER 4 X Identificador del tipo del perfilDescripcion_perfil Text(60) 60 Descripcioacuten de una caracteriacutestica del

perfil de una materia o un catedraacutetico

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla PERFIL_CATEDRATICOFuncioacuten Tabla que contiene el perfil de todos los catedraacuteticos (pueden llamarse las reglas) del

Sistema Experto que recomienda profesores para las materias el perfil de un catedraacuteticoesta definido por los conceptos que domina de las materias

Lista de columnas de la tabla PERFIL_CATEDRATICONombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_catedratico SMALLINT 4 X Identificador del catedraacutetico paradefinicioacuten de su perfil acadeacutemico

Id_perfil INTEGER 4 X Identificador del perfil que define aun catedraacutetico

Prioridad_perfil_cate SMALLINT 4 Porcentaje en que contribuye elperfil especificado en la definicioacutendel catedraacutetico

Tabla PERFIL_MATERIAFuncioacuten Esta tabla almacena las reglas que definen el perfil de una materia contiene las

caracteriacutesticas y temas que forman el temario de la materia

Lista de columnas de la tabla PERFIL_MATERIANombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materia en laregla de la materia

Id_perfil INTEGER 4 X Identificador del perfilperteneciente a una materia

Prioridad_perfil_mat INTEGER 4 Porcentaje en que contribuye esteperfil particular a definir unamateria

Tabla PROF_PARA_MATFuncioacuten Esta tabla almacena la inferencia del Sistema Experto para determinar cuales son los

mejores profesores para impartir una materia contiene para cada asignatura una lista delos profesores y el porcentaje de certeza con que pueden desempentildearse si la imparten

Capiacutetulo 4 Anaacutelisis y Disentildeo

Lista de columnas de la tabla PROF_PARA_MATNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de materiaId_catedratico SMALLINT 4 X Identificador de catedraacuteticoPorcentaje_cate SMALLINT 4 de certeza con que el catedraacutetico X

puede impartir la materia Y

Tabla POBLACIONFuncioacuten La tabla es la maacutes importante para el moacutedulo de Algoritmo Geneacutetico porque almacena los

datos de cada individuo hipoacutetesis o versioacuten que son generados ya sea por la poblacioacuteninicial aleatoria o por los diversos operadores geneacuteticos contiene copias (versiones) delcondensado de horarios con aulas aleatorias

Lista de columnas de la tabla POBLACIONNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materiaGrupo Text(4) 4 Grupo de la materiaId_catedratico INTEGER 4 X Identificador del catedraticoAula Text(4) 4 X Nombre del aula (edificio + numero)Hora_inicio INTEGER 4 Hora de inicio del grupoHora_lunes Text(6) 6 Hora inicio del lunesHora_martes Text(6) 6Hora_miercoles Text(6) 6Hora_jueves Text(6) 6Hora_viernes Text(6) 6Version INTEGER 4 X Nuacutemero de la versioacuten o hipoacutetesisPeriodo Text(10) 10 Periodo o semestre del grupoAnio INTEGER 4 Antildeo del grupo

Tabla RAMA_MATERIAFuncioacuten La tabla almacena la clasificacioacuten de las materias de acuerdo a las ciencias a la que

pertenecen

Lista de columnas de la tabla RAMA_MATERIANombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_rama COUNTER 4 X Identificador de la rama de unamateria (clasificacioacuten)

Nombre_rama Text(30) 30 Descripcioacuten de la rama de unamateria

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla REGLAS

Funcioacuten Esta tabla almacena las reglas utilizadas para generar los grupos que se deben ofertar elproacuteximo semestre indicando para cada regla el tipo de ajuste que debe aplicarse

Lista de Columnas de la Tabla REGLASNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Descripcion Text(70) 70 Descripcioacuten de la regla para ajustarel nuacutemero de grupos

Id_regla COUNTER 4 X Identificador de la reglaId_ajuste INTEGER 4 X Identificador del tipo de ajuste que

se aplica cuando esta regla sedispara para alguna materia

Tot_peso INTEGER 4 Total de los pesos de lascaracteriacutesticas de esta regla

Tabla SERVICIOS_ESCOLARESFuncioacuten En esta tabla se almacenan los datos estadiacutesticos de cada materia que provienen de

Servicios Escolares para el caacutelculo del nuacutemero de grupos que deben abrirse para elproacuteximo semestre contiene tambieacuten los paraacutemetros proporcionados por el SistemaExperto para realizar el ajuste al nuacutemero de grupos calculado inicialmente

Lista de columnas de la tabla SERVICIOS_ESCOLARESNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materiaINSCRITOS SMALLINT 4 Nuacutemero de alumnos inscritos

actualmente en el grupoNO INSCRITOS SMALLINT 4 Nuacutemero de alumnos que pueden

cursar la materia pero no seinscribieron

SIMULACION SMALLINT 4 Simulacioacuten de Servicios Escolaresde alumnos que podraacuten cursar lamateria

PROXIMOSEMESTRE

SMALLINT 4 Resultado del calculo de ServEscolares de alumnos que cursaraacutenla materia

GRUPOSREQUERIDOS

DOUBLE 4 Grupos requeridos para abrirproacuteximo semestre seguacuten caacutelculosiniciales

Indice dereprobacion

DOUBLE 4 Indice de reprobacioacuten de la materia

periodo Text(7) 7 Periodo de caacutelculo de horarios actual(semestre ene-jun o ago-dic)

Capiacutetulo 4 Anaacutelisis y Disentildeo

antildeo INTEGER 4 Antildeo de caacutelculo de horariosGrupos ajustado SMALLINT 4 Nuacutemero de grupos a solicitar para

abrir proacuteximo semestreAlumnos ajustado SMALLINT 4 Caacutelculo final del numero de alumnos

del proacuteximo semestre en estamateria

Id_ajuste INTEGER 4 X Tipo del ajuste aplicado por elSistema Experto al campogrupos_requeridos

Id_regla SMALLINT 4 X Regla que se disparo para realizar elajuste

Tabla TIPO_HORARIOFuncioacuten Esta tabla almacena los formatos de los distintos tipos de horario que existen y se ofrecen

para cada materia horarios de 2345 diacuteas a la semana y de 123 o 4 horas por diacutea

Lista de columnas de la tabla TIPO_HORARIONombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Tipo_horario COUNTER 4 X Identificador del tipo de horarioDescripcion Text(20) 20 Descripcioacuten del tipo de horarioLunes SMALLINT 4 Nuacutemero de horas del lunesMartes SMALLINT 4 Nuacutemero de horas del martesMiercoles SMALLINT 4 Nuacutemero de horas del mieacutercolesJueves SMALLINT 4 Nuacutemero de horas del juevesViernes SMALLINT 4 Nuacutemero de horas del viernesSabado SMALLINT 4 Nuacutemero de horas del saacutebado

Tabla TIPO_PERFILFuncioacuten Aquiacute se almacena una clasificacioacuten de los perfiles de acuerdo a la rama de conocimiento

a la que pertenecen

Lista de columnas de la tabla TIPO_PERFILNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_tipo COUNTER 4 X Identificador del tipo de perfilTipo_perfil Text(30) 30 Descripcioacuten del tipo de perfil de los

catedraacuteticos o las materias

Capiacutetulo 4 Anaacutelisis y Disentildeo

456 Lista de funciones o programas

Nombre Programa Descripcioacuten del programa

Ajustes Datos generales de los tipos de ajustes que se aplican al nuacutemero degrupos por abrir al dato de Servicios Escolares

Aulas Captura los datos de las aulas disponibles para claseCaptura_horarios Este programa realiza los cambios posteriores a la generacioacutenCarreras Captura los datos de las carreras del tecnoloacutegicoCatedraticos Datos generales de los catedraacuteticosClonacion Obtiene una copia (clon) del mejor individuo de una generacioacutenCons_ajuste Muestra yo imprime los datos generales de los ajustesCons_aulas Emite una pantalla de consulta general de aulasCons_captura_horarios Muestra una pantalla de consulta de los horarios generadosCons_carrera Despliega yo imprime las carrerasCons_catedratico Muestraimprime los datos generales de los catedraacuteticosCons_criterio Formulario que muestra yo despliega los criterios generalesCons_critXmat Muestra yo imprime los criterios de una materiaCons_critXregla Despliegaimprime los criterios que forman una reglaCons_gpos_abrir Explicacioacuten de la inferencia realizada (reglas disparadas)Cons_hist_crit Muestra las reglas de produccioacuten de los criteriosCons_materia Pantalla que despliega yo imprime datos de las materiasCons_materia_gral Pantalla de consulta general de los datos de materiasCons_perf_cate Consultaimprime los datos del perfil acadeacutemico de los

catedraacuteticosCons_perf_mate Consultaimprime los datos del perfil acadeacutemico de las materiasCons_perfil Muestraimprime datos de los perfilesCons_perfiles Consulta a la lista de perfiles o caracteriacutesticas Cons_perfilxmat Consulta a las reglas de produccioacuten del perfil de una materiaCons_rama Consulta a la lista de ramas (clasificacioacuten de las materias)Cons_reglas Consulta a la base de reglas para ajustar nuacutemero de gruposCons_serv_esc Consulta a las tablas que tienen informacioacuten de Servicios

EscolaresCons_serv_escol Pantalla que muestra yo imprime los datos estadiacutesticos de Serv

EscCons_tipo_perfil Consulta a los tipos de perfil (clasificacioacuten de perfiles)Crit_X_mat Formulario que captura los criterios pertenecientes a una materiaCrit_X_regla Captura los criterios que forman una regla de produccioacutenCriterios Pantalla que captura el conocimiento de criterios para el SECriteriosxmat Pantalla de captura para los criterios por materiaCruzamiento Programa que realiza la combinacioacuten (cruza) de individuos de la

poblacioacuten en el Algoritmo Geneacutetico

Capiacutetulo 4 Anaacutelisis y Disentildeo

Evaluacion Programa que realiza la creacioacuten del cromosoma de evaluacioacuten alevaluar las versiones de horarios de una generacioacuten

Explica_ajustes Moacutedulo de explicacioacuten del porque se aplicoacute determinado ajuste auna materia

Explica_mat_p_prof Explicacioacuten del porque una materia puede ser impartida por unprofesor con cierto grado de certidumbre

Explica_prof_p_mat Explicacion del porque un profesor puede impartir una materiacon cierto grado de certidumbre

Genera_horarios Sistema que utiliza Programacioacuten Loacutegica de Restricciones paragenerar los paquetes de horarios de un semestre

Genera_paquete Muestra el paquete generado por el procesoGrupo_nuevo Programa que va generando los paquetesGrupos_por_abrir Inferencia realizada para definir el ajuste aplicado a los grupos

definidos por Servicios EscolaresHistorial_criterios Captura los criterios necesarios para hacer una reglaHistorial_materia Captara los criterios por materiaMat_para_prof Inferencia realizada para determinar que profesores pueden

impartir una materiaMaterias Actualizacioacuten al archivo datos generales de las materiasMenu_algoritmos_geneticos Menuacute del moacutedulo para asignar aula a los gruposMenu_generacion_grupos Menuacute del Sistema Experto para definir cuantos grupos abrirMenu_asigna_horario Menuacute del moacutedulo asignacioacuten de horarioMenu_principal Menuacute principal del sistemaMenu_sel_catedra Menuacute del Sistema Experto para seleccioacuten de catedraacuteticos a

materiaMutacion Programa que hace la modificacioacuten de informacioacuten de aulas de

alguna versioacuten (versioacuten)Perfil_catedratico Captura el perfil acadeacutemico de los catedraacuteticosPerfil_materia Captura el perfil acadeacutemico de las materiasPerfiles Datos generales del perfil acadeacutemico de materias y catedraacuteticosPoblacion_inicial Programa que genera versiones de horarios y que de manera

aleatoria le va asignando aula a los gruposPortada_principal Es la ventana de entrada al sistemaProf_para_mat Inferencia realizada para determinar que materias pueden ser

impartidas por un profesorRama Programa que capturas las posibles ramas de los materiasReglas Datos generales de las reglas de produccioacuten para definir el No de

grupos por abrirSeleccioacuten Proceso que selecciona las mejores versiones de horarios (mejores

individuos) y elimina las menos aptasServ_escolares Pantalla de captura de los datos estadiacutesticos de Servicios EscolaresTipo_perfil Programa que captura la clasificacioacuten de los perfiles de materias y

profesores

Capiacutetulo 4 Anaacutelisis y Disentildeo

457 Diagrama de Arquitectura (Menuacutes)

Menuacute general

Menuacute Grupos porabrir

MenuacuteGeneracioacuten de

horarios

MenuacuteAsignacioacuten de

aulas

Datos de materias

Estadiacutesticos Serv Esc

Criterios

Criterios por materia

Reglas

Criterios por regla

Ajustes

Carreras

Nuacutemero de grupos

MenuacuteSeleccioacuten decatedraacuteticos

Genera paquete

Genera horarios

Datos generalesgrupos

Datos de aulas

Genera poblacioacuteninicial

Evaluacioacuten

Seleccioacuten

Cruzamiento

Clonacioacuten

Mutacioacuten

Horarios finales

Perfiles

Perfil de las materias

Perfil de catedraacuteticos

Catedraacuteticos

Perfil de loscatedraacuteticos

Asignacioacuten materia aprofesor

Asignacioacuten profesor amateria

Capiacutetulo 4 Anaacutelisis y Disentildeo

Capiacutetulo 5 Implementacioacuten del sistema

CAPIacuteTULO 5

IMPLEMENTACIOacuteN

51 Pantallas del sistema

La Figura 51 muestra la portada inicial del proyecto Contiene los logotipos de las tresinstituciones participantes y el nombre del proyecto

Fig 51 Portada inicial del proyecto

La Figura 52 es la pantalla que proporciona la informacioacuten de los autores del proyecto

Es el botoacutende entrada alsistema

Botoacuten deinformacioacuten delos autores

Capiacutetulo 5 Implementacioacuten del sistema

Fig 52 Acerca del sistema

La Figura 53 muestra el menuacute principal del proyecto contiene y 4 moacutedulos La primeraopcioacuten incluye los moacutedulos administrativo y generacioacuten de grupos la segunda opcioacutenincluye seleccioacuten de maestro y seleccioacuten de materia

Fig 53 Menuacute principal del proyecto

Moacutedulos delproyecto

Cuadro queproporcionalainformacioacutende la opcioacutensentildealada porel cursor

Capiacutetulo 5 Implementacioacuten del sistema

En la Figura 54 se tiene la pantalla del menuacute que agrupa los programas del moacuteduloadministrativo y Sistema Experto para determinar el nuacutemero de grupos por abrir seguacutenlos caacutelculos realizados con los datos de Servicios Escolares y el ajuste a ese dato

Fig 54 Menuacute grupos por abrir

Este programa del moacutedulo administrativo (Figura 55) sirve para capturar la informacioacutengeneral de las asignaturas que componen una carrera

Fig 55 Materias

Programas delos moacutedulos

Descripcioacutende laactividad delprogramaseleccionado

Nombre de laasignatura

Nuacutemero dehoraspraacutecticas yteoacutericas

Alumnos por grupopara calcularcantidad de grupos

Dato para formarpaquetes porsemestre

Icono quehabilita lacaptura denuevosdatos

Icono queregresa alMenuacute anterior

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 56 es un ejemplo de la consulta de datos en pantalla

Fig 56 Consulta Materias

La Figura 57 es la pantalla donde se capturan los datos estadiacutesticos provenientes deServicios Escolares contiene la informacioacuten necesaria para realizar el caacutelculo originaldel nuacutemero de grupos de cada asignatura que se debe abrir para ofertarse a los alumnosel siguiente semestre la foacutermula mostrada proporciona tal dato

Botoacuten queregresa elcontrol alprogramaque loinvocoacute

Alumnosesperados parael proacuteximo

Fccg

Datosestadiacutesticos

Fig 57 Pantalla Servicios Es

semestre

oacutermula paraaacutelculoantidad-rupos

Caacutelculosgeneral y pormateria

Grupos (datoestadiacutestico)

colares

Capiacutetulo 5 Implementacioacuten del sistema

En la Figura 58 se muestra la pantalla de consulta de los datos estadiacutesticosproporcionados por Servicios Escolares

Fig 58 Pantalla consulta Servicios Escolares

Esta pantalla captura las caracteriacutesticas por materia que dan origen al conocimientonecesario para definir el tipo de ajuste que se aplica al dato del nuacutemero de gruposproporcionado por los caacutelculos estadiacutesticos de la pantalla anterior

Criterios de unamateria

Fig 59 Pantalla criterios por materia

Grado deimportancia de esacaracteriacutestica para la

Capiacutetulo 5 Implementacioacuten del sistema

En la Figura 510 se muestra un ejemplo de la consulta a la base de datos del sistema enla parte de criterios por materia

Fig 510 Pantalla consulta criterios por materia

Esta pantalla (fig 511) proporciona al sistema la capacidad de capturar modificarborrar e imprimir las carreras del Instituto Tecnoloacutegico de Zacatepec

Fig 511 Pantalla carreras

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 512 proporciona al sistema la capacidad para capturar los criterios(conocimientos) del experto para definir a cada materia

Fig 512 Pantalla criterios

La Figura 513 muestra un ejemplo de consulta al archivo de los criterios capturados enel sistema

Fig 513 Pantalla consulta criterios

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 514 muestra la pantalla de captura de las reglas que componen el SistemaExperto para determinar el tipo de ajuste que se aplicaraacute al dato estadiacutestico del nuacutemerode grupos que se van a abrir el proacuteximo semestre cada regla tiene asignado un tipo deajuste

Fig 514 Pantalla reglas

La Figura 515 muestra un ejemplo de la consulta al archivo de las reglas que utiliza elSistema Experto para determinar nuacutemero de grupos por ofertar el proacuteximo semestre

Fig 515 Pantalla consulta reglas

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 516 muestra la pantalla de captura al archivo de ajustes noacutetese que ladescripcioacuten explica en extenso la accioacuten que se realiza al aplicar este ajuste provenientede una regla disparada por los criterios pertenecientes a la definicioacuten de una materia

Fig 516 Pantalla ajustes

La Figura 517 muestra la pantalla de la consulta a los ajustes que contiene el sistema

Fig 517 Pantalla consulta ajustes

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 518 muestra la pantalla que captura los criterios para cada regla Una reglaestaacute formada por el mismo tipo de criterios que definen a las materias

Criteriosde una

Fig 518 Pantalla criterios por regla

La Figura 519 muestra el ejemplo de una consulta de los criterios que definen a unaregla

Fig 519 Pantalla consulta criterios por regla

Reglas de produccioacuten Criterios por regla

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 520 es la pantalla maacutes importante de moacutedulo de generacioacuten de grupos porquees donde se realiza la inferencia para calcular el tipo de ajuste que se va a aplicar a cadamateria con base en las reglas que se disparan y que hacen match los criterios de unaregla y los criterios de una materia

Fig 520 Pantalla caacutelculo de ajustes

Esta pantalla (Figura 521) ofrece una explicacioacuten mostrando los criterios que definenuna materia y su correspondiente regla disparada mostrando los criterios de la regla quehacen match con los criterios de la materia

Fig 521 Pantalla explicacioacuten de la inferencia

Asignaturaa la que sele aplicaraacuteel ajuste

Regla quese disparaseguacutencriterios

Tipo deajuste quese aplica

Dato seguacutenestadiacutestico

Datos seguacutenajuste delSistemaExperto

Inferenciageneral

Inferenciaindividual

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 522 muestra el formulario que forma los paquetes de materias seguacuten laretiacutecula de una carrera muestra el nuacutemero de grupos por cada materia que se van aformar y hace los paquetes asignando los grupos AA AB AC AD

Fig 522 Pantalla inicial del moacutedulo generacioacuten de horarios

La Figura 523 es el formulario del moacutedulo Programacioacuten Loacutegica de Regenera los horarios por paquete satisfaciendo las restricciones para forlibre de choques continuo (sin horas muertas) cumpliendo las horas por m

Fig 523 Pantalla principal del moacutedulo generacioacuten de horari

Semestre al que sele formaraacuten lospaquetes

Paquetes generadosHora de iniciode clases decada grupo

Materias delsemestre

Nuacutemero de gruposal que se lesgeneraraacute horario

MateriaPaquete

Nuacutemero dehoras por diacutea

Botonesque invocanal moacutedulogeneradorde horarios

stricciones quemar un horarioateria etc

Hora de iniciode la materia

os

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 524 muestra el moacutedulo para asignar aula a los horarios que ya tienen materiagrupo y hora

Fig 524 Pantalla principal del menuacute Algoritmos Geneacuteticos

Esta pantalla (Figura 525) se utiliza para hacer altas bajas consulta y modificaciones alos grupos que se les va a dar aula

Fig 525 Pantalla de administracioacuten de grupos

Periodode loshorarios

Hora iniciodel grupo

Hora por diacutea

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 526 muestra una consulta de la pantalla administracioacuten de grupos

Fig 526 Pantalla de consulta de administracioacuten de grupos

La Figura 527 muestra la pantalla para actualizar las aulas disponibles por las personasque generan los horarios estas aulas estaacuten disponibles para que el Algoritmo Geneacuteticolas utilice para asignarles grupos durante el proceso

Fig 527 Pantalla del control de aulas

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 528 muestra la consulta de las aulas que utiliza el moacutedulo generacioacuten deaulas

Fig 528 Pantalla de consultas del control de aulas

La Figura 529 muestra la pantalla que genera la poblacioacuten inicial a partir de los datosgenerales proveniente de los moacutedulos anteriores

Fig 529 Pantalla de genera poblacioacuten inicial

Nuacutemero dehipoacutetesisversiones oindividuos

Aula aleatoriagenerada

Este botoacuteninicia lageneracioacutende las nversionesde horarios

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 530 muestra la pantalla que evaluacutea las versiones originadas y genera paracada una de ellas un cromosoma cuyos genes contienen la informacioacuten obtenida

Fig 530 Pantalla de evaluacioacuten de versiones

La Figura 531 muestra el formulario del proceso de seleccioacuten de las mejores versionesde horarios toma aquellas que tienen menor numero de choques y mayor espacio deocupacioacuten de aulas

Fig 531 Pantalla del proceso de seleccioacuten

Cantidad deversiones quesobreviviraacuten

Cromosomas delos mejoresindividuos

Botoacuten queinicia elproceso deseleccioacuten

Botoacuten queinicia elproceso deeliminacioacuten

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 532 muestra la pantalla del proceso de clonacioacuten donde se selecciona la mejorversioacuten y se obtiene un clon ideacutentico con un nuevo nuacutemero de versioacuten

Fig 532 Pantalla del proceso de clonacioacuten

La Figura 533 muestra la pantalla del proceso de mutacioacuten utilizado para hacer elcambio ldquomutarrdquo los datos de una versioacuten para romper alguacuten ciclado de la tendencia haciael resultado o simplemente para acelerar el proceso de optimizacioacuten

Cromosomasde versionesmaacutes aptas

Nuacutemero demejor versioacuten

Poblacioacutenversiones

Cromosomamuestra lasmejoresversiones

Aulas quepueden mutarse

Botoacuten queinicia elproceso demutacioacuten

Nuacutemero deversioacuten

Fig 533 Pantalla de mutacioacuten

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 534 muestra la pantalla donde se realiza el cruzamiento utilizando plantillaspredeterminadas dirigiendo la cruza de versiones por paquetes de materias agrupadas porsemestre y cada plantilla genera una nueva versioacuten con la combinacioacuten de fragmentosde varias versiones

Fig 534 Pantalla del proceso de cruzamiento

La Figura 535 permite la seleccioacuten y enviacuteo de la mejor versioacuten de horarios y adaptarloal moacutedulo administrativo para su distribucioacuten y publicacioacuten

Fig 535 Horarios finales

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 536 muestra el menuacute de los moacutedulos que sugiere maestros para impartir unaasignatura y sugerencia de asignatura para alguacuten maestro

Fig 536 Pantalla menuacute seleccioacuten de catedraacuteticos

La Figura 537 muestra la pantalla para la captura de caracteriacutesticas de losconocimientos requeridos para dar una materia que son las mismas caracteriacutesticas quedefinen los conocimientos de un profesor para impartir las materias

Fig 537 Pantalla de perfiles

Clasificacioacutende los perfiles

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 538 muestra una consulta de los perfiles agrupados por tipo

Fig 538 Pantalla de consulta perfiles

La Figura 539 muestra la pantalla en la que se definen los conocimientos requeridospara poder impartir una asignatura de acuerdo al perfil y contenido temaacutetico

Fig 539 Pantalla perfiles de las materias

La Figura 540 muestra un ejemplo de la consulta al perfil de una materia

Importancia de lacaracteriacutestica en la materia

Capiacutetulo 5 Implementacioacuten del sistema

Fig 540 Pantalla consulta perfiles de las materias

La Figura 541 es utilizada para capturar los datos de los catedraacuteticos que imparten lasasignaturas de una carrera

Fig 541 Pantalla captura datos de catedraacuteticos

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 542 es una muestra de la consulta al archivo de los catedraacuteticos

Fig 542 Pantalla consulta datos de catedraacuteticos

La Figura 543 muestra la pantalla en que se captura el perfil de los catedraacuteticos elperfil son los conocimientos que tiene el profesor que lo capacitan para impartir algunaasignatura

Fig 543 Pantalla captura perfil de catedraacuteticos

Conocimientosdel profesor

Barra deseleccioacuten deperfiles

Grado dedominio deltema

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 544 muestra una consulta tiacutepica al archivo de perfiles de los catedraacuteticos

Fig 544 Pantalla consulta perfil de catedraacuteticos

La Figura 545 muestra la pantalla de inferencia final que sugiere quienes son loscatedraacuteticos maacutes capacitados para impartir una materia haciendo la inferencia mediantela buacutesqueda de matchs entre el perfil de la asignatura y el perfil del catedraacutetico

Fig 545 Pantalla muestra inferencia catedraacuteticos para materia

Candidatos aimpartir lamateria

Botoacuten del proceso deinferencia generalPorcentaje de certeza con

que puede impartirla

Botoacuten delprocesodeinferenciaparticular

Botoacuten queinvoca almoacutedulo deexplicacioacuten

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 546 muestra la pantalla de explicacioacuten donde se indican los perfiles de lamateria y el perfil del profesor

Fig 546 Pantalla explicacioacuten porque un maestro puede dar una materia

La Figura 547 muestra el resultado de la inferencia del proceso que sugiere las materiasque puede impartir un profesor con base en el perfil de la materia y el perfil del profesor

Fig 547 Pantalla materias que puede impartir un profesor

Posibles materia aimpartir Porcentaje de certeza con

que puede impartirlaBotoacuten del proceso deinferencia general

Botoacuten delprocesodeinferenciaparticular

Botoacuten queinvoca almoacutedulo deexplicacioacuten

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 548 muestra la pantalla de explicacioacuten donde se indican el perfil de la materiay el perfil del profesor

Fig 548 Pantalla de explicacioacuten porque un profesor puede dar una materia

Capiacutetulo 5 Implementacioacuten del sistema

Capiacutetulo 6 Pruebas y Resultados

CAPIacuteTULO 6

PRUEBAS Y RESULTADOS

61 Pruebas del sistema

Se pueden detectar dentro del desarrollo de sistemas las actividades para realizarpruebas las producidas durante la etapa de requerimientos de disentildeo preliminar y las dedisentildeo detallado Clasificadas de otra manera eacutestas pueden ser funcionales deintegracioacuten y de implementacioacuten

La finalidad de realizar Pruebas funcionales es detectar errores que pudieran habersedado durante las fases de anaacutelisis y de especificacioacuten Por otro lado ellas pueden ayudara probar si el disentildeo es correcto ya que esta fase en sus dos niveles preliminar ydetallado estaacute basada en el anaacutelisis y especificacioacuten de requerimientos del sistema Estaactividad es guiada por los objetivos y requerimientos plasmados Se busca en estaprueba la posibilidad de que se haya incurrido en errores de conceptualizacioacuten yo deespecificacioacuten Las pruebas se organizan tomando como guiacutea las diferentes opciones delsistema final

Las Pruebas de integracioacuten se realizan cuando se procede a interconectar los diferentessubsistemas que constituyen el futuro sistema Como es conocido un sistema puede serdesarrollado por diferentes personas Por esta razoacuten es de suma importancia probar lainterconexioacuten de los diferentes subsistemas y asiacute verificar que ha sido realizada demanera correcta

Las Pruebas de implementacioacuten o codificacioacuten son las que se realizan directamentesobre los programas que se estaacuten desarrollando durante la fase de implementacioacuten Estosmoacutedulos o programas a su vez constituyen subsistemas Por esta razoacuten la integracioacuten delos diferentes moacutedulos que forman un subsistema deben ser probados Estas pruebasdeben estar basadas en la especificacioacuten de disentildeo preliminar y detallado [Gerez 1985]

Los siguientes rubros describen las pruebas maacutes importantes que se consideraron paravalidar el sistema las pruebas funcionales Las pruebas de implementacioacuten se realizarondurante el desarrollo de la codificacioacuten de los diferentes moacutedulos

Capiacutetulo 6 Pruebas y Resultados

62 PRUEBAS DEL SISTEMA

621 PRUEBA 1 AacuteREAS DE MENUacuteS

Objetivo Guiar al usuario en el desarrollo del proceso Esta prueba verifica que elsistema tenga como opciones principales y submenuacutes los sentildealados en la definicioacuten derequerimientos

Criterios de aceptacioacuten Cada prueba verifica que el sistema produzca los resultadossentildealados en la definicioacuten de requerimientos

Procedimiento de la prueba A continuacioacuten se despliegan las pantallascorrespondientes a los menuacutes principales y submenuacutes Las opciones principales delproyecto son dos Menu Principal y Datos de los autores

Resultado de la prueba Los resultados fueron satisfactorios En todas las opcionesactivadas el sistema presentoacute los submenuacutes definidos en la etapa de requerimientos

La Figura 61 muestra la portada inicial del proyecto Contiene los logotipos de las tresinstituciones participantes y el nombre del proyecto

Fig 61 Portada inicial del proyecto

Es el botoacutende entrada alsistema

Botoacuten deinformacioacutende los autores

Capiacutetulo 6 Pruebas y Resultados

La Figura 62 muestra el menuacute principal del proyecto y contiene 4 moacutedulos La primeraopcioacuten incluye los moacutedulos administrativo y generacioacuten de grupos la segunda opcioacutenincluye seleccioacuten de maestro y seleccioacuten de materia

Fig 62 Menuacute principal del proyecto

En la Figura 63 se tiene la pantalla del menuacute que agrupa los programas del moacuteduloadministrativo y Sistema Experto para determinar el nuacutemero de grupos por abrir seguacutenlos caacutelculos realizados con los datos de Servicios Escolares y el ajuste a ese dato

Fig 63 Menuacute grupos por abrir

Moacutedulos delproyecto

Cuadro queproporcionalainformacioacutende la opcioacutensentildealada porel cursor

Programas delos moacutedulos

Descripcioacutende laactividad delprogramaseleccionado

Capiacutetulo 6 Pruebas y Resultados

La Figura 64 muestra el menuacute de los moacutedulos que sugiere maestros para impartir unaasignatura y sugerencia de asignatura para alguacuten maestro

Fig 64 Pantalla menuacute seleccioacuten de catedraacuteticos

La Figura 65 muestra el moacutedulo para asignar aula a los horarios que ya tienen materiagrupo y hora

Fig 65 Pantalla principal del menuacute Algoritmos Geneacuteticos

Capiacutetulo 6 Pruebas y Resultados

622 PRUEBA 2 VALIDACIOacuteN DE ENTRADAS

Objetivo Evitar peacuterdidas de tiempo con entradas erroacuteneas de datos y resultados sinvalidez

Criterios de aceptacioacuten Esta prueba deberaacute mostrar de manera exacta la informacioacutenal seleccionar la opcioacuten deseada

Procedimiento de la prueba Se verifica que todas las cajas de texto tengan el dato quese pide y una vez dados todos los datos se guardan para que estos datos posteriormentesean procesados por el sistema y almacenen los datos correctos

Resultado de la prueba Los resultados fueron satisfactorios En todas las opcionesactivadas el sistema presentoacute los resultados correctos a cada opcioacuten Ademaacutes losdesplegados de mensajes de error se presentaron de manera correcta en todas laspruebas

La Figura 66 muestra la captura de datos de una asignatura y enviacutea el correspondientemensaje de error si una caja de texto se encuentra vaciacutea

Fig 66 Pantalla de captura de datos de las Materias

Muestra elmensaje deerror si esque hacefalta alguacuten

Capiacutetulo 6 Pruebas y Resultados

La Figura 67 muestra una pantalla de captura de datos asignando criterios a una materiay valida la no duplicidad de criterios en esa materia se enviacutea el correspondiente mensajede error si una entrada ya fue capturada

Fig 67 Pantalla de captura de datos de Criterios por Materia

La Figura 68 muestra una pantalla de captura de datos de las carreras al encontrar unregistro ya capturado muestra el mensaje de error si una carrera ya fue capturada

Fig 68 Pantalla de captura de datos de Carreras

Muestra elmensajede error sies que yaexiste elregistro

Muestra elmensaje deerror si esque yaexiste elregistro

Capiacutetulo 6 Pruebas y Resultados

623 PRUEBA 3 DESPLEGADO DE RESULTADOS

6231 MOacuteDULO DE GENERACIOacuteN DE GRUPOS POR ABRIR

Objetivo Proporcionar los datos que el moacutedulo pide para que posteriormente elsistema genere el nuacutemero de grupos sugerido por abrir para cada materia

Criterios de aceptacioacuten Esta prueba muestra la lista de grupos que se deben abrirdespueacutes de aplicar los criterios del Sistema Experto

Procedimiento de la prueba Una vez que se proporcionan los datos que el SistemaExperto requiere el sistema generaraacute una lista de los grupos que se deben abrir elproacuteximo semestre

Resultado de la prueba Los resultados fueron satisfactorios En todos los casospresentados el sistema generoacute la lista en forma satisfactoria y con la informacioacutencorrecta

La Figura 69 es la pantalla maacutes importante de moacutedulo de generacioacuten de grupos porquees donde se realiza la inferencia para calcular el tipo de ajuste que se va a aplicar a cadamateria con base en las reglas que se disparan y que hacen match los criterios de unaregla y los criterios de una materia

Asignaturaa la que sele aplicaraacuteel ajuste

Regla quese disparaseguacutencriterios

Tipo deajuste quese aplica

Inferenciageneral

Datoseguacuten

Fig 69 Pantalla caacutelculo de ajustes

Datos seguacutenajuste delSistemaExperto

Inferenciaindividual

Capiacutetulo 6 Pruebas y Resultados

6232 MOacuteDULO DE GENERACIOacuteN DE HORARIOS

Objetivo Proporcionar los datos que el moacutedulo pide para que posteriormente elsistema genere el horario por semestre de las materias de una carrera

Criterios de aceptacioacuten Esta prueba debe mostrar los horarios para las materias sinerrores sin choques de hora en un paquete

Procedimiento de la prueba Recibe como entrada cuantos grupos abrir de cadamateria en cada semestre y genera primero los paquetes posteriormente a cada paquetede materias le asigna la hora por materia

Resultado de la prueba Los resultados fueron satisfactorios En todos los casospresentados el sistema generoacute los horarios correspondientes

La Figura 610 muestra el formulario que forma los paquetes de materias seguacuten laretiacutecula de una carrera muestra el nuacutemero de grupos por cada materia que se van aformar y hace los paquetes asignando los grupos AA AB AC AD

Fig 610 Pantalla inicial del moacutedulo generacioacuten de horarios

Semestre al que sele formaraacuten lospaquetes

Paquetes generadosHora de iniciode clases decada grupo

Materias delsemestre

Nuacutemero de grupospor al que se lesgeneraraacute horario

Botonesque invocanal moacutedulogeneradorde horarios

Capiacutetulo 6 Pruebas y Resultados

La Figura 611 es el formulario del moacutedulo Programacioacuten Loacutegica de Restricciones quegenera los horarios por paquete satisfaciendo las restricciones para formar un horariolibre de choques continuo (sin horas muertas) cumpliendo las horas por materia etc

Fig 611 Pantalla princip

6233 MOacuteDULO ASIGNACIOacuteN D

Objetivo Utilizar los datos generadoaulas a los paquetes de materias

Criterios de aceptacioacuten Esta pruebaasignacioacuten de aula sin choques

Procedimiento de la prueba Se genAlgoritmos Geneacuteticos durante variachoques en el aula

Resultado de la prueba Los resupresentados el sistema generoacute las aula

MateriaPaquete

Nuacutemero dehoras por diacutea

Hora de iniciode la materia

al del moacutedulo generacioacuten de horarios

E AULA

s en el moacutedulo anterior para hacer la asignacioacuten de

debe mostrar los horarios de las materias con una

eran las aulas utilizando los procedimientos de loss generaciones hasta lograr una generacioacuten sin

ltados fueron satisfactorios En todos los casoss correspondientes

Capiacutetulo 6 Pruebas y Resultados

La Figura 612 muestra la pantalla para actualizar las aulas disponibles por las personasque generan los horarios estas aulas estaacuten disponibles para que el Algoritmo Geneacuteticolas utilice para asignarles grupos durante el proceso

Fig 612 Pantalla del control de aulas

La Figura 613 muestra la consulta de las aulas que utiliza el moacutedulo generacioacuten deaulas

Fig 613 Pantalla de consultas del control de aulas

Capiacutetulo 6 Pruebas y Resultados

La Figura 614 muestra la pantalla que genera la poblacioacuten inicial a partir de los datosgenerales proveniente de los moacutedulos anteriores

Fig 614 Pantalla de genera poblacioacuten inicial

La Figura 615 muestra la pantalla que evaluacutea las versiones originadas y genera paracada una de ellas un cromosoma cuyos genes contienen la informacioacuten obtenida

Fig 615 Pantalla de evaluacioacuten de versiones

Nuacutemero dehipoacutetesisversiones oindividuos

Aula aleatoriagenerada

Este botoacuteninicia lageneracioacutende las nversionesde horarios

Capiacutetulo 6 Pruebas y Resultados

La Figura 616 muestra el formulario del proceso de seleccioacuten de las mejores versionesde horarios toma aquellas que tienen menor numero de choques y mayor espacio deocupacioacuten de aulas

Fig 616 Pantalla del proceso de seleccioacuten

La Figura 617 muestra la pantalla del proceso de clonacioacuten donde se selecciona la mejorversioacuten y se obtiene un clon ideacutentico con un nuevo nuacutemero de versioacuten

Fig 617 Pantalla del proceso de clonacioacuten

Cantidad deversiones quesobreviviraacuten

Cromosomas delos mejoresindividuos

Botoacuten queinicia elproceso deseleccioacuten

Botoacuten queinicia elproceso deeliminacioacuten

Cromosomasde versionesmaacutes aptas

Nuacutemero demejor versioacuten

Poblacioacutenversiones

Capiacutetulo 6 Pruebas y Resultados

La Figura 618 muestra la pantalla del proceso de mutacioacuten utilizado para hacer elcambio ldquomutarrdquo los datos de una versioacuten para romper alguacuten ciclado de la tendencia haciael resultado o simplemente para acelerar el proceso de optimizacioacuten

Fig 618 Pantalla de mutacioacuten

La Figura 619 muestra la pantalla donde se realiza el cruzamiento utilizando plantillaspredeterminadas dirigiendo la cruza de versiones por paquetes de materias agrupadas porsemestre y cada plantilla genera una nueva versioacuten con la combinacioacuten de fragmentosde varias versiones

Fig 619 Pantalla del proceso de cruzamiento

Cromosomamuestra lasmejoresversiones

Nuacutemero deversioacuten amutar

Aulas quepueden mutarse

Botoacuten queinicia elproceso demutacioacuten

Capiacutetulo 6 Pruebas y Resultados

La Figura 620 permite la seleccioacuten y enviacuteo de la mejor versioacuten de horarios y adaptarloal moacutedulo administrativo para su distribucioacuten y publicacioacuten

Fig 620 Horarios finales

6234 MOacuteDULO SELECCIOacuteN DE CATEDRATICOS

Objetivo Capturar los datos de los profesores y su perfil profesiograacutefico ademaacutescapturar los conocimientos necesarios para impartir una asignatura para poder sugerircual es el mejor catedraacutetico que puede impartir una asignatura

Criterios de aceptacioacuten Esta prueba debe mostrar la sugerencia de los mejorescatedraacuteticos para una materia y las mejores materias para un catedraacutetico

Procedimiento de la prueba Se daraacuten los datos iniciales de los maestros y el sistemadeberaacute generar una lista a partir de la inferencia del Sistema Experto respectivo yviceversa

Resultado de la prueba Los resultados fueron satisfactorios En todos los casospresentados el sistema infirioacute las materias y los catedraacuteticos correspondientes

Capiacutetulo 6 Pruebas y Resultados

La Figura 621 muestra la pantalla en que se captura el perfil de los catedraacuteticos elperfil son los conocimientos que tiene el profesor que lo capacitan para impartir algunaasignatura

Fig 621 Pantalla captura perfil de catedraacuteticos

La Figura 622 muestra la pantalla de inferencia final que sugiere quienes son loscatedraacuteticos maacutes capacitados para impartir una materia haciendo la inferencia mediantela buacutesqueda de matchs entre el perfil de la asignatura y el perfil del catedraacutetico

Fig 622 Pantalla muestra inferencia catedraacuteticos para materia

Conocimientosdel profesor

Barra deseleccioacuten deperfiles

Grado dedominio deltema

Botoacuten delprocesodeinferenciaparticular

Botoacuten queinvoca almoacutedulo deexplicacioacuten

Candidatos aimpartir lamateria Botoacuten del proceso de

inferencia generalPorcentaje de certeza conque puede impartirla

Capiacutetulo 6 Pruebas y Resultados

La Figura 623 muestra la pantalla de explicacioacuten donde se indican los perfiles de lamateria y el perfil del profesor

Fig 623 Pantalla explicacioacuten porque un maestro puede dar una materia

La Figura 624 muestra el resultado de la inferencia del proceso que sugiere las materiasque puede impartir un profesor con base en el perfil de la materia y el perfil del profesor

Fig 624 Pantalla materias que puede impartir un profesor

Posibles materia aimpartir Porcentaje de certeza con

que puede impartirlaBotoacuten del proceso deinferencia general

Botoacuten delprocesodeinferenciaparticular

Botoacuten queinvoca almoacutedulo deexplicacioacuten

Capiacutetulo 6 Pruebas y Resultados

La Figura 625 muestra la pantalla de explicacioacuten donde se indican el perfil de la materiay el perfil del profesor

Fig 625 Pantalla de explicacioacuten porque un profesor puede dar una materia

Capiacutetulo 6 Pruebas y Resultados

Capiacutetulo 7 Conclusiones y Trabajos Futuros

CAPIacuteTULO 7

CONCLUSIONES Y TRABAJOS FUTUROS

71 CONCLUSIONES

Los meacutetodos de programacioacuten lineal proporcionan una solucioacuten parcial al problema dela generacioacuten de horarios utilizan una ldquorecetardquo predefinida para lograr la optimizacioacutende la asignacioacuten de recursos como lo hace el meacutetodo Huacutengaro La Inteligencia Artificialsoluciona el problema utilizando la heuriacutestica el conocimiento y la experiencia de unexperto humano para solucionar el problema se decidioacute utilizar esta metodologiacutea paraexplorar una solucioacuten aproximada al problema

En el ITZ la generacioacuten de horarios se haciacutea de forma manual no se utilizaba ninguacutenmeacutetodo automatizado Al aplicar algunas teacutecnicas de la Inteligencia Artificial se halogrado generar de manera automatizada los horarios de las materias que se ofertaraacuten elproacuteximo semestre

La aplicacioacuten de varias ramas de la Inteligencia Artificial para la resolucioacuten delproblema de la generacioacuten de horarios viene a demostrar que si es posible generar uncondensado de horarios para el Instituto Tecnoloacutegico de Zacatepec que es una escuelade nivel superior y que estos horarios satisfacen adecuadamente las restricciones fuertesmedias y suaves Para ello fue necesaria la combinacioacuten de varias disciplinas de lacomputacioacuten para generar cada una de las partes que componen un horario y tambieacutenrecomendar los catedraacuteticos mas apropiados para impartir dichos grupos nuevamentequeda demostrado que la Inteligencia Artificial sirve para resolver problemas que lasteacutecnicas convencionales de computacioacuten consideran problema NP-completo

La utilizacioacuten de las teacutecnicas de los Sistemas Expertos para ajustar el nuacutemero de grupospor abrir el proacuteximo semestre permite aplicar el conocimiento y experiencia de lapersona encargada de elaborar los horarios y asiacute disminuir el nuacutemero de gruposcancelados el conocimiento e intuicioacuten del experto humano realizan un ajuste fino alnuacutemero de grupos y como puede notarse el sistema lo hace de manera similar

Para el moacutedulo de generacioacuten de los grupos y los horarios la utilizacioacuten de la teacutecnicallamada Programacioacuten Loacutegica de Restricciones permitioacute la satisfaccioacuten de lasrestricciones que hacen que los horarios sean considerados factibles para su aplicacioacuten a

Capiacutetulo 7 Conclusiones y Trabajos Futuros

los alumnos el proacuteximo semestre ya que los paquetes de materias por semestre tienenhorarios corridos y sin choques en horas nuacutemero de materias completo y buenadistribucioacuten de horas pares e impares

Se utilizoacute tambieacuten la teacutecnica de optimizacioacuten llamada Algoritmos Geneacuteticos pararealizar la asignacioacuten de aulas a cada grupo generado logrando con ello minimizarautomaacuteticamente el nuacutemero de choques de materias en aulas En las pruebas realizadasse logroacute que en la sexta generacioacuten de individuos ya soacutelo hubiera hasta un maacuteximo de 24choques lo que indicaba que soacutelo 4 oacute 5 grupos compartiacutean aula a la misma hora esto erafaacutecilmente corregible realizando una inspeccioacuten visual a la versioacuten de horarios final yajustando los uacuteltimos errores

Por uacuteltimo nuevamente se aplicaron los Sistemas Expertos en el moacutedulo de sugerenciade materias que puede impartir un maestro y en el moacutedulo maestros que pueden impartiruna determinada materia vale la pena comentar que durante las pruebas realizadas loscatedraacuteticos del departamento de Sistemas y Computacioacuten capturaban su perfilprofesiograacutefico y al pedir al sistema la sugerencia de cuaacuteles materias podriacutean impartirlos Sistemas Expertos del proyecto inferiacutean exactamente las materias que loscatedraacuteticos estaacuten impartiendo en este semestre y las que habiacutean impartido en alguacutensemestre anterior demostrando que en efecto para profesores nuevos la recomendacioacutendel sistema seriacutea vaacutelida

72 TRABAJOS FUTUROS

Se sugiere que se ampliacutee el proyecto para que a cada grupo generado con aula y hora sele asigne de manera automaacutetica un catedraacutetico utilizando ya sea Algoritmos Geneacuteticos oProgramacioacuten Loacutegica de Restricciones

Otra posible mejora puede ser incluir la Loacutegica Difusa en los Sistemas Expertos de losmoacutedulos que sugieren las materias que puede impartir un catedraacutetico y los catedraacuteticosque pueden impartir una asignatura

Como ya se comproboacute la factibilidad de generar los horarios de manera automaacutetica sepropone tambieacuten la exploracioacuten de otras ramas y teacutecnicas de la computacioacuten (RedesNeuronales Buacutesqueda Tabuacute Grafos Coloreados etc) para comparar el rendimientotiempo esfuerzo y asiacute poder determinar cuales son mejores o peores teacutecnicas pararesolver el problema de la generacioacuten de horarios

Referencias Bibliograacuteficas

REFERENCIAS BIBLIOGRAacuteFICAS

[Abramson 1991] Abramson D ldquoConstructing School Timetables Using SimulatedAnnealing Secuencial and Parallel Algoritmsrdquo Management Science PWS PublishingBoston 1998

[Beasley 1993] Beasley D amp Bull DR amp Martin RR ldquoAn Overview of GeneticAlgorithms Part 1 Fundamentalsrdquo University Computing

[Bull 1993] Bull DR amp Beasley D amp Martin RR ldquoAn Overview of GeneticAlgorithms Part 2rdquo University Computing Magazine 1993

[Burke1994]Burke EK ldquoA Genetic Algorithm for University Timetablingrdquo AISBworkshop on evolutionary computing Leeds 1994

[Burke 1997] Burke Edmund K ldquoAutomated Scheduling Optimization and PlanningGroup (ASAP)rdquo PATATrsquo97 Proceedings of the 2nd Intenational Conference on thePractice And Theory of Automated Timetabling 1997

[Burke2000] Burke Edmund amp Eliman David amp Weare Rupert ldquoA GeneticAlgorithm Based University Timetabling Systemrdquo PATATrsquo2000 Proceedings of the 5ft

Intenational Conference on the Practice And Theory of Automated Timetabling 2000

[Burke2001] Burke EK amp Eliman DGamp Weare R ldquoAutomated Scheduling OfUniversity Examsrdquo Leeds 2001

[Burke2002] Burke Edmund amp Eliman David amp Weare Rupert ldquoExaminationTimetabling in British Universities ndash A Surveyrdquo Leeds 2002

[Carrasco 2004] Carrasco Marco amp Pato Margarida ldquoSolving Real ClassTeacherTimetabling Problems using Neural Networksrdquo Facultade de Ciencias University ofLisboa Portugal

[Chorafas 1990] Chorafas Dimitris N ldquoKnowledge Engineeringrdquo Van NostrandReinnhold New York USA

Referencias Bibliograacuteficas

[Corne 1993] Corne D ldquoSolving the module exam scheduling problem with geneticalgorithmsrdquo Proceedings of the 6th Intenational conference in Industrial andEngineering applications of Artificial Intelligence and Expert Systems1993

[Daellenbach 1987] Daellenbach Hans amp McNickle Donald ldquoIntroduccioacuten a teacutecnicasde Investigacioacuten de Operacionesrdquo CECSA Meacutexico 1987

[Davis 1991] Davis L ldquoHandbook of Genetic Algorithmsrdquo Van Nostrand ReinholdNew York NY

[Demist2000] Demist ldquoDepartamental Timetabling Proyect ProposalDeMIStinterface to Timetabling Package Proyectrdquo Demist University 2000

[Detcher 1990] Detcher R ldquoEnhancement Schemes for Constraint Processing BackJumping Learning and Cutset Decompositionrdquo Artificial Intelligence 41 (1990)

[Eliman 2000] Eliman David ldquoSpecialised Recombinative Operators for TimetablingProblemsrdquo Cambridge University Press New York 2000

[Elmohamed2000] Elmohamed Saleh ldquoThe timetabling problemrdquo PATATrsquo2000Proceedings of the 5th Intenational Conference on the Practice And Theory ofAutomated Timetabling 2000

[Elmohamed2001] Elmohamed Saleh ldquoConstraint based university coursetimetablingrdquo 4th World Congress on Timetabing Aplication of advanced informationTechnologies London 2001

[Fahrion y Dollanski 1992] Fahrion R amp G Dollanski ldquoConstruction of UniversityFaculty Timetables using Logic Programmingrdquo ACM Sigsoft Notes vol 9 no 3 May1992

[Frenzel 1986]Frenzel Louis E ldquoCrash Course in Artificial Intelligence and ExpertSystemsrdquo Howard W Sams amp Co McMillan Inc Indianapolis USA

[Gerez 1985] Gerez Victor amp Mier Mauricio ldquoDesarrollo y administracioacuten deprogramas de computadorardquo McGraw Hill Meacutexico 1985

[Gervaacutes 1999] Gervaacutes P amp San Miguel B ldquoSequential Building of ConstrainedTimetables Using Rule-Based Heuristics An Expert System for AutomatedTimetablingrdquo Congreso Internacional de Investigacioacuten en Ciencias Computacionales

Referencias Bibliograacuteficas

[Giarratamo 1998] Giarratamo Joseph y Gary Riley ldquoExpert Systems Principles andProgrammingrdquo PWS Kent Publishing Company Boston USA

[Gines 1986] Gines B amp Boose J ldquoKnowledge Acquisition for Knowledge-BasedSystemsrdquo Vol 1amp2 Academic Press London U K

[Goldberg 1989] Goldberg DE ldquoGenetic Algorithms in SearchOptimization andMachine LearningrdquoAddison-Wesley

[Kang y White 1994 ] Kang L amp White GM ldquoA Logic Approach to the Resolutionof Constrains in Timetablingrdquo European Journal of Operational Research vol 61 1994

[Kandel 1991] Kandel Abraham ldquoFuzzy Expert Systemsrdquo CRC Press Inc LondonUK 1991

[Kendall1999] Kendall y Kendall ldquoAnaacutelisis y disentildeo de sistemasrdquo 3ordf edicion PearsonEducacioacuten

[Koza 1992] Koza JR ldquoGenetic Programming On the Programming of Computers bymeans of Natural Selectionrdquo Cambridge MA MIT Press

[Martiacutenez 1999] Martiacutenez Alfaro Horacio ldquoSolucioacuten al problema de asignacioacuten desalones de clases horario y grupo mediante templado simuladordquo Memorias 6ordm CongresoInternacional de Mecatroacutenica e Inteligencia Artificial Meacutexico 1999

[Medina 2004] Medina Pasaflores Horacio ldquoFundamentos de Algoritmos GeneacuteticosrdquoTesis de licenciatura Zacatepec Mexico 2004

[Michalewicz 1992] Michalewicz Z ldquoGenetic algorithms + Data Structures =Evolution Programsrdquo Springer-Verlag New York NY

[Negoita1985] Negoita ConstantinV Expert Systems and Fuzzy Systems TheBenjamin Cummings Publishing Co Menlo Park CA USA

[Nielsoft 2000] Nielsoft informatica ldquoManual de usuario Mimosa for windowsrdquo

[Paechter 1994] Paechter B ldquoTwo solutions to the general timetabling problemusing evolutionary methodsrdquo IEEE WCCI 1994

[Pluss1999] Pluss JJ ldquoSistemas expertos un enfoque pragmaacuteticordquo UNR

Referencias Bibliograacuteficas

[Rich 1996] Rich E y Knight K ldquoInteligencia Artificialrdquo McGraw HillInteramericana Madrid Espantildea

[Russell 1996] Russell S y Norvig P ldquoInteligencia Artificial un enfoque modernordquoPrentice Hall Mexico 1996

[Sanchez1999] Sanchez y Beltran ldquoSistemas expertos una metodologiacutea deprogramacioacutenrdquo Macrobit

[Schedul2000] SchedulExpert ldquoCourse scheduling in post educational institutionsrdquo EdAddison Wesley 2000

[Trick 1999 ] Trick Michael ldquoNetwork resources for coloring a graphrdquo Oracle PressEd McGraw Hill 1999

[Turban 1995] Turban Efraim ldquoDecision Support and Expert Systems ManagementSupport Systemsrdquo Fourth Edition Orentice Hall NJ USA

[Waterman1986] Waterman Donald A ldquoA Guide to Expert Systemsrdquo Addison-Wesley Publishing Co USA

[Weare2000] Weare Rupert amp Burke Edmundo amp Eliman David ldquoA Questionnaireon Exam Timetabling in Universitiesrdquo Annual review of computer Science Volume 2Palo Alto 2000

[Wilke 2002] Wilke P amp Grobner M amp Oster N ldquoA hibrid Genetic Algorithm forSchool Timetablingrdquo Advances in Artificial Intelligence Springer Lecture Notes inComputer Science New York

[Yoshikawa 1994] Yoshikawa M amp Kaneko KldquoA Constraint-based Approach toHigh School Timetabling Problems A Case Studyrdquo AAAI-94 12ordm NationalConference on Artificial Intelligence

Referencias Bibliograacuteficas

Referencias electroacutenicas

httpwwwmonografiacuteascomtrabajos12inteartfinteartfshtmlObregoacuten Arturo Inteligencia artificial y Sistemas expertos IIMAS-UNAM (1992)

httpwwwlafacucomapuntesinformaticasist_conodefaulthtmCruz Ochoa Wilson Sistemas de conocimiento

httpwwwingenieroseninformaticaorgrecursostutorialessist_exphtmlZambrano Molina Darwin Sistemas expertos

httpredcientificacomdocdoc199008210001htmlSamper Marquez Juan Joseacute Introduccioacuten a los sistemas expertos Madrid 2000

httpmismonografiascomarSistemas20expertofuzzyhtmlArede Dario Sistema experto fuzzy

httpcruzrojaguayaorginteligenciainterhtmlAyuquina Martha amp Arellano Gregorio Inteligencia artificial Universidad de Guayaquil

httpdmiuibesabasolointart1-introduccionhtmlAbasolo Mariacutea Joseacute Dra Inteligencia Artificial

Page 3: BORIS ANTONIO ARANDA BENITEZ

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

ABSTRACT

This research deals about the Timetabling NP-complete problem appliedat the Instituto Tecnologico de Zacatepec In this document theelements of three Experts System a constrains logic programmingmodule and a Genetics Algorithms module to solve the problem arepresented

Starting with a process to determine how many groups should be openthe next semester after this continue the timetabling assignation to thegroups the next process is the classroom assignation to the groups andthe final module propose a teacher for the groups all this make a setof acceptable solutions without timetabling problems where the naturalconstrains are satisfied

AGRADECIMIENTOS

Agradezco a Dios la oportunidad de vivir para ver terminado este trabajo

Agradezco a mi madre su constante iexcl Ahora una maestriacutea

Agradecimiento especial al Instituto Politeacutecnico Nacional al Centro deInvestigacioacuten en Computacioacuten y al Instituto Tecnoloacutegico de Zacatepecpor haber permitido y facilitado todo para que esta maestriacutea se impartiera

Al Dr Adolfo Guzmaacuten Arenas y al Dr Heacutector Medelliacuten Hernaacutendez porquefueron los autores intelectuales de traer el programa de maestriacutea alTecnoloacutegico de Zacatepec

Al Dr Alvaro de Albornoz Bueno porque sin el curso que impartioacute deInteligencia Artificial y Sistemas Expertos yo seguiriacutea creyendo que esimposible generar los horarios de manera automaacutetica gracias tambieacuten porsu apoyo incondicional y asesoriacutea por uacuteltimo le agradezco la lectura totalal documento final y la aplicacioacuten de las normas de la Real AcademiaEspantildeola al mismo

Al Dr Agustiacuten Gutieacuterrez Torneacutes por su apoyo y confianza en miacute

Debo dar las gracias a Olivia Saacutenchez Cadena por ese tremendo curso deprogramacioacuten visual y tambieacuten a Laura Villavicencio Goacutemez que con lafrase ldquosolo a los nintildeos se les tiene que decir que hacerrdquo me motivoacute acontinuar hasta terminar este trabajo

A mis compantildeeras y compantildeeros por los agradables momentos pasadosdurante el desarrollo de los cursos

A mis alumnos de Ingenieriacutea en Sistemas Computacionales porque con sutiacutepico sentido del humor juvenil me motivaron para cambiar deldquolicenciadordquo a ldquomcrdquo

Agradezco a la ANUIES con su programa Supera por el apoyo econoacutemicobrindado

Se agradece tambieacuten a COSNET por su apoyo dentro del proyecto deinvestigacioacuten 65504-P

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

IacuteNDICE

RESUMEN iABSTRAC iiIacuteNDICE iiiLISTA DE FIGURAS v

CAPIacuteTULO 1 INTRODUCCIOacuteN11 Antecedentes 112 Planteamiento del problema 213 Objetivo general 414 Objetivos especiacuteficos 515 Justificacioacuten 5151 Justificacioacuten teoacuterica 5152 Justificacioacuten metodoloacutegica 5153 Justificacioacuten praacutectica 616 Alcances y limitaciones 7

CAPIacuteTULO 2 MARCO TEOacuteRICO21 El estado del arte 9211 Antecedentes 9212 Algunos meacutetodos para resolver el Problema de la Generacioacuten de Horarios 92121 Algoritmos Geneacuteticos 122122 Programacioacuten Loacutegica de Restricciones 122123 Redes Neuronales 132124 Recocido Simulado 132125 Operadores Recombinatorios Especializados 132126 El Sistema Experto basado en reglas 14213 Observaciones realizadas a algunos paquetes generadores de horarios 1522 Los horarios 16221 El problema de la elaboracioacuten de horarios 1723 El proceso de la elaboracioacuten de horarios 22

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

CAPIacuteTULO 3 TEacuteCNICAS DE INTELIGENCIA ARTIFICIALUTILIZADAS PARA LA GENERACIOacuteN DE HORARIOS31 Sistemas Expertos 24311 Funcioacuten de un Sistema Experto 25312 Arquitectura de Sistemas Expertos 25313 La base de conocimiento 26314 Motor de inferencias 27315 iquestPor queacute utilizar un Sistema Experto 27316 Construccioacuten de prototipos 2832 Algoritmos geneacuteticos 29321 Antecedentes 29322 Definicioacuten de Algoritmo Geneacutetico 30323 Ventajas y desventajas 31324 iquestCoacutemo saber si es posible usar un Algoritmo Geneacutetico 31325 Paraacutemetros que deben ser especificados en el programa 3233 Programacioacuten Loacutegica de Restricciones(PLR) 34331 Antecedentes de la PLR 34332 Restricciones 35333 Sistemas con restricciones 37334 Referencia histoacuterica de las restricciones 37335 Satisfaccioacuten de las restricciones 38336 Resolucioacuten de restricciones 38337 Organizacioacuten de proyectos 38

CAPIacuteTULO 4 ANAacuteLISIS Y DISENtildeO41 Recopilacioacuten de la informacioacuten 4142 Anaacutelisis de la informacioacuten 4643 Solucioacuten definida 4844 Requerimientos del sistema 4945 Disentildeo del sistema 52451 Mapa conceptual del proyecto 52452 Mapas conceptuales de los moacutedulos 54453 Diagramas de contexto 62454 Diagramas entidad relacioacuten 674 55 Diccionario de la base de datos 73456 Lista de funciones o programas 85457 Diagrama de arquitectura (menuacutes) 87

CAPIacuteTULO 5 IMPLEMENTACIOacuteN51 Pantallas del sistema 89

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

CAPIacuteTULO 6 PRUEBAS Y RESULTADOS61 Pruebas del sistema 11462 Pruebas del sistema 115621 Prueba 1 Aacuterea de menuacutes 115622 Prueba 2 Validacioacuten de entradas 118623 Prueba 3 Desplegado de resultados 1206231 Moacutedulo generacioacuten de grupos por abrir 1206232 Moacutedulo generacioacuten de horarios 1216233 Moacutedulo asignacioacuten de aula 1226234 Moacutedulo seleccioacuten de catedraacuteticos 127

CAPIacuteTULO 7 CONCLUSIONES Y TRABAJOS FUTUROS71 Conclusiones 13172 Trabajos futuros 132

REFERENCIAS BIBLIOGRAacuteFICAS 133

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

LISTA DE FIGURAS

Figura Nombre Paacutegina

31 Arquitectura de un Sistema Experto 2632 Pseudocoacutedigo del Algoritmo Geneacutetico simple 3341 Mapa conceptual del proyecto 5242 Diagrama de secuencia 5443 Sistema Experto generador de grupos 5544 Diagrama del moacutedulo Programacioacuten Loacutegica de Restricciones 5745 Diagrama del moacutedulo Algoritmo Geneacutetico 5846 Diagrama de Sistema Experto para sugerir profesor a asignatura 6047 Diagrama de Sistema Experto para sugerir asignaturas para

catedraacutetico61

48 Diagrama de contexto del proyecto 6449 Diagrama de funciones fundamentales (entradas) 65410 Diagrama de funciones fundamentales (salidas) 66411 Diagrama entidad relacioacuten del moacutedulo administrativo 67412 Diagrama E-R del moacutedulo para determinar y ajustar nuacutemero de

grupos68

413 Diagrama E-R del moacutedulo para asignar aulas (Algoritmo Geneacutetico) 69414 Diagrama E-R del moacutedulo para asignar horario (PLR) 70415 Diagrama E-R del moacutedulo designa mejor catedraacutetico (Sistema

Experto)71

416 Diagrama E-R del moacutedulo selecciona mejor materia (SistemaExperto)

72

51 Portada inicial del proyecto 8852 Acerca del sistema 8953 Menuacute principal del proyecto 8954 Menuacute grupos por abrir 9055 Materias 9056 Consulta materias 9157 Pantalla servicios escolares 9158 Pantalla consulta servicios escolares 9259 Pantalla criterios por materia 92510 Pantalla consulta criterios por materia 93511 Pantalla carreras 93512 Pantalla criterios 94513 Pantalla consulta criterios 94514 Pantalla reglas 95515 Pantalla consulta reglas 95516 Pantalla ajustes 96

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

517 Pantalla consulta ajustes 96518 Pantalla criterios por regla 97519 Pantalla consulta criterios por regla 97520 Pantalla caacutelculo de ajustes 98521 Pantalla explicacioacuten de la inferencia 98522 Pantalla inicial del moacutedulo generacioacuten de horarios 99523 Pantalla principal del moacutedulo generacioacuten de horarios 99524 Pantalla principal del menuacute Algoritmos Geneacuteticos 100525 Pantalla de administracioacuten de grupos 100526 Pantalla de consulta de administracioacuten de grupos 101527 Pantalla del control de aulas 101528 Pantalla de consultas del control de aulas 102529 Pantalla para generacioacuten de poblacioacuten inicial 102530 Pantalla de evaluacioacuten de versiones 103531 Pantalla del proceso de seleccioacuten 103532 Pantalla del proceso de clonacioacuten 104

533 Pantalla de mutacioacuten 104534 Pantalla del proceso de cruzamiento 105535 Horarios finales 105536 Pantalla menuacute seleccioacuten de catedraacuteticos 106537 Pantalla de perfiles 106538 Pantalla de consulta perfiles 107539 Pantalla perfiles de las materias 107540 Pantalla consulta perfiles de las materias 108541 Pantalla captura datos de catedraacuteticos 108542 Pantalla consulta datos de catedraacuteticos 109543 Pantalla captura perfil de catedraacuteticos 109544 Pantalla consulta perfil de catedraacuteticos 110545 Pantalla muestra inferencia catedraacuteticos para materia 110546 Pantalla explicacioacuten del porqueacute un maestro puede dar una materia 111547 Pantalla materias que puede impartir un profesor 111548 Pantalla de explicacioacuten del porqueacute un profesor puede dar una

materia112

61 Portada inicial del proyecto 11562 Menuacute principal del proyecto 11663 Menuacute grupos por abrir 11664 Pantalla menuacute seleccioacuten de catedraacuteticos 11765 Pantalla principal del menuacute Algoritmos Geneacuteticos 11766 Pantalla de captura de datos de las Materias 11867 Pantalla de captura de datos de Criterios por Materia 11968 Pantalla de captura de datos de Carreras 11969 Pantalla caacutelculo de ajustes 120

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

610 Pantalla inicial del moacutedulo generacioacuten de horarios 121611 Pantalla principal del moacutedulo generacioacuten de horarios 122612 Pantalla del control de aulas 123613 Pantalla de consultas del control de aulas 123614 Pantalla de genera poblacioacuten inicial 124615 Pantalla de evaluacioacuten de versiones 124616 Pantalla del proceso de seleccioacuten 125617 Pantalla del proceso de clonacioacuten 125618 Pantalla de mutacioacuten 126619 Pantalla del proceso de cruzamiento 126620 Horarios finales 127621 Pantalla captura perfil de catedraacuteticos 128622 Pantalla muestra inferencia catedraacuteticos para materia 128623 Pantalla explicacioacuten porque un maestro puede dar una materia 129624 Pantalla materias que puede impartir un profesor 129625 Pantalla de explicacioacuten porque un profesor puede dar una materia 130

Capiacutetulo 1 Introduccioacuten

CAPIacuteTULO 1

INTRODUCCIOacuteN

11 Antecedentes

iquestQueacute es un horario

ldquoEl horario completo bien puede gobernar las vidas demiles de alumnos y cientos de profesores para los 200 diacuteasdel antildeo escolar semestre a semestre hora tras hora Comouna poderosa herramienta puede faacutecilmente crear o deshacersituaciones de ensentildeanza aprendizajerdquo [Johnson 1980]

En la educacioacuten superior la historia siempre es la misma la proporcioacuten de tiempodictada por el horario para los alumnos y profesores es generalmente muy baja Apesar de esto las dificultades en la creacioacuten de los horarios son grandes Existenvarios departamentos y carreras cada uno con sus propias ideas de coacutemo y cuaacutendo sedeben programar sus cursos El nuacutemero de estudiantes puede variar considerablementede antildeo en antildeo Similarmente las preferencias de los alumnos a favor o en contra delas materias pueden variar dramaacuteticamente de un semestre a otro Los estudiantespueden tomar cursos de un departamento o de varios de ellos aun maacutes puedenseleccionar materias de otras carreras La reciente desaparicioacuten de las restricciones decreacuteditos para cursar las asignaturas complica maacutes la situacioacuten porque ampliacutea el rangode materias que puede tomar un alumno Los horarios aparecen en varias formasmatutinos vespertinos mixtos y todo el diacutea Los horarios escolares indican cuando unmaestro y un alumno deben ir a cada clase Todas las escuelas tienen un horario decursos que dirige lo que cada estudiante y catedraacutetico debe hacer en determinadomomento Esta tesis versa especiacuteficamente sobre el problema de construir horariospara Institutos Tecnoloacutegicos en Meacutexico

La planeacioacuten de los horarios es un trabajo que se realiza semestralmente antes de iniciarel siguiente periodo escolar tomando en cuenta la demanda de grupos que se ofreceraacuteny asignando a estos grupos los alumnos el aula el catedraacutetico y el horariocorrespondiente mediante informacioacuten que se obtiene de varias maneras

El principal objetivo de este proyecto es dar una solucioacuten aproximada (aceptable) alproblema de la generacioacuten de horarios de una escuela de nivel superior que se resumeasiacute

Capiacutetulo 1 Introduccioacuten

ldquoDado un conjunto de departamentos y carreras asignaturas con prerrequisitos gruposcatedraacuteticos con especialidad y horario definidos aulas laboratorios y alumnos con suspreferencias de materias el problema es construir un condensado de horarios factibleque satisfaga todas las restricciones fuertes y minimice las restricciones medias ysuavesrdquo

Las restricciones fuertes son restricciones de espacio y tiempo tal como planear doscursos en un aula al mismo tiempo Las restricciones medias y suaves son laspreferencias de maestros y estudiantes que deberaacuten ser satisfechas si es posible[Elmohamed 1998]

El problema de la generacioacuten de horarios ha sido tratado por muchos investigadoresutilizando meacutetodos que van desde la investigacioacuten de operaciones hasta disciplinas de laInteligencia Artificial como son Algoritmos Geneacuteticos Recocido Simulado RedesNeuronales etc

12 Planteamiento del problema

La generacioacuten de horarios es una forma particular del problema de asignacioacuten derecursos En el caso maacutes general existe una serie de objetos (recursos) y una serie deprocesos que necesitan ser realizados por cada uno de esos objetos En un contextoeducacional cada estudiante debe asistir a un nuacutemero predeterminado de clases y elprofesor debe impartirlas durante la semana en un aula predeterminada el estudiante elprofesor y el aula pasan aquiacute a ser el objeto y las clases el proceso

La complejidad del problema de la generacioacuten de horarios

La generacioacuten de horarios es un problema de optimizacioacuten combinatorio multi-dimensional no Euclidiano con muacuteltiples restricciones y por lo tanto difiacutecil de resolver[Elmohamed 1998]

El problema de la generacioacuten de horarios esta agrupado dentro de los considerados decomplejidad NP-completos es decir que no pueden ser resueltos en tiempo polinomialusando un algoritmo determiniacutestico No se conoce un algoritmo determiniacutestico detiempo polinomial para resolver alguno de esos problemas y la mayoriacutea de la gente creeque dichos algoritmos no existen[Karp 1972]

La generacioacuten de horarios es la asignacioacuten de lapsos de tiempo a un conjunto de eventossujeto a las restricciones en esas asignaciones Seguacuten Elmohamed [Elmohamed 1998]el problema NP-completo de la elaboracioacuten de horarios es un problema para la

Capiacutetulo 1 Introduccioacuten

satisfaccioacuten de restricciones que puede ser definido de la siguiente maneraPara una escuela dada con

Np profesores con sus horarios y turnos Nq materias con su temario y objetivosNx aulas y laboratorios con su capacidad Ns estudiantes

es requerido programar Nt parejas de

alumno-materiahora-materiamaestro-materiaaula-materia

una vez definidas las parejas anteriores se deben programar elementos de la formamateria-maestro-hora -aula

En un liacutemite de Nt lapsos de tiempo para producir una programacioacuten factible En unaprogramacioacuten factible no se puede encontrar a un profesor grupo o estudiante en maacutesde un lugar al mismo tiempo y un aula no puede ser asignada con maacutes de una clase a lavez o maacutes estudiantes de su capacidad o un profesor programado fuera de su horarionormal o con maacutes horas frente a grupo de las reglamentarias ademaacutes de un conjuntoadicional de restricciones

Importancia del problema

La administracioacuten de los recursos comprende la apertura de los grupos para inscribir alos alumnos el proacuteximo semestre la asignacioacuten de carga acadeacutemica a los catedraacuteticos lautilizacioacuten de aulas y laboratorios de quiacutemica produccioacuten coacutemputo electromecaacutenicaaulas de dibujo y demaacutes instalaciones del Instituto Tecnoloacutegico de Zacatepec (ITZ)Cuando por errores imputables al creador de los horarios se hizo una mala planeacioacuten sederivan los siguientes problemasbull Alumnos que se inscriben con una carga de creacuteditos menor a la miacutenima por falta de

grupos suficientesbull Alumnos que deben estar en el ITZ desde las 700 hrs hasta las 2000 hrs varios

diacuteas a la semana por abrir grupos en horarios muy separadosbull Alumnos que pierden la secuencia de materias seriadas por falta de cupobull Alumnos que deben permanecer 1 oacute 2 semestres maacutes en el ITZ por no prever

suficientes grupos para semestres terminalesbull Catedraacuteticos que no imparten el miacutenimo reglamentario de horas frente a grupo por

no crearles grupos suficientesbull Catedraacuteticos a los que se les avisa 1 diacutea antes del inicio de clases que impartiraacuten una

Capiacutetulo 1 Introduccioacuten

asignatura nuevabull Asignaturas que son impartidas por profesores que no cumplen el perfil deseado en

esa asignaturabull Choque de grupos en las aulasbull Choque de grupos en laboratoriosbull Falta de laboratorio a algunos gruposbull Deficiente utilizacioacuten de las aulas

La creacioacuten de un sistema que evite de manera automaacutetica caer en errores como losmencionados NO ES TAREA TRIVIAL intentar resolver este problema involucra laelaboracioacuten de un ldquosistema inteligenterdquo capaz de tomar decisiones aprender inferirbasaacutendose en hechos generar nueva informacioacuten y a partir de ella nuevamente volver adecidir El sistema que se elabore debe tener la capacidad para deducir e inducir de unamanera combinada

Desventajas del sistema actual

La mayoriacutea de los problemas anteriores son ocasionados por alguno o varios de lossiguientes motivosbull Todo el proceso de caacutelculo y administracioacuten de los recursos es manualbull El proceso de elaboracioacuten coincide con el cierre de semestre actual y como las

personas responsables tambieacuten son catedraacuteticos deben combinar la generacioacuten dehorarios con las evaluaciones finales revisioacuten de proyectos y entrega decalificaciones de sus grupos a los alumnos

bull La elaboracioacuten de los horarios es un proceso que se lleva semanas de labor diariabull Requiere la atencioacuten total de los coordinadores durante todo el tiempo de

elaboracioacutenbull Al no tener la informacioacuten automatizada se tienen peacuterdidas de tiempo en la toma de

decisiones como por ejemplo en el preacutestamo de aulas no utilizadas o en la forma decompartir catedraacuteticos

bull Se tienen fuertes restricciones debido a los horarios de los catedraacuteticosbull Hay fuertes dificultades cuando se deben negociar cambios de horarios porque el

proceso implica mover asignaturas buscar aulas dejar paquetes de materias porsemestre etc

bull El estado de aacutenimo del coordinador influye en la elaboracioacuten de los horarios

13 Objetivo general

Generacioacuten de una solucioacuten aproximada del condensado de horarios para una escuela denivel superior que satisfaga las restricciones ocasionadas por los recursos involucradosmediante la elaboracioacuten de un sistema hiacutebrido (experto geneacutetico y loacutegico restrictivo)

Capiacutetulo 1 Introduccioacuten

14 Objetivos especiacuteficos

Se tiene el disentildeo e implementacioacuten de un sistema que

bull Proporciona una solucioacuten aproximada aceptable al problema de la generacioacuten dehorarios

bull Permite a los coordinadores delegar a la computadora la asignacioacuten de recursosbull Ahorra tiempo en la generacioacuten de los horariosbull Reduce el trabajo manualbull Agiliza la toma de decisionesbull Reduce el tiempo de elaboracioacuten de horariosbull Facilita la modificacioacuten de informacioacuten generadabull Aumenta la eficiencia en las negociaciones entre jefes y coordinadoresbull Lleva al Instituto Tecnoloacutegico de Zacatepec (ITZ) a la modernizacioacuten en este

proceso

15 Justificacioacuten del sistema

151 Justificacioacuten teoacuterica

La utilizacioacuten de la Inteligencia Artificial (IA) para la solucioacuten de problemas de la vidacotidiana ha sido una estrategia utilizada cuando los sistemas tradicionales decomputacioacuten no proveen mecanismos suficientes para garantizar una solucioacuten adecuadasu utilizacioacuten para la generacioacuten de horarios (creacioacuten de grupos asignacioacuten de horaasignacioacuten de aula determinacioacuten de catedraacutetico) presenta una alternativa ideal paracomprobarlo

152 Justificacioacuten metodoloacutegica

La utilizacioacuten de un grupo de Sistemas Expertos que realice la asignacioacuten de losrecursos para la generacioacuten de grupos y le proponga una materia determinada a unprofesor seguacuten el perfil acadeacutemico de ambos reuacutene las caracteriacutesticas necesarias paradar la solucioacuten elegante y efectiva al problema planteado anteriormente porque

bull Se requiere del conocimiento de un experto para plantear el funcionamiento delsistema

bull El conocimiento se alimentaraacute a una base de conocimientos que conste de variaspartes

bull Para la generacioacuten de grupos de una asignatura dada el sistema debe ldquorazonarrdquo paradeterminar cuantos de eacutestos se deben abrir para ofertarlos a los alumnos

Capiacutetulo 1 Introduccioacuten

bull En la asignacioacuten de nuevas materias a los catedraacuteticos el sistema debe ldquodeterminarrdquoquieacuten es el maacutes idoacuteneo para impartirla de acuerdo al perfil de ambos materia ymaestro

La Programacioacuten Loacutegica de Restricciones (PLR) es una de las teacutecnicas que maneja demanera natural informacioacuten sometida a ciertas restricciones y fue seleccionada paraseguir trabajando en la resolucioacuten del problema porque

bull Los horarios deben satisfacer ciertas restricciones como por ejemplo no se debengenerar mas grupos de los necesarios no puede haber dos materias con el mismogrupo no deben existir grupos del mismo paquete a la misma hora etc

bull Cada paquete de un semestre es un objeto que por siacute mismo posee ciertascualidades y restricciones por ejemplo no debe tener horas sin asignatura entre lahora inicial y final existen materias que se deben impartir de una hora diaria otrasdeben ser impartidas de 2 horas diarias etc

bull La solucioacuten presentada por la PLR inicia con datos aleatorios de un horario despueacutesse verifica si las restricciones se cumplen o no si se cumplen se guarda el dato si nose genera un nuevo dato aleatorio

Los Algoritmos Geneacuteticos utilizados aquiacute para asignar aula a los grupos cumplen con lametodologiacutea de la Computacioacuten Evolutiva porque

bull Se tienen datos iniciales de los grupos (materia-hora)bull Se genera una poblacioacuten inicial que son n versiones de un condensado de horarios

sin aulabull Esta poblacioacuten inicial es evaluada se seleccionan los condensados maacutes adecuados y

se eliminan las versiones menos adecuadasbull Se realizan cruzamientos mutaciones clonaciones y se crea la nueva generacioacuten de

horariosbull Se repite el proceso hasta llegar a una utilizacioacuten eficiente de las aulas

Por lo anterior se pueden observar las ventajas de utilizar un sistema inteligente sobreuno convencional para solucionar el problema planteado

Una vez definido el modelo para solucionar el problema de la asignacioacuten de horariospara las asignaturas aulas y catedraacuteticos de una institucioacuten de educacioacuten superior seraacutefaacutecil extrapolarlo para solucionar algunos problemas referentes a la planeacioacuten dehorarios de otro tipo de escuelas de nivel medio superior

153 Justificacioacuten praacutectica

La creacioacuten de un sistema que resuelva el problema de la elaboracioacuten de horarios ygenere automaacuteticamente la programacioacuten de grupos aulas y maestros sin violar las

Capiacutetulo 1 Introduccioacuten

restricciones fuertes minimizando las restricciones medias y suaves optimizando lautilizacioacuten de las aulas cumpliendo con las restricciones de los profesores asignandoprofesores adecuados para impartir las clases traeraacute como consecuencia condicionespara mejorar el proceso de ensentildeanza aprendizaje

16 Alcances y limitaciones

Alcances

El sistema generaraacute un espacio de soluciones finito que satisfaga las restriccionesfuertes medias y suaves optimizando el uso de los recursos disponibles se puede decirque el sistema optimizaraacute los recursos cuando los horarios generados tengan lascaracteriacutesticas mencionadas maacutes adelante

Esta tesis documenta la creacioacuten de un sistema basado en el conocimiento parasolucionar el problema de la generacioacuten de horarios en el Instituto Tecnoloacutegico deZacatepec que permite

bull Generar grupos suficientes para que todos los estudiantes se inscriban al menos conla carga miacutenima reglamentaria

bull Que los alumnos tengan horarios adecuados a sus necesidades y preferenciasbull Que todos los grupos tengan capacidad suficiente para todos los estudiantes que

deseen inscribirsebull Que los profesores impartan materias de acuerdo a su perfil profesionalbull Evitar los choques de grupos en aulas y laboratoriosbull Que todos los grupos tengan aula asignada desde el inicio del semestrebull La utilizacioacuten oacuteptima de las aulas y laboratoriosbull La correcta asignacioacuten de aulas y laboratorios a los cursosbull Realizar de manera automaacutetica la asignacioacuten de los recursosbull Determinar el nuacutemero de grupos que se deben abrirbull Llenar las aulas con grupos sin permitir choque de horariosbull Imprimir la lista de grupos ofertados para el semestre siguientebull Cuando exista el grupo de una materia sin maestro determinar cual es el mejor para

impartirla

Tener un Sistema terminado que contenga los siguientes moacutedulos

Sistema administrativo para control de horarios Sistema Experto para determinar la cantidad de grupos por abrir Sistema Experto para sugerir materias a un catedraacutetico Sistema Experto para seleccionar los mejores catedraacuteticos para impartir una

asignatura

Capiacutetulo 1 Introduccioacuten

Moacutedulo de Programacioacuten Loacutegica de Restricciones para generar los horarios a lospaquetes de materias por semestre

Moacutedulo de Algoritmo Geneacutetico para asignar aula a los grupos

Cada moacutedulo tendraacute

bull Interfaces de usuario amigablesbull Tiempos de ejecucioacuten raacutepidos (independientemente de la maacutequina objetivo)bull Reglas de inferencia para generar resultados (soacutelo los Sistemas Expertos)bull Buacutesquedas heuriacutesticas o aleatorias seguacuten el casobull Procesos para realizar induccioacuten y deduccioacuten (soacutelo los Sistemas Expertos)bull Manejo de incertidumbre (soacutelo los Sistemas Expertos)bull Un moacutedulo de explicaciones en lenguaje natural

Limitaciones

El sistema estaacute disentildeado para generar horarios de una escuela de nivel superior donde elcoordinador de cada carrera es el responsable de la generacioacuten de sus horarios controlarsus profesores impartir cierto nuacutemero de materias y utilizar cierta cantidad de aulas ylaboratorios

Trabaja exclusivamente en lenguaje espantildeol

Las reglas de la base de conocimiento tienen un formato predeterminado por unasintaxis definida para el sistema

El sistema estaacute elaborado para trabajar en microcomputadoras compatibles con IBM

No maneja los horarios individuales de los alumnos en el proceso de inscripcioacuten estaactividad deberaacute ser realizada por los sistemas del departamento de servicios escolares

Capiacutetulo 2 Marco teoacuterico

CAPIacuteTULO 2

MARCO TEOacuteRICO

21 El estado del arte

211 Antecedentes

El problema de la generacioacuten de horarios ha sido atacado de varias maneras a nivelmundial inclusive existe un grupo internacional que convoca al congreso llamadoPATATxx (Practice and Theory of Automated Timetabling) donde xx es el antildeo delcongreso en cuestioacuten

La ASAP (Automated scheduling optimization and planing group) es otro organismocuyo fin principal es conducir investigacioacuten en modelos heuriacutesticas y algoritmos para laproduccioacuten automaacutetica de soluciones de alta calidad a una gran variedad de problemasde planeacioacuten y optimizacioacuten del mundo real incluyendo elaboracioacuten de horarioslogiacutestica asignacioacuten de espacio y mantenimiento de inventarios

212 Algunos meacutetodos para resolver el Problema de laGeneracioacuten de Horarios

La generacioacuten de horarios acadeacutemicos ha sido acometida por muchos investigadoresbaacutesicamente dentro del aacuterea de la Investigacioacuten de Operaciones

2121 Investigacioacuten de Operaciones

El algoritmo para resolver problemas de asignacioacuten se denomina Huacutengaro ya que fuerondos matemaacuteticos Huacutengaros Koumlnig (1916) y Egervary (1931) los que aportaron lasteoriacuteas que sirven de base a este meacutetodo [Daellenbach 1987]

Este problema se presenta en diversos casos de toma de decisiones Los problemastiacutepicos de asignacioacuten implican asignar tareas a maacutequinas trabajadores a tareas yproyectos personal de ventas a territorios de ventas contratos a licitaciones horarios deaulas disponibles a horarios de maestros disponibles enfermos a camas disponibles delhospital cierto nuacutemero de empleados a cierta cantidad de puestos en una empresaaviones a destinos aeacutereos entre otros

Capiacutetulo 2 Marco teoacuterico

Una caracteriacutestica importante de los problemas de asignacioacuten es que se asigna untrabajador una tarea a una sola maacutequina proyectoEn particular se busca elconjunto de asignaciones que optimice el objetivo planteado tal como minimizar costosminimizar tiempo o maximizar utilidad

La formulacioacuten del problema general de asignacioacuten es

Sujeta a

Corresponde a un caso especial del problema del transporte en el cual las variables Xijsoacutelo pueden tomar el valor 0 oacute 1 tomar el valor 1 si el origen i se hace corresponder aldestino j y 0 en caso contrario

El Algoritmo Huacutengaro

Este algoritmo se usa para resolver problemas de minimizacioacuten ya que es maacutes eficazque el empleado para resolver el problema del transporte por el alto grado dedegeneracioacuten que pueden presentar los problemas de asignacioacuten Las fases para laaplicacioacuten del meacutetodo Huacutengaro son

Capiacutetulo 2 Marco teoacuterico

Paso 1 Encontrar primero el elemento maacutes pequentildeo en cada fila de la matriz de costosmm se debe construir una nueva matriz al restar de cada costo el costo miacutenimo de cadafila encontrar para esta nueva matriz el costo miacutenimo en cada columna A continuacioacutense debe construir una nueva matriz (denominada matriz de costos reducidos) al restar decada costo el costo miacutenimo de su columna

Paso 2 (En algunos pocos textos este paso se atribuye a Flood) Consiste en trazar elnuacutemero miacutenimo de liacuteneas (horizontales o verticales o ambas uacutenicamente de esasmaneras) que se requieren para cubrir todos los ceros en la matriz de costos reducidos sise necesitan m liacuteneas para cubrir todos los ceros se tiene una solucioacuten oacuteptima entre losceros cubiertos de la matriz Si se requieren menos de m liacuteneas para cubrir todos losceros se debe continuar con el paso 3 El nuacutemero de liacuteneas para cubrir los ceros es iguala la cantidad de asignaciones que hasta ese momento se pueden realizar

Paso 3 Encontrar el menor elemento diferente de cero (llamado k) en la matriz decostos reducidos que no estaacute cubierto por las liacuteneas dibujadas en el paso 2 acontinuacioacuten se debe restar k de cada elemento no cubierto de la matriz de costosreducidos y sumar k a cada elemento de la matriz de costos reducidos cubierto por dosliacuteneas (intersecciones) Por uacuteltimo se debe regresar al paso 2

Notas

1 Para resolver un problema de asignacioacuten en el cual la meta es maximizar la funcioacutenobjetivo se debe multiplicar la matriz de ganancias por menos uno (-1) y resolver elproblema como uno de minimizacioacuten

2 Si el nuacutemero de filas y de columnas en la matriz de costos son diferentes el problemade asignacioacuten estaacute desbalanceado El meacutetodo Huacutengaro puede proporcionar una solucioacutenincorrecta si el problema no estaacute balanceado debido a lo anterior se debe balancearprimero cualquier problema de asignacioacuten (antildeadiendo filas o columnas ficticias) antes deresolverlo mediante el meacutetodo Huacutengaro

3 En un problema grande puede resultar difiacutecil obtener el miacutenimo nuacutemero de filasnecesarias para cubrir todos los ceros en la matriz de costos actual Se puede demostrarque si se necesitan j liacuteneas para cubrir todos los ceros entonces se pueden asignarsolamente j trabajos a un costo cero en la matriz actual esto explica porqueacute terminacuando se necesitan m liacuteneas

Capiacutetulo 2 Marco teoacuterico

Tambieacuten han aparecido meacutetodos no convencionales que atacan el problema desdediferentes aacutengulos Los maacutes usuales son

Algoritmos Geneacuteticos Redes Neuronales Recocido Simulado Buacutesquedas Tabuacute Sistemas Expertos Programacioacuten Loacutegica de Restricciones Grafos Coloreados Operadores Recombinatorios Especializados

2122 Algoritmos Geneacuteticos

Los Algoritmos Geneacuteticos han sido utilizados satisfactoriamente para planear exaacutemenesy cursos en cierto nuacutemero de casos [Corne 1993] utiliza una buena aproximacioacutentradicional donde cada gene representa la hora en la cual se presentaraacute un examen ocurso Con operadores de cruzamiento y mutacioacuten como los mencionadosanteriormente agrega sustanciosos ahorros de tiempo al meacutetodo de Corne [Paechter1994] da una aproximacioacuten diferente donde el gene de cada examen no solo especificaldquoel cuandordquo sino que tambieacuten busca un nuevo horario del examen si despueacutes delcruzamiento el curso esta causando un conflicto Si el examen no puede ser programadoen alguna hora entonces no se agrega a la planeacioacuten con la finalidad de no tenerhorarios infactibles

[Burke1994] incorpora dominios de conocimiento especiacutefico para asegurar que ningunade las soluciones candidato es no factible En particular una representacioacuten directa seutilizada que incluye no soacutelo el cuaacutendo sino tambieacuten el doacutende un curso o examendeberaacuten ser tomados permitiendo al programador de horarios detener la ejecucioacuten delalgoritmo en cualquier punto y tener ya una serie de soluciones de buenos horariosfactibles

2123 Programacioacuten Loacutegica de Restricciones

Varios autores han presentado teacutecnicas de Programacioacuten Loacutegica de Restricciones pararesolver problemas de asignacioacuten de horarios pero eacuteste sigue siendo un nuevo enfoqueTambieacuten han aparecido algunos usando PLR para la planeacioacuten de clase-maestro[Yoshikawa 1994]

Kang y White presentaron una buena aproximacioacuten estaacutendar de PLR programandocursos sin permitir ningun conflicto [Kang y White 1994] Ellos usaron una teacutecnica dereversa equivalente al backtracking con lo cual cuando un curso no puede ser

Capiacutetulo 2 Marco teoacuterico

asignado uno similar es desasignado y el nuevo es colocado en su lugar Esto previeneuna buacutesqueda exhaustiva completa Esto tambieacuten introduce el concepto de undelimitador de tamantildeo que establece un maacuteximo en el tamantildeo del aula que puede usarun curso en particular Las restricciones son priorizadas en cinco diferentes categoriacuteasdonde la categoriacutea cinco debe ser liberada antes que la categoriacutea cuatro y asiacute con lasdemaacutes Este procedimiento fue utilizado para programar exitosamente los cursos de laUniversidad de Otawa

Tambieacuten se ha utilizado la teacutecnica de la Programacioacuten Loacutegica de Restricciones parahacer los horarios de una facultad utilizando una regla heuriacutestica para seleccionar quecurso asignar primero [Fahrion y Dollanski 1992]

2124 Redes Neuronales

De las distintas categoriacuteas de las Redes Neuronales Artificiales la maacutes apropiada pararesolver el problema es la familia de las Redes Neuronales de reaccioacuten basadas enneuronas multiestado con ecuaciones de teoriacutea de campos con significado controlandolas dinaacutemicas Las ecuaciones anteriores son usadas en lugar de los procedimientospara actualizacioacuten de demanda estocaacutesticos que han sido usados por otros esquemas paraevitar quedar atorados en circuitos locales miacutenimos [Carrasco 2004]

2125 Recocido Simulado

Recocido Simulado se refiere al uso de una teacutecnica de optimizacioacuten combinatoria odiscreta Divide el problema en grupos del mismo tiempo de clase los cuales sonespecificados por cada departamento acadeacutemico basados en la habilidad de losinstructores Funciona asiacute

1 El proceso asigna aulas procesando un grupo a la vez empezando con el primero2 El proceso continuacutea hasta que todos los grupos son procesados3 Cuando una solucioacuten es obtenida dividiendo el problema en conjuntos de horario

una mutacioacuten especial es generada con grupos traslapados Esto podriacutea generar unamala asignacioacuten de aula para minimizar esto se utiliza el siguiente paso

4 Los grupos son procesados basados en el nuacutemero de aulas este nuacutemero de aulas esoptimizado y se termina con las horas de clase con el miacutenimo de paquetes a esa hora

5 La implementacioacuten del programa genera una base de datos con la nueva asignacioacutende salones para el proacuteximo semestre [Abramson 1991]

2126 Operadores Recombinatorios Especializados

Los operadores de cruzamiento de los Algoritmos Geneacuteticos producen buenas

Capiacutetulo 2 Marco teoacuterico

combinaciones de genes para ser pasados entre los diferentes miembros de unapoblacioacuten En los Algoritmos Geneacuteticos estaacutendar es un procedimiento similar a escogerlos primeros n genes del primer padre y los uacuteltimos del segundo padre esteprocedimiento no es uacutetil en situaciones donde existen fuertes restricciones sobre laforma de los miembros de la poblacioacuten aquiacute un operador violaraacute esos requerimientosEl operador de recombinacioacuten heuriacutestico hiacutebrido trabaja asiacute

1 Los grupos no programados del periodo anterior son pasados al algoritmo2 Primero selecciona aquellos grupos programados en el periodo i en los padres 1 y 23 Los grupos extra son seleccionados de aquellos programados en el periodo i ya sea

del padre 1 o del padre 2 o de los dejados del periodo i ndash 14 Cualquiera de los grupos no programados es pasado al periodo i+15 Soacutelo los grupos que no crean conflicto con aquellos ya programados para este

periodo pueden ser seleccionados [Wilke 2002]

2127 El Sistema Experto Basado en Reglas

Los Sistemas Basados en Reglas proporcionan un buen punto de referencia para saberque tan buenos son otros meacutetodos en comparacioacuten a esta teacutecnica estaacutendar Varias deestas reglas son usadas para proporcionar sensibles elecciones para los movimientos enel algoritmo de Recocido Simulado en lugar de seleccionar cambios de manera aleatoriase ha usado este sistema como un preprocesador para generar una buena aproximacioacuteninicial y darla al Recocido Simulado

El Sistema Experto Basado en Reglas consiste en un nuacutemero de reglas (o heuriacutesticas) yrecursioacuten convencional para ayudar en la generacioacuten de asignacioacuten de clases Lasestructuras de datos o componentes del sistema son

bull Una matriz de distancias entre los departamentos acadeacutemicos y los edificios queseraacuten utilizados

bull Estructura de los datos de las materias para cada grupo programado en el campobull Estructura para las aulas (independientemente del tipo de aula) involucradas en el

procesobull Horarios para cada periodo de tiempo guardando cuales estaacuten disponibles y

cuales ya fueron ocupadasbull La estructura de los departamentosbull Las preferencias de los estudiantes indicando las clases requeridas

independientemente del semestre que sean las materias [Gervaacutes 1999]

Capiacutetulo 2 Marco teoacuterico

213 Observaciones realizadas a algunos paquetes generadores de horarios

Nombre DeMIStDescripcioacuten Puede describirse como un paquete que realiza bien las operaciones decasa (la propia universidad que lo creoacute) pero salioacute tan costoso como si hubierancomprado un paquete [Demist 2000]Proveedor DeMISt University

KnowTISEs un proyecto iniciado por la universidad de Leeds En la literatura aparece como unpaquete que es mejor para la generacioacuten de Grandes Horarios para una universidad quepara un departamento Utiliza el beneficio de gran cantidad de informacioacutencentralizada para la optimizacioacuten de recursos [Schedul 2000]Leeds University

STARSSTARS(Space Time and Resources Management) Igual que el anterior corre mejor enla elaboracioacuten de horarios de buen tamantildeo que en una aplicacioacuten departamentalDe Montfort University

Meeting maker Office TalkEs un generador de clases y acciones diarias es bueno cuando no es uacutetil el horario delos alumnos ya que proporciona uacutenicamente los espacios para las clases [Gervaacutes 1999]Varios proveedores

GP-UNTISEs un paquete australiano que funciona perfectamente para los requerimientos de lasescuelas secundariasTimetabling Services UK

Syllabus PlusEs una buena opcioacuten para uso departamental cumple los requerimientos de unauniversidad para la generacioacuten de horarios no trabaja a nivel de estudiantes pero si lohace con grupos de ellos no es factible para la generacioacuten de Grandes HorariosScientia LTD

Facility TimetablerEs una buena opcioacuten para uso departamental y para Grandes Horarios tiene interfaz conlos sistemas de alumnos y permite la creacioacuten de horarios individuales permite el uso

Capiacutetulo 2 Marco teoacuterico

centralizado de las aulas para una buena optimizacioacutenFacility Systems

Mimosa for WindowsEs un software general de planificacioacuten de la ensentildeanza y de programacioacuten de horariosLa aplicacioacuten utiliza todas las propiedades de Windows eficientemente es raacutepida tienegran capacidad y lo mas importante es tan flexible que puede aplicarse en todo el tipode escuelas desde la escuela primaria a las universidades desde las escuelasvocacionales a las academias militares

Se podriacutea decir que este producto cubririacutea todas las necesidades de la institucioacuten perohan existido algunos inconvenientes ya que no cubre con las necesidades deldepartamento tan solo da ayuda al usuario para que pueda generar sus horarios ademaacutesel tener tantos botones en pantalla (200) podriacutean confundir al usuario y realizar horarioserroacuteneos y no se resolveriacutea el problema [Nielsoft 2000]Mimosa Software Oy Finlandia

GestHor BSPEs un producto informaacutetico para resolver problemas de horarios escolares en escuelasbaacutesicas escuelas secundarias y escuelas profesionales

Toacutemese en cuenta que la mayoriacutea de los sistemas mencionados se enfoca solo a laasignacioacuten aula ndash materia y no abarca lo que es asignacioacuten materia ndash profesor

22 Los horarios

Existe mucha literatura referente a los horarios con una gran variedad de subtiacutetulos ydiferentes problemas Una gran variedad de algoritmos han sido propuestos empleandometodologiacuteas y heuriacutesticas de buacutesqueda produciendo horarios completos o soacuteloayudando durante el proceso Una de las grandes preguntas para la elaboracioacuten dehorarios es que si eacutestos pueden ser generales es decir iquestse puede encontrar un algoritmoo meacutetodo suficientemente general que produzca buenos horarios para todos losproblemas y para todas las restricciones La alternativa desde luego es continuardesarrollando algoritmos especializados aislados cada vez que un problema de horariosaparece

Al trabajar con una solucioacuten para el problema de los horarios se deben contestar lassiguientes preguntas iquestTodas las escuelas de nivel superior elaboran los horarios de lamisma manera iquestSon grandes o pequentildeas las diferencias en la forma de elaborar loshorarios iquestQueacute tan necesaria es la ayuda de la computadora iquestSoacutelo se requiere unpaquete general para la elaboracioacuten de los horarios iquestQueacute funcionalidad debe tener

Capiacutetulo 2 Marco teoacuterico

dicho paquete iquestQueacute tan grande y complejo es el problema de elaboracioacuten de horariosiquestQueacute propiedades debe poseer un horario aceptable para que una institucioacuten lo use

Se han realizado algunas encuestas para conocer si las escuelas de nivel superior tienensistemas computarizados para la elaboracioacuten de horarios si no los tienen si lonecesitaban y queacute caracteriacutesticas deberiacutea poseer El estudio concluyoacute que existe una grandemanda para tal sistema que se requiere un alto grado de asistencia automatizada yque la mayoriacutea de los elaboradores de horarios no estaban muy contentos con sussistemas actuales [Comm y Mathaisel 1988]

[Dowsland y Lim 1982] consideraron el problema de la elaboracioacuten de horarios peroproporcionaron alternativas en la encuesta de la utilidad de sistemas automatizados[Junginger 1986] establece que ldquoAunque los horarios producidos requierenmodificacioacuten las escuelas estaacuten contentas con los resultados El tiempo ahorrado fueconsiderable arriba del 75rdquo Dowsland por otro lado concluye que ldquoEs muy difiacuteciljuzgar el eacutexito actual de los paquetes para la elaboracioacuten de horarios pero el uso muylimitado de ellos sugiere que sus ventajas son limitadasrdquo Claramente ninguacuten disentildeadorde sistemas puede garantizar la idea de que su producto seraacute bienvenido con los brazosabiertos

[Pendlebury 1986] encuestoacute a las universidades politeacutecnicas britaacutenicas con respecto ala elaboracioacuten de horarios de cursos Doce de las treinta que contestaron la encuestautilizan elaboracioacuten de horarios por computadora (siete a gran escala y cuatro lo hacenen pequentildea escala) Es interesante notar que Pendlebury encontroacute que la mayoriacutea de loscursos se basan en clases que son muy independientes unas de otras y en la mayoriacutea delas instituciones encuestadas los departamentos individuales son responsables deproducir sus propios horarios

221 El problema de la elaboracioacuten de horarios

La elaboracioacuten de horarios es el acto de programar cursos a periacuteodos de tiempo asignarun aula a esos cursos y asignar un catedraacutetico a dicho curso

A menudo se hacen afirmaciones acerca de la naturaleza del problema que puedenpermitir encontrar una solucioacuten maacutes eficientemente Sin embargo cuando se trata deconstruir un sistema general se estaacute limitado a que las afirmaciones son el miacutenimocomuacuten denominador de todos los posibles escenarios

Una informacioacuten impliacutecita que ha sido hecha a menudo es la independencia entreunidades acadeacutemicas separadas Algunas universidades programan preguntando a susdepartamentos los horarios de sus propios cursos Una unioacuten central de dichos horarioses entonces utilizada para asegurar que todas las restricciones relevantes son cumplidasEn muchos casos esta es la forma normal en que es producido el horario de los cursos

Capiacutetulo 2 Marco teoacuterico

aunque algunos departamentos desarrollan su propio software para la programacioacuten decursos

En varias universidades los alumnos pueden tomar algunos de sus cursos endepartamentos diferentes al suyo Obviamente la independencia no debe ser asumidageneralmente debido a que puede haber diferencia en la programacioacuten de los cursos decada departamento En el Tecnoloacutegico de Zacatepec por ejemplo la probabilidadpromedio de que un curso tenga conflicto con uno de otro departamento es 1650mientras que la probabilidad de que dos cursos del mismo departamento tengan conflictoes 2250 notaacutendose una gran diferencia en el resultado

Dificultades encontradas por los responsables de la generacioacuten de horarios

Algunas dificultades experimentadas por los departamentos y facultades sonmencionadas aquiacute

bull Los programas acadeacutemicos se hacen cada vez maacutes flexibles (los estudiantesseleccionan queacute asignaturas tomar cuaacutendo doacutende y con quieacuten)

bull Algunos departamentos tienen asignaturas para ofrecer pero no tienen muchosalumnos

bull Los espacios para ofrecer las materias son cada vez menos y el problema se agravacuando los alumnos no quieren asistir en las tardes o los saacutebados

bull El staff de profesores no siempre estaacute disponible para impartir clases por muacuteltiplesrazones

bull Los alumnos pueden solicitar los grupos del proacuteximo semestre desde antes de queinicie pero al llegar el momento de inscribirse no lo hacen

bull Los departamentos estaacuten ansiosos por ofrecer una gran variedad de grupos teniendolos recursos pero esto puede ocasionar problemas

bull Existe una gran variedad de reglas al momento de asignar las aulas (pertenencia alas carreras prioridades de profesores etc)

bull Como no hay un costo asociado a la utilizacioacuten de un aula y no hay sanciones porreservarla y no utilizarla los departamentos acadeacutemicos no tienen un buen motivopara hacer una correcta utilizacioacuten del espacio

bull La falta de recursos ocasiona el mayor de los problemas porque obliga a laoptimizacioacuten en la planeacioacuten

Cursos y estudiantes

El problema de la elaboracioacuten de horarios estaacute relacionado esencialmente con el nuacutemerode eventos que requieren ser programados en este caso los cursos para los estudiantesClaramente el tamantildeo del problema variacutea entre los diferentes centros de estudio desdepequentildeos problemas con alrededor de 50 a 100 cursos hasta los 500 o 1000 cursos que

Capiacutetulo 2 Marco teoacuterico

programar Esta variacioacuten en el tamantildeo afectaraacute el tiempo requerido para resolver elproblema Un problema pequentildeo puede ser resuelto casi de manera oacuteptima mientrasque en uno grande se deben usar buacutesquedas heuriacutesticas u otras formas de acotar elespacio de buacutesqueda de una solucioacuten en un periodo de tiempo razonable

Se debe esperar que el nuacutemero de cursos y el nuacutemero de alumnos esteacuten correlacionadosEl nuacutemero de cursos ofrecidos y desde luego programados debe ser calculado porextrapolacioacuten del promedio de 5 o 6 cursos por alumno y con cupo promedio de 30alumnos por curso obviamente algunos alumnos se inscribiraacuten en 7 u 8 cursos porsemestre mientras que los cursos tendraacuten inscritos entre 20 y 40 alumnos Losalumnos dependiendo del semestre en que se encuentran inscritos deben matricularse aciertos cursos especiacuteficos para ese semestre dichos cursos deben programarse de maneraque los alumnos tengan la menor cantidad de tiempo entre el primer y el uacuteltimo cursodel diacutea permitieacutendoles con esto realizar actividades complementarias

En el Tecnoloacutegico de Zacatepec para una carrera con 900 alumnos se requieren ofertaraproximadamente entre 140 y 160 cursos ademaacutes los estudiantes pueden matricularse encursos ofrecidos por otros departamentos (esto ampliacutea el rango de posibilidades para losalumnos)

Los cursos y los departamentos

El promedio de los cursos ofrecidos por cada departamento variacutea considerablementeentre las diferentes escuelas de nivel superior La razoacuten de esta variabilidad puede servista como un indicador de la naturaleza de la complejidad de la planeacioacuten de horarios

Cada departamento ofrece cursos a los estudiantes de las carreras a las que da soportedirecto pero ademaacutes debe ofrecer cursos para todas las otras carreras de la institucioacutenque lo requieran esto es si un departamento X solicita la apertura de determinadonuacutemero de cursos a un departamento Y el departamento Y debe ofertar los cursossolicitados por X para los alumnos matriculados en el departamento X aunado a estoalgunos cursos ofertados por el departamento Y tienen compatibilidad con cursosofrecidos por X y por lo tanto los estudiantes de Y y X pueden ingresar indistintamenteen cualquiera de los cursos

Los cursos los semestres y las horas

Una de las afirmaciones que se pueden hacer en las instituciones de nivel superior es quelos cursos generalmente inician durante cierto periodo de tiempo y pueden tenerduracioacuten semestral (la gran mayoriacutea) trimestral y sin fechas predeterminadas (algunosposgrados por ejemplo) En general los cursos empiezan a las 700 AM y terminandependiendo del lugar a las 2000 o a las 2100 horas de lunes a saacutebado Aunque estopermite tener un amplio margen de horas para programar los cursos esto hace tambieacuten

Capiacutetulo 2 Marco teoacuterico

aun maacutes difiacutecil la elaboracioacuten de los horarios porque aumenta el rango de posiblescombinaciones donde programar cursos

Los cursos se pueden programar en periodos de tiempo muy variados aunque la mayoriacuteade los programadores de horarios siguen los siguientes patrones

bull Curso diario de 1 horabull Curso de dos horas en diacuteas saltados (lunes y mieacutercoles jueves y viernes

mieacutercoles y viernes)bull Curso de dos horas diarias 3 diacuteas por semana (lunes mieacutercoles y viernes)

(lunes martes y jueves) o (martes jueves y viernes)bull Cursos de cuatro horas en un solo diacutea por semanabull En el peor de los casos se programan cursos con la combinacioacuten de algunos

de los anteriores

Dependiendo del curso algunos tienen duracioacuten de cuatro horas teoacutericas semanales otroscombinan cuatro horas de teoriacutea y dos de praacutectica y algunos excepcionalmente sonprogramados con cuatro horas de praacutectica y dos de teoriacutea Las horas de praacutecticageneralmente se realizan en laboratorios o praacutecticas de campo agregando esto un nuevoparaacutemetro para la complejidad de la elaboracioacuten de horarios

Los cursos y las aulas

Las aulas son el espacio fiacutesico donde se impartiraacuten los cursos pueden ser salones declase laboratorios salones de exposicioacuten aulas para aplicacioacuten de exaacutemenes aulas paraactividades deportivas musicales o recreativas cada aula tiene capacidad para quecierto nuacutemero definido de estudiantes reciba sin problema unidades de ensentildeanzaaprendizaje

En una encuesta realizada por la Universidad de Nottingham [Burke y Elliman 1998] sedefinioacute que la programacioacuten de los cursos en las aulas es uno de los mayores problemasa los que se enfrentan los responsables de la elaboracioacuten de horarios Esto proviene dedos problemas mayores El primer problema es la escasez de aulas disponibles ya queen algunas de las escuelas de nivel superior el crecimiento de la poblacioacuten estudiantil hasido mayor que el crecimiento del nuacutemero de aulas disponibles para la ensentildeanza Elsegundo problema ocurre cuando se programa un curso en mas de un aula o saloacuten declase

La ocupacioacuten de las aulas es variable de acuerdo al departamento para el que seaasignada algunos prefieren utilizarlas al maacuteximo en el turno matutino otros en el turnovespertino tienen ocupacioacuten total algunos las utilizan exhaustivamente de lunes ajueves unos departamentos las llenan los viernes y saacutebados y otros tienen que utilizarlastodo el diacutea de lunes a saacutebado inclusive solicitan prestadas a los otros departamentosaquellos espacios que no son utilizados en alguacuten diacutea y hora a la semana

Capiacutetulo 2 Marco teoacuterico

Para el Tecnoloacutegico de Zacatepec el recurso llamado las aulas debe ser optimizado enuna buena planeacioacuten de horarios esto es deben ser utilizadas al maacuteximo todos los diacuteasde la semana desde las 700 hasta las 2100 de lunes viernes y los saacutebados hasta las1500 horas

Tipos de cursos

Una de las cosas a tomarse en cuenta durante la elaboracioacuten de los horarios es el tipo decurso a programar

bull Teoacutericos como los cursos matemaacuteticos cursos de administracioacuten etcbull Teoacuterico praacutecticos como los cursos de electroacutenica sistemas digitalesbull Lenguajes de programacioacutenbull Con praacutecticas de campo que deben salir al aire librebull Con praacutecticas de quiacutemica

Otra consideracioacuten es el tipo de aula requerida por los diferentes tipos de cursos

bull cursos que requieren medios audiovisuales simples (pizarroacuten y gis)bull algunos cursos adicionalmente requieren proyectores de acetatos y salas

obscurecidasbull cursos que requieren equipo de coacutemputo equipo de proyeccioacuten equipo de video y

televisioacuten para el desarrollo de la caacutetedra etcbull cursos que requieren laboratorios con computadorasbull que requieren equipos de medicioacuten electroacutenica generadores de sentildeales enchufes

eleacutectricos ybull cursos que requieren mesas tomas eleacutectricas y equipos para conexioacuten de redes

Los cursos y los catedraacuteticos

Definitivamente eacutesta es una de las principales consideraciones que tienen en cuenta losprogramadores de horarios la asignacioacuten de los cursos a los catedraacuteticos porque es unproceso que no puede realizarse de manera aleatoria es un proceso delicado porque deesto depende la efectividad del proceso de ensentildeanzandashaprendizaje

Los catedraacuteticos tienen caracteriacutesticas individuales que los hacen uacutenicosindependientemente de la profesioacuten que hayan estudiado Tienen intereses diferentesmeacutetodos diferentes aacutereas de preferencia diferentes perfil profesiograacutefico distinto tienenactividades extralaborales variadas asiacute que

iquestCoacutemo asignarle un curso a un catedraacutetico para que logre un oacuteptimo resultado en el

Capiacutetulo 2 Marco teoacuterico

proceso de ensentildeanza-aprendizajeiquestCoacutemo garantizar que el curso asignado a un profesor seraacute bien impartidoiquestCoacutemo saber que el profesor estaacute capacitado para ofrecer un buen cursoiquestCuaacuteles son los requisitos que debe reunir un profesor para impartir cierto cursoiquestDependen soacutelo de la profesioacuten los cursos que puede impartiriquestCoacutemo conocer de antemano las preferencias de los profesoresiquestEl nivel de estudio de los profesores les capacita para impartir cualquier cursoiquestDeben los profesores ser guiados a una especialidad por los programadores dehorarios

Las respuestas a todas estas preguntas incorporadas en un sistema generador de horariosiquestpermitiraacuten hacer una buena asignacioacuten de catedraacutetico a un curso

El condensado de horarios

Es un documento emitido cada semestre por los responsables de la elaboracioacuten de loshorarios que contiene la informacioacuten requerida por los alumnos jefes de departamento ycatedraacuteticos para conocer la distribucioacuten de las materias los grupos las aulas las horasy los catedraacuteticos que impartiraacuten los cursos en otras palabras el condensado de materiases el documento final de los HORARIOS que marcaraacute las acciones de todos el semestreactual

23 El proceso de la elaboracioacuten de horarios

El proceso de la elaboracioacuten de horarios abarca cada accioacuten que es requerida para crearel horario final completo y correcto de los datos iniciales Esto incluye recibir validary dar formato a los datos generar la versioacuten inicial hacer las correcciones y luegoproducir el condensado final de horarios El proceso de la generacioacuten de horariosabarca

bull la generacioacuten del dato de cuantos cursos se van a ofertarbull asignacioacuten de horario a esos cursosbull proporcionar aulas a los cursosbull designar profesores para los cursos definidos

la parte difiacutecil de esto es generar los horarios con los recursos disponibles en cadadepartamento cada etapa tiene sus restricciones (fuertes y suaves) los recursos no soninagotablesEl uso de la computadora

En una encuesta realizada por la Universidad de Nottingham [Burke y Elliman 1998]referente a la forma de elaborar horarios en las demaacutes universidades se encontroacute que un

Capiacutetulo 2 Marco teoacuterico

58 de ellas utilizan la computadora en alguna etapa del proceso de eacutestas el 21 tienela facilidad de realizar la programacioacuten aunque generalmente requieren captura manualde informacioacuten y conocimientos previos del problema particular del proceso El 1tienen paquetes comerciales y el 14 tienen paquetes hechos en casa para generarhorarios y el 2 aseguran que estaacuten desarrollando o comprando un paquete

Dado el tamantildeo de los horarios de dichas universidades es sorprendente que muchas notengan alguna forma de automatizacioacuten Esto se debe en la mayoriacutea de los casos a quelos horarios no cambian significativamente de un antildeo a otro Sin embargo de lasuniversidades que no programan horarios por computadora la mitad usa el horario delantildeo pasado y la otra mitad empiezan desde cero cada vez Cuando no se usa el horariodel antildeo pasado generalmente toma 4 semanas elaborar uno nuevo En la mayoriacutea de loscasos donde se usa la computadora generalmente no se toma en cuenta el horario delantildeo anterior

Causas de cambio de los horarios antildeo tras antildeo

Para que un horario pueda ser usado antildeo tras antildeo debe ser lo suficientemente robustopara que los cambios que ocurran en los datos de entrada produzcan soacutelo una pequentildeaalteracioacuten o modificacioacuten en el condensado final de horarios El uso del condensado delantildeo pasado depende en la cantidad de cambios que deben hacerse y esto a su vezdepende de cuanto cambie la cantidad de grupos que deben ofertarse para cadaasignatura y esto depende de la cantidad de alumnos que pueden cursar una asignaturaahora bien la cantidad de alumnos estaacute en funcioacuten de los iacutendices de aprobacioacuten yreprobacioacuten del periodo de los alumnos que por alguna razoacuten no cursaron unaasignatura y de la cantidad de grupos ofertados el periodo pasado

Si cambia la cantidad de horas frente a grupo asignada a un departamento entoncescambiaraacute el condensado de horarios con respecto al del antildeo pasado porque eso afectadirectamente en la cantidad de cursos que podraacute ofertarse este periodo este es uno de losrecursos maacutes variables que influyen para hacer cambios en los condensados antildeo trasantildeo

La redistribucioacuten de aulas y laboratorios (que no se realiza a menudo) llega tambieacuten ainfluir en los cambios

El cambio de horario matutino a vespertino (o viceversa) solicitado por un catedraacuteticoque es el especialista en impartir cierto curso ocasiona los cambios del condensado dehorarios del antildeo anterior al nuevo

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

CAPIacuteTULO 3

TEacuteCNICAS DE INTELIGENCIA ARTIFICIAL UTILIZADASPARA LA GENERACIOacuteN DE HORARIOS

31 Sistemas Expertos (SE)Bajo el teacutermino de Sistemas Expertos se entiende un nuevo tipo de software que imita elcomportamiento de un experto humano en la solucioacuten de un problema Un SE puedealmacenar conocimientos de expertos para un campo determinado y solucionar unproblema mediante razonamiento loacutegico de conclusiones

Los Sistemas Expertos son sistemas que buscan modelar el conocimiento yprocedimientos usados por un experto humano para resolver un problemadeterminado[Saacutenchez 1999]

iquestUn Sistema Experto utiliza teacutecnicas de la Inteligencia Artificial (IA)

Los Sistemas Expertos son uno de los puntos que componen las investigaciones en elcampo de la IA Un sistema de computadoras que trabaje con teacutecnicas de IA deberaacuteestar en situacioacuten de combinar informacioacuten de forma ldquointeligenterdquo alcanzarconclusiones y justificarlas (al igual que el resultado final) Los Sistemas Expertos sonuna expresioacuten de los sistemas basados en el conocimiento Con la aplicacioacuten de teacutecnicasde Inteligencia Artificial finaliza la transicioacuten del procesamiento de datos alprocesamiento de conocimientos

Un Sistema Experto es un sistema informaacutetico que simula el proceso de aprendizaje dememorizacioacuten de razonamiento de comunicacioacuten y de accioacuten de un experto humano enuna determinada rama o dominio Estas caracteriacutesticas le permiten almacenar datos yconocimiento sacar conclusiones loacutegicas tomar decisiones aprender de la experiencia ylos datos existentes comunicarse con humanos explicar el porqueacute de las decisionestomadas y realizar acciones como consecuencia de todo lo anterior

La incorporacioacuten dentro de un sistema de computadoras de un componente basado enel conocimiento correspondiente a una habilidad experta de tal forma que el sistemapueda ofrecer asesoramiento inteligente o tomar una decisioacuten inteligente sobre unafuncioacuten del proceso Una caracteriacutestica adicional deseable que muchos consideranfundamental es la capacidad del sistema si se le solicita de justificar su propia liacutenea derazonamiento de un modo directamente inteligible para el interrogador El estiloadoptado para alcanzar estas caracteriacutesticas es la programacioacuten basada en reglas[Waterman 1986]

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

311 Funcioacuten de un Sistema Experto

La funcioacuten de un Sistema Experto es aportar soluciones a problemas de un dominioespeciacutefico imitando la forma de razonamiento de los seres humanos es decir el SistemaExperto debe ser capaz de mostrar soluciones inteligentes [Giarratamo 1998]

Acceder a los conocimientos adquiridos por experiencia es lo maacutes difiacutecil ya que losexpertos al igual que otras personas apenas los reconocen como tales Son buscadoscon mucho esfuerzo y cuidado siendo descubiertos de uno en uno poco a poco

Ventajas del Sistema Experto

Experto Humano Experto ArtificialMortal PermanenteDifiacutecil de documentar Faacutecil de documentarDifiacutecil de transferir Faacutecil de transferirImpredecible ConsistenteMaacutes caro Menos caro

Ventajas del Experto Humano

Experto Humano Experto ArtificialCreativo No creativoAdaptable Requiere mantenimientoExperiencia sensorial Entrada simboacutelicaConocimiento de sentido comuacuten Conocimiento teacutecnico

312 Arquitectura de Sistemas Expertos [Gines 1986] [Giarratamo 1998]

La arquitectura general de un SE (Fig 31) estaacute compuesta fundamentalmente de

bull Base de Conocimiento Representa el conocimiento adquirido del expertohumano incluyendo experiencia sentido comuacuten e intuicioacuten

bull Motor de Inferencia Decide que se debe aplicar que se debe hacer resuelveconflictos nuevos hace uso de la base del conocimiento Proporcionamecanismos de razonamiento buacutesqueda aprendizaje etc

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

bull Interfaz Usuario Facilita la comunicacioacuten entre el Sistema Experto y el usuarioque realiza las consultas

bull Subsistema de Adquisicioacuten Mejor conocido como la Interfaz de Expertopermite ingresar el conocimiento a la Base de Conocimientos por parte delhumano experto en alguacuten dominio de conocimiento

bull Subsistema de explicaciones Permite dar a conocer los resultados obtenidospor el Sistema Experto

313 La base de conocimiento

El enfoque maacutes comuacuten para representar el dominio del conocimiento que se requierepara un SE son las reglas de produccioacuten Estas pueden ser referidas como reglasldquosituacioacuten-accioacutenrdquo o ldquoif-thenrdquo De esta forma con frecuencia una base deconocimientos estaacute fraguada principalmente de reglas las cuales son invocadas por uncasamiento de patrones con las particularidades de las tareas circunstanciales que vanapareciendo en la base de hechosLas reglas en una base de conocimientos representan el dominio de hechos y laheuriacutestica de un buen juicio de acciones a tomar cuando uno llega a situacionesespeciacuteficas La fuerza de un SE yace en el conocimiento especiacutefico del dominio delproblema Casi todos los sistemas existentes basados en reglas contienen cientos o milesde ellas y generalmente se obtienen de entrevistas con expertos durante un tiempo largoEn cualquier SE las reglas se conectan una a otra por ligas de asociacioacuten para formar

Base de

Motor de

Subsistema deadquisicioacuten

del

Subsistemade

explicacione

Interfazde

usuario

Ingeniero delconocimiento y experto Usuario

Base de hechos

Figura 31 Arquitectura de un Sistema Experto

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

redes de reglas Una vez que han sido ensambladas tales redes entonces se tiene unarepresentacioacuten de un cuerpo de conocimientos que es sustancial

Generalmente un experto tiene muchas reglas de criterio empiacutericas por lo que el soportesuele ser incompleto para la evidencia que se dispone En tales casos una teacutecnica es la devincular valores numeacutericos a cada regla para indicar el grado de certidumbre que eacutestatiene En la operacioacuten de SE los valores de certidumbre se combinan unos a otros atraveacutes de la red considerando tambieacuten la certidumbre de los datos de entrada delproblema para llegar finalmente a un valor de certidumbre de la solucioacuten final

314 El motor de inferencias

El sistema experto modela el proceso de razonamiento humano con un moacutedulo conocidocomo el motor de inferencia Dicho motor de inferencia trabaja con la informacioacutencontenida en la base de conocimientos y la base de hechos para deducir nuevos hechosContrasta los hechos particulares de la base de hechos con el conocimiento contenido enla base de conocimientos para obtener conclusiones acerca del problemaEl modelo de problema - solucioacuten y sus meacutetodos organizan y controlan las etapas que sevan tomando para la resolucioacuten de problemas Un modelo muy poderoso y comuacuten es elde encadenar las reglas `` if-then-else con el fin de formar alguna liacutenea derazonamiento Si el encadenamiento se inicia a partir de un conjunto de condiciones y semueve hacia alguna conclusioacuten el meacutetodo se llama encadenamiento hacia adelante y ensu caso contrario el encadenamiento es hacia atraacutes

Un problema de encadenamiento hacia adelante sin una apropiada heuriacutestica de podaderivaraacute muchas soluciones de las cuales no todas son necesarias En el caso deencadenamiento hacia atraacutes es necesario tambieacuten trabajar con una heuriacutestica apropiadacon la finalidad de poder manejar submetas conjuntivas En general para atacar elproblema de conjuncioacuten es necesario encontrar un caso en donde todas las submetasinteractuantes se satisfagan Pero con frecuencia una buacutesqueda de tal naturaleza nos dauna explosioacuten combinatoria de posibilidades Es por esta razoacuten que el dominioapropiado de la heuriacutestica y su esquema inferencial deberaacuten ser encontrados para cadatipo de problemas para que de esta manera se tenga un SE eficaz y eficiente

315 iquestPor queacute utilizar un Sistema Experto [Pluss 1999] [Sanchez 1999]

1 Con la ayuda de un Sistema Experto personas con poca experiencia pueden resolverproblemas que requieren un conocimiento formal especializado

2 Los Sistemas Expertos pueden obtener conclusiones y resolver problemas de formamaacutes raacutepida que los expertos humanos

3 Los Sistemas Expertos razonan pero basaacutendose en un conocimiento adquirido y notienen sitio para la subjetividad

Capiacutetulo 2 Marco teoacuterico

4 El uso de Sistemas Expertos es especialmente recomendado en las siguientessituaciones

bull Cuando los expertos humanos en una determinada materia son escasos

bull En situaciones complejas donde la subjetividad humana puede llevar aconclusiones erroacuteneas

bull Cuando es muy elevado el volumen de datos que ha de considerarse paraobtener una conclusioacuten

316 Construccioacuten de prototipos [Turban 1995]

En el desarrollo de Sistemas Expertos se plantean dos importantes riesgos

1- No existen implementaciones similares que puedan servir de orientacioacuten al encargadodel desarrollo en la casi totalidad de los casos

2- En muchos puntos los requisitos necesarios estaacuten esbozados con muy poca precisioacuten

El disentildeo y la especificacioacuten requieren una temprana determinacioacuten de la interfaz delsoftware y de la funcionalidad de los componentes En el desarrollo de SistemasExpertos deben alterarse a menudo durante y tambieacuten despueacutes de su implementacioacuten yaque los requisitos se han ido configurando y han obtenido mayor precisioacuten o porque seha descubierto que deben iniciarse otras viacuteas de solucioacuten Durante el desarrollo resultamaacutes apropiado empezar con implementaciones tipo test para encontrar el camino haciauna solucioacuten definitiva y para hacerlas coincidir con las necesidades del usuario

32 Algoritmos Geneacuteticos

321 Antecedentes [Medina 2004] [Goldberg 1989] [Davis 1991]

El Algoritmo Geneacutetico es una teacutecnica de buacutesqueda basada en la teoriacutea de la evolucioacutende Darwin que ha cobrado tremenda popularidad en todo el mundo durante los uacuteltimosantildeos

Esta teacutecnica se basa en los mecanismos de seleccioacuten que utiliza la naturaleza de acuerdoa los cuales los individuos maacutes aptos de una poblacioacuten son los que sobreviven al

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

adaptarse maacutes faacutecilmente a los cambios que se producen en su entorno Hoy en diacutea sesabe que estos cambios se efectuacutean en los genes de un individuo (unidad baacutesica decodificacioacuten de cada uno de los atributos de un ser vivo) y que sus atributos maacutesdeseables se transmiten a sus descendientes cuando eacuteste se reproduce sexualmente

En 1859 Darwin publica su libro laquoEl origen de las especiesraquo El libro causoacute una granpoleacutemica en el mundo cientiacutefico por las revolucionarias teoriacuteas en eacutel contenidas que lasespecies evolucionan acorde al medio para adaptarse a eacuteste Con ello el universopasaba de ser una creacioacuten de Dios estaacutetica y perfecta desde su inicio a un conjunto deindividuos en constante competicioacuten y evolucioacuten para poder perpetuar su especie en eltiempo La existencia de una especie pasa asiacute a ser algo dinaacutemico las especies se creanevolucionan y desaparecen si no se adaptan Para cada especie animal la naturalezaproponiacutea un crudo filtro soacutelo los mejores los maacutes aptos los que mejor se adapten almedio conseguiacutean sobrevivir lo suficiente para llegar a la madurez y encontrar unapareja para perpetuar sus aptitudes que le haciacutean maacutes apto

La informaacutetica ve aquiacute un claro proceso de optimizacioacuten Se toman los individuos mejoradaptados (mejores soluciones temporales) se cruzan (se mezclan ) generando nuevosindividuos (nuevas soluciones) que contendraacuten parte del coacutedigo geneacutetico (informacioacuten)de sus dos antecesores y por lo tanto aunque el nuevo individuo no tenga que estarforzosamente mejor adaptado de hecho puede que ni la probabilidad de que el nuevoindividuo generado esteacute mejor adaptado que los padres sea alta el promedio de laadaptacioacuten de toda la poblacioacuten si mejora ya que tienden a perpetuarse y extenderse lasmejores caracteriacutesticas y a extinguirse las poco beneficiosas o perjudiciales En losAlgoritmos Geneacuteticos se crea una nueva abstraccioacuten -la poblacioacuten- cuya funcioacuten decoste mejoraraacute globalmente por lo que puede que se encuentre alguacuten individuo conmejores caracteriacutesticas

Un investigador de la Universidad de Michigan llamado John Holland era consciente dela importancia de la seleccioacuten natural y a fines de los antildeos 60 desarrolloacute una teacutecnica quepermitioacute incorporarla a un programa Su objetivo era lograr que las computadorasaprendieran por siacute mismas A la teacutecnica que inventoacute Holland se le llamoacute originalmentePlanes Reproductivos pero se hizo popular bajo el nombre Algoritmo Geneacutetico trasla publicacioacuten de su libro en 1975

En esa universidad Holland impartiacutea un curso titulado Teoriacutea de sistemas adaptativosDentro de este curso y con una participacioacuten activa por parte de sus estudiantes fuedonde se crearon las ideas que maacutes tarde se convertiriacutean en los Algoritmos GeneacuteticosLos objetivos de su investigacioacuten fueron dos

Imitar los procesos adaptativos de los sistemas naturales y Disentildear sistemas artificiales (normalmente programas) que retengan los mecanismos

importantes de los sistemas naturales

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

Unos 15 antildeos maacutes adelante David Goldberg actual delfiacuten de los Algoritmos Geneacuteticosconocioacute a Holland y se convirtioacute en su estudiante Golberg era un ingeniero industrialtrabajando en disentildeo de tuberiacuteas y fue uno de los primeros que tratoacute de aplicar losAlgoritmos Geneacuteticos a problemas industriales Aunque Holland tratoacute de disuadirleporque pensaba que el problema era excesivamente complejo Goldberg consiguioacute loque queriacutea escribiendo un Algoritmo Geneacutetico en una computadora personal Apple IIEstas y otras aplicaciones creadas por estudiantes de Holland convirtieron a losAlgoritmos Geneacuteticos en un campo con base suficiente como para celebrar la primeraconferencia en 1985 ICGAacute85 Tal conferencia se sigue celebrando bianualmente[Beasley 1993]

Una definicioacuten bastante completa de un Algoritmo Geneacutetico es la propuesta por JohnKoza es un algoritmo matemaacutetico altamente paralelo que transforma un conjunto deobjetos matemaacuteticos individuales con respecto al tiempo usando operaciones modeladasde acuerdo al principio Darwiniano de reproduccioacuten y supervivencia del maacutes apto y trashaberse presentado de forma natural una serie de operaciones geneacuteticas de entre las quedestaca la recombinacioacuten sexual Cada uno de estos objetos matemaacuteticos suele ser unacadena de caracteres (letras o nuacutemeros) de longitud fija que se ajusta al modelo de lascadenas de cromosomas y se les asocia con una cierta funcioacuten matemaacutetica que refleja suaptitud [Koza 1992] 322 Definicioacuten de AG

Los Algoritmos Geneacuteticos (AG) son meacutetodos adaptativos que pueden usarse pararesolver problemas de buacutesqueda y optimizacioacuten Estaacuten basados en el proceso geneacutetico delos organismos vivos A lo largo de las generaciones las poblaciones evolucionan en lanaturaleza de acorde con los principios de la seleccioacuten natural y la supervivencia de losmaacutes fuertes postulados por Darwin Por imitacioacuten de este proceso los AlgoritmosGeneacuteticos son capaces de ir creando soluciones para problemas del mundo real Laevolucioacuten de dichas soluciones hacia valores oacuteptimos del problema depende en buenamedida de una adecuada codificacioacuten de las mismas [Goldberg 1989]

Un Algoritmo Geneacutetico consiste en una funcioacuten matemaacutetica que toma como entradas alos ejemplares y retorna como salidas cuaacuteles de ellos deben generar descendencia para lanueva generacioacuten

Los Algoritmos Geneacuteticos presentan ventajas sobre otros algoritmos que los hacenpreferibles para determinado tipo de aplicaciones Algunas de las caracteriacutesticas de losAlgoritmos Geneacuteticos son

bull Son algoritmos estocaacutesticos Dos ejecuciones distintas pueden dar dos solucionesdistintas Esto es uacutetil por el hecho de que hay gran cantidad de isoacutemeros que

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

corresponden a soluciones vaacutelidas por lo que es interesante que distintas ejecucionespuedan dar isoacutemeros distintos

bull Son algoritmos de buacutesqueda muacuteltiple luego dan varias soluciones Aunquehabitualmente la energiacutea de los individuos de la poblacioacuten final es similar losindividuos suelen ser distintos entre si Con el modelo de paralelizacioacuten empleado -geneacutetico multipoblacional- la probabilidad de obtener muchas soluciones distintas esmaacutes alta todaviacutea

bull Son los algoritmos que hacen una barrida mayor al subespacio de posiblessoluciones vaacutelidas De hecho se considera que de todos los algoritmos deoptimizacioacuten estocaacutesticos los Algoritmos Geneacuteticos son de los maacutes exploratoriosdisponibles

323 Ventajas y Desventajas [Bull 1993]

bull No necesitan conocimientos especiacuteficos sobre el problema que intentan resolverbull Operan de forma simultaacutenea con varias soluciones en vez de trabajar de forma

secuencial como las teacutecnicas tradicionalesbull Cuando se usan para problemas de optimizacioacuten de una funcioacuten objetivo- resultan

menos afectados por los oacuteptimos locales (falsas soluciones) que las teacutecnicastradicionales

bull Usan operadores probabiliacutesticos en vez de los tiacutepicos operadores determiniacutesticos delas otras teacutecnicas

bull La mayoriacutea de las otras teacutecnicas de optimizacioacuten son tambieacuten estocaacutesticasbull Pueden tardar mucho en converger o no converger en absoluto dependiendo en

cierta medida de los paraacutemetros que se utilicen tamantildeo de la poblacioacuten nuacutemero degeneraciones etc-

bull Pueden converger prematuramente debido a una serie de problemas de diversaiacutendole

324 iquestCoacutemo saber si es posible usar un Algoritmo Geneacutetico

La aplicacioacuten maacutes comuacuten de los Algoritmos Geneacuteticos ha sido la solucioacuten de problemasde optimizacioacuten en donde han mostrado ser muy eficientes y confiables Sin embargono todos los problemas pudieran ser apropiados para la teacutecnica y se recomienda engeneral tomar en cuenta las siguientes caracteriacutesticas del mismo antes de intentar usarlabull Su espacio de buacutesqueda (ie sus posibles soluciones) debe estar delimitado dentro

de un cierto rangobull Debe poderse definir una funcioacuten de aptitud que indique que tan buena o mala es

una cierta respuestabull Las soluciones deben codificarse de una forma que resulte relativamente faacutecil de

implementar en la computadora

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

Decisiones para implementar un Algoritmo Geneacutetico [Michalewicz 1992]

Las decisiones que hay que tomar para implementar un Algoritmo Geneacutetico son

bull Criterio de codificacioacuten Coacutemo se va a almacenar la informacioacuten en el genomabull Criterio de tratamiento de individuos no factibles Coacutemo se van a tratar a los

individuos que no cumplan las restriccionesbull Criterio de inicializacioacuten Coacutemo se va a construir la poblacioacuten inicialbull Criterio de parada Determina cuaacutendo el algoritmo ha llegado a una solucioacuten

aceptablebull Funcioacuten de adaptacioacuten Corresponde a la funcioacuten de costo de la investigacioacuten

operativa tradicionalbull Operadores geneacuteticos Se emplean para determinar coacutemo va a ser la nueva

generacioacuten Baacutesicamente son los operadores de cruce y mutacioacuten aunque pueden serempleados otros adicionales -muerte aborto envejecimiento- Tanto cruce comomutacioacuten pueden ser realizados de muchas formas distintas

bull Criterios de reemplazo Los criterios que determinan quieacutenes se van a cruzar Notienen que ser obligatoriamente los mismos que los criterios de seleccioacuten de lospadres

bull Paraacutemetros de funcionamiento Determinados paraacutemetros que sin poder serenglobados en ninguno de los anteriores son fundamentales para el funcionamientode un Algoritmo Geneacutetico Es el caso por ejemplo del tamantildeo de la poblacioacuten laprobabilidad de la aplicacioacuten de los operadores geneacuteticos etc

325 Paraacutemetros que deben ser especificados en el programa

Nordm de generaciones cantidad de veces que se produce una nueva generacioacuten deindividuos utilizando las reglas anteriormente explicadas Por loacutegica cuantas maacutesgeneraciones se produzcan se obtendraacuten mejores individuosNordm de individuos por generacioacuten en este ejemplo la cantidad de individuos de unageneracioacuten a otra es constante no variacuteaNordm de entrenamientos cantidad de veces que se lleva a cabo un entrenamiento entrediferentes generaciones de individuos

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

Fig 32 Pseudocoacutedigo del Algoritmo Geneacutetico simple

Los Algoritmos Geneacuteticos son una poderosa herramienta de propoacutesito general deoptimizacioacuten que modela los principios de la evolucioacuten [Burke 1994]

El proceso es el siguiente

1 Una poblacioacuten random de horarios factibles es creada Cada horario es evaluado deacuerdo a una conjunto de criterios (por ejemplo el tamantildeo del horario cuantosgrupos son colocados a la misma hora y en el mismo saloacuten cuantos salones hayvaciacuteos)

2 Los horarios son seleccionados de manera aleatoria para ser las bases de la proacuteximageneracioacuten Los buenos horarios son maacutes deseables que los malos En las bases dela evaluacioacuten de estos miembros de la poblacioacuten (horarios factibles) se escogen lospadres de la proacutexima generacioacuten de horarios Evaluando numeacutericamente durante elproceso de seleccioacuten buscando los mejores horarios los peores horarios soneliminados al mismo tiempo que la buacutesqueda se dirige hacia las aacutereas maacutespromisorias del espacio de soluciones

3 El Operador Mutacioacuten se aplica generalmente a un solo miembro de la poblacioacuten einvolucra el cambio aleatorio de la hora o aula de algunos grupos despueacutesalmacena el nuevo horario siempre manteniendo un horario factible Esto agrega

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

un elemento que permite tambieacuten introducir material geneacutetico uacutetil que ha sidoperdido en otros horarios en las primeras generaciones

4 El Operador de Cruzamiento toma una pareja de horarios y los combina de algunamanera para producir uno o dos nuevos horarios esto se hace generalmente deforma aleatoria seleccionando algunos grupos de la mantildeana de un miembro de lapoblacioacuten y los algunos grupos de la tarde de otro miembro para producir un nuevohorario cualquier grupo que no pueda ser colocado de esta manera se manda alperiodo siguiente disponible

5 La nueva poblacioacuten es generada El proceso seraacute repetido hasta que una buenasolucioacuten sea generada

33 Programacioacuten Loacutegica de Restricciones (PLR)

331 Antecedentes de la PLR

La Programacioacuten Loacutegica de Restricciones (PLR) es una teacutecnica que tiene mucho encomuacuten con los algoritmos de asignacioacuten heuriacutestica Dechter describe asiacute el problemade la satisfaccioacuten de restricciones ldquoUn problema de satisfaccioacuten de restricciones (PSR)es representado por una red de restricciones consistente en un conjunto de n variablesX1 Xn con sus respectivos valores de dominio RR n y un conjunto derestricciones Una restriccioacuten Ci (Xi1Xij)es un subconjunto del producto cartesiano Ri1 x x R i1 formado por todas las tuplas de valores para un subconjunto(X i1X ij) delas variables que son compatibles unas con otrasrdquo [Detcher 1990]

Una solucioacuten de la red es una asignacioacuten de valores a todas las variables de tal formaque todas las restricciones son satisfechasrdquo Esta es una representacioacuten maacutes poderosaque el modelo de los Grafos Coloreados porque puede representar restricciones mascomplejas El problema de los grafos coloreados es equivalente a un PLR binario en lacual cada restriccioacuten soacutelo tiene dos variables

Este modelo se resuelve tratando de asignar valores a cada una de las variables encuestioacuten y entonces regresando si se encuentra en un punto muerto y quitandorestricciones si se descubre que no se puede encontrar solucioacuten El orden en el que lasvariables son seleccionadas y el orden de los valores que son asignados a las variablespuede ser alterado para tratar aumentar la velocidad de buacutesqueda

La PLR es un meacutetodo que permite el disentildeo raacutepido de prototipos de resolucioacuten deproblemas complejos Las principales aportaciones en esta liacutenea se centran en eldesarrollo de programas que incluyen conjuntos de restricciones adaptadas a unadeterminada familia de problemas asiacute como al disentildeo formal e implementacioacuten demodelos de interpretacioacuten en paralelo con el fin de mejorar la eficiencia del proceso

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

deductivo El objetivo final es disponer de sistemas de resolucioacuten implementados paraapoyar la creacioacuten de sistemas donde la explosioacuten combinatoria de los elementos de unproblema hace muy difiacutecil la buacutesqueda de una solucioacuten en un tiempo razonable [Farion1992]

En esta seccioacuten se proporciona una breve introduccioacuten de la Programacioacuten Loacutegica conRestricciones y sus aplicaciones dentro del marco general de la programacioacuten loacutegica Setrata eacuteste de un campo que ha tenido una notable expansioacuten debido a su potencialaplicacioacuten praacutectica dado que el anaacutelisis de las restricciones permite mejorarconsiderablemente la eficiencia del caacutelculo de determinadas funciones

332 Restricciones

En primer lugar se empieza por contestar la pregunta iquestQueacute es una restriccioacuten Estacuestioacuten se puede responder tan brevemente como escribe Roman Bartak[1998]Una restriccioacuten es simplemente una relacioacuten loacutegica entre varias variablesdesconocidas tomando cada una un valor dentro de un dominio determinado (peA+B=C-el circulo estaacute dentro del cuadrado- etc)Asiacute las restricciones aparecen de forma natural en todos los campos del conocimientohumano La suma de los aacutengulos de un triaacutengulo es 180 grados es un ejemplo derestriccioacuten que aparece en el mundo real De hecho las restricciones son el medionatural en el que las personas expresamos los problemas en todas las aacutereas

Con la explicacioacuten dada se ve de forma natural que las restricciones gozan de variaspropiedades interesantes

bull las restricciones pueden especificar informacioacuten parcial es decir en lasrestricciones no hace falta que se den de forma uacutenica los valores de sus variables

bull las variables son no direccionales es decir en una restriccioacuten tiacutepica sobre dosvariables (XY) se puede inferir una restriccioacuten sobre X dada una restriccioacutensobre Y y viceversa

bull las restricciones son declarativas es decir se puede especificar que relacioacutendeben mantener sin especificar el procedimiento computacional que implementeesa relacioacuten

bull las restricciones son aditivas es decir el orden de imposicioacuten de las restriccionesno importa todo lo que importa al fin y al cabo es la conjuncioacuten de restriccionesy su efecto

bull las restricciones no suelen ser independientes normalmente restricciones dentrodel conjunto total de restricciones comparte variables

Asiacute siguiendo esta idea el objetivo de la Programacioacuten Loacutegica con Restricciones essustituir el proceso de unificacioacuten por la resolucioacuten de restricciones sobre un dominio

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

particular de intereacutes Con esta visioacuten se considera que el procesador de restriccionesdebe encargarse de comprobar la consistencia del conjunto de restricciones y dentro delo posible reducirlo a alguna forma normal

Seguacuten Elmohamed [Elmohamed 1998] las restricciones pueden ser divididas en trestipos fuertes medias y suaves

Restricciones fuertes Son todas aquellas que deben ser cumplidas obligatoriamente elcosto de no cumplir estas restricciones es sumamente alto y por lo tanto en un horariofactible su costo asociado por incumplimiento debe ser cero Por ejemplo (en unproblema real se pueden encontrar de 10 a 15 restricciones fuertes)

bull Dos o maacutes clases impartidas por un profesor no se pueden programar a lamisma hora

bull Una clase teoacuterica y su laboratorio no se pueden programar a la misma hora en elmismo diacutea

bull Una clase no se puede programar en un aula a menos que su capacidad seamayor al nuacutemero de alumnos inscritos

Restricciones medias Estas restricciones no se refieren a conflictos de tiempo perotienen asociado un alto costo a ellas sin embargo este costo no es tan alto como el de lasrestricciones fuertes En el condensado de horarios final el costo de estas restriccioneses minimizado y es deseable reducirlo a cero Por ejemplo (en un problema real sepueden tener entre 20 y 25 restricciones medias)

bull Para cada estudiante el balancear las secciones LunMieVie y MarJuebull Balancear o distribuir y equilibrar las horas de clase en la semanabull Las clases pueden requerir periodos de tiempo contiguosbull Las clases se pueden agrupar con otras clases formando paquetesbull Los horarios particulares deben tener la menor cantidad de ldquohoyosrdquo posible esto

es que las clases deben ser consecutivas unas despueacutes de otras

Restricciones suaves Estas restricciones no tienen nada que ver con conflictos detiempo y tienen un bajo costo asociado a ellas Tambieacuten en el condensado de horariosfinal este costo es minimizado pero no necesariamente debe ser cero Por ejemplo (sepueden tener entre 30 y 40 restricciones suaves)

bull Balancear la inscripcioacuten en cursos de varios paquetesbull Especificar la hora de comida y otros periodos de descansobull Los catedraacuteticos pueden requerir periodos de tiempo sin clasebull No inscribir alumnos-atletas en cursos que tengan conflicto con sus horas de

praacutectica deportiva etc

333 Sistemas con RestriccionesUna manera maacutes formal de definir las restricciones es considerarlas como una foacutermulade primer orden interpretada en una estructura para asiacute tener en cuenta la semaacutenticaparticular del sistema de restricciones Esta semaacutentica declarativa es adecuada cuando

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

existe a priori una estructura que se adecua al sistema de restricciones (pe Los realespara las restricciones aritmeacuteticas) pero esto no funciona demasiado bien para lossistemas de restricciones maacutes praacutecticos (pe Dominios finitos) Obviamente no se puededireccionar ninguacuten caacutelculo operacional relacionado con el propio procesador de lasrestricciones [Elmohamed 2001]

334 Referencia Histoacuterica de las RestriccionesLas restricciones como un aacuterea de trabajo que combina investigacioacuten de un gran nuacutemerode campos incluyendo Inteligencia Artificial Lenguajes de Programacioacuten CaacutelculoSimboacutelico y Loacutegica Computacional Las restricciones sobre redes y los problemas desatisfabilidad con restricciones empezaron a estudiarse por los investigadores deInteligencia Artificial en los antildeos 70

La programacioacuten con restricciones ha sido aplicada con notable eacutexito en numerososcampos Los trabajos en esta aacuterea se remontan a la investigacioacuten de InteligenciaArtificial y Representacioacuten Graacutefica por Computadora por los antildeos 60 y 70 En la uacuteltimadeacutecada sin embargo ha empezado a darse una mayor conciencia de que las restriccionesproporcionan las bases para un potente acercamiento a la programacioacuten modelado yresolucioacuten de problemas y que los diferentes esfuerzos por explotar estas ideas puedenser unidos bajo el mismo prisma conceptual y praacutectico la programacioacuten conrestricciones

Entre los dominios tratados por los sistemas de Programacioacuten Loacutegica con Restriccioneslos que maacutes ampliamente son investigados son sin duda los dominios finitos losnuacutemeros reales y racionales con restricciones aritmeacuteticas y los booleanos De hecho 3de los principales lenguajes de Programacioacuten Loacutegica con Restricciones son un claroejemplo de esta tendencia CHIP que proporciona restricciones sobre dominios finitosracionales y booleanos PrologIII que incluye racionales booleanos y listas y PLR(R)que maneja restricciones sobre reales

En la actualidad se pueden observar dos ramas principales en los avances en laprogramacioacuten con restricciones que parten de diferente base y por tanto usan diferentemetodologiacutea para resolver las restricciones Estas dos ramas son

bull Satisfaccioacuten de Restriccionesbull Resolucioacuten de Restricciones

335 Satisfaccioacuten de RestriccionesLa satisfaccioacuten de restricciones parte de los avances en Inteligencia Artificial (problemascombinatorios) y los Graacuteficos por computadora (sistema de SKETCHPAD[1963]expresando coherencia geomeacutetrica en el caso de anaacutelisis de escenas)

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

336 Resolucioacuten de RestriccionesLa resolucioacuten de restricciones difiere de la satisfaccioacuten de restricciones porque usavariables con dominios infinitos Ademaacutes las restricciones individuales son maacutescomplicadas por ejemplo ecuaciones no lineales En consecuencia los algoritmos deresolucioacuten de restricciones usan meacutetodos algebraicos y numeacutericos en vez decombinaciones y buacutesqueda Sin embargo existe metodologiacutea para discretizar losdominios infinitos en un nuacutemero finito de componentes y entonces se aplican lasteacutecnicas de Satisfaccioacuten de Restricciones

La programacioacuten con restricciones ha sido aplicada con eacutexito en numerosos campos Lasaplicaciones recientes incluyen [Detcher 1990]

bull Graacuteficos por Computadorabull Procesamiento del Lenguaje Natural (construccioacuten de analizadores eficientes)bull Sistemas de Bases de Datos (para reforzar yo mantener la consistencia de los

datosbull Problemas de Investigacioacuten Operativa (como la optimizacioacuten de problemas)bull Biologiacutea Molecular (secuenciacioacuten de ADN)bull Aplicaciones de Empresabull Ingenieriacutea Eleacutectrica (localizacioacuten de fallos)bull Disentildeo de Circuitos (para computar configuraciones)bull Planificacioacuten y organizacioacutenbull Configuracioacutenbull Juegosbull Configuracioacuten de horariosbull Criptoaritmeacuteticabull Coloreado de Grafosbull Razonamiento de hipoacutetesis quiacutemicas

En esta seccioacuten se va a dedicar una parte a cada una las aplicaciones maacutes estudiadas

337 Organizacioacuten de Proyectos

El problema de la Organizacioacuten es el proceso de asignar actividades a recursos en eltiempo En el caso general de organizacioacuten es un proceso de tomar decisiones donde sepueden tomar dos tipos de decisiones

bull Decisiones de situar temporalmente Cuaacutendo deberiacutea empezar cada actividadbull Decisiones de asignacioacuten de recursos Con queacute recursos deberiacutea ejecutarse cada

actividad

Los problemas de organizacioacuten y de asignacioacuten de recursos estaacuten basados enrestricciones Diferentes restricciones pueden afectar a la organizacioacuten la duracioacuten de

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

una actividad las fechas de contrato restricciones precedentes tiempos de transferenciao de inicio de la actividad la capacidad de los recursos y el reparto de recursos

La relajacioacuten de las restricciones principales caracteriza la calidad de los problemas deorganizacioacuten Estas restricciones son las relacionadas con fechas de entregaproductividad periodicidad de los cambios de herramientas niveles de inventariomargen de tiempo etc Algunas de estas restricciones pueden ser combinadas en lafuncioacuten de evaluacioacuten para la optimizacioacuten

Las aplicaciones industriales de las teacutecnicas de resolucioacuten de restricciones a losproblemas del tipo de asignacioacuten de tareas incluye[Detcher 1990]

bull Organizacioacuten de la produccioacutenbull Organizacioacuten y planificacioacuten del transporte y la logiacutesticabull Administracioacuten del traacuteficobull Disentildeo de horarios de recursos y de hombresbull Asignacioacuten de plantilla incluyendo aplicaciones de ingenieriacutea de organizacioacutenbull Problemas de empaquebull Configuracioacuten de maacutequinas

Claramente hay muchos problemas relacionados en el aacuterea de la organizacioacuten en lapraacutectica para los sistemas comerciales e industriales reales los liacutemites entre unos y otrosno estaacuten claros Es difiacutecil encontrar alguacuten problema real que se ajuste a un modelopreconcebido sin tener que descartar partes del problema y aproximar otras asiacute que hayque tomar estos modelos con amplio margen de aproximacioacuten

Otra complicacioacuten es el tema de la optimizacioacuten En algunos casos el usuario estaacutesatisfecho soacutelo con tener una manera automaacutetica de tener la respuesta pero la mayoriacuteaquieren tener al menos una buena respuesta y algunos el mejor resultado posible Perodebido a la gran complejidad combinatoria de la mayoriacutea de los problemas reales deorganizacioacuten una optimizacioacuten real es muy difiacutecil asiacute que en la mayoriacutea de los casos seusa la programacioacuten con restricciones en combinacioacuten con otras teacutecnicas tales comoAlgoritmos Geneacuteticos para dar soluciones casi oacuteptimas en un tiempo razonable

Normalmente los problemas de organizacioacuten se presentan usando variables conrestricciones fuertes y restricciones suaves Estas pueden ser agrupadas en la abstraccioacutendel problema de organizacioacuten Asiacute tiacutepicamente el tiempo de comienzo y fin y laduracioacuten de cada actividad se representan por variables con restricciones Los dominiosde estas variables son el rango de tiempo de intereacutes en la organizacioacuten requerida

Capiacutetulo 4 Anaacutelisis y Disentildeo

CAPIacuteTULO 4

ANAacuteLISIS Y DISENtildeO

41 Recopilacioacuten de informacioacuten

bull Documentos recopilados

bull Cataacutelogo de asignaturas prerrequisitos y semestrebull Cataacutelogo de aulas y su capacidadbull Cataacutelogo de catedraacuteticos horas disponiblesbull Mapa reticular de la carrerabull Reporte de grupos abiertos en periodo actualbull Reporte de alumnos por grupo en periodo actualbull Reporte de alumnos no inscritos por materia y semestrebull Reporte de simulacioacuten (si todos aprobaran sus cursos)bull Reporte del iacutendice de reprobacioacuten del semestre anteriorbull Encuesta aplicada para determinar los conocimientos requeridos

para impartir una materiabull Encuesta aplicada para obtener los conocimientos de cada

catedraacuteticobull Aacuterbol de conocimiento realizado para determinar los grupos por

abrir de cada asignaturabull Aacuterbol de conocimiento del perfil de las asignaturasbull Aacuterbol de conocimiento del perfil de los catedraacuteticosbull Aacuterbol de conocimiento de los criterios de apertura de materia

bull El proceso de la elaboracioacuten de los horarios

1 Elaboracioacuten de los reportes estadiacutesticos del periodo actual(grupos abiertos alumnos por grupo alumnos no inscritos pormateria simulacioacuten iacutendice de reprobacioacuten)

2 Caacutelculo de la estimacioacuten de alumnos por materia del proacuteximoperiodo

3 Caacutelculo del nuacutemero de grupos por materia requeridos para elproacuteximo periodo

4 Ajuste de los grupos por materia requeridos para el proacuteximoperiodo

5 Formacioacuten de los grupos en paquetes por semestre6 Asignacioacuten de hora y aula a los grupos

Capiacutetulo 4 Anaacutelisis y Disentildeo

7 Seleccioacuten de catedraacutetico al grupo y viceversa8 Ajustes en hora aula y catedraacutetico por grupo9 Elaboracioacuten del reporte condensado para publicacioacuten de horarios10 Elaboracioacuten de los reportes de grupos sin maestro maestros con

horas disponibles grupos sin aula

Para elaborar los horarios de los grupos y maestros un semestre determinado se tienenen consideracioacuten los siguientes elementos

bull El estadiacutestico de Servicios Escolares (SE)El departamento de SE cuenta con un sistema que registra todo el historial acadeacutemicode los alumnos inscritos en el ITZ las materias cursadas y sus calificaciones lasdiferentes carreras con su retiacutecula de asignaturas y sus prerrequisitos los grupos delsemestre actual la cantidad de alumnos en cada grupo de una asignatura los iacutendicesde reprobacioacuten de semestres anteriores las materias que puede cursar un alumno elproacuteximo semestre etceacutetera Toda esta informacioacuten plasmada en reportesdiferentes es la base para la generacioacuten de los horarios del proacuteximo semestre

bull Los grupos requeridosSobre la base de operaciones aplicadas a la informacioacuten estadiacutestica se obtiene lacantidad de grupos requeridos para abrirse el proacuteximo semestre este nuacutemero degrupos es la cantidad oacuteptima con la que se podraacuten inscribir los alumnos sin tenerproblemas de falta de espacio el alterar disminuyendo o aumentando el nuacutemero degrupos requeridos puede ocasionar alumnos con carga crediticia menor a lareglamentaria o que existan grupos con menos de 10 alumnos respectivamente

bull Las aulasEl ITZ cuenta con 52 aulas repartidas entre las 8 carreras a cada coordinador decarrera se le asigna determinado numero de aulas para su administracioacuten asiacute que alasignar el aula a cada grupo debe cuidar la correcta distribucioacuten de los grupos en loshorarios correspondientes y que la capacidad de las aulas no rebase el numero dealumnos inscritos

bull Los maestros y departamentosCada departamento esta formado por un jefe y los catedraacuteticos que forman laacademia de cada carrera los profesores pueden ser de tiempo completo frac34 y frac12tiempo o profesores de asignatura cada uno tiene un horario predeterminado en turnomatutino o vespertino los catedraacuteticos de un departamento cubren las asignaturas desu carrera y apoyan a otras carreras a cubrir las materias que tienen el perfil de esaacademia los catedraacuteticos son uno de los recursos mas difiacuteciles de controlar

Restricciones propias de los profesores

o Materia no tiene maestro

o Maestro tiene horas disponibles

Capiacutetulo 4 Anaacutelisis y Disentildeo

o Maestro tiene materias preferencia

o Maestro ha impartido materia

o Maestro solicita materia

o Maestro tiene restricciones de nuacutemero de materias a impartir

o Restriccioacuten no pueden darse maacutes de tres materias diferentes

o Maestro tiene una profesioacuten

o Maestro tiene un perfil

o Maestro tiene un aacuterea definida

o Maestro prefiere materias especialidad

o Maestro prefiere materias semestres iniciales

bull Las materias o asignaturasEn cada carrera se tiene un mapa reticular que tiene las materias de cada semestre elnombre los creacuteditos las horas de teoriacutea y praacutectica las ligas con los prerrequisitos lasmaterias de la especialidad seleccionada etc

Restricciones propias de las asignaturas

o Materia de 1deg semestre

o Materia de 2deg semestre

o Materia de 3deg semestre

o Materia de 4deg semestre

o Materia de 5deg semestre

o Materia de 6deg semestre

o Materia de 7deg semestre

o Materia de 8deg semestre

o Materia de 9deg semestre

o Materia de especialidad

o Materia tiene prerrequisito

o Materia es de baacutesicas

o Materia requiere conocimientos de Base de Datos

o Materia requiere conocimientos de Electroacutenica

o Materia la puede impartir cualquier maestro

Capiacutetulo 4 Anaacutelisis y Disentildeo

o Materia requiere conocimientos de Redes

o Materia requiere ser impartida por ingeniero

o Materia tiene complejidad alta

o Materia debe ser impartida por catedraacutetico con grado de maestriacutea

o Materia requiere conocimientos de Arquitectura de Computadoras

o Materia no tiene cadenas

o Materia de Administracioacuten

o Materia de Ingenieriacutea Industrial

o Materia requiere conocimientos de Aacutelgebra

o Materia requiere conocimientos de Caacutelculo Diferencial e Integral

o Materia requiere conocimientos de Quiacutemica Inorgaacutenica y Orgaacutenica

o Materia requiere una elaboracioacuten de proyectos

bull Las carrerasLas 8 carreras que se imparten en el ITZ son ordenadas por nuacutemero de alumnos

1 Ingenieriacutea en Sistemas Computacionales2 Licenciatura en Informaacutetica3 Licenciatura en Administracioacuten4 Ingenieriacutea Civil5 Ingenieriacutea Electromecaacutenica6 Ingenieriacutea Industrial7 Ingenieriacutea Quiacutemica8 Ingenieriacutea Bioquiacutemica

bull Los horarios de grupoUna vez determinados los grupos requeridos para el proacuteximo semestre se procede a laasignacioacuten de horario de acuerdo al nuacutemero de horas teoacuterico-praacutecticas se le asignaaula y un catedraacutetico responsable se fija tambieacuten un nuacutemero de alumnos y el tiempode laboratorio en caso de ser necesario

Capiacutetulo 4 Anaacutelisis y Disentildeo

Diagrama de flujo del proceso

Elaboracioacuten de los reportes estadiacutesticos

Caacutelculo de alumnos por materiaproacuteximo periodo

Caacutelculo del nuacutemero de grupos pormateria requeridos

Ajuste de los grupos por materiarequeridos

Formacioacuten de los grupos en paquetespor semestre

Asignacioacuten de hora y aula a los grupos

Asignacioacuten de catedraacutetico al grupo

Ajustes en hora aula y catedraacutetico porgrupo

Elaboracioacuten del reporte condensado

Elaboracioacuten de reportes varios

Todo cuadrabien

Si

No

Fin

Inicio

Capiacutetulo 4 Anaacutelisis y Disentildeo

42 Anaacutelisis de la informacioacuten

bull Cataacutelogo de asignaturas prerrequisitos y semestre

Funcioacuten Dar a conocer las asignaturas de una carrera los prerrequisitos de las materiasy el semestre al que pertenece una asignatura los creacuteditos miacutenimos que debe tenerun alumno para cursar la asignatura

Origen Reporte emitido por el departamento de Servicios Escolares

Campos del reporte nombre carrera nombre asignaturas creacuteditos miacutenimos materiasprerrequisito semestre al que pertenece la asignatura

bull Cataacutelogo de aulas y su capacidad

Funcioacuten Dar a conocer la nomenclatura y capacidad de las aulas y laboratorios del ITZ

Origen Departamento de Planeacioacuten

Campos del reporte Nombre del edificio nuacutemero de aula capacidad

bull Cataacutelogo de catedraacuteticos horas disponibles

Funcioacuten Dar a conocer los catedraacuteticos por departamento y sus horas disponibles frentea grupo

Origen Departamentos acadeacutemicos

Campos del reporte Nombre del departamento clave de profesor nombre del profesorcantidad de horas frente a grupo que debe tener

bull Mapa reticular de la carrera

Funcioacuten Mostrar el mapa reticular de una carrera graacuteficamente muestra las asignaturaspor semestre sus requisitos foacutermula crediticia etc

Origen Divisioacuten de Estudios Profesionales

Campos del reporte Nombre y clave de la carrera nombre y clave de las asignaturasfoacutermula crediticia (nuacutemero de horas teoacutericas nuacutemero de horas praacutecticas creacuteditos dela asignatura) las materias prerrequisito de otras materias de especialidad semestrede la asignatura nuacutemero de creacuteditos necesarios para poder cursar una asignatura

Capiacutetulo 4 Anaacutelisis y Disentildeo

bull Reporte de grupos abiertos en periodo actual

Funcioacuten Muestra los cursos que son ofertados en el periodo actual

Origen Departamento de Servicios Escolares

Campos del reporte Nombre de la carrera nombre de las asignaturas grupo de loscursos cantidad de alumnos inscritos nombre del catedraacutetico que lo imparte

bull Reporte de alumnos por grupo en periodo actual

Funcioacuten Muestra la cantidad de alumnos inscritos por semestre de una carrera

Origen Departamento de Servicios Escolares

Campos del reporte Nombre de la carrera semestres del 1 al 13 nuacutemero de alumnosinscritos por semestre

bull Reporte de alumnos no inscritos por materia y semestre

Funcioacuten Muestra los alumnos que pudieron inscribirse a una materia pero que poralguna razoacuten no lo hicieron

Origen Departamento de Servicios Escolares

Campos del reporte Nombre de la carrera nombre de la materia por semestre nuacutemerode alumnos que pudieron inscribirse y no lo hicieron

bull Reporte de simulacioacuten (si todos aprobaran sus cursos)

Funcioacuten Este reporte simula que todos los alumnos inscritos en los cursos acreditan elcurso entonces cuenta cuantos estudiantes pueden cursar todas las asignaturas comosi hubieran aprobado todos sus cursos actuales

Origen Departamento de Servicios Escolares

Campos del reporte Nombre de la carrera nombre de la asignatura y por semestre elnuacutemero de alumnos que pueden cursar una materia

bull Reporte del iacutendice de reprobacioacuten del semestre anterior

Funcioacuten Dar a los coordinadores los iacutendices de aprobacioacuten y reprobacioacuten de los cursosdel periodo anterior

Capiacutetulo 4 Anaacutelisis y Disentildeo

Origen Departamento de Servicios EscolaresCampos del reporte Nombre de la carrera nombre de la asignatura total de alumnos

aprobados total de alumnos reprobados del periodo anterior

bull Encuesta de conocimientos requeridos para impartir asignatura

Funcioacuten Obtener los datos de los conocimientos que debe poseer un catedraacutetico quequiera impartir una asignatura

Origen Academia de cada departamentoCampos del reporte Nombre de la asignatura objetivo de la asignatura carrera lista de

conocimientos requeridos para impartir la asignatura carrera adecuada del profesorque imparta la asignatura

bull Encuesta de conocimientos requeridos para perfil de profesores

Funcioacuten Obtener los datos de los conocimientos que debe posee un catedraacutetico

Origen Academia de cada departamento

Campos del reporte Nombre del catedraacutetico carrera del catedraacutetico conocimientos enaacutereas particulares de cada asignatura

43 Solucioacuten definida

Resolver el problema iniciando con la metodologiacutea ldquodivide y venceraacutesrdquo el problemageneral se dividiraacute en 6 problemas particulares

a) Sistema de Informacioacuten para control de horariosb) Sistema Experto para definicioacuten y generacioacuten de grupos

por abrirc) Moacutedulo Programacioacuten Loacutegica de Restricciones para

asignar horario a los gruposd) Moacutedulo Algoritmos Geneacuteticos para asignar aula a los

grupos ya definidose) Sistema Experto para definir catedraacutetico para

asignaturaf) Sistema Experto para asignar asignatura a catedraacutetico

Debido a la naturaleza y caracteriacutesticas de la informacioacuten todos lossistemas seraacuten realizados iniciando desde cero la recopilacioacuten deinformacioacuten el anaacutelisis el disentildeo y la programacioacuten de cada moacutedulo delsistema programado en Visual Basic y Bases de Datos en Access

Capiacutetulo 4 Anaacutelisis y Disentildeo

La principal ventaja de eacutesta opcioacuten es que el sistema estaacute hecho a la medida de lasnecesidades de la institucioacuten poniendo las restricciones en el formato que se tienenactualmente la desventaja es que se debe desarrollar TODO el sistema

44 Requerimientos del sistema

Los Motores de Inferencias deben ser disentildeados con las siguientes caracteriacutesticas

bull Buacutesqueda de primero en profundidad en ocasiones cuando se interactuacutee con elusuario este tipo de buacutesqueda seraacute utilizado para recorrer toda la base deconocimiento

bull Buacutesqueda heuriacutestica en la que el usuario deberaacute dar datos iniciales de por dondeempezar la buacutesqueda de alguna informacioacuten

bull Tomar informacioacuten de la Base de Conocimiento y guardarla en las bases de datos ytambieacuten inferir la informacioacuten y guardarla en las bases de datos para su posteriortratamiento e impresioacuten

bull Seleccionar la mejor opcioacuten y presentarla al usuario para los casos en que el usuariodecida cambiar alguacuten dato la maacutequina deberaacute presentar una opcioacuten y saber indicarel porqueacute la ldquoeligioacuterdquo

bull Dar otras soluciones ademaacutes de la oacuteptima teniendo porcentajes de aceptacioacuten paracada solucioacuten y permitiendo la buacutesqueda de maestros a impartir materias aulas paraalguacuten grupo o cantidad de grupos a abrir

bull Dar resultados en lenguaje natural de modo que el usuario entienda claramente loque la maacutequina le comunica

bull Trabajar interactivamente con el usuario para que eacuteste pueda cuestionar el porqueasignoacute un maestro abrioacute grupos asignoacute un aula etceacutetera

bull Tener capacidad para el uso del paradigma basado en analogiacuteas ldquoSi un maestro yadio la materia en alguacuten semestre entonces puede darla en este semestrerdquo o bien ldquoSieste paquete de materias estaacute completo entonces repite todo el paquete estesemestrerdquo

Interfaz de Usuario recibe y entrega informacioacuten interactuando con el usuario esdecir el usuario puede

1) alimentar hechos2) solicitar resultados y reportes3) cuestionar coacutemo se obtuvieron ciertas conclusiones

La interfaz de usuario debe tener las caracteriacutesticas siguientes

bull Comunicarse en el lenguaje del usuario sea un humano u otro dispositivobull Recibir hechos del usuario y almacenarlos en la base de hechosbull Presentar de manera amigable los objetivos a buscar e inferencias en pantallabull Dar de manera clara la explicacioacuten de la inferencia realizada

Capiacutetulo 4 Anaacutelisis y Disentildeo

bull Dar resultados por escrito en informesbull Proporcionar al usuario la facilidad de alimentar la base de conocimientosbull Dar al usuario la facultad de corregir las inferenciasbull Si el usuario es inexperto facilitar la ayuda necesaria

Seleccioacuten del lenguaje de programacioacuten

Visual Basic 60 proporciona a los programadores facilidad para desarrollar aplicacionescomplejas en poco tiempo (comparado con lo que cuesta programar en Visual C++ porejemplo)

El sistema necesita interfaces amigables al usuario con ventanas y botones emergentesen cualquier momento y Visual Basic 60 es una herramienta de disentildeo de aplicacionespara Windows en la que eacutestas se desarrollan en una gran parte a partir del disentildeo de unainterfaz graacutefica (pudiendo incorporar todos los elementos de este entorno informaacuteticoventanas botones cajas de diaacutelogo y texto botones de opcioacuten y de seleccioacuten barras dedesplazamiento graacuteficos menuacutes etc) En una aplicacioacuten Visual Basic 60 el programaestaacute formado por una parte de coacutedigo puro y otras partes asociadas a los objetos queforman la interfaz graacutefica Visual Basic 60 permite la programacioacuten de sus ventanasbotones y componentes de manera maacutes faacutecil que Java con sus Applets

En la parte del sistema de control de horarios que es un sistema de informacioacuten comuacutenlos programas que llenan de informacioacuten las bases de datos son muy parecidos unos conotros al hacer los procesos de altas bajas modificaciones consultas y validaciones seutilizan las ventajas que Visual Basic 60 ofrece de la Programacioacuten Orientada aObjetos (POO) eacutesta es una forma de programacioacuten que utiliza objetos ligados mediantemensajes para la solucioacuten de problemas Puede considerarse como una extensioacuten naturalde la programacioacuten estructurada en un intento de potenciar los conceptos demodularidad y reutilizacioacuten de coacutedigo Las caracteriacutesticas fundamentales de la POO sonabstraccioacuten encapsulamiento herencia y polimorfismo

Visual Basic 60 soporta la abstraccioacuten la encapsulacioacuten el polimorfismo y lareutilizacioacuten de coacutedigo Los objetos de Visual Basic estaacuten encapsulados es decircontienen su propio coacutedigo y sus propios datos

Manejador de Base de datos para el almacenamiento de la informacioacutenEl manejador de base de datos a utilizar seraacute Microsoft Access debido a que los usuariosque alimentan la base de conocimientos son expertos en diferentes aacutereas delconocimiento y tiene conocimientos limitados de los diferentes manejadores y estaacuten maacutesfamiliarizados con Microsoft Access Ademaacutes de que Access es transportablefaacutecilmente

Ademaacutes la cantidad y tipo de informacioacuten que se almacena en las tablas no requieremanejadores de bases de datos potentes o con caracteriacutesticas especiales

Capiacutetulo 4 Anaacutelisis y Disentildeo

Sistemagenerador dehorarios

SistemaExperto

Reglas

Criterios

Criterios por regla Conocimiento

Procesos

Capturaestadiacutesticas

Calcula grupos

Ajusta grupos

Sistema expertoasigna materia

Sistema Expertoasigna maestro

Asigna materia

Asigna catedraacutetico

Conocimientos

Procesos

Materias

Perfil general

Catedraacuteticos

Perfil materias

Perfil maestro

Asignacioacutenmateria-maestro

Asignacioacutenmaestro-materia

Buacutesqueda independiente

B adelante

B atraacutes

Abduccioacuten

Explicacioacuten

MoacuteduloPLR

Asigna horario

Datos

Arbol derestricciones Procesos

Materia

Grupos

Paquetes

Horario

Restriccioacuten 1

Restriccioacuten 3

Restriccioacuten 2

Restriccioacuten N

Genera random

Evaluacutea restricciones

Guarda grupo

MoacuteduloAlgoritmoGeneacutetico

Asigna aula

Operadores Geneacuteticos

Evaluacioacuten

Cruzamiento

Seleccioacuten

Mutacioacuten

Poblacioacuten Inicial

Versioacuten 1

Versioacuten 2

Versioacuten 3

Versioacuten N

Condensadodatos grales

Materia

Hora

Aula

Control escolar

Sistema deInformacioacuten

Aulas

Horarios

Grupos

Maestros

Datosestadiacutesticos

Datosgenerales

Datos condensado

Materias

45 MAPA CONCEPTUAL DEL PROYECTO

Capiacutetulo 4 Anaacutelisis y Disentildeo

Capiacutetulo 4 Anaacutelisis y Disentildeo

En la Figura 41 se muestra el mapa conceptual del proyecto La burbuja centralrepresenta el sistema generador de horarios y cada rama representa uno de los seismoacutedulos que lo componen las burbujas de cada rama contienen a su vez variasramificaciones en las que se muestran de manera graacutefica los componentes maacutesrepresentativos de los procesos utilizados la informacioacuten que manejan el conocimientoque utilizan y las restricciones involucradas

El moacutedulo Servicios Escolares contiene informacioacuten necesaria para la administracioacuten delos horarios en general y proporciona los datos para el funcionamiento de los demaacutesmoacutedulos

El moacutedulo Sistema Experto Creacioacuten de Grupos (SECG) muestra el conocimiento yprocesos utilizados para definir la cantidad de grupos a ofertar a partir de la informacioacutenestadiacutestica proporcionada por servicios escolares maacutes adelante en el documento seexplica a detalle su funcionamiento

En la Figura 41 se aprecia que los moacutedulos Sistema Experto AsignaCatedraacutetico(SEAC) y Sistema Experto Asigna Materia(SEAM) comparten las bases deconocimiento porque el conocimiento de un SE es la base de hechos del otro en amboscasos los procesos difieren solamente en la informacioacuten que utilizan y en los resultadosque producen noacutetese que existe un proceso que es ldquobuacutesqueda independienterdquo que puedecatalogarse como un Sistema Experto adicional que sirve para sugerir las asignaturasque puede impartir una persona que no estaacute dentro de las bases de datos de maestros ypor lo tanto su perfil tampoco estaraacute capturado en esta caso los hechos (su perfil deconocimientos) es capturado en el momento de la consulta

El moacutedulo de Algoritmos Geneacuteticos (AG) muestra los datos que recibe como se generauna poblacioacuten inicial el tratamiento que se le aplica por medio de los operadoresgeneacuteticos y la informacioacuten que se genera

Por uacuteltimo en la Figura 41 se nota tambieacuten el moacutedulo donde se utiliza la ProgramacioacutenLoacutegica de Restricciones que contiene 3 ramas donde una representa los datos recibidosy la informacioacuten generada otra rama denota un aacuterbol de restricciones que deben sersatisfechas por los paquetes de horarios la uacuteltima rama denota los procesos que se llevana cabo debe notarse que existe un proceso aleatorio que genera cada grupo un procesoque evaluacutea el grupo contra las restricciones y uno mas que guarda los grupos quecumplieron con todas

En este mapa conceptual no se muestra en que orden se ejecuta cada moacutedulo delproyecto la Figura 42 ilustra la secuencia de ejecucioacuten de los moacutedulos

La Figura 42 muestra el diagrama con la secuencia en que se van ejecutando losprocesos los datos que ingresan a cada moacutedulo y la informacioacuten que genera

Capiacutetulo 4 Anaacutelisis y Disentildeo

452 MAPAS CONCEPTUALES DE LOS MOacuteDULOS

Servicios Escolares

Datos Estadiacutesticos

Sistema Experto Creacioacuten de Grupos

Materias y grupos requeridos

Moacutedulo PLR

Materia + grupo + hora

Moacutedulo AG

Materia + grupo + hora + aula

Sistema ExpertoAsigna Catedraacutetico Sistema Experto

Asigna Materia

Sugiere profesorpara asignaturas

Sugiere asignaturapara profesor

Materia + grupo + hora + aula +profesor

Condensado final de materias

1

2

3

4

5 6

Fig 42 Diagrama de secuencia

Capiacutetulo 4 Anaacutelisis y Disentildeo

Como puede verse todo inicia cuando Servicios Escolares enviacutea la informacioacuten a laDivisioacuten de Estudios Profesionales (donde ldquohabitanrdquo los coordinadores) quienes son losresponsables de la elaboracioacuten de los horarios

Un primer proceso captura la informacioacuten que proviene de Servicios Escolares elsegundo moacutedulo define cuantos grupos deben programarse el tercer proceso asigna lahora a cada grupo el cuarto moacutedulo es el proceso que asigna las aulas los procesosquinto y sexto sirven para sugerir queacute catedraacutetico es el maacutes adecuado para cada grupo ycomo resultado final se tiene el condensado final de horarios para el siguiente semestre

En la Figura 43 se muestran los componentes del primer Sistema Experto utilizado paradefinir la cantidad de grupos que deben ofertarse el proacuteximo semestre en la partesuperior izquierda de la figura esta el coordinador de la carrera quien es el encargado decargar el conocimiento a las Bases de Conocimiento utilizando la interfaz de experto esla persona indicada para definir los criterios que tiene cada materia define las reglaspara la agrupacioacuten de los criterios y define en cada regla que tipo de ajuste se realiza

Experto

Coordinador

Interfaz Experto

Base deConocimientos

CriteriosReglasAjustes

Motor de Inferencia ListasMateriasGrupos requeridos

UsuarioMoacutedulo Explicacioacuten

Usuario(coordinador

novato)

Interfaz Usuario

Base Hechos

Informacion Estadiacutestica

Fig 43 Sistema Experto Generador de Grupos

Capiacutetulo 4 Anaacutelisis y Disentildeo

El usuario en la parte inferior de la figura puede ser el coordinador o su asistente y seencarga de capturar la informacioacuten estadiacutestica proporcionada por servicios escolares queson los datos de alumnos inscritos actualmente en cada materia el iacutendice de reprobacioacutenlos alumnos inscritos en la materias prerrequisito una simulacioacuten de los alumnosprobables para cursar esa materia si todos los inscritos aprueban todo y los alumnos quepueden cursar las materias pero no se inscribieron

Con los datos anteriores se realiza la siguiente operacioacuten

(Inscritos en materia iacutendice de reprobacioacuten de materia) 100 +Alumnos no inscritos +Alumnos en prerrequisito ndash (alumnos en prerrequisito iacutendice de reprobacioacuten) 100 +(Simulacioacuten ndash alumnos en prerrequisito ndash no inscritos) = Alumnos del proacuteximo semestre

Este uacuteltimo dato (alumnos del proacuteximo semestre) proporciona la cantidad de alumnospor materia que pueden inscribirse en los grupos seguacuten los estadiacutesticos de ServiciosEscolares pero no contempla preferencias de alumnos conveniencia de inscripcioacuten etc

Ofrecer los grupos necesarios para la inscripcioacuten de alumnos tomando el dato calculadoocasiona que al terminar las inscripciones existan grupos vaciacuteos grupos sobresaturadosalumnos con pocas materias y varios problemas mas

La finalidad de este Sistema Experto es realizar un ajuste al dato calculadoanteriormente para incluir en su caacutelculo todas aquellas caracteriacutesticas y experiencia delcoordinador para minimizar los problemas mencionados en el paacuterrafo anterior

Los ajustes pueden ser de varios tiposbull Ajuste draacutestico hacia abajo Se aplica una reduccioacuten del 50 al dato calculadobull Ajuste hacia arriba Se agrega un grupo maacutes al dato calculadobull Ajuste hacia abajo Se resta un grupo al dato calculadobull Ajuste numeacuterico Se ajusta utilizando la regla del redondeo de decimalesbull Ajuste draacutestico hacia arriba Se suman 2 oacute 3 grupos al dato calculado

Cuando utilizar una u otra regla estaacute definido por los criterios que cada materia contienenaturalmente y que con el paso de los semestres puede variar (aunque tambieacuten puedenpasar antildeos sin sufrir ninguacuten cambio)

La Figura 44 describe la utilizacioacuten de la teacutecnica de la Inteligencia Artificial llamadaProgramacioacuten Loacutegica de Restricciones para generar el condensado de grupos a partir deuna lista de materias que contiene solamente el nombre y la cantidad de grupos que sedeben abrir de una materia

Capiacutetulo 4 Anaacutelisis y Disentildeo

EoseX

Ugacgg

Lgc

s

ListasMaterias

Procesoformador depaquetes

Lista grupo +paquete

Moacutedulo generadorRandom Hora

Restricciones satisfec

Restriccio

Materia +hora

Moacuteduloverificadorrestriccione

s

Restriccionesnosatisfechas

Fig 44 Diagrama del moacutedulo Programacioacuten Loacutegica de Restriccione

xiste un proceso inicial que forma los ldquopaquetesrdquo de grupos esto es las materias serdenan por el semestre al que corresponden (generalmente son 6 materias poremestre) despueacutes para cada semestre se generan los grupos correspondientes si porjemplo se deben hacer 3 grupos de la materia X se generan tres registros de la materia y cada registro se etiqueta

Materia X grupo AA Materia X grupo AB y Materia X grupo AC

na vez que todas las materias han sido generadas y ldquoempaquetadasrdquo se pasan alenerador de horario en bloques de un paquete a la vez Este proceso funcionasignando un horario aleatorio a cada grupo despueacutes se verifica que cada grupo cumplaon todas las restricciones que son del tipo grupo no ldquochocardquo con otro del paqueterupo proporciona horario continuo al paquete grupo tiene horario de 2 horas por diacutearupo no deja horas vaciacuteas en paquete grupo cumple con todas sus horas asignadas etc

a Figura 45 muestra el disentildeo del Algoritmo Geneacutetico utilizado para asignar aula a losrupos que provienen del moacutedulo anterior (PLR) y recibe como datos de entrada unondensado de horarios (materia + grupo + hora)

Capiacutetulo 4 Anaacutelisis y Disentildeo

Procesoevaluacioacuten

Condensado

Materia +Grupo +Hora

Generador de versiones aleatorias

Genera versioacuten asigna aula

Versioacuten 3

Versioacuten 2

Versioacuten 1

Versioacuten N

Poblacioacuten inicial

ProcesoseleccioacutenProceso cruzamiento

clonacioacuten mutacioacuten

Versioacuten z

Versioacuten y

Versioacuten x

Versioacuten w

Nueva generacioacuten

Individuos aptos

Individuos no aptosReciclaje

CondensadoMateria + grupo +hora + aula

Fig 45 Diagrama del moacutedulo Algoritmo Geneacutetico

Capiacutetulo 4 Anaacutelisis y Disentildeo

Esta rama de la Inteligencia Artificial es utilizada generalmente para procesos deoptimizacioacuten y en esta ocasioacuten se utiliza para asignar las aulas al condensado dematerias

Al inicio se reciben como datos generales el condensado de materias La poblacioacuteninicial se obtiene copiando N veces (N versiones) este condensado y agregando a cadaregistro el nuacutemero de versioacuten y un aula asignada de manera aleatoria de esta manera seobtienen N versiones diferentes del condensado original

Cada versioacuten es entonces evaluada contando el nuacutemero de choques en aula y la cantidadde espacios vaciacuteos por aula a cada versioacuten se le genera un vector para guardar laevaluacioacuten (cromosoma de evaluacioacuten) y de esta manera se mide el grado de aptitud quetiene cada versioacuten

Las versiones que tienen menos choques y menos espacios vaciacuteos se consideran con ungrado de aptitud alto y son las mejores al contrario las que tienen muchos choquesson consideradas de aptitud baja no sirven para la reproduccioacuten y son desechadas

Una vez seleccionadas la mejores versiones se procede a la aplicacioacuten de los operadoresgeneacuteticos el primero que se aplica es el cruzamiento y consiste en elegir dos versionesde alta aptitud tomar segmentos seleccionados heuriacutesticamente de ellas y formar unnuevo individuo (una nueva versioacuten) se repite este proceso Y veces con las diferentesversiones hasta tener una nueva generacioacuten de N condensados de horarios

Repetir este proceso de generacioacuten evaluacioacuten y seleccioacuten durante Z generacionesaplicando cuando se necesite la clonacioacuten que es un proceso de copiar completamenteuna versioacuten (con alto grado de aptitud) a la nueva generacioacuten

Al principio la convergencia hacia horarios sin choques en aula es raacutepida pero al pasode las generaciones disminuye entonces se debe usar la mutacioacuten que es un proceso deacceder manualmente los registros de alguna versioacuten Zi en la generacioacuten Z y corregiralguacuten aula al final despueacutes de varias generaciones selecciones cruzamientosclonaciones y mutaciones se obtiene un condensado de aulas libres de choques y conpocos espacios vaciacuteos

En la Figura 46 se muestran los componentes del Sistema Experto utilizado para sugerircuales son los catedraacuteticos que mejor se desempentildeariacutean para impartir una asignaturatomando en cuenta los conocimientos que tiene un profesor (adquiridos a lo largo de sucarrera) y cuales son los conocimientos necesarios para impartir la caacutetedra de algunaasignatura

Capiacutetulo 4 Anaacutelisis y Disentildeo

Todo inicia haciendo una encuesta a los profesores acerca del perfil y los conocimientosnecesarios para poder impartir una asignatura el objetivo de la misma y los principalestemas que abarca todo lo anterior se captura en la base de hechos como el perfil de lamateria

Posteriormente se hace otra encuesta a los profesores pidieacutendoles que seleccionencuales son los conocimientos y el grado de dominio que tienen de los diferentes toacutepicosde las asignaturas esto se convierte en el perfil del catedraacutetico Por uacuteltimo con unproceso de induccioacuten se determina para cada materia cual es el grado de certeza con elcual puede un profesor impartir una asignatura

Experto

Coordinador

Interfaz Experto

Base deConocimientos

CatedraacuteticosConocimientos profesorPerfil profesor

Motor de Inferencia Lista profesores paraimpartir una materia

Jefedepartamento

Moacutedulo Explicacioacuten

Usuario(coordinador

novato)

Interfaz Usuario

Base Hechos

Perfil

Fig 46 Diagrama de Sistema Experto para sugerir profesor a asignatura

Capiacutetulo 4 Anaacutelisis y Disentildeo

Noacutetese en la Figura 47 que el coordinador captura el conocimiento referente a lasasignaturas (objetivo temas caracteriacutesticas necesarias para impartirla) y este esalmacenado en la Base de Conocimientos

Por otro lado un profesor debe llenar una encuesta en la que indique cuales son lostemas que domina y en que porcentaje lo hace (esto es el perfil del catedraacutetico) estainformacioacuten se almacena en la base de hechos--

El Motor de Inferencia hace los matchs respectivos y genera una lista de las materias quepuede impartir un profesor y con que grado de certeza estaacute capacitado para hacerlo

Por uacuteltimo el moacutedulo de explicacioacuten informa el porqueacute dio esa inferencia mostrando lascaracteriacutesticas de materia y profesor que hicieron match

Fig 47 Diagrama de Sistema Experto para sugerir asignaturas para catedraacutetico

Experto

Coordinador

Interfaz Experto

Base deConocimientos

MateriasCaracteriacutesticas MateriasPerfil materia

Motor de Inferencia Lista materias para unprofesor

Profesor

Moacutedulo Explicacioacuten

Profesor nuevoInterfaz Usuario

Base Hechos Perfil profesor

Capiacutetulo 4 Anaacutelisis y Disentildeo

453 Diagrama de contextoEn la Figura 48 se detallan los elementos que intervienen aportando y recibiendoinformacioacuten para el funcionamiento del sistema

Los departamentos acadeacutemicos aportan al sistema una lista con los catedraacuteticos quelaboran ahiacute incluye los datos personales de los profesores nuacutemero de tarjeta nombrecarrera etc Los coordinadores de carrera son los responsables de la elaboracioacuten de loshorarios estos funcionarios son la pieza fundamental de este proceso porque aportan susconocimientos para

bull Definir el ajuste al dato estadiacutestico proporcionado por Servicios Escolaresbull Definir las restricciones para la creacioacuten de los paquetes de gruposbull Definir las restricciones para asignar hora a cada grupobull La distribucioacuten de los grupos en las aulasbull Asignar la asignatura que mejor puede impartir un catedraacuteticobull Asignarle a una asignatura al profesor que mejor puede impartirla

El departamento de Servicios Escolares es el iniciador del proceso de la elaboracioacuten dehorarios aporta los datos estadiacutesticos obtenidos de la situacioacuten escolar actual de losalumnos cada alumno estaacute inscrito en alguna de las 8 carreras que se ofrecen en elInstituto estaacute cursando entre 5 y 8 asignaturas por semestre en cada periodo acredita oreprueba algunas materias En cada carrera se tiene un mapa reticular que incluyeaproximadamente 50 asignaturas con prerrequisitos creacuteditos horas en aula horas enlaboratorio orden por semestre etc

El departamento Divisioacuten de Estudios Profesionales (donde estaacuten adscritos loscoordinadores de carrera) es el responsable de distribuir las aulas disponibles delInstituto entre los distintos coordinadores las aulas son un recurso escaso y por lo tantovalioso de esta distribucioacuten depende en gran medida la holgura o estrechez que tienenlos coordinadores para asignar las aulas a los grupos creados

Los profesores son otro de los recursos valiosos de una institucioacuten son los responsablesde transmitir sus conocimientos a los alumnos cada catedraacutetico posee conocimientos dediversas aacutereas toacutepicos y ramas del saber humano el perfil del catedraacutetico estaacute enrelacioacuten directa con el dominio que tiene de cada una de ellas y varia desde unconocimiento superficial hasta el dominio total de un aacuterea

Los generadores random de los moacutedulos PLR y AG proporcionan la informacioacutennecesaria generada de manera aleatoria para el funcionamiento de esos moacutedulos

A los coordinadores y alumnos se les proporciona un condensado de horarios losalumnos conocen los grupos a los que se pueden inscribir las horas las aulas y loscatedraacuteticos que las impartiraacuten

Capiacutetulo 4 Anaacutelisis y Disentildeo

Sistema para laelaboracioacuten de

horarios

Departamentosacadeacutemicos

Jefes dedepartamento

Divisioacuten deEstudios

Profesionales

DepartamentoServiciosEscolares

Alumnos

Coordinadoresde carrera

Coordinadoresde carrera

Lista catedraacuteticos disponibles

Conocimientos

Reporte datos estadiacutesticos

Lista aulas disponibles

Condensado de horarios

Horarios disponibles

Lista horarios profesores

Profesores Generadoresaleatorios

Perfil maestro

Horas y aulas aleatorios

Fig 48 Diagrama de contexto del proyecto

Cap

iacutetulo

4

Anaacute

lisis

y D

isentilde

o

Sist

ema

para

lael

abor

acioacute

n de

hora

rios

Dep

arta

men

tos

acad

eacutemic

os

Div

isioacute

n de

Estu

dios

Prof

esio

nale

s

Dep

arta

men

toSe

rvic

ios

Esco

lare

sC

oord

inad

ores

de c

arre

ra

List

a ca

tedr

aacutetic

os d

ispo

nibl

es

Con

ocim

ient

osR

epor

teda

tose

stad

iacutestic

osLi

sta

aula

s dis

poni

bles

Prof

esor

esG

ener

ador

esal

eato

rios

Perf

il m

aest

roH

oras

y a

ulas

Fig

49

Dia

gram

a de

func

ione

s fun

dam

enta

les (

entra

das)

Cap

tura

supe

rfil

deco

noci

mie

nto

Cap

tura

las

aula

s

Enviacute

a da

tos

Cap

tura

suco

noci

mie

nto

Enviacute

a da

tos

depr

ofes

ores G

ener

ada

tos

Cla

ve n

ombr

eho

ras

turn

o

Tips

tru

cos

cono

cim

ient

ohe

uriacutes

tico

Cla

ve c

apac

idad

ed

ifici

o

Alu

mno

sin

scrit

os

sim

ulac

ioacuten

no

insc

ritos

iacutend

ice

repr

obac

ioacuten

Toacutepi

cos y

tem

asqu

e do

min

aA

ula

y ho

raal

eato

rios

Capiacutetulo 4 Anaacutelisis y Disentildeo

Sistema para laelaboracioacuten de

horarios

Coordinadoresde carrera

Jefes dedepartamento Alumnos

Fig 410 Diagrama de funciones fundamentales (salidas)

Imprimecondensado

Imprime lista Imprimehorarios

Maestro materiahora

Materia grupohora aula

maestrosugerido

Condensado de horarios Horarios disponibles

Lista horarios profesores

Materia grupohora aula

maestro

Capiacutetulo 4 Anaacutelisis y Disentildeo

454 Diagrama entidad - relacioacuten

NOTA Los siguientes diagramas muestran las tablas utilizadas por cada moacutedulo paramayor claridad se repitieron las tablas necesarias para representar cada parte del sistemapero en la base de datos no existe tal duplicacioacuten

Este diagrama contiene las tablas del moacutedulo administrativo de los horarios en unprincipio eacutestas eran las uacutenicas tablas de un sistema de control de horarios

FK_HORARIOS_REFERENCE_MATERIASFK_MATERIAS_REFERENCE_SERVICIO

FK_MATERIAS_REFERENCE_RAMA_MAT FK_MATERIAS_REFERENCE_CARRERAS

HORARIOS

GrupoId_aulaHora_inicioHora_lunesHora_martesHora_miercolesHora_juevesHora_viernesHora_sabadoObservacionesPeriodoAnioid_materiaId_catedratico

Text(2)INTEGERINTEGERText(6)Text(6)Text(6)Text(6)Text(6)Text(6)Text(30)Text(20)INTEGERINTEGERSMALLINT

ltfk3gt

ltfk2gtltfk1gt

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave de asig prerequisitoclave de asig prerequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

MATERIAS

SERVICIOS_ESCOLARESId_materiaINSCRITOSNO INSCRITOSSIMULACIONPROXIMO SEMESTREGRUPOS REQUERIDOSIndice de reprobacionperiodoantildeoGrupos ajustadoAlumnos ajustadoId_ajusteId_regla

INTEGERSMALLINTSMALLINTSMALLINTSMALLINTDOUBLEDOUBLEText(7)INTEGERSMALLINTSMALLINTINTEGERSMALLINT

RAMA_MATERIA

Id_ramaNombre_rama

COUNTERText(30)

ltpkgt

CARRERAS

Id_CarreraNombre_carrera

Text(15)Text(50)

ltpkgt

Fig 411 Diagrama entidad ndash relacioacuten del moacutedulo administrativo

Capiacutetulo 4 Anaacutelisis y Disentildeo

Este diagrama muestra las tablas donde se almacena el conocimiento de loscoordinadores para que el Sistema Experto del moacutedulo sugiera y aplique el ajuste aldato de cantidad de grupos sugerido por Servicios Escolares La relacioacuten entre las tablasva generando las reglas de produccioacuten

MATERIAS

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave asig prerrequisitoclave asig prerrequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

REGLAS

DescriId_reglaId_ajusteTot_peso

Text(70)COUNTERINTEGERINTEGER

ltpkgtltfkgt

FK_MATERIAS_REFERENCE_SERVICIO

FK_HECHOS_R_REFERENCE_CRITERIO

FK_HECHOS_R_REFERENCE_REGLAS

FK_HISTORIA_REFERENCE_REGLAS

FK_HISTORIA_REFERENCE_CRITERIO

FK_REGLAS_REFERENCE_AJUSTES

FK_HISTORIA_REFERENCE_MATERIAS

FK_HISTORIA_REFERENCE_CRITERIO

SERVICIOS_ESCOLARES

Id_materiaINSCRITOSNO INSCRITOSSIMULACIONPROXIMO SEMESTREGRUPOS REQUERIDOSIndice de reprobacioacutenperiodoantildeoGrupos ajustadoAlumnos ajustadoId_ajusteId_regla

INTEGERSMALLINTSMALLINTSMALLINTSMALLINTDOUBLEDOUBLEText(7)INTEGERSMALLINTSMALLINTINTEGERSMALLINT

HECHOS_REGLAS

Id_criterioId_reglaPromedio

INTEGERINTEGERINTEGER

ltfk2gtltfk1gt

CRITERIOS

Id_criterioDescripcion

COUNTERText(60)

ltpkgt

HISTORIAL_CRITERIOS

Id_criterioId_reglaPeso de la regla

INTEGERINTEGERSMALLINT

ltfk2gtltfk1gt

AJUSTES

TipoDescripcionId_ajuste

Text(25)MemoCOUNTER ltpkgt

HISTORIAL_MATERIA

Id_materiaId_criterioprioridad

INTEGERINTEGERSMALLINT

ltfk2gtltfk1gt

Fig 412 Diagrama E-R del moacutedulo para determinar y ajustar nuacutemero de grupos

Capiacutetulo 4 Anaacutelisis y Disentildeo

En este diagrama se muestra la base de datos que almacena la informacioacuten quemanipula el moacutedulo Algoritmo Geneacutetico las tablas maacutes representativas sonPOBLACION donde se guardan todas las versiones que forman las generaciones dehorarios y CROMOSOMAS que almacena el registro de evaluacioacuten de cada versioacuten dehorarios

FK_HORARIO__REFERENCE_AULAS

FK_HORARIO__REFERENCE_POBLACIO

FK_MATERIAS_REFERENCE_TIPO_HOR

FK_POBLACIO_REFERENCE_AULAS

FK_POBLACIO_REFERENCE_MATERIAS

FK_POBLACIO_REFERENCE_CROMOZOM1 1

HORARIO_AULA

VersionAulaLunesMartesMiercolesJuevesViernesSabadoHoraId_aula

INTEGERText(6)SMALLINTSMALLINTSMALLINTSMALLINTSMALLINTSMALLINTSMALLINTINTEGER

ltfk2gt

ltfk1gt

AULAS

Id_aulaCapacidad_aulaNombre_aulaDisponible

COUNTERSMALLINTText(50)YesNo

ltpkgt

POBLACION

Id_materiaGrupoId_catedraticoAulaHora_inicioHora_lunesHora_martesHora_miercolesHora_juevesHora_viernesVersionId_aulaPeriodoAnio

INTEGERText(4)INTEGERText(4)INTEGERText(6)Text(6)Text(6)Text(6)Text(6)INTEGERINTEGERText(10)INTEGER

ltfk2gt

ltfk1gtltfk3gt

MATERIAS

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave de asig prerequisitoclave de asig prerequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

TIPO_HORARIO

Tipo_horario

DescripcionLunes

MartesMiercoles

Jueves

ViernesSabado

COUNTER

Text(20)SMALLINT

SMALLINTSMALLINT

SMALLINT

SMALLINTSMALLINT

ltpkgt

CROMOZOMAS

VersionSemestreChoquesVacias

INTEGERINTEGERINTEGERINTEGER

ltpkgt

Fig 413 Diagrama E-R del moacutedulo para asignar aulas (Algoritmo Geneacutetico)

Capiacutetulo 4 Anaacutelisis y Disentildeo

En esta Figura 414 se pueden observar las tablas involucradas en el proceso paragenerar los paquetes de materias por semestre y la asignacioacuten de horario a cada grupodel paquete utilizando la teacutecnica Programacioacuten Loacutegica de Restricciones noacutetese que noexiste una tabla de restricciones eacutestas se aplican por software a cada grupo generado

FK_MATERIAS_REFERENCE_SERVIC

FK_MATERIAS_REFERENCE_TIPO_H

FK_HORARIOS_REFERENCE_MATERI

MATERIA

Id_materiMateriNum de HrsNum de HrsClave deId_CarrerCreditoSemestrObservacioneTroncoalumnos porclave de asigclave de asigId_ramSuma_maOrdeTipo_horari

INTEGEText(40SMALLINSMALLINText(8Text(15SMALLINSMALLINText(60YesNSMALLINText(40Text(40INTEGESMALLINSMALLININTEGE

ltpkfk4

ltfk1

ltfk3

ltfk2

SERVICIOS_ESCOLARE

Id_materiINSCRITONOSIMULACIOPROXIMOGRUPOSIndice deperiodantildeGruposAlumnosId_ajustId_regl

INTEGESMALLINSMALLINSMALLINSMALLINDOUBLDOUBLText(7INTEGESMALLINSMALLININTEGESMALLIN

TIPO_HORARI

Tipo_horariDescripcioLuneMarteMiercoleJueveVierneSabad

COUNTEText(20SMALLINSMALLINSMALLINSMALLINSMALLINSMALLIN

ltpk

HORARIO

GrupId_aulHora_iniciHora_luneHora_marteHora_miercoleHora_jueveHora_vierneHora_sabadObservacionePeriodAniid_materiId_catedratic

Text(2INTEGEINTEGEText(6Text(6Text(6Text(6Text(6Text(6Text(30Text(20INTEGEINTEGESMALLIN

ltfk3

ltfk2ltfk1

Fig414 Diagrama E-R del moacutedulo para asignar horario (PLR)

Capiacutetulo 4 Anaacutelisis y Disentildeo

FK_HECHOS_M_REFERENCE_MATERIAS

FK_HECHOS_M_REFERENCE_CATEDRAT

HECHOS_MAT_PROF

Id_catedraticoId_materiaPromedio

SMALLINTSMALLINTSMALLINT

ltpkfk1gtltpkfk2gt

FK_PERFIL_C_REFERENCE_CATEDRAT

FK_PERFIL_C_REFERENCE_PERFILES

FK_PERFILES_REFERENCE_TIPO_PER

FK_PROF_PAR_REFERENCE_CATEDRAT

FK_PROF_PAR_REFERENCE_MATERIAS

PERFIL_CATEDRATICO

Id_catedraticoId_perfilPrioridad_perfil_cate

SMALLINTINTEGERSMALLINT

ltfk1gtltfk2gt

CATEDRATICOS

Id_catedraticoApellido_paternoApellido_maternoNombre_catedraticoTitulo_catedraticoSuma_cate

SMALLINTText(20)Text(20)Text(20)Text(30)SMALLINT

ltpkgt

PERFILES

Id_perfilId_tipoDescripcion_perfil

COUNTERINTEGERText(60)

ltpkgtltfkgt

TIPO_PERFIL

Id_tipoTipo_perfil

COUNTERText(30)

ltpkgt

PROF_PARA_MAT

Id_materiaId_catedraticoPorcentaje_cate

INTEGERSMALLINTSMALLINT

ltpkfk2gtltpkfk1gt

MATERIAS

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave de asig prerequisitoclave de asig prerequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

Fig 415 Diagrama E-R del moacutedulo designa mejor catedraacutetico (Sistema Experto)

Capiacutetulo 4 Anaacutelisis y Disentildeo

En las figuras de la paacutegina anterior y eacutesta (Fig 415 y 416) se muestran las tablasutilizadas por los Sistemas Expertos para sugerir que materias puede impartir unprofesor y tambieacuten sugiere que profesores pueden impartir una asignatura

FK_PERFILES_REFERENCE_TIPO_PER

FK_PERFIL_M_REFERENCE_MATERIAS

FK_PERFIL_M_REFERENCE_PERFILES

FK_MAT_PARA_REFERENCE_MATERIAS

FK_MAT_PARA_REFERENCE_CATEDRAT

FK_HECHOS_M_REFERENCE_MATERIAS

FK_HECHOS_M_REFERENCE_CATEDRAT

PERFILES

Id_perfilId_tipoDescripcion_perfil

COUNTERINTEGERText(60)

ltpkgtltfkgt

TIPO_PERFIL

Id_tipoTipo_perfil

COUNTERText(30)

ltpkgt

PERFIL_MATERIA

Id_materiaId_perfilPrioridad_perfil_mat

INTEGERINTEGERINTEGER

ltfk2gtltfk1gt

MATERIAS

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave de asig prerequisitoclave de asig prerequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

MAT_PARA_PROF

Id_catedraticoId_materiaPorcentaje_mat

SMALLINTINTEGERSMALLINT

ltpkfk1gtltpkfk2gt

CATEDRATICOS

Id_catedraticoApellido_paternoApellido_maternoNombre_catedraticoTitulo_catedraticoSuma_cate

SMALLINTText(20)Text(20)Text(20)Text(30)SMALLINT

ltpkgt

HECHOS_MAT_PROF

Id_catedraticoId_materiaPromedio

SMALLINTSMALLINTSMALLINT

ltpkfk1gtltpkfk2gt

Fig 416 Diagrama E-R del moacutedulo selecciona mejor materia (sistema experto)

Capiacutetulo 4 Anaacutelisis y Disentildeo

455 Diccionario de la Base de Datos

Nombre HORARIOS_CON_CONOCIMIENTOComentario Base de datos del sistema ldquoGeneracioacuten de horarios mediante Sistemas

Basados en ConocimientordquoDBMS Microsoft Access 97

Lista de Tablas

Nombre Tipo deObjeto

AJUSTES TableAULAS TableCARRERAS TableCATEDRATICOS TableCRITERIOS TableCROMOSOMAS TableHECHOS TableHECHOS_MAT_PROF TableHECHOS_PROF_MAT TableHECHOS_REGLAS TableHISTORIAL_CRITERIOS TableHISTORIAL_MATERIA TableHORARIO_AULA TableHORARIOS TableMAT_PARA_PROF TableMATERIAS TablePERFIL_CATEDRATICO TablePERFIL_MATERIA TablePERFILES TablePOBLACION TablePROF_PARA_MAT TableRAMA_MATERIA TableREGLAS TableSERVICIOS_ESCOLARES TableTIPO_HORARIO TableTIPO_PERFIL Table

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla AJUSTESFuncioacuten Almacena los datos de los tipos de ajuste que se aplican por el Sistema Experto al

dato estadiacutestico que define cuantos grupos se deben abrir de cada materia

Lista de columnas de la tabla AJUSTESNombre Tipo de

DatoLong Llave

Primaria ForaneaComentario

Tipo Text(25) 25 Nombre del tipo de ajusteDescripcioacuten Memo Explicacioacuten del ajuste a realizar al nuacutemero

de grupos calculados segun estadisticosId_ajuste COUNTER 4 X Identificador del ajuste

Tabla AULASFuncioacuten Almacena los datos de las aulas que existen en cada edificio del instituto

Lista de columnas de la tabla AULASNombre Tipo de

DatoLong Llave

Primaria ForaneaComentario

Id_aula COUNTER 4 X Identificador del aulaCapacidad_aula SMALLINT 4 Nuacutemero maacuteximo de alumnos en el

aulaNombre_aula Text(50) 50 Nombre del aula (edificio+numero)Disponible YesNo 1 Disponibilidad del aula

Tabla CARRERASFuncioacuten Almacena los datos de las carreras que se imparten en el ITZ

Lista de columnas de la tabla CARRERASNombre Tipo de

DatoLong Llave

Primaria ForaneaComentario

Id_Carrera Text(15) 15 X Clave de la carreraNombre_carrera Text(50) 50 Nombre de la carrera

Tabla CATEDRATICOSFuncioacuten Almacena los datos de los CATEDRAacuteTICOS que imparten clases en las diferentes carreras del

Instituto Se utilizan los datos en los Sistemas Expertos que definen cual es el mejor catedraacuteticopara impartir una materia

Capiacutetulo 4 Anaacutelisis y Disentildeo

Lista de columnas de la tabla CATEDRATICOSNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_catedratico SMALLINT 4 X Nuacutemero de tarjeta del catedraacuteticoApellido_paterno Text(20) 20 Apellido paterno del catedraacuteticoApellido_materno Text(20) 20 Apellido materno del catedraacuteticoNombre_catedratico Text(20) 20 Nombre del catedraacuteticoTitulo_catedratico Text(30) 30 Grado de estudios y tiacutetulo del

catedraacuteticoSuma_cate SMALLINT 4 Suma total de las pesos de los perfiles

pertenecientes al catedraacutetico

Tabla CRITERIOSFuncioacuten Tabla de los criterios utilizados por el experto para crear las reglas que definen el tipo de

ajuste inferido por el Sistema Experto para definicioacuten de grupos por abrir

Lista de columnas de la tabla CRITERIOSNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_criterio COUNTER 4 X Identificador del criterio aplicado auna materia para crear grupos

Descripcion Text(60) 60 Descripcioacuten del criterio

Tabla CROMOSOMASFuncioacuten Almacena los datos de la evaluacioacuten de cada versioacuten de horarios generada ya sea por la

poblacioacuten inicial o por los operadores geneacuteticos se genera un cromosoma por cadasemestre en cada versioacuten

Lista de columnas de la tabla CROMOSOMASNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Version INTEGER 4 X Nuacutemero de individuo o versioacuten dehorarios

Semestre INTEGER 4 Semestre al que pertenece el datoChoques INTEGER 4 Nuacutemero de choques de versioacuten y

semestreVacias INTEGER 4 Nuacutemero de aulas vaciacuteas del individuo

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla HECHOS_MAT_PROFFuncioacuten Esta tabla almacena el resultado de la inferencia del Sistema Experto materias para

profesor indica para cada catedraacutetico las materias y el porcentaje de certeza con quepuede impartirlas

Lista de columnas de la tabla HECHOS_MAT_PROFNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_catedratico SMALLINT 4 X Identificador del catedraacuteticoId_materia SMALLINT 4 X Identificador de la asignaturaPromedio SMALLINT 4 Porcentaje de certeza con que un

profesor puede impartir una materia(resultado de la inferencia)

Tabla HECHOS_PROF_MATFuncioacuten Almacena los datos de la inferencia del Sistema Experto que calcula para una materia

determinada cuales son los mejores maestros para impartirla

Lista de columnas de la tabla HECHOS_PROF_MATNombre Tipo de

DatoLongitud

LlavePrimaria Foraacutenea

Comentario

Id_catedratico SMALLINT 4 X Identificador del catedraacuteticoId_materia SMALLINT 4 X Identificador de la asignaturaPromedio SMALLINT 4 Porcentaje de certeza con que una

materia puede ser impartida por unprofesor (resultado de la inferencia)

Tabla HECHOS_REGLASFuncioacuten Almacena los porcentajes de certeza con que se dispara una regla del Sistema Experto

que define los grupos por abrir

Lista de columnas de la tabla HECHOS_REGLASNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_criterio SMALLINT 4 X Identificador del criterioId_regla SMALLINT 4 X Identificador de la reglaPromedio INTEGER 4 Porcentaje de certeza con que una

regla dispara un criterio

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla HISTORIAL_CRITERIOS

Funcioacuten Almacena las reglas formadas por los criterios utilizados por el Sistema Experto paradefinir los grupos por abrir

Lista de columnas de la tabla HISTORIAL_CRITERIOSNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_criterio INTEGER 4 X Identificador del criterio pertenecientea la regla

Id_regla INTEGER 4 X Identificador de la reglaPeso de la regla SMALLINT 4 Peso del criterio en la regla

Tabla HISTORIAL_MATERIAFuncioacuten Tabla que almacena la definicioacuten de cada materia con base en los criterios utilizados por

las reglas para definir por materia el nuacutemero de grupos por abrir

Lista de columnas de la tabla HISTORIAL_MATERIANombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materia para suasignacioacuten de criterios

Id_criterio INTEGER 4 X Identificador del criterio que se aplicaa la materia para describirla

Prioridad SMALLINT 4 Peso del criterio en la materia

Tabla HORARIOS

Funcioacuten Almacena los datos del condensado final de horarios aquiacute se almacena el producto finaldel sistema para su posterior publicacioacuten y distribucioacuten entre la comunidad tecnoloacutegica

Lista de columnas de la tabla HORARIOSNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materiaGrupo Text(2) 2 Identificador del grupo A B CId_catedratico SMALLINT 4 X Catedraacutetico asignado al grupoId_aula INTEGER 4 X Aula asignada al grupoHora_inicio INTEGER 4 Hora de inicio del grupoHora_lunes Text(6) 6 Horas que se imparte el grupo el diacutea

lunes

Capiacutetulo 4 Anaacutelisis y Disentildeo

Hora_martes Text(6) 6Hora_miercoles Text(6) 6Hora_jueves Text(6) 6Hora_viernes Text(6) 6Hora_sabado Text(6) 6Observaciones Text(30) 30 Observaciones al grupoPeriodo Text(20) 20 Periodo Ene-jun o Ago-dicAnio INTEGER 4 Antildeo en que se utiliza el horario

Tabla HORARIO_AULAFuncioacuten Tabla auxiliar utilizada como almacenamiento temporal durante el proceso de evaluacioacuten

en el Algoritmo Geneacutetico guarda los datos de ocupacioacuten choques y no utilizacioacuten decada aula por hora diacutea y versioacuten

Lista de columnas de la tabla HORARIO_AULANombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Version INTEGER 4 X Nuacutemero de individuo o versioacutenAula Text(6) 6 Nombre del aulaLunes SMALLINT 4 Nuacutemero de horas que se utiliza el aula

el diacutea lunesMartes SMALLINT 4Miercoles SMALLINT 4Jueves SMALLINT 4Viernes SMALLINT 4Sabado SMALLINT 4Hora SMALLINT 4 Hora de utilizacioacuten del aulaId_aula INTEGER 4 X Identificador del aula en la versioacuten

Tabla MATERIASFuncioacuten Esta es una de las principales tablas del proyecto se utiliza en todos los moacutedulos del

sistema contiene informacioacuten base para caacutelculos diversos ademaacutes contiene tambieacuten lasllaves de diferentes tablas que describen de manera de manera especial a las materias

Lista de columnas de la tabla MATERIASNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia COUNTER 4 X Identificacioacuten de la materia llaveprincipal

Materia Text(40) 40 Nombre de la materiaNum de Hrs prac SMALLINT 4 Nuacutemero de horas praacutecticasNum de Hrs teo SMALLINT 4 Nuacutemero de horas teoacutericasClave de Asig Text(8) 8 Clave oficial de la materiaId_Carrera Text(15) 15 X Carrera a la que pertenece la materiaCreditos SMALLINT 4 Creacuteditos de la materia

Capiacutetulo 4 Anaacutelisis y Disentildeo

Semestre SMALLINT 4 Semestre en que se imparte la materiaObservaciones Text(60) 60Tronco comun YesNo 1 Definicioacuten de especialidad o tronco

comuacutenalumnos porgrupo

SMALLINT 4 Capacidad sugerida de los grupos deesta materia

clave de asigprerequisito

Text(40) 40 Clave de asignatura del prerrequisito

clave de asigprerequisito1

Text(40) 40 Clave de asignatura del prerrequisito

Id_rama INTEGER 4 X Identificador de la rama a la quepertenece la materia

Suma_mat SMALLINT 4 Suma total de los perfilespertenecientes a la materia

Orden SMALLINT 4 Es el nuacutemero de materia en un paqueteTipo_horario INTEGER 4 X El tipo de horario asignado a materia

Tabla MAT_PARA_PROFFuncioacuten La tabla almacena para cada catedraacutetico las asignaturas que puede impartir y el grado

de certeza con que puede hacerlo se almacena en esta tabla el resultado de la inferenciadel Sistema Experto

Lista de columnas de la tabla MAT_PARA_PROFNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_catedratico SMALLINT 4 X Nuacutemero de tarjeta del profesorId_materia INTEGER 4 X Identificador de la materiaPorcentaje_mat SMALLINT 4 Porcentaje de certeza con que un

profesor puede impartir una materia

Tabla PERFILESFuncioacuten Tabla que contiene una relacioacuten de todas las caracteriacutesticas de las materias

caracteriacutesticas necesarias para poder impartirlas es al mismo tiempo la tabla quecontiene la relacioacuten general de los conocimientos que poseen los profesores

Lista de columnas de la tabla PERFILESNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_perfil COUNTER 4 X Identificador del perfil paraasignaciones de materias acatedraacuteticos

Id_tipo INTEGER 4 X Identificador del tipo del perfilDescripcion_perfil Text(60) 60 Descripcioacuten de una caracteriacutestica del

perfil de una materia o un catedraacutetico

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla PERFIL_CATEDRATICOFuncioacuten Tabla que contiene el perfil de todos los catedraacuteticos (pueden llamarse las reglas) del

Sistema Experto que recomienda profesores para las materias el perfil de un catedraacuteticoesta definido por los conceptos que domina de las materias

Lista de columnas de la tabla PERFIL_CATEDRATICONombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_catedratico SMALLINT 4 X Identificador del catedraacutetico paradefinicioacuten de su perfil acadeacutemico

Id_perfil INTEGER 4 X Identificador del perfil que define aun catedraacutetico

Prioridad_perfil_cate SMALLINT 4 Porcentaje en que contribuye elperfil especificado en la definicioacutendel catedraacutetico

Tabla PERFIL_MATERIAFuncioacuten Esta tabla almacena las reglas que definen el perfil de una materia contiene las

caracteriacutesticas y temas que forman el temario de la materia

Lista de columnas de la tabla PERFIL_MATERIANombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materia en laregla de la materia

Id_perfil INTEGER 4 X Identificador del perfilperteneciente a una materia

Prioridad_perfil_mat INTEGER 4 Porcentaje en que contribuye esteperfil particular a definir unamateria

Tabla PROF_PARA_MATFuncioacuten Esta tabla almacena la inferencia del Sistema Experto para determinar cuales son los

mejores profesores para impartir una materia contiene para cada asignatura una lista delos profesores y el porcentaje de certeza con que pueden desempentildearse si la imparten

Capiacutetulo 4 Anaacutelisis y Disentildeo

Lista de columnas de la tabla PROF_PARA_MATNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de materiaId_catedratico SMALLINT 4 X Identificador de catedraacuteticoPorcentaje_cate SMALLINT 4 de certeza con que el catedraacutetico X

puede impartir la materia Y

Tabla POBLACIONFuncioacuten La tabla es la maacutes importante para el moacutedulo de Algoritmo Geneacutetico porque almacena los

datos de cada individuo hipoacutetesis o versioacuten que son generados ya sea por la poblacioacuteninicial aleatoria o por los diversos operadores geneacuteticos contiene copias (versiones) delcondensado de horarios con aulas aleatorias

Lista de columnas de la tabla POBLACIONNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materiaGrupo Text(4) 4 Grupo de la materiaId_catedratico INTEGER 4 X Identificador del catedraticoAula Text(4) 4 X Nombre del aula (edificio + numero)Hora_inicio INTEGER 4 Hora de inicio del grupoHora_lunes Text(6) 6 Hora inicio del lunesHora_martes Text(6) 6Hora_miercoles Text(6) 6Hora_jueves Text(6) 6Hora_viernes Text(6) 6Version INTEGER 4 X Nuacutemero de la versioacuten o hipoacutetesisPeriodo Text(10) 10 Periodo o semestre del grupoAnio INTEGER 4 Antildeo del grupo

Tabla RAMA_MATERIAFuncioacuten La tabla almacena la clasificacioacuten de las materias de acuerdo a las ciencias a la que

pertenecen

Lista de columnas de la tabla RAMA_MATERIANombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_rama COUNTER 4 X Identificador de la rama de unamateria (clasificacioacuten)

Nombre_rama Text(30) 30 Descripcioacuten de la rama de unamateria

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla REGLAS

Funcioacuten Esta tabla almacena las reglas utilizadas para generar los grupos que se deben ofertar elproacuteximo semestre indicando para cada regla el tipo de ajuste que debe aplicarse

Lista de Columnas de la Tabla REGLASNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Descripcion Text(70) 70 Descripcioacuten de la regla para ajustarel nuacutemero de grupos

Id_regla COUNTER 4 X Identificador de la reglaId_ajuste INTEGER 4 X Identificador del tipo de ajuste que

se aplica cuando esta regla sedispara para alguna materia

Tot_peso INTEGER 4 Total de los pesos de lascaracteriacutesticas de esta regla

Tabla SERVICIOS_ESCOLARESFuncioacuten En esta tabla se almacenan los datos estadiacutesticos de cada materia que provienen de

Servicios Escolares para el caacutelculo del nuacutemero de grupos que deben abrirse para elproacuteximo semestre contiene tambieacuten los paraacutemetros proporcionados por el SistemaExperto para realizar el ajuste al nuacutemero de grupos calculado inicialmente

Lista de columnas de la tabla SERVICIOS_ESCOLARESNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materiaINSCRITOS SMALLINT 4 Nuacutemero de alumnos inscritos

actualmente en el grupoNO INSCRITOS SMALLINT 4 Nuacutemero de alumnos que pueden

cursar la materia pero no seinscribieron

SIMULACION SMALLINT 4 Simulacioacuten de Servicios Escolaresde alumnos que podraacuten cursar lamateria

PROXIMOSEMESTRE

SMALLINT 4 Resultado del calculo de ServEscolares de alumnos que cursaraacutenla materia

GRUPOSREQUERIDOS

DOUBLE 4 Grupos requeridos para abrirproacuteximo semestre seguacuten caacutelculosiniciales

Indice dereprobacion

DOUBLE 4 Indice de reprobacioacuten de la materia

periodo Text(7) 7 Periodo de caacutelculo de horarios actual(semestre ene-jun o ago-dic)

Capiacutetulo 4 Anaacutelisis y Disentildeo

antildeo INTEGER 4 Antildeo de caacutelculo de horariosGrupos ajustado SMALLINT 4 Nuacutemero de grupos a solicitar para

abrir proacuteximo semestreAlumnos ajustado SMALLINT 4 Caacutelculo final del numero de alumnos

del proacuteximo semestre en estamateria

Id_ajuste INTEGER 4 X Tipo del ajuste aplicado por elSistema Experto al campogrupos_requeridos

Id_regla SMALLINT 4 X Regla que se disparo para realizar elajuste

Tabla TIPO_HORARIOFuncioacuten Esta tabla almacena los formatos de los distintos tipos de horario que existen y se ofrecen

para cada materia horarios de 2345 diacuteas a la semana y de 123 o 4 horas por diacutea

Lista de columnas de la tabla TIPO_HORARIONombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Tipo_horario COUNTER 4 X Identificador del tipo de horarioDescripcion Text(20) 20 Descripcioacuten del tipo de horarioLunes SMALLINT 4 Nuacutemero de horas del lunesMartes SMALLINT 4 Nuacutemero de horas del martesMiercoles SMALLINT 4 Nuacutemero de horas del mieacutercolesJueves SMALLINT 4 Nuacutemero de horas del juevesViernes SMALLINT 4 Nuacutemero de horas del viernesSabado SMALLINT 4 Nuacutemero de horas del saacutebado

Tabla TIPO_PERFILFuncioacuten Aquiacute se almacena una clasificacioacuten de los perfiles de acuerdo a la rama de conocimiento

a la que pertenecen

Lista de columnas de la tabla TIPO_PERFILNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_tipo COUNTER 4 X Identificador del tipo de perfilTipo_perfil Text(30) 30 Descripcioacuten del tipo de perfil de los

catedraacuteticos o las materias

Capiacutetulo 4 Anaacutelisis y Disentildeo

456 Lista de funciones o programas

Nombre Programa Descripcioacuten del programa

Ajustes Datos generales de los tipos de ajustes que se aplican al nuacutemero degrupos por abrir al dato de Servicios Escolares

Aulas Captura los datos de las aulas disponibles para claseCaptura_horarios Este programa realiza los cambios posteriores a la generacioacutenCarreras Captura los datos de las carreras del tecnoloacutegicoCatedraticos Datos generales de los catedraacuteticosClonacion Obtiene una copia (clon) del mejor individuo de una generacioacutenCons_ajuste Muestra yo imprime los datos generales de los ajustesCons_aulas Emite una pantalla de consulta general de aulasCons_captura_horarios Muestra una pantalla de consulta de los horarios generadosCons_carrera Despliega yo imprime las carrerasCons_catedratico Muestraimprime los datos generales de los catedraacuteticosCons_criterio Formulario que muestra yo despliega los criterios generalesCons_critXmat Muestra yo imprime los criterios de una materiaCons_critXregla Despliegaimprime los criterios que forman una reglaCons_gpos_abrir Explicacioacuten de la inferencia realizada (reglas disparadas)Cons_hist_crit Muestra las reglas de produccioacuten de los criteriosCons_materia Pantalla que despliega yo imprime datos de las materiasCons_materia_gral Pantalla de consulta general de los datos de materiasCons_perf_cate Consultaimprime los datos del perfil acadeacutemico de los

catedraacuteticosCons_perf_mate Consultaimprime los datos del perfil acadeacutemico de las materiasCons_perfil Muestraimprime datos de los perfilesCons_perfiles Consulta a la lista de perfiles o caracteriacutesticas Cons_perfilxmat Consulta a las reglas de produccioacuten del perfil de una materiaCons_rama Consulta a la lista de ramas (clasificacioacuten de las materias)Cons_reglas Consulta a la base de reglas para ajustar nuacutemero de gruposCons_serv_esc Consulta a las tablas que tienen informacioacuten de Servicios

EscolaresCons_serv_escol Pantalla que muestra yo imprime los datos estadiacutesticos de Serv

EscCons_tipo_perfil Consulta a los tipos de perfil (clasificacioacuten de perfiles)Crit_X_mat Formulario que captura los criterios pertenecientes a una materiaCrit_X_regla Captura los criterios que forman una regla de produccioacutenCriterios Pantalla que captura el conocimiento de criterios para el SECriteriosxmat Pantalla de captura para los criterios por materiaCruzamiento Programa que realiza la combinacioacuten (cruza) de individuos de la

poblacioacuten en el Algoritmo Geneacutetico

Capiacutetulo 4 Anaacutelisis y Disentildeo

Evaluacion Programa que realiza la creacioacuten del cromosoma de evaluacioacuten alevaluar las versiones de horarios de una generacioacuten

Explica_ajustes Moacutedulo de explicacioacuten del porque se aplicoacute determinado ajuste auna materia

Explica_mat_p_prof Explicacioacuten del porque una materia puede ser impartida por unprofesor con cierto grado de certidumbre

Explica_prof_p_mat Explicacion del porque un profesor puede impartir una materiacon cierto grado de certidumbre

Genera_horarios Sistema que utiliza Programacioacuten Loacutegica de Restricciones paragenerar los paquetes de horarios de un semestre

Genera_paquete Muestra el paquete generado por el procesoGrupo_nuevo Programa que va generando los paquetesGrupos_por_abrir Inferencia realizada para definir el ajuste aplicado a los grupos

definidos por Servicios EscolaresHistorial_criterios Captura los criterios necesarios para hacer una reglaHistorial_materia Captara los criterios por materiaMat_para_prof Inferencia realizada para determinar que profesores pueden

impartir una materiaMaterias Actualizacioacuten al archivo datos generales de las materiasMenu_algoritmos_geneticos Menuacute del moacutedulo para asignar aula a los gruposMenu_generacion_grupos Menuacute del Sistema Experto para definir cuantos grupos abrirMenu_asigna_horario Menuacute del moacutedulo asignacioacuten de horarioMenu_principal Menuacute principal del sistemaMenu_sel_catedra Menuacute del Sistema Experto para seleccioacuten de catedraacuteticos a

materiaMutacion Programa que hace la modificacioacuten de informacioacuten de aulas de

alguna versioacuten (versioacuten)Perfil_catedratico Captura el perfil acadeacutemico de los catedraacuteticosPerfil_materia Captura el perfil acadeacutemico de las materiasPerfiles Datos generales del perfil acadeacutemico de materias y catedraacuteticosPoblacion_inicial Programa que genera versiones de horarios y que de manera

aleatoria le va asignando aula a los gruposPortada_principal Es la ventana de entrada al sistemaProf_para_mat Inferencia realizada para determinar que materias pueden ser

impartidas por un profesorRama Programa que capturas las posibles ramas de los materiasReglas Datos generales de las reglas de produccioacuten para definir el No de

grupos por abrirSeleccioacuten Proceso que selecciona las mejores versiones de horarios (mejores

individuos) y elimina las menos aptasServ_escolares Pantalla de captura de los datos estadiacutesticos de Servicios EscolaresTipo_perfil Programa que captura la clasificacioacuten de los perfiles de materias y

profesores

Capiacutetulo 4 Anaacutelisis y Disentildeo

457 Diagrama de Arquitectura (Menuacutes)

Menuacute general

Menuacute Grupos porabrir

MenuacuteGeneracioacuten de

horarios

MenuacuteAsignacioacuten de

aulas

Datos de materias

Estadiacutesticos Serv Esc

Criterios

Criterios por materia

Reglas

Criterios por regla

Ajustes

Carreras

Nuacutemero de grupos

MenuacuteSeleccioacuten decatedraacuteticos

Genera paquete

Genera horarios

Datos generalesgrupos

Datos de aulas

Genera poblacioacuteninicial

Evaluacioacuten

Seleccioacuten

Cruzamiento

Clonacioacuten

Mutacioacuten

Horarios finales

Perfiles

Perfil de las materias

Perfil de catedraacuteticos

Catedraacuteticos

Perfil de loscatedraacuteticos

Asignacioacuten materia aprofesor

Asignacioacuten profesor amateria

Capiacutetulo 4 Anaacutelisis y Disentildeo

Capiacutetulo 5 Implementacioacuten del sistema

CAPIacuteTULO 5

IMPLEMENTACIOacuteN

51 Pantallas del sistema

La Figura 51 muestra la portada inicial del proyecto Contiene los logotipos de las tresinstituciones participantes y el nombre del proyecto

Fig 51 Portada inicial del proyecto

La Figura 52 es la pantalla que proporciona la informacioacuten de los autores del proyecto

Es el botoacutende entrada alsistema

Botoacuten deinformacioacuten delos autores

Capiacutetulo 5 Implementacioacuten del sistema

Fig 52 Acerca del sistema

La Figura 53 muestra el menuacute principal del proyecto contiene y 4 moacutedulos La primeraopcioacuten incluye los moacutedulos administrativo y generacioacuten de grupos la segunda opcioacutenincluye seleccioacuten de maestro y seleccioacuten de materia

Fig 53 Menuacute principal del proyecto

Moacutedulos delproyecto

Cuadro queproporcionalainformacioacutende la opcioacutensentildealada porel cursor

Capiacutetulo 5 Implementacioacuten del sistema

En la Figura 54 se tiene la pantalla del menuacute que agrupa los programas del moacuteduloadministrativo y Sistema Experto para determinar el nuacutemero de grupos por abrir seguacutenlos caacutelculos realizados con los datos de Servicios Escolares y el ajuste a ese dato

Fig 54 Menuacute grupos por abrir

Este programa del moacutedulo administrativo (Figura 55) sirve para capturar la informacioacutengeneral de las asignaturas que componen una carrera

Fig 55 Materias

Programas delos moacutedulos

Descripcioacutende laactividad delprogramaseleccionado

Nombre de laasignatura

Nuacutemero dehoraspraacutecticas yteoacutericas

Alumnos por grupopara calcularcantidad de grupos

Dato para formarpaquetes porsemestre

Icono quehabilita lacaptura denuevosdatos

Icono queregresa alMenuacute anterior

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 56 es un ejemplo de la consulta de datos en pantalla

Fig 56 Consulta Materias

La Figura 57 es la pantalla donde se capturan los datos estadiacutesticos provenientes deServicios Escolares contiene la informacioacuten necesaria para realizar el caacutelculo originaldel nuacutemero de grupos de cada asignatura que se debe abrir para ofertarse a los alumnosel siguiente semestre la foacutermula mostrada proporciona tal dato

Botoacuten queregresa elcontrol alprogramaque loinvocoacute

Alumnosesperados parael proacuteximo

Fccg

Datosestadiacutesticos

Fig 57 Pantalla Servicios Es

semestre

oacutermula paraaacutelculoantidad-rupos

Caacutelculosgeneral y pormateria

Grupos (datoestadiacutestico)

colares

Capiacutetulo 5 Implementacioacuten del sistema

En la Figura 58 se muestra la pantalla de consulta de los datos estadiacutesticosproporcionados por Servicios Escolares

Fig 58 Pantalla consulta Servicios Escolares

Esta pantalla captura las caracteriacutesticas por materia que dan origen al conocimientonecesario para definir el tipo de ajuste que se aplica al dato del nuacutemero de gruposproporcionado por los caacutelculos estadiacutesticos de la pantalla anterior

Criterios de unamateria

Fig 59 Pantalla criterios por materia

Grado deimportancia de esacaracteriacutestica para la

Capiacutetulo 5 Implementacioacuten del sistema

En la Figura 510 se muestra un ejemplo de la consulta a la base de datos del sistema enla parte de criterios por materia

Fig 510 Pantalla consulta criterios por materia

Esta pantalla (fig 511) proporciona al sistema la capacidad de capturar modificarborrar e imprimir las carreras del Instituto Tecnoloacutegico de Zacatepec

Fig 511 Pantalla carreras

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 512 proporciona al sistema la capacidad para capturar los criterios(conocimientos) del experto para definir a cada materia

Fig 512 Pantalla criterios

La Figura 513 muestra un ejemplo de consulta al archivo de los criterios capturados enel sistema

Fig 513 Pantalla consulta criterios

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 514 muestra la pantalla de captura de las reglas que componen el SistemaExperto para determinar el tipo de ajuste que se aplicaraacute al dato estadiacutestico del nuacutemerode grupos que se van a abrir el proacuteximo semestre cada regla tiene asignado un tipo deajuste

Fig 514 Pantalla reglas

La Figura 515 muestra un ejemplo de la consulta al archivo de las reglas que utiliza elSistema Experto para determinar nuacutemero de grupos por ofertar el proacuteximo semestre

Fig 515 Pantalla consulta reglas

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 516 muestra la pantalla de captura al archivo de ajustes noacutetese que ladescripcioacuten explica en extenso la accioacuten que se realiza al aplicar este ajuste provenientede una regla disparada por los criterios pertenecientes a la definicioacuten de una materia

Fig 516 Pantalla ajustes

La Figura 517 muestra la pantalla de la consulta a los ajustes que contiene el sistema

Fig 517 Pantalla consulta ajustes

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 518 muestra la pantalla que captura los criterios para cada regla Una reglaestaacute formada por el mismo tipo de criterios que definen a las materias

Criteriosde una

Fig 518 Pantalla criterios por regla

La Figura 519 muestra el ejemplo de una consulta de los criterios que definen a unaregla

Fig 519 Pantalla consulta criterios por regla

Reglas de produccioacuten Criterios por regla

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 520 es la pantalla maacutes importante de moacutedulo de generacioacuten de grupos porquees donde se realiza la inferencia para calcular el tipo de ajuste que se va a aplicar a cadamateria con base en las reglas que se disparan y que hacen match los criterios de unaregla y los criterios de una materia

Fig 520 Pantalla caacutelculo de ajustes

Esta pantalla (Figura 521) ofrece una explicacioacuten mostrando los criterios que definenuna materia y su correspondiente regla disparada mostrando los criterios de la regla quehacen match con los criterios de la materia

Fig 521 Pantalla explicacioacuten de la inferencia

Asignaturaa la que sele aplicaraacuteel ajuste

Regla quese disparaseguacutencriterios

Tipo deajuste quese aplica

Dato seguacutenestadiacutestico

Datos seguacutenajuste delSistemaExperto

Inferenciageneral

Inferenciaindividual

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 522 muestra el formulario que forma los paquetes de materias seguacuten laretiacutecula de una carrera muestra el nuacutemero de grupos por cada materia que se van aformar y hace los paquetes asignando los grupos AA AB AC AD

Fig 522 Pantalla inicial del moacutedulo generacioacuten de horarios

La Figura 523 es el formulario del moacutedulo Programacioacuten Loacutegica de Regenera los horarios por paquete satisfaciendo las restricciones para forlibre de choques continuo (sin horas muertas) cumpliendo las horas por m

Fig 523 Pantalla principal del moacutedulo generacioacuten de horari

Semestre al que sele formaraacuten lospaquetes

Paquetes generadosHora de iniciode clases decada grupo

Materias delsemestre

Nuacutemero de gruposal que se lesgeneraraacute horario

MateriaPaquete

Nuacutemero dehoras por diacutea

Botonesque invocanal moacutedulogeneradorde horarios

stricciones quemar un horarioateria etc

Hora de iniciode la materia

os

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 524 muestra el moacutedulo para asignar aula a los horarios que ya tienen materiagrupo y hora

Fig 524 Pantalla principal del menuacute Algoritmos Geneacuteticos

Esta pantalla (Figura 525) se utiliza para hacer altas bajas consulta y modificaciones alos grupos que se les va a dar aula

Fig 525 Pantalla de administracioacuten de grupos

Periodode loshorarios

Hora iniciodel grupo

Hora por diacutea

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 526 muestra una consulta de la pantalla administracioacuten de grupos

Fig 526 Pantalla de consulta de administracioacuten de grupos

La Figura 527 muestra la pantalla para actualizar las aulas disponibles por las personasque generan los horarios estas aulas estaacuten disponibles para que el Algoritmo Geneacuteticolas utilice para asignarles grupos durante el proceso

Fig 527 Pantalla del control de aulas

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 528 muestra la consulta de las aulas que utiliza el moacutedulo generacioacuten deaulas

Fig 528 Pantalla de consultas del control de aulas

La Figura 529 muestra la pantalla que genera la poblacioacuten inicial a partir de los datosgenerales proveniente de los moacutedulos anteriores

Fig 529 Pantalla de genera poblacioacuten inicial

Nuacutemero dehipoacutetesisversiones oindividuos

Aula aleatoriagenerada

Este botoacuteninicia lageneracioacutende las nversionesde horarios

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 530 muestra la pantalla que evaluacutea las versiones originadas y genera paracada una de ellas un cromosoma cuyos genes contienen la informacioacuten obtenida

Fig 530 Pantalla de evaluacioacuten de versiones

La Figura 531 muestra el formulario del proceso de seleccioacuten de las mejores versionesde horarios toma aquellas que tienen menor numero de choques y mayor espacio deocupacioacuten de aulas

Fig 531 Pantalla del proceso de seleccioacuten

Cantidad deversiones quesobreviviraacuten

Cromosomas delos mejoresindividuos

Botoacuten queinicia elproceso deseleccioacuten

Botoacuten queinicia elproceso deeliminacioacuten

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 532 muestra la pantalla del proceso de clonacioacuten donde se selecciona la mejorversioacuten y se obtiene un clon ideacutentico con un nuevo nuacutemero de versioacuten

Fig 532 Pantalla del proceso de clonacioacuten

La Figura 533 muestra la pantalla del proceso de mutacioacuten utilizado para hacer elcambio ldquomutarrdquo los datos de una versioacuten para romper alguacuten ciclado de la tendencia haciael resultado o simplemente para acelerar el proceso de optimizacioacuten

Cromosomasde versionesmaacutes aptas

Nuacutemero demejor versioacuten

Poblacioacutenversiones

Cromosomamuestra lasmejoresversiones

Aulas quepueden mutarse

Botoacuten queinicia elproceso demutacioacuten

Nuacutemero deversioacuten

Fig 533 Pantalla de mutacioacuten

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 534 muestra la pantalla donde se realiza el cruzamiento utilizando plantillaspredeterminadas dirigiendo la cruza de versiones por paquetes de materias agrupadas porsemestre y cada plantilla genera una nueva versioacuten con la combinacioacuten de fragmentosde varias versiones

Fig 534 Pantalla del proceso de cruzamiento

La Figura 535 permite la seleccioacuten y enviacuteo de la mejor versioacuten de horarios y adaptarloal moacutedulo administrativo para su distribucioacuten y publicacioacuten

Fig 535 Horarios finales

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 536 muestra el menuacute de los moacutedulos que sugiere maestros para impartir unaasignatura y sugerencia de asignatura para alguacuten maestro

Fig 536 Pantalla menuacute seleccioacuten de catedraacuteticos

La Figura 537 muestra la pantalla para la captura de caracteriacutesticas de losconocimientos requeridos para dar una materia que son las mismas caracteriacutesticas quedefinen los conocimientos de un profesor para impartir las materias

Fig 537 Pantalla de perfiles

Clasificacioacutende los perfiles

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 538 muestra una consulta de los perfiles agrupados por tipo

Fig 538 Pantalla de consulta perfiles

La Figura 539 muestra la pantalla en la que se definen los conocimientos requeridospara poder impartir una asignatura de acuerdo al perfil y contenido temaacutetico

Fig 539 Pantalla perfiles de las materias

La Figura 540 muestra un ejemplo de la consulta al perfil de una materia

Importancia de lacaracteriacutestica en la materia

Capiacutetulo 5 Implementacioacuten del sistema

Fig 540 Pantalla consulta perfiles de las materias

La Figura 541 es utilizada para capturar los datos de los catedraacuteticos que imparten lasasignaturas de una carrera

Fig 541 Pantalla captura datos de catedraacuteticos

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 542 es una muestra de la consulta al archivo de los catedraacuteticos

Fig 542 Pantalla consulta datos de catedraacuteticos

La Figura 543 muestra la pantalla en que se captura el perfil de los catedraacuteticos elperfil son los conocimientos que tiene el profesor que lo capacitan para impartir algunaasignatura

Fig 543 Pantalla captura perfil de catedraacuteticos

Conocimientosdel profesor

Barra deseleccioacuten deperfiles

Grado dedominio deltema

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 544 muestra una consulta tiacutepica al archivo de perfiles de los catedraacuteticos

Fig 544 Pantalla consulta perfil de catedraacuteticos

La Figura 545 muestra la pantalla de inferencia final que sugiere quienes son loscatedraacuteticos maacutes capacitados para impartir una materia haciendo la inferencia mediantela buacutesqueda de matchs entre el perfil de la asignatura y el perfil del catedraacutetico

Fig 545 Pantalla muestra inferencia catedraacuteticos para materia

Candidatos aimpartir lamateria

Botoacuten del proceso deinferencia generalPorcentaje de certeza con

que puede impartirla

Botoacuten delprocesodeinferenciaparticular

Botoacuten queinvoca almoacutedulo deexplicacioacuten

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 546 muestra la pantalla de explicacioacuten donde se indican los perfiles de lamateria y el perfil del profesor

Fig 546 Pantalla explicacioacuten porque un maestro puede dar una materia

La Figura 547 muestra el resultado de la inferencia del proceso que sugiere las materiasque puede impartir un profesor con base en el perfil de la materia y el perfil del profesor

Fig 547 Pantalla materias que puede impartir un profesor

Posibles materia aimpartir Porcentaje de certeza con

que puede impartirlaBotoacuten del proceso deinferencia general

Botoacuten delprocesodeinferenciaparticular

Botoacuten queinvoca almoacutedulo deexplicacioacuten

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 548 muestra la pantalla de explicacioacuten donde se indican el perfil de la materiay el perfil del profesor

Fig 548 Pantalla de explicacioacuten porque un profesor puede dar una materia

Capiacutetulo 5 Implementacioacuten del sistema

Capiacutetulo 6 Pruebas y Resultados

CAPIacuteTULO 6

PRUEBAS Y RESULTADOS

61 Pruebas del sistema

Se pueden detectar dentro del desarrollo de sistemas las actividades para realizarpruebas las producidas durante la etapa de requerimientos de disentildeo preliminar y las dedisentildeo detallado Clasificadas de otra manera eacutestas pueden ser funcionales deintegracioacuten y de implementacioacuten

La finalidad de realizar Pruebas funcionales es detectar errores que pudieran habersedado durante las fases de anaacutelisis y de especificacioacuten Por otro lado ellas pueden ayudara probar si el disentildeo es correcto ya que esta fase en sus dos niveles preliminar ydetallado estaacute basada en el anaacutelisis y especificacioacuten de requerimientos del sistema Estaactividad es guiada por los objetivos y requerimientos plasmados Se busca en estaprueba la posibilidad de que se haya incurrido en errores de conceptualizacioacuten yo deespecificacioacuten Las pruebas se organizan tomando como guiacutea las diferentes opciones delsistema final

Las Pruebas de integracioacuten se realizan cuando se procede a interconectar los diferentessubsistemas que constituyen el futuro sistema Como es conocido un sistema puede serdesarrollado por diferentes personas Por esta razoacuten es de suma importancia probar lainterconexioacuten de los diferentes subsistemas y asiacute verificar que ha sido realizada demanera correcta

Las Pruebas de implementacioacuten o codificacioacuten son las que se realizan directamentesobre los programas que se estaacuten desarrollando durante la fase de implementacioacuten Estosmoacutedulos o programas a su vez constituyen subsistemas Por esta razoacuten la integracioacuten delos diferentes moacutedulos que forman un subsistema deben ser probados Estas pruebasdeben estar basadas en la especificacioacuten de disentildeo preliminar y detallado [Gerez 1985]

Los siguientes rubros describen las pruebas maacutes importantes que se consideraron paravalidar el sistema las pruebas funcionales Las pruebas de implementacioacuten se realizarondurante el desarrollo de la codificacioacuten de los diferentes moacutedulos

Capiacutetulo 6 Pruebas y Resultados

62 PRUEBAS DEL SISTEMA

621 PRUEBA 1 AacuteREAS DE MENUacuteS

Objetivo Guiar al usuario en el desarrollo del proceso Esta prueba verifica que elsistema tenga como opciones principales y submenuacutes los sentildealados en la definicioacuten derequerimientos

Criterios de aceptacioacuten Cada prueba verifica que el sistema produzca los resultadossentildealados en la definicioacuten de requerimientos

Procedimiento de la prueba A continuacioacuten se despliegan las pantallascorrespondientes a los menuacutes principales y submenuacutes Las opciones principales delproyecto son dos Menu Principal y Datos de los autores

Resultado de la prueba Los resultados fueron satisfactorios En todas las opcionesactivadas el sistema presentoacute los submenuacutes definidos en la etapa de requerimientos

La Figura 61 muestra la portada inicial del proyecto Contiene los logotipos de las tresinstituciones participantes y el nombre del proyecto

Fig 61 Portada inicial del proyecto

Es el botoacutende entrada alsistema

Botoacuten deinformacioacutende los autores

Capiacutetulo 6 Pruebas y Resultados

La Figura 62 muestra el menuacute principal del proyecto y contiene 4 moacutedulos La primeraopcioacuten incluye los moacutedulos administrativo y generacioacuten de grupos la segunda opcioacutenincluye seleccioacuten de maestro y seleccioacuten de materia

Fig 62 Menuacute principal del proyecto

En la Figura 63 se tiene la pantalla del menuacute que agrupa los programas del moacuteduloadministrativo y Sistema Experto para determinar el nuacutemero de grupos por abrir seguacutenlos caacutelculos realizados con los datos de Servicios Escolares y el ajuste a ese dato

Fig 63 Menuacute grupos por abrir

Moacutedulos delproyecto

Cuadro queproporcionalainformacioacutende la opcioacutensentildealada porel cursor

Programas delos moacutedulos

Descripcioacutende laactividad delprogramaseleccionado

Capiacutetulo 6 Pruebas y Resultados

La Figura 64 muestra el menuacute de los moacutedulos que sugiere maestros para impartir unaasignatura y sugerencia de asignatura para alguacuten maestro

Fig 64 Pantalla menuacute seleccioacuten de catedraacuteticos

La Figura 65 muestra el moacutedulo para asignar aula a los horarios que ya tienen materiagrupo y hora

Fig 65 Pantalla principal del menuacute Algoritmos Geneacuteticos

Capiacutetulo 6 Pruebas y Resultados

622 PRUEBA 2 VALIDACIOacuteN DE ENTRADAS

Objetivo Evitar peacuterdidas de tiempo con entradas erroacuteneas de datos y resultados sinvalidez

Criterios de aceptacioacuten Esta prueba deberaacute mostrar de manera exacta la informacioacutenal seleccionar la opcioacuten deseada

Procedimiento de la prueba Se verifica que todas las cajas de texto tengan el dato quese pide y una vez dados todos los datos se guardan para que estos datos posteriormentesean procesados por el sistema y almacenen los datos correctos

Resultado de la prueba Los resultados fueron satisfactorios En todas las opcionesactivadas el sistema presentoacute los resultados correctos a cada opcioacuten Ademaacutes losdesplegados de mensajes de error se presentaron de manera correcta en todas laspruebas

La Figura 66 muestra la captura de datos de una asignatura y enviacutea el correspondientemensaje de error si una caja de texto se encuentra vaciacutea

Fig 66 Pantalla de captura de datos de las Materias

Muestra elmensaje deerror si esque hacefalta alguacuten

Capiacutetulo 6 Pruebas y Resultados

La Figura 67 muestra una pantalla de captura de datos asignando criterios a una materiay valida la no duplicidad de criterios en esa materia se enviacutea el correspondiente mensajede error si una entrada ya fue capturada

Fig 67 Pantalla de captura de datos de Criterios por Materia

La Figura 68 muestra una pantalla de captura de datos de las carreras al encontrar unregistro ya capturado muestra el mensaje de error si una carrera ya fue capturada

Fig 68 Pantalla de captura de datos de Carreras

Muestra elmensajede error sies que yaexiste elregistro

Muestra elmensaje deerror si esque yaexiste elregistro

Capiacutetulo 6 Pruebas y Resultados

623 PRUEBA 3 DESPLEGADO DE RESULTADOS

6231 MOacuteDULO DE GENERACIOacuteN DE GRUPOS POR ABRIR

Objetivo Proporcionar los datos que el moacutedulo pide para que posteriormente elsistema genere el nuacutemero de grupos sugerido por abrir para cada materia

Criterios de aceptacioacuten Esta prueba muestra la lista de grupos que se deben abrirdespueacutes de aplicar los criterios del Sistema Experto

Procedimiento de la prueba Una vez que se proporcionan los datos que el SistemaExperto requiere el sistema generaraacute una lista de los grupos que se deben abrir elproacuteximo semestre

Resultado de la prueba Los resultados fueron satisfactorios En todos los casospresentados el sistema generoacute la lista en forma satisfactoria y con la informacioacutencorrecta

La Figura 69 es la pantalla maacutes importante de moacutedulo de generacioacuten de grupos porquees donde se realiza la inferencia para calcular el tipo de ajuste que se va a aplicar a cadamateria con base en las reglas que se disparan y que hacen match los criterios de unaregla y los criterios de una materia

Asignaturaa la que sele aplicaraacuteel ajuste

Regla quese disparaseguacutencriterios

Tipo deajuste quese aplica

Inferenciageneral

Datoseguacuten

Fig 69 Pantalla caacutelculo de ajustes

Datos seguacutenajuste delSistemaExperto

Inferenciaindividual

Capiacutetulo 6 Pruebas y Resultados

6232 MOacuteDULO DE GENERACIOacuteN DE HORARIOS

Objetivo Proporcionar los datos que el moacutedulo pide para que posteriormente elsistema genere el horario por semestre de las materias de una carrera

Criterios de aceptacioacuten Esta prueba debe mostrar los horarios para las materias sinerrores sin choques de hora en un paquete

Procedimiento de la prueba Recibe como entrada cuantos grupos abrir de cadamateria en cada semestre y genera primero los paquetes posteriormente a cada paquetede materias le asigna la hora por materia

Resultado de la prueba Los resultados fueron satisfactorios En todos los casospresentados el sistema generoacute los horarios correspondientes

La Figura 610 muestra el formulario que forma los paquetes de materias seguacuten laretiacutecula de una carrera muestra el nuacutemero de grupos por cada materia que se van aformar y hace los paquetes asignando los grupos AA AB AC AD

Fig 610 Pantalla inicial del moacutedulo generacioacuten de horarios

Semestre al que sele formaraacuten lospaquetes

Paquetes generadosHora de iniciode clases decada grupo

Materias delsemestre

Nuacutemero de grupospor al que se lesgeneraraacute horario

Botonesque invocanal moacutedulogeneradorde horarios

Capiacutetulo 6 Pruebas y Resultados

La Figura 611 es el formulario del moacutedulo Programacioacuten Loacutegica de Restricciones quegenera los horarios por paquete satisfaciendo las restricciones para formar un horariolibre de choques continuo (sin horas muertas) cumpliendo las horas por materia etc

Fig 611 Pantalla princip

6233 MOacuteDULO ASIGNACIOacuteN D

Objetivo Utilizar los datos generadoaulas a los paquetes de materias

Criterios de aceptacioacuten Esta pruebaasignacioacuten de aula sin choques

Procedimiento de la prueba Se genAlgoritmos Geneacuteticos durante variachoques en el aula

Resultado de la prueba Los resupresentados el sistema generoacute las aula

MateriaPaquete

Nuacutemero dehoras por diacutea

Hora de iniciode la materia

al del moacutedulo generacioacuten de horarios

E AULA

s en el moacutedulo anterior para hacer la asignacioacuten de

debe mostrar los horarios de las materias con una

eran las aulas utilizando los procedimientos de loss generaciones hasta lograr una generacioacuten sin

ltados fueron satisfactorios En todos los casoss correspondientes

Capiacutetulo 6 Pruebas y Resultados

La Figura 612 muestra la pantalla para actualizar las aulas disponibles por las personasque generan los horarios estas aulas estaacuten disponibles para que el Algoritmo Geneacuteticolas utilice para asignarles grupos durante el proceso

Fig 612 Pantalla del control de aulas

La Figura 613 muestra la consulta de las aulas que utiliza el moacutedulo generacioacuten deaulas

Fig 613 Pantalla de consultas del control de aulas

Capiacutetulo 6 Pruebas y Resultados

La Figura 614 muestra la pantalla que genera la poblacioacuten inicial a partir de los datosgenerales proveniente de los moacutedulos anteriores

Fig 614 Pantalla de genera poblacioacuten inicial

La Figura 615 muestra la pantalla que evaluacutea las versiones originadas y genera paracada una de ellas un cromosoma cuyos genes contienen la informacioacuten obtenida

Fig 615 Pantalla de evaluacioacuten de versiones

Nuacutemero dehipoacutetesisversiones oindividuos

Aula aleatoriagenerada

Este botoacuteninicia lageneracioacutende las nversionesde horarios

Capiacutetulo 6 Pruebas y Resultados

La Figura 616 muestra el formulario del proceso de seleccioacuten de las mejores versionesde horarios toma aquellas que tienen menor numero de choques y mayor espacio deocupacioacuten de aulas

Fig 616 Pantalla del proceso de seleccioacuten

La Figura 617 muestra la pantalla del proceso de clonacioacuten donde se selecciona la mejorversioacuten y se obtiene un clon ideacutentico con un nuevo nuacutemero de versioacuten

Fig 617 Pantalla del proceso de clonacioacuten

Cantidad deversiones quesobreviviraacuten

Cromosomas delos mejoresindividuos

Botoacuten queinicia elproceso deseleccioacuten

Botoacuten queinicia elproceso deeliminacioacuten

Cromosomasde versionesmaacutes aptas

Nuacutemero demejor versioacuten

Poblacioacutenversiones

Capiacutetulo 6 Pruebas y Resultados

La Figura 618 muestra la pantalla del proceso de mutacioacuten utilizado para hacer elcambio ldquomutarrdquo los datos de una versioacuten para romper alguacuten ciclado de la tendencia haciael resultado o simplemente para acelerar el proceso de optimizacioacuten

Fig 618 Pantalla de mutacioacuten

La Figura 619 muestra la pantalla donde se realiza el cruzamiento utilizando plantillaspredeterminadas dirigiendo la cruza de versiones por paquetes de materias agrupadas porsemestre y cada plantilla genera una nueva versioacuten con la combinacioacuten de fragmentosde varias versiones

Fig 619 Pantalla del proceso de cruzamiento

Cromosomamuestra lasmejoresversiones

Nuacutemero deversioacuten amutar

Aulas quepueden mutarse

Botoacuten queinicia elproceso demutacioacuten

Capiacutetulo 6 Pruebas y Resultados

La Figura 620 permite la seleccioacuten y enviacuteo de la mejor versioacuten de horarios y adaptarloal moacutedulo administrativo para su distribucioacuten y publicacioacuten

Fig 620 Horarios finales

6234 MOacuteDULO SELECCIOacuteN DE CATEDRATICOS

Objetivo Capturar los datos de los profesores y su perfil profesiograacutefico ademaacutescapturar los conocimientos necesarios para impartir una asignatura para poder sugerircual es el mejor catedraacutetico que puede impartir una asignatura

Criterios de aceptacioacuten Esta prueba debe mostrar la sugerencia de los mejorescatedraacuteticos para una materia y las mejores materias para un catedraacutetico

Procedimiento de la prueba Se daraacuten los datos iniciales de los maestros y el sistemadeberaacute generar una lista a partir de la inferencia del Sistema Experto respectivo yviceversa

Resultado de la prueba Los resultados fueron satisfactorios En todos los casospresentados el sistema infirioacute las materias y los catedraacuteticos correspondientes

Capiacutetulo 6 Pruebas y Resultados

La Figura 621 muestra la pantalla en que se captura el perfil de los catedraacuteticos elperfil son los conocimientos que tiene el profesor que lo capacitan para impartir algunaasignatura

Fig 621 Pantalla captura perfil de catedraacuteticos

La Figura 622 muestra la pantalla de inferencia final que sugiere quienes son loscatedraacuteticos maacutes capacitados para impartir una materia haciendo la inferencia mediantela buacutesqueda de matchs entre el perfil de la asignatura y el perfil del catedraacutetico

Fig 622 Pantalla muestra inferencia catedraacuteticos para materia

Conocimientosdel profesor

Barra deseleccioacuten deperfiles

Grado dedominio deltema

Botoacuten delprocesodeinferenciaparticular

Botoacuten queinvoca almoacutedulo deexplicacioacuten

Candidatos aimpartir lamateria Botoacuten del proceso de

inferencia generalPorcentaje de certeza conque puede impartirla

Capiacutetulo 6 Pruebas y Resultados

La Figura 623 muestra la pantalla de explicacioacuten donde se indican los perfiles de lamateria y el perfil del profesor

Fig 623 Pantalla explicacioacuten porque un maestro puede dar una materia

La Figura 624 muestra el resultado de la inferencia del proceso que sugiere las materiasque puede impartir un profesor con base en el perfil de la materia y el perfil del profesor

Fig 624 Pantalla materias que puede impartir un profesor

Posibles materia aimpartir Porcentaje de certeza con

que puede impartirlaBotoacuten del proceso deinferencia general

Botoacuten delprocesodeinferenciaparticular

Botoacuten queinvoca almoacutedulo deexplicacioacuten

Capiacutetulo 6 Pruebas y Resultados

La Figura 625 muestra la pantalla de explicacioacuten donde se indican el perfil de la materiay el perfil del profesor

Fig 625 Pantalla de explicacioacuten porque un profesor puede dar una materia

Capiacutetulo 6 Pruebas y Resultados

Capiacutetulo 7 Conclusiones y Trabajos Futuros

CAPIacuteTULO 7

CONCLUSIONES Y TRABAJOS FUTUROS

71 CONCLUSIONES

Los meacutetodos de programacioacuten lineal proporcionan una solucioacuten parcial al problema dela generacioacuten de horarios utilizan una ldquorecetardquo predefinida para lograr la optimizacioacutende la asignacioacuten de recursos como lo hace el meacutetodo Huacutengaro La Inteligencia Artificialsoluciona el problema utilizando la heuriacutestica el conocimiento y la experiencia de unexperto humano para solucionar el problema se decidioacute utilizar esta metodologiacutea paraexplorar una solucioacuten aproximada al problema

En el ITZ la generacioacuten de horarios se haciacutea de forma manual no se utilizaba ninguacutenmeacutetodo automatizado Al aplicar algunas teacutecnicas de la Inteligencia Artificial se halogrado generar de manera automatizada los horarios de las materias que se ofertaraacuten elproacuteximo semestre

La aplicacioacuten de varias ramas de la Inteligencia Artificial para la resolucioacuten delproblema de la generacioacuten de horarios viene a demostrar que si es posible generar uncondensado de horarios para el Instituto Tecnoloacutegico de Zacatepec que es una escuelade nivel superior y que estos horarios satisfacen adecuadamente las restricciones fuertesmedias y suaves Para ello fue necesaria la combinacioacuten de varias disciplinas de lacomputacioacuten para generar cada una de las partes que componen un horario y tambieacutenrecomendar los catedraacuteticos mas apropiados para impartir dichos grupos nuevamentequeda demostrado que la Inteligencia Artificial sirve para resolver problemas que lasteacutecnicas convencionales de computacioacuten consideran problema NP-completo

La utilizacioacuten de las teacutecnicas de los Sistemas Expertos para ajustar el nuacutemero de grupospor abrir el proacuteximo semestre permite aplicar el conocimiento y experiencia de lapersona encargada de elaborar los horarios y asiacute disminuir el nuacutemero de gruposcancelados el conocimiento e intuicioacuten del experto humano realizan un ajuste fino alnuacutemero de grupos y como puede notarse el sistema lo hace de manera similar

Para el moacutedulo de generacioacuten de los grupos y los horarios la utilizacioacuten de la teacutecnicallamada Programacioacuten Loacutegica de Restricciones permitioacute la satisfaccioacuten de lasrestricciones que hacen que los horarios sean considerados factibles para su aplicacioacuten a

Capiacutetulo 7 Conclusiones y Trabajos Futuros

los alumnos el proacuteximo semestre ya que los paquetes de materias por semestre tienenhorarios corridos y sin choques en horas nuacutemero de materias completo y buenadistribucioacuten de horas pares e impares

Se utilizoacute tambieacuten la teacutecnica de optimizacioacuten llamada Algoritmos Geneacuteticos pararealizar la asignacioacuten de aulas a cada grupo generado logrando con ello minimizarautomaacuteticamente el nuacutemero de choques de materias en aulas En las pruebas realizadasse logroacute que en la sexta generacioacuten de individuos ya soacutelo hubiera hasta un maacuteximo de 24choques lo que indicaba que soacutelo 4 oacute 5 grupos compartiacutean aula a la misma hora esto erafaacutecilmente corregible realizando una inspeccioacuten visual a la versioacuten de horarios final yajustando los uacuteltimos errores

Por uacuteltimo nuevamente se aplicaron los Sistemas Expertos en el moacutedulo de sugerenciade materias que puede impartir un maestro y en el moacutedulo maestros que pueden impartiruna determinada materia vale la pena comentar que durante las pruebas realizadas loscatedraacuteticos del departamento de Sistemas y Computacioacuten capturaban su perfilprofesiograacutefico y al pedir al sistema la sugerencia de cuaacuteles materias podriacutean impartirlos Sistemas Expertos del proyecto inferiacutean exactamente las materias que loscatedraacuteticos estaacuten impartiendo en este semestre y las que habiacutean impartido en alguacutensemestre anterior demostrando que en efecto para profesores nuevos la recomendacioacutendel sistema seriacutea vaacutelida

72 TRABAJOS FUTUROS

Se sugiere que se ampliacutee el proyecto para que a cada grupo generado con aula y hora sele asigne de manera automaacutetica un catedraacutetico utilizando ya sea Algoritmos Geneacuteticos oProgramacioacuten Loacutegica de Restricciones

Otra posible mejora puede ser incluir la Loacutegica Difusa en los Sistemas Expertos de losmoacutedulos que sugieren las materias que puede impartir un catedraacutetico y los catedraacuteticosque pueden impartir una asignatura

Como ya se comproboacute la factibilidad de generar los horarios de manera automaacutetica sepropone tambieacuten la exploracioacuten de otras ramas y teacutecnicas de la computacioacuten (RedesNeuronales Buacutesqueda Tabuacute Grafos Coloreados etc) para comparar el rendimientotiempo esfuerzo y asiacute poder determinar cuales son mejores o peores teacutecnicas pararesolver el problema de la generacioacuten de horarios

Referencias Bibliograacuteficas

REFERENCIAS BIBLIOGRAacuteFICAS

[Abramson 1991] Abramson D ldquoConstructing School Timetables Using SimulatedAnnealing Secuencial and Parallel Algoritmsrdquo Management Science PWS PublishingBoston 1998

[Beasley 1993] Beasley D amp Bull DR amp Martin RR ldquoAn Overview of GeneticAlgorithms Part 1 Fundamentalsrdquo University Computing

[Bull 1993] Bull DR amp Beasley D amp Martin RR ldquoAn Overview of GeneticAlgorithms Part 2rdquo University Computing Magazine 1993

[Burke1994]Burke EK ldquoA Genetic Algorithm for University Timetablingrdquo AISBworkshop on evolutionary computing Leeds 1994

[Burke 1997] Burke Edmund K ldquoAutomated Scheduling Optimization and PlanningGroup (ASAP)rdquo PATATrsquo97 Proceedings of the 2nd Intenational Conference on thePractice And Theory of Automated Timetabling 1997

[Burke2000] Burke Edmund amp Eliman David amp Weare Rupert ldquoA GeneticAlgorithm Based University Timetabling Systemrdquo PATATrsquo2000 Proceedings of the 5ft

Intenational Conference on the Practice And Theory of Automated Timetabling 2000

[Burke2001] Burke EK amp Eliman DGamp Weare R ldquoAutomated Scheduling OfUniversity Examsrdquo Leeds 2001

[Burke2002] Burke Edmund amp Eliman David amp Weare Rupert ldquoExaminationTimetabling in British Universities ndash A Surveyrdquo Leeds 2002

[Carrasco 2004] Carrasco Marco amp Pato Margarida ldquoSolving Real ClassTeacherTimetabling Problems using Neural Networksrdquo Facultade de Ciencias University ofLisboa Portugal

[Chorafas 1990] Chorafas Dimitris N ldquoKnowledge Engineeringrdquo Van NostrandReinnhold New York USA

Referencias Bibliograacuteficas

[Corne 1993] Corne D ldquoSolving the module exam scheduling problem with geneticalgorithmsrdquo Proceedings of the 6th Intenational conference in Industrial andEngineering applications of Artificial Intelligence and Expert Systems1993

[Daellenbach 1987] Daellenbach Hans amp McNickle Donald ldquoIntroduccioacuten a teacutecnicasde Investigacioacuten de Operacionesrdquo CECSA Meacutexico 1987

[Davis 1991] Davis L ldquoHandbook of Genetic Algorithmsrdquo Van Nostrand ReinholdNew York NY

[Demist2000] Demist ldquoDepartamental Timetabling Proyect ProposalDeMIStinterface to Timetabling Package Proyectrdquo Demist University 2000

[Detcher 1990] Detcher R ldquoEnhancement Schemes for Constraint Processing BackJumping Learning and Cutset Decompositionrdquo Artificial Intelligence 41 (1990)

[Eliman 2000] Eliman David ldquoSpecialised Recombinative Operators for TimetablingProblemsrdquo Cambridge University Press New York 2000

[Elmohamed2000] Elmohamed Saleh ldquoThe timetabling problemrdquo PATATrsquo2000Proceedings of the 5th Intenational Conference on the Practice And Theory ofAutomated Timetabling 2000

[Elmohamed2001] Elmohamed Saleh ldquoConstraint based university coursetimetablingrdquo 4th World Congress on Timetabing Aplication of advanced informationTechnologies London 2001

[Fahrion y Dollanski 1992] Fahrion R amp G Dollanski ldquoConstruction of UniversityFaculty Timetables using Logic Programmingrdquo ACM Sigsoft Notes vol 9 no 3 May1992

[Frenzel 1986]Frenzel Louis E ldquoCrash Course in Artificial Intelligence and ExpertSystemsrdquo Howard W Sams amp Co McMillan Inc Indianapolis USA

[Gerez 1985] Gerez Victor amp Mier Mauricio ldquoDesarrollo y administracioacuten deprogramas de computadorardquo McGraw Hill Meacutexico 1985

[Gervaacutes 1999] Gervaacutes P amp San Miguel B ldquoSequential Building of ConstrainedTimetables Using Rule-Based Heuristics An Expert System for AutomatedTimetablingrdquo Congreso Internacional de Investigacioacuten en Ciencias Computacionales

Referencias Bibliograacuteficas

[Giarratamo 1998] Giarratamo Joseph y Gary Riley ldquoExpert Systems Principles andProgrammingrdquo PWS Kent Publishing Company Boston USA

[Gines 1986] Gines B amp Boose J ldquoKnowledge Acquisition for Knowledge-BasedSystemsrdquo Vol 1amp2 Academic Press London U K

[Goldberg 1989] Goldberg DE ldquoGenetic Algorithms in SearchOptimization andMachine LearningrdquoAddison-Wesley

[Kang y White 1994 ] Kang L amp White GM ldquoA Logic Approach to the Resolutionof Constrains in Timetablingrdquo European Journal of Operational Research vol 61 1994

[Kandel 1991] Kandel Abraham ldquoFuzzy Expert Systemsrdquo CRC Press Inc LondonUK 1991

[Kendall1999] Kendall y Kendall ldquoAnaacutelisis y disentildeo de sistemasrdquo 3ordf edicion PearsonEducacioacuten

[Koza 1992] Koza JR ldquoGenetic Programming On the Programming of Computers bymeans of Natural Selectionrdquo Cambridge MA MIT Press

[Martiacutenez 1999] Martiacutenez Alfaro Horacio ldquoSolucioacuten al problema de asignacioacuten desalones de clases horario y grupo mediante templado simuladordquo Memorias 6ordm CongresoInternacional de Mecatroacutenica e Inteligencia Artificial Meacutexico 1999

[Medina 2004] Medina Pasaflores Horacio ldquoFundamentos de Algoritmos GeneacuteticosrdquoTesis de licenciatura Zacatepec Mexico 2004

[Michalewicz 1992] Michalewicz Z ldquoGenetic algorithms + Data Structures =Evolution Programsrdquo Springer-Verlag New York NY

[Negoita1985] Negoita ConstantinV Expert Systems and Fuzzy Systems TheBenjamin Cummings Publishing Co Menlo Park CA USA

[Nielsoft 2000] Nielsoft informatica ldquoManual de usuario Mimosa for windowsrdquo

[Paechter 1994] Paechter B ldquoTwo solutions to the general timetabling problemusing evolutionary methodsrdquo IEEE WCCI 1994

[Pluss1999] Pluss JJ ldquoSistemas expertos un enfoque pragmaacuteticordquo UNR

Referencias Bibliograacuteficas

[Rich 1996] Rich E y Knight K ldquoInteligencia Artificialrdquo McGraw HillInteramericana Madrid Espantildea

[Russell 1996] Russell S y Norvig P ldquoInteligencia Artificial un enfoque modernordquoPrentice Hall Mexico 1996

[Sanchez1999] Sanchez y Beltran ldquoSistemas expertos una metodologiacutea deprogramacioacutenrdquo Macrobit

[Schedul2000] SchedulExpert ldquoCourse scheduling in post educational institutionsrdquo EdAddison Wesley 2000

[Trick 1999 ] Trick Michael ldquoNetwork resources for coloring a graphrdquo Oracle PressEd McGraw Hill 1999

[Turban 1995] Turban Efraim ldquoDecision Support and Expert Systems ManagementSupport Systemsrdquo Fourth Edition Orentice Hall NJ USA

[Waterman1986] Waterman Donald A ldquoA Guide to Expert Systemsrdquo Addison-Wesley Publishing Co USA

[Weare2000] Weare Rupert amp Burke Edmundo amp Eliman David ldquoA Questionnaireon Exam Timetabling in Universitiesrdquo Annual review of computer Science Volume 2Palo Alto 2000

[Wilke 2002] Wilke P amp Grobner M amp Oster N ldquoA hibrid Genetic Algorithm forSchool Timetablingrdquo Advances in Artificial Intelligence Springer Lecture Notes inComputer Science New York

[Yoshikawa 1994] Yoshikawa M amp Kaneko KldquoA Constraint-based Approach toHigh School Timetabling Problems A Case Studyrdquo AAAI-94 12ordm NationalConference on Artificial Intelligence

Referencias Bibliograacuteficas

Referencias electroacutenicas

httpwwwmonografiacuteascomtrabajos12inteartfinteartfshtmlObregoacuten Arturo Inteligencia artificial y Sistemas expertos IIMAS-UNAM (1992)

httpwwwlafacucomapuntesinformaticasist_conodefaulthtmCruz Ochoa Wilson Sistemas de conocimiento

httpwwwingenieroseninformaticaorgrecursostutorialessist_exphtmlZambrano Molina Darwin Sistemas expertos

httpredcientificacomdocdoc199008210001htmlSamper Marquez Juan Joseacute Introduccioacuten a los sistemas expertos Madrid 2000

httpmismonografiascomarSistemas20expertofuzzyhtmlArede Dario Sistema experto fuzzy

httpcruzrojaguayaorginteligenciainterhtmlAyuquina Martha amp Arellano Gregorio Inteligencia artificial Universidad de Guayaquil

httpdmiuibesabasolointart1-introduccionhtmlAbasolo Mariacutea Joseacute Dra Inteligencia Artificial

Page 4: BORIS ANTONIO ARANDA BENITEZ

AGRADECIMIENTOS

Agradezco a Dios la oportunidad de vivir para ver terminado este trabajo

Agradezco a mi madre su constante iexcl Ahora una maestriacutea

Agradecimiento especial al Instituto Politeacutecnico Nacional al Centro deInvestigacioacuten en Computacioacuten y al Instituto Tecnoloacutegico de Zacatepecpor haber permitido y facilitado todo para que esta maestriacutea se impartiera

Al Dr Adolfo Guzmaacuten Arenas y al Dr Heacutector Medelliacuten Hernaacutendez porquefueron los autores intelectuales de traer el programa de maestriacutea alTecnoloacutegico de Zacatepec

Al Dr Alvaro de Albornoz Bueno porque sin el curso que impartioacute deInteligencia Artificial y Sistemas Expertos yo seguiriacutea creyendo que esimposible generar los horarios de manera automaacutetica gracias tambieacuten porsu apoyo incondicional y asesoriacutea por uacuteltimo le agradezco la lectura totalal documento final y la aplicacioacuten de las normas de la Real AcademiaEspantildeola al mismo

Al Dr Agustiacuten Gutieacuterrez Torneacutes por su apoyo y confianza en miacute

Debo dar las gracias a Olivia Saacutenchez Cadena por ese tremendo curso deprogramacioacuten visual y tambieacuten a Laura Villavicencio Goacutemez que con lafrase ldquosolo a los nintildeos se les tiene que decir que hacerrdquo me motivoacute acontinuar hasta terminar este trabajo

A mis compantildeeras y compantildeeros por los agradables momentos pasadosdurante el desarrollo de los cursos

A mis alumnos de Ingenieriacutea en Sistemas Computacionales porque con sutiacutepico sentido del humor juvenil me motivaron para cambiar deldquolicenciadordquo a ldquomcrdquo

Agradezco a la ANUIES con su programa Supera por el apoyo econoacutemicobrindado

Se agradece tambieacuten a COSNET por su apoyo dentro del proyecto deinvestigacioacuten 65504-P

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

IacuteNDICE

RESUMEN iABSTRAC iiIacuteNDICE iiiLISTA DE FIGURAS v

CAPIacuteTULO 1 INTRODUCCIOacuteN11 Antecedentes 112 Planteamiento del problema 213 Objetivo general 414 Objetivos especiacuteficos 515 Justificacioacuten 5151 Justificacioacuten teoacuterica 5152 Justificacioacuten metodoloacutegica 5153 Justificacioacuten praacutectica 616 Alcances y limitaciones 7

CAPIacuteTULO 2 MARCO TEOacuteRICO21 El estado del arte 9211 Antecedentes 9212 Algunos meacutetodos para resolver el Problema de la Generacioacuten de Horarios 92121 Algoritmos Geneacuteticos 122122 Programacioacuten Loacutegica de Restricciones 122123 Redes Neuronales 132124 Recocido Simulado 132125 Operadores Recombinatorios Especializados 132126 El Sistema Experto basado en reglas 14213 Observaciones realizadas a algunos paquetes generadores de horarios 1522 Los horarios 16221 El problema de la elaboracioacuten de horarios 1723 El proceso de la elaboracioacuten de horarios 22

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

CAPIacuteTULO 3 TEacuteCNICAS DE INTELIGENCIA ARTIFICIALUTILIZADAS PARA LA GENERACIOacuteN DE HORARIOS31 Sistemas Expertos 24311 Funcioacuten de un Sistema Experto 25312 Arquitectura de Sistemas Expertos 25313 La base de conocimiento 26314 Motor de inferencias 27315 iquestPor queacute utilizar un Sistema Experto 27316 Construccioacuten de prototipos 2832 Algoritmos geneacuteticos 29321 Antecedentes 29322 Definicioacuten de Algoritmo Geneacutetico 30323 Ventajas y desventajas 31324 iquestCoacutemo saber si es posible usar un Algoritmo Geneacutetico 31325 Paraacutemetros que deben ser especificados en el programa 3233 Programacioacuten Loacutegica de Restricciones(PLR) 34331 Antecedentes de la PLR 34332 Restricciones 35333 Sistemas con restricciones 37334 Referencia histoacuterica de las restricciones 37335 Satisfaccioacuten de las restricciones 38336 Resolucioacuten de restricciones 38337 Organizacioacuten de proyectos 38

CAPIacuteTULO 4 ANAacuteLISIS Y DISENtildeO41 Recopilacioacuten de la informacioacuten 4142 Anaacutelisis de la informacioacuten 4643 Solucioacuten definida 4844 Requerimientos del sistema 4945 Disentildeo del sistema 52451 Mapa conceptual del proyecto 52452 Mapas conceptuales de los moacutedulos 54453 Diagramas de contexto 62454 Diagramas entidad relacioacuten 674 55 Diccionario de la base de datos 73456 Lista de funciones o programas 85457 Diagrama de arquitectura (menuacutes) 87

CAPIacuteTULO 5 IMPLEMENTACIOacuteN51 Pantallas del sistema 89

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

CAPIacuteTULO 6 PRUEBAS Y RESULTADOS61 Pruebas del sistema 11462 Pruebas del sistema 115621 Prueba 1 Aacuterea de menuacutes 115622 Prueba 2 Validacioacuten de entradas 118623 Prueba 3 Desplegado de resultados 1206231 Moacutedulo generacioacuten de grupos por abrir 1206232 Moacutedulo generacioacuten de horarios 1216233 Moacutedulo asignacioacuten de aula 1226234 Moacutedulo seleccioacuten de catedraacuteticos 127

CAPIacuteTULO 7 CONCLUSIONES Y TRABAJOS FUTUROS71 Conclusiones 13172 Trabajos futuros 132

REFERENCIAS BIBLIOGRAacuteFICAS 133

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

LISTA DE FIGURAS

Figura Nombre Paacutegina

31 Arquitectura de un Sistema Experto 2632 Pseudocoacutedigo del Algoritmo Geneacutetico simple 3341 Mapa conceptual del proyecto 5242 Diagrama de secuencia 5443 Sistema Experto generador de grupos 5544 Diagrama del moacutedulo Programacioacuten Loacutegica de Restricciones 5745 Diagrama del moacutedulo Algoritmo Geneacutetico 5846 Diagrama de Sistema Experto para sugerir profesor a asignatura 6047 Diagrama de Sistema Experto para sugerir asignaturas para

catedraacutetico61

48 Diagrama de contexto del proyecto 6449 Diagrama de funciones fundamentales (entradas) 65410 Diagrama de funciones fundamentales (salidas) 66411 Diagrama entidad relacioacuten del moacutedulo administrativo 67412 Diagrama E-R del moacutedulo para determinar y ajustar nuacutemero de

grupos68

413 Diagrama E-R del moacutedulo para asignar aulas (Algoritmo Geneacutetico) 69414 Diagrama E-R del moacutedulo para asignar horario (PLR) 70415 Diagrama E-R del moacutedulo designa mejor catedraacutetico (Sistema

Experto)71

416 Diagrama E-R del moacutedulo selecciona mejor materia (SistemaExperto)

72

51 Portada inicial del proyecto 8852 Acerca del sistema 8953 Menuacute principal del proyecto 8954 Menuacute grupos por abrir 9055 Materias 9056 Consulta materias 9157 Pantalla servicios escolares 9158 Pantalla consulta servicios escolares 9259 Pantalla criterios por materia 92510 Pantalla consulta criterios por materia 93511 Pantalla carreras 93512 Pantalla criterios 94513 Pantalla consulta criterios 94514 Pantalla reglas 95515 Pantalla consulta reglas 95516 Pantalla ajustes 96

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

517 Pantalla consulta ajustes 96518 Pantalla criterios por regla 97519 Pantalla consulta criterios por regla 97520 Pantalla caacutelculo de ajustes 98521 Pantalla explicacioacuten de la inferencia 98522 Pantalla inicial del moacutedulo generacioacuten de horarios 99523 Pantalla principal del moacutedulo generacioacuten de horarios 99524 Pantalla principal del menuacute Algoritmos Geneacuteticos 100525 Pantalla de administracioacuten de grupos 100526 Pantalla de consulta de administracioacuten de grupos 101527 Pantalla del control de aulas 101528 Pantalla de consultas del control de aulas 102529 Pantalla para generacioacuten de poblacioacuten inicial 102530 Pantalla de evaluacioacuten de versiones 103531 Pantalla del proceso de seleccioacuten 103532 Pantalla del proceso de clonacioacuten 104

533 Pantalla de mutacioacuten 104534 Pantalla del proceso de cruzamiento 105535 Horarios finales 105536 Pantalla menuacute seleccioacuten de catedraacuteticos 106537 Pantalla de perfiles 106538 Pantalla de consulta perfiles 107539 Pantalla perfiles de las materias 107540 Pantalla consulta perfiles de las materias 108541 Pantalla captura datos de catedraacuteticos 108542 Pantalla consulta datos de catedraacuteticos 109543 Pantalla captura perfil de catedraacuteticos 109544 Pantalla consulta perfil de catedraacuteticos 110545 Pantalla muestra inferencia catedraacuteticos para materia 110546 Pantalla explicacioacuten del porqueacute un maestro puede dar una materia 111547 Pantalla materias que puede impartir un profesor 111548 Pantalla de explicacioacuten del porqueacute un profesor puede dar una

materia112

61 Portada inicial del proyecto 11562 Menuacute principal del proyecto 11663 Menuacute grupos por abrir 11664 Pantalla menuacute seleccioacuten de catedraacuteticos 11765 Pantalla principal del menuacute Algoritmos Geneacuteticos 11766 Pantalla de captura de datos de las Materias 11867 Pantalla de captura de datos de Criterios por Materia 11968 Pantalla de captura de datos de Carreras 11969 Pantalla caacutelculo de ajustes 120

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

610 Pantalla inicial del moacutedulo generacioacuten de horarios 121611 Pantalla principal del moacutedulo generacioacuten de horarios 122612 Pantalla del control de aulas 123613 Pantalla de consultas del control de aulas 123614 Pantalla de genera poblacioacuten inicial 124615 Pantalla de evaluacioacuten de versiones 124616 Pantalla del proceso de seleccioacuten 125617 Pantalla del proceso de clonacioacuten 125618 Pantalla de mutacioacuten 126619 Pantalla del proceso de cruzamiento 126620 Horarios finales 127621 Pantalla captura perfil de catedraacuteticos 128622 Pantalla muestra inferencia catedraacuteticos para materia 128623 Pantalla explicacioacuten porque un maestro puede dar una materia 129624 Pantalla materias que puede impartir un profesor 129625 Pantalla de explicacioacuten porque un profesor puede dar una materia 130

Capiacutetulo 1 Introduccioacuten

CAPIacuteTULO 1

INTRODUCCIOacuteN

11 Antecedentes

iquestQueacute es un horario

ldquoEl horario completo bien puede gobernar las vidas demiles de alumnos y cientos de profesores para los 200 diacuteasdel antildeo escolar semestre a semestre hora tras hora Comouna poderosa herramienta puede faacutecilmente crear o deshacersituaciones de ensentildeanza aprendizajerdquo [Johnson 1980]

En la educacioacuten superior la historia siempre es la misma la proporcioacuten de tiempodictada por el horario para los alumnos y profesores es generalmente muy baja Apesar de esto las dificultades en la creacioacuten de los horarios son grandes Existenvarios departamentos y carreras cada uno con sus propias ideas de coacutemo y cuaacutendo sedeben programar sus cursos El nuacutemero de estudiantes puede variar considerablementede antildeo en antildeo Similarmente las preferencias de los alumnos a favor o en contra delas materias pueden variar dramaacuteticamente de un semestre a otro Los estudiantespueden tomar cursos de un departamento o de varios de ellos aun maacutes puedenseleccionar materias de otras carreras La reciente desaparicioacuten de las restricciones decreacuteditos para cursar las asignaturas complica maacutes la situacioacuten porque ampliacutea el rangode materias que puede tomar un alumno Los horarios aparecen en varias formasmatutinos vespertinos mixtos y todo el diacutea Los horarios escolares indican cuando unmaestro y un alumno deben ir a cada clase Todas las escuelas tienen un horario decursos que dirige lo que cada estudiante y catedraacutetico debe hacer en determinadomomento Esta tesis versa especiacuteficamente sobre el problema de construir horariospara Institutos Tecnoloacutegicos en Meacutexico

La planeacioacuten de los horarios es un trabajo que se realiza semestralmente antes de iniciarel siguiente periodo escolar tomando en cuenta la demanda de grupos que se ofreceraacuteny asignando a estos grupos los alumnos el aula el catedraacutetico y el horariocorrespondiente mediante informacioacuten que se obtiene de varias maneras

El principal objetivo de este proyecto es dar una solucioacuten aproximada (aceptable) alproblema de la generacioacuten de horarios de una escuela de nivel superior que se resumeasiacute

Capiacutetulo 1 Introduccioacuten

ldquoDado un conjunto de departamentos y carreras asignaturas con prerrequisitos gruposcatedraacuteticos con especialidad y horario definidos aulas laboratorios y alumnos con suspreferencias de materias el problema es construir un condensado de horarios factibleque satisfaga todas las restricciones fuertes y minimice las restricciones medias ysuavesrdquo

Las restricciones fuertes son restricciones de espacio y tiempo tal como planear doscursos en un aula al mismo tiempo Las restricciones medias y suaves son laspreferencias de maestros y estudiantes que deberaacuten ser satisfechas si es posible[Elmohamed 1998]

El problema de la generacioacuten de horarios ha sido tratado por muchos investigadoresutilizando meacutetodos que van desde la investigacioacuten de operaciones hasta disciplinas de laInteligencia Artificial como son Algoritmos Geneacuteticos Recocido Simulado RedesNeuronales etc

12 Planteamiento del problema

La generacioacuten de horarios es una forma particular del problema de asignacioacuten derecursos En el caso maacutes general existe una serie de objetos (recursos) y una serie deprocesos que necesitan ser realizados por cada uno de esos objetos En un contextoeducacional cada estudiante debe asistir a un nuacutemero predeterminado de clases y elprofesor debe impartirlas durante la semana en un aula predeterminada el estudiante elprofesor y el aula pasan aquiacute a ser el objeto y las clases el proceso

La complejidad del problema de la generacioacuten de horarios

La generacioacuten de horarios es un problema de optimizacioacuten combinatorio multi-dimensional no Euclidiano con muacuteltiples restricciones y por lo tanto difiacutecil de resolver[Elmohamed 1998]

El problema de la generacioacuten de horarios esta agrupado dentro de los considerados decomplejidad NP-completos es decir que no pueden ser resueltos en tiempo polinomialusando un algoritmo determiniacutestico No se conoce un algoritmo determiniacutestico detiempo polinomial para resolver alguno de esos problemas y la mayoriacutea de la gente creeque dichos algoritmos no existen[Karp 1972]

La generacioacuten de horarios es la asignacioacuten de lapsos de tiempo a un conjunto de eventossujeto a las restricciones en esas asignaciones Seguacuten Elmohamed [Elmohamed 1998]el problema NP-completo de la elaboracioacuten de horarios es un problema para la

Capiacutetulo 1 Introduccioacuten

satisfaccioacuten de restricciones que puede ser definido de la siguiente maneraPara una escuela dada con

Np profesores con sus horarios y turnos Nq materias con su temario y objetivosNx aulas y laboratorios con su capacidad Ns estudiantes

es requerido programar Nt parejas de

alumno-materiahora-materiamaestro-materiaaula-materia

una vez definidas las parejas anteriores se deben programar elementos de la formamateria-maestro-hora -aula

En un liacutemite de Nt lapsos de tiempo para producir una programacioacuten factible En unaprogramacioacuten factible no se puede encontrar a un profesor grupo o estudiante en maacutesde un lugar al mismo tiempo y un aula no puede ser asignada con maacutes de una clase a lavez o maacutes estudiantes de su capacidad o un profesor programado fuera de su horarionormal o con maacutes horas frente a grupo de las reglamentarias ademaacutes de un conjuntoadicional de restricciones

Importancia del problema

La administracioacuten de los recursos comprende la apertura de los grupos para inscribir alos alumnos el proacuteximo semestre la asignacioacuten de carga acadeacutemica a los catedraacuteticos lautilizacioacuten de aulas y laboratorios de quiacutemica produccioacuten coacutemputo electromecaacutenicaaulas de dibujo y demaacutes instalaciones del Instituto Tecnoloacutegico de Zacatepec (ITZ)Cuando por errores imputables al creador de los horarios se hizo una mala planeacioacuten sederivan los siguientes problemasbull Alumnos que se inscriben con una carga de creacuteditos menor a la miacutenima por falta de

grupos suficientesbull Alumnos que deben estar en el ITZ desde las 700 hrs hasta las 2000 hrs varios

diacuteas a la semana por abrir grupos en horarios muy separadosbull Alumnos que pierden la secuencia de materias seriadas por falta de cupobull Alumnos que deben permanecer 1 oacute 2 semestres maacutes en el ITZ por no prever

suficientes grupos para semestres terminalesbull Catedraacuteticos que no imparten el miacutenimo reglamentario de horas frente a grupo por

no crearles grupos suficientesbull Catedraacuteticos a los que se les avisa 1 diacutea antes del inicio de clases que impartiraacuten una

Capiacutetulo 1 Introduccioacuten

asignatura nuevabull Asignaturas que son impartidas por profesores que no cumplen el perfil deseado en

esa asignaturabull Choque de grupos en las aulasbull Choque de grupos en laboratoriosbull Falta de laboratorio a algunos gruposbull Deficiente utilizacioacuten de las aulas

La creacioacuten de un sistema que evite de manera automaacutetica caer en errores como losmencionados NO ES TAREA TRIVIAL intentar resolver este problema involucra laelaboracioacuten de un ldquosistema inteligenterdquo capaz de tomar decisiones aprender inferirbasaacutendose en hechos generar nueva informacioacuten y a partir de ella nuevamente volver adecidir El sistema que se elabore debe tener la capacidad para deducir e inducir de unamanera combinada

Desventajas del sistema actual

La mayoriacutea de los problemas anteriores son ocasionados por alguno o varios de lossiguientes motivosbull Todo el proceso de caacutelculo y administracioacuten de los recursos es manualbull El proceso de elaboracioacuten coincide con el cierre de semestre actual y como las

personas responsables tambieacuten son catedraacuteticos deben combinar la generacioacuten dehorarios con las evaluaciones finales revisioacuten de proyectos y entrega decalificaciones de sus grupos a los alumnos

bull La elaboracioacuten de los horarios es un proceso que se lleva semanas de labor diariabull Requiere la atencioacuten total de los coordinadores durante todo el tiempo de

elaboracioacutenbull Al no tener la informacioacuten automatizada se tienen peacuterdidas de tiempo en la toma de

decisiones como por ejemplo en el preacutestamo de aulas no utilizadas o en la forma decompartir catedraacuteticos

bull Se tienen fuertes restricciones debido a los horarios de los catedraacuteticosbull Hay fuertes dificultades cuando se deben negociar cambios de horarios porque el

proceso implica mover asignaturas buscar aulas dejar paquetes de materias porsemestre etc

bull El estado de aacutenimo del coordinador influye en la elaboracioacuten de los horarios

13 Objetivo general

Generacioacuten de una solucioacuten aproximada del condensado de horarios para una escuela denivel superior que satisfaga las restricciones ocasionadas por los recursos involucradosmediante la elaboracioacuten de un sistema hiacutebrido (experto geneacutetico y loacutegico restrictivo)

Capiacutetulo 1 Introduccioacuten

14 Objetivos especiacuteficos

Se tiene el disentildeo e implementacioacuten de un sistema que

bull Proporciona una solucioacuten aproximada aceptable al problema de la generacioacuten dehorarios

bull Permite a los coordinadores delegar a la computadora la asignacioacuten de recursosbull Ahorra tiempo en la generacioacuten de los horariosbull Reduce el trabajo manualbull Agiliza la toma de decisionesbull Reduce el tiempo de elaboracioacuten de horariosbull Facilita la modificacioacuten de informacioacuten generadabull Aumenta la eficiencia en las negociaciones entre jefes y coordinadoresbull Lleva al Instituto Tecnoloacutegico de Zacatepec (ITZ) a la modernizacioacuten en este

proceso

15 Justificacioacuten del sistema

151 Justificacioacuten teoacuterica

La utilizacioacuten de la Inteligencia Artificial (IA) para la solucioacuten de problemas de la vidacotidiana ha sido una estrategia utilizada cuando los sistemas tradicionales decomputacioacuten no proveen mecanismos suficientes para garantizar una solucioacuten adecuadasu utilizacioacuten para la generacioacuten de horarios (creacioacuten de grupos asignacioacuten de horaasignacioacuten de aula determinacioacuten de catedraacutetico) presenta una alternativa ideal paracomprobarlo

152 Justificacioacuten metodoloacutegica

La utilizacioacuten de un grupo de Sistemas Expertos que realice la asignacioacuten de losrecursos para la generacioacuten de grupos y le proponga una materia determinada a unprofesor seguacuten el perfil acadeacutemico de ambos reuacutene las caracteriacutesticas necesarias paradar la solucioacuten elegante y efectiva al problema planteado anteriormente porque

bull Se requiere del conocimiento de un experto para plantear el funcionamiento delsistema

bull El conocimiento se alimentaraacute a una base de conocimientos que conste de variaspartes

bull Para la generacioacuten de grupos de una asignatura dada el sistema debe ldquorazonarrdquo paradeterminar cuantos de eacutestos se deben abrir para ofertarlos a los alumnos

Capiacutetulo 1 Introduccioacuten

bull En la asignacioacuten de nuevas materias a los catedraacuteticos el sistema debe ldquodeterminarrdquoquieacuten es el maacutes idoacuteneo para impartirla de acuerdo al perfil de ambos materia ymaestro

La Programacioacuten Loacutegica de Restricciones (PLR) es una de las teacutecnicas que maneja demanera natural informacioacuten sometida a ciertas restricciones y fue seleccionada paraseguir trabajando en la resolucioacuten del problema porque

bull Los horarios deben satisfacer ciertas restricciones como por ejemplo no se debengenerar mas grupos de los necesarios no puede haber dos materias con el mismogrupo no deben existir grupos del mismo paquete a la misma hora etc

bull Cada paquete de un semestre es un objeto que por siacute mismo posee ciertascualidades y restricciones por ejemplo no debe tener horas sin asignatura entre lahora inicial y final existen materias que se deben impartir de una hora diaria otrasdeben ser impartidas de 2 horas diarias etc

bull La solucioacuten presentada por la PLR inicia con datos aleatorios de un horario despueacutesse verifica si las restricciones se cumplen o no si se cumplen se guarda el dato si nose genera un nuevo dato aleatorio

Los Algoritmos Geneacuteticos utilizados aquiacute para asignar aula a los grupos cumplen con lametodologiacutea de la Computacioacuten Evolutiva porque

bull Se tienen datos iniciales de los grupos (materia-hora)bull Se genera una poblacioacuten inicial que son n versiones de un condensado de horarios

sin aulabull Esta poblacioacuten inicial es evaluada se seleccionan los condensados maacutes adecuados y

se eliminan las versiones menos adecuadasbull Se realizan cruzamientos mutaciones clonaciones y se crea la nueva generacioacuten de

horariosbull Se repite el proceso hasta llegar a una utilizacioacuten eficiente de las aulas

Por lo anterior se pueden observar las ventajas de utilizar un sistema inteligente sobreuno convencional para solucionar el problema planteado

Una vez definido el modelo para solucionar el problema de la asignacioacuten de horariospara las asignaturas aulas y catedraacuteticos de una institucioacuten de educacioacuten superior seraacutefaacutecil extrapolarlo para solucionar algunos problemas referentes a la planeacioacuten dehorarios de otro tipo de escuelas de nivel medio superior

153 Justificacioacuten praacutectica

La creacioacuten de un sistema que resuelva el problema de la elaboracioacuten de horarios ygenere automaacuteticamente la programacioacuten de grupos aulas y maestros sin violar las

Capiacutetulo 1 Introduccioacuten

restricciones fuertes minimizando las restricciones medias y suaves optimizando lautilizacioacuten de las aulas cumpliendo con las restricciones de los profesores asignandoprofesores adecuados para impartir las clases traeraacute como consecuencia condicionespara mejorar el proceso de ensentildeanza aprendizaje

16 Alcances y limitaciones

Alcances

El sistema generaraacute un espacio de soluciones finito que satisfaga las restriccionesfuertes medias y suaves optimizando el uso de los recursos disponibles se puede decirque el sistema optimizaraacute los recursos cuando los horarios generados tengan lascaracteriacutesticas mencionadas maacutes adelante

Esta tesis documenta la creacioacuten de un sistema basado en el conocimiento parasolucionar el problema de la generacioacuten de horarios en el Instituto Tecnoloacutegico deZacatepec que permite

bull Generar grupos suficientes para que todos los estudiantes se inscriban al menos conla carga miacutenima reglamentaria

bull Que los alumnos tengan horarios adecuados a sus necesidades y preferenciasbull Que todos los grupos tengan capacidad suficiente para todos los estudiantes que

deseen inscribirsebull Que los profesores impartan materias de acuerdo a su perfil profesionalbull Evitar los choques de grupos en aulas y laboratoriosbull Que todos los grupos tengan aula asignada desde el inicio del semestrebull La utilizacioacuten oacuteptima de las aulas y laboratoriosbull La correcta asignacioacuten de aulas y laboratorios a los cursosbull Realizar de manera automaacutetica la asignacioacuten de los recursosbull Determinar el nuacutemero de grupos que se deben abrirbull Llenar las aulas con grupos sin permitir choque de horariosbull Imprimir la lista de grupos ofertados para el semestre siguientebull Cuando exista el grupo de una materia sin maestro determinar cual es el mejor para

impartirla

Tener un Sistema terminado que contenga los siguientes moacutedulos

Sistema administrativo para control de horarios Sistema Experto para determinar la cantidad de grupos por abrir Sistema Experto para sugerir materias a un catedraacutetico Sistema Experto para seleccionar los mejores catedraacuteticos para impartir una

asignatura

Capiacutetulo 1 Introduccioacuten

Moacutedulo de Programacioacuten Loacutegica de Restricciones para generar los horarios a lospaquetes de materias por semestre

Moacutedulo de Algoritmo Geneacutetico para asignar aula a los grupos

Cada moacutedulo tendraacute

bull Interfaces de usuario amigablesbull Tiempos de ejecucioacuten raacutepidos (independientemente de la maacutequina objetivo)bull Reglas de inferencia para generar resultados (soacutelo los Sistemas Expertos)bull Buacutesquedas heuriacutesticas o aleatorias seguacuten el casobull Procesos para realizar induccioacuten y deduccioacuten (soacutelo los Sistemas Expertos)bull Manejo de incertidumbre (soacutelo los Sistemas Expertos)bull Un moacutedulo de explicaciones en lenguaje natural

Limitaciones

El sistema estaacute disentildeado para generar horarios de una escuela de nivel superior donde elcoordinador de cada carrera es el responsable de la generacioacuten de sus horarios controlarsus profesores impartir cierto nuacutemero de materias y utilizar cierta cantidad de aulas ylaboratorios

Trabaja exclusivamente en lenguaje espantildeol

Las reglas de la base de conocimiento tienen un formato predeterminado por unasintaxis definida para el sistema

El sistema estaacute elaborado para trabajar en microcomputadoras compatibles con IBM

No maneja los horarios individuales de los alumnos en el proceso de inscripcioacuten estaactividad deberaacute ser realizada por los sistemas del departamento de servicios escolares

Capiacutetulo 2 Marco teoacuterico

CAPIacuteTULO 2

MARCO TEOacuteRICO

21 El estado del arte

211 Antecedentes

El problema de la generacioacuten de horarios ha sido atacado de varias maneras a nivelmundial inclusive existe un grupo internacional que convoca al congreso llamadoPATATxx (Practice and Theory of Automated Timetabling) donde xx es el antildeo delcongreso en cuestioacuten

La ASAP (Automated scheduling optimization and planing group) es otro organismocuyo fin principal es conducir investigacioacuten en modelos heuriacutesticas y algoritmos para laproduccioacuten automaacutetica de soluciones de alta calidad a una gran variedad de problemasde planeacioacuten y optimizacioacuten del mundo real incluyendo elaboracioacuten de horarioslogiacutestica asignacioacuten de espacio y mantenimiento de inventarios

212 Algunos meacutetodos para resolver el Problema de laGeneracioacuten de Horarios

La generacioacuten de horarios acadeacutemicos ha sido acometida por muchos investigadoresbaacutesicamente dentro del aacuterea de la Investigacioacuten de Operaciones

2121 Investigacioacuten de Operaciones

El algoritmo para resolver problemas de asignacioacuten se denomina Huacutengaro ya que fuerondos matemaacuteticos Huacutengaros Koumlnig (1916) y Egervary (1931) los que aportaron lasteoriacuteas que sirven de base a este meacutetodo [Daellenbach 1987]

Este problema se presenta en diversos casos de toma de decisiones Los problemastiacutepicos de asignacioacuten implican asignar tareas a maacutequinas trabajadores a tareas yproyectos personal de ventas a territorios de ventas contratos a licitaciones horarios deaulas disponibles a horarios de maestros disponibles enfermos a camas disponibles delhospital cierto nuacutemero de empleados a cierta cantidad de puestos en una empresaaviones a destinos aeacutereos entre otros

Capiacutetulo 2 Marco teoacuterico

Una caracteriacutestica importante de los problemas de asignacioacuten es que se asigna untrabajador una tarea a una sola maacutequina proyectoEn particular se busca elconjunto de asignaciones que optimice el objetivo planteado tal como minimizar costosminimizar tiempo o maximizar utilidad

La formulacioacuten del problema general de asignacioacuten es

Sujeta a

Corresponde a un caso especial del problema del transporte en el cual las variables Xijsoacutelo pueden tomar el valor 0 oacute 1 tomar el valor 1 si el origen i se hace corresponder aldestino j y 0 en caso contrario

El Algoritmo Huacutengaro

Este algoritmo se usa para resolver problemas de minimizacioacuten ya que es maacutes eficazque el empleado para resolver el problema del transporte por el alto grado dedegeneracioacuten que pueden presentar los problemas de asignacioacuten Las fases para laaplicacioacuten del meacutetodo Huacutengaro son

Capiacutetulo 2 Marco teoacuterico

Paso 1 Encontrar primero el elemento maacutes pequentildeo en cada fila de la matriz de costosmm se debe construir una nueva matriz al restar de cada costo el costo miacutenimo de cadafila encontrar para esta nueva matriz el costo miacutenimo en cada columna A continuacioacutense debe construir una nueva matriz (denominada matriz de costos reducidos) al restar decada costo el costo miacutenimo de su columna

Paso 2 (En algunos pocos textos este paso se atribuye a Flood) Consiste en trazar elnuacutemero miacutenimo de liacuteneas (horizontales o verticales o ambas uacutenicamente de esasmaneras) que se requieren para cubrir todos los ceros en la matriz de costos reducidos sise necesitan m liacuteneas para cubrir todos los ceros se tiene una solucioacuten oacuteptima entre losceros cubiertos de la matriz Si se requieren menos de m liacuteneas para cubrir todos losceros se debe continuar con el paso 3 El nuacutemero de liacuteneas para cubrir los ceros es iguala la cantidad de asignaciones que hasta ese momento se pueden realizar

Paso 3 Encontrar el menor elemento diferente de cero (llamado k) en la matriz decostos reducidos que no estaacute cubierto por las liacuteneas dibujadas en el paso 2 acontinuacioacuten se debe restar k de cada elemento no cubierto de la matriz de costosreducidos y sumar k a cada elemento de la matriz de costos reducidos cubierto por dosliacuteneas (intersecciones) Por uacuteltimo se debe regresar al paso 2

Notas

1 Para resolver un problema de asignacioacuten en el cual la meta es maximizar la funcioacutenobjetivo se debe multiplicar la matriz de ganancias por menos uno (-1) y resolver elproblema como uno de minimizacioacuten

2 Si el nuacutemero de filas y de columnas en la matriz de costos son diferentes el problemade asignacioacuten estaacute desbalanceado El meacutetodo Huacutengaro puede proporcionar una solucioacutenincorrecta si el problema no estaacute balanceado debido a lo anterior se debe balancearprimero cualquier problema de asignacioacuten (antildeadiendo filas o columnas ficticias) antes deresolverlo mediante el meacutetodo Huacutengaro

3 En un problema grande puede resultar difiacutecil obtener el miacutenimo nuacutemero de filasnecesarias para cubrir todos los ceros en la matriz de costos actual Se puede demostrarque si se necesitan j liacuteneas para cubrir todos los ceros entonces se pueden asignarsolamente j trabajos a un costo cero en la matriz actual esto explica porqueacute terminacuando se necesitan m liacuteneas

Capiacutetulo 2 Marco teoacuterico

Tambieacuten han aparecido meacutetodos no convencionales que atacan el problema desdediferentes aacutengulos Los maacutes usuales son

Algoritmos Geneacuteticos Redes Neuronales Recocido Simulado Buacutesquedas Tabuacute Sistemas Expertos Programacioacuten Loacutegica de Restricciones Grafos Coloreados Operadores Recombinatorios Especializados

2122 Algoritmos Geneacuteticos

Los Algoritmos Geneacuteticos han sido utilizados satisfactoriamente para planear exaacutemenesy cursos en cierto nuacutemero de casos [Corne 1993] utiliza una buena aproximacioacutentradicional donde cada gene representa la hora en la cual se presentaraacute un examen ocurso Con operadores de cruzamiento y mutacioacuten como los mencionadosanteriormente agrega sustanciosos ahorros de tiempo al meacutetodo de Corne [Paechter1994] da una aproximacioacuten diferente donde el gene de cada examen no solo especificaldquoel cuandordquo sino que tambieacuten busca un nuevo horario del examen si despueacutes delcruzamiento el curso esta causando un conflicto Si el examen no puede ser programadoen alguna hora entonces no se agrega a la planeacioacuten con la finalidad de no tenerhorarios infactibles

[Burke1994] incorpora dominios de conocimiento especiacutefico para asegurar que ningunade las soluciones candidato es no factible En particular una representacioacuten directa seutilizada que incluye no soacutelo el cuaacutendo sino tambieacuten el doacutende un curso o examendeberaacuten ser tomados permitiendo al programador de horarios detener la ejecucioacuten delalgoritmo en cualquier punto y tener ya una serie de soluciones de buenos horariosfactibles

2123 Programacioacuten Loacutegica de Restricciones

Varios autores han presentado teacutecnicas de Programacioacuten Loacutegica de Restricciones pararesolver problemas de asignacioacuten de horarios pero eacuteste sigue siendo un nuevo enfoqueTambieacuten han aparecido algunos usando PLR para la planeacioacuten de clase-maestro[Yoshikawa 1994]

Kang y White presentaron una buena aproximacioacuten estaacutendar de PLR programandocursos sin permitir ningun conflicto [Kang y White 1994] Ellos usaron una teacutecnica dereversa equivalente al backtracking con lo cual cuando un curso no puede ser

Capiacutetulo 2 Marco teoacuterico

asignado uno similar es desasignado y el nuevo es colocado en su lugar Esto previeneuna buacutesqueda exhaustiva completa Esto tambieacuten introduce el concepto de undelimitador de tamantildeo que establece un maacuteximo en el tamantildeo del aula que puede usarun curso en particular Las restricciones son priorizadas en cinco diferentes categoriacuteasdonde la categoriacutea cinco debe ser liberada antes que la categoriacutea cuatro y asiacute con lasdemaacutes Este procedimiento fue utilizado para programar exitosamente los cursos de laUniversidad de Otawa

Tambieacuten se ha utilizado la teacutecnica de la Programacioacuten Loacutegica de Restricciones parahacer los horarios de una facultad utilizando una regla heuriacutestica para seleccionar quecurso asignar primero [Fahrion y Dollanski 1992]

2124 Redes Neuronales

De las distintas categoriacuteas de las Redes Neuronales Artificiales la maacutes apropiada pararesolver el problema es la familia de las Redes Neuronales de reaccioacuten basadas enneuronas multiestado con ecuaciones de teoriacutea de campos con significado controlandolas dinaacutemicas Las ecuaciones anteriores son usadas en lugar de los procedimientospara actualizacioacuten de demanda estocaacutesticos que han sido usados por otros esquemas paraevitar quedar atorados en circuitos locales miacutenimos [Carrasco 2004]

2125 Recocido Simulado

Recocido Simulado se refiere al uso de una teacutecnica de optimizacioacuten combinatoria odiscreta Divide el problema en grupos del mismo tiempo de clase los cuales sonespecificados por cada departamento acadeacutemico basados en la habilidad de losinstructores Funciona asiacute

1 El proceso asigna aulas procesando un grupo a la vez empezando con el primero2 El proceso continuacutea hasta que todos los grupos son procesados3 Cuando una solucioacuten es obtenida dividiendo el problema en conjuntos de horario

una mutacioacuten especial es generada con grupos traslapados Esto podriacutea generar unamala asignacioacuten de aula para minimizar esto se utiliza el siguiente paso

4 Los grupos son procesados basados en el nuacutemero de aulas este nuacutemero de aulas esoptimizado y se termina con las horas de clase con el miacutenimo de paquetes a esa hora

5 La implementacioacuten del programa genera una base de datos con la nueva asignacioacutende salones para el proacuteximo semestre [Abramson 1991]

2126 Operadores Recombinatorios Especializados

Los operadores de cruzamiento de los Algoritmos Geneacuteticos producen buenas

Capiacutetulo 2 Marco teoacuterico

combinaciones de genes para ser pasados entre los diferentes miembros de unapoblacioacuten En los Algoritmos Geneacuteticos estaacutendar es un procedimiento similar a escogerlos primeros n genes del primer padre y los uacuteltimos del segundo padre esteprocedimiento no es uacutetil en situaciones donde existen fuertes restricciones sobre laforma de los miembros de la poblacioacuten aquiacute un operador violaraacute esos requerimientosEl operador de recombinacioacuten heuriacutestico hiacutebrido trabaja asiacute

1 Los grupos no programados del periodo anterior son pasados al algoritmo2 Primero selecciona aquellos grupos programados en el periodo i en los padres 1 y 23 Los grupos extra son seleccionados de aquellos programados en el periodo i ya sea

del padre 1 o del padre 2 o de los dejados del periodo i ndash 14 Cualquiera de los grupos no programados es pasado al periodo i+15 Soacutelo los grupos que no crean conflicto con aquellos ya programados para este

periodo pueden ser seleccionados [Wilke 2002]

2127 El Sistema Experto Basado en Reglas

Los Sistemas Basados en Reglas proporcionan un buen punto de referencia para saberque tan buenos son otros meacutetodos en comparacioacuten a esta teacutecnica estaacutendar Varias deestas reglas son usadas para proporcionar sensibles elecciones para los movimientos enel algoritmo de Recocido Simulado en lugar de seleccionar cambios de manera aleatoriase ha usado este sistema como un preprocesador para generar una buena aproximacioacuteninicial y darla al Recocido Simulado

El Sistema Experto Basado en Reglas consiste en un nuacutemero de reglas (o heuriacutesticas) yrecursioacuten convencional para ayudar en la generacioacuten de asignacioacuten de clases Lasestructuras de datos o componentes del sistema son

bull Una matriz de distancias entre los departamentos acadeacutemicos y los edificios queseraacuten utilizados

bull Estructura de los datos de las materias para cada grupo programado en el campobull Estructura para las aulas (independientemente del tipo de aula) involucradas en el

procesobull Horarios para cada periodo de tiempo guardando cuales estaacuten disponibles y

cuales ya fueron ocupadasbull La estructura de los departamentosbull Las preferencias de los estudiantes indicando las clases requeridas

independientemente del semestre que sean las materias [Gervaacutes 1999]

Capiacutetulo 2 Marco teoacuterico

213 Observaciones realizadas a algunos paquetes generadores de horarios

Nombre DeMIStDescripcioacuten Puede describirse como un paquete que realiza bien las operaciones decasa (la propia universidad que lo creoacute) pero salioacute tan costoso como si hubierancomprado un paquete [Demist 2000]Proveedor DeMISt University

KnowTISEs un proyecto iniciado por la universidad de Leeds En la literatura aparece como unpaquete que es mejor para la generacioacuten de Grandes Horarios para una universidad quepara un departamento Utiliza el beneficio de gran cantidad de informacioacutencentralizada para la optimizacioacuten de recursos [Schedul 2000]Leeds University

STARSSTARS(Space Time and Resources Management) Igual que el anterior corre mejor enla elaboracioacuten de horarios de buen tamantildeo que en una aplicacioacuten departamentalDe Montfort University

Meeting maker Office TalkEs un generador de clases y acciones diarias es bueno cuando no es uacutetil el horario delos alumnos ya que proporciona uacutenicamente los espacios para las clases [Gervaacutes 1999]Varios proveedores

GP-UNTISEs un paquete australiano que funciona perfectamente para los requerimientos de lasescuelas secundariasTimetabling Services UK

Syllabus PlusEs una buena opcioacuten para uso departamental cumple los requerimientos de unauniversidad para la generacioacuten de horarios no trabaja a nivel de estudiantes pero si lohace con grupos de ellos no es factible para la generacioacuten de Grandes HorariosScientia LTD

Facility TimetablerEs una buena opcioacuten para uso departamental y para Grandes Horarios tiene interfaz conlos sistemas de alumnos y permite la creacioacuten de horarios individuales permite el uso

Capiacutetulo 2 Marco teoacuterico

centralizado de las aulas para una buena optimizacioacutenFacility Systems

Mimosa for WindowsEs un software general de planificacioacuten de la ensentildeanza y de programacioacuten de horariosLa aplicacioacuten utiliza todas las propiedades de Windows eficientemente es raacutepida tienegran capacidad y lo mas importante es tan flexible que puede aplicarse en todo el tipode escuelas desde la escuela primaria a las universidades desde las escuelasvocacionales a las academias militares

Se podriacutea decir que este producto cubririacutea todas las necesidades de la institucioacuten perohan existido algunos inconvenientes ya que no cubre con las necesidades deldepartamento tan solo da ayuda al usuario para que pueda generar sus horarios ademaacutesel tener tantos botones en pantalla (200) podriacutean confundir al usuario y realizar horarioserroacuteneos y no se resolveriacutea el problema [Nielsoft 2000]Mimosa Software Oy Finlandia

GestHor BSPEs un producto informaacutetico para resolver problemas de horarios escolares en escuelasbaacutesicas escuelas secundarias y escuelas profesionales

Toacutemese en cuenta que la mayoriacutea de los sistemas mencionados se enfoca solo a laasignacioacuten aula ndash materia y no abarca lo que es asignacioacuten materia ndash profesor

22 Los horarios

Existe mucha literatura referente a los horarios con una gran variedad de subtiacutetulos ydiferentes problemas Una gran variedad de algoritmos han sido propuestos empleandometodologiacuteas y heuriacutesticas de buacutesqueda produciendo horarios completos o soacuteloayudando durante el proceso Una de las grandes preguntas para la elaboracioacuten dehorarios es que si eacutestos pueden ser generales es decir iquestse puede encontrar un algoritmoo meacutetodo suficientemente general que produzca buenos horarios para todos losproblemas y para todas las restricciones La alternativa desde luego es continuardesarrollando algoritmos especializados aislados cada vez que un problema de horariosaparece

Al trabajar con una solucioacuten para el problema de los horarios se deben contestar lassiguientes preguntas iquestTodas las escuelas de nivel superior elaboran los horarios de lamisma manera iquestSon grandes o pequentildeas las diferencias en la forma de elaborar loshorarios iquestQueacute tan necesaria es la ayuda de la computadora iquestSoacutelo se requiere unpaquete general para la elaboracioacuten de los horarios iquestQueacute funcionalidad debe tener

Capiacutetulo 2 Marco teoacuterico

dicho paquete iquestQueacute tan grande y complejo es el problema de elaboracioacuten de horariosiquestQueacute propiedades debe poseer un horario aceptable para que una institucioacuten lo use

Se han realizado algunas encuestas para conocer si las escuelas de nivel superior tienensistemas computarizados para la elaboracioacuten de horarios si no los tienen si lonecesitaban y queacute caracteriacutesticas deberiacutea poseer El estudio concluyoacute que existe una grandemanda para tal sistema que se requiere un alto grado de asistencia automatizada yque la mayoriacutea de los elaboradores de horarios no estaban muy contentos con sussistemas actuales [Comm y Mathaisel 1988]

[Dowsland y Lim 1982] consideraron el problema de la elaboracioacuten de horarios peroproporcionaron alternativas en la encuesta de la utilidad de sistemas automatizados[Junginger 1986] establece que ldquoAunque los horarios producidos requierenmodificacioacuten las escuelas estaacuten contentas con los resultados El tiempo ahorrado fueconsiderable arriba del 75rdquo Dowsland por otro lado concluye que ldquoEs muy difiacuteciljuzgar el eacutexito actual de los paquetes para la elaboracioacuten de horarios pero el uso muylimitado de ellos sugiere que sus ventajas son limitadasrdquo Claramente ninguacuten disentildeadorde sistemas puede garantizar la idea de que su producto seraacute bienvenido con los brazosabiertos

[Pendlebury 1986] encuestoacute a las universidades politeacutecnicas britaacutenicas con respecto ala elaboracioacuten de horarios de cursos Doce de las treinta que contestaron la encuestautilizan elaboracioacuten de horarios por computadora (siete a gran escala y cuatro lo hacenen pequentildea escala) Es interesante notar que Pendlebury encontroacute que la mayoriacutea de loscursos se basan en clases que son muy independientes unas de otras y en la mayoriacutea delas instituciones encuestadas los departamentos individuales son responsables deproducir sus propios horarios

221 El problema de la elaboracioacuten de horarios

La elaboracioacuten de horarios es el acto de programar cursos a periacuteodos de tiempo asignarun aula a esos cursos y asignar un catedraacutetico a dicho curso

A menudo se hacen afirmaciones acerca de la naturaleza del problema que puedenpermitir encontrar una solucioacuten maacutes eficientemente Sin embargo cuando se trata deconstruir un sistema general se estaacute limitado a que las afirmaciones son el miacutenimocomuacuten denominador de todos los posibles escenarios

Una informacioacuten impliacutecita que ha sido hecha a menudo es la independencia entreunidades acadeacutemicas separadas Algunas universidades programan preguntando a susdepartamentos los horarios de sus propios cursos Una unioacuten central de dichos horarioses entonces utilizada para asegurar que todas las restricciones relevantes son cumplidasEn muchos casos esta es la forma normal en que es producido el horario de los cursos

Capiacutetulo 2 Marco teoacuterico

aunque algunos departamentos desarrollan su propio software para la programacioacuten decursos

En varias universidades los alumnos pueden tomar algunos de sus cursos endepartamentos diferentes al suyo Obviamente la independencia no debe ser asumidageneralmente debido a que puede haber diferencia en la programacioacuten de los cursos decada departamento En el Tecnoloacutegico de Zacatepec por ejemplo la probabilidadpromedio de que un curso tenga conflicto con uno de otro departamento es 1650mientras que la probabilidad de que dos cursos del mismo departamento tengan conflictoes 2250 notaacutendose una gran diferencia en el resultado

Dificultades encontradas por los responsables de la generacioacuten de horarios

Algunas dificultades experimentadas por los departamentos y facultades sonmencionadas aquiacute

bull Los programas acadeacutemicos se hacen cada vez maacutes flexibles (los estudiantesseleccionan queacute asignaturas tomar cuaacutendo doacutende y con quieacuten)

bull Algunos departamentos tienen asignaturas para ofrecer pero no tienen muchosalumnos

bull Los espacios para ofrecer las materias son cada vez menos y el problema se agravacuando los alumnos no quieren asistir en las tardes o los saacutebados

bull El staff de profesores no siempre estaacute disponible para impartir clases por muacuteltiplesrazones

bull Los alumnos pueden solicitar los grupos del proacuteximo semestre desde antes de queinicie pero al llegar el momento de inscribirse no lo hacen

bull Los departamentos estaacuten ansiosos por ofrecer una gran variedad de grupos teniendolos recursos pero esto puede ocasionar problemas

bull Existe una gran variedad de reglas al momento de asignar las aulas (pertenencia alas carreras prioridades de profesores etc)

bull Como no hay un costo asociado a la utilizacioacuten de un aula y no hay sanciones porreservarla y no utilizarla los departamentos acadeacutemicos no tienen un buen motivopara hacer una correcta utilizacioacuten del espacio

bull La falta de recursos ocasiona el mayor de los problemas porque obliga a laoptimizacioacuten en la planeacioacuten

Cursos y estudiantes

El problema de la elaboracioacuten de horarios estaacute relacionado esencialmente con el nuacutemerode eventos que requieren ser programados en este caso los cursos para los estudiantesClaramente el tamantildeo del problema variacutea entre los diferentes centros de estudio desdepequentildeos problemas con alrededor de 50 a 100 cursos hasta los 500 o 1000 cursos que

Capiacutetulo 2 Marco teoacuterico

programar Esta variacioacuten en el tamantildeo afectaraacute el tiempo requerido para resolver elproblema Un problema pequentildeo puede ser resuelto casi de manera oacuteptima mientrasque en uno grande se deben usar buacutesquedas heuriacutesticas u otras formas de acotar elespacio de buacutesqueda de una solucioacuten en un periodo de tiempo razonable

Se debe esperar que el nuacutemero de cursos y el nuacutemero de alumnos esteacuten correlacionadosEl nuacutemero de cursos ofrecidos y desde luego programados debe ser calculado porextrapolacioacuten del promedio de 5 o 6 cursos por alumno y con cupo promedio de 30alumnos por curso obviamente algunos alumnos se inscribiraacuten en 7 u 8 cursos porsemestre mientras que los cursos tendraacuten inscritos entre 20 y 40 alumnos Losalumnos dependiendo del semestre en que se encuentran inscritos deben matricularse aciertos cursos especiacuteficos para ese semestre dichos cursos deben programarse de maneraque los alumnos tengan la menor cantidad de tiempo entre el primer y el uacuteltimo cursodel diacutea permitieacutendoles con esto realizar actividades complementarias

En el Tecnoloacutegico de Zacatepec para una carrera con 900 alumnos se requieren ofertaraproximadamente entre 140 y 160 cursos ademaacutes los estudiantes pueden matricularse encursos ofrecidos por otros departamentos (esto ampliacutea el rango de posibilidades para losalumnos)

Los cursos y los departamentos

El promedio de los cursos ofrecidos por cada departamento variacutea considerablementeentre las diferentes escuelas de nivel superior La razoacuten de esta variabilidad puede servista como un indicador de la naturaleza de la complejidad de la planeacioacuten de horarios

Cada departamento ofrece cursos a los estudiantes de las carreras a las que da soportedirecto pero ademaacutes debe ofrecer cursos para todas las otras carreras de la institucioacutenque lo requieran esto es si un departamento X solicita la apertura de determinadonuacutemero de cursos a un departamento Y el departamento Y debe ofertar los cursossolicitados por X para los alumnos matriculados en el departamento X aunado a estoalgunos cursos ofertados por el departamento Y tienen compatibilidad con cursosofrecidos por X y por lo tanto los estudiantes de Y y X pueden ingresar indistintamenteen cualquiera de los cursos

Los cursos los semestres y las horas

Una de las afirmaciones que se pueden hacer en las instituciones de nivel superior es quelos cursos generalmente inician durante cierto periodo de tiempo y pueden tenerduracioacuten semestral (la gran mayoriacutea) trimestral y sin fechas predeterminadas (algunosposgrados por ejemplo) En general los cursos empiezan a las 700 AM y terminandependiendo del lugar a las 2000 o a las 2100 horas de lunes a saacutebado Aunque estopermite tener un amplio margen de horas para programar los cursos esto hace tambieacuten

Capiacutetulo 2 Marco teoacuterico

aun maacutes difiacutecil la elaboracioacuten de los horarios porque aumenta el rango de posiblescombinaciones donde programar cursos

Los cursos se pueden programar en periodos de tiempo muy variados aunque la mayoriacuteade los programadores de horarios siguen los siguientes patrones

bull Curso diario de 1 horabull Curso de dos horas en diacuteas saltados (lunes y mieacutercoles jueves y viernes

mieacutercoles y viernes)bull Curso de dos horas diarias 3 diacuteas por semana (lunes mieacutercoles y viernes)

(lunes martes y jueves) o (martes jueves y viernes)bull Cursos de cuatro horas en un solo diacutea por semanabull En el peor de los casos se programan cursos con la combinacioacuten de algunos

de los anteriores

Dependiendo del curso algunos tienen duracioacuten de cuatro horas teoacutericas semanales otroscombinan cuatro horas de teoriacutea y dos de praacutectica y algunos excepcionalmente sonprogramados con cuatro horas de praacutectica y dos de teoriacutea Las horas de praacutecticageneralmente se realizan en laboratorios o praacutecticas de campo agregando esto un nuevoparaacutemetro para la complejidad de la elaboracioacuten de horarios

Los cursos y las aulas

Las aulas son el espacio fiacutesico donde se impartiraacuten los cursos pueden ser salones declase laboratorios salones de exposicioacuten aulas para aplicacioacuten de exaacutemenes aulas paraactividades deportivas musicales o recreativas cada aula tiene capacidad para quecierto nuacutemero definido de estudiantes reciba sin problema unidades de ensentildeanzaaprendizaje

En una encuesta realizada por la Universidad de Nottingham [Burke y Elliman 1998] sedefinioacute que la programacioacuten de los cursos en las aulas es uno de los mayores problemasa los que se enfrentan los responsables de la elaboracioacuten de horarios Esto proviene dedos problemas mayores El primer problema es la escasez de aulas disponibles ya queen algunas de las escuelas de nivel superior el crecimiento de la poblacioacuten estudiantil hasido mayor que el crecimiento del nuacutemero de aulas disponibles para la ensentildeanza Elsegundo problema ocurre cuando se programa un curso en mas de un aula o saloacuten declase

La ocupacioacuten de las aulas es variable de acuerdo al departamento para el que seaasignada algunos prefieren utilizarlas al maacuteximo en el turno matutino otros en el turnovespertino tienen ocupacioacuten total algunos las utilizan exhaustivamente de lunes ajueves unos departamentos las llenan los viernes y saacutebados y otros tienen que utilizarlastodo el diacutea de lunes a saacutebado inclusive solicitan prestadas a los otros departamentosaquellos espacios que no son utilizados en alguacuten diacutea y hora a la semana

Capiacutetulo 2 Marco teoacuterico

Para el Tecnoloacutegico de Zacatepec el recurso llamado las aulas debe ser optimizado enuna buena planeacioacuten de horarios esto es deben ser utilizadas al maacuteximo todos los diacuteasde la semana desde las 700 hasta las 2100 de lunes viernes y los saacutebados hasta las1500 horas

Tipos de cursos

Una de las cosas a tomarse en cuenta durante la elaboracioacuten de los horarios es el tipo decurso a programar

bull Teoacutericos como los cursos matemaacuteticos cursos de administracioacuten etcbull Teoacuterico praacutecticos como los cursos de electroacutenica sistemas digitalesbull Lenguajes de programacioacutenbull Con praacutecticas de campo que deben salir al aire librebull Con praacutecticas de quiacutemica

Otra consideracioacuten es el tipo de aula requerida por los diferentes tipos de cursos

bull cursos que requieren medios audiovisuales simples (pizarroacuten y gis)bull algunos cursos adicionalmente requieren proyectores de acetatos y salas

obscurecidasbull cursos que requieren equipo de coacutemputo equipo de proyeccioacuten equipo de video y

televisioacuten para el desarrollo de la caacutetedra etcbull cursos que requieren laboratorios con computadorasbull que requieren equipos de medicioacuten electroacutenica generadores de sentildeales enchufes

eleacutectricos ybull cursos que requieren mesas tomas eleacutectricas y equipos para conexioacuten de redes

Los cursos y los catedraacuteticos

Definitivamente eacutesta es una de las principales consideraciones que tienen en cuenta losprogramadores de horarios la asignacioacuten de los cursos a los catedraacuteticos porque es unproceso que no puede realizarse de manera aleatoria es un proceso delicado porque deesto depende la efectividad del proceso de ensentildeanzandashaprendizaje

Los catedraacuteticos tienen caracteriacutesticas individuales que los hacen uacutenicosindependientemente de la profesioacuten que hayan estudiado Tienen intereses diferentesmeacutetodos diferentes aacutereas de preferencia diferentes perfil profesiograacutefico distinto tienenactividades extralaborales variadas asiacute que

iquestCoacutemo asignarle un curso a un catedraacutetico para que logre un oacuteptimo resultado en el

Capiacutetulo 2 Marco teoacuterico

proceso de ensentildeanza-aprendizajeiquestCoacutemo garantizar que el curso asignado a un profesor seraacute bien impartidoiquestCoacutemo saber que el profesor estaacute capacitado para ofrecer un buen cursoiquestCuaacuteles son los requisitos que debe reunir un profesor para impartir cierto cursoiquestDependen soacutelo de la profesioacuten los cursos que puede impartiriquestCoacutemo conocer de antemano las preferencias de los profesoresiquestEl nivel de estudio de los profesores les capacita para impartir cualquier cursoiquestDeben los profesores ser guiados a una especialidad por los programadores dehorarios

Las respuestas a todas estas preguntas incorporadas en un sistema generador de horariosiquestpermitiraacuten hacer una buena asignacioacuten de catedraacutetico a un curso

El condensado de horarios

Es un documento emitido cada semestre por los responsables de la elaboracioacuten de loshorarios que contiene la informacioacuten requerida por los alumnos jefes de departamento ycatedraacuteticos para conocer la distribucioacuten de las materias los grupos las aulas las horasy los catedraacuteticos que impartiraacuten los cursos en otras palabras el condensado de materiases el documento final de los HORARIOS que marcaraacute las acciones de todos el semestreactual

23 El proceso de la elaboracioacuten de horarios

El proceso de la elaboracioacuten de horarios abarca cada accioacuten que es requerida para crearel horario final completo y correcto de los datos iniciales Esto incluye recibir validary dar formato a los datos generar la versioacuten inicial hacer las correcciones y luegoproducir el condensado final de horarios El proceso de la generacioacuten de horariosabarca

bull la generacioacuten del dato de cuantos cursos se van a ofertarbull asignacioacuten de horario a esos cursosbull proporcionar aulas a los cursosbull designar profesores para los cursos definidos

la parte difiacutecil de esto es generar los horarios con los recursos disponibles en cadadepartamento cada etapa tiene sus restricciones (fuertes y suaves) los recursos no soninagotablesEl uso de la computadora

En una encuesta realizada por la Universidad de Nottingham [Burke y Elliman 1998]referente a la forma de elaborar horarios en las demaacutes universidades se encontroacute que un

Capiacutetulo 2 Marco teoacuterico

58 de ellas utilizan la computadora en alguna etapa del proceso de eacutestas el 21 tienela facilidad de realizar la programacioacuten aunque generalmente requieren captura manualde informacioacuten y conocimientos previos del problema particular del proceso El 1tienen paquetes comerciales y el 14 tienen paquetes hechos en casa para generarhorarios y el 2 aseguran que estaacuten desarrollando o comprando un paquete

Dado el tamantildeo de los horarios de dichas universidades es sorprendente que muchas notengan alguna forma de automatizacioacuten Esto se debe en la mayoriacutea de los casos a quelos horarios no cambian significativamente de un antildeo a otro Sin embargo de lasuniversidades que no programan horarios por computadora la mitad usa el horario delantildeo pasado y la otra mitad empiezan desde cero cada vez Cuando no se usa el horariodel antildeo pasado generalmente toma 4 semanas elaborar uno nuevo En la mayoriacutea de loscasos donde se usa la computadora generalmente no se toma en cuenta el horario delantildeo anterior

Causas de cambio de los horarios antildeo tras antildeo

Para que un horario pueda ser usado antildeo tras antildeo debe ser lo suficientemente robustopara que los cambios que ocurran en los datos de entrada produzcan soacutelo una pequentildeaalteracioacuten o modificacioacuten en el condensado final de horarios El uso del condensado delantildeo pasado depende en la cantidad de cambios que deben hacerse y esto a su vezdepende de cuanto cambie la cantidad de grupos que deben ofertarse para cadaasignatura y esto depende de la cantidad de alumnos que pueden cursar una asignaturaahora bien la cantidad de alumnos estaacute en funcioacuten de los iacutendices de aprobacioacuten yreprobacioacuten del periodo de los alumnos que por alguna razoacuten no cursaron unaasignatura y de la cantidad de grupos ofertados el periodo pasado

Si cambia la cantidad de horas frente a grupo asignada a un departamento entoncescambiaraacute el condensado de horarios con respecto al del antildeo pasado porque eso afectadirectamente en la cantidad de cursos que podraacute ofertarse este periodo este es uno de losrecursos maacutes variables que influyen para hacer cambios en los condensados antildeo trasantildeo

La redistribucioacuten de aulas y laboratorios (que no se realiza a menudo) llega tambieacuten ainfluir en los cambios

El cambio de horario matutino a vespertino (o viceversa) solicitado por un catedraacuteticoque es el especialista en impartir cierto curso ocasiona los cambios del condensado dehorarios del antildeo anterior al nuevo

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

CAPIacuteTULO 3

TEacuteCNICAS DE INTELIGENCIA ARTIFICIAL UTILIZADASPARA LA GENERACIOacuteN DE HORARIOS

31 Sistemas Expertos (SE)Bajo el teacutermino de Sistemas Expertos se entiende un nuevo tipo de software que imita elcomportamiento de un experto humano en la solucioacuten de un problema Un SE puedealmacenar conocimientos de expertos para un campo determinado y solucionar unproblema mediante razonamiento loacutegico de conclusiones

Los Sistemas Expertos son sistemas que buscan modelar el conocimiento yprocedimientos usados por un experto humano para resolver un problemadeterminado[Saacutenchez 1999]

iquestUn Sistema Experto utiliza teacutecnicas de la Inteligencia Artificial (IA)

Los Sistemas Expertos son uno de los puntos que componen las investigaciones en elcampo de la IA Un sistema de computadoras que trabaje con teacutecnicas de IA deberaacuteestar en situacioacuten de combinar informacioacuten de forma ldquointeligenterdquo alcanzarconclusiones y justificarlas (al igual que el resultado final) Los Sistemas Expertos sonuna expresioacuten de los sistemas basados en el conocimiento Con la aplicacioacuten de teacutecnicasde Inteligencia Artificial finaliza la transicioacuten del procesamiento de datos alprocesamiento de conocimientos

Un Sistema Experto es un sistema informaacutetico que simula el proceso de aprendizaje dememorizacioacuten de razonamiento de comunicacioacuten y de accioacuten de un experto humano enuna determinada rama o dominio Estas caracteriacutesticas le permiten almacenar datos yconocimiento sacar conclusiones loacutegicas tomar decisiones aprender de la experiencia ylos datos existentes comunicarse con humanos explicar el porqueacute de las decisionestomadas y realizar acciones como consecuencia de todo lo anterior

La incorporacioacuten dentro de un sistema de computadoras de un componente basado enel conocimiento correspondiente a una habilidad experta de tal forma que el sistemapueda ofrecer asesoramiento inteligente o tomar una decisioacuten inteligente sobre unafuncioacuten del proceso Una caracteriacutestica adicional deseable que muchos consideranfundamental es la capacidad del sistema si se le solicita de justificar su propia liacutenea derazonamiento de un modo directamente inteligible para el interrogador El estiloadoptado para alcanzar estas caracteriacutesticas es la programacioacuten basada en reglas[Waterman 1986]

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

311 Funcioacuten de un Sistema Experto

La funcioacuten de un Sistema Experto es aportar soluciones a problemas de un dominioespeciacutefico imitando la forma de razonamiento de los seres humanos es decir el SistemaExperto debe ser capaz de mostrar soluciones inteligentes [Giarratamo 1998]

Acceder a los conocimientos adquiridos por experiencia es lo maacutes difiacutecil ya que losexpertos al igual que otras personas apenas los reconocen como tales Son buscadoscon mucho esfuerzo y cuidado siendo descubiertos de uno en uno poco a poco

Ventajas del Sistema Experto

Experto Humano Experto ArtificialMortal PermanenteDifiacutecil de documentar Faacutecil de documentarDifiacutecil de transferir Faacutecil de transferirImpredecible ConsistenteMaacutes caro Menos caro

Ventajas del Experto Humano

Experto Humano Experto ArtificialCreativo No creativoAdaptable Requiere mantenimientoExperiencia sensorial Entrada simboacutelicaConocimiento de sentido comuacuten Conocimiento teacutecnico

312 Arquitectura de Sistemas Expertos [Gines 1986] [Giarratamo 1998]

La arquitectura general de un SE (Fig 31) estaacute compuesta fundamentalmente de

bull Base de Conocimiento Representa el conocimiento adquirido del expertohumano incluyendo experiencia sentido comuacuten e intuicioacuten

bull Motor de Inferencia Decide que se debe aplicar que se debe hacer resuelveconflictos nuevos hace uso de la base del conocimiento Proporcionamecanismos de razonamiento buacutesqueda aprendizaje etc

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

bull Interfaz Usuario Facilita la comunicacioacuten entre el Sistema Experto y el usuarioque realiza las consultas

bull Subsistema de Adquisicioacuten Mejor conocido como la Interfaz de Expertopermite ingresar el conocimiento a la Base de Conocimientos por parte delhumano experto en alguacuten dominio de conocimiento

bull Subsistema de explicaciones Permite dar a conocer los resultados obtenidospor el Sistema Experto

313 La base de conocimiento

El enfoque maacutes comuacuten para representar el dominio del conocimiento que se requierepara un SE son las reglas de produccioacuten Estas pueden ser referidas como reglasldquosituacioacuten-accioacutenrdquo o ldquoif-thenrdquo De esta forma con frecuencia una base deconocimientos estaacute fraguada principalmente de reglas las cuales son invocadas por uncasamiento de patrones con las particularidades de las tareas circunstanciales que vanapareciendo en la base de hechosLas reglas en una base de conocimientos representan el dominio de hechos y laheuriacutestica de un buen juicio de acciones a tomar cuando uno llega a situacionesespeciacuteficas La fuerza de un SE yace en el conocimiento especiacutefico del dominio delproblema Casi todos los sistemas existentes basados en reglas contienen cientos o milesde ellas y generalmente se obtienen de entrevistas con expertos durante un tiempo largoEn cualquier SE las reglas se conectan una a otra por ligas de asociacioacuten para formar

Base de

Motor de

Subsistema deadquisicioacuten

del

Subsistemade

explicacione

Interfazde

usuario

Ingeniero delconocimiento y experto Usuario

Base de hechos

Figura 31 Arquitectura de un Sistema Experto

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

redes de reglas Una vez que han sido ensambladas tales redes entonces se tiene unarepresentacioacuten de un cuerpo de conocimientos que es sustancial

Generalmente un experto tiene muchas reglas de criterio empiacutericas por lo que el soportesuele ser incompleto para la evidencia que se dispone En tales casos una teacutecnica es la devincular valores numeacutericos a cada regla para indicar el grado de certidumbre que eacutestatiene En la operacioacuten de SE los valores de certidumbre se combinan unos a otros atraveacutes de la red considerando tambieacuten la certidumbre de los datos de entrada delproblema para llegar finalmente a un valor de certidumbre de la solucioacuten final

314 El motor de inferencias

El sistema experto modela el proceso de razonamiento humano con un moacutedulo conocidocomo el motor de inferencia Dicho motor de inferencia trabaja con la informacioacutencontenida en la base de conocimientos y la base de hechos para deducir nuevos hechosContrasta los hechos particulares de la base de hechos con el conocimiento contenido enla base de conocimientos para obtener conclusiones acerca del problemaEl modelo de problema - solucioacuten y sus meacutetodos organizan y controlan las etapas que sevan tomando para la resolucioacuten de problemas Un modelo muy poderoso y comuacuten es elde encadenar las reglas `` if-then-else con el fin de formar alguna liacutenea derazonamiento Si el encadenamiento se inicia a partir de un conjunto de condiciones y semueve hacia alguna conclusioacuten el meacutetodo se llama encadenamiento hacia adelante y ensu caso contrario el encadenamiento es hacia atraacutes

Un problema de encadenamiento hacia adelante sin una apropiada heuriacutestica de podaderivaraacute muchas soluciones de las cuales no todas son necesarias En el caso deencadenamiento hacia atraacutes es necesario tambieacuten trabajar con una heuriacutestica apropiadacon la finalidad de poder manejar submetas conjuntivas En general para atacar elproblema de conjuncioacuten es necesario encontrar un caso en donde todas las submetasinteractuantes se satisfagan Pero con frecuencia una buacutesqueda de tal naturaleza nos dauna explosioacuten combinatoria de posibilidades Es por esta razoacuten que el dominioapropiado de la heuriacutestica y su esquema inferencial deberaacuten ser encontrados para cadatipo de problemas para que de esta manera se tenga un SE eficaz y eficiente

315 iquestPor queacute utilizar un Sistema Experto [Pluss 1999] [Sanchez 1999]

1 Con la ayuda de un Sistema Experto personas con poca experiencia pueden resolverproblemas que requieren un conocimiento formal especializado

2 Los Sistemas Expertos pueden obtener conclusiones y resolver problemas de formamaacutes raacutepida que los expertos humanos

3 Los Sistemas Expertos razonan pero basaacutendose en un conocimiento adquirido y notienen sitio para la subjetividad

Capiacutetulo 2 Marco teoacuterico

4 El uso de Sistemas Expertos es especialmente recomendado en las siguientessituaciones

bull Cuando los expertos humanos en una determinada materia son escasos

bull En situaciones complejas donde la subjetividad humana puede llevar aconclusiones erroacuteneas

bull Cuando es muy elevado el volumen de datos que ha de considerarse paraobtener una conclusioacuten

316 Construccioacuten de prototipos [Turban 1995]

En el desarrollo de Sistemas Expertos se plantean dos importantes riesgos

1- No existen implementaciones similares que puedan servir de orientacioacuten al encargadodel desarrollo en la casi totalidad de los casos

2- En muchos puntos los requisitos necesarios estaacuten esbozados con muy poca precisioacuten

El disentildeo y la especificacioacuten requieren una temprana determinacioacuten de la interfaz delsoftware y de la funcionalidad de los componentes En el desarrollo de SistemasExpertos deben alterarse a menudo durante y tambieacuten despueacutes de su implementacioacuten yaque los requisitos se han ido configurando y han obtenido mayor precisioacuten o porque seha descubierto que deben iniciarse otras viacuteas de solucioacuten Durante el desarrollo resultamaacutes apropiado empezar con implementaciones tipo test para encontrar el camino haciauna solucioacuten definitiva y para hacerlas coincidir con las necesidades del usuario

32 Algoritmos Geneacuteticos

321 Antecedentes [Medina 2004] [Goldberg 1989] [Davis 1991]

El Algoritmo Geneacutetico es una teacutecnica de buacutesqueda basada en la teoriacutea de la evolucioacutende Darwin que ha cobrado tremenda popularidad en todo el mundo durante los uacuteltimosantildeos

Esta teacutecnica se basa en los mecanismos de seleccioacuten que utiliza la naturaleza de acuerdoa los cuales los individuos maacutes aptos de una poblacioacuten son los que sobreviven al

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

adaptarse maacutes faacutecilmente a los cambios que se producen en su entorno Hoy en diacutea sesabe que estos cambios se efectuacutean en los genes de un individuo (unidad baacutesica decodificacioacuten de cada uno de los atributos de un ser vivo) y que sus atributos maacutesdeseables se transmiten a sus descendientes cuando eacuteste se reproduce sexualmente

En 1859 Darwin publica su libro laquoEl origen de las especiesraquo El libro causoacute una granpoleacutemica en el mundo cientiacutefico por las revolucionarias teoriacuteas en eacutel contenidas que lasespecies evolucionan acorde al medio para adaptarse a eacuteste Con ello el universopasaba de ser una creacioacuten de Dios estaacutetica y perfecta desde su inicio a un conjunto deindividuos en constante competicioacuten y evolucioacuten para poder perpetuar su especie en eltiempo La existencia de una especie pasa asiacute a ser algo dinaacutemico las especies se creanevolucionan y desaparecen si no se adaptan Para cada especie animal la naturalezaproponiacutea un crudo filtro soacutelo los mejores los maacutes aptos los que mejor se adapten almedio conseguiacutean sobrevivir lo suficiente para llegar a la madurez y encontrar unapareja para perpetuar sus aptitudes que le haciacutean maacutes apto

La informaacutetica ve aquiacute un claro proceso de optimizacioacuten Se toman los individuos mejoradaptados (mejores soluciones temporales) se cruzan (se mezclan ) generando nuevosindividuos (nuevas soluciones) que contendraacuten parte del coacutedigo geneacutetico (informacioacuten)de sus dos antecesores y por lo tanto aunque el nuevo individuo no tenga que estarforzosamente mejor adaptado de hecho puede que ni la probabilidad de que el nuevoindividuo generado esteacute mejor adaptado que los padres sea alta el promedio de laadaptacioacuten de toda la poblacioacuten si mejora ya que tienden a perpetuarse y extenderse lasmejores caracteriacutesticas y a extinguirse las poco beneficiosas o perjudiciales En losAlgoritmos Geneacuteticos se crea una nueva abstraccioacuten -la poblacioacuten- cuya funcioacuten decoste mejoraraacute globalmente por lo que puede que se encuentre alguacuten individuo conmejores caracteriacutesticas

Un investigador de la Universidad de Michigan llamado John Holland era consciente dela importancia de la seleccioacuten natural y a fines de los antildeos 60 desarrolloacute una teacutecnica quepermitioacute incorporarla a un programa Su objetivo era lograr que las computadorasaprendieran por siacute mismas A la teacutecnica que inventoacute Holland se le llamoacute originalmentePlanes Reproductivos pero se hizo popular bajo el nombre Algoritmo Geneacutetico trasla publicacioacuten de su libro en 1975

En esa universidad Holland impartiacutea un curso titulado Teoriacutea de sistemas adaptativosDentro de este curso y con una participacioacuten activa por parte de sus estudiantes fuedonde se crearon las ideas que maacutes tarde se convertiriacutean en los Algoritmos GeneacuteticosLos objetivos de su investigacioacuten fueron dos

Imitar los procesos adaptativos de los sistemas naturales y Disentildear sistemas artificiales (normalmente programas) que retengan los mecanismos

importantes de los sistemas naturales

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

Unos 15 antildeos maacutes adelante David Goldberg actual delfiacuten de los Algoritmos Geneacuteticosconocioacute a Holland y se convirtioacute en su estudiante Golberg era un ingeniero industrialtrabajando en disentildeo de tuberiacuteas y fue uno de los primeros que tratoacute de aplicar losAlgoritmos Geneacuteticos a problemas industriales Aunque Holland tratoacute de disuadirleporque pensaba que el problema era excesivamente complejo Goldberg consiguioacute loque queriacutea escribiendo un Algoritmo Geneacutetico en una computadora personal Apple IIEstas y otras aplicaciones creadas por estudiantes de Holland convirtieron a losAlgoritmos Geneacuteticos en un campo con base suficiente como para celebrar la primeraconferencia en 1985 ICGAacute85 Tal conferencia se sigue celebrando bianualmente[Beasley 1993]

Una definicioacuten bastante completa de un Algoritmo Geneacutetico es la propuesta por JohnKoza es un algoritmo matemaacutetico altamente paralelo que transforma un conjunto deobjetos matemaacuteticos individuales con respecto al tiempo usando operaciones modeladasde acuerdo al principio Darwiniano de reproduccioacuten y supervivencia del maacutes apto y trashaberse presentado de forma natural una serie de operaciones geneacuteticas de entre las quedestaca la recombinacioacuten sexual Cada uno de estos objetos matemaacuteticos suele ser unacadena de caracteres (letras o nuacutemeros) de longitud fija que se ajusta al modelo de lascadenas de cromosomas y se les asocia con una cierta funcioacuten matemaacutetica que refleja suaptitud [Koza 1992] 322 Definicioacuten de AG

Los Algoritmos Geneacuteticos (AG) son meacutetodos adaptativos que pueden usarse pararesolver problemas de buacutesqueda y optimizacioacuten Estaacuten basados en el proceso geneacutetico delos organismos vivos A lo largo de las generaciones las poblaciones evolucionan en lanaturaleza de acorde con los principios de la seleccioacuten natural y la supervivencia de losmaacutes fuertes postulados por Darwin Por imitacioacuten de este proceso los AlgoritmosGeneacuteticos son capaces de ir creando soluciones para problemas del mundo real Laevolucioacuten de dichas soluciones hacia valores oacuteptimos del problema depende en buenamedida de una adecuada codificacioacuten de las mismas [Goldberg 1989]

Un Algoritmo Geneacutetico consiste en una funcioacuten matemaacutetica que toma como entradas alos ejemplares y retorna como salidas cuaacuteles de ellos deben generar descendencia para lanueva generacioacuten

Los Algoritmos Geneacuteticos presentan ventajas sobre otros algoritmos que los hacenpreferibles para determinado tipo de aplicaciones Algunas de las caracteriacutesticas de losAlgoritmos Geneacuteticos son

bull Son algoritmos estocaacutesticos Dos ejecuciones distintas pueden dar dos solucionesdistintas Esto es uacutetil por el hecho de que hay gran cantidad de isoacutemeros que

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

corresponden a soluciones vaacutelidas por lo que es interesante que distintas ejecucionespuedan dar isoacutemeros distintos

bull Son algoritmos de buacutesqueda muacuteltiple luego dan varias soluciones Aunquehabitualmente la energiacutea de los individuos de la poblacioacuten final es similar losindividuos suelen ser distintos entre si Con el modelo de paralelizacioacuten empleado -geneacutetico multipoblacional- la probabilidad de obtener muchas soluciones distintas esmaacutes alta todaviacutea

bull Son los algoritmos que hacen una barrida mayor al subespacio de posiblessoluciones vaacutelidas De hecho se considera que de todos los algoritmos deoptimizacioacuten estocaacutesticos los Algoritmos Geneacuteticos son de los maacutes exploratoriosdisponibles

323 Ventajas y Desventajas [Bull 1993]

bull No necesitan conocimientos especiacuteficos sobre el problema que intentan resolverbull Operan de forma simultaacutenea con varias soluciones en vez de trabajar de forma

secuencial como las teacutecnicas tradicionalesbull Cuando se usan para problemas de optimizacioacuten de una funcioacuten objetivo- resultan

menos afectados por los oacuteptimos locales (falsas soluciones) que las teacutecnicastradicionales

bull Usan operadores probabiliacutesticos en vez de los tiacutepicos operadores determiniacutesticos delas otras teacutecnicas

bull La mayoriacutea de las otras teacutecnicas de optimizacioacuten son tambieacuten estocaacutesticasbull Pueden tardar mucho en converger o no converger en absoluto dependiendo en

cierta medida de los paraacutemetros que se utilicen tamantildeo de la poblacioacuten nuacutemero degeneraciones etc-

bull Pueden converger prematuramente debido a una serie de problemas de diversaiacutendole

324 iquestCoacutemo saber si es posible usar un Algoritmo Geneacutetico

La aplicacioacuten maacutes comuacuten de los Algoritmos Geneacuteticos ha sido la solucioacuten de problemasde optimizacioacuten en donde han mostrado ser muy eficientes y confiables Sin embargono todos los problemas pudieran ser apropiados para la teacutecnica y se recomienda engeneral tomar en cuenta las siguientes caracteriacutesticas del mismo antes de intentar usarlabull Su espacio de buacutesqueda (ie sus posibles soluciones) debe estar delimitado dentro

de un cierto rangobull Debe poderse definir una funcioacuten de aptitud que indique que tan buena o mala es

una cierta respuestabull Las soluciones deben codificarse de una forma que resulte relativamente faacutecil de

implementar en la computadora

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

Decisiones para implementar un Algoritmo Geneacutetico [Michalewicz 1992]

Las decisiones que hay que tomar para implementar un Algoritmo Geneacutetico son

bull Criterio de codificacioacuten Coacutemo se va a almacenar la informacioacuten en el genomabull Criterio de tratamiento de individuos no factibles Coacutemo se van a tratar a los

individuos que no cumplan las restriccionesbull Criterio de inicializacioacuten Coacutemo se va a construir la poblacioacuten inicialbull Criterio de parada Determina cuaacutendo el algoritmo ha llegado a una solucioacuten

aceptablebull Funcioacuten de adaptacioacuten Corresponde a la funcioacuten de costo de la investigacioacuten

operativa tradicionalbull Operadores geneacuteticos Se emplean para determinar coacutemo va a ser la nueva

generacioacuten Baacutesicamente son los operadores de cruce y mutacioacuten aunque pueden serempleados otros adicionales -muerte aborto envejecimiento- Tanto cruce comomutacioacuten pueden ser realizados de muchas formas distintas

bull Criterios de reemplazo Los criterios que determinan quieacutenes se van a cruzar Notienen que ser obligatoriamente los mismos que los criterios de seleccioacuten de lospadres

bull Paraacutemetros de funcionamiento Determinados paraacutemetros que sin poder serenglobados en ninguno de los anteriores son fundamentales para el funcionamientode un Algoritmo Geneacutetico Es el caso por ejemplo del tamantildeo de la poblacioacuten laprobabilidad de la aplicacioacuten de los operadores geneacuteticos etc

325 Paraacutemetros que deben ser especificados en el programa

Nordm de generaciones cantidad de veces que se produce una nueva generacioacuten deindividuos utilizando las reglas anteriormente explicadas Por loacutegica cuantas maacutesgeneraciones se produzcan se obtendraacuten mejores individuosNordm de individuos por generacioacuten en este ejemplo la cantidad de individuos de unageneracioacuten a otra es constante no variacuteaNordm de entrenamientos cantidad de veces que se lleva a cabo un entrenamiento entrediferentes generaciones de individuos

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

Fig 32 Pseudocoacutedigo del Algoritmo Geneacutetico simple

Los Algoritmos Geneacuteticos son una poderosa herramienta de propoacutesito general deoptimizacioacuten que modela los principios de la evolucioacuten [Burke 1994]

El proceso es el siguiente

1 Una poblacioacuten random de horarios factibles es creada Cada horario es evaluado deacuerdo a una conjunto de criterios (por ejemplo el tamantildeo del horario cuantosgrupos son colocados a la misma hora y en el mismo saloacuten cuantos salones hayvaciacuteos)

2 Los horarios son seleccionados de manera aleatoria para ser las bases de la proacuteximageneracioacuten Los buenos horarios son maacutes deseables que los malos En las bases dela evaluacioacuten de estos miembros de la poblacioacuten (horarios factibles) se escogen lospadres de la proacutexima generacioacuten de horarios Evaluando numeacutericamente durante elproceso de seleccioacuten buscando los mejores horarios los peores horarios soneliminados al mismo tiempo que la buacutesqueda se dirige hacia las aacutereas maacutespromisorias del espacio de soluciones

3 El Operador Mutacioacuten se aplica generalmente a un solo miembro de la poblacioacuten einvolucra el cambio aleatorio de la hora o aula de algunos grupos despueacutesalmacena el nuevo horario siempre manteniendo un horario factible Esto agrega

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

un elemento que permite tambieacuten introducir material geneacutetico uacutetil que ha sidoperdido en otros horarios en las primeras generaciones

4 El Operador de Cruzamiento toma una pareja de horarios y los combina de algunamanera para producir uno o dos nuevos horarios esto se hace generalmente deforma aleatoria seleccionando algunos grupos de la mantildeana de un miembro de lapoblacioacuten y los algunos grupos de la tarde de otro miembro para producir un nuevohorario cualquier grupo que no pueda ser colocado de esta manera se manda alperiodo siguiente disponible

5 La nueva poblacioacuten es generada El proceso seraacute repetido hasta que una buenasolucioacuten sea generada

33 Programacioacuten Loacutegica de Restricciones (PLR)

331 Antecedentes de la PLR

La Programacioacuten Loacutegica de Restricciones (PLR) es una teacutecnica que tiene mucho encomuacuten con los algoritmos de asignacioacuten heuriacutestica Dechter describe asiacute el problemade la satisfaccioacuten de restricciones ldquoUn problema de satisfaccioacuten de restricciones (PSR)es representado por una red de restricciones consistente en un conjunto de n variablesX1 Xn con sus respectivos valores de dominio RR n y un conjunto derestricciones Una restriccioacuten Ci (Xi1Xij)es un subconjunto del producto cartesiano Ri1 x x R i1 formado por todas las tuplas de valores para un subconjunto(X i1X ij) delas variables que son compatibles unas con otrasrdquo [Detcher 1990]

Una solucioacuten de la red es una asignacioacuten de valores a todas las variables de tal formaque todas las restricciones son satisfechasrdquo Esta es una representacioacuten maacutes poderosaque el modelo de los Grafos Coloreados porque puede representar restricciones mascomplejas El problema de los grafos coloreados es equivalente a un PLR binario en lacual cada restriccioacuten soacutelo tiene dos variables

Este modelo se resuelve tratando de asignar valores a cada una de las variables encuestioacuten y entonces regresando si se encuentra en un punto muerto y quitandorestricciones si se descubre que no se puede encontrar solucioacuten El orden en el que lasvariables son seleccionadas y el orden de los valores que son asignados a las variablespuede ser alterado para tratar aumentar la velocidad de buacutesqueda

La PLR es un meacutetodo que permite el disentildeo raacutepido de prototipos de resolucioacuten deproblemas complejos Las principales aportaciones en esta liacutenea se centran en eldesarrollo de programas que incluyen conjuntos de restricciones adaptadas a unadeterminada familia de problemas asiacute como al disentildeo formal e implementacioacuten demodelos de interpretacioacuten en paralelo con el fin de mejorar la eficiencia del proceso

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

deductivo El objetivo final es disponer de sistemas de resolucioacuten implementados paraapoyar la creacioacuten de sistemas donde la explosioacuten combinatoria de los elementos de unproblema hace muy difiacutecil la buacutesqueda de una solucioacuten en un tiempo razonable [Farion1992]

En esta seccioacuten se proporciona una breve introduccioacuten de la Programacioacuten Loacutegica conRestricciones y sus aplicaciones dentro del marco general de la programacioacuten loacutegica Setrata eacuteste de un campo que ha tenido una notable expansioacuten debido a su potencialaplicacioacuten praacutectica dado que el anaacutelisis de las restricciones permite mejorarconsiderablemente la eficiencia del caacutelculo de determinadas funciones

332 Restricciones

En primer lugar se empieza por contestar la pregunta iquestQueacute es una restriccioacuten Estacuestioacuten se puede responder tan brevemente como escribe Roman Bartak[1998]Una restriccioacuten es simplemente una relacioacuten loacutegica entre varias variablesdesconocidas tomando cada una un valor dentro de un dominio determinado (peA+B=C-el circulo estaacute dentro del cuadrado- etc)Asiacute las restricciones aparecen de forma natural en todos los campos del conocimientohumano La suma de los aacutengulos de un triaacutengulo es 180 grados es un ejemplo derestriccioacuten que aparece en el mundo real De hecho las restricciones son el medionatural en el que las personas expresamos los problemas en todas las aacutereas

Con la explicacioacuten dada se ve de forma natural que las restricciones gozan de variaspropiedades interesantes

bull las restricciones pueden especificar informacioacuten parcial es decir en lasrestricciones no hace falta que se den de forma uacutenica los valores de sus variables

bull las variables son no direccionales es decir en una restriccioacuten tiacutepica sobre dosvariables (XY) se puede inferir una restriccioacuten sobre X dada una restriccioacutensobre Y y viceversa

bull las restricciones son declarativas es decir se puede especificar que relacioacutendeben mantener sin especificar el procedimiento computacional que implementeesa relacioacuten

bull las restricciones son aditivas es decir el orden de imposicioacuten de las restriccionesno importa todo lo que importa al fin y al cabo es la conjuncioacuten de restriccionesy su efecto

bull las restricciones no suelen ser independientes normalmente restricciones dentrodel conjunto total de restricciones comparte variables

Asiacute siguiendo esta idea el objetivo de la Programacioacuten Loacutegica con Restricciones essustituir el proceso de unificacioacuten por la resolucioacuten de restricciones sobre un dominio

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

particular de intereacutes Con esta visioacuten se considera que el procesador de restriccionesdebe encargarse de comprobar la consistencia del conjunto de restricciones y dentro delo posible reducirlo a alguna forma normal

Seguacuten Elmohamed [Elmohamed 1998] las restricciones pueden ser divididas en trestipos fuertes medias y suaves

Restricciones fuertes Son todas aquellas que deben ser cumplidas obligatoriamente elcosto de no cumplir estas restricciones es sumamente alto y por lo tanto en un horariofactible su costo asociado por incumplimiento debe ser cero Por ejemplo (en unproblema real se pueden encontrar de 10 a 15 restricciones fuertes)

bull Dos o maacutes clases impartidas por un profesor no se pueden programar a lamisma hora

bull Una clase teoacuterica y su laboratorio no se pueden programar a la misma hora en elmismo diacutea

bull Una clase no se puede programar en un aula a menos que su capacidad seamayor al nuacutemero de alumnos inscritos

Restricciones medias Estas restricciones no se refieren a conflictos de tiempo perotienen asociado un alto costo a ellas sin embargo este costo no es tan alto como el de lasrestricciones fuertes En el condensado de horarios final el costo de estas restriccioneses minimizado y es deseable reducirlo a cero Por ejemplo (en un problema real sepueden tener entre 20 y 25 restricciones medias)

bull Para cada estudiante el balancear las secciones LunMieVie y MarJuebull Balancear o distribuir y equilibrar las horas de clase en la semanabull Las clases pueden requerir periodos de tiempo contiguosbull Las clases se pueden agrupar con otras clases formando paquetesbull Los horarios particulares deben tener la menor cantidad de ldquohoyosrdquo posible esto

es que las clases deben ser consecutivas unas despueacutes de otras

Restricciones suaves Estas restricciones no tienen nada que ver con conflictos detiempo y tienen un bajo costo asociado a ellas Tambieacuten en el condensado de horariosfinal este costo es minimizado pero no necesariamente debe ser cero Por ejemplo (sepueden tener entre 30 y 40 restricciones suaves)

bull Balancear la inscripcioacuten en cursos de varios paquetesbull Especificar la hora de comida y otros periodos de descansobull Los catedraacuteticos pueden requerir periodos de tiempo sin clasebull No inscribir alumnos-atletas en cursos que tengan conflicto con sus horas de

praacutectica deportiva etc

333 Sistemas con RestriccionesUna manera maacutes formal de definir las restricciones es considerarlas como una foacutermulade primer orden interpretada en una estructura para asiacute tener en cuenta la semaacutenticaparticular del sistema de restricciones Esta semaacutentica declarativa es adecuada cuando

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

existe a priori una estructura que se adecua al sistema de restricciones (pe Los realespara las restricciones aritmeacuteticas) pero esto no funciona demasiado bien para lossistemas de restricciones maacutes praacutecticos (pe Dominios finitos) Obviamente no se puededireccionar ninguacuten caacutelculo operacional relacionado con el propio procesador de lasrestricciones [Elmohamed 2001]

334 Referencia Histoacuterica de las RestriccionesLas restricciones como un aacuterea de trabajo que combina investigacioacuten de un gran nuacutemerode campos incluyendo Inteligencia Artificial Lenguajes de Programacioacuten CaacutelculoSimboacutelico y Loacutegica Computacional Las restricciones sobre redes y los problemas desatisfabilidad con restricciones empezaron a estudiarse por los investigadores deInteligencia Artificial en los antildeos 70

La programacioacuten con restricciones ha sido aplicada con notable eacutexito en numerososcampos Los trabajos en esta aacuterea se remontan a la investigacioacuten de InteligenciaArtificial y Representacioacuten Graacutefica por Computadora por los antildeos 60 y 70 En la uacuteltimadeacutecada sin embargo ha empezado a darse una mayor conciencia de que las restriccionesproporcionan las bases para un potente acercamiento a la programacioacuten modelado yresolucioacuten de problemas y que los diferentes esfuerzos por explotar estas ideas puedenser unidos bajo el mismo prisma conceptual y praacutectico la programacioacuten conrestricciones

Entre los dominios tratados por los sistemas de Programacioacuten Loacutegica con Restriccioneslos que maacutes ampliamente son investigados son sin duda los dominios finitos losnuacutemeros reales y racionales con restricciones aritmeacuteticas y los booleanos De hecho 3de los principales lenguajes de Programacioacuten Loacutegica con Restricciones son un claroejemplo de esta tendencia CHIP que proporciona restricciones sobre dominios finitosracionales y booleanos PrologIII que incluye racionales booleanos y listas y PLR(R)que maneja restricciones sobre reales

En la actualidad se pueden observar dos ramas principales en los avances en laprogramacioacuten con restricciones que parten de diferente base y por tanto usan diferentemetodologiacutea para resolver las restricciones Estas dos ramas son

bull Satisfaccioacuten de Restriccionesbull Resolucioacuten de Restricciones

335 Satisfaccioacuten de RestriccionesLa satisfaccioacuten de restricciones parte de los avances en Inteligencia Artificial (problemascombinatorios) y los Graacuteficos por computadora (sistema de SKETCHPAD[1963]expresando coherencia geomeacutetrica en el caso de anaacutelisis de escenas)

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

336 Resolucioacuten de RestriccionesLa resolucioacuten de restricciones difiere de la satisfaccioacuten de restricciones porque usavariables con dominios infinitos Ademaacutes las restricciones individuales son maacutescomplicadas por ejemplo ecuaciones no lineales En consecuencia los algoritmos deresolucioacuten de restricciones usan meacutetodos algebraicos y numeacutericos en vez decombinaciones y buacutesqueda Sin embargo existe metodologiacutea para discretizar losdominios infinitos en un nuacutemero finito de componentes y entonces se aplican lasteacutecnicas de Satisfaccioacuten de Restricciones

La programacioacuten con restricciones ha sido aplicada con eacutexito en numerosos campos Lasaplicaciones recientes incluyen [Detcher 1990]

bull Graacuteficos por Computadorabull Procesamiento del Lenguaje Natural (construccioacuten de analizadores eficientes)bull Sistemas de Bases de Datos (para reforzar yo mantener la consistencia de los

datosbull Problemas de Investigacioacuten Operativa (como la optimizacioacuten de problemas)bull Biologiacutea Molecular (secuenciacioacuten de ADN)bull Aplicaciones de Empresabull Ingenieriacutea Eleacutectrica (localizacioacuten de fallos)bull Disentildeo de Circuitos (para computar configuraciones)bull Planificacioacuten y organizacioacutenbull Configuracioacutenbull Juegosbull Configuracioacuten de horariosbull Criptoaritmeacuteticabull Coloreado de Grafosbull Razonamiento de hipoacutetesis quiacutemicas

En esta seccioacuten se va a dedicar una parte a cada una las aplicaciones maacutes estudiadas

337 Organizacioacuten de Proyectos

El problema de la Organizacioacuten es el proceso de asignar actividades a recursos en eltiempo En el caso general de organizacioacuten es un proceso de tomar decisiones donde sepueden tomar dos tipos de decisiones

bull Decisiones de situar temporalmente Cuaacutendo deberiacutea empezar cada actividadbull Decisiones de asignacioacuten de recursos Con queacute recursos deberiacutea ejecutarse cada

actividad

Los problemas de organizacioacuten y de asignacioacuten de recursos estaacuten basados enrestricciones Diferentes restricciones pueden afectar a la organizacioacuten la duracioacuten de

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

una actividad las fechas de contrato restricciones precedentes tiempos de transferenciao de inicio de la actividad la capacidad de los recursos y el reparto de recursos

La relajacioacuten de las restricciones principales caracteriza la calidad de los problemas deorganizacioacuten Estas restricciones son las relacionadas con fechas de entregaproductividad periodicidad de los cambios de herramientas niveles de inventariomargen de tiempo etc Algunas de estas restricciones pueden ser combinadas en lafuncioacuten de evaluacioacuten para la optimizacioacuten

Las aplicaciones industriales de las teacutecnicas de resolucioacuten de restricciones a losproblemas del tipo de asignacioacuten de tareas incluye[Detcher 1990]

bull Organizacioacuten de la produccioacutenbull Organizacioacuten y planificacioacuten del transporte y la logiacutesticabull Administracioacuten del traacuteficobull Disentildeo de horarios de recursos y de hombresbull Asignacioacuten de plantilla incluyendo aplicaciones de ingenieriacutea de organizacioacutenbull Problemas de empaquebull Configuracioacuten de maacutequinas

Claramente hay muchos problemas relacionados en el aacuterea de la organizacioacuten en lapraacutectica para los sistemas comerciales e industriales reales los liacutemites entre unos y otrosno estaacuten claros Es difiacutecil encontrar alguacuten problema real que se ajuste a un modelopreconcebido sin tener que descartar partes del problema y aproximar otras asiacute que hayque tomar estos modelos con amplio margen de aproximacioacuten

Otra complicacioacuten es el tema de la optimizacioacuten En algunos casos el usuario estaacutesatisfecho soacutelo con tener una manera automaacutetica de tener la respuesta pero la mayoriacuteaquieren tener al menos una buena respuesta y algunos el mejor resultado posible Perodebido a la gran complejidad combinatoria de la mayoriacutea de los problemas reales deorganizacioacuten una optimizacioacuten real es muy difiacutecil asiacute que en la mayoriacutea de los casos seusa la programacioacuten con restricciones en combinacioacuten con otras teacutecnicas tales comoAlgoritmos Geneacuteticos para dar soluciones casi oacuteptimas en un tiempo razonable

Normalmente los problemas de organizacioacuten se presentan usando variables conrestricciones fuertes y restricciones suaves Estas pueden ser agrupadas en la abstraccioacutendel problema de organizacioacuten Asiacute tiacutepicamente el tiempo de comienzo y fin y laduracioacuten de cada actividad se representan por variables con restricciones Los dominiosde estas variables son el rango de tiempo de intereacutes en la organizacioacuten requerida

Capiacutetulo 4 Anaacutelisis y Disentildeo

CAPIacuteTULO 4

ANAacuteLISIS Y DISENtildeO

41 Recopilacioacuten de informacioacuten

bull Documentos recopilados

bull Cataacutelogo de asignaturas prerrequisitos y semestrebull Cataacutelogo de aulas y su capacidadbull Cataacutelogo de catedraacuteticos horas disponiblesbull Mapa reticular de la carrerabull Reporte de grupos abiertos en periodo actualbull Reporte de alumnos por grupo en periodo actualbull Reporte de alumnos no inscritos por materia y semestrebull Reporte de simulacioacuten (si todos aprobaran sus cursos)bull Reporte del iacutendice de reprobacioacuten del semestre anteriorbull Encuesta aplicada para determinar los conocimientos requeridos

para impartir una materiabull Encuesta aplicada para obtener los conocimientos de cada

catedraacuteticobull Aacuterbol de conocimiento realizado para determinar los grupos por

abrir de cada asignaturabull Aacuterbol de conocimiento del perfil de las asignaturasbull Aacuterbol de conocimiento del perfil de los catedraacuteticosbull Aacuterbol de conocimiento de los criterios de apertura de materia

bull El proceso de la elaboracioacuten de los horarios

1 Elaboracioacuten de los reportes estadiacutesticos del periodo actual(grupos abiertos alumnos por grupo alumnos no inscritos pormateria simulacioacuten iacutendice de reprobacioacuten)

2 Caacutelculo de la estimacioacuten de alumnos por materia del proacuteximoperiodo

3 Caacutelculo del nuacutemero de grupos por materia requeridos para elproacuteximo periodo

4 Ajuste de los grupos por materia requeridos para el proacuteximoperiodo

5 Formacioacuten de los grupos en paquetes por semestre6 Asignacioacuten de hora y aula a los grupos

Capiacutetulo 4 Anaacutelisis y Disentildeo

7 Seleccioacuten de catedraacutetico al grupo y viceversa8 Ajustes en hora aula y catedraacutetico por grupo9 Elaboracioacuten del reporte condensado para publicacioacuten de horarios10 Elaboracioacuten de los reportes de grupos sin maestro maestros con

horas disponibles grupos sin aula

Para elaborar los horarios de los grupos y maestros un semestre determinado se tienenen consideracioacuten los siguientes elementos

bull El estadiacutestico de Servicios Escolares (SE)El departamento de SE cuenta con un sistema que registra todo el historial acadeacutemicode los alumnos inscritos en el ITZ las materias cursadas y sus calificaciones lasdiferentes carreras con su retiacutecula de asignaturas y sus prerrequisitos los grupos delsemestre actual la cantidad de alumnos en cada grupo de una asignatura los iacutendicesde reprobacioacuten de semestres anteriores las materias que puede cursar un alumno elproacuteximo semestre etceacutetera Toda esta informacioacuten plasmada en reportesdiferentes es la base para la generacioacuten de los horarios del proacuteximo semestre

bull Los grupos requeridosSobre la base de operaciones aplicadas a la informacioacuten estadiacutestica se obtiene lacantidad de grupos requeridos para abrirse el proacuteximo semestre este nuacutemero degrupos es la cantidad oacuteptima con la que se podraacuten inscribir los alumnos sin tenerproblemas de falta de espacio el alterar disminuyendo o aumentando el nuacutemero degrupos requeridos puede ocasionar alumnos con carga crediticia menor a lareglamentaria o que existan grupos con menos de 10 alumnos respectivamente

bull Las aulasEl ITZ cuenta con 52 aulas repartidas entre las 8 carreras a cada coordinador decarrera se le asigna determinado numero de aulas para su administracioacuten asiacute que alasignar el aula a cada grupo debe cuidar la correcta distribucioacuten de los grupos en loshorarios correspondientes y que la capacidad de las aulas no rebase el numero dealumnos inscritos

bull Los maestros y departamentosCada departamento esta formado por un jefe y los catedraacuteticos que forman laacademia de cada carrera los profesores pueden ser de tiempo completo frac34 y frac12tiempo o profesores de asignatura cada uno tiene un horario predeterminado en turnomatutino o vespertino los catedraacuteticos de un departamento cubren las asignaturas desu carrera y apoyan a otras carreras a cubrir las materias que tienen el perfil de esaacademia los catedraacuteticos son uno de los recursos mas difiacuteciles de controlar

Restricciones propias de los profesores

o Materia no tiene maestro

o Maestro tiene horas disponibles

Capiacutetulo 4 Anaacutelisis y Disentildeo

o Maestro tiene materias preferencia

o Maestro ha impartido materia

o Maestro solicita materia

o Maestro tiene restricciones de nuacutemero de materias a impartir

o Restriccioacuten no pueden darse maacutes de tres materias diferentes

o Maestro tiene una profesioacuten

o Maestro tiene un perfil

o Maestro tiene un aacuterea definida

o Maestro prefiere materias especialidad

o Maestro prefiere materias semestres iniciales

bull Las materias o asignaturasEn cada carrera se tiene un mapa reticular que tiene las materias de cada semestre elnombre los creacuteditos las horas de teoriacutea y praacutectica las ligas con los prerrequisitos lasmaterias de la especialidad seleccionada etc

Restricciones propias de las asignaturas

o Materia de 1deg semestre

o Materia de 2deg semestre

o Materia de 3deg semestre

o Materia de 4deg semestre

o Materia de 5deg semestre

o Materia de 6deg semestre

o Materia de 7deg semestre

o Materia de 8deg semestre

o Materia de 9deg semestre

o Materia de especialidad

o Materia tiene prerrequisito

o Materia es de baacutesicas

o Materia requiere conocimientos de Base de Datos

o Materia requiere conocimientos de Electroacutenica

o Materia la puede impartir cualquier maestro

Capiacutetulo 4 Anaacutelisis y Disentildeo

o Materia requiere conocimientos de Redes

o Materia requiere ser impartida por ingeniero

o Materia tiene complejidad alta

o Materia debe ser impartida por catedraacutetico con grado de maestriacutea

o Materia requiere conocimientos de Arquitectura de Computadoras

o Materia no tiene cadenas

o Materia de Administracioacuten

o Materia de Ingenieriacutea Industrial

o Materia requiere conocimientos de Aacutelgebra

o Materia requiere conocimientos de Caacutelculo Diferencial e Integral

o Materia requiere conocimientos de Quiacutemica Inorgaacutenica y Orgaacutenica

o Materia requiere una elaboracioacuten de proyectos

bull Las carrerasLas 8 carreras que se imparten en el ITZ son ordenadas por nuacutemero de alumnos

1 Ingenieriacutea en Sistemas Computacionales2 Licenciatura en Informaacutetica3 Licenciatura en Administracioacuten4 Ingenieriacutea Civil5 Ingenieriacutea Electromecaacutenica6 Ingenieriacutea Industrial7 Ingenieriacutea Quiacutemica8 Ingenieriacutea Bioquiacutemica

bull Los horarios de grupoUna vez determinados los grupos requeridos para el proacuteximo semestre se procede a laasignacioacuten de horario de acuerdo al nuacutemero de horas teoacuterico-praacutecticas se le asignaaula y un catedraacutetico responsable se fija tambieacuten un nuacutemero de alumnos y el tiempode laboratorio en caso de ser necesario

Capiacutetulo 4 Anaacutelisis y Disentildeo

Diagrama de flujo del proceso

Elaboracioacuten de los reportes estadiacutesticos

Caacutelculo de alumnos por materiaproacuteximo periodo

Caacutelculo del nuacutemero de grupos pormateria requeridos

Ajuste de los grupos por materiarequeridos

Formacioacuten de los grupos en paquetespor semestre

Asignacioacuten de hora y aula a los grupos

Asignacioacuten de catedraacutetico al grupo

Ajustes en hora aula y catedraacutetico porgrupo

Elaboracioacuten del reporte condensado

Elaboracioacuten de reportes varios

Todo cuadrabien

Si

No

Fin

Inicio

Capiacutetulo 4 Anaacutelisis y Disentildeo

42 Anaacutelisis de la informacioacuten

bull Cataacutelogo de asignaturas prerrequisitos y semestre

Funcioacuten Dar a conocer las asignaturas de una carrera los prerrequisitos de las materiasy el semestre al que pertenece una asignatura los creacuteditos miacutenimos que debe tenerun alumno para cursar la asignatura

Origen Reporte emitido por el departamento de Servicios Escolares

Campos del reporte nombre carrera nombre asignaturas creacuteditos miacutenimos materiasprerrequisito semestre al que pertenece la asignatura

bull Cataacutelogo de aulas y su capacidad

Funcioacuten Dar a conocer la nomenclatura y capacidad de las aulas y laboratorios del ITZ

Origen Departamento de Planeacioacuten

Campos del reporte Nombre del edificio nuacutemero de aula capacidad

bull Cataacutelogo de catedraacuteticos horas disponibles

Funcioacuten Dar a conocer los catedraacuteticos por departamento y sus horas disponibles frentea grupo

Origen Departamentos acadeacutemicos

Campos del reporte Nombre del departamento clave de profesor nombre del profesorcantidad de horas frente a grupo que debe tener

bull Mapa reticular de la carrera

Funcioacuten Mostrar el mapa reticular de una carrera graacuteficamente muestra las asignaturaspor semestre sus requisitos foacutermula crediticia etc

Origen Divisioacuten de Estudios Profesionales

Campos del reporte Nombre y clave de la carrera nombre y clave de las asignaturasfoacutermula crediticia (nuacutemero de horas teoacutericas nuacutemero de horas praacutecticas creacuteditos dela asignatura) las materias prerrequisito de otras materias de especialidad semestrede la asignatura nuacutemero de creacuteditos necesarios para poder cursar una asignatura

Capiacutetulo 4 Anaacutelisis y Disentildeo

bull Reporte de grupos abiertos en periodo actual

Funcioacuten Muestra los cursos que son ofertados en el periodo actual

Origen Departamento de Servicios Escolares

Campos del reporte Nombre de la carrera nombre de las asignaturas grupo de loscursos cantidad de alumnos inscritos nombre del catedraacutetico que lo imparte

bull Reporte de alumnos por grupo en periodo actual

Funcioacuten Muestra la cantidad de alumnos inscritos por semestre de una carrera

Origen Departamento de Servicios Escolares

Campos del reporte Nombre de la carrera semestres del 1 al 13 nuacutemero de alumnosinscritos por semestre

bull Reporte de alumnos no inscritos por materia y semestre

Funcioacuten Muestra los alumnos que pudieron inscribirse a una materia pero que poralguna razoacuten no lo hicieron

Origen Departamento de Servicios Escolares

Campos del reporte Nombre de la carrera nombre de la materia por semestre nuacutemerode alumnos que pudieron inscribirse y no lo hicieron

bull Reporte de simulacioacuten (si todos aprobaran sus cursos)

Funcioacuten Este reporte simula que todos los alumnos inscritos en los cursos acreditan elcurso entonces cuenta cuantos estudiantes pueden cursar todas las asignaturas comosi hubieran aprobado todos sus cursos actuales

Origen Departamento de Servicios Escolares

Campos del reporte Nombre de la carrera nombre de la asignatura y por semestre elnuacutemero de alumnos que pueden cursar una materia

bull Reporte del iacutendice de reprobacioacuten del semestre anterior

Funcioacuten Dar a los coordinadores los iacutendices de aprobacioacuten y reprobacioacuten de los cursosdel periodo anterior

Capiacutetulo 4 Anaacutelisis y Disentildeo

Origen Departamento de Servicios EscolaresCampos del reporte Nombre de la carrera nombre de la asignatura total de alumnos

aprobados total de alumnos reprobados del periodo anterior

bull Encuesta de conocimientos requeridos para impartir asignatura

Funcioacuten Obtener los datos de los conocimientos que debe poseer un catedraacutetico quequiera impartir una asignatura

Origen Academia de cada departamentoCampos del reporte Nombre de la asignatura objetivo de la asignatura carrera lista de

conocimientos requeridos para impartir la asignatura carrera adecuada del profesorque imparta la asignatura

bull Encuesta de conocimientos requeridos para perfil de profesores

Funcioacuten Obtener los datos de los conocimientos que debe posee un catedraacutetico

Origen Academia de cada departamento

Campos del reporte Nombre del catedraacutetico carrera del catedraacutetico conocimientos enaacutereas particulares de cada asignatura

43 Solucioacuten definida

Resolver el problema iniciando con la metodologiacutea ldquodivide y venceraacutesrdquo el problemageneral se dividiraacute en 6 problemas particulares

a) Sistema de Informacioacuten para control de horariosb) Sistema Experto para definicioacuten y generacioacuten de grupos

por abrirc) Moacutedulo Programacioacuten Loacutegica de Restricciones para

asignar horario a los gruposd) Moacutedulo Algoritmos Geneacuteticos para asignar aula a los

grupos ya definidose) Sistema Experto para definir catedraacutetico para

asignaturaf) Sistema Experto para asignar asignatura a catedraacutetico

Debido a la naturaleza y caracteriacutesticas de la informacioacuten todos lossistemas seraacuten realizados iniciando desde cero la recopilacioacuten deinformacioacuten el anaacutelisis el disentildeo y la programacioacuten de cada moacutedulo delsistema programado en Visual Basic y Bases de Datos en Access

Capiacutetulo 4 Anaacutelisis y Disentildeo

La principal ventaja de eacutesta opcioacuten es que el sistema estaacute hecho a la medida de lasnecesidades de la institucioacuten poniendo las restricciones en el formato que se tienenactualmente la desventaja es que se debe desarrollar TODO el sistema

44 Requerimientos del sistema

Los Motores de Inferencias deben ser disentildeados con las siguientes caracteriacutesticas

bull Buacutesqueda de primero en profundidad en ocasiones cuando se interactuacutee con elusuario este tipo de buacutesqueda seraacute utilizado para recorrer toda la base deconocimiento

bull Buacutesqueda heuriacutestica en la que el usuario deberaacute dar datos iniciales de por dondeempezar la buacutesqueda de alguna informacioacuten

bull Tomar informacioacuten de la Base de Conocimiento y guardarla en las bases de datos ytambieacuten inferir la informacioacuten y guardarla en las bases de datos para su posteriortratamiento e impresioacuten

bull Seleccionar la mejor opcioacuten y presentarla al usuario para los casos en que el usuariodecida cambiar alguacuten dato la maacutequina deberaacute presentar una opcioacuten y saber indicarel porqueacute la ldquoeligioacuterdquo

bull Dar otras soluciones ademaacutes de la oacuteptima teniendo porcentajes de aceptacioacuten paracada solucioacuten y permitiendo la buacutesqueda de maestros a impartir materias aulas paraalguacuten grupo o cantidad de grupos a abrir

bull Dar resultados en lenguaje natural de modo que el usuario entienda claramente loque la maacutequina le comunica

bull Trabajar interactivamente con el usuario para que eacuteste pueda cuestionar el porqueasignoacute un maestro abrioacute grupos asignoacute un aula etceacutetera

bull Tener capacidad para el uso del paradigma basado en analogiacuteas ldquoSi un maestro yadio la materia en alguacuten semestre entonces puede darla en este semestrerdquo o bien ldquoSieste paquete de materias estaacute completo entonces repite todo el paquete estesemestrerdquo

Interfaz de Usuario recibe y entrega informacioacuten interactuando con el usuario esdecir el usuario puede

1) alimentar hechos2) solicitar resultados y reportes3) cuestionar coacutemo se obtuvieron ciertas conclusiones

La interfaz de usuario debe tener las caracteriacutesticas siguientes

bull Comunicarse en el lenguaje del usuario sea un humano u otro dispositivobull Recibir hechos del usuario y almacenarlos en la base de hechosbull Presentar de manera amigable los objetivos a buscar e inferencias en pantallabull Dar de manera clara la explicacioacuten de la inferencia realizada

Capiacutetulo 4 Anaacutelisis y Disentildeo

bull Dar resultados por escrito en informesbull Proporcionar al usuario la facilidad de alimentar la base de conocimientosbull Dar al usuario la facultad de corregir las inferenciasbull Si el usuario es inexperto facilitar la ayuda necesaria

Seleccioacuten del lenguaje de programacioacuten

Visual Basic 60 proporciona a los programadores facilidad para desarrollar aplicacionescomplejas en poco tiempo (comparado con lo que cuesta programar en Visual C++ porejemplo)

El sistema necesita interfaces amigables al usuario con ventanas y botones emergentesen cualquier momento y Visual Basic 60 es una herramienta de disentildeo de aplicacionespara Windows en la que eacutestas se desarrollan en una gran parte a partir del disentildeo de unainterfaz graacutefica (pudiendo incorporar todos los elementos de este entorno informaacuteticoventanas botones cajas de diaacutelogo y texto botones de opcioacuten y de seleccioacuten barras dedesplazamiento graacuteficos menuacutes etc) En una aplicacioacuten Visual Basic 60 el programaestaacute formado por una parte de coacutedigo puro y otras partes asociadas a los objetos queforman la interfaz graacutefica Visual Basic 60 permite la programacioacuten de sus ventanasbotones y componentes de manera maacutes faacutecil que Java con sus Applets

En la parte del sistema de control de horarios que es un sistema de informacioacuten comuacutenlos programas que llenan de informacioacuten las bases de datos son muy parecidos unos conotros al hacer los procesos de altas bajas modificaciones consultas y validaciones seutilizan las ventajas que Visual Basic 60 ofrece de la Programacioacuten Orientada aObjetos (POO) eacutesta es una forma de programacioacuten que utiliza objetos ligados mediantemensajes para la solucioacuten de problemas Puede considerarse como una extensioacuten naturalde la programacioacuten estructurada en un intento de potenciar los conceptos demodularidad y reutilizacioacuten de coacutedigo Las caracteriacutesticas fundamentales de la POO sonabstraccioacuten encapsulamiento herencia y polimorfismo

Visual Basic 60 soporta la abstraccioacuten la encapsulacioacuten el polimorfismo y lareutilizacioacuten de coacutedigo Los objetos de Visual Basic estaacuten encapsulados es decircontienen su propio coacutedigo y sus propios datos

Manejador de Base de datos para el almacenamiento de la informacioacutenEl manejador de base de datos a utilizar seraacute Microsoft Access debido a que los usuariosque alimentan la base de conocimientos son expertos en diferentes aacutereas delconocimiento y tiene conocimientos limitados de los diferentes manejadores y estaacuten maacutesfamiliarizados con Microsoft Access Ademaacutes de que Access es transportablefaacutecilmente

Ademaacutes la cantidad y tipo de informacioacuten que se almacena en las tablas no requieremanejadores de bases de datos potentes o con caracteriacutesticas especiales

Capiacutetulo 4 Anaacutelisis y Disentildeo

Sistemagenerador dehorarios

SistemaExperto

Reglas

Criterios

Criterios por regla Conocimiento

Procesos

Capturaestadiacutesticas

Calcula grupos

Ajusta grupos

Sistema expertoasigna materia

Sistema Expertoasigna maestro

Asigna materia

Asigna catedraacutetico

Conocimientos

Procesos

Materias

Perfil general

Catedraacuteticos

Perfil materias

Perfil maestro

Asignacioacutenmateria-maestro

Asignacioacutenmaestro-materia

Buacutesqueda independiente

B adelante

B atraacutes

Abduccioacuten

Explicacioacuten

MoacuteduloPLR

Asigna horario

Datos

Arbol derestricciones Procesos

Materia

Grupos

Paquetes

Horario

Restriccioacuten 1

Restriccioacuten 3

Restriccioacuten 2

Restriccioacuten N

Genera random

Evaluacutea restricciones

Guarda grupo

MoacuteduloAlgoritmoGeneacutetico

Asigna aula

Operadores Geneacuteticos

Evaluacioacuten

Cruzamiento

Seleccioacuten

Mutacioacuten

Poblacioacuten Inicial

Versioacuten 1

Versioacuten 2

Versioacuten 3

Versioacuten N

Condensadodatos grales

Materia

Hora

Aula

Control escolar

Sistema deInformacioacuten

Aulas

Horarios

Grupos

Maestros

Datosestadiacutesticos

Datosgenerales

Datos condensado

Materias

45 MAPA CONCEPTUAL DEL PROYECTO

Capiacutetulo 4 Anaacutelisis y Disentildeo

Capiacutetulo 4 Anaacutelisis y Disentildeo

En la Figura 41 se muestra el mapa conceptual del proyecto La burbuja centralrepresenta el sistema generador de horarios y cada rama representa uno de los seismoacutedulos que lo componen las burbujas de cada rama contienen a su vez variasramificaciones en las que se muestran de manera graacutefica los componentes maacutesrepresentativos de los procesos utilizados la informacioacuten que manejan el conocimientoque utilizan y las restricciones involucradas

El moacutedulo Servicios Escolares contiene informacioacuten necesaria para la administracioacuten delos horarios en general y proporciona los datos para el funcionamiento de los demaacutesmoacutedulos

El moacutedulo Sistema Experto Creacioacuten de Grupos (SECG) muestra el conocimiento yprocesos utilizados para definir la cantidad de grupos a ofertar a partir de la informacioacutenestadiacutestica proporcionada por servicios escolares maacutes adelante en el documento seexplica a detalle su funcionamiento

En la Figura 41 se aprecia que los moacutedulos Sistema Experto AsignaCatedraacutetico(SEAC) y Sistema Experto Asigna Materia(SEAM) comparten las bases deconocimiento porque el conocimiento de un SE es la base de hechos del otro en amboscasos los procesos difieren solamente en la informacioacuten que utilizan y en los resultadosque producen noacutetese que existe un proceso que es ldquobuacutesqueda independienterdquo que puedecatalogarse como un Sistema Experto adicional que sirve para sugerir las asignaturasque puede impartir una persona que no estaacute dentro de las bases de datos de maestros ypor lo tanto su perfil tampoco estaraacute capturado en esta caso los hechos (su perfil deconocimientos) es capturado en el momento de la consulta

El moacutedulo de Algoritmos Geneacuteticos (AG) muestra los datos que recibe como se generauna poblacioacuten inicial el tratamiento que se le aplica por medio de los operadoresgeneacuteticos y la informacioacuten que se genera

Por uacuteltimo en la Figura 41 se nota tambieacuten el moacutedulo donde se utiliza la ProgramacioacutenLoacutegica de Restricciones que contiene 3 ramas donde una representa los datos recibidosy la informacioacuten generada otra rama denota un aacuterbol de restricciones que deben sersatisfechas por los paquetes de horarios la uacuteltima rama denota los procesos que se llevana cabo debe notarse que existe un proceso aleatorio que genera cada grupo un procesoque evaluacutea el grupo contra las restricciones y uno mas que guarda los grupos quecumplieron con todas

En este mapa conceptual no se muestra en que orden se ejecuta cada moacutedulo delproyecto la Figura 42 ilustra la secuencia de ejecucioacuten de los moacutedulos

La Figura 42 muestra el diagrama con la secuencia en que se van ejecutando losprocesos los datos que ingresan a cada moacutedulo y la informacioacuten que genera

Capiacutetulo 4 Anaacutelisis y Disentildeo

452 MAPAS CONCEPTUALES DE LOS MOacuteDULOS

Servicios Escolares

Datos Estadiacutesticos

Sistema Experto Creacioacuten de Grupos

Materias y grupos requeridos

Moacutedulo PLR

Materia + grupo + hora

Moacutedulo AG

Materia + grupo + hora + aula

Sistema ExpertoAsigna Catedraacutetico Sistema Experto

Asigna Materia

Sugiere profesorpara asignaturas

Sugiere asignaturapara profesor

Materia + grupo + hora + aula +profesor

Condensado final de materias

1

2

3

4

5 6

Fig 42 Diagrama de secuencia

Capiacutetulo 4 Anaacutelisis y Disentildeo

Como puede verse todo inicia cuando Servicios Escolares enviacutea la informacioacuten a laDivisioacuten de Estudios Profesionales (donde ldquohabitanrdquo los coordinadores) quienes son losresponsables de la elaboracioacuten de los horarios

Un primer proceso captura la informacioacuten que proviene de Servicios Escolares elsegundo moacutedulo define cuantos grupos deben programarse el tercer proceso asigna lahora a cada grupo el cuarto moacutedulo es el proceso que asigna las aulas los procesosquinto y sexto sirven para sugerir queacute catedraacutetico es el maacutes adecuado para cada grupo ycomo resultado final se tiene el condensado final de horarios para el siguiente semestre

En la Figura 43 se muestran los componentes del primer Sistema Experto utilizado paradefinir la cantidad de grupos que deben ofertarse el proacuteximo semestre en la partesuperior izquierda de la figura esta el coordinador de la carrera quien es el encargado decargar el conocimiento a las Bases de Conocimiento utilizando la interfaz de experto esla persona indicada para definir los criterios que tiene cada materia define las reglaspara la agrupacioacuten de los criterios y define en cada regla que tipo de ajuste se realiza

Experto

Coordinador

Interfaz Experto

Base deConocimientos

CriteriosReglasAjustes

Motor de Inferencia ListasMateriasGrupos requeridos

UsuarioMoacutedulo Explicacioacuten

Usuario(coordinador

novato)

Interfaz Usuario

Base Hechos

Informacion Estadiacutestica

Fig 43 Sistema Experto Generador de Grupos

Capiacutetulo 4 Anaacutelisis y Disentildeo

El usuario en la parte inferior de la figura puede ser el coordinador o su asistente y seencarga de capturar la informacioacuten estadiacutestica proporcionada por servicios escolares queson los datos de alumnos inscritos actualmente en cada materia el iacutendice de reprobacioacutenlos alumnos inscritos en la materias prerrequisito una simulacioacuten de los alumnosprobables para cursar esa materia si todos los inscritos aprueban todo y los alumnos quepueden cursar las materias pero no se inscribieron

Con los datos anteriores se realiza la siguiente operacioacuten

(Inscritos en materia iacutendice de reprobacioacuten de materia) 100 +Alumnos no inscritos +Alumnos en prerrequisito ndash (alumnos en prerrequisito iacutendice de reprobacioacuten) 100 +(Simulacioacuten ndash alumnos en prerrequisito ndash no inscritos) = Alumnos del proacuteximo semestre

Este uacuteltimo dato (alumnos del proacuteximo semestre) proporciona la cantidad de alumnospor materia que pueden inscribirse en los grupos seguacuten los estadiacutesticos de ServiciosEscolares pero no contempla preferencias de alumnos conveniencia de inscripcioacuten etc

Ofrecer los grupos necesarios para la inscripcioacuten de alumnos tomando el dato calculadoocasiona que al terminar las inscripciones existan grupos vaciacuteos grupos sobresaturadosalumnos con pocas materias y varios problemas mas

La finalidad de este Sistema Experto es realizar un ajuste al dato calculadoanteriormente para incluir en su caacutelculo todas aquellas caracteriacutesticas y experiencia delcoordinador para minimizar los problemas mencionados en el paacuterrafo anterior

Los ajustes pueden ser de varios tiposbull Ajuste draacutestico hacia abajo Se aplica una reduccioacuten del 50 al dato calculadobull Ajuste hacia arriba Se agrega un grupo maacutes al dato calculadobull Ajuste hacia abajo Se resta un grupo al dato calculadobull Ajuste numeacuterico Se ajusta utilizando la regla del redondeo de decimalesbull Ajuste draacutestico hacia arriba Se suman 2 oacute 3 grupos al dato calculado

Cuando utilizar una u otra regla estaacute definido por los criterios que cada materia contienenaturalmente y que con el paso de los semestres puede variar (aunque tambieacuten puedenpasar antildeos sin sufrir ninguacuten cambio)

La Figura 44 describe la utilizacioacuten de la teacutecnica de la Inteligencia Artificial llamadaProgramacioacuten Loacutegica de Restricciones para generar el condensado de grupos a partir deuna lista de materias que contiene solamente el nombre y la cantidad de grupos que sedeben abrir de una materia

Capiacutetulo 4 Anaacutelisis y Disentildeo

EoseX

Ugacgg

Lgc

s

ListasMaterias

Procesoformador depaquetes

Lista grupo +paquete

Moacutedulo generadorRandom Hora

Restricciones satisfec

Restriccio

Materia +hora

Moacuteduloverificadorrestriccione

s

Restriccionesnosatisfechas

Fig 44 Diagrama del moacutedulo Programacioacuten Loacutegica de Restriccione

xiste un proceso inicial que forma los ldquopaquetesrdquo de grupos esto es las materias serdenan por el semestre al que corresponden (generalmente son 6 materias poremestre) despueacutes para cada semestre se generan los grupos correspondientes si porjemplo se deben hacer 3 grupos de la materia X se generan tres registros de la materia y cada registro se etiqueta

Materia X grupo AA Materia X grupo AB y Materia X grupo AC

na vez que todas las materias han sido generadas y ldquoempaquetadasrdquo se pasan alenerador de horario en bloques de un paquete a la vez Este proceso funcionasignando un horario aleatorio a cada grupo despueacutes se verifica que cada grupo cumplaon todas las restricciones que son del tipo grupo no ldquochocardquo con otro del paqueterupo proporciona horario continuo al paquete grupo tiene horario de 2 horas por diacutearupo no deja horas vaciacuteas en paquete grupo cumple con todas sus horas asignadas etc

a Figura 45 muestra el disentildeo del Algoritmo Geneacutetico utilizado para asignar aula a losrupos que provienen del moacutedulo anterior (PLR) y recibe como datos de entrada unondensado de horarios (materia + grupo + hora)

Capiacutetulo 4 Anaacutelisis y Disentildeo

Procesoevaluacioacuten

Condensado

Materia +Grupo +Hora

Generador de versiones aleatorias

Genera versioacuten asigna aula

Versioacuten 3

Versioacuten 2

Versioacuten 1

Versioacuten N

Poblacioacuten inicial

ProcesoseleccioacutenProceso cruzamiento

clonacioacuten mutacioacuten

Versioacuten z

Versioacuten y

Versioacuten x

Versioacuten w

Nueva generacioacuten

Individuos aptos

Individuos no aptosReciclaje

CondensadoMateria + grupo +hora + aula

Fig 45 Diagrama del moacutedulo Algoritmo Geneacutetico

Capiacutetulo 4 Anaacutelisis y Disentildeo

Esta rama de la Inteligencia Artificial es utilizada generalmente para procesos deoptimizacioacuten y en esta ocasioacuten se utiliza para asignar las aulas al condensado dematerias

Al inicio se reciben como datos generales el condensado de materias La poblacioacuteninicial se obtiene copiando N veces (N versiones) este condensado y agregando a cadaregistro el nuacutemero de versioacuten y un aula asignada de manera aleatoria de esta manera seobtienen N versiones diferentes del condensado original

Cada versioacuten es entonces evaluada contando el nuacutemero de choques en aula y la cantidadde espacios vaciacuteos por aula a cada versioacuten se le genera un vector para guardar laevaluacioacuten (cromosoma de evaluacioacuten) y de esta manera se mide el grado de aptitud quetiene cada versioacuten

Las versiones que tienen menos choques y menos espacios vaciacuteos se consideran con ungrado de aptitud alto y son las mejores al contrario las que tienen muchos choquesson consideradas de aptitud baja no sirven para la reproduccioacuten y son desechadas

Una vez seleccionadas la mejores versiones se procede a la aplicacioacuten de los operadoresgeneacuteticos el primero que se aplica es el cruzamiento y consiste en elegir dos versionesde alta aptitud tomar segmentos seleccionados heuriacutesticamente de ellas y formar unnuevo individuo (una nueva versioacuten) se repite este proceso Y veces con las diferentesversiones hasta tener una nueva generacioacuten de N condensados de horarios

Repetir este proceso de generacioacuten evaluacioacuten y seleccioacuten durante Z generacionesaplicando cuando se necesite la clonacioacuten que es un proceso de copiar completamenteuna versioacuten (con alto grado de aptitud) a la nueva generacioacuten

Al principio la convergencia hacia horarios sin choques en aula es raacutepida pero al pasode las generaciones disminuye entonces se debe usar la mutacioacuten que es un proceso deacceder manualmente los registros de alguna versioacuten Zi en la generacioacuten Z y corregiralguacuten aula al final despueacutes de varias generaciones selecciones cruzamientosclonaciones y mutaciones se obtiene un condensado de aulas libres de choques y conpocos espacios vaciacuteos

En la Figura 46 se muestran los componentes del Sistema Experto utilizado para sugerircuales son los catedraacuteticos que mejor se desempentildeariacutean para impartir una asignaturatomando en cuenta los conocimientos que tiene un profesor (adquiridos a lo largo de sucarrera) y cuales son los conocimientos necesarios para impartir la caacutetedra de algunaasignatura

Capiacutetulo 4 Anaacutelisis y Disentildeo

Todo inicia haciendo una encuesta a los profesores acerca del perfil y los conocimientosnecesarios para poder impartir una asignatura el objetivo de la misma y los principalestemas que abarca todo lo anterior se captura en la base de hechos como el perfil de lamateria

Posteriormente se hace otra encuesta a los profesores pidieacutendoles que seleccionencuales son los conocimientos y el grado de dominio que tienen de los diferentes toacutepicosde las asignaturas esto se convierte en el perfil del catedraacutetico Por uacuteltimo con unproceso de induccioacuten se determina para cada materia cual es el grado de certeza con elcual puede un profesor impartir una asignatura

Experto

Coordinador

Interfaz Experto

Base deConocimientos

CatedraacuteticosConocimientos profesorPerfil profesor

Motor de Inferencia Lista profesores paraimpartir una materia

Jefedepartamento

Moacutedulo Explicacioacuten

Usuario(coordinador

novato)

Interfaz Usuario

Base Hechos

Perfil

Fig 46 Diagrama de Sistema Experto para sugerir profesor a asignatura

Capiacutetulo 4 Anaacutelisis y Disentildeo

Noacutetese en la Figura 47 que el coordinador captura el conocimiento referente a lasasignaturas (objetivo temas caracteriacutesticas necesarias para impartirla) y este esalmacenado en la Base de Conocimientos

Por otro lado un profesor debe llenar una encuesta en la que indique cuales son lostemas que domina y en que porcentaje lo hace (esto es el perfil del catedraacutetico) estainformacioacuten se almacena en la base de hechos--

El Motor de Inferencia hace los matchs respectivos y genera una lista de las materias quepuede impartir un profesor y con que grado de certeza estaacute capacitado para hacerlo

Por uacuteltimo el moacutedulo de explicacioacuten informa el porqueacute dio esa inferencia mostrando lascaracteriacutesticas de materia y profesor que hicieron match

Fig 47 Diagrama de Sistema Experto para sugerir asignaturas para catedraacutetico

Experto

Coordinador

Interfaz Experto

Base deConocimientos

MateriasCaracteriacutesticas MateriasPerfil materia

Motor de Inferencia Lista materias para unprofesor

Profesor

Moacutedulo Explicacioacuten

Profesor nuevoInterfaz Usuario

Base Hechos Perfil profesor

Capiacutetulo 4 Anaacutelisis y Disentildeo

453 Diagrama de contextoEn la Figura 48 se detallan los elementos que intervienen aportando y recibiendoinformacioacuten para el funcionamiento del sistema

Los departamentos acadeacutemicos aportan al sistema una lista con los catedraacuteticos quelaboran ahiacute incluye los datos personales de los profesores nuacutemero de tarjeta nombrecarrera etc Los coordinadores de carrera son los responsables de la elaboracioacuten de loshorarios estos funcionarios son la pieza fundamental de este proceso porque aportan susconocimientos para

bull Definir el ajuste al dato estadiacutestico proporcionado por Servicios Escolaresbull Definir las restricciones para la creacioacuten de los paquetes de gruposbull Definir las restricciones para asignar hora a cada grupobull La distribucioacuten de los grupos en las aulasbull Asignar la asignatura que mejor puede impartir un catedraacuteticobull Asignarle a una asignatura al profesor que mejor puede impartirla

El departamento de Servicios Escolares es el iniciador del proceso de la elaboracioacuten dehorarios aporta los datos estadiacutesticos obtenidos de la situacioacuten escolar actual de losalumnos cada alumno estaacute inscrito en alguna de las 8 carreras que se ofrecen en elInstituto estaacute cursando entre 5 y 8 asignaturas por semestre en cada periodo acredita oreprueba algunas materias En cada carrera se tiene un mapa reticular que incluyeaproximadamente 50 asignaturas con prerrequisitos creacuteditos horas en aula horas enlaboratorio orden por semestre etc

El departamento Divisioacuten de Estudios Profesionales (donde estaacuten adscritos loscoordinadores de carrera) es el responsable de distribuir las aulas disponibles delInstituto entre los distintos coordinadores las aulas son un recurso escaso y por lo tantovalioso de esta distribucioacuten depende en gran medida la holgura o estrechez que tienenlos coordinadores para asignar las aulas a los grupos creados

Los profesores son otro de los recursos valiosos de una institucioacuten son los responsablesde transmitir sus conocimientos a los alumnos cada catedraacutetico posee conocimientos dediversas aacutereas toacutepicos y ramas del saber humano el perfil del catedraacutetico estaacute enrelacioacuten directa con el dominio que tiene de cada una de ellas y varia desde unconocimiento superficial hasta el dominio total de un aacuterea

Los generadores random de los moacutedulos PLR y AG proporcionan la informacioacutennecesaria generada de manera aleatoria para el funcionamiento de esos moacutedulos

A los coordinadores y alumnos se les proporciona un condensado de horarios losalumnos conocen los grupos a los que se pueden inscribir las horas las aulas y loscatedraacuteticos que las impartiraacuten

Capiacutetulo 4 Anaacutelisis y Disentildeo

Sistema para laelaboracioacuten de

horarios

Departamentosacadeacutemicos

Jefes dedepartamento

Divisioacuten deEstudios

Profesionales

DepartamentoServiciosEscolares

Alumnos

Coordinadoresde carrera

Coordinadoresde carrera

Lista catedraacuteticos disponibles

Conocimientos

Reporte datos estadiacutesticos

Lista aulas disponibles

Condensado de horarios

Horarios disponibles

Lista horarios profesores

Profesores Generadoresaleatorios

Perfil maestro

Horas y aulas aleatorios

Fig 48 Diagrama de contexto del proyecto

Cap

iacutetulo

4

Anaacute

lisis

y D

isentilde

o

Sist

ema

para

lael

abor

acioacute

n de

hora

rios

Dep

arta

men

tos

acad

eacutemic

os

Div

isioacute

n de

Estu

dios

Prof

esio

nale

s

Dep

arta

men

toSe

rvic

ios

Esco

lare

sC

oord

inad

ores

de c

arre

ra

List

a ca

tedr

aacutetic

os d

ispo

nibl

es

Con

ocim

ient

osR

epor

teda

tose

stad

iacutestic

osLi

sta

aula

s dis

poni

bles

Prof

esor

esG

ener

ador

esal

eato

rios

Perf

il m

aest

roH

oras

y a

ulas

Fig

49

Dia

gram

a de

func

ione

s fun

dam

enta

les (

entra

das)

Cap

tura

supe

rfil

deco

noci

mie

nto

Cap

tura

las

aula

s

Enviacute

a da

tos

Cap

tura

suco

noci

mie

nto

Enviacute

a da

tos

depr

ofes

ores G

ener

ada

tos

Cla

ve n

ombr

eho

ras

turn

o

Tips

tru

cos

cono

cim

ient

ohe

uriacutes

tico

Cla

ve c

apac

idad

ed

ifici

o

Alu

mno

sin

scrit

os

sim

ulac

ioacuten

no

insc

ritos

iacutend

ice

repr

obac

ioacuten

Toacutepi

cos y

tem

asqu

e do

min

aA

ula

y ho

raal

eato

rios

Capiacutetulo 4 Anaacutelisis y Disentildeo

Sistema para laelaboracioacuten de

horarios

Coordinadoresde carrera

Jefes dedepartamento Alumnos

Fig 410 Diagrama de funciones fundamentales (salidas)

Imprimecondensado

Imprime lista Imprimehorarios

Maestro materiahora

Materia grupohora aula

maestrosugerido

Condensado de horarios Horarios disponibles

Lista horarios profesores

Materia grupohora aula

maestro

Capiacutetulo 4 Anaacutelisis y Disentildeo

454 Diagrama entidad - relacioacuten

NOTA Los siguientes diagramas muestran las tablas utilizadas por cada moacutedulo paramayor claridad se repitieron las tablas necesarias para representar cada parte del sistemapero en la base de datos no existe tal duplicacioacuten

Este diagrama contiene las tablas del moacutedulo administrativo de los horarios en unprincipio eacutestas eran las uacutenicas tablas de un sistema de control de horarios

FK_HORARIOS_REFERENCE_MATERIASFK_MATERIAS_REFERENCE_SERVICIO

FK_MATERIAS_REFERENCE_RAMA_MAT FK_MATERIAS_REFERENCE_CARRERAS

HORARIOS

GrupoId_aulaHora_inicioHora_lunesHora_martesHora_miercolesHora_juevesHora_viernesHora_sabadoObservacionesPeriodoAnioid_materiaId_catedratico

Text(2)INTEGERINTEGERText(6)Text(6)Text(6)Text(6)Text(6)Text(6)Text(30)Text(20)INTEGERINTEGERSMALLINT

ltfk3gt

ltfk2gtltfk1gt

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave de asig prerequisitoclave de asig prerequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

MATERIAS

SERVICIOS_ESCOLARESId_materiaINSCRITOSNO INSCRITOSSIMULACIONPROXIMO SEMESTREGRUPOS REQUERIDOSIndice de reprobacionperiodoantildeoGrupos ajustadoAlumnos ajustadoId_ajusteId_regla

INTEGERSMALLINTSMALLINTSMALLINTSMALLINTDOUBLEDOUBLEText(7)INTEGERSMALLINTSMALLINTINTEGERSMALLINT

RAMA_MATERIA

Id_ramaNombre_rama

COUNTERText(30)

ltpkgt

CARRERAS

Id_CarreraNombre_carrera

Text(15)Text(50)

ltpkgt

Fig 411 Diagrama entidad ndash relacioacuten del moacutedulo administrativo

Capiacutetulo 4 Anaacutelisis y Disentildeo

Este diagrama muestra las tablas donde se almacena el conocimiento de loscoordinadores para que el Sistema Experto del moacutedulo sugiera y aplique el ajuste aldato de cantidad de grupos sugerido por Servicios Escolares La relacioacuten entre las tablasva generando las reglas de produccioacuten

MATERIAS

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave asig prerrequisitoclave asig prerrequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

REGLAS

DescriId_reglaId_ajusteTot_peso

Text(70)COUNTERINTEGERINTEGER

ltpkgtltfkgt

FK_MATERIAS_REFERENCE_SERVICIO

FK_HECHOS_R_REFERENCE_CRITERIO

FK_HECHOS_R_REFERENCE_REGLAS

FK_HISTORIA_REFERENCE_REGLAS

FK_HISTORIA_REFERENCE_CRITERIO

FK_REGLAS_REFERENCE_AJUSTES

FK_HISTORIA_REFERENCE_MATERIAS

FK_HISTORIA_REFERENCE_CRITERIO

SERVICIOS_ESCOLARES

Id_materiaINSCRITOSNO INSCRITOSSIMULACIONPROXIMO SEMESTREGRUPOS REQUERIDOSIndice de reprobacioacutenperiodoantildeoGrupos ajustadoAlumnos ajustadoId_ajusteId_regla

INTEGERSMALLINTSMALLINTSMALLINTSMALLINTDOUBLEDOUBLEText(7)INTEGERSMALLINTSMALLINTINTEGERSMALLINT

HECHOS_REGLAS

Id_criterioId_reglaPromedio

INTEGERINTEGERINTEGER

ltfk2gtltfk1gt

CRITERIOS

Id_criterioDescripcion

COUNTERText(60)

ltpkgt

HISTORIAL_CRITERIOS

Id_criterioId_reglaPeso de la regla

INTEGERINTEGERSMALLINT

ltfk2gtltfk1gt

AJUSTES

TipoDescripcionId_ajuste

Text(25)MemoCOUNTER ltpkgt

HISTORIAL_MATERIA

Id_materiaId_criterioprioridad

INTEGERINTEGERSMALLINT

ltfk2gtltfk1gt

Fig 412 Diagrama E-R del moacutedulo para determinar y ajustar nuacutemero de grupos

Capiacutetulo 4 Anaacutelisis y Disentildeo

En este diagrama se muestra la base de datos que almacena la informacioacuten quemanipula el moacutedulo Algoritmo Geneacutetico las tablas maacutes representativas sonPOBLACION donde se guardan todas las versiones que forman las generaciones dehorarios y CROMOSOMAS que almacena el registro de evaluacioacuten de cada versioacuten dehorarios

FK_HORARIO__REFERENCE_AULAS

FK_HORARIO__REFERENCE_POBLACIO

FK_MATERIAS_REFERENCE_TIPO_HOR

FK_POBLACIO_REFERENCE_AULAS

FK_POBLACIO_REFERENCE_MATERIAS

FK_POBLACIO_REFERENCE_CROMOZOM1 1

HORARIO_AULA

VersionAulaLunesMartesMiercolesJuevesViernesSabadoHoraId_aula

INTEGERText(6)SMALLINTSMALLINTSMALLINTSMALLINTSMALLINTSMALLINTSMALLINTINTEGER

ltfk2gt

ltfk1gt

AULAS

Id_aulaCapacidad_aulaNombre_aulaDisponible

COUNTERSMALLINTText(50)YesNo

ltpkgt

POBLACION

Id_materiaGrupoId_catedraticoAulaHora_inicioHora_lunesHora_martesHora_miercolesHora_juevesHora_viernesVersionId_aulaPeriodoAnio

INTEGERText(4)INTEGERText(4)INTEGERText(6)Text(6)Text(6)Text(6)Text(6)INTEGERINTEGERText(10)INTEGER

ltfk2gt

ltfk1gtltfk3gt

MATERIAS

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave de asig prerequisitoclave de asig prerequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

TIPO_HORARIO

Tipo_horario

DescripcionLunes

MartesMiercoles

Jueves

ViernesSabado

COUNTER

Text(20)SMALLINT

SMALLINTSMALLINT

SMALLINT

SMALLINTSMALLINT

ltpkgt

CROMOZOMAS

VersionSemestreChoquesVacias

INTEGERINTEGERINTEGERINTEGER

ltpkgt

Fig 413 Diagrama E-R del moacutedulo para asignar aulas (Algoritmo Geneacutetico)

Capiacutetulo 4 Anaacutelisis y Disentildeo

En esta Figura 414 se pueden observar las tablas involucradas en el proceso paragenerar los paquetes de materias por semestre y la asignacioacuten de horario a cada grupodel paquete utilizando la teacutecnica Programacioacuten Loacutegica de Restricciones noacutetese que noexiste una tabla de restricciones eacutestas se aplican por software a cada grupo generado

FK_MATERIAS_REFERENCE_SERVIC

FK_MATERIAS_REFERENCE_TIPO_H

FK_HORARIOS_REFERENCE_MATERI

MATERIA

Id_materiMateriNum de HrsNum de HrsClave deId_CarrerCreditoSemestrObservacioneTroncoalumnos porclave de asigclave de asigId_ramSuma_maOrdeTipo_horari

INTEGEText(40SMALLINSMALLINText(8Text(15SMALLINSMALLINText(60YesNSMALLINText(40Text(40INTEGESMALLINSMALLININTEGE

ltpkfk4

ltfk1

ltfk3

ltfk2

SERVICIOS_ESCOLARE

Id_materiINSCRITONOSIMULACIOPROXIMOGRUPOSIndice deperiodantildeGruposAlumnosId_ajustId_regl

INTEGESMALLINSMALLINSMALLINSMALLINDOUBLDOUBLText(7INTEGESMALLINSMALLININTEGESMALLIN

TIPO_HORARI

Tipo_horariDescripcioLuneMarteMiercoleJueveVierneSabad

COUNTEText(20SMALLINSMALLINSMALLINSMALLINSMALLINSMALLIN

ltpk

HORARIO

GrupId_aulHora_iniciHora_luneHora_marteHora_miercoleHora_jueveHora_vierneHora_sabadObservacionePeriodAniid_materiId_catedratic

Text(2INTEGEINTEGEText(6Text(6Text(6Text(6Text(6Text(6Text(30Text(20INTEGEINTEGESMALLIN

ltfk3

ltfk2ltfk1

Fig414 Diagrama E-R del moacutedulo para asignar horario (PLR)

Capiacutetulo 4 Anaacutelisis y Disentildeo

FK_HECHOS_M_REFERENCE_MATERIAS

FK_HECHOS_M_REFERENCE_CATEDRAT

HECHOS_MAT_PROF

Id_catedraticoId_materiaPromedio

SMALLINTSMALLINTSMALLINT

ltpkfk1gtltpkfk2gt

FK_PERFIL_C_REFERENCE_CATEDRAT

FK_PERFIL_C_REFERENCE_PERFILES

FK_PERFILES_REFERENCE_TIPO_PER

FK_PROF_PAR_REFERENCE_CATEDRAT

FK_PROF_PAR_REFERENCE_MATERIAS

PERFIL_CATEDRATICO

Id_catedraticoId_perfilPrioridad_perfil_cate

SMALLINTINTEGERSMALLINT

ltfk1gtltfk2gt

CATEDRATICOS

Id_catedraticoApellido_paternoApellido_maternoNombre_catedraticoTitulo_catedraticoSuma_cate

SMALLINTText(20)Text(20)Text(20)Text(30)SMALLINT

ltpkgt

PERFILES

Id_perfilId_tipoDescripcion_perfil

COUNTERINTEGERText(60)

ltpkgtltfkgt

TIPO_PERFIL

Id_tipoTipo_perfil

COUNTERText(30)

ltpkgt

PROF_PARA_MAT

Id_materiaId_catedraticoPorcentaje_cate

INTEGERSMALLINTSMALLINT

ltpkfk2gtltpkfk1gt

MATERIAS

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave de asig prerequisitoclave de asig prerequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

Fig 415 Diagrama E-R del moacutedulo designa mejor catedraacutetico (Sistema Experto)

Capiacutetulo 4 Anaacutelisis y Disentildeo

En las figuras de la paacutegina anterior y eacutesta (Fig 415 y 416) se muestran las tablasutilizadas por los Sistemas Expertos para sugerir que materias puede impartir unprofesor y tambieacuten sugiere que profesores pueden impartir una asignatura

FK_PERFILES_REFERENCE_TIPO_PER

FK_PERFIL_M_REFERENCE_MATERIAS

FK_PERFIL_M_REFERENCE_PERFILES

FK_MAT_PARA_REFERENCE_MATERIAS

FK_MAT_PARA_REFERENCE_CATEDRAT

FK_HECHOS_M_REFERENCE_MATERIAS

FK_HECHOS_M_REFERENCE_CATEDRAT

PERFILES

Id_perfilId_tipoDescripcion_perfil

COUNTERINTEGERText(60)

ltpkgtltfkgt

TIPO_PERFIL

Id_tipoTipo_perfil

COUNTERText(30)

ltpkgt

PERFIL_MATERIA

Id_materiaId_perfilPrioridad_perfil_mat

INTEGERINTEGERINTEGER

ltfk2gtltfk1gt

MATERIAS

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave de asig prerequisitoclave de asig prerequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

MAT_PARA_PROF

Id_catedraticoId_materiaPorcentaje_mat

SMALLINTINTEGERSMALLINT

ltpkfk1gtltpkfk2gt

CATEDRATICOS

Id_catedraticoApellido_paternoApellido_maternoNombre_catedraticoTitulo_catedraticoSuma_cate

SMALLINTText(20)Text(20)Text(20)Text(30)SMALLINT

ltpkgt

HECHOS_MAT_PROF

Id_catedraticoId_materiaPromedio

SMALLINTSMALLINTSMALLINT

ltpkfk1gtltpkfk2gt

Fig 416 Diagrama E-R del moacutedulo selecciona mejor materia (sistema experto)

Capiacutetulo 4 Anaacutelisis y Disentildeo

455 Diccionario de la Base de Datos

Nombre HORARIOS_CON_CONOCIMIENTOComentario Base de datos del sistema ldquoGeneracioacuten de horarios mediante Sistemas

Basados en ConocimientordquoDBMS Microsoft Access 97

Lista de Tablas

Nombre Tipo deObjeto

AJUSTES TableAULAS TableCARRERAS TableCATEDRATICOS TableCRITERIOS TableCROMOSOMAS TableHECHOS TableHECHOS_MAT_PROF TableHECHOS_PROF_MAT TableHECHOS_REGLAS TableHISTORIAL_CRITERIOS TableHISTORIAL_MATERIA TableHORARIO_AULA TableHORARIOS TableMAT_PARA_PROF TableMATERIAS TablePERFIL_CATEDRATICO TablePERFIL_MATERIA TablePERFILES TablePOBLACION TablePROF_PARA_MAT TableRAMA_MATERIA TableREGLAS TableSERVICIOS_ESCOLARES TableTIPO_HORARIO TableTIPO_PERFIL Table

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla AJUSTESFuncioacuten Almacena los datos de los tipos de ajuste que se aplican por el Sistema Experto al

dato estadiacutestico que define cuantos grupos se deben abrir de cada materia

Lista de columnas de la tabla AJUSTESNombre Tipo de

DatoLong Llave

Primaria ForaneaComentario

Tipo Text(25) 25 Nombre del tipo de ajusteDescripcioacuten Memo Explicacioacuten del ajuste a realizar al nuacutemero

de grupos calculados segun estadisticosId_ajuste COUNTER 4 X Identificador del ajuste

Tabla AULASFuncioacuten Almacena los datos de las aulas que existen en cada edificio del instituto

Lista de columnas de la tabla AULASNombre Tipo de

DatoLong Llave

Primaria ForaneaComentario

Id_aula COUNTER 4 X Identificador del aulaCapacidad_aula SMALLINT 4 Nuacutemero maacuteximo de alumnos en el

aulaNombre_aula Text(50) 50 Nombre del aula (edificio+numero)Disponible YesNo 1 Disponibilidad del aula

Tabla CARRERASFuncioacuten Almacena los datos de las carreras que se imparten en el ITZ

Lista de columnas de la tabla CARRERASNombre Tipo de

DatoLong Llave

Primaria ForaneaComentario

Id_Carrera Text(15) 15 X Clave de la carreraNombre_carrera Text(50) 50 Nombre de la carrera

Tabla CATEDRATICOSFuncioacuten Almacena los datos de los CATEDRAacuteTICOS que imparten clases en las diferentes carreras del

Instituto Se utilizan los datos en los Sistemas Expertos que definen cual es el mejor catedraacuteticopara impartir una materia

Capiacutetulo 4 Anaacutelisis y Disentildeo

Lista de columnas de la tabla CATEDRATICOSNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_catedratico SMALLINT 4 X Nuacutemero de tarjeta del catedraacuteticoApellido_paterno Text(20) 20 Apellido paterno del catedraacuteticoApellido_materno Text(20) 20 Apellido materno del catedraacuteticoNombre_catedratico Text(20) 20 Nombre del catedraacuteticoTitulo_catedratico Text(30) 30 Grado de estudios y tiacutetulo del

catedraacuteticoSuma_cate SMALLINT 4 Suma total de las pesos de los perfiles

pertenecientes al catedraacutetico

Tabla CRITERIOSFuncioacuten Tabla de los criterios utilizados por el experto para crear las reglas que definen el tipo de

ajuste inferido por el Sistema Experto para definicioacuten de grupos por abrir

Lista de columnas de la tabla CRITERIOSNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_criterio COUNTER 4 X Identificador del criterio aplicado auna materia para crear grupos

Descripcion Text(60) 60 Descripcioacuten del criterio

Tabla CROMOSOMASFuncioacuten Almacena los datos de la evaluacioacuten de cada versioacuten de horarios generada ya sea por la

poblacioacuten inicial o por los operadores geneacuteticos se genera un cromosoma por cadasemestre en cada versioacuten

Lista de columnas de la tabla CROMOSOMASNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Version INTEGER 4 X Nuacutemero de individuo o versioacuten dehorarios

Semestre INTEGER 4 Semestre al que pertenece el datoChoques INTEGER 4 Nuacutemero de choques de versioacuten y

semestreVacias INTEGER 4 Nuacutemero de aulas vaciacuteas del individuo

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla HECHOS_MAT_PROFFuncioacuten Esta tabla almacena el resultado de la inferencia del Sistema Experto materias para

profesor indica para cada catedraacutetico las materias y el porcentaje de certeza con quepuede impartirlas

Lista de columnas de la tabla HECHOS_MAT_PROFNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_catedratico SMALLINT 4 X Identificador del catedraacuteticoId_materia SMALLINT 4 X Identificador de la asignaturaPromedio SMALLINT 4 Porcentaje de certeza con que un

profesor puede impartir una materia(resultado de la inferencia)

Tabla HECHOS_PROF_MATFuncioacuten Almacena los datos de la inferencia del Sistema Experto que calcula para una materia

determinada cuales son los mejores maestros para impartirla

Lista de columnas de la tabla HECHOS_PROF_MATNombre Tipo de

DatoLongitud

LlavePrimaria Foraacutenea

Comentario

Id_catedratico SMALLINT 4 X Identificador del catedraacuteticoId_materia SMALLINT 4 X Identificador de la asignaturaPromedio SMALLINT 4 Porcentaje de certeza con que una

materia puede ser impartida por unprofesor (resultado de la inferencia)

Tabla HECHOS_REGLASFuncioacuten Almacena los porcentajes de certeza con que se dispara una regla del Sistema Experto

que define los grupos por abrir

Lista de columnas de la tabla HECHOS_REGLASNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_criterio SMALLINT 4 X Identificador del criterioId_regla SMALLINT 4 X Identificador de la reglaPromedio INTEGER 4 Porcentaje de certeza con que una

regla dispara un criterio

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla HISTORIAL_CRITERIOS

Funcioacuten Almacena las reglas formadas por los criterios utilizados por el Sistema Experto paradefinir los grupos por abrir

Lista de columnas de la tabla HISTORIAL_CRITERIOSNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_criterio INTEGER 4 X Identificador del criterio pertenecientea la regla

Id_regla INTEGER 4 X Identificador de la reglaPeso de la regla SMALLINT 4 Peso del criterio en la regla

Tabla HISTORIAL_MATERIAFuncioacuten Tabla que almacena la definicioacuten de cada materia con base en los criterios utilizados por

las reglas para definir por materia el nuacutemero de grupos por abrir

Lista de columnas de la tabla HISTORIAL_MATERIANombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materia para suasignacioacuten de criterios

Id_criterio INTEGER 4 X Identificador del criterio que se aplicaa la materia para describirla

Prioridad SMALLINT 4 Peso del criterio en la materia

Tabla HORARIOS

Funcioacuten Almacena los datos del condensado final de horarios aquiacute se almacena el producto finaldel sistema para su posterior publicacioacuten y distribucioacuten entre la comunidad tecnoloacutegica

Lista de columnas de la tabla HORARIOSNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materiaGrupo Text(2) 2 Identificador del grupo A B CId_catedratico SMALLINT 4 X Catedraacutetico asignado al grupoId_aula INTEGER 4 X Aula asignada al grupoHora_inicio INTEGER 4 Hora de inicio del grupoHora_lunes Text(6) 6 Horas que se imparte el grupo el diacutea

lunes

Capiacutetulo 4 Anaacutelisis y Disentildeo

Hora_martes Text(6) 6Hora_miercoles Text(6) 6Hora_jueves Text(6) 6Hora_viernes Text(6) 6Hora_sabado Text(6) 6Observaciones Text(30) 30 Observaciones al grupoPeriodo Text(20) 20 Periodo Ene-jun o Ago-dicAnio INTEGER 4 Antildeo en que se utiliza el horario

Tabla HORARIO_AULAFuncioacuten Tabla auxiliar utilizada como almacenamiento temporal durante el proceso de evaluacioacuten

en el Algoritmo Geneacutetico guarda los datos de ocupacioacuten choques y no utilizacioacuten decada aula por hora diacutea y versioacuten

Lista de columnas de la tabla HORARIO_AULANombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Version INTEGER 4 X Nuacutemero de individuo o versioacutenAula Text(6) 6 Nombre del aulaLunes SMALLINT 4 Nuacutemero de horas que se utiliza el aula

el diacutea lunesMartes SMALLINT 4Miercoles SMALLINT 4Jueves SMALLINT 4Viernes SMALLINT 4Sabado SMALLINT 4Hora SMALLINT 4 Hora de utilizacioacuten del aulaId_aula INTEGER 4 X Identificador del aula en la versioacuten

Tabla MATERIASFuncioacuten Esta es una de las principales tablas del proyecto se utiliza en todos los moacutedulos del

sistema contiene informacioacuten base para caacutelculos diversos ademaacutes contiene tambieacuten lasllaves de diferentes tablas que describen de manera de manera especial a las materias

Lista de columnas de la tabla MATERIASNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia COUNTER 4 X Identificacioacuten de la materia llaveprincipal

Materia Text(40) 40 Nombre de la materiaNum de Hrs prac SMALLINT 4 Nuacutemero de horas praacutecticasNum de Hrs teo SMALLINT 4 Nuacutemero de horas teoacutericasClave de Asig Text(8) 8 Clave oficial de la materiaId_Carrera Text(15) 15 X Carrera a la que pertenece la materiaCreditos SMALLINT 4 Creacuteditos de la materia

Capiacutetulo 4 Anaacutelisis y Disentildeo

Semestre SMALLINT 4 Semestre en que se imparte la materiaObservaciones Text(60) 60Tronco comun YesNo 1 Definicioacuten de especialidad o tronco

comuacutenalumnos porgrupo

SMALLINT 4 Capacidad sugerida de los grupos deesta materia

clave de asigprerequisito

Text(40) 40 Clave de asignatura del prerrequisito

clave de asigprerequisito1

Text(40) 40 Clave de asignatura del prerrequisito

Id_rama INTEGER 4 X Identificador de la rama a la quepertenece la materia

Suma_mat SMALLINT 4 Suma total de los perfilespertenecientes a la materia

Orden SMALLINT 4 Es el nuacutemero de materia en un paqueteTipo_horario INTEGER 4 X El tipo de horario asignado a materia

Tabla MAT_PARA_PROFFuncioacuten La tabla almacena para cada catedraacutetico las asignaturas que puede impartir y el grado

de certeza con que puede hacerlo se almacena en esta tabla el resultado de la inferenciadel Sistema Experto

Lista de columnas de la tabla MAT_PARA_PROFNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_catedratico SMALLINT 4 X Nuacutemero de tarjeta del profesorId_materia INTEGER 4 X Identificador de la materiaPorcentaje_mat SMALLINT 4 Porcentaje de certeza con que un

profesor puede impartir una materia

Tabla PERFILESFuncioacuten Tabla que contiene una relacioacuten de todas las caracteriacutesticas de las materias

caracteriacutesticas necesarias para poder impartirlas es al mismo tiempo la tabla quecontiene la relacioacuten general de los conocimientos que poseen los profesores

Lista de columnas de la tabla PERFILESNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_perfil COUNTER 4 X Identificador del perfil paraasignaciones de materias acatedraacuteticos

Id_tipo INTEGER 4 X Identificador del tipo del perfilDescripcion_perfil Text(60) 60 Descripcioacuten de una caracteriacutestica del

perfil de una materia o un catedraacutetico

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla PERFIL_CATEDRATICOFuncioacuten Tabla que contiene el perfil de todos los catedraacuteticos (pueden llamarse las reglas) del

Sistema Experto que recomienda profesores para las materias el perfil de un catedraacuteticoesta definido por los conceptos que domina de las materias

Lista de columnas de la tabla PERFIL_CATEDRATICONombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_catedratico SMALLINT 4 X Identificador del catedraacutetico paradefinicioacuten de su perfil acadeacutemico

Id_perfil INTEGER 4 X Identificador del perfil que define aun catedraacutetico

Prioridad_perfil_cate SMALLINT 4 Porcentaje en que contribuye elperfil especificado en la definicioacutendel catedraacutetico

Tabla PERFIL_MATERIAFuncioacuten Esta tabla almacena las reglas que definen el perfil de una materia contiene las

caracteriacutesticas y temas que forman el temario de la materia

Lista de columnas de la tabla PERFIL_MATERIANombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materia en laregla de la materia

Id_perfil INTEGER 4 X Identificador del perfilperteneciente a una materia

Prioridad_perfil_mat INTEGER 4 Porcentaje en que contribuye esteperfil particular a definir unamateria

Tabla PROF_PARA_MATFuncioacuten Esta tabla almacena la inferencia del Sistema Experto para determinar cuales son los

mejores profesores para impartir una materia contiene para cada asignatura una lista delos profesores y el porcentaje de certeza con que pueden desempentildearse si la imparten

Capiacutetulo 4 Anaacutelisis y Disentildeo

Lista de columnas de la tabla PROF_PARA_MATNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de materiaId_catedratico SMALLINT 4 X Identificador de catedraacuteticoPorcentaje_cate SMALLINT 4 de certeza con que el catedraacutetico X

puede impartir la materia Y

Tabla POBLACIONFuncioacuten La tabla es la maacutes importante para el moacutedulo de Algoritmo Geneacutetico porque almacena los

datos de cada individuo hipoacutetesis o versioacuten que son generados ya sea por la poblacioacuteninicial aleatoria o por los diversos operadores geneacuteticos contiene copias (versiones) delcondensado de horarios con aulas aleatorias

Lista de columnas de la tabla POBLACIONNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materiaGrupo Text(4) 4 Grupo de la materiaId_catedratico INTEGER 4 X Identificador del catedraticoAula Text(4) 4 X Nombre del aula (edificio + numero)Hora_inicio INTEGER 4 Hora de inicio del grupoHora_lunes Text(6) 6 Hora inicio del lunesHora_martes Text(6) 6Hora_miercoles Text(6) 6Hora_jueves Text(6) 6Hora_viernes Text(6) 6Version INTEGER 4 X Nuacutemero de la versioacuten o hipoacutetesisPeriodo Text(10) 10 Periodo o semestre del grupoAnio INTEGER 4 Antildeo del grupo

Tabla RAMA_MATERIAFuncioacuten La tabla almacena la clasificacioacuten de las materias de acuerdo a las ciencias a la que

pertenecen

Lista de columnas de la tabla RAMA_MATERIANombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_rama COUNTER 4 X Identificador de la rama de unamateria (clasificacioacuten)

Nombre_rama Text(30) 30 Descripcioacuten de la rama de unamateria

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla REGLAS

Funcioacuten Esta tabla almacena las reglas utilizadas para generar los grupos que se deben ofertar elproacuteximo semestre indicando para cada regla el tipo de ajuste que debe aplicarse

Lista de Columnas de la Tabla REGLASNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Descripcion Text(70) 70 Descripcioacuten de la regla para ajustarel nuacutemero de grupos

Id_regla COUNTER 4 X Identificador de la reglaId_ajuste INTEGER 4 X Identificador del tipo de ajuste que

se aplica cuando esta regla sedispara para alguna materia

Tot_peso INTEGER 4 Total de los pesos de lascaracteriacutesticas de esta regla

Tabla SERVICIOS_ESCOLARESFuncioacuten En esta tabla se almacenan los datos estadiacutesticos de cada materia que provienen de

Servicios Escolares para el caacutelculo del nuacutemero de grupos que deben abrirse para elproacuteximo semestre contiene tambieacuten los paraacutemetros proporcionados por el SistemaExperto para realizar el ajuste al nuacutemero de grupos calculado inicialmente

Lista de columnas de la tabla SERVICIOS_ESCOLARESNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materiaINSCRITOS SMALLINT 4 Nuacutemero de alumnos inscritos

actualmente en el grupoNO INSCRITOS SMALLINT 4 Nuacutemero de alumnos que pueden

cursar la materia pero no seinscribieron

SIMULACION SMALLINT 4 Simulacioacuten de Servicios Escolaresde alumnos que podraacuten cursar lamateria

PROXIMOSEMESTRE

SMALLINT 4 Resultado del calculo de ServEscolares de alumnos que cursaraacutenla materia

GRUPOSREQUERIDOS

DOUBLE 4 Grupos requeridos para abrirproacuteximo semestre seguacuten caacutelculosiniciales

Indice dereprobacion

DOUBLE 4 Indice de reprobacioacuten de la materia

periodo Text(7) 7 Periodo de caacutelculo de horarios actual(semestre ene-jun o ago-dic)

Capiacutetulo 4 Anaacutelisis y Disentildeo

antildeo INTEGER 4 Antildeo de caacutelculo de horariosGrupos ajustado SMALLINT 4 Nuacutemero de grupos a solicitar para

abrir proacuteximo semestreAlumnos ajustado SMALLINT 4 Caacutelculo final del numero de alumnos

del proacuteximo semestre en estamateria

Id_ajuste INTEGER 4 X Tipo del ajuste aplicado por elSistema Experto al campogrupos_requeridos

Id_regla SMALLINT 4 X Regla que se disparo para realizar elajuste

Tabla TIPO_HORARIOFuncioacuten Esta tabla almacena los formatos de los distintos tipos de horario que existen y se ofrecen

para cada materia horarios de 2345 diacuteas a la semana y de 123 o 4 horas por diacutea

Lista de columnas de la tabla TIPO_HORARIONombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Tipo_horario COUNTER 4 X Identificador del tipo de horarioDescripcion Text(20) 20 Descripcioacuten del tipo de horarioLunes SMALLINT 4 Nuacutemero de horas del lunesMartes SMALLINT 4 Nuacutemero de horas del martesMiercoles SMALLINT 4 Nuacutemero de horas del mieacutercolesJueves SMALLINT 4 Nuacutemero de horas del juevesViernes SMALLINT 4 Nuacutemero de horas del viernesSabado SMALLINT 4 Nuacutemero de horas del saacutebado

Tabla TIPO_PERFILFuncioacuten Aquiacute se almacena una clasificacioacuten de los perfiles de acuerdo a la rama de conocimiento

a la que pertenecen

Lista de columnas de la tabla TIPO_PERFILNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_tipo COUNTER 4 X Identificador del tipo de perfilTipo_perfil Text(30) 30 Descripcioacuten del tipo de perfil de los

catedraacuteticos o las materias

Capiacutetulo 4 Anaacutelisis y Disentildeo

456 Lista de funciones o programas

Nombre Programa Descripcioacuten del programa

Ajustes Datos generales de los tipos de ajustes que se aplican al nuacutemero degrupos por abrir al dato de Servicios Escolares

Aulas Captura los datos de las aulas disponibles para claseCaptura_horarios Este programa realiza los cambios posteriores a la generacioacutenCarreras Captura los datos de las carreras del tecnoloacutegicoCatedraticos Datos generales de los catedraacuteticosClonacion Obtiene una copia (clon) del mejor individuo de una generacioacutenCons_ajuste Muestra yo imprime los datos generales de los ajustesCons_aulas Emite una pantalla de consulta general de aulasCons_captura_horarios Muestra una pantalla de consulta de los horarios generadosCons_carrera Despliega yo imprime las carrerasCons_catedratico Muestraimprime los datos generales de los catedraacuteticosCons_criterio Formulario que muestra yo despliega los criterios generalesCons_critXmat Muestra yo imprime los criterios de una materiaCons_critXregla Despliegaimprime los criterios que forman una reglaCons_gpos_abrir Explicacioacuten de la inferencia realizada (reglas disparadas)Cons_hist_crit Muestra las reglas de produccioacuten de los criteriosCons_materia Pantalla que despliega yo imprime datos de las materiasCons_materia_gral Pantalla de consulta general de los datos de materiasCons_perf_cate Consultaimprime los datos del perfil acadeacutemico de los

catedraacuteticosCons_perf_mate Consultaimprime los datos del perfil acadeacutemico de las materiasCons_perfil Muestraimprime datos de los perfilesCons_perfiles Consulta a la lista de perfiles o caracteriacutesticas Cons_perfilxmat Consulta a las reglas de produccioacuten del perfil de una materiaCons_rama Consulta a la lista de ramas (clasificacioacuten de las materias)Cons_reglas Consulta a la base de reglas para ajustar nuacutemero de gruposCons_serv_esc Consulta a las tablas que tienen informacioacuten de Servicios

EscolaresCons_serv_escol Pantalla que muestra yo imprime los datos estadiacutesticos de Serv

EscCons_tipo_perfil Consulta a los tipos de perfil (clasificacioacuten de perfiles)Crit_X_mat Formulario que captura los criterios pertenecientes a una materiaCrit_X_regla Captura los criterios que forman una regla de produccioacutenCriterios Pantalla que captura el conocimiento de criterios para el SECriteriosxmat Pantalla de captura para los criterios por materiaCruzamiento Programa que realiza la combinacioacuten (cruza) de individuos de la

poblacioacuten en el Algoritmo Geneacutetico

Capiacutetulo 4 Anaacutelisis y Disentildeo

Evaluacion Programa que realiza la creacioacuten del cromosoma de evaluacioacuten alevaluar las versiones de horarios de una generacioacuten

Explica_ajustes Moacutedulo de explicacioacuten del porque se aplicoacute determinado ajuste auna materia

Explica_mat_p_prof Explicacioacuten del porque una materia puede ser impartida por unprofesor con cierto grado de certidumbre

Explica_prof_p_mat Explicacion del porque un profesor puede impartir una materiacon cierto grado de certidumbre

Genera_horarios Sistema que utiliza Programacioacuten Loacutegica de Restricciones paragenerar los paquetes de horarios de un semestre

Genera_paquete Muestra el paquete generado por el procesoGrupo_nuevo Programa que va generando los paquetesGrupos_por_abrir Inferencia realizada para definir el ajuste aplicado a los grupos

definidos por Servicios EscolaresHistorial_criterios Captura los criterios necesarios para hacer una reglaHistorial_materia Captara los criterios por materiaMat_para_prof Inferencia realizada para determinar que profesores pueden

impartir una materiaMaterias Actualizacioacuten al archivo datos generales de las materiasMenu_algoritmos_geneticos Menuacute del moacutedulo para asignar aula a los gruposMenu_generacion_grupos Menuacute del Sistema Experto para definir cuantos grupos abrirMenu_asigna_horario Menuacute del moacutedulo asignacioacuten de horarioMenu_principal Menuacute principal del sistemaMenu_sel_catedra Menuacute del Sistema Experto para seleccioacuten de catedraacuteticos a

materiaMutacion Programa que hace la modificacioacuten de informacioacuten de aulas de

alguna versioacuten (versioacuten)Perfil_catedratico Captura el perfil acadeacutemico de los catedraacuteticosPerfil_materia Captura el perfil acadeacutemico de las materiasPerfiles Datos generales del perfil acadeacutemico de materias y catedraacuteticosPoblacion_inicial Programa que genera versiones de horarios y que de manera

aleatoria le va asignando aula a los gruposPortada_principal Es la ventana de entrada al sistemaProf_para_mat Inferencia realizada para determinar que materias pueden ser

impartidas por un profesorRama Programa que capturas las posibles ramas de los materiasReglas Datos generales de las reglas de produccioacuten para definir el No de

grupos por abrirSeleccioacuten Proceso que selecciona las mejores versiones de horarios (mejores

individuos) y elimina las menos aptasServ_escolares Pantalla de captura de los datos estadiacutesticos de Servicios EscolaresTipo_perfil Programa que captura la clasificacioacuten de los perfiles de materias y

profesores

Capiacutetulo 4 Anaacutelisis y Disentildeo

457 Diagrama de Arquitectura (Menuacutes)

Menuacute general

Menuacute Grupos porabrir

MenuacuteGeneracioacuten de

horarios

MenuacuteAsignacioacuten de

aulas

Datos de materias

Estadiacutesticos Serv Esc

Criterios

Criterios por materia

Reglas

Criterios por regla

Ajustes

Carreras

Nuacutemero de grupos

MenuacuteSeleccioacuten decatedraacuteticos

Genera paquete

Genera horarios

Datos generalesgrupos

Datos de aulas

Genera poblacioacuteninicial

Evaluacioacuten

Seleccioacuten

Cruzamiento

Clonacioacuten

Mutacioacuten

Horarios finales

Perfiles

Perfil de las materias

Perfil de catedraacuteticos

Catedraacuteticos

Perfil de loscatedraacuteticos

Asignacioacuten materia aprofesor

Asignacioacuten profesor amateria

Capiacutetulo 4 Anaacutelisis y Disentildeo

Capiacutetulo 5 Implementacioacuten del sistema

CAPIacuteTULO 5

IMPLEMENTACIOacuteN

51 Pantallas del sistema

La Figura 51 muestra la portada inicial del proyecto Contiene los logotipos de las tresinstituciones participantes y el nombre del proyecto

Fig 51 Portada inicial del proyecto

La Figura 52 es la pantalla que proporciona la informacioacuten de los autores del proyecto

Es el botoacutende entrada alsistema

Botoacuten deinformacioacuten delos autores

Capiacutetulo 5 Implementacioacuten del sistema

Fig 52 Acerca del sistema

La Figura 53 muestra el menuacute principal del proyecto contiene y 4 moacutedulos La primeraopcioacuten incluye los moacutedulos administrativo y generacioacuten de grupos la segunda opcioacutenincluye seleccioacuten de maestro y seleccioacuten de materia

Fig 53 Menuacute principal del proyecto

Moacutedulos delproyecto

Cuadro queproporcionalainformacioacutende la opcioacutensentildealada porel cursor

Capiacutetulo 5 Implementacioacuten del sistema

En la Figura 54 se tiene la pantalla del menuacute que agrupa los programas del moacuteduloadministrativo y Sistema Experto para determinar el nuacutemero de grupos por abrir seguacutenlos caacutelculos realizados con los datos de Servicios Escolares y el ajuste a ese dato

Fig 54 Menuacute grupos por abrir

Este programa del moacutedulo administrativo (Figura 55) sirve para capturar la informacioacutengeneral de las asignaturas que componen una carrera

Fig 55 Materias

Programas delos moacutedulos

Descripcioacutende laactividad delprogramaseleccionado

Nombre de laasignatura

Nuacutemero dehoraspraacutecticas yteoacutericas

Alumnos por grupopara calcularcantidad de grupos

Dato para formarpaquetes porsemestre

Icono quehabilita lacaptura denuevosdatos

Icono queregresa alMenuacute anterior

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 56 es un ejemplo de la consulta de datos en pantalla

Fig 56 Consulta Materias

La Figura 57 es la pantalla donde se capturan los datos estadiacutesticos provenientes deServicios Escolares contiene la informacioacuten necesaria para realizar el caacutelculo originaldel nuacutemero de grupos de cada asignatura que se debe abrir para ofertarse a los alumnosel siguiente semestre la foacutermula mostrada proporciona tal dato

Botoacuten queregresa elcontrol alprogramaque loinvocoacute

Alumnosesperados parael proacuteximo

Fccg

Datosestadiacutesticos

Fig 57 Pantalla Servicios Es

semestre

oacutermula paraaacutelculoantidad-rupos

Caacutelculosgeneral y pormateria

Grupos (datoestadiacutestico)

colares

Capiacutetulo 5 Implementacioacuten del sistema

En la Figura 58 se muestra la pantalla de consulta de los datos estadiacutesticosproporcionados por Servicios Escolares

Fig 58 Pantalla consulta Servicios Escolares

Esta pantalla captura las caracteriacutesticas por materia que dan origen al conocimientonecesario para definir el tipo de ajuste que se aplica al dato del nuacutemero de gruposproporcionado por los caacutelculos estadiacutesticos de la pantalla anterior

Criterios de unamateria

Fig 59 Pantalla criterios por materia

Grado deimportancia de esacaracteriacutestica para la

Capiacutetulo 5 Implementacioacuten del sistema

En la Figura 510 se muestra un ejemplo de la consulta a la base de datos del sistema enla parte de criterios por materia

Fig 510 Pantalla consulta criterios por materia

Esta pantalla (fig 511) proporciona al sistema la capacidad de capturar modificarborrar e imprimir las carreras del Instituto Tecnoloacutegico de Zacatepec

Fig 511 Pantalla carreras

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 512 proporciona al sistema la capacidad para capturar los criterios(conocimientos) del experto para definir a cada materia

Fig 512 Pantalla criterios

La Figura 513 muestra un ejemplo de consulta al archivo de los criterios capturados enel sistema

Fig 513 Pantalla consulta criterios

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 514 muestra la pantalla de captura de las reglas que componen el SistemaExperto para determinar el tipo de ajuste que se aplicaraacute al dato estadiacutestico del nuacutemerode grupos que se van a abrir el proacuteximo semestre cada regla tiene asignado un tipo deajuste

Fig 514 Pantalla reglas

La Figura 515 muestra un ejemplo de la consulta al archivo de las reglas que utiliza elSistema Experto para determinar nuacutemero de grupos por ofertar el proacuteximo semestre

Fig 515 Pantalla consulta reglas

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 516 muestra la pantalla de captura al archivo de ajustes noacutetese que ladescripcioacuten explica en extenso la accioacuten que se realiza al aplicar este ajuste provenientede una regla disparada por los criterios pertenecientes a la definicioacuten de una materia

Fig 516 Pantalla ajustes

La Figura 517 muestra la pantalla de la consulta a los ajustes que contiene el sistema

Fig 517 Pantalla consulta ajustes

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 518 muestra la pantalla que captura los criterios para cada regla Una reglaestaacute formada por el mismo tipo de criterios que definen a las materias

Criteriosde una

Fig 518 Pantalla criterios por regla

La Figura 519 muestra el ejemplo de una consulta de los criterios que definen a unaregla

Fig 519 Pantalla consulta criterios por regla

Reglas de produccioacuten Criterios por regla

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 520 es la pantalla maacutes importante de moacutedulo de generacioacuten de grupos porquees donde se realiza la inferencia para calcular el tipo de ajuste que se va a aplicar a cadamateria con base en las reglas que se disparan y que hacen match los criterios de unaregla y los criterios de una materia

Fig 520 Pantalla caacutelculo de ajustes

Esta pantalla (Figura 521) ofrece una explicacioacuten mostrando los criterios que definenuna materia y su correspondiente regla disparada mostrando los criterios de la regla quehacen match con los criterios de la materia

Fig 521 Pantalla explicacioacuten de la inferencia

Asignaturaa la que sele aplicaraacuteel ajuste

Regla quese disparaseguacutencriterios

Tipo deajuste quese aplica

Dato seguacutenestadiacutestico

Datos seguacutenajuste delSistemaExperto

Inferenciageneral

Inferenciaindividual

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 522 muestra el formulario que forma los paquetes de materias seguacuten laretiacutecula de una carrera muestra el nuacutemero de grupos por cada materia que se van aformar y hace los paquetes asignando los grupos AA AB AC AD

Fig 522 Pantalla inicial del moacutedulo generacioacuten de horarios

La Figura 523 es el formulario del moacutedulo Programacioacuten Loacutegica de Regenera los horarios por paquete satisfaciendo las restricciones para forlibre de choques continuo (sin horas muertas) cumpliendo las horas por m

Fig 523 Pantalla principal del moacutedulo generacioacuten de horari

Semestre al que sele formaraacuten lospaquetes

Paquetes generadosHora de iniciode clases decada grupo

Materias delsemestre

Nuacutemero de gruposal que se lesgeneraraacute horario

MateriaPaquete

Nuacutemero dehoras por diacutea

Botonesque invocanal moacutedulogeneradorde horarios

stricciones quemar un horarioateria etc

Hora de iniciode la materia

os

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 524 muestra el moacutedulo para asignar aula a los horarios que ya tienen materiagrupo y hora

Fig 524 Pantalla principal del menuacute Algoritmos Geneacuteticos

Esta pantalla (Figura 525) se utiliza para hacer altas bajas consulta y modificaciones alos grupos que se les va a dar aula

Fig 525 Pantalla de administracioacuten de grupos

Periodode loshorarios

Hora iniciodel grupo

Hora por diacutea

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 526 muestra una consulta de la pantalla administracioacuten de grupos

Fig 526 Pantalla de consulta de administracioacuten de grupos

La Figura 527 muestra la pantalla para actualizar las aulas disponibles por las personasque generan los horarios estas aulas estaacuten disponibles para que el Algoritmo Geneacuteticolas utilice para asignarles grupos durante el proceso

Fig 527 Pantalla del control de aulas

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 528 muestra la consulta de las aulas que utiliza el moacutedulo generacioacuten deaulas

Fig 528 Pantalla de consultas del control de aulas

La Figura 529 muestra la pantalla que genera la poblacioacuten inicial a partir de los datosgenerales proveniente de los moacutedulos anteriores

Fig 529 Pantalla de genera poblacioacuten inicial

Nuacutemero dehipoacutetesisversiones oindividuos

Aula aleatoriagenerada

Este botoacuteninicia lageneracioacutende las nversionesde horarios

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 530 muestra la pantalla que evaluacutea las versiones originadas y genera paracada una de ellas un cromosoma cuyos genes contienen la informacioacuten obtenida

Fig 530 Pantalla de evaluacioacuten de versiones

La Figura 531 muestra el formulario del proceso de seleccioacuten de las mejores versionesde horarios toma aquellas que tienen menor numero de choques y mayor espacio deocupacioacuten de aulas

Fig 531 Pantalla del proceso de seleccioacuten

Cantidad deversiones quesobreviviraacuten

Cromosomas delos mejoresindividuos

Botoacuten queinicia elproceso deseleccioacuten

Botoacuten queinicia elproceso deeliminacioacuten

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 532 muestra la pantalla del proceso de clonacioacuten donde se selecciona la mejorversioacuten y se obtiene un clon ideacutentico con un nuevo nuacutemero de versioacuten

Fig 532 Pantalla del proceso de clonacioacuten

La Figura 533 muestra la pantalla del proceso de mutacioacuten utilizado para hacer elcambio ldquomutarrdquo los datos de una versioacuten para romper alguacuten ciclado de la tendencia haciael resultado o simplemente para acelerar el proceso de optimizacioacuten

Cromosomasde versionesmaacutes aptas

Nuacutemero demejor versioacuten

Poblacioacutenversiones

Cromosomamuestra lasmejoresversiones

Aulas quepueden mutarse

Botoacuten queinicia elproceso demutacioacuten

Nuacutemero deversioacuten

Fig 533 Pantalla de mutacioacuten

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 534 muestra la pantalla donde se realiza el cruzamiento utilizando plantillaspredeterminadas dirigiendo la cruza de versiones por paquetes de materias agrupadas porsemestre y cada plantilla genera una nueva versioacuten con la combinacioacuten de fragmentosde varias versiones

Fig 534 Pantalla del proceso de cruzamiento

La Figura 535 permite la seleccioacuten y enviacuteo de la mejor versioacuten de horarios y adaptarloal moacutedulo administrativo para su distribucioacuten y publicacioacuten

Fig 535 Horarios finales

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 536 muestra el menuacute de los moacutedulos que sugiere maestros para impartir unaasignatura y sugerencia de asignatura para alguacuten maestro

Fig 536 Pantalla menuacute seleccioacuten de catedraacuteticos

La Figura 537 muestra la pantalla para la captura de caracteriacutesticas de losconocimientos requeridos para dar una materia que son las mismas caracteriacutesticas quedefinen los conocimientos de un profesor para impartir las materias

Fig 537 Pantalla de perfiles

Clasificacioacutende los perfiles

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 538 muestra una consulta de los perfiles agrupados por tipo

Fig 538 Pantalla de consulta perfiles

La Figura 539 muestra la pantalla en la que se definen los conocimientos requeridospara poder impartir una asignatura de acuerdo al perfil y contenido temaacutetico

Fig 539 Pantalla perfiles de las materias

La Figura 540 muestra un ejemplo de la consulta al perfil de una materia

Importancia de lacaracteriacutestica en la materia

Capiacutetulo 5 Implementacioacuten del sistema

Fig 540 Pantalla consulta perfiles de las materias

La Figura 541 es utilizada para capturar los datos de los catedraacuteticos que imparten lasasignaturas de una carrera

Fig 541 Pantalla captura datos de catedraacuteticos

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 542 es una muestra de la consulta al archivo de los catedraacuteticos

Fig 542 Pantalla consulta datos de catedraacuteticos

La Figura 543 muestra la pantalla en que se captura el perfil de los catedraacuteticos elperfil son los conocimientos que tiene el profesor que lo capacitan para impartir algunaasignatura

Fig 543 Pantalla captura perfil de catedraacuteticos

Conocimientosdel profesor

Barra deseleccioacuten deperfiles

Grado dedominio deltema

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 544 muestra una consulta tiacutepica al archivo de perfiles de los catedraacuteticos

Fig 544 Pantalla consulta perfil de catedraacuteticos

La Figura 545 muestra la pantalla de inferencia final que sugiere quienes son loscatedraacuteticos maacutes capacitados para impartir una materia haciendo la inferencia mediantela buacutesqueda de matchs entre el perfil de la asignatura y el perfil del catedraacutetico

Fig 545 Pantalla muestra inferencia catedraacuteticos para materia

Candidatos aimpartir lamateria

Botoacuten del proceso deinferencia generalPorcentaje de certeza con

que puede impartirla

Botoacuten delprocesodeinferenciaparticular

Botoacuten queinvoca almoacutedulo deexplicacioacuten

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 546 muestra la pantalla de explicacioacuten donde se indican los perfiles de lamateria y el perfil del profesor

Fig 546 Pantalla explicacioacuten porque un maestro puede dar una materia

La Figura 547 muestra el resultado de la inferencia del proceso que sugiere las materiasque puede impartir un profesor con base en el perfil de la materia y el perfil del profesor

Fig 547 Pantalla materias que puede impartir un profesor

Posibles materia aimpartir Porcentaje de certeza con

que puede impartirlaBotoacuten del proceso deinferencia general

Botoacuten delprocesodeinferenciaparticular

Botoacuten queinvoca almoacutedulo deexplicacioacuten

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 548 muestra la pantalla de explicacioacuten donde se indican el perfil de la materiay el perfil del profesor

Fig 548 Pantalla de explicacioacuten porque un profesor puede dar una materia

Capiacutetulo 5 Implementacioacuten del sistema

Capiacutetulo 6 Pruebas y Resultados

CAPIacuteTULO 6

PRUEBAS Y RESULTADOS

61 Pruebas del sistema

Se pueden detectar dentro del desarrollo de sistemas las actividades para realizarpruebas las producidas durante la etapa de requerimientos de disentildeo preliminar y las dedisentildeo detallado Clasificadas de otra manera eacutestas pueden ser funcionales deintegracioacuten y de implementacioacuten

La finalidad de realizar Pruebas funcionales es detectar errores que pudieran habersedado durante las fases de anaacutelisis y de especificacioacuten Por otro lado ellas pueden ayudara probar si el disentildeo es correcto ya que esta fase en sus dos niveles preliminar ydetallado estaacute basada en el anaacutelisis y especificacioacuten de requerimientos del sistema Estaactividad es guiada por los objetivos y requerimientos plasmados Se busca en estaprueba la posibilidad de que se haya incurrido en errores de conceptualizacioacuten yo deespecificacioacuten Las pruebas se organizan tomando como guiacutea las diferentes opciones delsistema final

Las Pruebas de integracioacuten se realizan cuando se procede a interconectar los diferentessubsistemas que constituyen el futuro sistema Como es conocido un sistema puede serdesarrollado por diferentes personas Por esta razoacuten es de suma importancia probar lainterconexioacuten de los diferentes subsistemas y asiacute verificar que ha sido realizada demanera correcta

Las Pruebas de implementacioacuten o codificacioacuten son las que se realizan directamentesobre los programas que se estaacuten desarrollando durante la fase de implementacioacuten Estosmoacutedulos o programas a su vez constituyen subsistemas Por esta razoacuten la integracioacuten delos diferentes moacutedulos que forman un subsistema deben ser probados Estas pruebasdeben estar basadas en la especificacioacuten de disentildeo preliminar y detallado [Gerez 1985]

Los siguientes rubros describen las pruebas maacutes importantes que se consideraron paravalidar el sistema las pruebas funcionales Las pruebas de implementacioacuten se realizarondurante el desarrollo de la codificacioacuten de los diferentes moacutedulos

Capiacutetulo 6 Pruebas y Resultados

62 PRUEBAS DEL SISTEMA

621 PRUEBA 1 AacuteREAS DE MENUacuteS

Objetivo Guiar al usuario en el desarrollo del proceso Esta prueba verifica que elsistema tenga como opciones principales y submenuacutes los sentildealados en la definicioacuten derequerimientos

Criterios de aceptacioacuten Cada prueba verifica que el sistema produzca los resultadossentildealados en la definicioacuten de requerimientos

Procedimiento de la prueba A continuacioacuten se despliegan las pantallascorrespondientes a los menuacutes principales y submenuacutes Las opciones principales delproyecto son dos Menu Principal y Datos de los autores

Resultado de la prueba Los resultados fueron satisfactorios En todas las opcionesactivadas el sistema presentoacute los submenuacutes definidos en la etapa de requerimientos

La Figura 61 muestra la portada inicial del proyecto Contiene los logotipos de las tresinstituciones participantes y el nombre del proyecto

Fig 61 Portada inicial del proyecto

Es el botoacutende entrada alsistema

Botoacuten deinformacioacutende los autores

Capiacutetulo 6 Pruebas y Resultados

La Figura 62 muestra el menuacute principal del proyecto y contiene 4 moacutedulos La primeraopcioacuten incluye los moacutedulos administrativo y generacioacuten de grupos la segunda opcioacutenincluye seleccioacuten de maestro y seleccioacuten de materia

Fig 62 Menuacute principal del proyecto

En la Figura 63 se tiene la pantalla del menuacute que agrupa los programas del moacuteduloadministrativo y Sistema Experto para determinar el nuacutemero de grupos por abrir seguacutenlos caacutelculos realizados con los datos de Servicios Escolares y el ajuste a ese dato

Fig 63 Menuacute grupos por abrir

Moacutedulos delproyecto

Cuadro queproporcionalainformacioacutende la opcioacutensentildealada porel cursor

Programas delos moacutedulos

Descripcioacutende laactividad delprogramaseleccionado

Capiacutetulo 6 Pruebas y Resultados

La Figura 64 muestra el menuacute de los moacutedulos que sugiere maestros para impartir unaasignatura y sugerencia de asignatura para alguacuten maestro

Fig 64 Pantalla menuacute seleccioacuten de catedraacuteticos

La Figura 65 muestra el moacutedulo para asignar aula a los horarios que ya tienen materiagrupo y hora

Fig 65 Pantalla principal del menuacute Algoritmos Geneacuteticos

Capiacutetulo 6 Pruebas y Resultados

622 PRUEBA 2 VALIDACIOacuteN DE ENTRADAS

Objetivo Evitar peacuterdidas de tiempo con entradas erroacuteneas de datos y resultados sinvalidez

Criterios de aceptacioacuten Esta prueba deberaacute mostrar de manera exacta la informacioacutenal seleccionar la opcioacuten deseada

Procedimiento de la prueba Se verifica que todas las cajas de texto tengan el dato quese pide y una vez dados todos los datos se guardan para que estos datos posteriormentesean procesados por el sistema y almacenen los datos correctos

Resultado de la prueba Los resultados fueron satisfactorios En todas las opcionesactivadas el sistema presentoacute los resultados correctos a cada opcioacuten Ademaacutes losdesplegados de mensajes de error se presentaron de manera correcta en todas laspruebas

La Figura 66 muestra la captura de datos de una asignatura y enviacutea el correspondientemensaje de error si una caja de texto se encuentra vaciacutea

Fig 66 Pantalla de captura de datos de las Materias

Muestra elmensaje deerror si esque hacefalta alguacuten

Capiacutetulo 6 Pruebas y Resultados

La Figura 67 muestra una pantalla de captura de datos asignando criterios a una materiay valida la no duplicidad de criterios en esa materia se enviacutea el correspondiente mensajede error si una entrada ya fue capturada

Fig 67 Pantalla de captura de datos de Criterios por Materia

La Figura 68 muestra una pantalla de captura de datos de las carreras al encontrar unregistro ya capturado muestra el mensaje de error si una carrera ya fue capturada

Fig 68 Pantalla de captura de datos de Carreras

Muestra elmensajede error sies que yaexiste elregistro

Muestra elmensaje deerror si esque yaexiste elregistro

Capiacutetulo 6 Pruebas y Resultados

623 PRUEBA 3 DESPLEGADO DE RESULTADOS

6231 MOacuteDULO DE GENERACIOacuteN DE GRUPOS POR ABRIR

Objetivo Proporcionar los datos que el moacutedulo pide para que posteriormente elsistema genere el nuacutemero de grupos sugerido por abrir para cada materia

Criterios de aceptacioacuten Esta prueba muestra la lista de grupos que se deben abrirdespueacutes de aplicar los criterios del Sistema Experto

Procedimiento de la prueba Una vez que se proporcionan los datos que el SistemaExperto requiere el sistema generaraacute una lista de los grupos que se deben abrir elproacuteximo semestre

Resultado de la prueba Los resultados fueron satisfactorios En todos los casospresentados el sistema generoacute la lista en forma satisfactoria y con la informacioacutencorrecta

La Figura 69 es la pantalla maacutes importante de moacutedulo de generacioacuten de grupos porquees donde se realiza la inferencia para calcular el tipo de ajuste que se va a aplicar a cadamateria con base en las reglas que se disparan y que hacen match los criterios de unaregla y los criterios de una materia

Asignaturaa la que sele aplicaraacuteel ajuste

Regla quese disparaseguacutencriterios

Tipo deajuste quese aplica

Inferenciageneral

Datoseguacuten

Fig 69 Pantalla caacutelculo de ajustes

Datos seguacutenajuste delSistemaExperto

Inferenciaindividual

Capiacutetulo 6 Pruebas y Resultados

6232 MOacuteDULO DE GENERACIOacuteN DE HORARIOS

Objetivo Proporcionar los datos que el moacutedulo pide para que posteriormente elsistema genere el horario por semestre de las materias de una carrera

Criterios de aceptacioacuten Esta prueba debe mostrar los horarios para las materias sinerrores sin choques de hora en un paquete

Procedimiento de la prueba Recibe como entrada cuantos grupos abrir de cadamateria en cada semestre y genera primero los paquetes posteriormente a cada paquetede materias le asigna la hora por materia

Resultado de la prueba Los resultados fueron satisfactorios En todos los casospresentados el sistema generoacute los horarios correspondientes

La Figura 610 muestra el formulario que forma los paquetes de materias seguacuten laretiacutecula de una carrera muestra el nuacutemero de grupos por cada materia que se van aformar y hace los paquetes asignando los grupos AA AB AC AD

Fig 610 Pantalla inicial del moacutedulo generacioacuten de horarios

Semestre al que sele formaraacuten lospaquetes

Paquetes generadosHora de iniciode clases decada grupo

Materias delsemestre

Nuacutemero de grupospor al que se lesgeneraraacute horario

Botonesque invocanal moacutedulogeneradorde horarios

Capiacutetulo 6 Pruebas y Resultados

La Figura 611 es el formulario del moacutedulo Programacioacuten Loacutegica de Restricciones quegenera los horarios por paquete satisfaciendo las restricciones para formar un horariolibre de choques continuo (sin horas muertas) cumpliendo las horas por materia etc

Fig 611 Pantalla princip

6233 MOacuteDULO ASIGNACIOacuteN D

Objetivo Utilizar los datos generadoaulas a los paquetes de materias

Criterios de aceptacioacuten Esta pruebaasignacioacuten de aula sin choques

Procedimiento de la prueba Se genAlgoritmos Geneacuteticos durante variachoques en el aula

Resultado de la prueba Los resupresentados el sistema generoacute las aula

MateriaPaquete

Nuacutemero dehoras por diacutea

Hora de iniciode la materia

al del moacutedulo generacioacuten de horarios

E AULA

s en el moacutedulo anterior para hacer la asignacioacuten de

debe mostrar los horarios de las materias con una

eran las aulas utilizando los procedimientos de loss generaciones hasta lograr una generacioacuten sin

ltados fueron satisfactorios En todos los casoss correspondientes

Capiacutetulo 6 Pruebas y Resultados

La Figura 612 muestra la pantalla para actualizar las aulas disponibles por las personasque generan los horarios estas aulas estaacuten disponibles para que el Algoritmo Geneacuteticolas utilice para asignarles grupos durante el proceso

Fig 612 Pantalla del control de aulas

La Figura 613 muestra la consulta de las aulas que utiliza el moacutedulo generacioacuten deaulas

Fig 613 Pantalla de consultas del control de aulas

Capiacutetulo 6 Pruebas y Resultados

La Figura 614 muestra la pantalla que genera la poblacioacuten inicial a partir de los datosgenerales proveniente de los moacutedulos anteriores

Fig 614 Pantalla de genera poblacioacuten inicial

La Figura 615 muestra la pantalla que evaluacutea las versiones originadas y genera paracada una de ellas un cromosoma cuyos genes contienen la informacioacuten obtenida

Fig 615 Pantalla de evaluacioacuten de versiones

Nuacutemero dehipoacutetesisversiones oindividuos

Aula aleatoriagenerada

Este botoacuteninicia lageneracioacutende las nversionesde horarios

Capiacutetulo 6 Pruebas y Resultados

La Figura 616 muestra el formulario del proceso de seleccioacuten de las mejores versionesde horarios toma aquellas que tienen menor numero de choques y mayor espacio deocupacioacuten de aulas

Fig 616 Pantalla del proceso de seleccioacuten

La Figura 617 muestra la pantalla del proceso de clonacioacuten donde se selecciona la mejorversioacuten y se obtiene un clon ideacutentico con un nuevo nuacutemero de versioacuten

Fig 617 Pantalla del proceso de clonacioacuten

Cantidad deversiones quesobreviviraacuten

Cromosomas delos mejoresindividuos

Botoacuten queinicia elproceso deseleccioacuten

Botoacuten queinicia elproceso deeliminacioacuten

Cromosomasde versionesmaacutes aptas

Nuacutemero demejor versioacuten

Poblacioacutenversiones

Capiacutetulo 6 Pruebas y Resultados

La Figura 618 muestra la pantalla del proceso de mutacioacuten utilizado para hacer elcambio ldquomutarrdquo los datos de una versioacuten para romper alguacuten ciclado de la tendencia haciael resultado o simplemente para acelerar el proceso de optimizacioacuten

Fig 618 Pantalla de mutacioacuten

La Figura 619 muestra la pantalla donde se realiza el cruzamiento utilizando plantillaspredeterminadas dirigiendo la cruza de versiones por paquetes de materias agrupadas porsemestre y cada plantilla genera una nueva versioacuten con la combinacioacuten de fragmentosde varias versiones

Fig 619 Pantalla del proceso de cruzamiento

Cromosomamuestra lasmejoresversiones

Nuacutemero deversioacuten amutar

Aulas quepueden mutarse

Botoacuten queinicia elproceso demutacioacuten

Capiacutetulo 6 Pruebas y Resultados

La Figura 620 permite la seleccioacuten y enviacuteo de la mejor versioacuten de horarios y adaptarloal moacutedulo administrativo para su distribucioacuten y publicacioacuten

Fig 620 Horarios finales

6234 MOacuteDULO SELECCIOacuteN DE CATEDRATICOS

Objetivo Capturar los datos de los profesores y su perfil profesiograacutefico ademaacutescapturar los conocimientos necesarios para impartir una asignatura para poder sugerircual es el mejor catedraacutetico que puede impartir una asignatura

Criterios de aceptacioacuten Esta prueba debe mostrar la sugerencia de los mejorescatedraacuteticos para una materia y las mejores materias para un catedraacutetico

Procedimiento de la prueba Se daraacuten los datos iniciales de los maestros y el sistemadeberaacute generar una lista a partir de la inferencia del Sistema Experto respectivo yviceversa

Resultado de la prueba Los resultados fueron satisfactorios En todos los casospresentados el sistema infirioacute las materias y los catedraacuteticos correspondientes

Capiacutetulo 6 Pruebas y Resultados

La Figura 621 muestra la pantalla en que se captura el perfil de los catedraacuteticos elperfil son los conocimientos que tiene el profesor que lo capacitan para impartir algunaasignatura

Fig 621 Pantalla captura perfil de catedraacuteticos

La Figura 622 muestra la pantalla de inferencia final que sugiere quienes son loscatedraacuteticos maacutes capacitados para impartir una materia haciendo la inferencia mediantela buacutesqueda de matchs entre el perfil de la asignatura y el perfil del catedraacutetico

Fig 622 Pantalla muestra inferencia catedraacuteticos para materia

Conocimientosdel profesor

Barra deseleccioacuten deperfiles

Grado dedominio deltema

Botoacuten delprocesodeinferenciaparticular

Botoacuten queinvoca almoacutedulo deexplicacioacuten

Candidatos aimpartir lamateria Botoacuten del proceso de

inferencia generalPorcentaje de certeza conque puede impartirla

Capiacutetulo 6 Pruebas y Resultados

La Figura 623 muestra la pantalla de explicacioacuten donde se indican los perfiles de lamateria y el perfil del profesor

Fig 623 Pantalla explicacioacuten porque un maestro puede dar una materia

La Figura 624 muestra el resultado de la inferencia del proceso que sugiere las materiasque puede impartir un profesor con base en el perfil de la materia y el perfil del profesor

Fig 624 Pantalla materias que puede impartir un profesor

Posibles materia aimpartir Porcentaje de certeza con

que puede impartirlaBotoacuten del proceso deinferencia general

Botoacuten delprocesodeinferenciaparticular

Botoacuten queinvoca almoacutedulo deexplicacioacuten

Capiacutetulo 6 Pruebas y Resultados

La Figura 625 muestra la pantalla de explicacioacuten donde se indican el perfil de la materiay el perfil del profesor

Fig 625 Pantalla de explicacioacuten porque un profesor puede dar una materia

Capiacutetulo 6 Pruebas y Resultados

Capiacutetulo 7 Conclusiones y Trabajos Futuros

CAPIacuteTULO 7

CONCLUSIONES Y TRABAJOS FUTUROS

71 CONCLUSIONES

Los meacutetodos de programacioacuten lineal proporcionan una solucioacuten parcial al problema dela generacioacuten de horarios utilizan una ldquorecetardquo predefinida para lograr la optimizacioacutende la asignacioacuten de recursos como lo hace el meacutetodo Huacutengaro La Inteligencia Artificialsoluciona el problema utilizando la heuriacutestica el conocimiento y la experiencia de unexperto humano para solucionar el problema se decidioacute utilizar esta metodologiacutea paraexplorar una solucioacuten aproximada al problema

En el ITZ la generacioacuten de horarios se haciacutea de forma manual no se utilizaba ninguacutenmeacutetodo automatizado Al aplicar algunas teacutecnicas de la Inteligencia Artificial se halogrado generar de manera automatizada los horarios de las materias que se ofertaraacuten elproacuteximo semestre

La aplicacioacuten de varias ramas de la Inteligencia Artificial para la resolucioacuten delproblema de la generacioacuten de horarios viene a demostrar que si es posible generar uncondensado de horarios para el Instituto Tecnoloacutegico de Zacatepec que es una escuelade nivel superior y que estos horarios satisfacen adecuadamente las restricciones fuertesmedias y suaves Para ello fue necesaria la combinacioacuten de varias disciplinas de lacomputacioacuten para generar cada una de las partes que componen un horario y tambieacutenrecomendar los catedraacuteticos mas apropiados para impartir dichos grupos nuevamentequeda demostrado que la Inteligencia Artificial sirve para resolver problemas que lasteacutecnicas convencionales de computacioacuten consideran problema NP-completo

La utilizacioacuten de las teacutecnicas de los Sistemas Expertos para ajustar el nuacutemero de grupospor abrir el proacuteximo semestre permite aplicar el conocimiento y experiencia de lapersona encargada de elaborar los horarios y asiacute disminuir el nuacutemero de gruposcancelados el conocimiento e intuicioacuten del experto humano realizan un ajuste fino alnuacutemero de grupos y como puede notarse el sistema lo hace de manera similar

Para el moacutedulo de generacioacuten de los grupos y los horarios la utilizacioacuten de la teacutecnicallamada Programacioacuten Loacutegica de Restricciones permitioacute la satisfaccioacuten de lasrestricciones que hacen que los horarios sean considerados factibles para su aplicacioacuten a

Capiacutetulo 7 Conclusiones y Trabajos Futuros

los alumnos el proacuteximo semestre ya que los paquetes de materias por semestre tienenhorarios corridos y sin choques en horas nuacutemero de materias completo y buenadistribucioacuten de horas pares e impares

Se utilizoacute tambieacuten la teacutecnica de optimizacioacuten llamada Algoritmos Geneacuteticos pararealizar la asignacioacuten de aulas a cada grupo generado logrando con ello minimizarautomaacuteticamente el nuacutemero de choques de materias en aulas En las pruebas realizadasse logroacute que en la sexta generacioacuten de individuos ya soacutelo hubiera hasta un maacuteximo de 24choques lo que indicaba que soacutelo 4 oacute 5 grupos compartiacutean aula a la misma hora esto erafaacutecilmente corregible realizando una inspeccioacuten visual a la versioacuten de horarios final yajustando los uacuteltimos errores

Por uacuteltimo nuevamente se aplicaron los Sistemas Expertos en el moacutedulo de sugerenciade materias que puede impartir un maestro y en el moacutedulo maestros que pueden impartiruna determinada materia vale la pena comentar que durante las pruebas realizadas loscatedraacuteticos del departamento de Sistemas y Computacioacuten capturaban su perfilprofesiograacutefico y al pedir al sistema la sugerencia de cuaacuteles materias podriacutean impartirlos Sistemas Expertos del proyecto inferiacutean exactamente las materias que loscatedraacuteticos estaacuten impartiendo en este semestre y las que habiacutean impartido en alguacutensemestre anterior demostrando que en efecto para profesores nuevos la recomendacioacutendel sistema seriacutea vaacutelida

72 TRABAJOS FUTUROS

Se sugiere que se ampliacutee el proyecto para que a cada grupo generado con aula y hora sele asigne de manera automaacutetica un catedraacutetico utilizando ya sea Algoritmos Geneacuteticos oProgramacioacuten Loacutegica de Restricciones

Otra posible mejora puede ser incluir la Loacutegica Difusa en los Sistemas Expertos de losmoacutedulos que sugieren las materias que puede impartir un catedraacutetico y los catedraacuteticosque pueden impartir una asignatura

Como ya se comproboacute la factibilidad de generar los horarios de manera automaacutetica sepropone tambieacuten la exploracioacuten de otras ramas y teacutecnicas de la computacioacuten (RedesNeuronales Buacutesqueda Tabuacute Grafos Coloreados etc) para comparar el rendimientotiempo esfuerzo y asiacute poder determinar cuales son mejores o peores teacutecnicas pararesolver el problema de la generacioacuten de horarios

Referencias Bibliograacuteficas

REFERENCIAS BIBLIOGRAacuteFICAS

[Abramson 1991] Abramson D ldquoConstructing School Timetables Using SimulatedAnnealing Secuencial and Parallel Algoritmsrdquo Management Science PWS PublishingBoston 1998

[Beasley 1993] Beasley D amp Bull DR amp Martin RR ldquoAn Overview of GeneticAlgorithms Part 1 Fundamentalsrdquo University Computing

[Bull 1993] Bull DR amp Beasley D amp Martin RR ldquoAn Overview of GeneticAlgorithms Part 2rdquo University Computing Magazine 1993

[Burke1994]Burke EK ldquoA Genetic Algorithm for University Timetablingrdquo AISBworkshop on evolutionary computing Leeds 1994

[Burke 1997] Burke Edmund K ldquoAutomated Scheduling Optimization and PlanningGroup (ASAP)rdquo PATATrsquo97 Proceedings of the 2nd Intenational Conference on thePractice And Theory of Automated Timetabling 1997

[Burke2000] Burke Edmund amp Eliman David amp Weare Rupert ldquoA GeneticAlgorithm Based University Timetabling Systemrdquo PATATrsquo2000 Proceedings of the 5ft

Intenational Conference on the Practice And Theory of Automated Timetabling 2000

[Burke2001] Burke EK amp Eliman DGamp Weare R ldquoAutomated Scheduling OfUniversity Examsrdquo Leeds 2001

[Burke2002] Burke Edmund amp Eliman David amp Weare Rupert ldquoExaminationTimetabling in British Universities ndash A Surveyrdquo Leeds 2002

[Carrasco 2004] Carrasco Marco amp Pato Margarida ldquoSolving Real ClassTeacherTimetabling Problems using Neural Networksrdquo Facultade de Ciencias University ofLisboa Portugal

[Chorafas 1990] Chorafas Dimitris N ldquoKnowledge Engineeringrdquo Van NostrandReinnhold New York USA

Referencias Bibliograacuteficas

[Corne 1993] Corne D ldquoSolving the module exam scheduling problem with geneticalgorithmsrdquo Proceedings of the 6th Intenational conference in Industrial andEngineering applications of Artificial Intelligence and Expert Systems1993

[Daellenbach 1987] Daellenbach Hans amp McNickle Donald ldquoIntroduccioacuten a teacutecnicasde Investigacioacuten de Operacionesrdquo CECSA Meacutexico 1987

[Davis 1991] Davis L ldquoHandbook of Genetic Algorithmsrdquo Van Nostrand ReinholdNew York NY

[Demist2000] Demist ldquoDepartamental Timetabling Proyect ProposalDeMIStinterface to Timetabling Package Proyectrdquo Demist University 2000

[Detcher 1990] Detcher R ldquoEnhancement Schemes for Constraint Processing BackJumping Learning and Cutset Decompositionrdquo Artificial Intelligence 41 (1990)

[Eliman 2000] Eliman David ldquoSpecialised Recombinative Operators for TimetablingProblemsrdquo Cambridge University Press New York 2000

[Elmohamed2000] Elmohamed Saleh ldquoThe timetabling problemrdquo PATATrsquo2000Proceedings of the 5th Intenational Conference on the Practice And Theory ofAutomated Timetabling 2000

[Elmohamed2001] Elmohamed Saleh ldquoConstraint based university coursetimetablingrdquo 4th World Congress on Timetabing Aplication of advanced informationTechnologies London 2001

[Fahrion y Dollanski 1992] Fahrion R amp G Dollanski ldquoConstruction of UniversityFaculty Timetables using Logic Programmingrdquo ACM Sigsoft Notes vol 9 no 3 May1992

[Frenzel 1986]Frenzel Louis E ldquoCrash Course in Artificial Intelligence and ExpertSystemsrdquo Howard W Sams amp Co McMillan Inc Indianapolis USA

[Gerez 1985] Gerez Victor amp Mier Mauricio ldquoDesarrollo y administracioacuten deprogramas de computadorardquo McGraw Hill Meacutexico 1985

[Gervaacutes 1999] Gervaacutes P amp San Miguel B ldquoSequential Building of ConstrainedTimetables Using Rule-Based Heuristics An Expert System for AutomatedTimetablingrdquo Congreso Internacional de Investigacioacuten en Ciencias Computacionales

Referencias Bibliograacuteficas

[Giarratamo 1998] Giarratamo Joseph y Gary Riley ldquoExpert Systems Principles andProgrammingrdquo PWS Kent Publishing Company Boston USA

[Gines 1986] Gines B amp Boose J ldquoKnowledge Acquisition for Knowledge-BasedSystemsrdquo Vol 1amp2 Academic Press London U K

[Goldberg 1989] Goldberg DE ldquoGenetic Algorithms in SearchOptimization andMachine LearningrdquoAddison-Wesley

[Kang y White 1994 ] Kang L amp White GM ldquoA Logic Approach to the Resolutionof Constrains in Timetablingrdquo European Journal of Operational Research vol 61 1994

[Kandel 1991] Kandel Abraham ldquoFuzzy Expert Systemsrdquo CRC Press Inc LondonUK 1991

[Kendall1999] Kendall y Kendall ldquoAnaacutelisis y disentildeo de sistemasrdquo 3ordf edicion PearsonEducacioacuten

[Koza 1992] Koza JR ldquoGenetic Programming On the Programming of Computers bymeans of Natural Selectionrdquo Cambridge MA MIT Press

[Martiacutenez 1999] Martiacutenez Alfaro Horacio ldquoSolucioacuten al problema de asignacioacuten desalones de clases horario y grupo mediante templado simuladordquo Memorias 6ordm CongresoInternacional de Mecatroacutenica e Inteligencia Artificial Meacutexico 1999

[Medina 2004] Medina Pasaflores Horacio ldquoFundamentos de Algoritmos GeneacuteticosrdquoTesis de licenciatura Zacatepec Mexico 2004

[Michalewicz 1992] Michalewicz Z ldquoGenetic algorithms + Data Structures =Evolution Programsrdquo Springer-Verlag New York NY

[Negoita1985] Negoita ConstantinV Expert Systems and Fuzzy Systems TheBenjamin Cummings Publishing Co Menlo Park CA USA

[Nielsoft 2000] Nielsoft informatica ldquoManual de usuario Mimosa for windowsrdquo

[Paechter 1994] Paechter B ldquoTwo solutions to the general timetabling problemusing evolutionary methodsrdquo IEEE WCCI 1994

[Pluss1999] Pluss JJ ldquoSistemas expertos un enfoque pragmaacuteticordquo UNR

Referencias Bibliograacuteficas

[Rich 1996] Rich E y Knight K ldquoInteligencia Artificialrdquo McGraw HillInteramericana Madrid Espantildea

[Russell 1996] Russell S y Norvig P ldquoInteligencia Artificial un enfoque modernordquoPrentice Hall Mexico 1996

[Sanchez1999] Sanchez y Beltran ldquoSistemas expertos una metodologiacutea deprogramacioacutenrdquo Macrobit

[Schedul2000] SchedulExpert ldquoCourse scheduling in post educational institutionsrdquo EdAddison Wesley 2000

[Trick 1999 ] Trick Michael ldquoNetwork resources for coloring a graphrdquo Oracle PressEd McGraw Hill 1999

[Turban 1995] Turban Efraim ldquoDecision Support and Expert Systems ManagementSupport Systemsrdquo Fourth Edition Orentice Hall NJ USA

[Waterman1986] Waterman Donald A ldquoA Guide to Expert Systemsrdquo Addison-Wesley Publishing Co USA

[Weare2000] Weare Rupert amp Burke Edmundo amp Eliman David ldquoA Questionnaireon Exam Timetabling in Universitiesrdquo Annual review of computer Science Volume 2Palo Alto 2000

[Wilke 2002] Wilke P amp Grobner M amp Oster N ldquoA hibrid Genetic Algorithm forSchool Timetablingrdquo Advances in Artificial Intelligence Springer Lecture Notes inComputer Science New York

[Yoshikawa 1994] Yoshikawa M amp Kaneko KldquoA Constraint-based Approach toHigh School Timetabling Problems A Case Studyrdquo AAAI-94 12ordm NationalConference on Artificial Intelligence

Referencias Bibliograacuteficas

Referencias electroacutenicas

httpwwwmonografiacuteascomtrabajos12inteartfinteartfshtmlObregoacuten Arturo Inteligencia artificial y Sistemas expertos IIMAS-UNAM (1992)

httpwwwlafacucomapuntesinformaticasist_conodefaulthtmCruz Ochoa Wilson Sistemas de conocimiento

httpwwwingenieroseninformaticaorgrecursostutorialessist_exphtmlZambrano Molina Darwin Sistemas expertos

httpredcientificacomdocdoc199008210001htmlSamper Marquez Juan Joseacute Introduccioacuten a los sistemas expertos Madrid 2000

httpmismonografiascomarSistemas20expertofuzzyhtmlArede Dario Sistema experto fuzzy

httpcruzrojaguayaorginteligenciainterhtmlAyuquina Martha amp Arellano Gregorio Inteligencia artificial Universidad de Guayaquil

httpdmiuibesabasolointart1-introduccionhtmlAbasolo Mariacutea Joseacute Dra Inteligencia Artificial

Page 5: BORIS ANTONIO ARANDA BENITEZ

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

IacuteNDICE

RESUMEN iABSTRAC iiIacuteNDICE iiiLISTA DE FIGURAS v

CAPIacuteTULO 1 INTRODUCCIOacuteN11 Antecedentes 112 Planteamiento del problema 213 Objetivo general 414 Objetivos especiacuteficos 515 Justificacioacuten 5151 Justificacioacuten teoacuterica 5152 Justificacioacuten metodoloacutegica 5153 Justificacioacuten praacutectica 616 Alcances y limitaciones 7

CAPIacuteTULO 2 MARCO TEOacuteRICO21 El estado del arte 9211 Antecedentes 9212 Algunos meacutetodos para resolver el Problema de la Generacioacuten de Horarios 92121 Algoritmos Geneacuteticos 122122 Programacioacuten Loacutegica de Restricciones 122123 Redes Neuronales 132124 Recocido Simulado 132125 Operadores Recombinatorios Especializados 132126 El Sistema Experto basado en reglas 14213 Observaciones realizadas a algunos paquetes generadores de horarios 1522 Los horarios 16221 El problema de la elaboracioacuten de horarios 1723 El proceso de la elaboracioacuten de horarios 22

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

CAPIacuteTULO 3 TEacuteCNICAS DE INTELIGENCIA ARTIFICIALUTILIZADAS PARA LA GENERACIOacuteN DE HORARIOS31 Sistemas Expertos 24311 Funcioacuten de un Sistema Experto 25312 Arquitectura de Sistemas Expertos 25313 La base de conocimiento 26314 Motor de inferencias 27315 iquestPor queacute utilizar un Sistema Experto 27316 Construccioacuten de prototipos 2832 Algoritmos geneacuteticos 29321 Antecedentes 29322 Definicioacuten de Algoritmo Geneacutetico 30323 Ventajas y desventajas 31324 iquestCoacutemo saber si es posible usar un Algoritmo Geneacutetico 31325 Paraacutemetros que deben ser especificados en el programa 3233 Programacioacuten Loacutegica de Restricciones(PLR) 34331 Antecedentes de la PLR 34332 Restricciones 35333 Sistemas con restricciones 37334 Referencia histoacuterica de las restricciones 37335 Satisfaccioacuten de las restricciones 38336 Resolucioacuten de restricciones 38337 Organizacioacuten de proyectos 38

CAPIacuteTULO 4 ANAacuteLISIS Y DISENtildeO41 Recopilacioacuten de la informacioacuten 4142 Anaacutelisis de la informacioacuten 4643 Solucioacuten definida 4844 Requerimientos del sistema 4945 Disentildeo del sistema 52451 Mapa conceptual del proyecto 52452 Mapas conceptuales de los moacutedulos 54453 Diagramas de contexto 62454 Diagramas entidad relacioacuten 674 55 Diccionario de la base de datos 73456 Lista de funciones o programas 85457 Diagrama de arquitectura (menuacutes) 87

CAPIacuteTULO 5 IMPLEMENTACIOacuteN51 Pantallas del sistema 89

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

CAPIacuteTULO 6 PRUEBAS Y RESULTADOS61 Pruebas del sistema 11462 Pruebas del sistema 115621 Prueba 1 Aacuterea de menuacutes 115622 Prueba 2 Validacioacuten de entradas 118623 Prueba 3 Desplegado de resultados 1206231 Moacutedulo generacioacuten de grupos por abrir 1206232 Moacutedulo generacioacuten de horarios 1216233 Moacutedulo asignacioacuten de aula 1226234 Moacutedulo seleccioacuten de catedraacuteticos 127

CAPIacuteTULO 7 CONCLUSIONES Y TRABAJOS FUTUROS71 Conclusiones 13172 Trabajos futuros 132

REFERENCIAS BIBLIOGRAacuteFICAS 133

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

LISTA DE FIGURAS

Figura Nombre Paacutegina

31 Arquitectura de un Sistema Experto 2632 Pseudocoacutedigo del Algoritmo Geneacutetico simple 3341 Mapa conceptual del proyecto 5242 Diagrama de secuencia 5443 Sistema Experto generador de grupos 5544 Diagrama del moacutedulo Programacioacuten Loacutegica de Restricciones 5745 Diagrama del moacutedulo Algoritmo Geneacutetico 5846 Diagrama de Sistema Experto para sugerir profesor a asignatura 6047 Diagrama de Sistema Experto para sugerir asignaturas para

catedraacutetico61

48 Diagrama de contexto del proyecto 6449 Diagrama de funciones fundamentales (entradas) 65410 Diagrama de funciones fundamentales (salidas) 66411 Diagrama entidad relacioacuten del moacutedulo administrativo 67412 Diagrama E-R del moacutedulo para determinar y ajustar nuacutemero de

grupos68

413 Diagrama E-R del moacutedulo para asignar aulas (Algoritmo Geneacutetico) 69414 Diagrama E-R del moacutedulo para asignar horario (PLR) 70415 Diagrama E-R del moacutedulo designa mejor catedraacutetico (Sistema

Experto)71

416 Diagrama E-R del moacutedulo selecciona mejor materia (SistemaExperto)

72

51 Portada inicial del proyecto 8852 Acerca del sistema 8953 Menuacute principal del proyecto 8954 Menuacute grupos por abrir 9055 Materias 9056 Consulta materias 9157 Pantalla servicios escolares 9158 Pantalla consulta servicios escolares 9259 Pantalla criterios por materia 92510 Pantalla consulta criterios por materia 93511 Pantalla carreras 93512 Pantalla criterios 94513 Pantalla consulta criterios 94514 Pantalla reglas 95515 Pantalla consulta reglas 95516 Pantalla ajustes 96

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

517 Pantalla consulta ajustes 96518 Pantalla criterios por regla 97519 Pantalla consulta criterios por regla 97520 Pantalla caacutelculo de ajustes 98521 Pantalla explicacioacuten de la inferencia 98522 Pantalla inicial del moacutedulo generacioacuten de horarios 99523 Pantalla principal del moacutedulo generacioacuten de horarios 99524 Pantalla principal del menuacute Algoritmos Geneacuteticos 100525 Pantalla de administracioacuten de grupos 100526 Pantalla de consulta de administracioacuten de grupos 101527 Pantalla del control de aulas 101528 Pantalla de consultas del control de aulas 102529 Pantalla para generacioacuten de poblacioacuten inicial 102530 Pantalla de evaluacioacuten de versiones 103531 Pantalla del proceso de seleccioacuten 103532 Pantalla del proceso de clonacioacuten 104

533 Pantalla de mutacioacuten 104534 Pantalla del proceso de cruzamiento 105535 Horarios finales 105536 Pantalla menuacute seleccioacuten de catedraacuteticos 106537 Pantalla de perfiles 106538 Pantalla de consulta perfiles 107539 Pantalla perfiles de las materias 107540 Pantalla consulta perfiles de las materias 108541 Pantalla captura datos de catedraacuteticos 108542 Pantalla consulta datos de catedraacuteticos 109543 Pantalla captura perfil de catedraacuteticos 109544 Pantalla consulta perfil de catedraacuteticos 110545 Pantalla muestra inferencia catedraacuteticos para materia 110546 Pantalla explicacioacuten del porqueacute un maestro puede dar una materia 111547 Pantalla materias que puede impartir un profesor 111548 Pantalla de explicacioacuten del porqueacute un profesor puede dar una

materia112

61 Portada inicial del proyecto 11562 Menuacute principal del proyecto 11663 Menuacute grupos por abrir 11664 Pantalla menuacute seleccioacuten de catedraacuteticos 11765 Pantalla principal del menuacute Algoritmos Geneacuteticos 11766 Pantalla de captura de datos de las Materias 11867 Pantalla de captura de datos de Criterios por Materia 11968 Pantalla de captura de datos de Carreras 11969 Pantalla caacutelculo de ajustes 120

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

610 Pantalla inicial del moacutedulo generacioacuten de horarios 121611 Pantalla principal del moacutedulo generacioacuten de horarios 122612 Pantalla del control de aulas 123613 Pantalla de consultas del control de aulas 123614 Pantalla de genera poblacioacuten inicial 124615 Pantalla de evaluacioacuten de versiones 124616 Pantalla del proceso de seleccioacuten 125617 Pantalla del proceso de clonacioacuten 125618 Pantalla de mutacioacuten 126619 Pantalla del proceso de cruzamiento 126620 Horarios finales 127621 Pantalla captura perfil de catedraacuteticos 128622 Pantalla muestra inferencia catedraacuteticos para materia 128623 Pantalla explicacioacuten porque un maestro puede dar una materia 129624 Pantalla materias que puede impartir un profesor 129625 Pantalla de explicacioacuten porque un profesor puede dar una materia 130

Capiacutetulo 1 Introduccioacuten

CAPIacuteTULO 1

INTRODUCCIOacuteN

11 Antecedentes

iquestQueacute es un horario

ldquoEl horario completo bien puede gobernar las vidas demiles de alumnos y cientos de profesores para los 200 diacuteasdel antildeo escolar semestre a semestre hora tras hora Comouna poderosa herramienta puede faacutecilmente crear o deshacersituaciones de ensentildeanza aprendizajerdquo [Johnson 1980]

En la educacioacuten superior la historia siempre es la misma la proporcioacuten de tiempodictada por el horario para los alumnos y profesores es generalmente muy baja Apesar de esto las dificultades en la creacioacuten de los horarios son grandes Existenvarios departamentos y carreras cada uno con sus propias ideas de coacutemo y cuaacutendo sedeben programar sus cursos El nuacutemero de estudiantes puede variar considerablementede antildeo en antildeo Similarmente las preferencias de los alumnos a favor o en contra delas materias pueden variar dramaacuteticamente de un semestre a otro Los estudiantespueden tomar cursos de un departamento o de varios de ellos aun maacutes puedenseleccionar materias de otras carreras La reciente desaparicioacuten de las restricciones decreacuteditos para cursar las asignaturas complica maacutes la situacioacuten porque ampliacutea el rangode materias que puede tomar un alumno Los horarios aparecen en varias formasmatutinos vespertinos mixtos y todo el diacutea Los horarios escolares indican cuando unmaestro y un alumno deben ir a cada clase Todas las escuelas tienen un horario decursos que dirige lo que cada estudiante y catedraacutetico debe hacer en determinadomomento Esta tesis versa especiacuteficamente sobre el problema de construir horariospara Institutos Tecnoloacutegicos en Meacutexico

La planeacioacuten de los horarios es un trabajo que se realiza semestralmente antes de iniciarel siguiente periodo escolar tomando en cuenta la demanda de grupos que se ofreceraacuteny asignando a estos grupos los alumnos el aula el catedraacutetico y el horariocorrespondiente mediante informacioacuten que se obtiene de varias maneras

El principal objetivo de este proyecto es dar una solucioacuten aproximada (aceptable) alproblema de la generacioacuten de horarios de una escuela de nivel superior que se resumeasiacute

Capiacutetulo 1 Introduccioacuten

ldquoDado un conjunto de departamentos y carreras asignaturas con prerrequisitos gruposcatedraacuteticos con especialidad y horario definidos aulas laboratorios y alumnos con suspreferencias de materias el problema es construir un condensado de horarios factibleque satisfaga todas las restricciones fuertes y minimice las restricciones medias ysuavesrdquo

Las restricciones fuertes son restricciones de espacio y tiempo tal como planear doscursos en un aula al mismo tiempo Las restricciones medias y suaves son laspreferencias de maestros y estudiantes que deberaacuten ser satisfechas si es posible[Elmohamed 1998]

El problema de la generacioacuten de horarios ha sido tratado por muchos investigadoresutilizando meacutetodos que van desde la investigacioacuten de operaciones hasta disciplinas de laInteligencia Artificial como son Algoritmos Geneacuteticos Recocido Simulado RedesNeuronales etc

12 Planteamiento del problema

La generacioacuten de horarios es una forma particular del problema de asignacioacuten derecursos En el caso maacutes general existe una serie de objetos (recursos) y una serie deprocesos que necesitan ser realizados por cada uno de esos objetos En un contextoeducacional cada estudiante debe asistir a un nuacutemero predeterminado de clases y elprofesor debe impartirlas durante la semana en un aula predeterminada el estudiante elprofesor y el aula pasan aquiacute a ser el objeto y las clases el proceso

La complejidad del problema de la generacioacuten de horarios

La generacioacuten de horarios es un problema de optimizacioacuten combinatorio multi-dimensional no Euclidiano con muacuteltiples restricciones y por lo tanto difiacutecil de resolver[Elmohamed 1998]

El problema de la generacioacuten de horarios esta agrupado dentro de los considerados decomplejidad NP-completos es decir que no pueden ser resueltos en tiempo polinomialusando un algoritmo determiniacutestico No se conoce un algoritmo determiniacutestico detiempo polinomial para resolver alguno de esos problemas y la mayoriacutea de la gente creeque dichos algoritmos no existen[Karp 1972]

La generacioacuten de horarios es la asignacioacuten de lapsos de tiempo a un conjunto de eventossujeto a las restricciones en esas asignaciones Seguacuten Elmohamed [Elmohamed 1998]el problema NP-completo de la elaboracioacuten de horarios es un problema para la

Capiacutetulo 1 Introduccioacuten

satisfaccioacuten de restricciones que puede ser definido de la siguiente maneraPara una escuela dada con

Np profesores con sus horarios y turnos Nq materias con su temario y objetivosNx aulas y laboratorios con su capacidad Ns estudiantes

es requerido programar Nt parejas de

alumno-materiahora-materiamaestro-materiaaula-materia

una vez definidas las parejas anteriores se deben programar elementos de la formamateria-maestro-hora -aula

En un liacutemite de Nt lapsos de tiempo para producir una programacioacuten factible En unaprogramacioacuten factible no se puede encontrar a un profesor grupo o estudiante en maacutesde un lugar al mismo tiempo y un aula no puede ser asignada con maacutes de una clase a lavez o maacutes estudiantes de su capacidad o un profesor programado fuera de su horarionormal o con maacutes horas frente a grupo de las reglamentarias ademaacutes de un conjuntoadicional de restricciones

Importancia del problema

La administracioacuten de los recursos comprende la apertura de los grupos para inscribir alos alumnos el proacuteximo semestre la asignacioacuten de carga acadeacutemica a los catedraacuteticos lautilizacioacuten de aulas y laboratorios de quiacutemica produccioacuten coacutemputo electromecaacutenicaaulas de dibujo y demaacutes instalaciones del Instituto Tecnoloacutegico de Zacatepec (ITZ)Cuando por errores imputables al creador de los horarios se hizo una mala planeacioacuten sederivan los siguientes problemasbull Alumnos que se inscriben con una carga de creacuteditos menor a la miacutenima por falta de

grupos suficientesbull Alumnos que deben estar en el ITZ desde las 700 hrs hasta las 2000 hrs varios

diacuteas a la semana por abrir grupos en horarios muy separadosbull Alumnos que pierden la secuencia de materias seriadas por falta de cupobull Alumnos que deben permanecer 1 oacute 2 semestres maacutes en el ITZ por no prever

suficientes grupos para semestres terminalesbull Catedraacuteticos que no imparten el miacutenimo reglamentario de horas frente a grupo por

no crearles grupos suficientesbull Catedraacuteticos a los que se les avisa 1 diacutea antes del inicio de clases que impartiraacuten una

Capiacutetulo 1 Introduccioacuten

asignatura nuevabull Asignaturas que son impartidas por profesores que no cumplen el perfil deseado en

esa asignaturabull Choque de grupos en las aulasbull Choque de grupos en laboratoriosbull Falta de laboratorio a algunos gruposbull Deficiente utilizacioacuten de las aulas

La creacioacuten de un sistema que evite de manera automaacutetica caer en errores como losmencionados NO ES TAREA TRIVIAL intentar resolver este problema involucra laelaboracioacuten de un ldquosistema inteligenterdquo capaz de tomar decisiones aprender inferirbasaacutendose en hechos generar nueva informacioacuten y a partir de ella nuevamente volver adecidir El sistema que se elabore debe tener la capacidad para deducir e inducir de unamanera combinada

Desventajas del sistema actual

La mayoriacutea de los problemas anteriores son ocasionados por alguno o varios de lossiguientes motivosbull Todo el proceso de caacutelculo y administracioacuten de los recursos es manualbull El proceso de elaboracioacuten coincide con el cierre de semestre actual y como las

personas responsables tambieacuten son catedraacuteticos deben combinar la generacioacuten dehorarios con las evaluaciones finales revisioacuten de proyectos y entrega decalificaciones de sus grupos a los alumnos

bull La elaboracioacuten de los horarios es un proceso que se lleva semanas de labor diariabull Requiere la atencioacuten total de los coordinadores durante todo el tiempo de

elaboracioacutenbull Al no tener la informacioacuten automatizada se tienen peacuterdidas de tiempo en la toma de

decisiones como por ejemplo en el preacutestamo de aulas no utilizadas o en la forma decompartir catedraacuteticos

bull Se tienen fuertes restricciones debido a los horarios de los catedraacuteticosbull Hay fuertes dificultades cuando se deben negociar cambios de horarios porque el

proceso implica mover asignaturas buscar aulas dejar paquetes de materias porsemestre etc

bull El estado de aacutenimo del coordinador influye en la elaboracioacuten de los horarios

13 Objetivo general

Generacioacuten de una solucioacuten aproximada del condensado de horarios para una escuela denivel superior que satisfaga las restricciones ocasionadas por los recursos involucradosmediante la elaboracioacuten de un sistema hiacutebrido (experto geneacutetico y loacutegico restrictivo)

Capiacutetulo 1 Introduccioacuten

14 Objetivos especiacuteficos

Se tiene el disentildeo e implementacioacuten de un sistema que

bull Proporciona una solucioacuten aproximada aceptable al problema de la generacioacuten dehorarios

bull Permite a los coordinadores delegar a la computadora la asignacioacuten de recursosbull Ahorra tiempo en la generacioacuten de los horariosbull Reduce el trabajo manualbull Agiliza la toma de decisionesbull Reduce el tiempo de elaboracioacuten de horariosbull Facilita la modificacioacuten de informacioacuten generadabull Aumenta la eficiencia en las negociaciones entre jefes y coordinadoresbull Lleva al Instituto Tecnoloacutegico de Zacatepec (ITZ) a la modernizacioacuten en este

proceso

15 Justificacioacuten del sistema

151 Justificacioacuten teoacuterica

La utilizacioacuten de la Inteligencia Artificial (IA) para la solucioacuten de problemas de la vidacotidiana ha sido una estrategia utilizada cuando los sistemas tradicionales decomputacioacuten no proveen mecanismos suficientes para garantizar una solucioacuten adecuadasu utilizacioacuten para la generacioacuten de horarios (creacioacuten de grupos asignacioacuten de horaasignacioacuten de aula determinacioacuten de catedraacutetico) presenta una alternativa ideal paracomprobarlo

152 Justificacioacuten metodoloacutegica

La utilizacioacuten de un grupo de Sistemas Expertos que realice la asignacioacuten de losrecursos para la generacioacuten de grupos y le proponga una materia determinada a unprofesor seguacuten el perfil acadeacutemico de ambos reuacutene las caracteriacutesticas necesarias paradar la solucioacuten elegante y efectiva al problema planteado anteriormente porque

bull Se requiere del conocimiento de un experto para plantear el funcionamiento delsistema

bull El conocimiento se alimentaraacute a una base de conocimientos que conste de variaspartes

bull Para la generacioacuten de grupos de una asignatura dada el sistema debe ldquorazonarrdquo paradeterminar cuantos de eacutestos se deben abrir para ofertarlos a los alumnos

Capiacutetulo 1 Introduccioacuten

bull En la asignacioacuten de nuevas materias a los catedraacuteticos el sistema debe ldquodeterminarrdquoquieacuten es el maacutes idoacuteneo para impartirla de acuerdo al perfil de ambos materia ymaestro

La Programacioacuten Loacutegica de Restricciones (PLR) es una de las teacutecnicas que maneja demanera natural informacioacuten sometida a ciertas restricciones y fue seleccionada paraseguir trabajando en la resolucioacuten del problema porque

bull Los horarios deben satisfacer ciertas restricciones como por ejemplo no se debengenerar mas grupos de los necesarios no puede haber dos materias con el mismogrupo no deben existir grupos del mismo paquete a la misma hora etc

bull Cada paquete de un semestre es un objeto que por siacute mismo posee ciertascualidades y restricciones por ejemplo no debe tener horas sin asignatura entre lahora inicial y final existen materias que se deben impartir de una hora diaria otrasdeben ser impartidas de 2 horas diarias etc

bull La solucioacuten presentada por la PLR inicia con datos aleatorios de un horario despueacutesse verifica si las restricciones se cumplen o no si se cumplen se guarda el dato si nose genera un nuevo dato aleatorio

Los Algoritmos Geneacuteticos utilizados aquiacute para asignar aula a los grupos cumplen con lametodologiacutea de la Computacioacuten Evolutiva porque

bull Se tienen datos iniciales de los grupos (materia-hora)bull Se genera una poblacioacuten inicial que son n versiones de un condensado de horarios

sin aulabull Esta poblacioacuten inicial es evaluada se seleccionan los condensados maacutes adecuados y

se eliminan las versiones menos adecuadasbull Se realizan cruzamientos mutaciones clonaciones y se crea la nueva generacioacuten de

horariosbull Se repite el proceso hasta llegar a una utilizacioacuten eficiente de las aulas

Por lo anterior se pueden observar las ventajas de utilizar un sistema inteligente sobreuno convencional para solucionar el problema planteado

Una vez definido el modelo para solucionar el problema de la asignacioacuten de horariospara las asignaturas aulas y catedraacuteticos de una institucioacuten de educacioacuten superior seraacutefaacutecil extrapolarlo para solucionar algunos problemas referentes a la planeacioacuten dehorarios de otro tipo de escuelas de nivel medio superior

153 Justificacioacuten praacutectica

La creacioacuten de un sistema que resuelva el problema de la elaboracioacuten de horarios ygenere automaacuteticamente la programacioacuten de grupos aulas y maestros sin violar las

Capiacutetulo 1 Introduccioacuten

restricciones fuertes minimizando las restricciones medias y suaves optimizando lautilizacioacuten de las aulas cumpliendo con las restricciones de los profesores asignandoprofesores adecuados para impartir las clases traeraacute como consecuencia condicionespara mejorar el proceso de ensentildeanza aprendizaje

16 Alcances y limitaciones

Alcances

El sistema generaraacute un espacio de soluciones finito que satisfaga las restriccionesfuertes medias y suaves optimizando el uso de los recursos disponibles se puede decirque el sistema optimizaraacute los recursos cuando los horarios generados tengan lascaracteriacutesticas mencionadas maacutes adelante

Esta tesis documenta la creacioacuten de un sistema basado en el conocimiento parasolucionar el problema de la generacioacuten de horarios en el Instituto Tecnoloacutegico deZacatepec que permite

bull Generar grupos suficientes para que todos los estudiantes se inscriban al menos conla carga miacutenima reglamentaria

bull Que los alumnos tengan horarios adecuados a sus necesidades y preferenciasbull Que todos los grupos tengan capacidad suficiente para todos los estudiantes que

deseen inscribirsebull Que los profesores impartan materias de acuerdo a su perfil profesionalbull Evitar los choques de grupos en aulas y laboratoriosbull Que todos los grupos tengan aula asignada desde el inicio del semestrebull La utilizacioacuten oacuteptima de las aulas y laboratoriosbull La correcta asignacioacuten de aulas y laboratorios a los cursosbull Realizar de manera automaacutetica la asignacioacuten de los recursosbull Determinar el nuacutemero de grupos que se deben abrirbull Llenar las aulas con grupos sin permitir choque de horariosbull Imprimir la lista de grupos ofertados para el semestre siguientebull Cuando exista el grupo de una materia sin maestro determinar cual es el mejor para

impartirla

Tener un Sistema terminado que contenga los siguientes moacutedulos

Sistema administrativo para control de horarios Sistema Experto para determinar la cantidad de grupos por abrir Sistema Experto para sugerir materias a un catedraacutetico Sistema Experto para seleccionar los mejores catedraacuteticos para impartir una

asignatura

Capiacutetulo 1 Introduccioacuten

Moacutedulo de Programacioacuten Loacutegica de Restricciones para generar los horarios a lospaquetes de materias por semestre

Moacutedulo de Algoritmo Geneacutetico para asignar aula a los grupos

Cada moacutedulo tendraacute

bull Interfaces de usuario amigablesbull Tiempos de ejecucioacuten raacutepidos (independientemente de la maacutequina objetivo)bull Reglas de inferencia para generar resultados (soacutelo los Sistemas Expertos)bull Buacutesquedas heuriacutesticas o aleatorias seguacuten el casobull Procesos para realizar induccioacuten y deduccioacuten (soacutelo los Sistemas Expertos)bull Manejo de incertidumbre (soacutelo los Sistemas Expertos)bull Un moacutedulo de explicaciones en lenguaje natural

Limitaciones

El sistema estaacute disentildeado para generar horarios de una escuela de nivel superior donde elcoordinador de cada carrera es el responsable de la generacioacuten de sus horarios controlarsus profesores impartir cierto nuacutemero de materias y utilizar cierta cantidad de aulas ylaboratorios

Trabaja exclusivamente en lenguaje espantildeol

Las reglas de la base de conocimiento tienen un formato predeterminado por unasintaxis definida para el sistema

El sistema estaacute elaborado para trabajar en microcomputadoras compatibles con IBM

No maneja los horarios individuales de los alumnos en el proceso de inscripcioacuten estaactividad deberaacute ser realizada por los sistemas del departamento de servicios escolares

Capiacutetulo 2 Marco teoacuterico

CAPIacuteTULO 2

MARCO TEOacuteRICO

21 El estado del arte

211 Antecedentes

El problema de la generacioacuten de horarios ha sido atacado de varias maneras a nivelmundial inclusive existe un grupo internacional que convoca al congreso llamadoPATATxx (Practice and Theory of Automated Timetabling) donde xx es el antildeo delcongreso en cuestioacuten

La ASAP (Automated scheduling optimization and planing group) es otro organismocuyo fin principal es conducir investigacioacuten en modelos heuriacutesticas y algoritmos para laproduccioacuten automaacutetica de soluciones de alta calidad a una gran variedad de problemasde planeacioacuten y optimizacioacuten del mundo real incluyendo elaboracioacuten de horarioslogiacutestica asignacioacuten de espacio y mantenimiento de inventarios

212 Algunos meacutetodos para resolver el Problema de laGeneracioacuten de Horarios

La generacioacuten de horarios acadeacutemicos ha sido acometida por muchos investigadoresbaacutesicamente dentro del aacuterea de la Investigacioacuten de Operaciones

2121 Investigacioacuten de Operaciones

El algoritmo para resolver problemas de asignacioacuten se denomina Huacutengaro ya que fuerondos matemaacuteticos Huacutengaros Koumlnig (1916) y Egervary (1931) los que aportaron lasteoriacuteas que sirven de base a este meacutetodo [Daellenbach 1987]

Este problema se presenta en diversos casos de toma de decisiones Los problemastiacutepicos de asignacioacuten implican asignar tareas a maacutequinas trabajadores a tareas yproyectos personal de ventas a territorios de ventas contratos a licitaciones horarios deaulas disponibles a horarios de maestros disponibles enfermos a camas disponibles delhospital cierto nuacutemero de empleados a cierta cantidad de puestos en una empresaaviones a destinos aeacutereos entre otros

Capiacutetulo 2 Marco teoacuterico

Una caracteriacutestica importante de los problemas de asignacioacuten es que se asigna untrabajador una tarea a una sola maacutequina proyectoEn particular se busca elconjunto de asignaciones que optimice el objetivo planteado tal como minimizar costosminimizar tiempo o maximizar utilidad

La formulacioacuten del problema general de asignacioacuten es

Sujeta a

Corresponde a un caso especial del problema del transporte en el cual las variables Xijsoacutelo pueden tomar el valor 0 oacute 1 tomar el valor 1 si el origen i se hace corresponder aldestino j y 0 en caso contrario

El Algoritmo Huacutengaro

Este algoritmo se usa para resolver problemas de minimizacioacuten ya que es maacutes eficazque el empleado para resolver el problema del transporte por el alto grado dedegeneracioacuten que pueden presentar los problemas de asignacioacuten Las fases para laaplicacioacuten del meacutetodo Huacutengaro son

Capiacutetulo 2 Marco teoacuterico

Paso 1 Encontrar primero el elemento maacutes pequentildeo en cada fila de la matriz de costosmm se debe construir una nueva matriz al restar de cada costo el costo miacutenimo de cadafila encontrar para esta nueva matriz el costo miacutenimo en cada columna A continuacioacutense debe construir una nueva matriz (denominada matriz de costos reducidos) al restar decada costo el costo miacutenimo de su columna

Paso 2 (En algunos pocos textos este paso se atribuye a Flood) Consiste en trazar elnuacutemero miacutenimo de liacuteneas (horizontales o verticales o ambas uacutenicamente de esasmaneras) que se requieren para cubrir todos los ceros en la matriz de costos reducidos sise necesitan m liacuteneas para cubrir todos los ceros se tiene una solucioacuten oacuteptima entre losceros cubiertos de la matriz Si se requieren menos de m liacuteneas para cubrir todos losceros se debe continuar con el paso 3 El nuacutemero de liacuteneas para cubrir los ceros es iguala la cantidad de asignaciones que hasta ese momento se pueden realizar

Paso 3 Encontrar el menor elemento diferente de cero (llamado k) en la matriz decostos reducidos que no estaacute cubierto por las liacuteneas dibujadas en el paso 2 acontinuacioacuten se debe restar k de cada elemento no cubierto de la matriz de costosreducidos y sumar k a cada elemento de la matriz de costos reducidos cubierto por dosliacuteneas (intersecciones) Por uacuteltimo se debe regresar al paso 2

Notas

1 Para resolver un problema de asignacioacuten en el cual la meta es maximizar la funcioacutenobjetivo se debe multiplicar la matriz de ganancias por menos uno (-1) y resolver elproblema como uno de minimizacioacuten

2 Si el nuacutemero de filas y de columnas en la matriz de costos son diferentes el problemade asignacioacuten estaacute desbalanceado El meacutetodo Huacutengaro puede proporcionar una solucioacutenincorrecta si el problema no estaacute balanceado debido a lo anterior se debe balancearprimero cualquier problema de asignacioacuten (antildeadiendo filas o columnas ficticias) antes deresolverlo mediante el meacutetodo Huacutengaro

3 En un problema grande puede resultar difiacutecil obtener el miacutenimo nuacutemero de filasnecesarias para cubrir todos los ceros en la matriz de costos actual Se puede demostrarque si se necesitan j liacuteneas para cubrir todos los ceros entonces se pueden asignarsolamente j trabajos a un costo cero en la matriz actual esto explica porqueacute terminacuando se necesitan m liacuteneas

Capiacutetulo 2 Marco teoacuterico

Tambieacuten han aparecido meacutetodos no convencionales que atacan el problema desdediferentes aacutengulos Los maacutes usuales son

Algoritmos Geneacuteticos Redes Neuronales Recocido Simulado Buacutesquedas Tabuacute Sistemas Expertos Programacioacuten Loacutegica de Restricciones Grafos Coloreados Operadores Recombinatorios Especializados

2122 Algoritmos Geneacuteticos

Los Algoritmos Geneacuteticos han sido utilizados satisfactoriamente para planear exaacutemenesy cursos en cierto nuacutemero de casos [Corne 1993] utiliza una buena aproximacioacutentradicional donde cada gene representa la hora en la cual se presentaraacute un examen ocurso Con operadores de cruzamiento y mutacioacuten como los mencionadosanteriormente agrega sustanciosos ahorros de tiempo al meacutetodo de Corne [Paechter1994] da una aproximacioacuten diferente donde el gene de cada examen no solo especificaldquoel cuandordquo sino que tambieacuten busca un nuevo horario del examen si despueacutes delcruzamiento el curso esta causando un conflicto Si el examen no puede ser programadoen alguna hora entonces no se agrega a la planeacioacuten con la finalidad de no tenerhorarios infactibles

[Burke1994] incorpora dominios de conocimiento especiacutefico para asegurar que ningunade las soluciones candidato es no factible En particular una representacioacuten directa seutilizada que incluye no soacutelo el cuaacutendo sino tambieacuten el doacutende un curso o examendeberaacuten ser tomados permitiendo al programador de horarios detener la ejecucioacuten delalgoritmo en cualquier punto y tener ya una serie de soluciones de buenos horariosfactibles

2123 Programacioacuten Loacutegica de Restricciones

Varios autores han presentado teacutecnicas de Programacioacuten Loacutegica de Restricciones pararesolver problemas de asignacioacuten de horarios pero eacuteste sigue siendo un nuevo enfoqueTambieacuten han aparecido algunos usando PLR para la planeacioacuten de clase-maestro[Yoshikawa 1994]

Kang y White presentaron una buena aproximacioacuten estaacutendar de PLR programandocursos sin permitir ningun conflicto [Kang y White 1994] Ellos usaron una teacutecnica dereversa equivalente al backtracking con lo cual cuando un curso no puede ser

Capiacutetulo 2 Marco teoacuterico

asignado uno similar es desasignado y el nuevo es colocado en su lugar Esto previeneuna buacutesqueda exhaustiva completa Esto tambieacuten introduce el concepto de undelimitador de tamantildeo que establece un maacuteximo en el tamantildeo del aula que puede usarun curso en particular Las restricciones son priorizadas en cinco diferentes categoriacuteasdonde la categoriacutea cinco debe ser liberada antes que la categoriacutea cuatro y asiacute con lasdemaacutes Este procedimiento fue utilizado para programar exitosamente los cursos de laUniversidad de Otawa

Tambieacuten se ha utilizado la teacutecnica de la Programacioacuten Loacutegica de Restricciones parahacer los horarios de una facultad utilizando una regla heuriacutestica para seleccionar quecurso asignar primero [Fahrion y Dollanski 1992]

2124 Redes Neuronales

De las distintas categoriacuteas de las Redes Neuronales Artificiales la maacutes apropiada pararesolver el problema es la familia de las Redes Neuronales de reaccioacuten basadas enneuronas multiestado con ecuaciones de teoriacutea de campos con significado controlandolas dinaacutemicas Las ecuaciones anteriores son usadas en lugar de los procedimientospara actualizacioacuten de demanda estocaacutesticos que han sido usados por otros esquemas paraevitar quedar atorados en circuitos locales miacutenimos [Carrasco 2004]

2125 Recocido Simulado

Recocido Simulado se refiere al uso de una teacutecnica de optimizacioacuten combinatoria odiscreta Divide el problema en grupos del mismo tiempo de clase los cuales sonespecificados por cada departamento acadeacutemico basados en la habilidad de losinstructores Funciona asiacute

1 El proceso asigna aulas procesando un grupo a la vez empezando con el primero2 El proceso continuacutea hasta que todos los grupos son procesados3 Cuando una solucioacuten es obtenida dividiendo el problema en conjuntos de horario

una mutacioacuten especial es generada con grupos traslapados Esto podriacutea generar unamala asignacioacuten de aula para minimizar esto se utiliza el siguiente paso

4 Los grupos son procesados basados en el nuacutemero de aulas este nuacutemero de aulas esoptimizado y se termina con las horas de clase con el miacutenimo de paquetes a esa hora

5 La implementacioacuten del programa genera una base de datos con la nueva asignacioacutende salones para el proacuteximo semestre [Abramson 1991]

2126 Operadores Recombinatorios Especializados

Los operadores de cruzamiento de los Algoritmos Geneacuteticos producen buenas

Capiacutetulo 2 Marco teoacuterico

combinaciones de genes para ser pasados entre los diferentes miembros de unapoblacioacuten En los Algoritmos Geneacuteticos estaacutendar es un procedimiento similar a escogerlos primeros n genes del primer padre y los uacuteltimos del segundo padre esteprocedimiento no es uacutetil en situaciones donde existen fuertes restricciones sobre laforma de los miembros de la poblacioacuten aquiacute un operador violaraacute esos requerimientosEl operador de recombinacioacuten heuriacutestico hiacutebrido trabaja asiacute

1 Los grupos no programados del periodo anterior son pasados al algoritmo2 Primero selecciona aquellos grupos programados en el periodo i en los padres 1 y 23 Los grupos extra son seleccionados de aquellos programados en el periodo i ya sea

del padre 1 o del padre 2 o de los dejados del periodo i ndash 14 Cualquiera de los grupos no programados es pasado al periodo i+15 Soacutelo los grupos que no crean conflicto con aquellos ya programados para este

periodo pueden ser seleccionados [Wilke 2002]

2127 El Sistema Experto Basado en Reglas

Los Sistemas Basados en Reglas proporcionan un buen punto de referencia para saberque tan buenos son otros meacutetodos en comparacioacuten a esta teacutecnica estaacutendar Varias deestas reglas son usadas para proporcionar sensibles elecciones para los movimientos enel algoritmo de Recocido Simulado en lugar de seleccionar cambios de manera aleatoriase ha usado este sistema como un preprocesador para generar una buena aproximacioacuteninicial y darla al Recocido Simulado

El Sistema Experto Basado en Reglas consiste en un nuacutemero de reglas (o heuriacutesticas) yrecursioacuten convencional para ayudar en la generacioacuten de asignacioacuten de clases Lasestructuras de datos o componentes del sistema son

bull Una matriz de distancias entre los departamentos acadeacutemicos y los edificios queseraacuten utilizados

bull Estructura de los datos de las materias para cada grupo programado en el campobull Estructura para las aulas (independientemente del tipo de aula) involucradas en el

procesobull Horarios para cada periodo de tiempo guardando cuales estaacuten disponibles y

cuales ya fueron ocupadasbull La estructura de los departamentosbull Las preferencias de los estudiantes indicando las clases requeridas

independientemente del semestre que sean las materias [Gervaacutes 1999]

Capiacutetulo 2 Marco teoacuterico

213 Observaciones realizadas a algunos paquetes generadores de horarios

Nombre DeMIStDescripcioacuten Puede describirse como un paquete que realiza bien las operaciones decasa (la propia universidad que lo creoacute) pero salioacute tan costoso como si hubierancomprado un paquete [Demist 2000]Proveedor DeMISt University

KnowTISEs un proyecto iniciado por la universidad de Leeds En la literatura aparece como unpaquete que es mejor para la generacioacuten de Grandes Horarios para una universidad quepara un departamento Utiliza el beneficio de gran cantidad de informacioacutencentralizada para la optimizacioacuten de recursos [Schedul 2000]Leeds University

STARSSTARS(Space Time and Resources Management) Igual que el anterior corre mejor enla elaboracioacuten de horarios de buen tamantildeo que en una aplicacioacuten departamentalDe Montfort University

Meeting maker Office TalkEs un generador de clases y acciones diarias es bueno cuando no es uacutetil el horario delos alumnos ya que proporciona uacutenicamente los espacios para las clases [Gervaacutes 1999]Varios proveedores

GP-UNTISEs un paquete australiano que funciona perfectamente para los requerimientos de lasescuelas secundariasTimetabling Services UK

Syllabus PlusEs una buena opcioacuten para uso departamental cumple los requerimientos de unauniversidad para la generacioacuten de horarios no trabaja a nivel de estudiantes pero si lohace con grupos de ellos no es factible para la generacioacuten de Grandes HorariosScientia LTD

Facility TimetablerEs una buena opcioacuten para uso departamental y para Grandes Horarios tiene interfaz conlos sistemas de alumnos y permite la creacioacuten de horarios individuales permite el uso

Capiacutetulo 2 Marco teoacuterico

centralizado de las aulas para una buena optimizacioacutenFacility Systems

Mimosa for WindowsEs un software general de planificacioacuten de la ensentildeanza y de programacioacuten de horariosLa aplicacioacuten utiliza todas las propiedades de Windows eficientemente es raacutepida tienegran capacidad y lo mas importante es tan flexible que puede aplicarse en todo el tipode escuelas desde la escuela primaria a las universidades desde las escuelasvocacionales a las academias militares

Se podriacutea decir que este producto cubririacutea todas las necesidades de la institucioacuten perohan existido algunos inconvenientes ya que no cubre con las necesidades deldepartamento tan solo da ayuda al usuario para que pueda generar sus horarios ademaacutesel tener tantos botones en pantalla (200) podriacutean confundir al usuario y realizar horarioserroacuteneos y no se resolveriacutea el problema [Nielsoft 2000]Mimosa Software Oy Finlandia

GestHor BSPEs un producto informaacutetico para resolver problemas de horarios escolares en escuelasbaacutesicas escuelas secundarias y escuelas profesionales

Toacutemese en cuenta que la mayoriacutea de los sistemas mencionados se enfoca solo a laasignacioacuten aula ndash materia y no abarca lo que es asignacioacuten materia ndash profesor

22 Los horarios

Existe mucha literatura referente a los horarios con una gran variedad de subtiacutetulos ydiferentes problemas Una gran variedad de algoritmos han sido propuestos empleandometodologiacuteas y heuriacutesticas de buacutesqueda produciendo horarios completos o soacuteloayudando durante el proceso Una de las grandes preguntas para la elaboracioacuten dehorarios es que si eacutestos pueden ser generales es decir iquestse puede encontrar un algoritmoo meacutetodo suficientemente general que produzca buenos horarios para todos losproblemas y para todas las restricciones La alternativa desde luego es continuardesarrollando algoritmos especializados aislados cada vez que un problema de horariosaparece

Al trabajar con una solucioacuten para el problema de los horarios se deben contestar lassiguientes preguntas iquestTodas las escuelas de nivel superior elaboran los horarios de lamisma manera iquestSon grandes o pequentildeas las diferencias en la forma de elaborar loshorarios iquestQueacute tan necesaria es la ayuda de la computadora iquestSoacutelo se requiere unpaquete general para la elaboracioacuten de los horarios iquestQueacute funcionalidad debe tener

Capiacutetulo 2 Marco teoacuterico

dicho paquete iquestQueacute tan grande y complejo es el problema de elaboracioacuten de horariosiquestQueacute propiedades debe poseer un horario aceptable para que una institucioacuten lo use

Se han realizado algunas encuestas para conocer si las escuelas de nivel superior tienensistemas computarizados para la elaboracioacuten de horarios si no los tienen si lonecesitaban y queacute caracteriacutesticas deberiacutea poseer El estudio concluyoacute que existe una grandemanda para tal sistema que se requiere un alto grado de asistencia automatizada yque la mayoriacutea de los elaboradores de horarios no estaban muy contentos con sussistemas actuales [Comm y Mathaisel 1988]

[Dowsland y Lim 1982] consideraron el problema de la elaboracioacuten de horarios peroproporcionaron alternativas en la encuesta de la utilidad de sistemas automatizados[Junginger 1986] establece que ldquoAunque los horarios producidos requierenmodificacioacuten las escuelas estaacuten contentas con los resultados El tiempo ahorrado fueconsiderable arriba del 75rdquo Dowsland por otro lado concluye que ldquoEs muy difiacuteciljuzgar el eacutexito actual de los paquetes para la elaboracioacuten de horarios pero el uso muylimitado de ellos sugiere que sus ventajas son limitadasrdquo Claramente ninguacuten disentildeadorde sistemas puede garantizar la idea de que su producto seraacute bienvenido con los brazosabiertos

[Pendlebury 1986] encuestoacute a las universidades politeacutecnicas britaacutenicas con respecto ala elaboracioacuten de horarios de cursos Doce de las treinta que contestaron la encuestautilizan elaboracioacuten de horarios por computadora (siete a gran escala y cuatro lo hacenen pequentildea escala) Es interesante notar que Pendlebury encontroacute que la mayoriacutea de loscursos se basan en clases que son muy independientes unas de otras y en la mayoriacutea delas instituciones encuestadas los departamentos individuales son responsables deproducir sus propios horarios

221 El problema de la elaboracioacuten de horarios

La elaboracioacuten de horarios es el acto de programar cursos a periacuteodos de tiempo asignarun aula a esos cursos y asignar un catedraacutetico a dicho curso

A menudo se hacen afirmaciones acerca de la naturaleza del problema que puedenpermitir encontrar una solucioacuten maacutes eficientemente Sin embargo cuando se trata deconstruir un sistema general se estaacute limitado a que las afirmaciones son el miacutenimocomuacuten denominador de todos los posibles escenarios

Una informacioacuten impliacutecita que ha sido hecha a menudo es la independencia entreunidades acadeacutemicas separadas Algunas universidades programan preguntando a susdepartamentos los horarios de sus propios cursos Una unioacuten central de dichos horarioses entonces utilizada para asegurar que todas las restricciones relevantes son cumplidasEn muchos casos esta es la forma normal en que es producido el horario de los cursos

Capiacutetulo 2 Marco teoacuterico

aunque algunos departamentos desarrollan su propio software para la programacioacuten decursos

En varias universidades los alumnos pueden tomar algunos de sus cursos endepartamentos diferentes al suyo Obviamente la independencia no debe ser asumidageneralmente debido a que puede haber diferencia en la programacioacuten de los cursos decada departamento En el Tecnoloacutegico de Zacatepec por ejemplo la probabilidadpromedio de que un curso tenga conflicto con uno de otro departamento es 1650mientras que la probabilidad de que dos cursos del mismo departamento tengan conflictoes 2250 notaacutendose una gran diferencia en el resultado

Dificultades encontradas por los responsables de la generacioacuten de horarios

Algunas dificultades experimentadas por los departamentos y facultades sonmencionadas aquiacute

bull Los programas acadeacutemicos se hacen cada vez maacutes flexibles (los estudiantesseleccionan queacute asignaturas tomar cuaacutendo doacutende y con quieacuten)

bull Algunos departamentos tienen asignaturas para ofrecer pero no tienen muchosalumnos

bull Los espacios para ofrecer las materias son cada vez menos y el problema se agravacuando los alumnos no quieren asistir en las tardes o los saacutebados

bull El staff de profesores no siempre estaacute disponible para impartir clases por muacuteltiplesrazones

bull Los alumnos pueden solicitar los grupos del proacuteximo semestre desde antes de queinicie pero al llegar el momento de inscribirse no lo hacen

bull Los departamentos estaacuten ansiosos por ofrecer una gran variedad de grupos teniendolos recursos pero esto puede ocasionar problemas

bull Existe una gran variedad de reglas al momento de asignar las aulas (pertenencia alas carreras prioridades de profesores etc)

bull Como no hay un costo asociado a la utilizacioacuten de un aula y no hay sanciones porreservarla y no utilizarla los departamentos acadeacutemicos no tienen un buen motivopara hacer una correcta utilizacioacuten del espacio

bull La falta de recursos ocasiona el mayor de los problemas porque obliga a laoptimizacioacuten en la planeacioacuten

Cursos y estudiantes

El problema de la elaboracioacuten de horarios estaacute relacionado esencialmente con el nuacutemerode eventos que requieren ser programados en este caso los cursos para los estudiantesClaramente el tamantildeo del problema variacutea entre los diferentes centros de estudio desdepequentildeos problemas con alrededor de 50 a 100 cursos hasta los 500 o 1000 cursos que

Capiacutetulo 2 Marco teoacuterico

programar Esta variacioacuten en el tamantildeo afectaraacute el tiempo requerido para resolver elproblema Un problema pequentildeo puede ser resuelto casi de manera oacuteptima mientrasque en uno grande se deben usar buacutesquedas heuriacutesticas u otras formas de acotar elespacio de buacutesqueda de una solucioacuten en un periodo de tiempo razonable

Se debe esperar que el nuacutemero de cursos y el nuacutemero de alumnos esteacuten correlacionadosEl nuacutemero de cursos ofrecidos y desde luego programados debe ser calculado porextrapolacioacuten del promedio de 5 o 6 cursos por alumno y con cupo promedio de 30alumnos por curso obviamente algunos alumnos se inscribiraacuten en 7 u 8 cursos porsemestre mientras que los cursos tendraacuten inscritos entre 20 y 40 alumnos Losalumnos dependiendo del semestre en que se encuentran inscritos deben matricularse aciertos cursos especiacuteficos para ese semestre dichos cursos deben programarse de maneraque los alumnos tengan la menor cantidad de tiempo entre el primer y el uacuteltimo cursodel diacutea permitieacutendoles con esto realizar actividades complementarias

En el Tecnoloacutegico de Zacatepec para una carrera con 900 alumnos se requieren ofertaraproximadamente entre 140 y 160 cursos ademaacutes los estudiantes pueden matricularse encursos ofrecidos por otros departamentos (esto ampliacutea el rango de posibilidades para losalumnos)

Los cursos y los departamentos

El promedio de los cursos ofrecidos por cada departamento variacutea considerablementeentre las diferentes escuelas de nivel superior La razoacuten de esta variabilidad puede servista como un indicador de la naturaleza de la complejidad de la planeacioacuten de horarios

Cada departamento ofrece cursos a los estudiantes de las carreras a las que da soportedirecto pero ademaacutes debe ofrecer cursos para todas las otras carreras de la institucioacutenque lo requieran esto es si un departamento X solicita la apertura de determinadonuacutemero de cursos a un departamento Y el departamento Y debe ofertar los cursossolicitados por X para los alumnos matriculados en el departamento X aunado a estoalgunos cursos ofertados por el departamento Y tienen compatibilidad con cursosofrecidos por X y por lo tanto los estudiantes de Y y X pueden ingresar indistintamenteen cualquiera de los cursos

Los cursos los semestres y las horas

Una de las afirmaciones que se pueden hacer en las instituciones de nivel superior es quelos cursos generalmente inician durante cierto periodo de tiempo y pueden tenerduracioacuten semestral (la gran mayoriacutea) trimestral y sin fechas predeterminadas (algunosposgrados por ejemplo) En general los cursos empiezan a las 700 AM y terminandependiendo del lugar a las 2000 o a las 2100 horas de lunes a saacutebado Aunque estopermite tener un amplio margen de horas para programar los cursos esto hace tambieacuten

Capiacutetulo 2 Marco teoacuterico

aun maacutes difiacutecil la elaboracioacuten de los horarios porque aumenta el rango de posiblescombinaciones donde programar cursos

Los cursos se pueden programar en periodos de tiempo muy variados aunque la mayoriacuteade los programadores de horarios siguen los siguientes patrones

bull Curso diario de 1 horabull Curso de dos horas en diacuteas saltados (lunes y mieacutercoles jueves y viernes

mieacutercoles y viernes)bull Curso de dos horas diarias 3 diacuteas por semana (lunes mieacutercoles y viernes)

(lunes martes y jueves) o (martes jueves y viernes)bull Cursos de cuatro horas en un solo diacutea por semanabull En el peor de los casos se programan cursos con la combinacioacuten de algunos

de los anteriores

Dependiendo del curso algunos tienen duracioacuten de cuatro horas teoacutericas semanales otroscombinan cuatro horas de teoriacutea y dos de praacutectica y algunos excepcionalmente sonprogramados con cuatro horas de praacutectica y dos de teoriacutea Las horas de praacutecticageneralmente se realizan en laboratorios o praacutecticas de campo agregando esto un nuevoparaacutemetro para la complejidad de la elaboracioacuten de horarios

Los cursos y las aulas

Las aulas son el espacio fiacutesico donde se impartiraacuten los cursos pueden ser salones declase laboratorios salones de exposicioacuten aulas para aplicacioacuten de exaacutemenes aulas paraactividades deportivas musicales o recreativas cada aula tiene capacidad para quecierto nuacutemero definido de estudiantes reciba sin problema unidades de ensentildeanzaaprendizaje

En una encuesta realizada por la Universidad de Nottingham [Burke y Elliman 1998] sedefinioacute que la programacioacuten de los cursos en las aulas es uno de los mayores problemasa los que se enfrentan los responsables de la elaboracioacuten de horarios Esto proviene dedos problemas mayores El primer problema es la escasez de aulas disponibles ya queen algunas de las escuelas de nivel superior el crecimiento de la poblacioacuten estudiantil hasido mayor que el crecimiento del nuacutemero de aulas disponibles para la ensentildeanza Elsegundo problema ocurre cuando se programa un curso en mas de un aula o saloacuten declase

La ocupacioacuten de las aulas es variable de acuerdo al departamento para el que seaasignada algunos prefieren utilizarlas al maacuteximo en el turno matutino otros en el turnovespertino tienen ocupacioacuten total algunos las utilizan exhaustivamente de lunes ajueves unos departamentos las llenan los viernes y saacutebados y otros tienen que utilizarlastodo el diacutea de lunes a saacutebado inclusive solicitan prestadas a los otros departamentosaquellos espacios que no son utilizados en alguacuten diacutea y hora a la semana

Capiacutetulo 2 Marco teoacuterico

Para el Tecnoloacutegico de Zacatepec el recurso llamado las aulas debe ser optimizado enuna buena planeacioacuten de horarios esto es deben ser utilizadas al maacuteximo todos los diacuteasde la semana desde las 700 hasta las 2100 de lunes viernes y los saacutebados hasta las1500 horas

Tipos de cursos

Una de las cosas a tomarse en cuenta durante la elaboracioacuten de los horarios es el tipo decurso a programar

bull Teoacutericos como los cursos matemaacuteticos cursos de administracioacuten etcbull Teoacuterico praacutecticos como los cursos de electroacutenica sistemas digitalesbull Lenguajes de programacioacutenbull Con praacutecticas de campo que deben salir al aire librebull Con praacutecticas de quiacutemica

Otra consideracioacuten es el tipo de aula requerida por los diferentes tipos de cursos

bull cursos que requieren medios audiovisuales simples (pizarroacuten y gis)bull algunos cursos adicionalmente requieren proyectores de acetatos y salas

obscurecidasbull cursos que requieren equipo de coacutemputo equipo de proyeccioacuten equipo de video y

televisioacuten para el desarrollo de la caacutetedra etcbull cursos que requieren laboratorios con computadorasbull que requieren equipos de medicioacuten electroacutenica generadores de sentildeales enchufes

eleacutectricos ybull cursos que requieren mesas tomas eleacutectricas y equipos para conexioacuten de redes

Los cursos y los catedraacuteticos

Definitivamente eacutesta es una de las principales consideraciones que tienen en cuenta losprogramadores de horarios la asignacioacuten de los cursos a los catedraacuteticos porque es unproceso que no puede realizarse de manera aleatoria es un proceso delicado porque deesto depende la efectividad del proceso de ensentildeanzandashaprendizaje

Los catedraacuteticos tienen caracteriacutesticas individuales que los hacen uacutenicosindependientemente de la profesioacuten que hayan estudiado Tienen intereses diferentesmeacutetodos diferentes aacutereas de preferencia diferentes perfil profesiograacutefico distinto tienenactividades extralaborales variadas asiacute que

iquestCoacutemo asignarle un curso a un catedraacutetico para que logre un oacuteptimo resultado en el

Capiacutetulo 2 Marco teoacuterico

proceso de ensentildeanza-aprendizajeiquestCoacutemo garantizar que el curso asignado a un profesor seraacute bien impartidoiquestCoacutemo saber que el profesor estaacute capacitado para ofrecer un buen cursoiquestCuaacuteles son los requisitos que debe reunir un profesor para impartir cierto cursoiquestDependen soacutelo de la profesioacuten los cursos que puede impartiriquestCoacutemo conocer de antemano las preferencias de los profesoresiquestEl nivel de estudio de los profesores les capacita para impartir cualquier cursoiquestDeben los profesores ser guiados a una especialidad por los programadores dehorarios

Las respuestas a todas estas preguntas incorporadas en un sistema generador de horariosiquestpermitiraacuten hacer una buena asignacioacuten de catedraacutetico a un curso

El condensado de horarios

Es un documento emitido cada semestre por los responsables de la elaboracioacuten de loshorarios que contiene la informacioacuten requerida por los alumnos jefes de departamento ycatedraacuteticos para conocer la distribucioacuten de las materias los grupos las aulas las horasy los catedraacuteticos que impartiraacuten los cursos en otras palabras el condensado de materiases el documento final de los HORARIOS que marcaraacute las acciones de todos el semestreactual

23 El proceso de la elaboracioacuten de horarios

El proceso de la elaboracioacuten de horarios abarca cada accioacuten que es requerida para crearel horario final completo y correcto de los datos iniciales Esto incluye recibir validary dar formato a los datos generar la versioacuten inicial hacer las correcciones y luegoproducir el condensado final de horarios El proceso de la generacioacuten de horariosabarca

bull la generacioacuten del dato de cuantos cursos se van a ofertarbull asignacioacuten de horario a esos cursosbull proporcionar aulas a los cursosbull designar profesores para los cursos definidos

la parte difiacutecil de esto es generar los horarios con los recursos disponibles en cadadepartamento cada etapa tiene sus restricciones (fuertes y suaves) los recursos no soninagotablesEl uso de la computadora

En una encuesta realizada por la Universidad de Nottingham [Burke y Elliman 1998]referente a la forma de elaborar horarios en las demaacutes universidades se encontroacute que un

Capiacutetulo 2 Marco teoacuterico

58 de ellas utilizan la computadora en alguna etapa del proceso de eacutestas el 21 tienela facilidad de realizar la programacioacuten aunque generalmente requieren captura manualde informacioacuten y conocimientos previos del problema particular del proceso El 1tienen paquetes comerciales y el 14 tienen paquetes hechos en casa para generarhorarios y el 2 aseguran que estaacuten desarrollando o comprando un paquete

Dado el tamantildeo de los horarios de dichas universidades es sorprendente que muchas notengan alguna forma de automatizacioacuten Esto se debe en la mayoriacutea de los casos a quelos horarios no cambian significativamente de un antildeo a otro Sin embargo de lasuniversidades que no programan horarios por computadora la mitad usa el horario delantildeo pasado y la otra mitad empiezan desde cero cada vez Cuando no se usa el horariodel antildeo pasado generalmente toma 4 semanas elaborar uno nuevo En la mayoriacutea de loscasos donde se usa la computadora generalmente no se toma en cuenta el horario delantildeo anterior

Causas de cambio de los horarios antildeo tras antildeo

Para que un horario pueda ser usado antildeo tras antildeo debe ser lo suficientemente robustopara que los cambios que ocurran en los datos de entrada produzcan soacutelo una pequentildeaalteracioacuten o modificacioacuten en el condensado final de horarios El uso del condensado delantildeo pasado depende en la cantidad de cambios que deben hacerse y esto a su vezdepende de cuanto cambie la cantidad de grupos que deben ofertarse para cadaasignatura y esto depende de la cantidad de alumnos que pueden cursar una asignaturaahora bien la cantidad de alumnos estaacute en funcioacuten de los iacutendices de aprobacioacuten yreprobacioacuten del periodo de los alumnos que por alguna razoacuten no cursaron unaasignatura y de la cantidad de grupos ofertados el periodo pasado

Si cambia la cantidad de horas frente a grupo asignada a un departamento entoncescambiaraacute el condensado de horarios con respecto al del antildeo pasado porque eso afectadirectamente en la cantidad de cursos que podraacute ofertarse este periodo este es uno de losrecursos maacutes variables que influyen para hacer cambios en los condensados antildeo trasantildeo

La redistribucioacuten de aulas y laboratorios (que no se realiza a menudo) llega tambieacuten ainfluir en los cambios

El cambio de horario matutino a vespertino (o viceversa) solicitado por un catedraacuteticoque es el especialista en impartir cierto curso ocasiona los cambios del condensado dehorarios del antildeo anterior al nuevo

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

CAPIacuteTULO 3

TEacuteCNICAS DE INTELIGENCIA ARTIFICIAL UTILIZADASPARA LA GENERACIOacuteN DE HORARIOS

31 Sistemas Expertos (SE)Bajo el teacutermino de Sistemas Expertos se entiende un nuevo tipo de software que imita elcomportamiento de un experto humano en la solucioacuten de un problema Un SE puedealmacenar conocimientos de expertos para un campo determinado y solucionar unproblema mediante razonamiento loacutegico de conclusiones

Los Sistemas Expertos son sistemas que buscan modelar el conocimiento yprocedimientos usados por un experto humano para resolver un problemadeterminado[Saacutenchez 1999]

iquestUn Sistema Experto utiliza teacutecnicas de la Inteligencia Artificial (IA)

Los Sistemas Expertos son uno de los puntos que componen las investigaciones en elcampo de la IA Un sistema de computadoras que trabaje con teacutecnicas de IA deberaacuteestar en situacioacuten de combinar informacioacuten de forma ldquointeligenterdquo alcanzarconclusiones y justificarlas (al igual que el resultado final) Los Sistemas Expertos sonuna expresioacuten de los sistemas basados en el conocimiento Con la aplicacioacuten de teacutecnicasde Inteligencia Artificial finaliza la transicioacuten del procesamiento de datos alprocesamiento de conocimientos

Un Sistema Experto es un sistema informaacutetico que simula el proceso de aprendizaje dememorizacioacuten de razonamiento de comunicacioacuten y de accioacuten de un experto humano enuna determinada rama o dominio Estas caracteriacutesticas le permiten almacenar datos yconocimiento sacar conclusiones loacutegicas tomar decisiones aprender de la experiencia ylos datos existentes comunicarse con humanos explicar el porqueacute de las decisionestomadas y realizar acciones como consecuencia de todo lo anterior

La incorporacioacuten dentro de un sistema de computadoras de un componente basado enel conocimiento correspondiente a una habilidad experta de tal forma que el sistemapueda ofrecer asesoramiento inteligente o tomar una decisioacuten inteligente sobre unafuncioacuten del proceso Una caracteriacutestica adicional deseable que muchos consideranfundamental es la capacidad del sistema si se le solicita de justificar su propia liacutenea derazonamiento de un modo directamente inteligible para el interrogador El estiloadoptado para alcanzar estas caracteriacutesticas es la programacioacuten basada en reglas[Waterman 1986]

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

311 Funcioacuten de un Sistema Experto

La funcioacuten de un Sistema Experto es aportar soluciones a problemas de un dominioespeciacutefico imitando la forma de razonamiento de los seres humanos es decir el SistemaExperto debe ser capaz de mostrar soluciones inteligentes [Giarratamo 1998]

Acceder a los conocimientos adquiridos por experiencia es lo maacutes difiacutecil ya que losexpertos al igual que otras personas apenas los reconocen como tales Son buscadoscon mucho esfuerzo y cuidado siendo descubiertos de uno en uno poco a poco

Ventajas del Sistema Experto

Experto Humano Experto ArtificialMortal PermanenteDifiacutecil de documentar Faacutecil de documentarDifiacutecil de transferir Faacutecil de transferirImpredecible ConsistenteMaacutes caro Menos caro

Ventajas del Experto Humano

Experto Humano Experto ArtificialCreativo No creativoAdaptable Requiere mantenimientoExperiencia sensorial Entrada simboacutelicaConocimiento de sentido comuacuten Conocimiento teacutecnico

312 Arquitectura de Sistemas Expertos [Gines 1986] [Giarratamo 1998]

La arquitectura general de un SE (Fig 31) estaacute compuesta fundamentalmente de

bull Base de Conocimiento Representa el conocimiento adquirido del expertohumano incluyendo experiencia sentido comuacuten e intuicioacuten

bull Motor de Inferencia Decide que se debe aplicar que se debe hacer resuelveconflictos nuevos hace uso de la base del conocimiento Proporcionamecanismos de razonamiento buacutesqueda aprendizaje etc

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

bull Interfaz Usuario Facilita la comunicacioacuten entre el Sistema Experto y el usuarioque realiza las consultas

bull Subsistema de Adquisicioacuten Mejor conocido como la Interfaz de Expertopermite ingresar el conocimiento a la Base de Conocimientos por parte delhumano experto en alguacuten dominio de conocimiento

bull Subsistema de explicaciones Permite dar a conocer los resultados obtenidospor el Sistema Experto

313 La base de conocimiento

El enfoque maacutes comuacuten para representar el dominio del conocimiento que se requierepara un SE son las reglas de produccioacuten Estas pueden ser referidas como reglasldquosituacioacuten-accioacutenrdquo o ldquoif-thenrdquo De esta forma con frecuencia una base deconocimientos estaacute fraguada principalmente de reglas las cuales son invocadas por uncasamiento de patrones con las particularidades de las tareas circunstanciales que vanapareciendo en la base de hechosLas reglas en una base de conocimientos representan el dominio de hechos y laheuriacutestica de un buen juicio de acciones a tomar cuando uno llega a situacionesespeciacuteficas La fuerza de un SE yace en el conocimiento especiacutefico del dominio delproblema Casi todos los sistemas existentes basados en reglas contienen cientos o milesde ellas y generalmente se obtienen de entrevistas con expertos durante un tiempo largoEn cualquier SE las reglas se conectan una a otra por ligas de asociacioacuten para formar

Base de

Motor de

Subsistema deadquisicioacuten

del

Subsistemade

explicacione

Interfazde

usuario

Ingeniero delconocimiento y experto Usuario

Base de hechos

Figura 31 Arquitectura de un Sistema Experto

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

redes de reglas Una vez que han sido ensambladas tales redes entonces se tiene unarepresentacioacuten de un cuerpo de conocimientos que es sustancial

Generalmente un experto tiene muchas reglas de criterio empiacutericas por lo que el soportesuele ser incompleto para la evidencia que se dispone En tales casos una teacutecnica es la devincular valores numeacutericos a cada regla para indicar el grado de certidumbre que eacutestatiene En la operacioacuten de SE los valores de certidumbre se combinan unos a otros atraveacutes de la red considerando tambieacuten la certidumbre de los datos de entrada delproblema para llegar finalmente a un valor de certidumbre de la solucioacuten final

314 El motor de inferencias

El sistema experto modela el proceso de razonamiento humano con un moacutedulo conocidocomo el motor de inferencia Dicho motor de inferencia trabaja con la informacioacutencontenida en la base de conocimientos y la base de hechos para deducir nuevos hechosContrasta los hechos particulares de la base de hechos con el conocimiento contenido enla base de conocimientos para obtener conclusiones acerca del problemaEl modelo de problema - solucioacuten y sus meacutetodos organizan y controlan las etapas que sevan tomando para la resolucioacuten de problemas Un modelo muy poderoso y comuacuten es elde encadenar las reglas `` if-then-else con el fin de formar alguna liacutenea derazonamiento Si el encadenamiento se inicia a partir de un conjunto de condiciones y semueve hacia alguna conclusioacuten el meacutetodo se llama encadenamiento hacia adelante y ensu caso contrario el encadenamiento es hacia atraacutes

Un problema de encadenamiento hacia adelante sin una apropiada heuriacutestica de podaderivaraacute muchas soluciones de las cuales no todas son necesarias En el caso deencadenamiento hacia atraacutes es necesario tambieacuten trabajar con una heuriacutestica apropiadacon la finalidad de poder manejar submetas conjuntivas En general para atacar elproblema de conjuncioacuten es necesario encontrar un caso en donde todas las submetasinteractuantes se satisfagan Pero con frecuencia una buacutesqueda de tal naturaleza nos dauna explosioacuten combinatoria de posibilidades Es por esta razoacuten que el dominioapropiado de la heuriacutestica y su esquema inferencial deberaacuten ser encontrados para cadatipo de problemas para que de esta manera se tenga un SE eficaz y eficiente

315 iquestPor queacute utilizar un Sistema Experto [Pluss 1999] [Sanchez 1999]

1 Con la ayuda de un Sistema Experto personas con poca experiencia pueden resolverproblemas que requieren un conocimiento formal especializado

2 Los Sistemas Expertos pueden obtener conclusiones y resolver problemas de formamaacutes raacutepida que los expertos humanos

3 Los Sistemas Expertos razonan pero basaacutendose en un conocimiento adquirido y notienen sitio para la subjetividad

Capiacutetulo 2 Marco teoacuterico

4 El uso de Sistemas Expertos es especialmente recomendado en las siguientessituaciones

bull Cuando los expertos humanos en una determinada materia son escasos

bull En situaciones complejas donde la subjetividad humana puede llevar aconclusiones erroacuteneas

bull Cuando es muy elevado el volumen de datos que ha de considerarse paraobtener una conclusioacuten

316 Construccioacuten de prototipos [Turban 1995]

En el desarrollo de Sistemas Expertos se plantean dos importantes riesgos

1- No existen implementaciones similares que puedan servir de orientacioacuten al encargadodel desarrollo en la casi totalidad de los casos

2- En muchos puntos los requisitos necesarios estaacuten esbozados con muy poca precisioacuten

El disentildeo y la especificacioacuten requieren una temprana determinacioacuten de la interfaz delsoftware y de la funcionalidad de los componentes En el desarrollo de SistemasExpertos deben alterarse a menudo durante y tambieacuten despueacutes de su implementacioacuten yaque los requisitos se han ido configurando y han obtenido mayor precisioacuten o porque seha descubierto que deben iniciarse otras viacuteas de solucioacuten Durante el desarrollo resultamaacutes apropiado empezar con implementaciones tipo test para encontrar el camino haciauna solucioacuten definitiva y para hacerlas coincidir con las necesidades del usuario

32 Algoritmos Geneacuteticos

321 Antecedentes [Medina 2004] [Goldberg 1989] [Davis 1991]

El Algoritmo Geneacutetico es una teacutecnica de buacutesqueda basada en la teoriacutea de la evolucioacutende Darwin que ha cobrado tremenda popularidad en todo el mundo durante los uacuteltimosantildeos

Esta teacutecnica se basa en los mecanismos de seleccioacuten que utiliza la naturaleza de acuerdoa los cuales los individuos maacutes aptos de una poblacioacuten son los que sobreviven al

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

adaptarse maacutes faacutecilmente a los cambios que se producen en su entorno Hoy en diacutea sesabe que estos cambios se efectuacutean en los genes de un individuo (unidad baacutesica decodificacioacuten de cada uno de los atributos de un ser vivo) y que sus atributos maacutesdeseables se transmiten a sus descendientes cuando eacuteste se reproduce sexualmente

En 1859 Darwin publica su libro laquoEl origen de las especiesraquo El libro causoacute una granpoleacutemica en el mundo cientiacutefico por las revolucionarias teoriacuteas en eacutel contenidas que lasespecies evolucionan acorde al medio para adaptarse a eacuteste Con ello el universopasaba de ser una creacioacuten de Dios estaacutetica y perfecta desde su inicio a un conjunto deindividuos en constante competicioacuten y evolucioacuten para poder perpetuar su especie en eltiempo La existencia de una especie pasa asiacute a ser algo dinaacutemico las especies se creanevolucionan y desaparecen si no se adaptan Para cada especie animal la naturalezaproponiacutea un crudo filtro soacutelo los mejores los maacutes aptos los que mejor se adapten almedio conseguiacutean sobrevivir lo suficiente para llegar a la madurez y encontrar unapareja para perpetuar sus aptitudes que le haciacutean maacutes apto

La informaacutetica ve aquiacute un claro proceso de optimizacioacuten Se toman los individuos mejoradaptados (mejores soluciones temporales) se cruzan (se mezclan ) generando nuevosindividuos (nuevas soluciones) que contendraacuten parte del coacutedigo geneacutetico (informacioacuten)de sus dos antecesores y por lo tanto aunque el nuevo individuo no tenga que estarforzosamente mejor adaptado de hecho puede que ni la probabilidad de que el nuevoindividuo generado esteacute mejor adaptado que los padres sea alta el promedio de laadaptacioacuten de toda la poblacioacuten si mejora ya que tienden a perpetuarse y extenderse lasmejores caracteriacutesticas y a extinguirse las poco beneficiosas o perjudiciales En losAlgoritmos Geneacuteticos se crea una nueva abstraccioacuten -la poblacioacuten- cuya funcioacuten decoste mejoraraacute globalmente por lo que puede que se encuentre alguacuten individuo conmejores caracteriacutesticas

Un investigador de la Universidad de Michigan llamado John Holland era consciente dela importancia de la seleccioacuten natural y a fines de los antildeos 60 desarrolloacute una teacutecnica quepermitioacute incorporarla a un programa Su objetivo era lograr que las computadorasaprendieran por siacute mismas A la teacutecnica que inventoacute Holland se le llamoacute originalmentePlanes Reproductivos pero se hizo popular bajo el nombre Algoritmo Geneacutetico trasla publicacioacuten de su libro en 1975

En esa universidad Holland impartiacutea un curso titulado Teoriacutea de sistemas adaptativosDentro de este curso y con una participacioacuten activa por parte de sus estudiantes fuedonde se crearon las ideas que maacutes tarde se convertiriacutean en los Algoritmos GeneacuteticosLos objetivos de su investigacioacuten fueron dos

Imitar los procesos adaptativos de los sistemas naturales y Disentildear sistemas artificiales (normalmente programas) que retengan los mecanismos

importantes de los sistemas naturales

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

Unos 15 antildeos maacutes adelante David Goldberg actual delfiacuten de los Algoritmos Geneacuteticosconocioacute a Holland y se convirtioacute en su estudiante Golberg era un ingeniero industrialtrabajando en disentildeo de tuberiacuteas y fue uno de los primeros que tratoacute de aplicar losAlgoritmos Geneacuteticos a problemas industriales Aunque Holland tratoacute de disuadirleporque pensaba que el problema era excesivamente complejo Goldberg consiguioacute loque queriacutea escribiendo un Algoritmo Geneacutetico en una computadora personal Apple IIEstas y otras aplicaciones creadas por estudiantes de Holland convirtieron a losAlgoritmos Geneacuteticos en un campo con base suficiente como para celebrar la primeraconferencia en 1985 ICGAacute85 Tal conferencia se sigue celebrando bianualmente[Beasley 1993]

Una definicioacuten bastante completa de un Algoritmo Geneacutetico es la propuesta por JohnKoza es un algoritmo matemaacutetico altamente paralelo que transforma un conjunto deobjetos matemaacuteticos individuales con respecto al tiempo usando operaciones modeladasde acuerdo al principio Darwiniano de reproduccioacuten y supervivencia del maacutes apto y trashaberse presentado de forma natural una serie de operaciones geneacuteticas de entre las quedestaca la recombinacioacuten sexual Cada uno de estos objetos matemaacuteticos suele ser unacadena de caracteres (letras o nuacutemeros) de longitud fija que se ajusta al modelo de lascadenas de cromosomas y se les asocia con una cierta funcioacuten matemaacutetica que refleja suaptitud [Koza 1992] 322 Definicioacuten de AG

Los Algoritmos Geneacuteticos (AG) son meacutetodos adaptativos que pueden usarse pararesolver problemas de buacutesqueda y optimizacioacuten Estaacuten basados en el proceso geneacutetico delos organismos vivos A lo largo de las generaciones las poblaciones evolucionan en lanaturaleza de acorde con los principios de la seleccioacuten natural y la supervivencia de losmaacutes fuertes postulados por Darwin Por imitacioacuten de este proceso los AlgoritmosGeneacuteticos son capaces de ir creando soluciones para problemas del mundo real Laevolucioacuten de dichas soluciones hacia valores oacuteptimos del problema depende en buenamedida de una adecuada codificacioacuten de las mismas [Goldberg 1989]

Un Algoritmo Geneacutetico consiste en una funcioacuten matemaacutetica que toma como entradas alos ejemplares y retorna como salidas cuaacuteles de ellos deben generar descendencia para lanueva generacioacuten

Los Algoritmos Geneacuteticos presentan ventajas sobre otros algoritmos que los hacenpreferibles para determinado tipo de aplicaciones Algunas de las caracteriacutesticas de losAlgoritmos Geneacuteticos son

bull Son algoritmos estocaacutesticos Dos ejecuciones distintas pueden dar dos solucionesdistintas Esto es uacutetil por el hecho de que hay gran cantidad de isoacutemeros que

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

corresponden a soluciones vaacutelidas por lo que es interesante que distintas ejecucionespuedan dar isoacutemeros distintos

bull Son algoritmos de buacutesqueda muacuteltiple luego dan varias soluciones Aunquehabitualmente la energiacutea de los individuos de la poblacioacuten final es similar losindividuos suelen ser distintos entre si Con el modelo de paralelizacioacuten empleado -geneacutetico multipoblacional- la probabilidad de obtener muchas soluciones distintas esmaacutes alta todaviacutea

bull Son los algoritmos que hacen una barrida mayor al subespacio de posiblessoluciones vaacutelidas De hecho se considera que de todos los algoritmos deoptimizacioacuten estocaacutesticos los Algoritmos Geneacuteticos son de los maacutes exploratoriosdisponibles

323 Ventajas y Desventajas [Bull 1993]

bull No necesitan conocimientos especiacuteficos sobre el problema que intentan resolverbull Operan de forma simultaacutenea con varias soluciones en vez de trabajar de forma

secuencial como las teacutecnicas tradicionalesbull Cuando se usan para problemas de optimizacioacuten de una funcioacuten objetivo- resultan

menos afectados por los oacuteptimos locales (falsas soluciones) que las teacutecnicastradicionales

bull Usan operadores probabiliacutesticos en vez de los tiacutepicos operadores determiniacutesticos delas otras teacutecnicas

bull La mayoriacutea de las otras teacutecnicas de optimizacioacuten son tambieacuten estocaacutesticasbull Pueden tardar mucho en converger o no converger en absoluto dependiendo en

cierta medida de los paraacutemetros que se utilicen tamantildeo de la poblacioacuten nuacutemero degeneraciones etc-

bull Pueden converger prematuramente debido a una serie de problemas de diversaiacutendole

324 iquestCoacutemo saber si es posible usar un Algoritmo Geneacutetico

La aplicacioacuten maacutes comuacuten de los Algoritmos Geneacuteticos ha sido la solucioacuten de problemasde optimizacioacuten en donde han mostrado ser muy eficientes y confiables Sin embargono todos los problemas pudieran ser apropiados para la teacutecnica y se recomienda engeneral tomar en cuenta las siguientes caracteriacutesticas del mismo antes de intentar usarlabull Su espacio de buacutesqueda (ie sus posibles soluciones) debe estar delimitado dentro

de un cierto rangobull Debe poderse definir una funcioacuten de aptitud que indique que tan buena o mala es

una cierta respuestabull Las soluciones deben codificarse de una forma que resulte relativamente faacutecil de

implementar en la computadora

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

Decisiones para implementar un Algoritmo Geneacutetico [Michalewicz 1992]

Las decisiones que hay que tomar para implementar un Algoritmo Geneacutetico son

bull Criterio de codificacioacuten Coacutemo se va a almacenar la informacioacuten en el genomabull Criterio de tratamiento de individuos no factibles Coacutemo se van a tratar a los

individuos que no cumplan las restriccionesbull Criterio de inicializacioacuten Coacutemo se va a construir la poblacioacuten inicialbull Criterio de parada Determina cuaacutendo el algoritmo ha llegado a una solucioacuten

aceptablebull Funcioacuten de adaptacioacuten Corresponde a la funcioacuten de costo de la investigacioacuten

operativa tradicionalbull Operadores geneacuteticos Se emplean para determinar coacutemo va a ser la nueva

generacioacuten Baacutesicamente son los operadores de cruce y mutacioacuten aunque pueden serempleados otros adicionales -muerte aborto envejecimiento- Tanto cruce comomutacioacuten pueden ser realizados de muchas formas distintas

bull Criterios de reemplazo Los criterios que determinan quieacutenes se van a cruzar Notienen que ser obligatoriamente los mismos que los criterios de seleccioacuten de lospadres

bull Paraacutemetros de funcionamiento Determinados paraacutemetros que sin poder serenglobados en ninguno de los anteriores son fundamentales para el funcionamientode un Algoritmo Geneacutetico Es el caso por ejemplo del tamantildeo de la poblacioacuten laprobabilidad de la aplicacioacuten de los operadores geneacuteticos etc

325 Paraacutemetros que deben ser especificados en el programa

Nordm de generaciones cantidad de veces que se produce una nueva generacioacuten deindividuos utilizando las reglas anteriormente explicadas Por loacutegica cuantas maacutesgeneraciones se produzcan se obtendraacuten mejores individuosNordm de individuos por generacioacuten en este ejemplo la cantidad de individuos de unageneracioacuten a otra es constante no variacuteaNordm de entrenamientos cantidad de veces que se lleva a cabo un entrenamiento entrediferentes generaciones de individuos

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

Fig 32 Pseudocoacutedigo del Algoritmo Geneacutetico simple

Los Algoritmos Geneacuteticos son una poderosa herramienta de propoacutesito general deoptimizacioacuten que modela los principios de la evolucioacuten [Burke 1994]

El proceso es el siguiente

1 Una poblacioacuten random de horarios factibles es creada Cada horario es evaluado deacuerdo a una conjunto de criterios (por ejemplo el tamantildeo del horario cuantosgrupos son colocados a la misma hora y en el mismo saloacuten cuantos salones hayvaciacuteos)

2 Los horarios son seleccionados de manera aleatoria para ser las bases de la proacuteximageneracioacuten Los buenos horarios son maacutes deseables que los malos En las bases dela evaluacioacuten de estos miembros de la poblacioacuten (horarios factibles) se escogen lospadres de la proacutexima generacioacuten de horarios Evaluando numeacutericamente durante elproceso de seleccioacuten buscando los mejores horarios los peores horarios soneliminados al mismo tiempo que la buacutesqueda se dirige hacia las aacutereas maacutespromisorias del espacio de soluciones

3 El Operador Mutacioacuten se aplica generalmente a un solo miembro de la poblacioacuten einvolucra el cambio aleatorio de la hora o aula de algunos grupos despueacutesalmacena el nuevo horario siempre manteniendo un horario factible Esto agrega

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

un elemento que permite tambieacuten introducir material geneacutetico uacutetil que ha sidoperdido en otros horarios en las primeras generaciones

4 El Operador de Cruzamiento toma una pareja de horarios y los combina de algunamanera para producir uno o dos nuevos horarios esto se hace generalmente deforma aleatoria seleccionando algunos grupos de la mantildeana de un miembro de lapoblacioacuten y los algunos grupos de la tarde de otro miembro para producir un nuevohorario cualquier grupo que no pueda ser colocado de esta manera se manda alperiodo siguiente disponible

5 La nueva poblacioacuten es generada El proceso seraacute repetido hasta que una buenasolucioacuten sea generada

33 Programacioacuten Loacutegica de Restricciones (PLR)

331 Antecedentes de la PLR

La Programacioacuten Loacutegica de Restricciones (PLR) es una teacutecnica que tiene mucho encomuacuten con los algoritmos de asignacioacuten heuriacutestica Dechter describe asiacute el problemade la satisfaccioacuten de restricciones ldquoUn problema de satisfaccioacuten de restricciones (PSR)es representado por una red de restricciones consistente en un conjunto de n variablesX1 Xn con sus respectivos valores de dominio RR n y un conjunto derestricciones Una restriccioacuten Ci (Xi1Xij)es un subconjunto del producto cartesiano Ri1 x x R i1 formado por todas las tuplas de valores para un subconjunto(X i1X ij) delas variables que son compatibles unas con otrasrdquo [Detcher 1990]

Una solucioacuten de la red es una asignacioacuten de valores a todas las variables de tal formaque todas las restricciones son satisfechasrdquo Esta es una representacioacuten maacutes poderosaque el modelo de los Grafos Coloreados porque puede representar restricciones mascomplejas El problema de los grafos coloreados es equivalente a un PLR binario en lacual cada restriccioacuten soacutelo tiene dos variables

Este modelo se resuelve tratando de asignar valores a cada una de las variables encuestioacuten y entonces regresando si se encuentra en un punto muerto y quitandorestricciones si se descubre que no se puede encontrar solucioacuten El orden en el que lasvariables son seleccionadas y el orden de los valores que son asignados a las variablespuede ser alterado para tratar aumentar la velocidad de buacutesqueda

La PLR es un meacutetodo que permite el disentildeo raacutepido de prototipos de resolucioacuten deproblemas complejos Las principales aportaciones en esta liacutenea se centran en eldesarrollo de programas que incluyen conjuntos de restricciones adaptadas a unadeterminada familia de problemas asiacute como al disentildeo formal e implementacioacuten demodelos de interpretacioacuten en paralelo con el fin de mejorar la eficiencia del proceso

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

deductivo El objetivo final es disponer de sistemas de resolucioacuten implementados paraapoyar la creacioacuten de sistemas donde la explosioacuten combinatoria de los elementos de unproblema hace muy difiacutecil la buacutesqueda de una solucioacuten en un tiempo razonable [Farion1992]

En esta seccioacuten se proporciona una breve introduccioacuten de la Programacioacuten Loacutegica conRestricciones y sus aplicaciones dentro del marco general de la programacioacuten loacutegica Setrata eacuteste de un campo que ha tenido una notable expansioacuten debido a su potencialaplicacioacuten praacutectica dado que el anaacutelisis de las restricciones permite mejorarconsiderablemente la eficiencia del caacutelculo de determinadas funciones

332 Restricciones

En primer lugar se empieza por contestar la pregunta iquestQueacute es una restriccioacuten Estacuestioacuten se puede responder tan brevemente como escribe Roman Bartak[1998]Una restriccioacuten es simplemente una relacioacuten loacutegica entre varias variablesdesconocidas tomando cada una un valor dentro de un dominio determinado (peA+B=C-el circulo estaacute dentro del cuadrado- etc)Asiacute las restricciones aparecen de forma natural en todos los campos del conocimientohumano La suma de los aacutengulos de un triaacutengulo es 180 grados es un ejemplo derestriccioacuten que aparece en el mundo real De hecho las restricciones son el medionatural en el que las personas expresamos los problemas en todas las aacutereas

Con la explicacioacuten dada se ve de forma natural que las restricciones gozan de variaspropiedades interesantes

bull las restricciones pueden especificar informacioacuten parcial es decir en lasrestricciones no hace falta que se den de forma uacutenica los valores de sus variables

bull las variables son no direccionales es decir en una restriccioacuten tiacutepica sobre dosvariables (XY) se puede inferir una restriccioacuten sobre X dada una restriccioacutensobre Y y viceversa

bull las restricciones son declarativas es decir se puede especificar que relacioacutendeben mantener sin especificar el procedimiento computacional que implementeesa relacioacuten

bull las restricciones son aditivas es decir el orden de imposicioacuten de las restriccionesno importa todo lo que importa al fin y al cabo es la conjuncioacuten de restriccionesy su efecto

bull las restricciones no suelen ser independientes normalmente restricciones dentrodel conjunto total de restricciones comparte variables

Asiacute siguiendo esta idea el objetivo de la Programacioacuten Loacutegica con Restricciones essustituir el proceso de unificacioacuten por la resolucioacuten de restricciones sobre un dominio

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

particular de intereacutes Con esta visioacuten se considera que el procesador de restriccionesdebe encargarse de comprobar la consistencia del conjunto de restricciones y dentro delo posible reducirlo a alguna forma normal

Seguacuten Elmohamed [Elmohamed 1998] las restricciones pueden ser divididas en trestipos fuertes medias y suaves

Restricciones fuertes Son todas aquellas que deben ser cumplidas obligatoriamente elcosto de no cumplir estas restricciones es sumamente alto y por lo tanto en un horariofactible su costo asociado por incumplimiento debe ser cero Por ejemplo (en unproblema real se pueden encontrar de 10 a 15 restricciones fuertes)

bull Dos o maacutes clases impartidas por un profesor no se pueden programar a lamisma hora

bull Una clase teoacuterica y su laboratorio no se pueden programar a la misma hora en elmismo diacutea

bull Una clase no se puede programar en un aula a menos que su capacidad seamayor al nuacutemero de alumnos inscritos

Restricciones medias Estas restricciones no se refieren a conflictos de tiempo perotienen asociado un alto costo a ellas sin embargo este costo no es tan alto como el de lasrestricciones fuertes En el condensado de horarios final el costo de estas restriccioneses minimizado y es deseable reducirlo a cero Por ejemplo (en un problema real sepueden tener entre 20 y 25 restricciones medias)

bull Para cada estudiante el balancear las secciones LunMieVie y MarJuebull Balancear o distribuir y equilibrar las horas de clase en la semanabull Las clases pueden requerir periodos de tiempo contiguosbull Las clases se pueden agrupar con otras clases formando paquetesbull Los horarios particulares deben tener la menor cantidad de ldquohoyosrdquo posible esto

es que las clases deben ser consecutivas unas despueacutes de otras

Restricciones suaves Estas restricciones no tienen nada que ver con conflictos detiempo y tienen un bajo costo asociado a ellas Tambieacuten en el condensado de horariosfinal este costo es minimizado pero no necesariamente debe ser cero Por ejemplo (sepueden tener entre 30 y 40 restricciones suaves)

bull Balancear la inscripcioacuten en cursos de varios paquetesbull Especificar la hora de comida y otros periodos de descansobull Los catedraacuteticos pueden requerir periodos de tiempo sin clasebull No inscribir alumnos-atletas en cursos que tengan conflicto con sus horas de

praacutectica deportiva etc

333 Sistemas con RestriccionesUna manera maacutes formal de definir las restricciones es considerarlas como una foacutermulade primer orden interpretada en una estructura para asiacute tener en cuenta la semaacutenticaparticular del sistema de restricciones Esta semaacutentica declarativa es adecuada cuando

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

existe a priori una estructura que se adecua al sistema de restricciones (pe Los realespara las restricciones aritmeacuteticas) pero esto no funciona demasiado bien para lossistemas de restricciones maacutes praacutecticos (pe Dominios finitos) Obviamente no se puededireccionar ninguacuten caacutelculo operacional relacionado con el propio procesador de lasrestricciones [Elmohamed 2001]

334 Referencia Histoacuterica de las RestriccionesLas restricciones como un aacuterea de trabajo que combina investigacioacuten de un gran nuacutemerode campos incluyendo Inteligencia Artificial Lenguajes de Programacioacuten CaacutelculoSimboacutelico y Loacutegica Computacional Las restricciones sobre redes y los problemas desatisfabilidad con restricciones empezaron a estudiarse por los investigadores deInteligencia Artificial en los antildeos 70

La programacioacuten con restricciones ha sido aplicada con notable eacutexito en numerososcampos Los trabajos en esta aacuterea se remontan a la investigacioacuten de InteligenciaArtificial y Representacioacuten Graacutefica por Computadora por los antildeos 60 y 70 En la uacuteltimadeacutecada sin embargo ha empezado a darse una mayor conciencia de que las restriccionesproporcionan las bases para un potente acercamiento a la programacioacuten modelado yresolucioacuten de problemas y que los diferentes esfuerzos por explotar estas ideas puedenser unidos bajo el mismo prisma conceptual y praacutectico la programacioacuten conrestricciones

Entre los dominios tratados por los sistemas de Programacioacuten Loacutegica con Restriccioneslos que maacutes ampliamente son investigados son sin duda los dominios finitos losnuacutemeros reales y racionales con restricciones aritmeacuteticas y los booleanos De hecho 3de los principales lenguajes de Programacioacuten Loacutegica con Restricciones son un claroejemplo de esta tendencia CHIP que proporciona restricciones sobre dominios finitosracionales y booleanos PrologIII que incluye racionales booleanos y listas y PLR(R)que maneja restricciones sobre reales

En la actualidad se pueden observar dos ramas principales en los avances en laprogramacioacuten con restricciones que parten de diferente base y por tanto usan diferentemetodologiacutea para resolver las restricciones Estas dos ramas son

bull Satisfaccioacuten de Restriccionesbull Resolucioacuten de Restricciones

335 Satisfaccioacuten de RestriccionesLa satisfaccioacuten de restricciones parte de los avances en Inteligencia Artificial (problemascombinatorios) y los Graacuteficos por computadora (sistema de SKETCHPAD[1963]expresando coherencia geomeacutetrica en el caso de anaacutelisis de escenas)

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

336 Resolucioacuten de RestriccionesLa resolucioacuten de restricciones difiere de la satisfaccioacuten de restricciones porque usavariables con dominios infinitos Ademaacutes las restricciones individuales son maacutescomplicadas por ejemplo ecuaciones no lineales En consecuencia los algoritmos deresolucioacuten de restricciones usan meacutetodos algebraicos y numeacutericos en vez decombinaciones y buacutesqueda Sin embargo existe metodologiacutea para discretizar losdominios infinitos en un nuacutemero finito de componentes y entonces se aplican lasteacutecnicas de Satisfaccioacuten de Restricciones

La programacioacuten con restricciones ha sido aplicada con eacutexito en numerosos campos Lasaplicaciones recientes incluyen [Detcher 1990]

bull Graacuteficos por Computadorabull Procesamiento del Lenguaje Natural (construccioacuten de analizadores eficientes)bull Sistemas de Bases de Datos (para reforzar yo mantener la consistencia de los

datosbull Problemas de Investigacioacuten Operativa (como la optimizacioacuten de problemas)bull Biologiacutea Molecular (secuenciacioacuten de ADN)bull Aplicaciones de Empresabull Ingenieriacutea Eleacutectrica (localizacioacuten de fallos)bull Disentildeo de Circuitos (para computar configuraciones)bull Planificacioacuten y organizacioacutenbull Configuracioacutenbull Juegosbull Configuracioacuten de horariosbull Criptoaritmeacuteticabull Coloreado de Grafosbull Razonamiento de hipoacutetesis quiacutemicas

En esta seccioacuten se va a dedicar una parte a cada una las aplicaciones maacutes estudiadas

337 Organizacioacuten de Proyectos

El problema de la Organizacioacuten es el proceso de asignar actividades a recursos en eltiempo En el caso general de organizacioacuten es un proceso de tomar decisiones donde sepueden tomar dos tipos de decisiones

bull Decisiones de situar temporalmente Cuaacutendo deberiacutea empezar cada actividadbull Decisiones de asignacioacuten de recursos Con queacute recursos deberiacutea ejecutarse cada

actividad

Los problemas de organizacioacuten y de asignacioacuten de recursos estaacuten basados enrestricciones Diferentes restricciones pueden afectar a la organizacioacuten la duracioacuten de

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

una actividad las fechas de contrato restricciones precedentes tiempos de transferenciao de inicio de la actividad la capacidad de los recursos y el reparto de recursos

La relajacioacuten de las restricciones principales caracteriza la calidad de los problemas deorganizacioacuten Estas restricciones son las relacionadas con fechas de entregaproductividad periodicidad de los cambios de herramientas niveles de inventariomargen de tiempo etc Algunas de estas restricciones pueden ser combinadas en lafuncioacuten de evaluacioacuten para la optimizacioacuten

Las aplicaciones industriales de las teacutecnicas de resolucioacuten de restricciones a losproblemas del tipo de asignacioacuten de tareas incluye[Detcher 1990]

bull Organizacioacuten de la produccioacutenbull Organizacioacuten y planificacioacuten del transporte y la logiacutesticabull Administracioacuten del traacuteficobull Disentildeo de horarios de recursos y de hombresbull Asignacioacuten de plantilla incluyendo aplicaciones de ingenieriacutea de organizacioacutenbull Problemas de empaquebull Configuracioacuten de maacutequinas

Claramente hay muchos problemas relacionados en el aacuterea de la organizacioacuten en lapraacutectica para los sistemas comerciales e industriales reales los liacutemites entre unos y otrosno estaacuten claros Es difiacutecil encontrar alguacuten problema real que se ajuste a un modelopreconcebido sin tener que descartar partes del problema y aproximar otras asiacute que hayque tomar estos modelos con amplio margen de aproximacioacuten

Otra complicacioacuten es el tema de la optimizacioacuten En algunos casos el usuario estaacutesatisfecho soacutelo con tener una manera automaacutetica de tener la respuesta pero la mayoriacuteaquieren tener al menos una buena respuesta y algunos el mejor resultado posible Perodebido a la gran complejidad combinatoria de la mayoriacutea de los problemas reales deorganizacioacuten una optimizacioacuten real es muy difiacutecil asiacute que en la mayoriacutea de los casos seusa la programacioacuten con restricciones en combinacioacuten con otras teacutecnicas tales comoAlgoritmos Geneacuteticos para dar soluciones casi oacuteptimas en un tiempo razonable

Normalmente los problemas de organizacioacuten se presentan usando variables conrestricciones fuertes y restricciones suaves Estas pueden ser agrupadas en la abstraccioacutendel problema de organizacioacuten Asiacute tiacutepicamente el tiempo de comienzo y fin y laduracioacuten de cada actividad se representan por variables con restricciones Los dominiosde estas variables son el rango de tiempo de intereacutes en la organizacioacuten requerida

Capiacutetulo 4 Anaacutelisis y Disentildeo

CAPIacuteTULO 4

ANAacuteLISIS Y DISENtildeO

41 Recopilacioacuten de informacioacuten

bull Documentos recopilados

bull Cataacutelogo de asignaturas prerrequisitos y semestrebull Cataacutelogo de aulas y su capacidadbull Cataacutelogo de catedraacuteticos horas disponiblesbull Mapa reticular de la carrerabull Reporte de grupos abiertos en periodo actualbull Reporte de alumnos por grupo en periodo actualbull Reporte de alumnos no inscritos por materia y semestrebull Reporte de simulacioacuten (si todos aprobaran sus cursos)bull Reporte del iacutendice de reprobacioacuten del semestre anteriorbull Encuesta aplicada para determinar los conocimientos requeridos

para impartir una materiabull Encuesta aplicada para obtener los conocimientos de cada

catedraacuteticobull Aacuterbol de conocimiento realizado para determinar los grupos por

abrir de cada asignaturabull Aacuterbol de conocimiento del perfil de las asignaturasbull Aacuterbol de conocimiento del perfil de los catedraacuteticosbull Aacuterbol de conocimiento de los criterios de apertura de materia

bull El proceso de la elaboracioacuten de los horarios

1 Elaboracioacuten de los reportes estadiacutesticos del periodo actual(grupos abiertos alumnos por grupo alumnos no inscritos pormateria simulacioacuten iacutendice de reprobacioacuten)

2 Caacutelculo de la estimacioacuten de alumnos por materia del proacuteximoperiodo

3 Caacutelculo del nuacutemero de grupos por materia requeridos para elproacuteximo periodo

4 Ajuste de los grupos por materia requeridos para el proacuteximoperiodo

5 Formacioacuten de los grupos en paquetes por semestre6 Asignacioacuten de hora y aula a los grupos

Capiacutetulo 4 Anaacutelisis y Disentildeo

7 Seleccioacuten de catedraacutetico al grupo y viceversa8 Ajustes en hora aula y catedraacutetico por grupo9 Elaboracioacuten del reporte condensado para publicacioacuten de horarios10 Elaboracioacuten de los reportes de grupos sin maestro maestros con

horas disponibles grupos sin aula

Para elaborar los horarios de los grupos y maestros un semestre determinado se tienenen consideracioacuten los siguientes elementos

bull El estadiacutestico de Servicios Escolares (SE)El departamento de SE cuenta con un sistema que registra todo el historial acadeacutemicode los alumnos inscritos en el ITZ las materias cursadas y sus calificaciones lasdiferentes carreras con su retiacutecula de asignaturas y sus prerrequisitos los grupos delsemestre actual la cantidad de alumnos en cada grupo de una asignatura los iacutendicesde reprobacioacuten de semestres anteriores las materias que puede cursar un alumno elproacuteximo semestre etceacutetera Toda esta informacioacuten plasmada en reportesdiferentes es la base para la generacioacuten de los horarios del proacuteximo semestre

bull Los grupos requeridosSobre la base de operaciones aplicadas a la informacioacuten estadiacutestica se obtiene lacantidad de grupos requeridos para abrirse el proacuteximo semestre este nuacutemero degrupos es la cantidad oacuteptima con la que se podraacuten inscribir los alumnos sin tenerproblemas de falta de espacio el alterar disminuyendo o aumentando el nuacutemero degrupos requeridos puede ocasionar alumnos con carga crediticia menor a lareglamentaria o que existan grupos con menos de 10 alumnos respectivamente

bull Las aulasEl ITZ cuenta con 52 aulas repartidas entre las 8 carreras a cada coordinador decarrera se le asigna determinado numero de aulas para su administracioacuten asiacute que alasignar el aula a cada grupo debe cuidar la correcta distribucioacuten de los grupos en loshorarios correspondientes y que la capacidad de las aulas no rebase el numero dealumnos inscritos

bull Los maestros y departamentosCada departamento esta formado por un jefe y los catedraacuteticos que forman laacademia de cada carrera los profesores pueden ser de tiempo completo frac34 y frac12tiempo o profesores de asignatura cada uno tiene un horario predeterminado en turnomatutino o vespertino los catedraacuteticos de un departamento cubren las asignaturas desu carrera y apoyan a otras carreras a cubrir las materias que tienen el perfil de esaacademia los catedraacuteticos son uno de los recursos mas difiacuteciles de controlar

Restricciones propias de los profesores

o Materia no tiene maestro

o Maestro tiene horas disponibles

Capiacutetulo 4 Anaacutelisis y Disentildeo

o Maestro tiene materias preferencia

o Maestro ha impartido materia

o Maestro solicita materia

o Maestro tiene restricciones de nuacutemero de materias a impartir

o Restriccioacuten no pueden darse maacutes de tres materias diferentes

o Maestro tiene una profesioacuten

o Maestro tiene un perfil

o Maestro tiene un aacuterea definida

o Maestro prefiere materias especialidad

o Maestro prefiere materias semestres iniciales

bull Las materias o asignaturasEn cada carrera se tiene un mapa reticular que tiene las materias de cada semestre elnombre los creacuteditos las horas de teoriacutea y praacutectica las ligas con los prerrequisitos lasmaterias de la especialidad seleccionada etc

Restricciones propias de las asignaturas

o Materia de 1deg semestre

o Materia de 2deg semestre

o Materia de 3deg semestre

o Materia de 4deg semestre

o Materia de 5deg semestre

o Materia de 6deg semestre

o Materia de 7deg semestre

o Materia de 8deg semestre

o Materia de 9deg semestre

o Materia de especialidad

o Materia tiene prerrequisito

o Materia es de baacutesicas

o Materia requiere conocimientos de Base de Datos

o Materia requiere conocimientos de Electroacutenica

o Materia la puede impartir cualquier maestro

Capiacutetulo 4 Anaacutelisis y Disentildeo

o Materia requiere conocimientos de Redes

o Materia requiere ser impartida por ingeniero

o Materia tiene complejidad alta

o Materia debe ser impartida por catedraacutetico con grado de maestriacutea

o Materia requiere conocimientos de Arquitectura de Computadoras

o Materia no tiene cadenas

o Materia de Administracioacuten

o Materia de Ingenieriacutea Industrial

o Materia requiere conocimientos de Aacutelgebra

o Materia requiere conocimientos de Caacutelculo Diferencial e Integral

o Materia requiere conocimientos de Quiacutemica Inorgaacutenica y Orgaacutenica

o Materia requiere una elaboracioacuten de proyectos

bull Las carrerasLas 8 carreras que se imparten en el ITZ son ordenadas por nuacutemero de alumnos

1 Ingenieriacutea en Sistemas Computacionales2 Licenciatura en Informaacutetica3 Licenciatura en Administracioacuten4 Ingenieriacutea Civil5 Ingenieriacutea Electromecaacutenica6 Ingenieriacutea Industrial7 Ingenieriacutea Quiacutemica8 Ingenieriacutea Bioquiacutemica

bull Los horarios de grupoUna vez determinados los grupos requeridos para el proacuteximo semestre se procede a laasignacioacuten de horario de acuerdo al nuacutemero de horas teoacuterico-praacutecticas se le asignaaula y un catedraacutetico responsable se fija tambieacuten un nuacutemero de alumnos y el tiempode laboratorio en caso de ser necesario

Capiacutetulo 4 Anaacutelisis y Disentildeo

Diagrama de flujo del proceso

Elaboracioacuten de los reportes estadiacutesticos

Caacutelculo de alumnos por materiaproacuteximo periodo

Caacutelculo del nuacutemero de grupos pormateria requeridos

Ajuste de los grupos por materiarequeridos

Formacioacuten de los grupos en paquetespor semestre

Asignacioacuten de hora y aula a los grupos

Asignacioacuten de catedraacutetico al grupo

Ajustes en hora aula y catedraacutetico porgrupo

Elaboracioacuten del reporte condensado

Elaboracioacuten de reportes varios

Todo cuadrabien

Si

No

Fin

Inicio

Capiacutetulo 4 Anaacutelisis y Disentildeo

42 Anaacutelisis de la informacioacuten

bull Cataacutelogo de asignaturas prerrequisitos y semestre

Funcioacuten Dar a conocer las asignaturas de una carrera los prerrequisitos de las materiasy el semestre al que pertenece una asignatura los creacuteditos miacutenimos que debe tenerun alumno para cursar la asignatura

Origen Reporte emitido por el departamento de Servicios Escolares

Campos del reporte nombre carrera nombre asignaturas creacuteditos miacutenimos materiasprerrequisito semestre al que pertenece la asignatura

bull Cataacutelogo de aulas y su capacidad

Funcioacuten Dar a conocer la nomenclatura y capacidad de las aulas y laboratorios del ITZ

Origen Departamento de Planeacioacuten

Campos del reporte Nombre del edificio nuacutemero de aula capacidad

bull Cataacutelogo de catedraacuteticos horas disponibles

Funcioacuten Dar a conocer los catedraacuteticos por departamento y sus horas disponibles frentea grupo

Origen Departamentos acadeacutemicos

Campos del reporte Nombre del departamento clave de profesor nombre del profesorcantidad de horas frente a grupo que debe tener

bull Mapa reticular de la carrera

Funcioacuten Mostrar el mapa reticular de una carrera graacuteficamente muestra las asignaturaspor semestre sus requisitos foacutermula crediticia etc

Origen Divisioacuten de Estudios Profesionales

Campos del reporte Nombre y clave de la carrera nombre y clave de las asignaturasfoacutermula crediticia (nuacutemero de horas teoacutericas nuacutemero de horas praacutecticas creacuteditos dela asignatura) las materias prerrequisito de otras materias de especialidad semestrede la asignatura nuacutemero de creacuteditos necesarios para poder cursar una asignatura

Capiacutetulo 4 Anaacutelisis y Disentildeo

bull Reporte de grupos abiertos en periodo actual

Funcioacuten Muestra los cursos que son ofertados en el periodo actual

Origen Departamento de Servicios Escolares

Campos del reporte Nombre de la carrera nombre de las asignaturas grupo de loscursos cantidad de alumnos inscritos nombre del catedraacutetico que lo imparte

bull Reporte de alumnos por grupo en periodo actual

Funcioacuten Muestra la cantidad de alumnos inscritos por semestre de una carrera

Origen Departamento de Servicios Escolares

Campos del reporte Nombre de la carrera semestres del 1 al 13 nuacutemero de alumnosinscritos por semestre

bull Reporte de alumnos no inscritos por materia y semestre

Funcioacuten Muestra los alumnos que pudieron inscribirse a una materia pero que poralguna razoacuten no lo hicieron

Origen Departamento de Servicios Escolares

Campos del reporte Nombre de la carrera nombre de la materia por semestre nuacutemerode alumnos que pudieron inscribirse y no lo hicieron

bull Reporte de simulacioacuten (si todos aprobaran sus cursos)

Funcioacuten Este reporte simula que todos los alumnos inscritos en los cursos acreditan elcurso entonces cuenta cuantos estudiantes pueden cursar todas las asignaturas comosi hubieran aprobado todos sus cursos actuales

Origen Departamento de Servicios Escolares

Campos del reporte Nombre de la carrera nombre de la asignatura y por semestre elnuacutemero de alumnos que pueden cursar una materia

bull Reporte del iacutendice de reprobacioacuten del semestre anterior

Funcioacuten Dar a los coordinadores los iacutendices de aprobacioacuten y reprobacioacuten de los cursosdel periodo anterior

Capiacutetulo 4 Anaacutelisis y Disentildeo

Origen Departamento de Servicios EscolaresCampos del reporte Nombre de la carrera nombre de la asignatura total de alumnos

aprobados total de alumnos reprobados del periodo anterior

bull Encuesta de conocimientos requeridos para impartir asignatura

Funcioacuten Obtener los datos de los conocimientos que debe poseer un catedraacutetico quequiera impartir una asignatura

Origen Academia de cada departamentoCampos del reporte Nombre de la asignatura objetivo de la asignatura carrera lista de

conocimientos requeridos para impartir la asignatura carrera adecuada del profesorque imparta la asignatura

bull Encuesta de conocimientos requeridos para perfil de profesores

Funcioacuten Obtener los datos de los conocimientos que debe posee un catedraacutetico

Origen Academia de cada departamento

Campos del reporte Nombre del catedraacutetico carrera del catedraacutetico conocimientos enaacutereas particulares de cada asignatura

43 Solucioacuten definida

Resolver el problema iniciando con la metodologiacutea ldquodivide y venceraacutesrdquo el problemageneral se dividiraacute en 6 problemas particulares

a) Sistema de Informacioacuten para control de horariosb) Sistema Experto para definicioacuten y generacioacuten de grupos

por abrirc) Moacutedulo Programacioacuten Loacutegica de Restricciones para

asignar horario a los gruposd) Moacutedulo Algoritmos Geneacuteticos para asignar aula a los

grupos ya definidose) Sistema Experto para definir catedraacutetico para

asignaturaf) Sistema Experto para asignar asignatura a catedraacutetico

Debido a la naturaleza y caracteriacutesticas de la informacioacuten todos lossistemas seraacuten realizados iniciando desde cero la recopilacioacuten deinformacioacuten el anaacutelisis el disentildeo y la programacioacuten de cada moacutedulo delsistema programado en Visual Basic y Bases de Datos en Access

Capiacutetulo 4 Anaacutelisis y Disentildeo

La principal ventaja de eacutesta opcioacuten es que el sistema estaacute hecho a la medida de lasnecesidades de la institucioacuten poniendo las restricciones en el formato que se tienenactualmente la desventaja es que se debe desarrollar TODO el sistema

44 Requerimientos del sistema

Los Motores de Inferencias deben ser disentildeados con las siguientes caracteriacutesticas

bull Buacutesqueda de primero en profundidad en ocasiones cuando se interactuacutee con elusuario este tipo de buacutesqueda seraacute utilizado para recorrer toda la base deconocimiento

bull Buacutesqueda heuriacutestica en la que el usuario deberaacute dar datos iniciales de por dondeempezar la buacutesqueda de alguna informacioacuten

bull Tomar informacioacuten de la Base de Conocimiento y guardarla en las bases de datos ytambieacuten inferir la informacioacuten y guardarla en las bases de datos para su posteriortratamiento e impresioacuten

bull Seleccionar la mejor opcioacuten y presentarla al usuario para los casos en que el usuariodecida cambiar alguacuten dato la maacutequina deberaacute presentar una opcioacuten y saber indicarel porqueacute la ldquoeligioacuterdquo

bull Dar otras soluciones ademaacutes de la oacuteptima teniendo porcentajes de aceptacioacuten paracada solucioacuten y permitiendo la buacutesqueda de maestros a impartir materias aulas paraalguacuten grupo o cantidad de grupos a abrir

bull Dar resultados en lenguaje natural de modo que el usuario entienda claramente loque la maacutequina le comunica

bull Trabajar interactivamente con el usuario para que eacuteste pueda cuestionar el porqueasignoacute un maestro abrioacute grupos asignoacute un aula etceacutetera

bull Tener capacidad para el uso del paradigma basado en analogiacuteas ldquoSi un maestro yadio la materia en alguacuten semestre entonces puede darla en este semestrerdquo o bien ldquoSieste paquete de materias estaacute completo entonces repite todo el paquete estesemestrerdquo

Interfaz de Usuario recibe y entrega informacioacuten interactuando con el usuario esdecir el usuario puede

1) alimentar hechos2) solicitar resultados y reportes3) cuestionar coacutemo se obtuvieron ciertas conclusiones

La interfaz de usuario debe tener las caracteriacutesticas siguientes

bull Comunicarse en el lenguaje del usuario sea un humano u otro dispositivobull Recibir hechos del usuario y almacenarlos en la base de hechosbull Presentar de manera amigable los objetivos a buscar e inferencias en pantallabull Dar de manera clara la explicacioacuten de la inferencia realizada

Capiacutetulo 4 Anaacutelisis y Disentildeo

bull Dar resultados por escrito en informesbull Proporcionar al usuario la facilidad de alimentar la base de conocimientosbull Dar al usuario la facultad de corregir las inferenciasbull Si el usuario es inexperto facilitar la ayuda necesaria

Seleccioacuten del lenguaje de programacioacuten

Visual Basic 60 proporciona a los programadores facilidad para desarrollar aplicacionescomplejas en poco tiempo (comparado con lo que cuesta programar en Visual C++ porejemplo)

El sistema necesita interfaces amigables al usuario con ventanas y botones emergentesen cualquier momento y Visual Basic 60 es una herramienta de disentildeo de aplicacionespara Windows en la que eacutestas se desarrollan en una gran parte a partir del disentildeo de unainterfaz graacutefica (pudiendo incorporar todos los elementos de este entorno informaacuteticoventanas botones cajas de diaacutelogo y texto botones de opcioacuten y de seleccioacuten barras dedesplazamiento graacuteficos menuacutes etc) En una aplicacioacuten Visual Basic 60 el programaestaacute formado por una parte de coacutedigo puro y otras partes asociadas a los objetos queforman la interfaz graacutefica Visual Basic 60 permite la programacioacuten de sus ventanasbotones y componentes de manera maacutes faacutecil que Java con sus Applets

En la parte del sistema de control de horarios que es un sistema de informacioacuten comuacutenlos programas que llenan de informacioacuten las bases de datos son muy parecidos unos conotros al hacer los procesos de altas bajas modificaciones consultas y validaciones seutilizan las ventajas que Visual Basic 60 ofrece de la Programacioacuten Orientada aObjetos (POO) eacutesta es una forma de programacioacuten que utiliza objetos ligados mediantemensajes para la solucioacuten de problemas Puede considerarse como una extensioacuten naturalde la programacioacuten estructurada en un intento de potenciar los conceptos demodularidad y reutilizacioacuten de coacutedigo Las caracteriacutesticas fundamentales de la POO sonabstraccioacuten encapsulamiento herencia y polimorfismo

Visual Basic 60 soporta la abstraccioacuten la encapsulacioacuten el polimorfismo y lareutilizacioacuten de coacutedigo Los objetos de Visual Basic estaacuten encapsulados es decircontienen su propio coacutedigo y sus propios datos

Manejador de Base de datos para el almacenamiento de la informacioacutenEl manejador de base de datos a utilizar seraacute Microsoft Access debido a que los usuariosque alimentan la base de conocimientos son expertos en diferentes aacutereas delconocimiento y tiene conocimientos limitados de los diferentes manejadores y estaacuten maacutesfamiliarizados con Microsoft Access Ademaacutes de que Access es transportablefaacutecilmente

Ademaacutes la cantidad y tipo de informacioacuten que se almacena en las tablas no requieremanejadores de bases de datos potentes o con caracteriacutesticas especiales

Capiacutetulo 4 Anaacutelisis y Disentildeo

Sistemagenerador dehorarios

SistemaExperto

Reglas

Criterios

Criterios por regla Conocimiento

Procesos

Capturaestadiacutesticas

Calcula grupos

Ajusta grupos

Sistema expertoasigna materia

Sistema Expertoasigna maestro

Asigna materia

Asigna catedraacutetico

Conocimientos

Procesos

Materias

Perfil general

Catedraacuteticos

Perfil materias

Perfil maestro

Asignacioacutenmateria-maestro

Asignacioacutenmaestro-materia

Buacutesqueda independiente

B adelante

B atraacutes

Abduccioacuten

Explicacioacuten

MoacuteduloPLR

Asigna horario

Datos

Arbol derestricciones Procesos

Materia

Grupos

Paquetes

Horario

Restriccioacuten 1

Restriccioacuten 3

Restriccioacuten 2

Restriccioacuten N

Genera random

Evaluacutea restricciones

Guarda grupo

MoacuteduloAlgoritmoGeneacutetico

Asigna aula

Operadores Geneacuteticos

Evaluacioacuten

Cruzamiento

Seleccioacuten

Mutacioacuten

Poblacioacuten Inicial

Versioacuten 1

Versioacuten 2

Versioacuten 3

Versioacuten N

Condensadodatos grales

Materia

Hora

Aula

Control escolar

Sistema deInformacioacuten

Aulas

Horarios

Grupos

Maestros

Datosestadiacutesticos

Datosgenerales

Datos condensado

Materias

45 MAPA CONCEPTUAL DEL PROYECTO

Capiacutetulo 4 Anaacutelisis y Disentildeo

Capiacutetulo 4 Anaacutelisis y Disentildeo

En la Figura 41 se muestra el mapa conceptual del proyecto La burbuja centralrepresenta el sistema generador de horarios y cada rama representa uno de los seismoacutedulos que lo componen las burbujas de cada rama contienen a su vez variasramificaciones en las que se muestran de manera graacutefica los componentes maacutesrepresentativos de los procesos utilizados la informacioacuten que manejan el conocimientoque utilizan y las restricciones involucradas

El moacutedulo Servicios Escolares contiene informacioacuten necesaria para la administracioacuten delos horarios en general y proporciona los datos para el funcionamiento de los demaacutesmoacutedulos

El moacutedulo Sistema Experto Creacioacuten de Grupos (SECG) muestra el conocimiento yprocesos utilizados para definir la cantidad de grupos a ofertar a partir de la informacioacutenestadiacutestica proporcionada por servicios escolares maacutes adelante en el documento seexplica a detalle su funcionamiento

En la Figura 41 se aprecia que los moacutedulos Sistema Experto AsignaCatedraacutetico(SEAC) y Sistema Experto Asigna Materia(SEAM) comparten las bases deconocimiento porque el conocimiento de un SE es la base de hechos del otro en amboscasos los procesos difieren solamente en la informacioacuten que utilizan y en los resultadosque producen noacutetese que existe un proceso que es ldquobuacutesqueda independienterdquo que puedecatalogarse como un Sistema Experto adicional que sirve para sugerir las asignaturasque puede impartir una persona que no estaacute dentro de las bases de datos de maestros ypor lo tanto su perfil tampoco estaraacute capturado en esta caso los hechos (su perfil deconocimientos) es capturado en el momento de la consulta

El moacutedulo de Algoritmos Geneacuteticos (AG) muestra los datos que recibe como se generauna poblacioacuten inicial el tratamiento que se le aplica por medio de los operadoresgeneacuteticos y la informacioacuten que se genera

Por uacuteltimo en la Figura 41 se nota tambieacuten el moacutedulo donde se utiliza la ProgramacioacutenLoacutegica de Restricciones que contiene 3 ramas donde una representa los datos recibidosy la informacioacuten generada otra rama denota un aacuterbol de restricciones que deben sersatisfechas por los paquetes de horarios la uacuteltima rama denota los procesos que se llevana cabo debe notarse que existe un proceso aleatorio que genera cada grupo un procesoque evaluacutea el grupo contra las restricciones y uno mas que guarda los grupos quecumplieron con todas

En este mapa conceptual no se muestra en que orden se ejecuta cada moacutedulo delproyecto la Figura 42 ilustra la secuencia de ejecucioacuten de los moacutedulos

La Figura 42 muestra el diagrama con la secuencia en que se van ejecutando losprocesos los datos que ingresan a cada moacutedulo y la informacioacuten que genera

Capiacutetulo 4 Anaacutelisis y Disentildeo

452 MAPAS CONCEPTUALES DE LOS MOacuteDULOS

Servicios Escolares

Datos Estadiacutesticos

Sistema Experto Creacioacuten de Grupos

Materias y grupos requeridos

Moacutedulo PLR

Materia + grupo + hora

Moacutedulo AG

Materia + grupo + hora + aula

Sistema ExpertoAsigna Catedraacutetico Sistema Experto

Asigna Materia

Sugiere profesorpara asignaturas

Sugiere asignaturapara profesor

Materia + grupo + hora + aula +profesor

Condensado final de materias

1

2

3

4

5 6

Fig 42 Diagrama de secuencia

Capiacutetulo 4 Anaacutelisis y Disentildeo

Como puede verse todo inicia cuando Servicios Escolares enviacutea la informacioacuten a laDivisioacuten de Estudios Profesionales (donde ldquohabitanrdquo los coordinadores) quienes son losresponsables de la elaboracioacuten de los horarios

Un primer proceso captura la informacioacuten que proviene de Servicios Escolares elsegundo moacutedulo define cuantos grupos deben programarse el tercer proceso asigna lahora a cada grupo el cuarto moacutedulo es el proceso que asigna las aulas los procesosquinto y sexto sirven para sugerir queacute catedraacutetico es el maacutes adecuado para cada grupo ycomo resultado final se tiene el condensado final de horarios para el siguiente semestre

En la Figura 43 se muestran los componentes del primer Sistema Experto utilizado paradefinir la cantidad de grupos que deben ofertarse el proacuteximo semestre en la partesuperior izquierda de la figura esta el coordinador de la carrera quien es el encargado decargar el conocimiento a las Bases de Conocimiento utilizando la interfaz de experto esla persona indicada para definir los criterios que tiene cada materia define las reglaspara la agrupacioacuten de los criterios y define en cada regla que tipo de ajuste se realiza

Experto

Coordinador

Interfaz Experto

Base deConocimientos

CriteriosReglasAjustes

Motor de Inferencia ListasMateriasGrupos requeridos

UsuarioMoacutedulo Explicacioacuten

Usuario(coordinador

novato)

Interfaz Usuario

Base Hechos

Informacion Estadiacutestica

Fig 43 Sistema Experto Generador de Grupos

Capiacutetulo 4 Anaacutelisis y Disentildeo

El usuario en la parte inferior de la figura puede ser el coordinador o su asistente y seencarga de capturar la informacioacuten estadiacutestica proporcionada por servicios escolares queson los datos de alumnos inscritos actualmente en cada materia el iacutendice de reprobacioacutenlos alumnos inscritos en la materias prerrequisito una simulacioacuten de los alumnosprobables para cursar esa materia si todos los inscritos aprueban todo y los alumnos quepueden cursar las materias pero no se inscribieron

Con los datos anteriores se realiza la siguiente operacioacuten

(Inscritos en materia iacutendice de reprobacioacuten de materia) 100 +Alumnos no inscritos +Alumnos en prerrequisito ndash (alumnos en prerrequisito iacutendice de reprobacioacuten) 100 +(Simulacioacuten ndash alumnos en prerrequisito ndash no inscritos) = Alumnos del proacuteximo semestre

Este uacuteltimo dato (alumnos del proacuteximo semestre) proporciona la cantidad de alumnospor materia que pueden inscribirse en los grupos seguacuten los estadiacutesticos de ServiciosEscolares pero no contempla preferencias de alumnos conveniencia de inscripcioacuten etc

Ofrecer los grupos necesarios para la inscripcioacuten de alumnos tomando el dato calculadoocasiona que al terminar las inscripciones existan grupos vaciacuteos grupos sobresaturadosalumnos con pocas materias y varios problemas mas

La finalidad de este Sistema Experto es realizar un ajuste al dato calculadoanteriormente para incluir en su caacutelculo todas aquellas caracteriacutesticas y experiencia delcoordinador para minimizar los problemas mencionados en el paacuterrafo anterior

Los ajustes pueden ser de varios tiposbull Ajuste draacutestico hacia abajo Se aplica una reduccioacuten del 50 al dato calculadobull Ajuste hacia arriba Se agrega un grupo maacutes al dato calculadobull Ajuste hacia abajo Se resta un grupo al dato calculadobull Ajuste numeacuterico Se ajusta utilizando la regla del redondeo de decimalesbull Ajuste draacutestico hacia arriba Se suman 2 oacute 3 grupos al dato calculado

Cuando utilizar una u otra regla estaacute definido por los criterios que cada materia contienenaturalmente y que con el paso de los semestres puede variar (aunque tambieacuten puedenpasar antildeos sin sufrir ninguacuten cambio)

La Figura 44 describe la utilizacioacuten de la teacutecnica de la Inteligencia Artificial llamadaProgramacioacuten Loacutegica de Restricciones para generar el condensado de grupos a partir deuna lista de materias que contiene solamente el nombre y la cantidad de grupos que sedeben abrir de una materia

Capiacutetulo 4 Anaacutelisis y Disentildeo

EoseX

Ugacgg

Lgc

s

ListasMaterias

Procesoformador depaquetes

Lista grupo +paquete

Moacutedulo generadorRandom Hora

Restricciones satisfec

Restriccio

Materia +hora

Moacuteduloverificadorrestriccione

s

Restriccionesnosatisfechas

Fig 44 Diagrama del moacutedulo Programacioacuten Loacutegica de Restriccione

xiste un proceso inicial que forma los ldquopaquetesrdquo de grupos esto es las materias serdenan por el semestre al que corresponden (generalmente son 6 materias poremestre) despueacutes para cada semestre se generan los grupos correspondientes si porjemplo se deben hacer 3 grupos de la materia X se generan tres registros de la materia y cada registro se etiqueta

Materia X grupo AA Materia X grupo AB y Materia X grupo AC

na vez que todas las materias han sido generadas y ldquoempaquetadasrdquo se pasan alenerador de horario en bloques de un paquete a la vez Este proceso funcionasignando un horario aleatorio a cada grupo despueacutes se verifica que cada grupo cumplaon todas las restricciones que son del tipo grupo no ldquochocardquo con otro del paqueterupo proporciona horario continuo al paquete grupo tiene horario de 2 horas por diacutearupo no deja horas vaciacuteas en paquete grupo cumple con todas sus horas asignadas etc

a Figura 45 muestra el disentildeo del Algoritmo Geneacutetico utilizado para asignar aula a losrupos que provienen del moacutedulo anterior (PLR) y recibe como datos de entrada unondensado de horarios (materia + grupo + hora)

Capiacutetulo 4 Anaacutelisis y Disentildeo

Procesoevaluacioacuten

Condensado

Materia +Grupo +Hora

Generador de versiones aleatorias

Genera versioacuten asigna aula

Versioacuten 3

Versioacuten 2

Versioacuten 1

Versioacuten N

Poblacioacuten inicial

ProcesoseleccioacutenProceso cruzamiento

clonacioacuten mutacioacuten

Versioacuten z

Versioacuten y

Versioacuten x

Versioacuten w

Nueva generacioacuten

Individuos aptos

Individuos no aptosReciclaje

CondensadoMateria + grupo +hora + aula

Fig 45 Diagrama del moacutedulo Algoritmo Geneacutetico

Capiacutetulo 4 Anaacutelisis y Disentildeo

Esta rama de la Inteligencia Artificial es utilizada generalmente para procesos deoptimizacioacuten y en esta ocasioacuten se utiliza para asignar las aulas al condensado dematerias

Al inicio se reciben como datos generales el condensado de materias La poblacioacuteninicial se obtiene copiando N veces (N versiones) este condensado y agregando a cadaregistro el nuacutemero de versioacuten y un aula asignada de manera aleatoria de esta manera seobtienen N versiones diferentes del condensado original

Cada versioacuten es entonces evaluada contando el nuacutemero de choques en aula y la cantidadde espacios vaciacuteos por aula a cada versioacuten se le genera un vector para guardar laevaluacioacuten (cromosoma de evaluacioacuten) y de esta manera se mide el grado de aptitud quetiene cada versioacuten

Las versiones que tienen menos choques y menos espacios vaciacuteos se consideran con ungrado de aptitud alto y son las mejores al contrario las que tienen muchos choquesson consideradas de aptitud baja no sirven para la reproduccioacuten y son desechadas

Una vez seleccionadas la mejores versiones se procede a la aplicacioacuten de los operadoresgeneacuteticos el primero que se aplica es el cruzamiento y consiste en elegir dos versionesde alta aptitud tomar segmentos seleccionados heuriacutesticamente de ellas y formar unnuevo individuo (una nueva versioacuten) se repite este proceso Y veces con las diferentesversiones hasta tener una nueva generacioacuten de N condensados de horarios

Repetir este proceso de generacioacuten evaluacioacuten y seleccioacuten durante Z generacionesaplicando cuando se necesite la clonacioacuten que es un proceso de copiar completamenteuna versioacuten (con alto grado de aptitud) a la nueva generacioacuten

Al principio la convergencia hacia horarios sin choques en aula es raacutepida pero al pasode las generaciones disminuye entonces se debe usar la mutacioacuten que es un proceso deacceder manualmente los registros de alguna versioacuten Zi en la generacioacuten Z y corregiralguacuten aula al final despueacutes de varias generaciones selecciones cruzamientosclonaciones y mutaciones se obtiene un condensado de aulas libres de choques y conpocos espacios vaciacuteos

En la Figura 46 se muestran los componentes del Sistema Experto utilizado para sugerircuales son los catedraacuteticos que mejor se desempentildeariacutean para impartir una asignaturatomando en cuenta los conocimientos que tiene un profesor (adquiridos a lo largo de sucarrera) y cuales son los conocimientos necesarios para impartir la caacutetedra de algunaasignatura

Capiacutetulo 4 Anaacutelisis y Disentildeo

Todo inicia haciendo una encuesta a los profesores acerca del perfil y los conocimientosnecesarios para poder impartir una asignatura el objetivo de la misma y los principalestemas que abarca todo lo anterior se captura en la base de hechos como el perfil de lamateria

Posteriormente se hace otra encuesta a los profesores pidieacutendoles que seleccionencuales son los conocimientos y el grado de dominio que tienen de los diferentes toacutepicosde las asignaturas esto se convierte en el perfil del catedraacutetico Por uacuteltimo con unproceso de induccioacuten se determina para cada materia cual es el grado de certeza con elcual puede un profesor impartir una asignatura

Experto

Coordinador

Interfaz Experto

Base deConocimientos

CatedraacuteticosConocimientos profesorPerfil profesor

Motor de Inferencia Lista profesores paraimpartir una materia

Jefedepartamento

Moacutedulo Explicacioacuten

Usuario(coordinador

novato)

Interfaz Usuario

Base Hechos

Perfil

Fig 46 Diagrama de Sistema Experto para sugerir profesor a asignatura

Capiacutetulo 4 Anaacutelisis y Disentildeo

Noacutetese en la Figura 47 que el coordinador captura el conocimiento referente a lasasignaturas (objetivo temas caracteriacutesticas necesarias para impartirla) y este esalmacenado en la Base de Conocimientos

Por otro lado un profesor debe llenar una encuesta en la que indique cuales son lostemas que domina y en que porcentaje lo hace (esto es el perfil del catedraacutetico) estainformacioacuten se almacena en la base de hechos--

El Motor de Inferencia hace los matchs respectivos y genera una lista de las materias quepuede impartir un profesor y con que grado de certeza estaacute capacitado para hacerlo

Por uacuteltimo el moacutedulo de explicacioacuten informa el porqueacute dio esa inferencia mostrando lascaracteriacutesticas de materia y profesor que hicieron match

Fig 47 Diagrama de Sistema Experto para sugerir asignaturas para catedraacutetico

Experto

Coordinador

Interfaz Experto

Base deConocimientos

MateriasCaracteriacutesticas MateriasPerfil materia

Motor de Inferencia Lista materias para unprofesor

Profesor

Moacutedulo Explicacioacuten

Profesor nuevoInterfaz Usuario

Base Hechos Perfil profesor

Capiacutetulo 4 Anaacutelisis y Disentildeo

453 Diagrama de contextoEn la Figura 48 se detallan los elementos que intervienen aportando y recibiendoinformacioacuten para el funcionamiento del sistema

Los departamentos acadeacutemicos aportan al sistema una lista con los catedraacuteticos quelaboran ahiacute incluye los datos personales de los profesores nuacutemero de tarjeta nombrecarrera etc Los coordinadores de carrera son los responsables de la elaboracioacuten de loshorarios estos funcionarios son la pieza fundamental de este proceso porque aportan susconocimientos para

bull Definir el ajuste al dato estadiacutestico proporcionado por Servicios Escolaresbull Definir las restricciones para la creacioacuten de los paquetes de gruposbull Definir las restricciones para asignar hora a cada grupobull La distribucioacuten de los grupos en las aulasbull Asignar la asignatura que mejor puede impartir un catedraacuteticobull Asignarle a una asignatura al profesor que mejor puede impartirla

El departamento de Servicios Escolares es el iniciador del proceso de la elaboracioacuten dehorarios aporta los datos estadiacutesticos obtenidos de la situacioacuten escolar actual de losalumnos cada alumno estaacute inscrito en alguna de las 8 carreras que se ofrecen en elInstituto estaacute cursando entre 5 y 8 asignaturas por semestre en cada periodo acredita oreprueba algunas materias En cada carrera se tiene un mapa reticular que incluyeaproximadamente 50 asignaturas con prerrequisitos creacuteditos horas en aula horas enlaboratorio orden por semestre etc

El departamento Divisioacuten de Estudios Profesionales (donde estaacuten adscritos loscoordinadores de carrera) es el responsable de distribuir las aulas disponibles delInstituto entre los distintos coordinadores las aulas son un recurso escaso y por lo tantovalioso de esta distribucioacuten depende en gran medida la holgura o estrechez que tienenlos coordinadores para asignar las aulas a los grupos creados

Los profesores son otro de los recursos valiosos de una institucioacuten son los responsablesde transmitir sus conocimientos a los alumnos cada catedraacutetico posee conocimientos dediversas aacutereas toacutepicos y ramas del saber humano el perfil del catedraacutetico estaacute enrelacioacuten directa con el dominio que tiene de cada una de ellas y varia desde unconocimiento superficial hasta el dominio total de un aacuterea

Los generadores random de los moacutedulos PLR y AG proporcionan la informacioacutennecesaria generada de manera aleatoria para el funcionamiento de esos moacutedulos

A los coordinadores y alumnos se les proporciona un condensado de horarios losalumnos conocen los grupos a los que se pueden inscribir las horas las aulas y loscatedraacuteticos que las impartiraacuten

Capiacutetulo 4 Anaacutelisis y Disentildeo

Sistema para laelaboracioacuten de

horarios

Departamentosacadeacutemicos

Jefes dedepartamento

Divisioacuten deEstudios

Profesionales

DepartamentoServiciosEscolares

Alumnos

Coordinadoresde carrera

Coordinadoresde carrera

Lista catedraacuteticos disponibles

Conocimientos

Reporte datos estadiacutesticos

Lista aulas disponibles

Condensado de horarios

Horarios disponibles

Lista horarios profesores

Profesores Generadoresaleatorios

Perfil maestro

Horas y aulas aleatorios

Fig 48 Diagrama de contexto del proyecto

Cap

iacutetulo

4

Anaacute

lisis

y D

isentilde

o

Sist

ema

para

lael

abor

acioacute

n de

hora

rios

Dep

arta

men

tos

acad

eacutemic

os

Div

isioacute

n de

Estu

dios

Prof

esio

nale

s

Dep

arta

men

toSe

rvic

ios

Esco

lare

sC

oord

inad

ores

de c

arre

ra

List

a ca

tedr

aacutetic

os d

ispo

nibl

es

Con

ocim

ient

osR

epor

teda

tose

stad

iacutestic

osLi

sta

aula

s dis

poni

bles

Prof

esor

esG

ener

ador

esal

eato

rios

Perf

il m

aest

roH

oras

y a

ulas

Fig

49

Dia

gram

a de

func

ione

s fun

dam

enta

les (

entra

das)

Cap

tura

supe

rfil

deco

noci

mie

nto

Cap

tura

las

aula

s

Enviacute

a da

tos

Cap

tura

suco

noci

mie

nto

Enviacute

a da

tos

depr

ofes

ores G

ener

ada

tos

Cla

ve n

ombr

eho

ras

turn

o

Tips

tru

cos

cono

cim

ient

ohe

uriacutes

tico

Cla

ve c

apac

idad

ed

ifici

o

Alu

mno

sin

scrit

os

sim

ulac

ioacuten

no

insc

ritos

iacutend

ice

repr

obac

ioacuten

Toacutepi

cos y

tem

asqu

e do

min

aA

ula

y ho

raal

eato

rios

Capiacutetulo 4 Anaacutelisis y Disentildeo

Sistema para laelaboracioacuten de

horarios

Coordinadoresde carrera

Jefes dedepartamento Alumnos

Fig 410 Diagrama de funciones fundamentales (salidas)

Imprimecondensado

Imprime lista Imprimehorarios

Maestro materiahora

Materia grupohora aula

maestrosugerido

Condensado de horarios Horarios disponibles

Lista horarios profesores

Materia grupohora aula

maestro

Capiacutetulo 4 Anaacutelisis y Disentildeo

454 Diagrama entidad - relacioacuten

NOTA Los siguientes diagramas muestran las tablas utilizadas por cada moacutedulo paramayor claridad se repitieron las tablas necesarias para representar cada parte del sistemapero en la base de datos no existe tal duplicacioacuten

Este diagrama contiene las tablas del moacutedulo administrativo de los horarios en unprincipio eacutestas eran las uacutenicas tablas de un sistema de control de horarios

FK_HORARIOS_REFERENCE_MATERIASFK_MATERIAS_REFERENCE_SERVICIO

FK_MATERIAS_REFERENCE_RAMA_MAT FK_MATERIAS_REFERENCE_CARRERAS

HORARIOS

GrupoId_aulaHora_inicioHora_lunesHora_martesHora_miercolesHora_juevesHora_viernesHora_sabadoObservacionesPeriodoAnioid_materiaId_catedratico

Text(2)INTEGERINTEGERText(6)Text(6)Text(6)Text(6)Text(6)Text(6)Text(30)Text(20)INTEGERINTEGERSMALLINT

ltfk3gt

ltfk2gtltfk1gt

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave de asig prerequisitoclave de asig prerequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

MATERIAS

SERVICIOS_ESCOLARESId_materiaINSCRITOSNO INSCRITOSSIMULACIONPROXIMO SEMESTREGRUPOS REQUERIDOSIndice de reprobacionperiodoantildeoGrupos ajustadoAlumnos ajustadoId_ajusteId_regla

INTEGERSMALLINTSMALLINTSMALLINTSMALLINTDOUBLEDOUBLEText(7)INTEGERSMALLINTSMALLINTINTEGERSMALLINT

RAMA_MATERIA

Id_ramaNombre_rama

COUNTERText(30)

ltpkgt

CARRERAS

Id_CarreraNombre_carrera

Text(15)Text(50)

ltpkgt

Fig 411 Diagrama entidad ndash relacioacuten del moacutedulo administrativo

Capiacutetulo 4 Anaacutelisis y Disentildeo

Este diagrama muestra las tablas donde se almacena el conocimiento de loscoordinadores para que el Sistema Experto del moacutedulo sugiera y aplique el ajuste aldato de cantidad de grupos sugerido por Servicios Escolares La relacioacuten entre las tablasva generando las reglas de produccioacuten

MATERIAS

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave asig prerrequisitoclave asig prerrequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

REGLAS

DescriId_reglaId_ajusteTot_peso

Text(70)COUNTERINTEGERINTEGER

ltpkgtltfkgt

FK_MATERIAS_REFERENCE_SERVICIO

FK_HECHOS_R_REFERENCE_CRITERIO

FK_HECHOS_R_REFERENCE_REGLAS

FK_HISTORIA_REFERENCE_REGLAS

FK_HISTORIA_REFERENCE_CRITERIO

FK_REGLAS_REFERENCE_AJUSTES

FK_HISTORIA_REFERENCE_MATERIAS

FK_HISTORIA_REFERENCE_CRITERIO

SERVICIOS_ESCOLARES

Id_materiaINSCRITOSNO INSCRITOSSIMULACIONPROXIMO SEMESTREGRUPOS REQUERIDOSIndice de reprobacioacutenperiodoantildeoGrupos ajustadoAlumnos ajustadoId_ajusteId_regla

INTEGERSMALLINTSMALLINTSMALLINTSMALLINTDOUBLEDOUBLEText(7)INTEGERSMALLINTSMALLINTINTEGERSMALLINT

HECHOS_REGLAS

Id_criterioId_reglaPromedio

INTEGERINTEGERINTEGER

ltfk2gtltfk1gt

CRITERIOS

Id_criterioDescripcion

COUNTERText(60)

ltpkgt

HISTORIAL_CRITERIOS

Id_criterioId_reglaPeso de la regla

INTEGERINTEGERSMALLINT

ltfk2gtltfk1gt

AJUSTES

TipoDescripcionId_ajuste

Text(25)MemoCOUNTER ltpkgt

HISTORIAL_MATERIA

Id_materiaId_criterioprioridad

INTEGERINTEGERSMALLINT

ltfk2gtltfk1gt

Fig 412 Diagrama E-R del moacutedulo para determinar y ajustar nuacutemero de grupos

Capiacutetulo 4 Anaacutelisis y Disentildeo

En este diagrama se muestra la base de datos que almacena la informacioacuten quemanipula el moacutedulo Algoritmo Geneacutetico las tablas maacutes representativas sonPOBLACION donde se guardan todas las versiones que forman las generaciones dehorarios y CROMOSOMAS que almacena el registro de evaluacioacuten de cada versioacuten dehorarios

FK_HORARIO__REFERENCE_AULAS

FK_HORARIO__REFERENCE_POBLACIO

FK_MATERIAS_REFERENCE_TIPO_HOR

FK_POBLACIO_REFERENCE_AULAS

FK_POBLACIO_REFERENCE_MATERIAS

FK_POBLACIO_REFERENCE_CROMOZOM1 1

HORARIO_AULA

VersionAulaLunesMartesMiercolesJuevesViernesSabadoHoraId_aula

INTEGERText(6)SMALLINTSMALLINTSMALLINTSMALLINTSMALLINTSMALLINTSMALLINTINTEGER

ltfk2gt

ltfk1gt

AULAS

Id_aulaCapacidad_aulaNombre_aulaDisponible

COUNTERSMALLINTText(50)YesNo

ltpkgt

POBLACION

Id_materiaGrupoId_catedraticoAulaHora_inicioHora_lunesHora_martesHora_miercolesHora_juevesHora_viernesVersionId_aulaPeriodoAnio

INTEGERText(4)INTEGERText(4)INTEGERText(6)Text(6)Text(6)Text(6)Text(6)INTEGERINTEGERText(10)INTEGER

ltfk2gt

ltfk1gtltfk3gt

MATERIAS

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave de asig prerequisitoclave de asig prerequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

TIPO_HORARIO

Tipo_horario

DescripcionLunes

MartesMiercoles

Jueves

ViernesSabado

COUNTER

Text(20)SMALLINT

SMALLINTSMALLINT

SMALLINT

SMALLINTSMALLINT

ltpkgt

CROMOZOMAS

VersionSemestreChoquesVacias

INTEGERINTEGERINTEGERINTEGER

ltpkgt

Fig 413 Diagrama E-R del moacutedulo para asignar aulas (Algoritmo Geneacutetico)

Capiacutetulo 4 Anaacutelisis y Disentildeo

En esta Figura 414 se pueden observar las tablas involucradas en el proceso paragenerar los paquetes de materias por semestre y la asignacioacuten de horario a cada grupodel paquete utilizando la teacutecnica Programacioacuten Loacutegica de Restricciones noacutetese que noexiste una tabla de restricciones eacutestas se aplican por software a cada grupo generado

FK_MATERIAS_REFERENCE_SERVIC

FK_MATERIAS_REFERENCE_TIPO_H

FK_HORARIOS_REFERENCE_MATERI

MATERIA

Id_materiMateriNum de HrsNum de HrsClave deId_CarrerCreditoSemestrObservacioneTroncoalumnos porclave de asigclave de asigId_ramSuma_maOrdeTipo_horari

INTEGEText(40SMALLINSMALLINText(8Text(15SMALLINSMALLINText(60YesNSMALLINText(40Text(40INTEGESMALLINSMALLININTEGE

ltpkfk4

ltfk1

ltfk3

ltfk2

SERVICIOS_ESCOLARE

Id_materiINSCRITONOSIMULACIOPROXIMOGRUPOSIndice deperiodantildeGruposAlumnosId_ajustId_regl

INTEGESMALLINSMALLINSMALLINSMALLINDOUBLDOUBLText(7INTEGESMALLINSMALLININTEGESMALLIN

TIPO_HORARI

Tipo_horariDescripcioLuneMarteMiercoleJueveVierneSabad

COUNTEText(20SMALLINSMALLINSMALLINSMALLINSMALLINSMALLIN

ltpk

HORARIO

GrupId_aulHora_iniciHora_luneHora_marteHora_miercoleHora_jueveHora_vierneHora_sabadObservacionePeriodAniid_materiId_catedratic

Text(2INTEGEINTEGEText(6Text(6Text(6Text(6Text(6Text(6Text(30Text(20INTEGEINTEGESMALLIN

ltfk3

ltfk2ltfk1

Fig414 Diagrama E-R del moacutedulo para asignar horario (PLR)

Capiacutetulo 4 Anaacutelisis y Disentildeo

FK_HECHOS_M_REFERENCE_MATERIAS

FK_HECHOS_M_REFERENCE_CATEDRAT

HECHOS_MAT_PROF

Id_catedraticoId_materiaPromedio

SMALLINTSMALLINTSMALLINT

ltpkfk1gtltpkfk2gt

FK_PERFIL_C_REFERENCE_CATEDRAT

FK_PERFIL_C_REFERENCE_PERFILES

FK_PERFILES_REFERENCE_TIPO_PER

FK_PROF_PAR_REFERENCE_CATEDRAT

FK_PROF_PAR_REFERENCE_MATERIAS

PERFIL_CATEDRATICO

Id_catedraticoId_perfilPrioridad_perfil_cate

SMALLINTINTEGERSMALLINT

ltfk1gtltfk2gt

CATEDRATICOS

Id_catedraticoApellido_paternoApellido_maternoNombre_catedraticoTitulo_catedraticoSuma_cate

SMALLINTText(20)Text(20)Text(20)Text(30)SMALLINT

ltpkgt

PERFILES

Id_perfilId_tipoDescripcion_perfil

COUNTERINTEGERText(60)

ltpkgtltfkgt

TIPO_PERFIL

Id_tipoTipo_perfil

COUNTERText(30)

ltpkgt

PROF_PARA_MAT

Id_materiaId_catedraticoPorcentaje_cate

INTEGERSMALLINTSMALLINT

ltpkfk2gtltpkfk1gt

MATERIAS

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave de asig prerequisitoclave de asig prerequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

Fig 415 Diagrama E-R del moacutedulo designa mejor catedraacutetico (Sistema Experto)

Capiacutetulo 4 Anaacutelisis y Disentildeo

En las figuras de la paacutegina anterior y eacutesta (Fig 415 y 416) se muestran las tablasutilizadas por los Sistemas Expertos para sugerir que materias puede impartir unprofesor y tambieacuten sugiere que profesores pueden impartir una asignatura

FK_PERFILES_REFERENCE_TIPO_PER

FK_PERFIL_M_REFERENCE_MATERIAS

FK_PERFIL_M_REFERENCE_PERFILES

FK_MAT_PARA_REFERENCE_MATERIAS

FK_MAT_PARA_REFERENCE_CATEDRAT

FK_HECHOS_M_REFERENCE_MATERIAS

FK_HECHOS_M_REFERENCE_CATEDRAT

PERFILES

Id_perfilId_tipoDescripcion_perfil

COUNTERINTEGERText(60)

ltpkgtltfkgt

TIPO_PERFIL

Id_tipoTipo_perfil

COUNTERText(30)

ltpkgt

PERFIL_MATERIA

Id_materiaId_perfilPrioridad_perfil_mat

INTEGERINTEGERINTEGER

ltfk2gtltfk1gt

MATERIAS

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave de asig prerequisitoclave de asig prerequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

MAT_PARA_PROF

Id_catedraticoId_materiaPorcentaje_mat

SMALLINTINTEGERSMALLINT

ltpkfk1gtltpkfk2gt

CATEDRATICOS

Id_catedraticoApellido_paternoApellido_maternoNombre_catedraticoTitulo_catedraticoSuma_cate

SMALLINTText(20)Text(20)Text(20)Text(30)SMALLINT

ltpkgt

HECHOS_MAT_PROF

Id_catedraticoId_materiaPromedio

SMALLINTSMALLINTSMALLINT

ltpkfk1gtltpkfk2gt

Fig 416 Diagrama E-R del moacutedulo selecciona mejor materia (sistema experto)

Capiacutetulo 4 Anaacutelisis y Disentildeo

455 Diccionario de la Base de Datos

Nombre HORARIOS_CON_CONOCIMIENTOComentario Base de datos del sistema ldquoGeneracioacuten de horarios mediante Sistemas

Basados en ConocimientordquoDBMS Microsoft Access 97

Lista de Tablas

Nombre Tipo deObjeto

AJUSTES TableAULAS TableCARRERAS TableCATEDRATICOS TableCRITERIOS TableCROMOSOMAS TableHECHOS TableHECHOS_MAT_PROF TableHECHOS_PROF_MAT TableHECHOS_REGLAS TableHISTORIAL_CRITERIOS TableHISTORIAL_MATERIA TableHORARIO_AULA TableHORARIOS TableMAT_PARA_PROF TableMATERIAS TablePERFIL_CATEDRATICO TablePERFIL_MATERIA TablePERFILES TablePOBLACION TablePROF_PARA_MAT TableRAMA_MATERIA TableREGLAS TableSERVICIOS_ESCOLARES TableTIPO_HORARIO TableTIPO_PERFIL Table

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla AJUSTESFuncioacuten Almacena los datos de los tipos de ajuste que se aplican por el Sistema Experto al

dato estadiacutestico que define cuantos grupos se deben abrir de cada materia

Lista de columnas de la tabla AJUSTESNombre Tipo de

DatoLong Llave

Primaria ForaneaComentario

Tipo Text(25) 25 Nombre del tipo de ajusteDescripcioacuten Memo Explicacioacuten del ajuste a realizar al nuacutemero

de grupos calculados segun estadisticosId_ajuste COUNTER 4 X Identificador del ajuste

Tabla AULASFuncioacuten Almacena los datos de las aulas que existen en cada edificio del instituto

Lista de columnas de la tabla AULASNombre Tipo de

DatoLong Llave

Primaria ForaneaComentario

Id_aula COUNTER 4 X Identificador del aulaCapacidad_aula SMALLINT 4 Nuacutemero maacuteximo de alumnos en el

aulaNombre_aula Text(50) 50 Nombre del aula (edificio+numero)Disponible YesNo 1 Disponibilidad del aula

Tabla CARRERASFuncioacuten Almacena los datos de las carreras que se imparten en el ITZ

Lista de columnas de la tabla CARRERASNombre Tipo de

DatoLong Llave

Primaria ForaneaComentario

Id_Carrera Text(15) 15 X Clave de la carreraNombre_carrera Text(50) 50 Nombre de la carrera

Tabla CATEDRATICOSFuncioacuten Almacena los datos de los CATEDRAacuteTICOS que imparten clases en las diferentes carreras del

Instituto Se utilizan los datos en los Sistemas Expertos que definen cual es el mejor catedraacuteticopara impartir una materia

Capiacutetulo 4 Anaacutelisis y Disentildeo

Lista de columnas de la tabla CATEDRATICOSNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_catedratico SMALLINT 4 X Nuacutemero de tarjeta del catedraacuteticoApellido_paterno Text(20) 20 Apellido paterno del catedraacuteticoApellido_materno Text(20) 20 Apellido materno del catedraacuteticoNombre_catedratico Text(20) 20 Nombre del catedraacuteticoTitulo_catedratico Text(30) 30 Grado de estudios y tiacutetulo del

catedraacuteticoSuma_cate SMALLINT 4 Suma total de las pesos de los perfiles

pertenecientes al catedraacutetico

Tabla CRITERIOSFuncioacuten Tabla de los criterios utilizados por el experto para crear las reglas que definen el tipo de

ajuste inferido por el Sistema Experto para definicioacuten de grupos por abrir

Lista de columnas de la tabla CRITERIOSNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_criterio COUNTER 4 X Identificador del criterio aplicado auna materia para crear grupos

Descripcion Text(60) 60 Descripcioacuten del criterio

Tabla CROMOSOMASFuncioacuten Almacena los datos de la evaluacioacuten de cada versioacuten de horarios generada ya sea por la

poblacioacuten inicial o por los operadores geneacuteticos se genera un cromosoma por cadasemestre en cada versioacuten

Lista de columnas de la tabla CROMOSOMASNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Version INTEGER 4 X Nuacutemero de individuo o versioacuten dehorarios

Semestre INTEGER 4 Semestre al que pertenece el datoChoques INTEGER 4 Nuacutemero de choques de versioacuten y

semestreVacias INTEGER 4 Nuacutemero de aulas vaciacuteas del individuo

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla HECHOS_MAT_PROFFuncioacuten Esta tabla almacena el resultado de la inferencia del Sistema Experto materias para

profesor indica para cada catedraacutetico las materias y el porcentaje de certeza con quepuede impartirlas

Lista de columnas de la tabla HECHOS_MAT_PROFNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_catedratico SMALLINT 4 X Identificador del catedraacuteticoId_materia SMALLINT 4 X Identificador de la asignaturaPromedio SMALLINT 4 Porcentaje de certeza con que un

profesor puede impartir una materia(resultado de la inferencia)

Tabla HECHOS_PROF_MATFuncioacuten Almacena los datos de la inferencia del Sistema Experto que calcula para una materia

determinada cuales son los mejores maestros para impartirla

Lista de columnas de la tabla HECHOS_PROF_MATNombre Tipo de

DatoLongitud

LlavePrimaria Foraacutenea

Comentario

Id_catedratico SMALLINT 4 X Identificador del catedraacuteticoId_materia SMALLINT 4 X Identificador de la asignaturaPromedio SMALLINT 4 Porcentaje de certeza con que una

materia puede ser impartida por unprofesor (resultado de la inferencia)

Tabla HECHOS_REGLASFuncioacuten Almacena los porcentajes de certeza con que se dispara una regla del Sistema Experto

que define los grupos por abrir

Lista de columnas de la tabla HECHOS_REGLASNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_criterio SMALLINT 4 X Identificador del criterioId_regla SMALLINT 4 X Identificador de la reglaPromedio INTEGER 4 Porcentaje de certeza con que una

regla dispara un criterio

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla HISTORIAL_CRITERIOS

Funcioacuten Almacena las reglas formadas por los criterios utilizados por el Sistema Experto paradefinir los grupos por abrir

Lista de columnas de la tabla HISTORIAL_CRITERIOSNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_criterio INTEGER 4 X Identificador del criterio pertenecientea la regla

Id_regla INTEGER 4 X Identificador de la reglaPeso de la regla SMALLINT 4 Peso del criterio en la regla

Tabla HISTORIAL_MATERIAFuncioacuten Tabla que almacena la definicioacuten de cada materia con base en los criterios utilizados por

las reglas para definir por materia el nuacutemero de grupos por abrir

Lista de columnas de la tabla HISTORIAL_MATERIANombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materia para suasignacioacuten de criterios

Id_criterio INTEGER 4 X Identificador del criterio que se aplicaa la materia para describirla

Prioridad SMALLINT 4 Peso del criterio en la materia

Tabla HORARIOS

Funcioacuten Almacena los datos del condensado final de horarios aquiacute se almacena el producto finaldel sistema para su posterior publicacioacuten y distribucioacuten entre la comunidad tecnoloacutegica

Lista de columnas de la tabla HORARIOSNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materiaGrupo Text(2) 2 Identificador del grupo A B CId_catedratico SMALLINT 4 X Catedraacutetico asignado al grupoId_aula INTEGER 4 X Aula asignada al grupoHora_inicio INTEGER 4 Hora de inicio del grupoHora_lunes Text(6) 6 Horas que se imparte el grupo el diacutea

lunes

Capiacutetulo 4 Anaacutelisis y Disentildeo

Hora_martes Text(6) 6Hora_miercoles Text(6) 6Hora_jueves Text(6) 6Hora_viernes Text(6) 6Hora_sabado Text(6) 6Observaciones Text(30) 30 Observaciones al grupoPeriodo Text(20) 20 Periodo Ene-jun o Ago-dicAnio INTEGER 4 Antildeo en que se utiliza el horario

Tabla HORARIO_AULAFuncioacuten Tabla auxiliar utilizada como almacenamiento temporal durante el proceso de evaluacioacuten

en el Algoritmo Geneacutetico guarda los datos de ocupacioacuten choques y no utilizacioacuten decada aula por hora diacutea y versioacuten

Lista de columnas de la tabla HORARIO_AULANombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Version INTEGER 4 X Nuacutemero de individuo o versioacutenAula Text(6) 6 Nombre del aulaLunes SMALLINT 4 Nuacutemero de horas que se utiliza el aula

el diacutea lunesMartes SMALLINT 4Miercoles SMALLINT 4Jueves SMALLINT 4Viernes SMALLINT 4Sabado SMALLINT 4Hora SMALLINT 4 Hora de utilizacioacuten del aulaId_aula INTEGER 4 X Identificador del aula en la versioacuten

Tabla MATERIASFuncioacuten Esta es una de las principales tablas del proyecto se utiliza en todos los moacutedulos del

sistema contiene informacioacuten base para caacutelculos diversos ademaacutes contiene tambieacuten lasllaves de diferentes tablas que describen de manera de manera especial a las materias

Lista de columnas de la tabla MATERIASNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia COUNTER 4 X Identificacioacuten de la materia llaveprincipal

Materia Text(40) 40 Nombre de la materiaNum de Hrs prac SMALLINT 4 Nuacutemero de horas praacutecticasNum de Hrs teo SMALLINT 4 Nuacutemero de horas teoacutericasClave de Asig Text(8) 8 Clave oficial de la materiaId_Carrera Text(15) 15 X Carrera a la que pertenece la materiaCreditos SMALLINT 4 Creacuteditos de la materia

Capiacutetulo 4 Anaacutelisis y Disentildeo

Semestre SMALLINT 4 Semestre en que se imparte la materiaObservaciones Text(60) 60Tronco comun YesNo 1 Definicioacuten de especialidad o tronco

comuacutenalumnos porgrupo

SMALLINT 4 Capacidad sugerida de los grupos deesta materia

clave de asigprerequisito

Text(40) 40 Clave de asignatura del prerrequisito

clave de asigprerequisito1

Text(40) 40 Clave de asignatura del prerrequisito

Id_rama INTEGER 4 X Identificador de la rama a la quepertenece la materia

Suma_mat SMALLINT 4 Suma total de los perfilespertenecientes a la materia

Orden SMALLINT 4 Es el nuacutemero de materia en un paqueteTipo_horario INTEGER 4 X El tipo de horario asignado a materia

Tabla MAT_PARA_PROFFuncioacuten La tabla almacena para cada catedraacutetico las asignaturas que puede impartir y el grado

de certeza con que puede hacerlo se almacena en esta tabla el resultado de la inferenciadel Sistema Experto

Lista de columnas de la tabla MAT_PARA_PROFNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_catedratico SMALLINT 4 X Nuacutemero de tarjeta del profesorId_materia INTEGER 4 X Identificador de la materiaPorcentaje_mat SMALLINT 4 Porcentaje de certeza con que un

profesor puede impartir una materia

Tabla PERFILESFuncioacuten Tabla que contiene una relacioacuten de todas las caracteriacutesticas de las materias

caracteriacutesticas necesarias para poder impartirlas es al mismo tiempo la tabla quecontiene la relacioacuten general de los conocimientos que poseen los profesores

Lista de columnas de la tabla PERFILESNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_perfil COUNTER 4 X Identificador del perfil paraasignaciones de materias acatedraacuteticos

Id_tipo INTEGER 4 X Identificador del tipo del perfilDescripcion_perfil Text(60) 60 Descripcioacuten de una caracteriacutestica del

perfil de una materia o un catedraacutetico

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla PERFIL_CATEDRATICOFuncioacuten Tabla que contiene el perfil de todos los catedraacuteticos (pueden llamarse las reglas) del

Sistema Experto que recomienda profesores para las materias el perfil de un catedraacuteticoesta definido por los conceptos que domina de las materias

Lista de columnas de la tabla PERFIL_CATEDRATICONombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_catedratico SMALLINT 4 X Identificador del catedraacutetico paradefinicioacuten de su perfil acadeacutemico

Id_perfil INTEGER 4 X Identificador del perfil que define aun catedraacutetico

Prioridad_perfil_cate SMALLINT 4 Porcentaje en que contribuye elperfil especificado en la definicioacutendel catedraacutetico

Tabla PERFIL_MATERIAFuncioacuten Esta tabla almacena las reglas que definen el perfil de una materia contiene las

caracteriacutesticas y temas que forman el temario de la materia

Lista de columnas de la tabla PERFIL_MATERIANombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materia en laregla de la materia

Id_perfil INTEGER 4 X Identificador del perfilperteneciente a una materia

Prioridad_perfil_mat INTEGER 4 Porcentaje en que contribuye esteperfil particular a definir unamateria

Tabla PROF_PARA_MATFuncioacuten Esta tabla almacena la inferencia del Sistema Experto para determinar cuales son los

mejores profesores para impartir una materia contiene para cada asignatura una lista delos profesores y el porcentaje de certeza con que pueden desempentildearse si la imparten

Capiacutetulo 4 Anaacutelisis y Disentildeo

Lista de columnas de la tabla PROF_PARA_MATNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de materiaId_catedratico SMALLINT 4 X Identificador de catedraacuteticoPorcentaje_cate SMALLINT 4 de certeza con que el catedraacutetico X

puede impartir la materia Y

Tabla POBLACIONFuncioacuten La tabla es la maacutes importante para el moacutedulo de Algoritmo Geneacutetico porque almacena los

datos de cada individuo hipoacutetesis o versioacuten que son generados ya sea por la poblacioacuteninicial aleatoria o por los diversos operadores geneacuteticos contiene copias (versiones) delcondensado de horarios con aulas aleatorias

Lista de columnas de la tabla POBLACIONNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materiaGrupo Text(4) 4 Grupo de la materiaId_catedratico INTEGER 4 X Identificador del catedraticoAula Text(4) 4 X Nombre del aula (edificio + numero)Hora_inicio INTEGER 4 Hora de inicio del grupoHora_lunes Text(6) 6 Hora inicio del lunesHora_martes Text(6) 6Hora_miercoles Text(6) 6Hora_jueves Text(6) 6Hora_viernes Text(6) 6Version INTEGER 4 X Nuacutemero de la versioacuten o hipoacutetesisPeriodo Text(10) 10 Periodo o semestre del grupoAnio INTEGER 4 Antildeo del grupo

Tabla RAMA_MATERIAFuncioacuten La tabla almacena la clasificacioacuten de las materias de acuerdo a las ciencias a la que

pertenecen

Lista de columnas de la tabla RAMA_MATERIANombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_rama COUNTER 4 X Identificador de la rama de unamateria (clasificacioacuten)

Nombre_rama Text(30) 30 Descripcioacuten de la rama de unamateria

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla REGLAS

Funcioacuten Esta tabla almacena las reglas utilizadas para generar los grupos que se deben ofertar elproacuteximo semestre indicando para cada regla el tipo de ajuste que debe aplicarse

Lista de Columnas de la Tabla REGLASNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Descripcion Text(70) 70 Descripcioacuten de la regla para ajustarel nuacutemero de grupos

Id_regla COUNTER 4 X Identificador de la reglaId_ajuste INTEGER 4 X Identificador del tipo de ajuste que

se aplica cuando esta regla sedispara para alguna materia

Tot_peso INTEGER 4 Total de los pesos de lascaracteriacutesticas de esta regla

Tabla SERVICIOS_ESCOLARESFuncioacuten En esta tabla se almacenan los datos estadiacutesticos de cada materia que provienen de

Servicios Escolares para el caacutelculo del nuacutemero de grupos que deben abrirse para elproacuteximo semestre contiene tambieacuten los paraacutemetros proporcionados por el SistemaExperto para realizar el ajuste al nuacutemero de grupos calculado inicialmente

Lista de columnas de la tabla SERVICIOS_ESCOLARESNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materiaINSCRITOS SMALLINT 4 Nuacutemero de alumnos inscritos

actualmente en el grupoNO INSCRITOS SMALLINT 4 Nuacutemero de alumnos que pueden

cursar la materia pero no seinscribieron

SIMULACION SMALLINT 4 Simulacioacuten de Servicios Escolaresde alumnos que podraacuten cursar lamateria

PROXIMOSEMESTRE

SMALLINT 4 Resultado del calculo de ServEscolares de alumnos que cursaraacutenla materia

GRUPOSREQUERIDOS

DOUBLE 4 Grupos requeridos para abrirproacuteximo semestre seguacuten caacutelculosiniciales

Indice dereprobacion

DOUBLE 4 Indice de reprobacioacuten de la materia

periodo Text(7) 7 Periodo de caacutelculo de horarios actual(semestre ene-jun o ago-dic)

Capiacutetulo 4 Anaacutelisis y Disentildeo

antildeo INTEGER 4 Antildeo de caacutelculo de horariosGrupos ajustado SMALLINT 4 Nuacutemero de grupos a solicitar para

abrir proacuteximo semestreAlumnos ajustado SMALLINT 4 Caacutelculo final del numero de alumnos

del proacuteximo semestre en estamateria

Id_ajuste INTEGER 4 X Tipo del ajuste aplicado por elSistema Experto al campogrupos_requeridos

Id_regla SMALLINT 4 X Regla que se disparo para realizar elajuste

Tabla TIPO_HORARIOFuncioacuten Esta tabla almacena los formatos de los distintos tipos de horario que existen y se ofrecen

para cada materia horarios de 2345 diacuteas a la semana y de 123 o 4 horas por diacutea

Lista de columnas de la tabla TIPO_HORARIONombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Tipo_horario COUNTER 4 X Identificador del tipo de horarioDescripcion Text(20) 20 Descripcioacuten del tipo de horarioLunes SMALLINT 4 Nuacutemero de horas del lunesMartes SMALLINT 4 Nuacutemero de horas del martesMiercoles SMALLINT 4 Nuacutemero de horas del mieacutercolesJueves SMALLINT 4 Nuacutemero de horas del juevesViernes SMALLINT 4 Nuacutemero de horas del viernesSabado SMALLINT 4 Nuacutemero de horas del saacutebado

Tabla TIPO_PERFILFuncioacuten Aquiacute se almacena una clasificacioacuten de los perfiles de acuerdo a la rama de conocimiento

a la que pertenecen

Lista de columnas de la tabla TIPO_PERFILNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_tipo COUNTER 4 X Identificador del tipo de perfilTipo_perfil Text(30) 30 Descripcioacuten del tipo de perfil de los

catedraacuteticos o las materias

Capiacutetulo 4 Anaacutelisis y Disentildeo

456 Lista de funciones o programas

Nombre Programa Descripcioacuten del programa

Ajustes Datos generales de los tipos de ajustes que se aplican al nuacutemero degrupos por abrir al dato de Servicios Escolares

Aulas Captura los datos de las aulas disponibles para claseCaptura_horarios Este programa realiza los cambios posteriores a la generacioacutenCarreras Captura los datos de las carreras del tecnoloacutegicoCatedraticos Datos generales de los catedraacuteticosClonacion Obtiene una copia (clon) del mejor individuo de una generacioacutenCons_ajuste Muestra yo imprime los datos generales de los ajustesCons_aulas Emite una pantalla de consulta general de aulasCons_captura_horarios Muestra una pantalla de consulta de los horarios generadosCons_carrera Despliega yo imprime las carrerasCons_catedratico Muestraimprime los datos generales de los catedraacuteticosCons_criterio Formulario que muestra yo despliega los criterios generalesCons_critXmat Muestra yo imprime los criterios de una materiaCons_critXregla Despliegaimprime los criterios que forman una reglaCons_gpos_abrir Explicacioacuten de la inferencia realizada (reglas disparadas)Cons_hist_crit Muestra las reglas de produccioacuten de los criteriosCons_materia Pantalla que despliega yo imprime datos de las materiasCons_materia_gral Pantalla de consulta general de los datos de materiasCons_perf_cate Consultaimprime los datos del perfil acadeacutemico de los

catedraacuteticosCons_perf_mate Consultaimprime los datos del perfil acadeacutemico de las materiasCons_perfil Muestraimprime datos de los perfilesCons_perfiles Consulta a la lista de perfiles o caracteriacutesticas Cons_perfilxmat Consulta a las reglas de produccioacuten del perfil de una materiaCons_rama Consulta a la lista de ramas (clasificacioacuten de las materias)Cons_reglas Consulta a la base de reglas para ajustar nuacutemero de gruposCons_serv_esc Consulta a las tablas que tienen informacioacuten de Servicios

EscolaresCons_serv_escol Pantalla que muestra yo imprime los datos estadiacutesticos de Serv

EscCons_tipo_perfil Consulta a los tipos de perfil (clasificacioacuten de perfiles)Crit_X_mat Formulario que captura los criterios pertenecientes a una materiaCrit_X_regla Captura los criterios que forman una regla de produccioacutenCriterios Pantalla que captura el conocimiento de criterios para el SECriteriosxmat Pantalla de captura para los criterios por materiaCruzamiento Programa que realiza la combinacioacuten (cruza) de individuos de la

poblacioacuten en el Algoritmo Geneacutetico

Capiacutetulo 4 Anaacutelisis y Disentildeo

Evaluacion Programa que realiza la creacioacuten del cromosoma de evaluacioacuten alevaluar las versiones de horarios de una generacioacuten

Explica_ajustes Moacutedulo de explicacioacuten del porque se aplicoacute determinado ajuste auna materia

Explica_mat_p_prof Explicacioacuten del porque una materia puede ser impartida por unprofesor con cierto grado de certidumbre

Explica_prof_p_mat Explicacion del porque un profesor puede impartir una materiacon cierto grado de certidumbre

Genera_horarios Sistema que utiliza Programacioacuten Loacutegica de Restricciones paragenerar los paquetes de horarios de un semestre

Genera_paquete Muestra el paquete generado por el procesoGrupo_nuevo Programa que va generando los paquetesGrupos_por_abrir Inferencia realizada para definir el ajuste aplicado a los grupos

definidos por Servicios EscolaresHistorial_criterios Captura los criterios necesarios para hacer una reglaHistorial_materia Captara los criterios por materiaMat_para_prof Inferencia realizada para determinar que profesores pueden

impartir una materiaMaterias Actualizacioacuten al archivo datos generales de las materiasMenu_algoritmos_geneticos Menuacute del moacutedulo para asignar aula a los gruposMenu_generacion_grupos Menuacute del Sistema Experto para definir cuantos grupos abrirMenu_asigna_horario Menuacute del moacutedulo asignacioacuten de horarioMenu_principal Menuacute principal del sistemaMenu_sel_catedra Menuacute del Sistema Experto para seleccioacuten de catedraacuteticos a

materiaMutacion Programa que hace la modificacioacuten de informacioacuten de aulas de

alguna versioacuten (versioacuten)Perfil_catedratico Captura el perfil acadeacutemico de los catedraacuteticosPerfil_materia Captura el perfil acadeacutemico de las materiasPerfiles Datos generales del perfil acadeacutemico de materias y catedraacuteticosPoblacion_inicial Programa que genera versiones de horarios y que de manera

aleatoria le va asignando aula a los gruposPortada_principal Es la ventana de entrada al sistemaProf_para_mat Inferencia realizada para determinar que materias pueden ser

impartidas por un profesorRama Programa que capturas las posibles ramas de los materiasReglas Datos generales de las reglas de produccioacuten para definir el No de

grupos por abrirSeleccioacuten Proceso que selecciona las mejores versiones de horarios (mejores

individuos) y elimina las menos aptasServ_escolares Pantalla de captura de los datos estadiacutesticos de Servicios EscolaresTipo_perfil Programa que captura la clasificacioacuten de los perfiles de materias y

profesores

Capiacutetulo 4 Anaacutelisis y Disentildeo

457 Diagrama de Arquitectura (Menuacutes)

Menuacute general

Menuacute Grupos porabrir

MenuacuteGeneracioacuten de

horarios

MenuacuteAsignacioacuten de

aulas

Datos de materias

Estadiacutesticos Serv Esc

Criterios

Criterios por materia

Reglas

Criterios por regla

Ajustes

Carreras

Nuacutemero de grupos

MenuacuteSeleccioacuten decatedraacuteticos

Genera paquete

Genera horarios

Datos generalesgrupos

Datos de aulas

Genera poblacioacuteninicial

Evaluacioacuten

Seleccioacuten

Cruzamiento

Clonacioacuten

Mutacioacuten

Horarios finales

Perfiles

Perfil de las materias

Perfil de catedraacuteticos

Catedraacuteticos

Perfil de loscatedraacuteticos

Asignacioacuten materia aprofesor

Asignacioacuten profesor amateria

Capiacutetulo 4 Anaacutelisis y Disentildeo

Capiacutetulo 5 Implementacioacuten del sistema

CAPIacuteTULO 5

IMPLEMENTACIOacuteN

51 Pantallas del sistema

La Figura 51 muestra la portada inicial del proyecto Contiene los logotipos de las tresinstituciones participantes y el nombre del proyecto

Fig 51 Portada inicial del proyecto

La Figura 52 es la pantalla que proporciona la informacioacuten de los autores del proyecto

Es el botoacutende entrada alsistema

Botoacuten deinformacioacuten delos autores

Capiacutetulo 5 Implementacioacuten del sistema

Fig 52 Acerca del sistema

La Figura 53 muestra el menuacute principal del proyecto contiene y 4 moacutedulos La primeraopcioacuten incluye los moacutedulos administrativo y generacioacuten de grupos la segunda opcioacutenincluye seleccioacuten de maestro y seleccioacuten de materia

Fig 53 Menuacute principal del proyecto

Moacutedulos delproyecto

Cuadro queproporcionalainformacioacutende la opcioacutensentildealada porel cursor

Capiacutetulo 5 Implementacioacuten del sistema

En la Figura 54 se tiene la pantalla del menuacute que agrupa los programas del moacuteduloadministrativo y Sistema Experto para determinar el nuacutemero de grupos por abrir seguacutenlos caacutelculos realizados con los datos de Servicios Escolares y el ajuste a ese dato

Fig 54 Menuacute grupos por abrir

Este programa del moacutedulo administrativo (Figura 55) sirve para capturar la informacioacutengeneral de las asignaturas que componen una carrera

Fig 55 Materias

Programas delos moacutedulos

Descripcioacutende laactividad delprogramaseleccionado

Nombre de laasignatura

Nuacutemero dehoraspraacutecticas yteoacutericas

Alumnos por grupopara calcularcantidad de grupos

Dato para formarpaquetes porsemestre

Icono quehabilita lacaptura denuevosdatos

Icono queregresa alMenuacute anterior

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 56 es un ejemplo de la consulta de datos en pantalla

Fig 56 Consulta Materias

La Figura 57 es la pantalla donde se capturan los datos estadiacutesticos provenientes deServicios Escolares contiene la informacioacuten necesaria para realizar el caacutelculo originaldel nuacutemero de grupos de cada asignatura que se debe abrir para ofertarse a los alumnosel siguiente semestre la foacutermula mostrada proporciona tal dato

Botoacuten queregresa elcontrol alprogramaque loinvocoacute

Alumnosesperados parael proacuteximo

Fccg

Datosestadiacutesticos

Fig 57 Pantalla Servicios Es

semestre

oacutermula paraaacutelculoantidad-rupos

Caacutelculosgeneral y pormateria

Grupos (datoestadiacutestico)

colares

Capiacutetulo 5 Implementacioacuten del sistema

En la Figura 58 se muestra la pantalla de consulta de los datos estadiacutesticosproporcionados por Servicios Escolares

Fig 58 Pantalla consulta Servicios Escolares

Esta pantalla captura las caracteriacutesticas por materia que dan origen al conocimientonecesario para definir el tipo de ajuste que se aplica al dato del nuacutemero de gruposproporcionado por los caacutelculos estadiacutesticos de la pantalla anterior

Criterios de unamateria

Fig 59 Pantalla criterios por materia

Grado deimportancia de esacaracteriacutestica para la

Capiacutetulo 5 Implementacioacuten del sistema

En la Figura 510 se muestra un ejemplo de la consulta a la base de datos del sistema enla parte de criterios por materia

Fig 510 Pantalla consulta criterios por materia

Esta pantalla (fig 511) proporciona al sistema la capacidad de capturar modificarborrar e imprimir las carreras del Instituto Tecnoloacutegico de Zacatepec

Fig 511 Pantalla carreras

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 512 proporciona al sistema la capacidad para capturar los criterios(conocimientos) del experto para definir a cada materia

Fig 512 Pantalla criterios

La Figura 513 muestra un ejemplo de consulta al archivo de los criterios capturados enel sistema

Fig 513 Pantalla consulta criterios

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 514 muestra la pantalla de captura de las reglas que componen el SistemaExperto para determinar el tipo de ajuste que se aplicaraacute al dato estadiacutestico del nuacutemerode grupos que se van a abrir el proacuteximo semestre cada regla tiene asignado un tipo deajuste

Fig 514 Pantalla reglas

La Figura 515 muestra un ejemplo de la consulta al archivo de las reglas que utiliza elSistema Experto para determinar nuacutemero de grupos por ofertar el proacuteximo semestre

Fig 515 Pantalla consulta reglas

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 516 muestra la pantalla de captura al archivo de ajustes noacutetese que ladescripcioacuten explica en extenso la accioacuten que se realiza al aplicar este ajuste provenientede una regla disparada por los criterios pertenecientes a la definicioacuten de una materia

Fig 516 Pantalla ajustes

La Figura 517 muestra la pantalla de la consulta a los ajustes que contiene el sistema

Fig 517 Pantalla consulta ajustes

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 518 muestra la pantalla que captura los criterios para cada regla Una reglaestaacute formada por el mismo tipo de criterios que definen a las materias

Criteriosde una

Fig 518 Pantalla criterios por regla

La Figura 519 muestra el ejemplo de una consulta de los criterios que definen a unaregla

Fig 519 Pantalla consulta criterios por regla

Reglas de produccioacuten Criterios por regla

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 520 es la pantalla maacutes importante de moacutedulo de generacioacuten de grupos porquees donde se realiza la inferencia para calcular el tipo de ajuste que se va a aplicar a cadamateria con base en las reglas que se disparan y que hacen match los criterios de unaregla y los criterios de una materia

Fig 520 Pantalla caacutelculo de ajustes

Esta pantalla (Figura 521) ofrece una explicacioacuten mostrando los criterios que definenuna materia y su correspondiente regla disparada mostrando los criterios de la regla quehacen match con los criterios de la materia

Fig 521 Pantalla explicacioacuten de la inferencia

Asignaturaa la que sele aplicaraacuteel ajuste

Regla quese disparaseguacutencriterios

Tipo deajuste quese aplica

Dato seguacutenestadiacutestico

Datos seguacutenajuste delSistemaExperto

Inferenciageneral

Inferenciaindividual

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 522 muestra el formulario que forma los paquetes de materias seguacuten laretiacutecula de una carrera muestra el nuacutemero de grupos por cada materia que se van aformar y hace los paquetes asignando los grupos AA AB AC AD

Fig 522 Pantalla inicial del moacutedulo generacioacuten de horarios

La Figura 523 es el formulario del moacutedulo Programacioacuten Loacutegica de Regenera los horarios por paquete satisfaciendo las restricciones para forlibre de choques continuo (sin horas muertas) cumpliendo las horas por m

Fig 523 Pantalla principal del moacutedulo generacioacuten de horari

Semestre al que sele formaraacuten lospaquetes

Paquetes generadosHora de iniciode clases decada grupo

Materias delsemestre

Nuacutemero de gruposal que se lesgeneraraacute horario

MateriaPaquete

Nuacutemero dehoras por diacutea

Botonesque invocanal moacutedulogeneradorde horarios

stricciones quemar un horarioateria etc

Hora de iniciode la materia

os

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 524 muestra el moacutedulo para asignar aula a los horarios que ya tienen materiagrupo y hora

Fig 524 Pantalla principal del menuacute Algoritmos Geneacuteticos

Esta pantalla (Figura 525) se utiliza para hacer altas bajas consulta y modificaciones alos grupos que se les va a dar aula

Fig 525 Pantalla de administracioacuten de grupos

Periodode loshorarios

Hora iniciodel grupo

Hora por diacutea

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 526 muestra una consulta de la pantalla administracioacuten de grupos

Fig 526 Pantalla de consulta de administracioacuten de grupos

La Figura 527 muestra la pantalla para actualizar las aulas disponibles por las personasque generan los horarios estas aulas estaacuten disponibles para que el Algoritmo Geneacuteticolas utilice para asignarles grupos durante el proceso

Fig 527 Pantalla del control de aulas

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 528 muestra la consulta de las aulas que utiliza el moacutedulo generacioacuten deaulas

Fig 528 Pantalla de consultas del control de aulas

La Figura 529 muestra la pantalla que genera la poblacioacuten inicial a partir de los datosgenerales proveniente de los moacutedulos anteriores

Fig 529 Pantalla de genera poblacioacuten inicial

Nuacutemero dehipoacutetesisversiones oindividuos

Aula aleatoriagenerada

Este botoacuteninicia lageneracioacutende las nversionesde horarios

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 530 muestra la pantalla que evaluacutea las versiones originadas y genera paracada una de ellas un cromosoma cuyos genes contienen la informacioacuten obtenida

Fig 530 Pantalla de evaluacioacuten de versiones

La Figura 531 muestra el formulario del proceso de seleccioacuten de las mejores versionesde horarios toma aquellas que tienen menor numero de choques y mayor espacio deocupacioacuten de aulas

Fig 531 Pantalla del proceso de seleccioacuten

Cantidad deversiones quesobreviviraacuten

Cromosomas delos mejoresindividuos

Botoacuten queinicia elproceso deseleccioacuten

Botoacuten queinicia elproceso deeliminacioacuten

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 532 muestra la pantalla del proceso de clonacioacuten donde se selecciona la mejorversioacuten y se obtiene un clon ideacutentico con un nuevo nuacutemero de versioacuten

Fig 532 Pantalla del proceso de clonacioacuten

La Figura 533 muestra la pantalla del proceso de mutacioacuten utilizado para hacer elcambio ldquomutarrdquo los datos de una versioacuten para romper alguacuten ciclado de la tendencia haciael resultado o simplemente para acelerar el proceso de optimizacioacuten

Cromosomasde versionesmaacutes aptas

Nuacutemero demejor versioacuten

Poblacioacutenversiones

Cromosomamuestra lasmejoresversiones

Aulas quepueden mutarse

Botoacuten queinicia elproceso demutacioacuten

Nuacutemero deversioacuten

Fig 533 Pantalla de mutacioacuten

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 534 muestra la pantalla donde se realiza el cruzamiento utilizando plantillaspredeterminadas dirigiendo la cruza de versiones por paquetes de materias agrupadas porsemestre y cada plantilla genera una nueva versioacuten con la combinacioacuten de fragmentosde varias versiones

Fig 534 Pantalla del proceso de cruzamiento

La Figura 535 permite la seleccioacuten y enviacuteo de la mejor versioacuten de horarios y adaptarloal moacutedulo administrativo para su distribucioacuten y publicacioacuten

Fig 535 Horarios finales

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 536 muestra el menuacute de los moacutedulos que sugiere maestros para impartir unaasignatura y sugerencia de asignatura para alguacuten maestro

Fig 536 Pantalla menuacute seleccioacuten de catedraacuteticos

La Figura 537 muestra la pantalla para la captura de caracteriacutesticas de losconocimientos requeridos para dar una materia que son las mismas caracteriacutesticas quedefinen los conocimientos de un profesor para impartir las materias

Fig 537 Pantalla de perfiles

Clasificacioacutende los perfiles

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 538 muestra una consulta de los perfiles agrupados por tipo

Fig 538 Pantalla de consulta perfiles

La Figura 539 muestra la pantalla en la que se definen los conocimientos requeridospara poder impartir una asignatura de acuerdo al perfil y contenido temaacutetico

Fig 539 Pantalla perfiles de las materias

La Figura 540 muestra un ejemplo de la consulta al perfil de una materia

Importancia de lacaracteriacutestica en la materia

Capiacutetulo 5 Implementacioacuten del sistema

Fig 540 Pantalla consulta perfiles de las materias

La Figura 541 es utilizada para capturar los datos de los catedraacuteticos que imparten lasasignaturas de una carrera

Fig 541 Pantalla captura datos de catedraacuteticos

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 542 es una muestra de la consulta al archivo de los catedraacuteticos

Fig 542 Pantalla consulta datos de catedraacuteticos

La Figura 543 muestra la pantalla en que se captura el perfil de los catedraacuteticos elperfil son los conocimientos que tiene el profesor que lo capacitan para impartir algunaasignatura

Fig 543 Pantalla captura perfil de catedraacuteticos

Conocimientosdel profesor

Barra deseleccioacuten deperfiles

Grado dedominio deltema

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 544 muestra una consulta tiacutepica al archivo de perfiles de los catedraacuteticos

Fig 544 Pantalla consulta perfil de catedraacuteticos

La Figura 545 muestra la pantalla de inferencia final que sugiere quienes son loscatedraacuteticos maacutes capacitados para impartir una materia haciendo la inferencia mediantela buacutesqueda de matchs entre el perfil de la asignatura y el perfil del catedraacutetico

Fig 545 Pantalla muestra inferencia catedraacuteticos para materia

Candidatos aimpartir lamateria

Botoacuten del proceso deinferencia generalPorcentaje de certeza con

que puede impartirla

Botoacuten delprocesodeinferenciaparticular

Botoacuten queinvoca almoacutedulo deexplicacioacuten

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 546 muestra la pantalla de explicacioacuten donde se indican los perfiles de lamateria y el perfil del profesor

Fig 546 Pantalla explicacioacuten porque un maestro puede dar una materia

La Figura 547 muestra el resultado de la inferencia del proceso que sugiere las materiasque puede impartir un profesor con base en el perfil de la materia y el perfil del profesor

Fig 547 Pantalla materias que puede impartir un profesor

Posibles materia aimpartir Porcentaje de certeza con

que puede impartirlaBotoacuten del proceso deinferencia general

Botoacuten delprocesodeinferenciaparticular

Botoacuten queinvoca almoacutedulo deexplicacioacuten

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 548 muestra la pantalla de explicacioacuten donde se indican el perfil de la materiay el perfil del profesor

Fig 548 Pantalla de explicacioacuten porque un profesor puede dar una materia

Capiacutetulo 5 Implementacioacuten del sistema

Capiacutetulo 6 Pruebas y Resultados

CAPIacuteTULO 6

PRUEBAS Y RESULTADOS

61 Pruebas del sistema

Se pueden detectar dentro del desarrollo de sistemas las actividades para realizarpruebas las producidas durante la etapa de requerimientos de disentildeo preliminar y las dedisentildeo detallado Clasificadas de otra manera eacutestas pueden ser funcionales deintegracioacuten y de implementacioacuten

La finalidad de realizar Pruebas funcionales es detectar errores que pudieran habersedado durante las fases de anaacutelisis y de especificacioacuten Por otro lado ellas pueden ayudara probar si el disentildeo es correcto ya que esta fase en sus dos niveles preliminar ydetallado estaacute basada en el anaacutelisis y especificacioacuten de requerimientos del sistema Estaactividad es guiada por los objetivos y requerimientos plasmados Se busca en estaprueba la posibilidad de que se haya incurrido en errores de conceptualizacioacuten yo deespecificacioacuten Las pruebas se organizan tomando como guiacutea las diferentes opciones delsistema final

Las Pruebas de integracioacuten se realizan cuando se procede a interconectar los diferentessubsistemas que constituyen el futuro sistema Como es conocido un sistema puede serdesarrollado por diferentes personas Por esta razoacuten es de suma importancia probar lainterconexioacuten de los diferentes subsistemas y asiacute verificar que ha sido realizada demanera correcta

Las Pruebas de implementacioacuten o codificacioacuten son las que se realizan directamentesobre los programas que se estaacuten desarrollando durante la fase de implementacioacuten Estosmoacutedulos o programas a su vez constituyen subsistemas Por esta razoacuten la integracioacuten delos diferentes moacutedulos que forman un subsistema deben ser probados Estas pruebasdeben estar basadas en la especificacioacuten de disentildeo preliminar y detallado [Gerez 1985]

Los siguientes rubros describen las pruebas maacutes importantes que se consideraron paravalidar el sistema las pruebas funcionales Las pruebas de implementacioacuten se realizarondurante el desarrollo de la codificacioacuten de los diferentes moacutedulos

Capiacutetulo 6 Pruebas y Resultados

62 PRUEBAS DEL SISTEMA

621 PRUEBA 1 AacuteREAS DE MENUacuteS

Objetivo Guiar al usuario en el desarrollo del proceso Esta prueba verifica que elsistema tenga como opciones principales y submenuacutes los sentildealados en la definicioacuten derequerimientos

Criterios de aceptacioacuten Cada prueba verifica que el sistema produzca los resultadossentildealados en la definicioacuten de requerimientos

Procedimiento de la prueba A continuacioacuten se despliegan las pantallascorrespondientes a los menuacutes principales y submenuacutes Las opciones principales delproyecto son dos Menu Principal y Datos de los autores

Resultado de la prueba Los resultados fueron satisfactorios En todas las opcionesactivadas el sistema presentoacute los submenuacutes definidos en la etapa de requerimientos

La Figura 61 muestra la portada inicial del proyecto Contiene los logotipos de las tresinstituciones participantes y el nombre del proyecto

Fig 61 Portada inicial del proyecto

Es el botoacutende entrada alsistema

Botoacuten deinformacioacutende los autores

Capiacutetulo 6 Pruebas y Resultados

La Figura 62 muestra el menuacute principal del proyecto y contiene 4 moacutedulos La primeraopcioacuten incluye los moacutedulos administrativo y generacioacuten de grupos la segunda opcioacutenincluye seleccioacuten de maestro y seleccioacuten de materia

Fig 62 Menuacute principal del proyecto

En la Figura 63 se tiene la pantalla del menuacute que agrupa los programas del moacuteduloadministrativo y Sistema Experto para determinar el nuacutemero de grupos por abrir seguacutenlos caacutelculos realizados con los datos de Servicios Escolares y el ajuste a ese dato

Fig 63 Menuacute grupos por abrir

Moacutedulos delproyecto

Cuadro queproporcionalainformacioacutende la opcioacutensentildealada porel cursor

Programas delos moacutedulos

Descripcioacutende laactividad delprogramaseleccionado

Capiacutetulo 6 Pruebas y Resultados

La Figura 64 muestra el menuacute de los moacutedulos que sugiere maestros para impartir unaasignatura y sugerencia de asignatura para alguacuten maestro

Fig 64 Pantalla menuacute seleccioacuten de catedraacuteticos

La Figura 65 muestra el moacutedulo para asignar aula a los horarios que ya tienen materiagrupo y hora

Fig 65 Pantalla principal del menuacute Algoritmos Geneacuteticos

Capiacutetulo 6 Pruebas y Resultados

622 PRUEBA 2 VALIDACIOacuteN DE ENTRADAS

Objetivo Evitar peacuterdidas de tiempo con entradas erroacuteneas de datos y resultados sinvalidez

Criterios de aceptacioacuten Esta prueba deberaacute mostrar de manera exacta la informacioacutenal seleccionar la opcioacuten deseada

Procedimiento de la prueba Se verifica que todas las cajas de texto tengan el dato quese pide y una vez dados todos los datos se guardan para que estos datos posteriormentesean procesados por el sistema y almacenen los datos correctos

Resultado de la prueba Los resultados fueron satisfactorios En todas las opcionesactivadas el sistema presentoacute los resultados correctos a cada opcioacuten Ademaacutes losdesplegados de mensajes de error se presentaron de manera correcta en todas laspruebas

La Figura 66 muestra la captura de datos de una asignatura y enviacutea el correspondientemensaje de error si una caja de texto se encuentra vaciacutea

Fig 66 Pantalla de captura de datos de las Materias

Muestra elmensaje deerror si esque hacefalta alguacuten

Capiacutetulo 6 Pruebas y Resultados

La Figura 67 muestra una pantalla de captura de datos asignando criterios a una materiay valida la no duplicidad de criterios en esa materia se enviacutea el correspondiente mensajede error si una entrada ya fue capturada

Fig 67 Pantalla de captura de datos de Criterios por Materia

La Figura 68 muestra una pantalla de captura de datos de las carreras al encontrar unregistro ya capturado muestra el mensaje de error si una carrera ya fue capturada

Fig 68 Pantalla de captura de datos de Carreras

Muestra elmensajede error sies que yaexiste elregistro

Muestra elmensaje deerror si esque yaexiste elregistro

Capiacutetulo 6 Pruebas y Resultados

623 PRUEBA 3 DESPLEGADO DE RESULTADOS

6231 MOacuteDULO DE GENERACIOacuteN DE GRUPOS POR ABRIR

Objetivo Proporcionar los datos que el moacutedulo pide para que posteriormente elsistema genere el nuacutemero de grupos sugerido por abrir para cada materia

Criterios de aceptacioacuten Esta prueba muestra la lista de grupos que se deben abrirdespueacutes de aplicar los criterios del Sistema Experto

Procedimiento de la prueba Una vez que se proporcionan los datos que el SistemaExperto requiere el sistema generaraacute una lista de los grupos que se deben abrir elproacuteximo semestre

Resultado de la prueba Los resultados fueron satisfactorios En todos los casospresentados el sistema generoacute la lista en forma satisfactoria y con la informacioacutencorrecta

La Figura 69 es la pantalla maacutes importante de moacutedulo de generacioacuten de grupos porquees donde se realiza la inferencia para calcular el tipo de ajuste que se va a aplicar a cadamateria con base en las reglas que se disparan y que hacen match los criterios de unaregla y los criterios de una materia

Asignaturaa la que sele aplicaraacuteel ajuste

Regla quese disparaseguacutencriterios

Tipo deajuste quese aplica

Inferenciageneral

Datoseguacuten

Fig 69 Pantalla caacutelculo de ajustes

Datos seguacutenajuste delSistemaExperto

Inferenciaindividual

Capiacutetulo 6 Pruebas y Resultados

6232 MOacuteDULO DE GENERACIOacuteN DE HORARIOS

Objetivo Proporcionar los datos que el moacutedulo pide para que posteriormente elsistema genere el horario por semestre de las materias de una carrera

Criterios de aceptacioacuten Esta prueba debe mostrar los horarios para las materias sinerrores sin choques de hora en un paquete

Procedimiento de la prueba Recibe como entrada cuantos grupos abrir de cadamateria en cada semestre y genera primero los paquetes posteriormente a cada paquetede materias le asigna la hora por materia

Resultado de la prueba Los resultados fueron satisfactorios En todos los casospresentados el sistema generoacute los horarios correspondientes

La Figura 610 muestra el formulario que forma los paquetes de materias seguacuten laretiacutecula de una carrera muestra el nuacutemero de grupos por cada materia que se van aformar y hace los paquetes asignando los grupos AA AB AC AD

Fig 610 Pantalla inicial del moacutedulo generacioacuten de horarios

Semestre al que sele formaraacuten lospaquetes

Paquetes generadosHora de iniciode clases decada grupo

Materias delsemestre

Nuacutemero de grupospor al que se lesgeneraraacute horario

Botonesque invocanal moacutedulogeneradorde horarios

Capiacutetulo 6 Pruebas y Resultados

La Figura 611 es el formulario del moacutedulo Programacioacuten Loacutegica de Restricciones quegenera los horarios por paquete satisfaciendo las restricciones para formar un horariolibre de choques continuo (sin horas muertas) cumpliendo las horas por materia etc

Fig 611 Pantalla princip

6233 MOacuteDULO ASIGNACIOacuteN D

Objetivo Utilizar los datos generadoaulas a los paquetes de materias

Criterios de aceptacioacuten Esta pruebaasignacioacuten de aula sin choques

Procedimiento de la prueba Se genAlgoritmos Geneacuteticos durante variachoques en el aula

Resultado de la prueba Los resupresentados el sistema generoacute las aula

MateriaPaquete

Nuacutemero dehoras por diacutea

Hora de iniciode la materia

al del moacutedulo generacioacuten de horarios

E AULA

s en el moacutedulo anterior para hacer la asignacioacuten de

debe mostrar los horarios de las materias con una

eran las aulas utilizando los procedimientos de loss generaciones hasta lograr una generacioacuten sin

ltados fueron satisfactorios En todos los casoss correspondientes

Capiacutetulo 6 Pruebas y Resultados

La Figura 612 muestra la pantalla para actualizar las aulas disponibles por las personasque generan los horarios estas aulas estaacuten disponibles para que el Algoritmo Geneacuteticolas utilice para asignarles grupos durante el proceso

Fig 612 Pantalla del control de aulas

La Figura 613 muestra la consulta de las aulas que utiliza el moacutedulo generacioacuten deaulas

Fig 613 Pantalla de consultas del control de aulas

Capiacutetulo 6 Pruebas y Resultados

La Figura 614 muestra la pantalla que genera la poblacioacuten inicial a partir de los datosgenerales proveniente de los moacutedulos anteriores

Fig 614 Pantalla de genera poblacioacuten inicial

La Figura 615 muestra la pantalla que evaluacutea las versiones originadas y genera paracada una de ellas un cromosoma cuyos genes contienen la informacioacuten obtenida

Fig 615 Pantalla de evaluacioacuten de versiones

Nuacutemero dehipoacutetesisversiones oindividuos

Aula aleatoriagenerada

Este botoacuteninicia lageneracioacutende las nversionesde horarios

Capiacutetulo 6 Pruebas y Resultados

La Figura 616 muestra el formulario del proceso de seleccioacuten de las mejores versionesde horarios toma aquellas que tienen menor numero de choques y mayor espacio deocupacioacuten de aulas

Fig 616 Pantalla del proceso de seleccioacuten

La Figura 617 muestra la pantalla del proceso de clonacioacuten donde se selecciona la mejorversioacuten y se obtiene un clon ideacutentico con un nuevo nuacutemero de versioacuten

Fig 617 Pantalla del proceso de clonacioacuten

Cantidad deversiones quesobreviviraacuten

Cromosomas delos mejoresindividuos

Botoacuten queinicia elproceso deseleccioacuten

Botoacuten queinicia elproceso deeliminacioacuten

Cromosomasde versionesmaacutes aptas

Nuacutemero demejor versioacuten

Poblacioacutenversiones

Capiacutetulo 6 Pruebas y Resultados

La Figura 618 muestra la pantalla del proceso de mutacioacuten utilizado para hacer elcambio ldquomutarrdquo los datos de una versioacuten para romper alguacuten ciclado de la tendencia haciael resultado o simplemente para acelerar el proceso de optimizacioacuten

Fig 618 Pantalla de mutacioacuten

La Figura 619 muestra la pantalla donde se realiza el cruzamiento utilizando plantillaspredeterminadas dirigiendo la cruza de versiones por paquetes de materias agrupadas porsemestre y cada plantilla genera una nueva versioacuten con la combinacioacuten de fragmentosde varias versiones

Fig 619 Pantalla del proceso de cruzamiento

Cromosomamuestra lasmejoresversiones

Nuacutemero deversioacuten amutar

Aulas quepueden mutarse

Botoacuten queinicia elproceso demutacioacuten

Capiacutetulo 6 Pruebas y Resultados

La Figura 620 permite la seleccioacuten y enviacuteo de la mejor versioacuten de horarios y adaptarloal moacutedulo administrativo para su distribucioacuten y publicacioacuten

Fig 620 Horarios finales

6234 MOacuteDULO SELECCIOacuteN DE CATEDRATICOS

Objetivo Capturar los datos de los profesores y su perfil profesiograacutefico ademaacutescapturar los conocimientos necesarios para impartir una asignatura para poder sugerircual es el mejor catedraacutetico que puede impartir una asignatura

Criterios de aceptacioacuten Esta prueba debe mostrar la sugerencia de los mejorescatedraacuteticos para una materia y las mejores materias para un catedraacutetico

Procedimiento de la prueba Se daraacuten los datos iniciales de los maestros y el sistemadeberaacute generar una lista a partir de la inferencia del Sistema Experto respectivo yviceversa

Resultado de la prueba Los resultados fueron satisfactorios En todos los casospresentados el sistema infirioacute las materias y los catedraacuteticos correspondientes

Capiacutetulo 6 Pruebas y Resultados

La Figura 621 muestra la pantalla en que se captura el perfil de los catedraacuteticos elperfil son los conocimientos que tiene el profesor que lo capacitan para impartir algunaasignatura

Fig 621 Pantalla captura perfil de catedraacuteticos

La Figura 622 muestra la pantalla de inferencia final que sugiere quienes son loscatedraacuteticos maacutes capacitados para impartir una materia haciendo la inferencia mediantela buacutesqueda de matchs entre el perfil de la asignatura y el perfil del catedraacutetico

Fig 622 Pantalla muestra inferencia catedraacuteticos para materia

Conocimientosdel profesor

Barra deseleccioacuten deperfiles

Grado dedominio deltema

Botoacuten delprocesodeinferenciaparticular

Botoacuten queinvoca almoacutedulo deexplicacioacuten

Candidatos aimpartir lamateria Botoacuten del proceso de

inferencia generalPorcentaje de certeza conque puede impartirla

Capiacutetulo 6 Pruebas y Resultados

La Figura 623 muestra la pantalla de explicacioacuten donde se indican los perfiles de lamateria y el perfil del profesor

Fig 623 Pantalla explicacioacuten porque un maestro puede dar una materia

La Figura 624 muestra el resultado de la inferencia del proceso que sugiere las materiasque puede impartir un profesor con base en el perfil de la materia y el perfil del profesor

Fig 624 Pantalla materias que puede impartir un profesor

Posibles materia aimpartir Porcentaje de certeza con

que puede impartirlaBotoacuten del proceso deinferencia general

Botoacuten delprocesodeinferenciaparticular

Botoacuten queinvoca almoacutedulo deexplicacioacuten

Capiacutetulo 6 Pruebas y Resultados

La Figura 625 muestra la pantalla de explicacioacuten donde se indican el perfil de la materiay el perfil del profesor

Fig 625 Pantalla de explicacioacuten porque un profesor puede dar una materia

Capiacutetulo 6 Pruebas y Resultados

Capiacutetulo 7 Conclusiones y Trabajos Futuros

CAPIacuteTULO 7

CONCLUSIONES Y TRABAJOS FUTUROS

71 CONCLUSIONES

Los meacutetodos de programacioacuten lineal proporcionan una solucioacuten parcial al problema dela generacioacuten de horarios utilizan una ldquorecetardquo predefinida para lograr la optimizacioacutende la asignacioacuten de recursos como lo hace el meacutetodo Huacutengaro La Inteligencia Artificialsoluciona el problema utilizando la heuriacutestica el conocimiento y la experiencia de unexperto humano para solucionar el problema se decidioacute utilizar esta metodologiacutea paraexplorar una solucioacuten aproximada al problema

En el ITZ la generacioacuten de horarios se haciacutea de forma manual no se utilizaba ninguacutenmeacutetodo automatizado Al aplicar algunas teacutecnicas de la Inteligencia Artificial se halogrado generar de manera automatizada los horarios de las materias que se ofertaraacuten elproacuteximo semestre

La aplicacioacuten de varias ramas de la Inteligencia Artificial para la resolucioacuten delproblema de la generacioacuten de horarios viene a demostrar que si es posible generar uncondensado de horarios para el Instituto Tecnoloacutegico de Zacatepec que es una escuelade nivel superior y que estos horarios satisfacen adecuadamente las restricciones fuertesmedias y suaves Para ello fue necesaria la combinacioacuten de varias disciplinas de lacomputacioacuten para generar cada una de las partes que componen un horario y tambieacutenrecomendar los catedraacuteticos mas apropiados para impartir dichos grupos nuevamentequeda demostrado que la Inteligencia Artificial sirve para resolver problemas que lasteacutecnicas convencionales de computacioacuten consideran problema NP-completo

La utilizacioacuten de las teacutecnicas de los Sistemas Expertos para ajustar el nuacutemero de grupospor abrir el proacuteximo semestre permite aplicar el conocimiento y experiencia de lapersona encargada de elaborar los horarios y asiacute disminuir el nuacutemero de gruposcancelados el conocimiento e intuicioacuten del experto humano realizan un ajuste fino alnuacutemero de grupos y como puede notarse el sistema lo hace de manera similar

Para el moacutedulo de generacioacuten de los grupos y los horarios la utilizacioacuten de la teacutecnicallamada Programacioacuten Loacutegica de Restricciones permitioacute la satisfaccioacuten de lasrestricciones que hacen que los horarios sean considerados factibles para su aplicacioacuten a

Capiacutetulo 7 Conclusiones y Trabajos Futuros

los alumnos el proacuteximo semestre ya que los paquetes de materias por semestre tienenhorarios corridos y sin choques en horas nuacutemero de materias completo y buenadistribucioacuten de horas pares e impares

Se utilizoacute tambieacuten la teacutecnica de optimizacioacuten llamada Algoritmos Geneacuteticos pararealizar la asignacioacuten de aulas a cada grupo generado logrando con ello minimizarautomaacuteticamente el nuacutemero de choques de materias en aulas En las pruebas realizadasse logroacute que en la sexta generacioacuten de individuos ya soacutelo hubiera hasta un maacuteximo de 24choques lo que indicaba que soacutelo 4 oacute 5 grupos compartiacutean aula a la misma hora esto erafaacutecilmente corregible realizando una inspeccioacuten visual a la versioacuten de horarios final yajustando los uacuteltimos errores

Por uacuteltimo nuevamente se aplicaron los Sistemas Expertos en el moacutedulo de sugerenciade materias que puede impartir un maestro y en el moacutedulo maestros que pueden impartiruna determinada materia vale la pena comentar que durante las pruebas realizadas loscatedraacuteticos del departamento de Sistemas y Computacioacuten capturaban su perfilprofesiograacutefico y al pedir al sistema la sugerencia de cuaacuteles materias podriacutean impartirlos Sistemas Expertos del proyecto inferiacutean exactamente las materias que loscatedraacuteticos estaacuten impartiendo en este semestre y las que habiacutean impartido en alguacutensemestre anterior demostrando que en efecto para profesores nuevos la recomendacioacutendel sistema seriacutea vaacutelida

72 TRABAJOS FUTUROS

Se sugiere que se ampliacutee el proyecto para que a cada grupo generado con aula y hora sele asigne de manera automaacutetica un catedraacutetico utilizando ya sea Algoritmos Geneacuteticos oProgramacioacuten Loacutegica de Restricciones

Otra posible mejora puede ser incluir la Loacutegica Difusa en los Sistemas Expertos de losmoacutedulos que sugieren las materias que puede impartir un catedraacutetico y los catedraacuteticosque pueden impartir una asignatura

Como ya se comproboacute la factibilidad de generar los horarios de manera automaacutetica sepropone tambieacuten la exploracioacuten de otras ramas y teacutecnicas de la computacioacuten (RedesNeuronales Buacutesqueda Tabuacute Grafos Coloreados etc) para comparar el rendimientotiempo esfuerzo y asiacute poder determinar cuales son mejores o peores teacutecnicas pararesolver el problema de la generacioacuten de horarios

Referencias Bibliograacuteficas

REFERENCIAS BIBLIOGRAacuteFICAS

[Abramson 1991] Abramson D ldquoConstructing School Timetables Using SimulatedAnnealing Secuencial and Parallel Algoritmsrdquo Management Science PWS PublishingBoston 1998

[Beasley 1993] Beasley D amp Bull DR amp Martin RR ldquoAn Overview of GeneticAlgorithms Part 1 Fundamentalsrdquo University Computing

[Bull 1993] Bull DR amp Beasley D amp Martin RR ldquoAn Overview of GeneticAlgorithms Part 2rdquo University Computing Magazine 1993

[Burke1994]Burke EK ldquoA Genetic Algorithm for University Timetablingrdquo AISBworkshop on evolutionary computing Leeds 1994

[Burke 1997] Burke Edmund K ldquoAutomated Scheduling Optimization and PlanningGroup (ASAP)rdquo PATATrsquo97 Proceedings of the 2nd Intenational Conference on thePractice And Theory of Automated Timetabling 1997

[Burke2000] Burke Edmund amp Eliman David amp Weare Rupert ldquoA GeneticAlgorithm Based University Timetabling Systemrdquo PATATrsquo2000 Proceedings of the 5ft

Intenational Conference on the Practice And Theory of Automated Timetabling 2000

[Burke2001] Burke EK amp Eliman DGamp Weare R ldquoAutomated Scheduling OfUniversity Examsrdquo Leeds 2001

[Burke2002] Burke Edmund amp Eliman David amp Weare Rupert ldquoExaminationTimetabling in British Universities ndash A Surveyrdquo Leeds 2002

[Carrasco 2004] Carrasco Marco amp Pato Margarida ldquoSolving Real ClassTeacherTimetabling Problems using Neural Networksrdquo Facultade de Ciencias University ofLisboa Portugal

[Chorafas 1990] Chorafas Dimitris N ldquoKnowledge Engineeringrdquo Van NostrandReinnhold New York USA

Referencias Bibliograacuteficas

[Corne 1993] Corne D ldquoSolving the module exam scheduling problem with geneticalgorithmsrdquo Proceedings of the 6th Intenational conference in Industrial andEngineering applications of Artificial Intelligence and Expert Systems1993

[Daellenbach 1987] Daellenbach Hans amp McNickle Donald ldquoIntroduccioacuten a teacutecnicasde Investigacioacuten de Operacionesrdquo CECSA Meacutexico 1987

[Davis 1991] Davis L ldquoHandbook of Genetic Algorithmsrdquo Van Nostrand ReinholdNew York NY

[Demist2000] Demist ldquoDepartamental Timetabling Proyect ProposalDeMIStinterface to Timetabling Package Proyectrdquo Demist University 2000

[Detcher 1990] Detcher R ldquoEnhancement Schemes for Constraint Processing BackJumping Learning and Cutset Decompositionrdquo Artificial Intelligence 41 (1990)

[Eliman 2000] Eliman David ldquoSpecialised Recombinative Operators for TimetablingProblemsrdquo Cambridge University Press New York 2000

[Elmohamed2000] Elmohamed Saleh ldquoThe timetabling problemrdquo PATATrsquo2000Proceedings of the 5th Intenational Conference on the Practice And Theory ofAutomated Timetabling 2000

[Elmohamed2001] Elmohamed Saleh ldquoConstraint based university coursetimetablingrdquo 4th World Congress on Timetabing Aplication of advanced informationTechnologies London 2001

[Fahrion y Dollanski 1992] Fahrion R amp G Dollanski ldquoConstruction of UniversityFaculty Timetables using Logic Programmingrdquo ACM Sigsoft Notes vol 9 no 3 May1992

[Frenzel 1986]Frenzel Louis E ldquoCrash Course in Artificial Intelligence and ExpertSystemsrdquo Howard W Sams amp Co McMillan Inc Indianapolis USA

[Gerez 1985] Gerez Victor amp Mier Mauricio ldquoDesarrollo y administracioacuten deprogramas de computadorardquo McGraw Hill Meacutexico 1985

[Gervaacutes 1999] Gervaacutes P amp San Miguel B ldquoSequential Building of ConstrainedTimetables Using Rule-Based Heuristics An Expert System for AutomatedTimetablingrdquo Congreso Internacional de Investigacioacuten en Ciencias Computacionales

Referencias Bibliograacuteficas

[Giarratamo 1998] Giarratamo Joseph y Gary Riley ldquoExpert Systems Principles andProgrammingrdquo PWS Kent Publishing Company Boston USA

[Gines 1986] Gines B amp Boose J ldquoKnowledge Acquisition for Knowledge-BasedSystemsrdquo Vol 1amp2 Academic Press London U K

[Goldberg 1989] Goldberg DE ldquoGenetic Algorithms in SearchOptimization andMachine LearningrdquoAddison-Wesley

[Kang y White 1994 ] Kang L amp White GM ldquoA Logic Approach to the Resolutionof Constrains in Timetablingrdquo European Journal of Operational Research vol 61 1994

[Kandel 1991] Kandel Abraham ldquoFuzzy Expert Systemsrdquo CRC Press Inc LondonUK 1991

[Kendall1999] Kendall y Kendall ldquoAnaacutelisis y disentildeo de sistemasrdquo 3ordf edicion PearsonEducacioacuten

[Koza 1992] Koza JR ldquoGenetic Programming On the Programming of Computers bymeans of Natural Selectionrdquo Cambridge MA MIT Press

[Martiacutenez 1999] Martiacutenez Alfaro Horacio ldquoSolucioacuten al problema de asignacioacuten desalones de clases horario y grupo mediante templado simuladordquo Memorias 6ordm CongresoInternacional de Mecatroacutenica e Inteligencia Artificial Meacutexico 1999

[Medina 2004] Medina Pasaflores Horacio ldquoFundamentos de Algoritmos GeneacuteticosrdquoTesis de licenciatura Zacatepec Mexico 2004

[Michalewicz 1992] Michalewicz Z ldquoGenetic algorithms + Data Structures =Evolution Programsrdquo Springer-Verlag New York NY

[Negoita1985] Negoita ConstantinV Expert Systems and Fuzzy Systems TheBenjamin Cummings Publishing Co Menlo Park CA USA

[Nielsoft 2000] Nielsoft informatica ldquoManual de usuario Mimosa for windowsrdquo

[Paechter 1994] Paechter B ldquoTwo solutions to the general timetabling problemusing evolutionary methodsrdquo IEEE WCCI 1994

[Pluss1999] Pluss JJ ldquoSistemas expertos un enfoque pragmaacuteticordquo UNR

Referencias Bibliograacuteficas

[Rich 1996] Rich E y Knight K ldquoInteligencia Artificialrdquo McGraw HillInteramericana Madrid Espantildea

[Russell 1996] Russell S y Norvig P ldquoInteligencia Artificial un enfoque modernordquoPrentice Hall Mexico 1996

[Sanchez1999] Sanchez y Beltran ldquoSistemas expertos una metodologiacutea deprogramacioacutenrdquo Macrobit

[Schedul2000] SchedulExpert ldquoCourse scheduling in post educational institutionsrdquo EdAddison Wesley 2000

[Trick 1999 ] Trick Michael ldquoNetwork resources for coloring a graphrdquo Oracle PressEd McGraw Hill 1999

[Turban 1995] Turban Efraim ldquoDecision Support and Expert Systems ManagementSupport Systemsrdquo Fourth Edition Orentice Hall NJ USA

[Waterman1986] Waterman Donald A ldquoA Guide to Expert Systemsrdquo Addison-Wesley Publishing Co USA

[Weare2000] Weare Rupert amp Burke Edmundo amp Eliman David ldquoA Questionnaireon Exam Timetabling in Universitiesrdquo Annual review of computer Science Volume 2Palo Alto 2000

[Wilke 2002] Wilke P amp Grobner M amp Oster N ldquoA hibrid Genetic Algorithm forSchool Timetablingrdquo Advances in Artificial Intelligence Springer Lecture Notes inComputer Science New York

[Yoshikawa 1994] Yoshikawa M amp Kaneko KldquoA Constraint-based Approach toHigh School Timetabling Problems A Case Studyrdquo AAAI-94 12ordm NationalConference on Artificial Intelligence

Referencias Bibliograacuteficas

Referencias electroacutenicas

httpwwwmonografiacuteascomtrabajos12inteartfinteartfshtmlObregoacuten Arturo Inteligencia artificial y Sistemas expertos IIMAS-UNAM (1992)

httpwwwlafacucomapuntesinformaticasist_conodefaulthtmCruz Ochoa Wilson Sistemas de conocimiento

httpwwwingenieroseninformaticaorgrecursostutorialessist_exphtmlZambrano Molina Darwin Sistemas expertos

httpredcientificacomdocdoc199008210001htmlSamper Marquez Juan Joseacute Introduccioacuten a los sistemas expertos Madrid 2000

httpmismonografiascomarSistemas20expertofuzzyhtmlArede Dario Sistema experto fuzzy

httpcruzrojaguayaorginteligenciainterhtmlAyuquina Martha amp Arellano Gregorio Inteligencia artificial Universidad de Guayaquil

httpdmiuibesabasolointart1-introduccionhtmlAbasolo Mariacutea Joseacute Dra Inteligencia Artificial

Page 6: BORIS ANTONIO ARANDA BENITEZ

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

CAPIacuteTULO 3 TEacuteCNICAS DE INTELIGENCIA ARTIFICIALUTILIZADAS PARA LA GENERACIOacuteN DE HORARIOS31 Sistemas Expertos 24311 Funcioacuten de un Sistema Experto 25312 Arquitectura de Sistemas Expertos 25313 La base de conocimiento 26314 Motor de inferencias 27315 iquestPor queacute utilizar un Sistema Experto 27316 Construccioacuten de prototipos 2832 Algoritmos geneacuteticos 29321 Antecedentes 29322 Definicioacuten de Algoritmo Geneacutetico 30323 Ventajas y desventajas 31324 iquestCoacutemo saber si es posible usar un Algoritmo Geneacutetico 31325 Paraacutemetros que deben ser especificados en el programa 3233 Programacioacuten Loacutegica de Restricciones(PLR) 34331 Antecedentes de la PLR 34332 Restricciones 35333 Sistemas con restricciones 37334 Referencia histoacuterica de las restricciones 37335 Satisfaccioacuten de las restricciones 38336 Resolucioacuten de restricciones 38337 Organizacioacuten de proyectos 38

CAPIacuteTULO 4 ANAacuteLISIS Y DISENtildeO41 Recopilacioacuten de la informacioacuten 4142 Anaacutelisis de la informacioacuten 4643 Solucioacuten definida 4844 Requerimientos del sistema 4945 Disentildeo del sistema 52451 Mapa conceptual del proyecto 52452 Mapas conceptuales de los moacutedulos 54453 Diagramas de contexto 62454 Diagramas entidad relacioacuten 674 55 Diccionario de la base de datos 73456 Lista de funciones o programas 85457 Diagrama de arquitectura (menuacutes) 87

CAPIacuteTULO 5 IMPLEMENTACIOacuteN51 Pantallas del sistema 89

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

CAPIacuteTULO 6 PRUEBAS Y RESULTADOS61 Pruebas del sistema 11462 Pruebas del sistema 115621 Prueba 1 Aacuterea de menuacutes 115622 Prueba 2 Validacioacuten de entradas 118623 Prueba 3 Desplegado de resultados 1206231 Moacutedulo generacioacuten de grupos por abrir 1206232 Moacutedulo generacioacuten de horarios 1216233 Moacutedulo asignacioacuten de aula 1226234 Moacutedulo seleccioacuten de catedraacuteticos 127

CAPIacuteTULO 7 CONCLUSIONES Y TRABAJOS FUTUROS71 Conclusiones 13172 Trabajos futuros 132

REFERENCIAS BIBLIOGRAacuteFICAS 133

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

LISTA DE FIGURAS

Figura Nombre Paacutegina

31 Arquitectura de un Sistema Experto 2632 Pseudocoacutedigo del Algoritmo Geneacutetico simple 3341 Mapa conceptual del proyecto 5242 Diagrama de secuencia 5443 Sistema Experto generador de grupos 5544 Diagrama del moacutedulo Programacioacuten Loacutegica de Restricciones 5745 Diagrama del moacutedulo Algoritmo Geneacutetico 5846 Diagrama de Sistema Experto para sugerir profesor a asignatura 6047 Diagrama de Sistema Experto para sugerir asignaturas para

catedraacutetico61

48 Diagrama de contexto del proyecto 6449 Diagrama de funciones fundamentales (entradas) 65410 Diagrama de funciones fundamentales (salidas) 66411 Diagrama entidad relacioacuten del moacutedulo administrativo 67412 Diagrama E-R del moacutedulo para determinar y ajustar nuacutemero de

grupos68

413 Diagrama E-R del moacutedulo para asignar aulas (Algoritmo Geneacutetico) 69414 Diagrama E-R del moacutedulo para asignar horario (PLR) 70415 Diagrama E-R del moacutedulo designa mejor catedraacutetico (Sistema

Experto)71

416 Diagrama E-R del moacutedulo selecciona mejor materia (SistemaExperto)

72

51 Portada inicial del proyecto 8852 Acerca del sistema 8953 Menuacute principal del proyecto 8954 Menuacute grupos por abrir 9055 Materias 9056 Consulta materias 9157 Pantalla servicios escolares 9158 Pantalla consulta servicios escolares 9259 Pantalla criterios por materia 92510 Pantalla consulta criterios por materia 93511 Pantalla carreras 93512 Pantalla criterios 94513 Pantalla consulta criterios 94514 Pantalla reglas 95515 Pantalla consulta reglas 95516 Pantalla ajustes 96

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

517 Pantalla consulta ajustes 96518 Pantalla criterios por regla 97519 Pantalla consulta criterios por regla 97520 Pantalla caacutelculo de ajustes 98521 Pantalla explicacioacuten de la inferencia 98522 Pantalla inicial del moacutedulo generacioacuten de horarios 99523 Pantalla principal del moacutedulo generacioacuten de horarios 99524 Pantalla principal del menuacute Algoritmos Geneacuteticos 100525 Pantalla de administracioacuten de grupos 100526 Pantalla de consulta de administracioacuten de grupos 101527 Pantalla del control de aulas 101528 Pantalla de consultas del control de aulas 102529 Pantalla para generacioacuten de poblacioacuten inicial 102530 Pantalla de evaluacioacuten de versiones 103531 Pantalla del proceso de seleccioacuten 103532 Pantalla del proceso de clonacioacuten 104

533 Pantalla de mutacioacuten 104534 Pantalla del proceso de cruzamiento 105535 Horarios finales 105536 Pantalla menuacute seleccioacuten de catedraacuteticos 106537 Pantalla de perfiles 106538 Pantalla de consulta perfiles 107539 Pantalla perfiles de las materias 107540 Pantalla consulta perfiles de las materias 108541 Pantalla captura datos de catedraacuteticos 108542 Pantalla consulta datos de catedraacuteticos 109543 Pantalla captura perfil de catedraacuteticos 109544 Pantalla consulta perfil de catedraacuteticos 110545 Pantalla muestra inferencia catedraacuteticos para materia 110546 Pantalla explicacioacuten del porqueacute un maestro puede dar una materia 111547 Pantalla materias que puede impartir un profesor 111548 Pantalla de explicacioacuten del porqueacute un profesor puede dar una

materia112

61 Portada inicial del proyecto 11562 Menuacute principal del proyecto 11663 Menuacute grupos por abrir 11664 Pantalla menuacute seleccioacuten de catedraacuteticos 11765 Pantalla principal del menuacute Algoritmos Geneacuteticos 11766 Pantalla de captura de datos de las Materias 11867 Pantalla de captura de datos de Criterios por Materia 11968 Pantalla de captura de datos de Carreras 11969 Pantalla caacutelculo de ajustes 120

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

610 Pantalla inicial del moacutedulo generacioacuten de horarios 121611 Pantalla principal del moacutedulo generacioacuten de horarios 122612 Pantalla del control de aulas 123613 Pantalla de consultas del control de aulas 123614 Pantalla de genera poblacioacuten inicial 124615 Pantalla de evaluacioacuten de versiones 124616 Pantalla del proceso de seleccioacuten 125617 Pantalla del proceso de clonacioacuten 125618 Pantalla de mutacioacuten 126619 Pantalla del proceso de cruzamiento 126620 Horarios finales 127621 Pantalla captura perfil de catedraacuteticos 128622 Pantalla muestra inferencia catedraacuteticos para materia 128623 Pantalla explicacioacuten porque un maestro puede dar una materia 129624 Pantalla materias que puede impartir un profesor 129625 Pantalla de explicacioacuten porque un profesor puede dar una materia 130

Capiacutetulo 1 Introduccioacuten

CAPIacuteTULO 1

INTRODUCCIOacuteN

11 Antecedentes

iquestQueacute es un horario

ldquoEl horario completo bien puede gobernar las vidas demiles de alumnos y cientos de profesores para los 200 diacuteasdel antildeo escolar semestre a semestre hora tras hora Comouna poderosa herramienta puede faacutecilmente crear o deshacersituaciones de ensentildeanza aprendizajerdquo [Johnson 1980]

En la educacioacuten superior la historia siempre es la misma la proporcioacuten de tiempodictada por el horario para los alumnos y profesores es generalmente muy baja Apesar de esto las dificultades en la creacioacuten de los horarios son grandes Existenvarios departamentos y carreras cada uno con sus propias ideas de coacutemo y cuaacutendo sedeben programar sus cursos El nuacutemero de estudiantes puede variar considerablementede antildeo en antildeo Similarmente las preferencias de los alumnos a favor o en contra delas materias pueden variar dramaacuteticamente de un semestre a otro Los estudiantespueden tomar cursos de un departamento o de varios de ellos aun maacutes puedenseleccionar materias de otras carreras La reciente desaparicioacuten de las restricciones decreacuteditos para cursar las asignaturas complica maacutes la situacioacuten porque ampliacutea el rangode materias que puede tomar un alumno Los horarios aparecen en varias formasmatutinos vespertinos mixtos y todo el diacutea Los horarios escolares indican cuando unmaestro y un alumno deben ir a cada clase Todas las escuelas tienen un horario decursos que dirige lo que cada estudiante y catedraacutetico debe hacer en determinadomomento Esta tesis versa especiacuteficamente sobre el problema de construir horariospara Institutos Tecnoloacutegicos en Meacutexico

La planeacioacuten de los horarios es un trabajo que se realiza semestralmente antes de iniciarel siguiente periodo escolar tomando en cuenta la demanda de grupos que se ofreceraacuteny asignando a estos grupos los alumnos el aula el catedraacutetico y el horariocorrespondiente mediante informacioacuten que se obtiene de varias maneras

El principal objetivo de este proyecto es dar una solucioacuten aproximada (aceptable) alproblema de la generacioacuten de horarios de una escuela de nivel superior que se resumeasiacute

Capiacutetulo 1 Introduccioacuten

ldquoDado un conjunto de departamentos y carreras asignaturas con prerrequisitos gruposcatedraacuteticos con especialidad y horario definidos aulas laboratorios y alumnos con suspreferencias de materias el problema es construir un condensado de horarios factibleque satisfaga todas las restricciones fuertes y minimice las restricciones medias ysuavesrdquo

Las restricciones fuertes son restricciones de espacio y tiempo tal como planear doscursos en un aula al mismo tiempo Las restricciones medias y suaves son laspreferencias de maestros y estudiantes que deberaacuten ser satisfechas si es posible[Elmohamed 1998]

El problema de la generacioacuten de horarios ha sido tratado por muchos investigadoresutilizando meacutetodos que van desde la investigacioacuten de operaciones hasta disciplinas de laInteligencia Artificial como son Algoritmos Geneacuteticos Recocido Simulado RedesNeuronales etc

12 Planteamiento del problema

La generacioacuten de horarios es una forma particular del problema de asignacioacuten derecursos En el caso maacutes general existe una serie de objetos (recursos) y una serie deprocesos que necesitan ser realizados por cada uno de esos objetos En un contextoeducacional cada estudiante debe asistir a un nuacutemero predeterminado de clases y elprofesor debe impartirlas durante la semana en un aula predeterminada el estudiante elprofesor y el aula pasan aquiacute a ser el objeto y las clases el proceso

La complejidad del problema de la generacioacuten de horarios

La generacioacuten de horarios es un problema de optimizacioacuten combinatorio multi-dimensional no Euclidiano con muacuteltiples restricciones y por lo tanto difiacutecil de resolver[Elmohamed 1998]

El problema de la generacioacuten de horarios esta agrupado dentro de los considerados decomplejidad NP-completos es decir que no pueden ser resueltos en tiempo polinomialusando un algoritmo determiniacutestico No se conoce un algoritmo determiniacutestico detiempo polinomial para resolver alguno de esos problemas y la mayoriacutea de la gente creeque dichos algoritmos no existen[Karp 1972]

La generacioacuten de horarios es la asignacioacuten de lapsos de tiempo a un conjunto de eventossujeto a las restricciones en esas asignaciones Seguacuten Elmohamed [Elmohamed 1998]el problema NP-completo de la elaboracioacuten de horarios es un problema para la

Capiacutetulo 1 Introduccioacuten

satisfaccioacuten de restricciones que puede ser definido de la siguiente maneraPara una escuela dada con

Np profesores con sus horarios y turnos Nq materias con su temario y objetivosNx aulas y laboratorios con su capacidad Ns estudiantes

es requerido programar Nt parejas de

alumno-materiahora-materiamaestro-materiaaula-materia

una vez definidas las parejas anteriores se deben programar elementos de la formamateria-maestro-hora -aula

En un liacutemite de Nt lapsos de tiempo para producir una programacioacuten factible En unaprogramacioacuten factible no se puede encontrar a un profesor grupo o estudiante en maacutesde un lugar al mismo tiempo y un aula no puede ser asignada con maacutes de una clase a lavez o maacutes estudiantes de su capacidad o un profesor programado fuera de su horarionormal o con maacutes horas frente a grupo de las reglamentarias ademaacutes de un conjuntoadicional de restricciones

Importancia del problema

La administracioacuten de los recursos comprende la apertura de los grupos para inscribir alos alumnos el proacuteximo semestre la asignacioacuten de carga acadeacutemica a los catedraacuteticos lautilizacioacuten de aulas y laboratorios de quiacutemica produccioacuten coacutemputo electromecaacutenicaaulas de dibujo y demaacutes instalaciones del Instituto Tecnoloacutegico de Zacatepec (ITZ)Cuando por errores imputables al creador de los horarios se hizo una mala planeacioacuten sederivan los siguientes problemasbull Alumnos que se inscriben con una carga de creacuteditos menor a la miacutenima por falta de

grupos suficientesbull Alumnos que deben estar en el ITZ desde las 700 hrs hasta las 2000 hrs varios

diacuteas a la semana por abrir grupos en horarios muy separadosbull Alumnos que pierden la secuencia de materias seriadas por falta de cupobull Alumnos que deben permanecer 1 oacute 2 semestres maacutes en el ITZ por no prever

suficientes grupos para semestres terminalesbull Catedraacuteticos que no imparten el miacutenimo reglamentario de horas frente a grupo por

no crearles grupos suficientesbull Catedraacuteticos a los que se les avisa 1 diacutea antes del inicio de clases que impartiraacuten una

Capiacutetulo 1 Introduccioacuten

asignatura nuevabull Asignaturas que son impartidas por profesores que no cumplen el perfil deseado en

esa asignaturabull Choque de grupos en las aulasbull Choque de grupos en laboratoriosbull Falta de laboratorio a algunos gruposbull Deficiente utilizacioacuten de las aulas

La creacioacuten de un sistema que evite de manera automaacutetica caer en errores como losmencionados NO ES TAREA TRIVIAL intentar resolver este problema involucra laelaboracioacuten de un ldquosistema inteligenterdquo capaz de tomar decisiones aprender inferirbasaacutendose en hechos generar nueva informacioacuten y a partir de ella nuevamente volver adecidir El sistema que se elabore debe tener la capacidad para deducir e inducir de unamanera combinada

Desventajas del sistema actual

La mayoriacutea de los problemas anteriores son ocasionados por alguno o varios de lossiguientes motivosbull Todo el proceso de caacutelculo y administracioacuten de los recursos es manualbull El proceso de elaboracioacuten coincide con el cierre de semestre actual y como las

personas responsables tambieacuten son catedraacuteticos deben combinar la generacioacuten dehorarios con las evaluaciones finales revisioacuten de proyectos y entrega decalificaciones de sus grupos a los alumnos

bull La elaboracioacuten de los horarios es un proceso que se lleva semanas de labor diariabull Requiere la atencioacuten total de los coordinadores durante todo el tiempo de

elaboracioacutenbull Al no tener la informacioacuten automatizada se tienen peacuterdidas de tiempo en la toma de

decisiones como por ejemplo en el preacutestamo de aulas no utilizadas o en la forma decompartir catedraacuteticos

bull Se tienen fuertes restricciones debido a los horarios de los catedraacuteticosbull Hay fuertes dificultades cuando se deben negociar cambios de horarios porque el

proceso implica mover asignaturas buscar aulas dejar paquetes de materias porsemestre etc

bull El estado de aacutenimo del coordinador influye en la elaboracioacuten de los horarios

13 Objetivo general

Generacioacuten de una solucioacuten aproximada del condensado de horarios para una escuela denivel superior que satisfaga las restricciones ocasionadas por los recursos involucradosmediante la elaboracioacuten de un sistema hiacutebrido (experto geneacutetico y loacutegico restrictivo)

Capiacutetulo 1 Introduccioacuten

14 Objetivos especiacuteficos

Se tiene el disentildeo e implementacioacuten de un sistema que

bull Proporciona una solucioacuten aproximada aceptable al problema de la generacioacuten dehorarios

bull Permite a los coordinadores delegar a la computadora la asignacioacuten de recursosbull Ahorra tiempo en la generacioacuten de los horariosbull Reduce el trabajo manualbull Agiliza la toma de decisionesbull Reduce el tiempo de elaboracioacuten de horariosbull Facilita la modificacioacuten de informacioacuten generadabull Aumenta la eficiencia en las negociaciones entre jefes y coordinadoresbull Lleva al Instituto Tecnoloacutegico de Zacatepec (ITZ) a la modernizacioacuten en este

proceso

15 Justificacioacuten del sistema

151 Justificacioacuten teoacuterica

La utilizacioacuten de la Inteligencia Artificial (IA) para la solucioacuten de problemas de la vidacotidiana ha sido una estrategia utilizada cuando los sistemas tradicionales decomputacioacuten no proveen mecanismos suficientes para garantizar una solucioacuten adecuadasu utilizacioacuten para la generacioacuten de horarios (creacioacuten de grupos asignacioacuten de horaasignacioacuten de aula determinacioacuten de catedraacutetico) presenta una alternativa ideal paracomprobarlo

152 Justificacioacuten metodoloacutegica

La utilizacioacuten de un grupo de Sistemas Expertos que realice la asignacioacuten de losrecursos para la generacioacuten de grupos y le proponga una materia determinada a unprofesor seguacuten el perfil acadeacutemico de ambos reuacutene las caracteriacutesticas necesarias paradar la solucioacuten elegante y efectiva al problema planteado anteriormente porque

bull Se requiere del conocimiento de un experto para plantear el funcionamiento delsistema

bull El conocimiento se alimentaraacute a una base de conocimientos que conste de variaspartes

bull Para la generacioacuten de grupos de una asignatura dada el sistema debe ldquorazonarrdquo paradeterminar cuantos de eacutestos se deben abrir para ofertarlos a los alumnos

Capiacutetulo 1 Introduccioacuten

bull En la asignacioacuten de nuevas materias a los catedraacuteticos el sistema debe ldquodeterminarrdquoquieacuten es el maacutes idoacuteneo para impartirla de acuerdo al perfil de ambos materia ymaestro

La Programacioacuten Loacutegica de Restricciones (PLR) es una de las teacutecnicas que maneja demanera natural informacioacuten sometida a ciertas restricciones y fue seleccionada paraseguir trabajando en la resolucioacuten del problema porque

bull Los horarios deben satisfacer ciertas restricciones como por ejemplo no se debengenerar mas grupos de los necesarios no puede haber dos materias con el mismogrupo no deben existir grupos del mismo paquete a la misma hora etc

bull Cada paquete de un semestre es un objeto que por siacute mismo posee ciertascualidades y restricciones por ejemplo no debe tener horas sin asignatura entre lahora inicial y final existen materias que se deben impartir de una hora diaria otrasdeben ser impartidas de 2 horas diarias etc

bull La solucioacuten presentada por la PLR inicia con datos aleatorios de un horario despueacutesse verifica si las restricciones se cumplen o no si se cumplen se guarda el dato si nose genera un nuevo dato aleatorio

Los Algoritmos Geneacuteticos utilizados aquiacute para asignar aula a los grupos cumplen con lametodologiacutea de la Computacioacuten Evolutiva porque

bull Se tienen datos iniciales de los grupos (materia-hora)bull Se genera una poblacioacuten inicial que son n versiones de un condensado de horarios

sin aulabull Esta poblacioacuten inicial es evaluada se seleccionan los condensados maacutes adecuados y

se eliminan las versiones menos adecuadasbull Se realizan cruzamientos mutaciones clonaciones y se crea la nueva generacioacuten de

horariosbull Se repite el proceso hasta llegar a una utilizacioacuten eficiente de las aulas

Por lo anterior se pueden observar las ventajas de utilizar un sistema inteligente sobreuno convencional para solucionar el problema planteado

Una vez definido el modelo para solucionar el problema de la asignacioacuten de horariospara las asignaturas aulas y catedraacuteticos de una institucioacuten de educacioacuten superior seraacutefaacutecil extrapolarlo para solucionar algunos problemas referentes a la planeacioacuten dehorarios de otro tipo de escuelas de nivel medio superior

153 Justificacioacuten praacutectica

La creacioacuten de un sistema que resuelva el problema de la elaboracioacuten de horarios ygenere automaacuteticamente la programacioacuten de grupos aulas y maestros sin violar las

Capiacutetulo 1 Introduccioacuten

restricciones fuertes minimizando las restricciones medias y suaves optimizando lautilizacioacuten de las aulas cumpliendo con las restricciones de los profesores asignandoprofesores adecuados para impartir las clases traeraacute como consecuencia condicionespara mejorar el proceso de ensentildeanza aprendizaje

16 Alcances y limitaciones

Alcances

El sistema generaraacute un espacio de soluciones finito que satisfaga las restriccionesfuertes medias y suaves optimizando el uso de los recursos disponibles se puede decirque el sistema optimizaraacute los recursos cuando los horarios generados tengan lascaracteriacutesticas mencionadas maacutes adelante

Esta tesis documenta la creacioacuten de un sistema basado en el conocimiento parasolucionar el problema de la generacioacuten de horarios en el Instituto Tecnoloacutegico deZacatepec que permite

bull Generar grupos suficientes para que todos los estudiantes se inscriban al menos conla carga miacutenima reglamentaria

bull Que los alumnos tengan horarios adecuados a sus necesidades y preferenciasbull Que todos los grupos tengan capacidad suficiente para todos los estudiantes que

deseen inscribirsebull Que los profesores impartan materias de acuerdo a su perfil profesionalbull Evitar los choques de grupos en aulas y laboratoriosbull Que todos los grupos tengan aula asignada desde el inicio del semestrebull La utilizacioacuten oacuteptima de las aulas y laboratoriosbull La correcta asignacioacuten de aulas y laboratorios a los cursosbull Realizar de manera automaacutetica la asignacioacuten de los recursosbull Determinar el nuacutemero de grupos que se deben abrirbull Llenar las aulas con grupos sin permitir choque de horariosbull Imprimir la lista de grupos ofertados para el semestre siguientebull Cuando exista el grupo de una materia sin maestro determinar cual es el mejor para

impartirla

Tener un Sistema terminado que contenga los siguientes moacutedulos

Sistema administrativo para control de horarios Sistema Experto para determinar la cantidad de grupos por abrir Sistema Experto para sugerir materias a un catedraacutetico Sistema Experto para seleccionar los mejores catedraacuteticos para impartir una

asignatura

Capiacutetulo 1 Introduccioacuten

Moacutedulo de Programacioacuten Loacutegica de Restricciones para generar los horarios a lospaquetes de materias por semestre

Moacutedulo de Algoritmo Geneacutetico para asignar aula a los grupos

Cada moacutedulo tendraacute

bull Interfaces de usuario amigablesbull Tiempos de ejecucioacuten raacutepidos (independientemente de la maacutequina objetivo)bull Reglas de inferencia para generar resultados (soacutelo los Sistemas Expertos)bull Buacutesquedas heuriacutesticas o aleatorias seguacuten el casobull Procesos para realizar induccioacuten y deduccioacuten (soacutelo los Sistemas Expertos)bull Manejo de incertidumbre (soacutelo los Sistemas Expertos)bull Un moacutedulo de explicaciones en lenguaje natural

Limitaciones

El sistema estaacute disentildeado para generar horarios de una escuela de nivel superior donde elcoordinador de cada carrera es el responsable de la generacioacuten de sus horarios controlarsus profesores impartir cierto nuacutemero de materias y utilizar cierta cantidad de aulas ylaboratorios

Trabaja exclusivamente en lenguaje espantildeol

Las reglas de la base de conocimiento tienen un formato predeterminado por unasintaxis definida para el sistema

El sistema estaacute elaborado para trabajar en microcomputadoras compatibles con IBM

No maneja los horarios individuales de los alumnos en el proceso de inscripcioacuten estaactividad deberaacute ser realizada por los sistemas del departamento de servicios escolares

Capiacutetulo 2 Marco teoacuterico

CAPIacuteTULO 2

MARCO TEOacuteRICO

21 El estado del arte

211 Antecedentes

El problema de la generacioacuten de horarios ha sido atacado de varias maneras a nivelmundial inclusive existe un grupo internacional que convoca al congreso llamadoPATATxx (Practice and Theory of Automated Timetabling) donde xx es el antildeo delcongreso en cuestioacuten

La ASAP (Automated scheduling optimization and planing group) es otro organismocuyo fin principal es conducir investigacioacuten en modelos heuriacutesticas y algoritmos para laproduccioacuten automaacutetica de soluciones de alta calidad a una gran variedad de problemasde planeacioacuten y optimizacioacuten del mundo real incluyendo elaboracioacuten de horarioslogiacutestica asignacioacuten de espacio y mantenimiento de inventarios

212 Algunos meacutetodos para resolver el Problema de laGeneracioacuten de Horarios

La generacioacuten de horarios acadeacutemicos ha sido acometida por muchos investigadoresbaacutesicamente dentro del aacuterea de la Investigacioacuten de Operaciones

2121 Investigacioacuten de Operaciones

El algoritmo para resolver problemas de asignacioacuten se denomina Huacutengaro ya que fuerondos matemaacuteticos Huacutengaros Koumlnig (1916) y Egervary (1931) los que aportaron lasteoriacuteas que sirven de base a este meacutetodo [Daellenbach 1987]

Este problema se presenta en diversos casos de toma de decisiones Los problemastiacutepicos de asignacioacuten implican asignar tareas a maacutequinas trabajadores a tareas yproyectos personal de ventas a territorios de ventas contratos a licitaciones horarios deaulas disponibles a horarios de maestros disponibles enfermos a camas disponibles delhospital cierto nuacutemero de empleados a cierta cantidad de puestos en una empresaaviones a destinos aeacutereos entre otros

Capiacutetulo 2 Marco teoacuterico

Una caracteriacutestica importante de los problemas de asignacioacuten es que se asigna untrabajador una tarea a una sola maacutequina proyectoEn particular se busca elconjunto de asignaciones que optimice el objetivo planteado tal como minimizar costosminimizar tiempo o maximizar utilidad

La formulacioacuten del problema general de asignacioacuten es

Sujeta a

Corresponde a un caso especial del problema del transporte en el cual las variables Xijsoacutelo pueden tomar el valor 0 oacute 1 tomar el valor 1 si el origen i se hace corresponder aldestino j y 0 en caso contrario

El Algoritmo Huacutengaro

Este algoritmo se usa para resolver problemas de minimizacioacuten ya que es maacutes eficazque el empleado para resolver el problema del transporte por el alto grado dedegeneracioacuten que pueden presentar los problemas de asignacioacuten Las fases para laaplicacioacuten del meacutetodo Huacutengaro son

Capiacutetulo 2 Marco teoacuterico

Paso 1 Encontrar primero el elemento maacutes pequentildeo en cada fila de la matriz de costosmm se debe construir una nueva matriz al restar de cada costo el costo miacutenimo de cadafila encontrar para esta nueva matriz el costo miacutenimo en cada columna A continuacioacutense debe construir una nueva matriz (denominada matriz de costos reducidos) al restar decada costo el costo miacutenimo de su columna

Paso 2 (En algunos pocos textos este paso se atribuye a Flood) Consiste en trazar elnuacutemero miacutenimo de liacuteneas (horizontales o verticales o ambas uacutenicamente de esasmaneras) que se requieren para cubrir todos los ceros en la matriz de costos reducidos sise necesitan m liacuteneas para cubrir todos los ceros se tiene una solucioacuten oacuteptima entre losceros cubiertos de la matriz Si se requieren menos de m liacuteneas para cubrir todos losceros se debe continuar con el paso 3 El nuacutemero de liacuteneas para cubrir los ceros es iguala la cantidad de asignaciones que hasta ese momento se pueden realizar

Paso 3 Encontrar el menor elemento diferente de cero (llamado k) en la matriz decostos reducidos que no estaacute cubierto por las liacuteneas dibujadas en el paso 2 acontinuacioacuten se debe restar k de cada elemento no cubierto de la matriz de costosreducidos y sumar k a cada elemento de la matriz de costos reducidos cubierto por dosliacuteneas (intersecciones) Por uacuteltimo se debe regresar al paso 2

Notas

1 Para resolver un problema de asignacioacuten en el cual la meta es maximizar la funcioacutenobjetivo se debe multiplicar la matriz de ganancias por menos uno (-1) y resolver elproblema como uno de minimizacioacuten

2 Si el nuacutemero de filas y de columnas en la matriz de costos son diferentes el problemade asignacioacuten estaacute desbalanceado El meacutetodo Huacutengaro puede proporcionar una solucioacutenincorrecta si el problema no estaacute balanceado debido a lo anterior se debe balancearprimero cualquier problema de asignacioacuten (antildeadiendo filas o columnas ficticias) antes deresolverlo mediante el meacutetodo Huacutengaro

3 En un problema grande puede resultar difiacutecil obtener el miacutenimo nuacutemero de filasnecesarias para cubrir todos los ceros en la matriz de costos actual Se puede demostrarque si se necesitan j liacuteneas para cubrir todos los ceros entonces se pueden asignarsolamente j trabajos a un costo cero en la matriz actual esto explica porqueacute terminacuando se necesitan m liacuteneas

Capiacutetulo 2 Marco teoacuterico

Tambieacuten han aparecido meacutetodos no convencionales que atacan el problema desdediferentes aacutengulos Los maacutes usuales son

Algoritmos Geneacuteticos Redes Neuronales Recocido Simulado Buacutesquedas Tabuacute Sistemas Expertos Programacioacuten Loacutegica de Restricciones Grafos Coloreados Operadores Recombinatorios Especializados

2122 Algoritmos Geneacuteticos

Los Algoritmos Geneacuteticos han sido utilizados satisfactoriamente para planear exaacutemenesy cursos en cierto nuacutemero de casos [Corne 1993] utiliza una buena aproximacioacutentradicional donde cada gene representa la hora en la cual se presentaraacute un examen ocurso Con operadores de cruzamiento y mutacioacuten como los mencionadosanteriormente agrega sustanciosos ahorros de tiempo al meacutetodo de Corne [Paechter1994] da una aproximacioacuten diferente donde el gene de cada examen no solo especificaldquoel cuandordquo sino que tambieacuten busca un nuevo horario del examen si despueacutes delcruzamiento el curso esta causando un conflicto Si el examen no puede ser programadoen alguna hora entonces no se agrega a la planeacioacuten con la finalidad de no tenerhorarios infactibles

[Burke1994] incorpora dominios de conocimiento especiacutefico para asegurar que ningunade las soluciones candidato es no factible En particular una representacioacuten directa seutilizada que incluye no soacutelo el cuaacutendo sino tambieacuten el doacutende un curso o examendeberaacuten ser tomados permitiendo al programador de horarios detener la ejecucioacuten delalgoritmo en cualquier punto y tener ya una serie de soluciones de buenos horariosfactibles

2123 Programacioacuten Loacutegica de Restricciones

Varios autores han presentado teacutecnicas de Programacioacuten Loacutegica de Restricciones pararesolver problemas de asignacioacuten de horarios pero eacuteste sigue siendo un nuevo enfoqueTambieacuten han aparecido algunos usando PLR para la planeacioacuten de clase-maestro[Yoshikawa 1994]

Kang y White presentaron una buena aproximacioacuten estaacutendar de PLR programandocursos sin permitir ningun conflicto [Kang y White 1994] Ellos usaron una teacutecnica dereversa equivalente al backtracking con lo cual cuando un curso no puede ser

Capiacutetulo 2 Marco teoacuterico

asignado uno similar es desasignado y el nuevo es colocado en su lugar Esto previeneuna buacutesqueda exhaustiva completa Esto tambieacuten introduce el concepto de undelimitador de tamantildeo que establece un maacuteximo en el tamantildeo del aula que puede usarun curso en particular Las restricciones son priorizadas en cinco diferentes categoriacuteasdonde la categoriacutea cinco debe ser liberada antes que la categoriacutea cuatro y asiacute con lasdemaacutes Este procedimiento fue utilizado para programar exitosamente los cursos de laUniversidad de Otawa

Tambieacuten se ha utilizado la teacutecnica de la Programacioacuten Loacutegica de Restricciones parahacer los horarios de una facultad utilizando una regla heuriacutestica para seleccionar quecurso asignar primero [Fahrion y Dollanski 1992]

2124 Redes Neuronales

De las distintas categoriacuteas de las Redes Neuronales Artificiales la maacutes apropiada pararesolver el problema es la familia de las Redes Neuronales de reaccioacuten basadas enneuronas multiestado con ecuaciones de teoriacutea de campos con significado controlandolas dinaacutemicas Las ecuaciones anteriores son usadas en lugar de los procedimientospara actualizacioacuten de demanda estocaacutesticos que han sido usados por otros esquemas paraevitar quedar atorados en circuitos locales miacutenimos [Carrasco 2004]

2125 Recocido Simulado

Recocido Simulado se refiere al uso de una teacutecnica de optimizacioacuten combinatoria odiscreta Divide el problema en grupos del mismo tiempo de clase los cuales sonespecificados por cada departamento acadeacutemico basados en la habilidad de losinstructores Funciona asiacute

1 El proceso asigna aulas procesando un grupo a la vez empezando con el primero2 El proceso continuacutea hasta que todos los grupos son procesados3 Cuando una solucioacuten es obtenida dividiendo el problema en conjuntos de horario

una mutacioacuten especial es generada con grupos traslapados Esto podriacutea generar unamala asignacioacuten de aula para minimizar esto se utiliza el siguiente paso

4 Los grupos son procesados basados en el nuacutemero de aulas este nuacutemero de aulas esoptimizado y se termina con las horas de clase con el miacutenimo de paquetes a esa hora

5 La implementacioacuten del programa genera una base de datos con la nueva asignacioacutende salones para el proacuteximo semestre [Abramson 1991]

2126 Operadores Recombinatorios Especializados

Los operadores de cruzamiento de los Algoritmos Geneacuteticos producen buenas

Capiacutetulo 2 Marco teoacuterico

combinaciones de genes para ser pasados entre los diferentes miembros de unapoblacioacuten En los Algoritmos Geneacuteticos estaacutendar es un procedimiento similar a escogerlos primeros n genes del primer padre y los uacuteltimos del segundo padre esteprocedimiento no es uacutetil en situaciones donde existen fuertes restricciones sobre laforma de los miembros de la poblacioacuten aquiacute un operador violaraacute esos requerimientosEl operador de recombinacioacuten heuriacutestico hiacutebrido trabaja asiacute

1 Los grupos no programados del periodo anterior son pasados al algoritmo2 Primero selecciona aquellos grupos programados en el periodo i en los padres 1 y 23 Los grupos extra son seleccionados de aquellos programados en el periodo i ya sea

del padre 1 o del padre 2 o de los dejados del periodo i ndash 14 Cualquiera de los grupos no programados es pasado al periodo i+15 Soacutelo los grupos que no crean conflicto con aquellos ya programados para este

periodo pueden ser seleccionados [Wilke 2002]

2127 El Sistema Experto Basado en Reglas

Los Sistemas Basados en Reglas proporcionan un buen punto de referencia para saberque tan buenos son otros meacutetodos en comparacioacuten a esta teacutecnica estaacutendar Varias deestas reglas son usadas para proporcionar sensibles elecciones para los movimientos enel algoritmo de Recocido Simulado en lugar de seleccionar cambios de manera aleatoriase ha usado este sistema como un preprocesador para generar una buena aproximacioacuteninicial y darla al Recocido Simulado

El Sistema Experto Basado en Reglas consiste en un nuacutemero de reglas (o heuriacutesticas) yrecursioacuten convencional para ayudar en la generacioacuten de asignacioacuten de clases Lasestructuras de datos o componentes del sistema son

bull Una matriz de distancias entre los departamentos acadeacutemicos y los edificios queseraacuten utilizados

bull Estructura de los datos de las materias para cada grupo programado en el campobull Estructura para las aulas (independientemente del tipo de aula) involucradas en el

procesobull Horarios para cada periodo de tiempo guardando cuales estaacuten disponibles y

cuales ya fueron ocupadasbull La estructura de los departamentosbull Las preferencias de los estudiantes indicando las clases requeridas

independientemente del semestre que sean las materias [Gervaacutes 1999]

Capiacutetulo 2 Marco teoacuterico

213 Observaciones realizadas a algunos paquetes generadores de horarios

Nombre DeMIStDescripcioacuten Puede describirse como un paquete que realiza bien las operaciones decasa (la propia universidad que lo creoacute) pero salioacute tan costoso como si hubierancomprado un paquete [Demist 2000]Proveedor DeMISt University

KnowTISEs un proyecto iniciado por la universidad de Leeds En la literatura aparece como unpaquete que es mejor para la generacioacuten de Grandes Horarios para una universidad quepara un departamento Utiliza el beneficio de gran cantidad de informacioacutencentralizada para la optimizacioacuten de recursos [Schedul 2000]Leeds University

STARSSTARS(Space Time and Resources Management) Igual que el anterior corre mejor enla elaboracioacuten de horarios de buen tamantildeo que en una aplicacioacuten departamentalDe Montfort University

Meeting maker Office TalkEs un generador de clases y acciones diarias es bueno cuando no es uacutetil el horario delos alumnos ya que proporciona uacutenicamente los espacios para las clases [Gervaacutes 1999]Varios proveedores

GP-UNTISEs un paquete australiano que funciona perfectamente para los requerimientos de lasescuelas secundariasTimetabling Services UK

Syllabus PlusEs una buena opcioacuten para uso departamental cumple los requerimientos de unauniversidad para la generacioacuten de horarios no trabaja a nivel de estudiantes pero si lohace con grupos de ellos no es factible para la generacioacuten de Grandes HorariosScientia LTD

Facility TimetablerEs una buena opcioacuten para uso departamental y para Grandes Horarios tiene interfaz conlos sistemas de alumnos y permite la creacioacuten de horarios individuales permite el uso

Capiacutetulo 2 Marco teoacuterico

centralizado de las aulas para una buena optimizacioacutenFacility Systems

Mimosa for WindowsEs un software general de planificacioacuten de la ensentildeanza y de programacioacuten de horariosLa aplicacioacuten utiliza todas las propiedades de Windows eficientemente es raacutepida tienegran capacidad y lo mas importante es tan flexible que puede aplicarse en todo el tipode escuelas desde la escuela primaria a las universidades desde las escuelasvocacionales a las academias militares

Se podriacutea decir que este producto cubririacutea todas las necesidades de la institucioacuten perohan existido algunos inconvenientes ya que no cubre con las necesidades deldepartamento tan solo da ayuda al usuario para que pueda generar sus horarios ademaacutesel tener tantos botones en pantalla (200) podriacutean confundir al usuario y realizar horarioserroacuteneos y no se resolveriacutea el problema [Nielsoft 2000]Mimosa Software Oy Finlandia

GestHor BSPEs un producto informaacutetico para resolver problemas de horarios escolares en escuelasbaacutesicas escuelas secundarias y escuelas profesionales

Toacutemese en cuenta que la mayoriacutea de los sistemas mencionados se enfoca solo a laasignacioacuten aula ndash materia y no abarca lo que es asignacioacuten materia ndash profesor

22 Los horarios

Existe mucha literatura referente a los horarios con una gran variedad de subtiacutetulos ydiferentes problemas Una gran variedad de algoritmos han sido propuestos empleandometodologiacuteas y heuriacutesticas de buacutesqueda produciendo horarios completos o soacuteloayudando durante el proceso Una de las grandes preguntas para la elaboracioacuten dehorarios es que si eacutestos pueden ser generales es decir iquestse puede encontrar un algoritmoo meacutetodo suficientemente general que produzca buenos horarios para todos losproblemas y para todas las restricciones La alternativa desde luego es continuardesarrollando algoritmos especializados aislados cada vez que un problema de horariosaparece

Al trabajar con una solucioacuten para el problema de los horarios se deben contestar lassiguientes preguntas iquestTodas las escuelas de nivel superior elaboran los horarios de lamisma manera iquestSon grandes o pequentildeas las diferencias en la forma de elaborar loshorarios iquestQueacute tan necesaria es la ayuda de la computadora iquestSoacutelo se requiere unpaquete general para la elaboracioacuten de los horarios iquestQueacute funcionalidad debe tener

Capiacutetulo 2 Marco teoacuterico

dicho paquete iquestQueacute tan grande y complejo es el problema de elaboracioacuten de horariosiquestQueacute propiedades debe poseer un horario aceptable para que una institucioacuten lo use

Se han realizado algunas encuestas para conocer si las escuelas de nivel superior tienensistemas computarizados para la elaboracioacuten de horarios si no los tienen si lonecesitaban y queacute caracteriacutesticas deberiacutea poseer El estudio concluyoacute que existe una grandemanda para tal sistema que se requiere un alto grado de asistencia automatizada yque la mayoriacutea de los elaboradores de horarios no estaban muy contentos con sussistemas actuales [Comm y Mathaisel 1988]

[Dowsland y Lim 1982] consideraron el problema de la elaboracioacuten de horarios peroproporcionaron alternativas en la encuesta de la utilidad de sistemas automatizados[Junginger 1986] establece que ldquoAunque los horarios producidos requierenmodificacioacuten las escuelas estaacuten contentas con los resultados El tiempo ahorrado fueconsiderable arriba del 75rdquo Dowsland por otro lado concluye que ldquoEs muy difiacuteciljuzgar el eacutexito actual de los paquetes para la elaboracioacuten de horarios pero el uso muylimitado de ellos sugiere que sus ventajas son limitadasrdquo Claramente ninguacuten disentildeadorde sistemas puede garantizar la idea de que su producto seraacute bienvenido con los brazosabiertos

[Pendlebury 1986] encuestoacute a las universidades politeacutecnicas britaacutenicas con respecto ala elaboracioacuten de horarios de cursos Doce de las treinta que contestaron la encuestautilizan elaboracioacuten de horarios por computadora (siete a gran escala y cuatro lo hacenen pequentildea escala) Es interesante notar que Pendlebury encontroacute que la mayoriacutea de loscursos se basan en clases que son muy independientes unas de otras y en la mayoriacutea delas instituciones encuestadas los departamentos individuales son responsables deproducir sus propios horarios

221 El problema de la elaboracioacuten de horarios

La elaboracioacuten de horarios es el acto de programar cursos a periacuteodos de tiempo asignarun aula a esos cursos y asignar un catedraacutetico a dicho curso

A menudo se hacen afirmaciones acerca de la naturaleza del problema que puedenpermitir encontrar una solucioacuten maacutes eficientemente Sin embargo cuando se trata deconstruir un sistema general se estaacute limitado a que las afirmaciones son el miacutenimocomuacuten denominador de todos los posibles escenarios

Una informacioacuten impliacutecita que ha sido hecha a menudo es la independencia entreunidades acadeacutemicas separadas Algunas universidades programan preguntando a susdepartamentos los horarios de sus propios cursos Una unioacuten central de dichos horarioses entonces utilizada para asegurar que todas las restricciones relevantes son cumplidasEn muchos casos esta es la forma normal en que es producido el horario de los cursos

Capiacutetulo 2 Marco teoacuterico

aunque algunos departamentos desarrollan su propio software para la programacioacuten decursos

En varias universidades los alumnos pueden tomar algunos de sus cursos endepartamentos diferentes al suyo Obviamente la independencia no debe ser asumidageneralmente debido a que puede haber diferencia en la programacioacuten de los cursos decada departamento En el Tecnoloacutegico de Zacatepec por ejemplo la probabilidadpromedio de que un curso tenga conflicto con uno de otro departamento es 1650mientras que la probabilidad de que dos cursos del mismo departamento tengan conflictoes 2250 notaacutendose una gran diferencia en el resultado

Dificultades encontradas por los responsables de la generacioacuten de horarios

Algunas dificultades experimentadas por los departamentos y facultades sonmencionadas aquiacute

bull Los programas acadeacutemicos se hacen cada vez maacutes flexibles (los estudiantesseleccionan queacute asignaturas tomar cuaacutendo doacutende y con quieacuten)

bull Algunos departamentos tienen asignaturas para ofrecer pero no tienen muchosalumnos

bull Los espacios para ofrecer las materias son cada vez menos y el problema se agravacuando los alumnos no quieren asistir en las tardes o los saacutebados

bull El staff de profesores no siempre estaacute disponible para impartir clases por muacuteltiplesrazones

bull Los alumnos pueden solicitar los grupos del proacuteximo semestre desde antes de queinicie pero al llegar el momento de inscribirse no lo hacen

bull Los departamentos estaacuten ansiosos por ofrecer una gran variedad de grupos teniendolos recursos pero esto puede ocasionar problemas

bull Existe una gran variedad de reglas al momento de asignar las aulas (pertenencia alas carreras prioridades de profesores etc)

bull Como no hay un costo asociado a la utilizacioacuten de un aula y no hay sanciones porreservarla y no utilizarla los departamentos acadeacutemicos no tienen un buen motivopara hacer una correcta utilizacioacuten del espacio

bull La falta de recursos ocasiona el mayor de los problemas porque obliga a laoptimizacioacuten en la planeacioacuten

Cursos y estudiantes

El problema de la elaboracioacuten de horarios estaacute relacionado esencialmente con el nuacutemerode eventos que requieren ser programados en este caso los cursos para los estudiantesClaramente el tamantildeo del problema variacutea entre los diferentes centros de estudio desdepequentildeos problemas con alrededor de 50 a 100 cursos hasta los 500 o 1000 cursos que

Capiacutetulo 2 Marco teoacuterico

programar Esta variacioacuten en el tamantildeo afectaraacute el tiempo requerido para resolver elproblema Un problema pequentildeo puede ser resuelto casi de manera oacuteptima mientrasque en uno grande se deben usar buacutesquedas heuriacutesticas u otras formas de acotar elespacio de buacutesqueda de una solucioacuten en un periodo de tiempo razonable

Se debe esperar que el nuacutemero de cursos y el nuacutemero de alumnos esteacuten correlacionadosEl nuacutemero de cursos ofrecidos y desde luego programados debe ser calculado porextrapolacioacuten del promedio de 5 o 6 cursos por alumno y con cupo promedio de 30alumnos por curso obviamente algunos alumnos se inscribiraacuten en 7 u 8 cursos porsemestre mientras que los cursos tendraacuten inscritos entre 20 y 40 alumnos Losalumnos dependiendo del semestre en que se encuentran inscritos deben matricularse aciertos cursos especiacuteficos para ese semestre dichos cursos deben programarse de maneraque los alumnos tengan la menor cantidad de tiempo entre el primer y el uacuteltimo cursodel diacutea permitieacutendoles con esto realizar actividades complementarias

En el Tecnoloacutegico de Zacatepec para una carrera con 900 alumnos se requieren ofertaraproximadamente entre 140 y 160 cursos ademaacutes los estudiantes pueden matricularse encursos ofrecidos por otros departamentos (esto ampliacutea el rango de posibilidades para losalumnos)

Los cursos y los departamentos

El promedio de los cursos ofrecidos por cada departamento variacutea considerablementeentre las diferentes escuelas de nivel superior La razoacuten de esta variabilidad puede servista como un indicador de la naturaleza de la complejidad de la planeacioacuten de horarios

Cada departamento ofrece cursos a los estudiantes de las carreras a las que da soportedirecto pero ademaacutes debe ofrecer cursos para todas las otras carreras de la institucioacutenque lo requieran esto es si un departamento X solicita la apertura de determinadonuacutemero de cursos a un departamento Y el departamento Y debe ofertar los cursossolicitados por X para los alumnos matriculados en el departamento X aunado a estoalgunos cursos ofertados por el departamento Y tienen compatibilidad con cursosofrecidos por X y por lo tanto los estudiantes de Y y X pueden ingresar indistintamenteen cualquiera de los cursos

Los cursos los semestres y las horas

Una de las afirmaciones que se pueden hacer en las instituciones de nivel superior es quelos cursos generalmente inician durante cierto periodo de tiempo y pueden tenerduracioacuten semestral (la gran mayoriacutea) trimestral y sin fechas predeterminadas (algunosposgrados por ejemplo) En general los cursos empiezan a las 700 AM y terminandependiendo del lugar a las 2000 o a las 2100 horas de lunes a saacutebado Aunque estopermite tener un amplio margen de horas para programar los cursos esto hace tambieacuten

Capiacutetulo 2 Marco teoacuterico

aun maacutes difiacutecil la elaboracioacuten de los horarios porque aumenta el rango de posiblescombinaciones donde programar cursos

Los cursos se pueden programar en periodos de tiempo muy variados aunque la mayoriacuteade los programadores de horarios siguen los siguientes patrones

bull Curso diario de 1 horabull Curso de dos horas en diacuteas saltados (lunes y mieacutercoles jueves y viernes

mieacutercoles y viernes)bull Curso de dos horas diarias 3 diacuteas por semana (lunes mieacutercoles y viernes)

(lunes martes y jueves) o (martes jueves y viernes)bull Cursos de cuatro horas en un solo diacutea por semanabull En el peor de los casos se programan cursos con la combinacioacuten de algunos

de los anteriores

Dependiendo del curso algunos tienen duracioacuten de cuatro horas teoacutericas semanales otroscombinan cuatro horas de teoriacutea y dos de praacutectica y algunos excepcionalmente sonprogramados con cuatro horas de praacutectica y dos de teoriacutea Las horas de praacutecticageneralmente se realizan en laboratorios o praacutecticas de campo agregando esto un nuevoparaacutemetro para la complejidad de la elaboracioacuten de horarios

Los cursos y las aulas

Las aulas son el espacio fiacutesico donde se impartiraacuten los cursos pueden ser salones declase laboratorios salones de exposicioacuten aulas para aplicacioacuten de exaacutemenes aulas paraactividades deportivas musicales o recreativas cada aula tiene capacidad para quecierto nuacutemero definido de estudiantes reciba sin problema unidades de ensentildeanzaaprendizaje

En una encuesta realizada por la Universidad de Nottingham [Burke y Elliman 1998] sedefinioacute que la programacioacuten de los cursos en las aulas es uno de los mayores problemasa los que se enfrentan los responsables de la elaboracioacuten de horarios Esto proviene dedos problemas mayores El primer problema es la escasez de aulas disponibles ya queen algunas de las escuelas de nivel superior el crecimiento de la poblacioacuten estudiantil hasido mayor que el crecimiento del nuacutemero de aulas disponibles para la ensentildeanza Elsegundo problema ocurre cuando se programa un curso en mas de un aula o saloacuten declase

La ocupacioacuten de las aulas es variable de acuerdo al departamento para el que seaasignada algunos prefieren utilizarlas al maacuteximo en el turno matutino otros en el turnovespertino tienen ocupacioacuten total algunos las utilizan exhaustivamente de lunes ajueves unos departamentos las llenan los viernes y saacutebados y otros tienen que utilizarlastodo el diacutea de lunes a saacutebado inclusive solicitan prestadas a los otros departamentosaquellos espacios que no son utilizados en alguacuten diacutea y hora a la semana

Capiacutetulo 2 Marco teoacuterico

Para el Tecnoloacutegico de Zacatepec el recurso llamado las aulas debe ser optimizado enuna buena planeacioacuten de horarios esto es deben ser utilizadas al maacuteximo todos los diacuteasde la semana desde las 700 hasta las 2100 de lunes viernes y los saacutebados hasta las1500 horas

Tipos de cursos

Una de las cosas a tomarse en cuenta durante la elaboracioacuten de los horarios es el tipo decurso a programar

bull Teoacutericos como los cursos matemaacuteticos cursos de administracioacuten etcbull Teoacuterico praacutecticos como los cursos de electroacutenica sistemas digitalesbull Lenguajes de programacioacutenbull Con praacutecticas de campo que deben salir al aire librebull Con praacutecticas de quiacutemica

Otra consideracioacuten es el tipo de aula requerida por los diferentes tipos de cursos

bull cursos que requieren medios audiovisuales simples (pizarroacuten y gis)bull algunos cursos adicionalmente requieren proyectores de acetatos y salas

obscurecidasbull cursos que requieren equipo de coacutemputo equipo de proyeccioacuten equipo de video y

televisioacuten para el desarrollo de la caacutetedra etcbull cursos que requieren laboratorios con computadorasbull que requieren equipos de medicioacuten electroacutenica generadores de sentildeales enchufes

eleacutectricos ybull cursos que requieren mesas tomas eleacutectricas y equipos para conexioacuten de redes

Los cursos y los catedraacuteticos

Definitivamente eacutesta es una de las principales consideraciones que tienen en cuenta losprogramadores de horarios la asignacioacuten de los cursos a los catedraacuteticos porque es unproceso que no puede realizarse de manera aleatoria es un proceso delicado porque deesto depende la efectividad del proceso de ensentildeanzandashaprendizaje

Los catedraacuteticos tienen caracteriacutesticas individuales que los hacen uacutenicosindependientemente de la profesioacuten que hayan estudiado Tienen intereses diferentesmeacutetodos diferentes aacutereas de preferencia diferentes perfil profesiograacutefico distinto tienenactividades extralaborales variadas asiacute que

iquestCoacutemo asignarle un curso a un catedraacutetico para que logre un oacuteptimo resultado en el

Capiacutetulo 2 Marco teoacuterico

proceso de ensentildeanza-aprendizajeiquestCoacutemo garantizar que el curso asignado a un profesor seraacute bien impartidoiquestCoacutemo saber que el profesor estaacute capacitado para ofrecer un buen cursoiquestCuaacuteles son los requisitos que debe reunir un profesor para impartir cierto cursoiquestDependen soacutelo de la profesioacuten los cursos que puede impartiriquestCoacutemo conocer de antemano las preferencias de los profesoresiquestEl nivel de estudio de los profesores les capacita para impartir cualquier cursoiquestDeben los profesores ser guiados a una especialidad por los programadores dehorarios

Las respuestas a todas estas preguntas incorporadas en un sistema generador de horariosiquestpermitiraacuten hacer una buena asignacioacuten de catedraacutetico a un curso

El condensado de horarios

Es un documento emitido cada semestre por los responsables de la elaboracioacuten de loshorarios que contiene la informacioacuten requerida por los alumnos jefes de departamento ycatedraacuteticos para conocer la distribucioacuten de las materias los grupos las aulas las horasy los catedraacuteticos que impartiraacuten los cursos en otras palabras el condensado de materiases el documento final de los HORARIOS que marcaraacute las acciones de todos el semestreactual

23 El proceso de la elaboracioacuten de horarios

El proceso de la elaboracioacuten de horarios abarca cada accioacuten que es requerida para crearel horario final completo y correcto de los datos iniciales Esto incluye recibir validary dar formato a los datos generar la versioacuten inicial hacer las correcciones y luegoproducir el condensado final de horarios El proceso de la generacioacuten de horariosabarca

bull la generacioacuten del dato de cuantos cursos se van a ofertarbull asignacioacuten de horario a esos cursosbull proporcionar aulas a los cursosbull designar profesores para los cursos definidos

la parte difiacutecil de esto es generar los horarios con los recursos disponibles en cadadepartamento cada etapa tiene sus restricciones (fuertes y suaves) los recursos no soninagotablesEl uso de la computadora

En una encuesta realizada por la Universidad de Nottingham [Burke y Elliman 1998]referente a la forma de elaborar horarios en las demaacutes universidades se encontroacute que un

Capiacutetulo 2 Marco teoacuterico

58 de ellas utilizan la computadora en alguna etapa del proceso de eacutestas el 21 tienela facilidad de realizar la programacioacuten aunque generalmente requieren captura manualde informacioacuten y conocimientos previos del problema particular del proceso El 1tienen paquetes comerciales y el 14 tienen paquetes hechos en casa para generarhorarios y el 2 aseguran que estaacuten desarrollando o comprando un paquete

Dado el tamantildeo de los horarios de dichas universidades es sorprendente que muchas notengan alguna forma de automatizacioacuten Esto se debe en la mayoriacutea de los casos a quelos horarios no cambian significativamente de un antildeo a otro Sin embargo de lasuniversidades que no programan horarios por computadora la mitad usa el horario delantildeo pasado y la otra mitad empiezan desde cero cada vez Cuando no se usa el horariodel antildeo pasado generalmente toma 4 semanas elaborar uno nuevo En la mayoriacutea de loscasos donde se usa la computadora generalmente no se toma en cuenta el horario delantildeo anterior

Causas de cambio de los horarios antildeo tras antildeo

Para que un horario pueda ser usado antildeo tras antildeo debe ser lo suficientemente robustopara que los cambios que ocurran en los datos de entrada produzcan soacutelo una pequentildeaalteracioacuten o modificacioacuten en el condensado final de horarios El uso del condensado delantildeo pasado depende en la cantidad de cambios que deben hacerse y esto a su vezdepende de cuanto cambie la cantidad de grupos que deben ofertarse para cadaasignatura y esto depende de la cantidad de alumnos que pueden cursar una asignaturaahora bien la cantidad de alumnos estaacute en funcioacuten de los iacutendices de aprobacioacuten yreprobacioacuten del periodo de los alumnos que por alguna razoacuten no cursaron unaasignatura y de la cantidad de grupos ofertados el periodo pasado

Si cambia la cantidad de horas frente a grupo asignada a un departamento entoncescambiaraacute el condensado de horarios con respecto al del antildeo pasado porque eso afectadirectamente en la cantidad de cursos que podraacute ofertarse este periodo este es uno de losrecursos maacutes variables que influyen para hacer cambios en los condensados antildeo trasantildeo

La redistribucioacuten de aulas y laboratorios (que no se realiza a menudo) llega tambieacuten ainfluir en los cambios

El cambio de horario matutino a vespertino (o viceversa) solicitado por un catedraacuteticoque es el especialista en impartir cierto curso ocasiona los cambios del condensado dehorarios del antildeo anterior al nuevo

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

CAPIacuteTULO 3

TEacuteCNICAS DE INTELIGENCIA ARTIFICIAL UTILIZADASPARA LA GENERACIOacuteN DE HORARIOS

31 Sistemas Expertos (SE)Bajo el teacutermino de Sistemas Expertos se entiende un nuevo tipo de software que imita elcomportamiento de un experto humano en la solucioacuten de un problema Un SE puedealmacenar conocimientos de expertos para un campo determinado y solucionar unproblema mediante razonamiento loacutegico de conclusiones

Los Sistemas Expertos son sistemas que buscan modelar el conocimiento yprocedimientos usados por un experto humano para resolver un problemadeterminado[Saacutenchez 1999]

iquestUn Sistema Experto utiliza teacutecnicas de la Inteligencia Artificial (IA)

Los Sistemas Expertos son uno de los puntos que componen las investigaciones en elcampo de la IA Un sistema de computadoras que trabaje con teacutecnicas de IA deberaacuteestar en situacioacuten de combinar informacioacuten de forma ldquointeligenterdquo alcanzarconclusiones y justificarlas (al igual que el resultado final) Los Sistemas Expertos sonuna expresioacuten de los sistemas basados en el conocimiento Con la aplicacioacuten de teacutecnicasde Inteligencia Artificial finaliza la transicioacuten del procesamiento de datos alprocesamiento de conocimientos

Un Sistema Experto es un sistema informaacutetico que simula el proceso de aprendizaje dememorizacioacuten de razonamiento de comunicacioacuten y de accioacuten de un experto humano enuna determinada rama o dominio Estas caracteriacutesticas le permiten almacenar datos yconocimiento sacar conclusiones loacutegicas tomar decisiones aprender de la experiencia ylos datos existentes comunicarse con humanos explicar el porqueacute de las decisionestomadas y realizar acciones como consecuencia de todo lo anterior

La incorporacioacuten dentro de un sistema de computadoras de un componente basado enel conocimiento correspondiente a una habilidad experta de tal forma que el sistemapueda ofrecer asesoramiento inteligente o tomar una decisioacuten inteligente sobre unafuncioacuten del proceso Una caracteriacutestica adicional deseable que muchos consideranfundamental es la capacidad del sistema si se le solicita de justificar su propia liacutenea derazonamiento de un modo directamente inteligible para el interrogador El estiloadoptado para alcanzar estas caracteriacutesticas es la programacioacuten basada en reglas[Waterman 1986]

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

311 Funcioacuten de un Sistema Experto

La funcioacuten de un Sistema Experto es aportar soluciones a problemas de un dominioespeciacutefico imitando la forma de razonamiento de los seres humanos es decir el SistemaExperto debe ser capaz de mostrar soluciones inteligentes [Giarratamo 1998]

Acceder a los conocimientos adquiridos por experiencia es lo maacutes difiacutecil ya que losexpertos al igual que otras personas apenas los reconocen como tales Son buscadoscon mucho esfuerzo y cuidado siendo descubiertos de uno en uno poco a poco

Ventajas del Sistema Experto

Experto Humano Experto ArtificialMortal PermanenteDifiacutecil de documentar Faacutecil de documentarDifiacutecil de transferir Faacutecil de transferirImpredecible ConsistenteMaacutes caro Menos caro

Ventajas del Experto Humano

Experto Humano Experto ArtificialCreativo No creativoAdaptable Requiere mantenimientoExperiencia sensorial Entrada simboacutelicaConocimiento de sentido comuacuten Conocimiento teacutecnico

312 Arquitectura de Sistemas Expertos [Gines 1986] [Giarratamo 1998]

La arquitectura general de un SE (Fig 31) estaacute compuesta fundamentalmente de

bull Base de Conocimiento Representa el conocimiento adquirido del expertohumano incluyendo experiencia sentido comuacuten e intuicioacuten

bull Motor de Inferencia Decide que se debe aplicar que se debe hacer resuelveconflictos nuevos hace uso de la base del conocimiento Proporcionamecanismos de razonamiento buacutesqueda aprendizaje etc

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

bull Interfaz Usuario Facilita la comunicacioacuten entre el Sistema Experto y el usuarioque realiza las consultas

bull Subsistema de Adquisicioacuten Mejor conocido como la Interfaz de Expertopermite ingresar el conocimiento a la Base de Conocimientos por parte delhumano experto en alguacuten dominio de conocimiento

bull Subsistema de explicaciones Permite dar a conocer los resultados obtenidospor el Sistema Experto

313 La base de conocimiento

El enfoque maacutes comuacuten para representar el dominio del conocimiento que se requierepara un SE son las reglas de produccioacuten Estas pueden ser referidas como reglasldquosituacioacuten-accioacutenrdquo o ldquoif-thenrdquo De esta forma con frecuencia una base deconocimientos estaacute fraguada principalmente de reglas las cuales son invocadas por uncasamiento de patrones con las particularidades de las tareas circunstanciales que vanapareciendo en la base de hechosLas reglas en una base de conocimientos representan el dominio de hechos y laheuriacutestica de un buen juicio de acciones a tomar cuando uno llega a situacionesespeciacuteficas La fuerza de un SE yace en el conocimiento especiacutefico del dominio delproblema Casi todos los sistemas existentes basados en reglas contienen cientos o milesde ellas y generalmente se obtienen de entrevistas con expertos durante un tiempo largoEn cualquier SE las reglas se conectan una a otra por ligas de asociacioacuten para formar

Base de

Motor de

Subsistema deadquisicioacuten

del

Subsistemade

explicacione

Interfazde

usuario

Ingeniero delconocimiento y experto Usuario

Base de hechos

Figura 31 Arquitectura de un Sistema Experto

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

redes de reglas Una vez que han sido ensambladas tales redes entonces se tiene unarepresentacioacuten de un cuerpo de conocimientos que es sustancial

Generalmente un experto tiene muchas reglas de criterio empiacutericas por lo que el soportesuele ser incompleto para la evidencia que se dispone En tales casos una teacutecnica es la devincular valores numeacutericos a cada regla para indicar el grado de certidumbre que eacutestatiene En la operacioacuten de SE los valores de certidumbre se combinan unos a otros atraveacutes de la red considerando tambieacuten la certidumbre de los datos de entrada delproblema para llegar finalmente a un valor de certidumbre de la solucioacuten final

314 El motor de inferencias

El sistema experto modela el proceso de razonamiento humano con un moacutedulo conocidocomo el motor de inferencia Dicho motor de inferencia trabaja con la informacioacutencontenida en la base de conocimientos y la base de hechos para deducir nuevos hechosContrasta los hechos particulares de la base de hechos con el conocimiento contenido enla base de conocimientos para obtener conclusiones acerca del problemaEl modelo de problema - solucioacuten y sus meacutetodos organizan y controlan las etapas que sevan tomando para la resolucioacuten de problemas Un modelo muy poderoso y comuacuten es elde encadenar las reglas `` if-then-else con el fin de formar alguna liacutenea derazonamiento Si el encadenamiento se inicia a partir de un conjunto de condiciones y semueve hacia alguna conclusioacuten el meacutetodo se llama encadenamiento hacia adelante y ensu caso contrario el encadenamiento es hacia atraacutes

Un problema de encadenamiento hacia adelante sin una apropiada heuriacutestica de podaderivaraacute muchas soluciones de las cuales no todas son necesarias En el caso deencadenamiento hacia atraacutes es necesario tambieacuten trabajar con una heuriacutestica apropiadacon la finalidad de poder manejar submetas conjuntivas En general para atacar elproblema de conjuncioacuten es necesario encontrar un caso en donde todas las submetasinteractuantes se satisfagan Pero con frecuencia una buacutesqueda de tal naturaleza nos dauna explosioacuten combinatoria de posibilidades Es por esta razoacuten que el dominioapropiado de la heuriacutestica y su esquema inferencial deberaacuten ser encontrados para cadatipo de problemas para que de esta manera se tenga un SE eficaz y eficiente

315 iquestPor queacute utilizar un Sistema Experto [Pluss 1999] [Sanchez 1999]

1 Con la ayuda de un Sistema Experto personas con poca experiencia pueden resolverproblemas que requieren un conocimiento formal especializado

2 Los Sistemas Expertos pueden obtener conclusiones y resolver problemas de formamaacutes raacutepida que los expertos humanos

3 Los Sistemas Expertos razonan pero basaacutendose en un conocimiento adquirido y notienen sitio para la subjetividad

Capiacutetulo 2 Marco teoacuterico

4 El uso de Sistemas Expertos es especialmente recomendado en las siguientessituaciones

bull Cuando los expertos humanos en una determinada materia son escasos

bull En situaciones complejas donde la subjetividad humana puede llevar aconclusiones erroacuteneas

bull Cuando es muy elevado el volumen de datos que ha de considerarse paraobtener una conclusioacuten

316 Construccioacuten de prototipos [Turban 1995]

En el desarrollo de Sistemas Expertos se plantean dos importantes riesgos

1- No existen implementaciones similares que puedan servir de orientacioacuten al encargadodel desarrollo en la casi totalidad de los casos

2- En muchos puntos los requisitos necesarios estaacuten esbozados con muy poca precisioacuten

El disentildeo y la especificacioacuten requieren una temprana determinacioacuten de la interfaz delsoftware y de la funcionalidad de los componentes En el desarrollo de SistemasExpertos deben alterarse a menudo durante y tambieacuten despueacutes de su implementacioacuten yaque los requisitos se han ido configurando y han obtenido mayor precisioacuten o porque seha descubierto que deben iniciarse otras viacuteas de solucioacuten Durante el desarrollo resultamaacutes apropiado empezar con implementaciones tipo test para encontrar el camino haciauna solucioacuten definitiva y para hacerlas coincidir con las necesidades del usuario

32 Algoritmos Geneacuteticos

321 Antecedentes [Medina 2004] [Goldberg 1989] [Davis 1991]

El Algoritmo Geneacutetico es una teacutecnica de buacutesqueda basada en la teoriacutea de la evolucioacutende Darwin que ha cobrado tremenda popularidad en todo el mundo durante los uacuteltimosantildeos

Esta teacutecnica se basa en los mecanismos de seleccioacuten que utiliza la naturaleza de acuerdoa los cuales los individuos maacutes aptos de una poblacioacuten son los que sobreviven al

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

adaptarse maacutes faacutecilmente a los cambios que se producen en su entorno Hoy en diacutea sesabe que estos cambios se efectuacutean en los genes de un individuo (unidad baacutesica decodificacioacuten de cada uno de los atributos de un ser vivo) y que sus atributos maacutesdeseables se transmiten a sus descendientes cuando eacuteste se reproduce sexualmente

En 1859 Darwin publica su libro laquoEl origen de las especiesraquo El libro causoacute una granpoleacutemica en el mundo cientiacutefico por las revolucionarias teoriacuteas en eacutel contenidas que lasespecies evolucionan acorde al medio para adaptarse a eacuteste Con ello el universopasaba de ser una creacioacuten de Dios estaacutetica y perfecta desde su inicio a un conjunto deindividuos en constante competicioacuten y evolucioacuten para poder perpetuar su especie en eltiempo La existencia de una especie pasa asiacute a ser algo dinaacutemico las especies se creanevolucionan y desaparecen si no se adaptan Para cada especie animal la naturalezaproponiacutea un crudo filtro soacutelo los mejores los maacutes aptos los que mejor se adapten almedio conseguiacutean sobrevivir lo suficiente para llegar a la madurez y encontrar unapareja para perpetuar sus aptitudes que le haciacutean maacutes apto

La informaacutetica ve aquiacute un claro proceso de optimizacioacuten Se toman los individuos mejoradaptados (mejores soluciones temporales) se cruzan (se mezclan ) generando nuevosindividuos (nuevas soluciones) que contendraacuten parte del coacutedigo geneacutetico (informacioacuten)de sus dos antecesores y por lo tanto aunque el nuevo individuo no tenga que estarforzosamente mejor adaptado de hecho puede que ni la probabilidad de que el nuevoindividuo generado esteacute mejor adaptado que los padres sea alta el promedio de laadaptacioacuten de toda la poblacioacuten si mejora ya que tienden a perpetuarse y extenderse lasmejores caracteriacutesticas y a extinguirse las poco beneficiosas o perjudiciales En losAlgoritmos Geneacuteticos se crea una nueva abstraccioacuten -la poblacioacuten- cuya funcioacuten decoste mejoraraacute globalmente por lo que puede que se encuentre alguacuten individuo conmejores caracteriacutesticas

Un investigador de la Universidad de Michigan llamado John Holland era consciente dela importancia de la seleccioacuten natural y a fines de los antildeos 60 desarrolloacute una teacutecnica quepermitioacute incorporarla a un programa Su objetivo era lograr que las computadorasaprendieran por siacute mismas A la teacutecnica que inventoacute Holland se le llamoacute originalmentePlanes Reproductivos pero se hizo popular bajo el nombre Algoritmo Geneacutetico trasla publicacioacuten de su libro en 1975

En esa universidad Holland impartiacutea un curso titulado Teoriacutea de sistemas adaptativosDentro de este curso y con una participacioacuten activa por parte de sus estudiantes fuedonde se crearon las ideas que maacutes tarde se convertiriacutean en los Algoritmos GeneacuteticosLos objetivos de su investigacioacuten fueron dos

Imitar los procesos adaptativos de los sistemas naturales y Disentildear sistemas artificiales (normalmente programas) que retengan los mecanismos

importantes de los sistemas naturales

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

Unos 15 antildeos maacutes adelante David Goldberg actual delfiacuten de los Algoritmos Geneacuteticosconocioacute a Holland y se convirtioacute en su estudiante Golberg era un ingeniero industrialtrabajando en disentildeo de tuberiacuteas y fue uno de los primeros que tratoacute de aplicar losAlgoritmos Geneacuteticos a problemas industriales Aunque Holland tratoacute de disuadirleporque pensaba que el problema era excesivamente complejo Goldberg consiguioacute loque queriacutea escribiendo un Algoritmo Geneacutetico en una computadora personal Apple IIEstas y otras aplicaciones creadas por estudiantes de Holland convirtieron a losAlgoritmos Geneacuteticos en un campo con base suficiente como para celebrar la primeraconferencia en 1985 ICGAacute85 Tal conferencia se sigue celebrando bianualmente[Beasley 1993]

Una definicioacuten bastante completa de un Algoritmo Geneacutetico es la propuesta por JohnKoza es un algoritmo matemaacutetico altamente paralelo que transforma un conjunto deobjetos matemaacuteticos individuales con respecto al tiempo usando operaciones modeladasde acuerdo al principio Darwiniano de reproduccioacuten y supervivencia del maacutes apto y trashaberse presentado de forma natural una serie de operaciones geneacuteticas de entre las quedestaca la recombinacioacuten sexual Cada uno de estos objetos matemaacuteticos suele ser unacadena de caracteres (letras o nuacutemeros) de longitud fija que se ajusta al modelo de lascadenas de cromosomas y se les asocia con una cierta funcioacuten matemaacutetica que refleja suaptitud [Koza 1992] 322 Definicioacuten de AG

Los Algoritmos Geneacuteticos (AG) son meacutetodos adaptativos que pueden usarse pararesolver problemas de buacutesqueda y optimizacioacuten Estaacuten basados en el proceso geneacutetico delos organismos vivos A lo largo de las generaciones las poblaciones evolucionan en lanaturaleza de acorde con los principios de la seleccioacuten natural y la supervivencia de losmaacutes fuertes postulados por Darwin Por imitacioacuten de este proceso los AlgoritmosGeneacuteticos son capaces de ir creando soluciones para problemas del mundo real Laevolucioacuten de dichas soluciones hacia valores oacuteptimos del problema depende en buenamedida de una adecuada codificacioacuten de las mismas [Goldberg 1989]

Un Algoritmo Geneacutetico consiste en una funcioacuten matemaacutetica que toma como entradas alos ejemplares y retorna como salidas cuaacuteles de ellos deben generar descendencia para lanueva generacioacuten

Los Algoritmos Geneacuteticos presentan ventajas sobre otros algoritmos que los hacenpreferibles para determinado tipo de aplicaciones Algunas de las caracteriacutesticas de losAlgoritmos Geneacuteticos son

bull Son algoritmos estocaacutesticos Dos ejecuciones distintas pueden dar dos solucionesdistintas Esto es uacutetil por el hecho de que hay gran cantidad de isoacutemeros que

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

corresponden a soluciones vaacutelidas por lo que es interesante que distintas ejecucionespuedan dar isoacutemeros distintos

bull Son algoritmos de buacutesqueda muacuteltiple luego dan varias soluciones Aunquehabitualmente la energiacutea de los individuos de la poblacioacuten final es similar losindividuos suelen ser distintos entre si Con el modelo de paralelizacioacuten empleado -geneacutetico multipoblacional- la probabilidad de obtener muchas soluciones distintas esmaacutes alta todaviacutea

bull Son los algoritmos que hacen una barrida mayor al subespacio de posiblessoluciones vaacutelidas De hecho se considera que de todos los algoritmos deoptimizacioacuten estocaacutesticos los Algoritmos Geneacuteticos son de los maacutes exploratoriosdisponibles

323 Ventajas y Desventajas [Bull 1993]

bull No necesitan conocimientos especiacuteficos sobre el problema que intentan resolverbull Operan de forma simultaacutenea con varias soluciones en vez de trabajar de forma

secuencial como las teacutecnicas tradicionalesbull Cuando se usan para problemas de optimizacioacuten de una funcioacuten objetivo- resultan

menos afectados por los oacuteptimos locales (falsas soluciones) que las teacutecnicastradicionales

bull Usan operadores probabiliacutesticos en vez de los tiacutepicos operadores determiniacutesticos delas otras teacutecnicas

bull La mayoriacutea de las otras teacutecnicas de optimizacioacuten son tambieacuten estocaacutesticasbull Pueden tardar mucho en converger o no converger en absoluto dependiendo en

cierta medida de los paraacutemetros que se utilicen tamantildeo de la poblacioacuten nuacutemero degeneraciones etc-

bull Pueden converger prematuramente debido a una serie de problemas de diversaiacutendole

324 iquestCoacutemo saber si es posible usar un Algoritmo Geneacutetico

La aplicacioacuten maacutes comuacuten de los Algoritmos Geneacuteticos ha sido la solucioacuten de problemasde optimizacioacuten en donde han mostrado ser muy eficientes y confiables Sin embargono todos los problemas pudieran ser apropiados para la teacutecnica y se recomienda engeneral tomar en cuenta las siguientes caracteriacutesticas del mismo antes de intentar usarlabull Su espacio de buacutesqueda (ie sus posibles soluciones) debe estar delimitado dentro

de un cierto rangobull Debe poderse definir una funcioacuten de aptitud que indique que tan buena o mala es

una cierta respuestabull Las soluciones deben codificarse de una forma que resulte relativamente faacutecil de

implementar en la computadora

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

Decisiones para implementar un Algoritmo Geneacutetico [Michalewicz 1992]

Las decisiones que hay que tomar para implementar un Algoritmo Geneacutetico son

bull Criterio de codificacioacuten Coacutemo se va a almacenar la informacioacuten en el genomabull Criterio de tratamiento de individuos no factibles Coacutemo se van a tratar a los

individuos que no cumplan las restriccionesbull Criterio de inicializacioacuten Coacutemo se va a construir la poblacioacuten inicialbull Criterio de parada Determina cuaacutendo el algoritmo ha llegado a una solucioacuten

aceptablebull Funcioacuten de adaptacioacuten Corresponde a la funcioacuten de costo de la investigacioacuten

operativa tradicionalbull Operadores geneacuteticos Se emplean para determinar coacutemo va a ser la nueva

generacioacuten Baacutesicamente son los operadores de cruce y mutacioacuten aunque pueden serempleados otros adicionales -muerte aborto envejecimiento- Tanto cruce comomutacioacuten pueden ser realizados de muchas formas distintas

bull Criterios de reemplazo Los criterios que determinan quieacutenes se van a cruzar Notienen que ser obligatoriamente los mismos que los criterios de seleccioacuten de lospadres

bull Paraacutemetros de funcionamiento Determinados paraacutemetros que sin poder serenglobados en ninguno de los anteriores son fundamentales para el funcionamientode un Algoritmo Geneacutetico Es el caso por ejemplo del tamantildeo de la poblacioacuten laprobabilidad de la aplicacioacuten de los operadores geneacuteticos etc

325 Paraacutemetros que deben ser especificados en el programa

Nordm de generaciones cantidad de veces que se produce una nueva generacioacuten deindividuos utilizando las reglas anteriormente explicadas Por loacutegica cuantas maacutesgeneraciones se produzcan se obtendraacuten mejores individuosNordm de individuos por generacioacuten en este ejemplo la cantidad de individuos de unageneracioacuten a otra es constante no variacuteaNordm de entrenamientos cantidad de veces que se lleva a cabo un entrenamiento entrediferentes generaciones de individuos

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

Fig 32 Pseudocoacutedigo del Algoritmo Geneacutetico simple

Los Algoritmos Geneacuteticos son una poderosa herramienta de propoacutesito general deoptimizacioacuten que modela los principios de la evolucioacuten [Burke 1994]

El proceso es el siguiente

1 Una poblacioacuten random de horarios factibles es creada Cada horario es evaluado deacuerdo a una conjunto de criterios (por ejemplo el tamantildeo del horario cuantosgrupos son colocados a la misma hora y en el mismo saloacuten cuantos salones hayvaciacuteos)

2 Los horarios son seleccionados de manera aleatoria para ser las bases de la proacuteximageneracioacuten Los buenos horarios son maacutes deseables que los malos En las bases dela evaluacioacuten de estos miembros de la poblacioacuten (horarios factibles) se escogen lospadres de la proacutexima generacioacuten de horarios Evaluando numeacutericamente durante elproceso de seleccioacuten buscando los mejores horarios los peores horarios soneliminados al mismo tiempo que la buacutesqueda se dirige hacia las aacutereas maacutespromisorias del espacio de soluciones

3 El Operador Mutacioacuten se aplica generalmente a un solo miembro de la poblacioacuten einvolucra el cambio aleatorio de la hora o aula de algunos grupos despueacutesalmacena el nuevo horario siempre manteniendo un horario factible Esto agrega

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

un elemento que permite tambieacuten introducir material geneacutetico uacutetil que ha sidoperdido en otros horarios en las primeras generaciones

4 El Operador de Cruzamiento toma una pareja de horarios y los combina de algunamanera para producir uno o dos nuevos horarios esto se hace generalmente deforma aleatoria seleccionando algunos grupos de la mantildeana de un miembro de lapoblacioacuten y los algunos grupos de la tarde de otro miembro para producir un nuevohorario cualquier grupo que no pueda ser colocado de esta manera se manda alperiodo siguiente disponible

5 La nueva poblacioacuten es generada El proceso seraacute repetido hasta que una buenasolucioacuten sea generada

33 Programacioacuten Loacutegica de Restricciones (PLR)

331 Antecedentes de la PLR

La Programacioacuten Loacutegica de Restricciones (PLR) es una teacutecnica que tiene mucho encomuacuten con los algoritmos de asignacioacuten heuriacutestica Dechter describe asiacute el problemade la satisfaccioacuten de restricciones ldquoUn problema de satisfaccioacuten de restricciones (PSR)es representado por una red de restricciones consistente en un conjunto de n variablesX1 Xn con sus respectivos valores de dominio RR n y un conjunto derestricciones Una restriccioacuten Ci (Xi1Xij)es un subconjunto del producto cartesiano Ri1 x x R i1 formado por todas las tuplas de valores para un subconjunto(X i1X ij) delas variables que son compatibles unas con otrasrdquo [Detcher 1990]

Una solucioacuten de la red es una asignacioacuten de valores a todas las variables de tal formaque todas las restricciones son satisfechasrdquo Esta es una representacioacuten maacutes poderosaque el modelo de los Grafos Coloreados porque puede representar restricciones mascomplejas El problema de los grafos coloreados es equivalente a un PLR binario en lacual cada restriccioacuten soacutelo tiene dos variables

Este modelo se resuelve tratando de asignar valores a cada una de las variables encuestioacuten y entonces regresando si se encuentra en un punto muerto y quitandorestricciones si se descubre que no se puede encontrar solucioacuten El orden en el que lasvariables son seleccionadas y el orden de los valores que son asignados a las variablespuede ser alterado para tratar aumentar la velocidad de buacutesqueda

La PLR es un meacutetodo que permite el disentildeo raacutepido de prototipos de resolucioacuten deproblemas complejos Las principales aportaciones en esta liacutenea se centran en eldesarrollo de programas que incluyen conjuntos de restricciones adaptadas a unadeterminada familia de problemas asiacute como al disentildeo formal e implementacioacuten demodelos de interpretacioacuten en paralelo con el fin de mejorar la eficiencia del proceso

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

deductivo El objetivo final es disponer de sistemas de resolucioacuten implementados paraapoyar la creacioacuten de sistemas donde la explosioacuten combinatoria de los elementos de unproblema hace muy difiacutecil la buacutesqueda de una solucioacuten en un tiempo razonable [Farion1992]

En esta seccioacuten se proporciona una breve introduccioacuten de la Programacioacuten Loacutegica conRestricciones y sus aplicaciones dentro del marco general de la programacioacuten loacutegica Setrata eacuteste de un campo que ha tenido una notable expansioacuten debido a su potencialaplicacioacuten praacutectica dado que el anaacutelisis de las restricciones permite mejorarconsiderablemente la eficiencia del caacutelculo de determinadas funciones

332 Restricciones

En primer lugar se empieza por contestar la pregunta iquestQueacute es una restriccioacuten Estacuestioacuten se puede responder tan brevemente como escribe Roman Bartak[1998]Una restriccioacuten es simplemente una relacioacuten loacutegica entre varias variablesdesconocidas tomando cada una un valor dentro de un dominio determinado (peA+B=C-el circulo estaacute dentro del cuadrado- etc)Asiacute las restricciones aparecen de forma natural en todos los campos del conocimientohumano La suma de los aacutengulos de un triaacutengulo es 180 grados es un ejemplo derestriccioacuten que aparece en el mundo real De hecho las restricciones son el medionatural en el que las personas expresamos los problemas en todas las aacutereas

Con la explicacioacuten dada se ve de forma natural que las restricciones gozan de variaspropiedades interesantes

bull las restricciones pueden especificar informacioacuten parcial es decir en lasrestricciones no hace falta que se den de forma uacutenica los valores de sus variables

bull las variables son no direccionales es decir en una restriccioacuten tiacutepica sobre dosvariables (XY) se puede inferir una restriccioacuten sobre X dada una restriccioacutensobre Y y viceversa

bull las restricciones son declarativas es decir se puede especificar que relacioacutendeben mantener sin especificar el procedimiento computacional que implementeesa relacioacuten

bull las restricciones son aditivas es decir el orden de imposicioacuten de las restriccionesno importa todo lo que importa al fin y al cabo es la conjuncioacuten de restriccionesy su efecto

bull las restricciones no suelen ser independientes normalmente restricciones dentrodel conjunto total de restricciones comparte variables

Asiacute siguiendo esta idea el objetivo de la Programacioacuten Loacutegica con Restricciones essustituir el proceso de unificacioacuten por la resolucioacuten de restricciones sobre un dominio

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

particular de intereacutes Con esta visioacuten se considera que el procesador de restriccionesdebe encargarse de comprobar la consistencia del conjunto de restricciones y dentro delo posible reducirlo a alguna forma normal

Seguacuten Elmohamed [Elmohamed 1998] las restricciones pueden ser divididas en trestipos fuertes medias y suaves

Restricciones fuertes Son todas aquellas que deben ser cumplidas obligatoriamente elcosto de no cumplir estas restricciones es sumamente alto y por lo tanto en un horariofactible su costo asociado por incumplimiento debe ser cero Por ejemplo (en unproblema real se pueden encontrar de 10 a 15 restricciones fuertes)

bull Dos o maacutes clases impartidas por un profesor no se pueden programar a lamisma hora

bull Una clase teoacuterica y su laboratorio no se pueden programar a la misma hora en elmismo diacutea

bull Una clase no se puede programar en un aula a menos que su capacidad seamayor al nuacutemero de alumnos inscritos

Restricciones medias Estas restricciones no se refieren a conflictos de tiempo perotienen asociado un alto costo a ellas sin embargo este costo no es tan alto como el de lasrestricciones fuertes En el condensado de horarios final el costo de estas restriccioneses minimizado y es deseable reducirlo a cero Por ejemplo (en un problema real sepueden tener entre 20 y 25 restricciones medias)

bull Para cada estudiante el balancear las secciones LunMieVie y MarJuebull Balancear o distribuir y equilibrar las horas de clase en la semanabull Las clases pueden requerir periodos de tiempo contiguosbull Las clases se pueden agrupar con otras clases formando paquetesbull Los horarios particulares deben tener la menor cantidad de ldquohoyosrdquo posible esto

es que las clases deben ser consecutivas unas despueacutes de otras

Restricciones suaves Estas restricciones no tienen nada que ver con conflictos detiempo y tienen un bajo costo asociado a ellas Tambieacuten en el condensado de horariosfinal este costo es minimizado pero no necesariamente debe ser cero Por ejemplo (sepueden tener entre 30 y 40 restricciones suaves)

bull Balancear la inscripcioacuten en cursos de varios paquetesbull Especificar la hora de comida y otros periodos de descansobull Los catedraacuteticos pueden requerir periodos de tiempo sin clasebull No inscribir alumnos-atletas en cursos que tengan conflicto con sus horas de

praacutectica deportiva etc

333 Sistemas con RestriccionesUna manera maacutes formal de definir las restricciones es considerarlas como una foacutermulade primer orden interpretada en una estructura para asiacute tener en cuenta la semaacutenticaparticular del sistema de restricciones Esta semaacutentica declarativa es adecuada cuando

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

existe a priori una estructura que se adecua al sistema de restricciones (pe Los realespara las restricciones aritmeacuteticas) pero esto no funciona demasiado bien para lossistemas de restricciones maacutes praacutecticos (pe Dominios finitos) Obviamente no se puededireccionar ninguacuten caacutelculo operacional relacionado con el propio procesador de lasrestricciones [Elmohamed 2001]

334 Referencia Histoacuterica de las RestriccionesLas restricciones como un aacuterea de trabajo que combina investigacioacuten de un gran nuacutemerode campos incluyendo Inteligencia Artificial Lenguajes de Programacioacuten CaacutelculoSimboacutelico y Loacutegica Computacional Las restricciones sobre redes y los problemas desatisfabilidad con restricciones empezaron a estudiarse por los investigadores deInteligencia Artificial en los antildeos 70

La programacioacuten con restricciones ha sido aplicada con notable eacutexito en numerososcampos Los trabajos en esta aacuterea se remontan a la investigacioacuten de InteligenciaArtificial y Representacioacuten Graacutefica por Computadora por los antildeos 60 y 70 En la uacuteltimadeacutecada sin embargo ha empezado a darse una mayor conciencia de que las restriccionesproporcionan las bases para un potente acercamiento a la programacioacuten modelado yresolucioacuten de problemas y que los diferentes esfuerzos por explotar estas ideas puedenser unidos bajo el mismo prisma conceptual y praacutectico la programacioacuten conrestricciones

Entre los dominios tratados por los sistemas de Programacioacuten Loacutegica con Restriccioneslos que maacutes ampliamente son investigados son sin duda los dominios finitos losnuacutemeros reales y racionales con restricciones aritmeacuteticas y los booleanos De hecho 3de los principales lenguajes de Programacioacuten Loacutegica con Restricciones son un claroejemplo de esta tendencia CHIP que proporciona restricciones sobre dominios finitosracionales y booleanos PrologIII que incluye racionales booleanos y listas y PLR(R)que maneja restricciones sobre reales

En la actualidad se pueden observar dos ramas principales en los avances en laprogramacioacuten con restricciones que parten de diferente base y por tanto usan diferentemetodologiacutea para resolver las restricciones Estas dos ramas son

bull Satisfaccioacuten de Restriccionesbull Resolucioacuten de Restricciones

335 Satisfaccioacuten de RestriccionesLa satisfaccioacuten de restricciones parte de los avances en Inteligencia Artificial (problemascombinatorios) y los Graacuteficos por computadora (sistema de SKETCHPAD[1963]expresando coherencia geomeacutetrica en el caso de anaacutelisis de escenas)

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

336 Resolucioacuten de RestriccionesLa resolucioacuten de restricciones difiere de la satisfaccioacuten de restricciones porque usavariables con dominios infinitos Ademaacutes las restricciones individuales son maacutescomplicadas por ejemplo ecuaciones no lineales En consecuencia los algoritmos deresolucioacuten de restricciones usan meacutetodos algebraicos y numeacutericos en vez decombinaciones y buacutesqueda Sin embargo existe metodologiacutea para discretizar losdominios infinitos en un nuacutemero finito de componentes y entonces se aplican lasteacutecnicas de Satisfaccioacuten de Restricciones

La programacioacuten con restricciones ha sido aplicada con eacutexito en numerosos campos Lasaplicaciones recientes incluyen [Detcher 1990]

bull Graacuteficos por Computadorabull Procesamiento del Lenguaje Natural (construccioacuten de analizadores eficientes)bull Sistemas de Bases de Datos (para reforzar yo mantener la consistencia de los

datosbull Problemas de Investigacioacuten Operativa (como la optimizacioacuten de problemas)bull Biologiacutea Molecular (secuenciacioacuten de ADN)bull Aplicaciones de Empresabull Ingenieriacutea Eleacutectrica (localizacioacuten de fallos)bull Disentildeo de Circuitos (para computar configuraciones)bull Planificacioacuten y organizacioacutenbull Configuracioacutenbull Juegosbull Configuracioacuten de horariosbull Criptoaritmeacuteticabull Coloreado de Grafosbull Razonamiento de hipoacutetesis quiacutemicas

En esta seccioacuten se va a dedicar una parte a cada una las aplicaciones maacutes estudiadas

337 Organizacioacuten de Proyectos

El problema de la Organizacioacuten es el proceso de asignar actividades a recursos en eltiempo En el caso general de organizacioacuten es un proceso de tomar decisiones donde sepueden tomar dos tipos de decisiones

bull Decisiones de situar temporalmente Cuaacutendo deberiacutea empezar cada actividadbull Decisiones de asignacioacuten de recursos Con queacute recursos deberiacutea ejecutarse cada

actividad

Los problemas de organizacioacuten y de asignacioacuten de recursos estaacuten basados enrestricciones Diferentes restricciones pueden afectar a la organizacioacuten la duracioacuten de

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

una actividad las fechas de contrato restricciones precedentes tiempos de transferenciao de inicio de la actividad la capacidad de los recursos y el reparto de recursos

La relajacioacuten de las restricciones principales caracteriza la calidad de los problemas deorganizacioacuten Estas restricciones son las relacionadas con fechas de entregaproductividad periodicidad de los cambios de herramientas niveles de inventariomargen de tiempo etc Algunas de estas restricciones pueden ser combinadas en lafuncioacuten de evaluacioacuten para la optimizacioacuten

Las aplicaciones industriales de las teacutecnicas de resolucioacuten de restricciones a losproblemas del tipo de asignacioacuten de tareas incluye[Detcher 1990]

bull Organizacioacuten de la produccioacutenbull Organizacioacuten y planificacioacuten del transporte y la logiacutesticabull Administracioacuten del traacuteficobull Disentildeo de horarios de recursos y de hombresbull Asignacioacuten de plantilla incluyendo aplicaciones de ingenieriacutea de organizacioacutenbull Problemas de empaquebull Configuracioacuten de maacutequinas

Claramente hay muchos problemas relacionados en el aacuterea de la organizacioacuten en lapraacutectica para los sistemas comerciales e industriales reales los liacutemites entre unos y otrosno estaacuten claros Es difiacutecil encontrar alguacuten problema real que se ajuste a un modelopreconcebido sin tener que descartar partes del problema y aproximar otras asiacute que hayque tomar estos modelos con amplio margen de aproximacioacuten

Otra complicacioacuten es el tema de la optimizacioacuten En algunos casos el usuario estaacutesatisfecho soacutelo con tener una manera automaacutetica de tener la respuesta pero la mayoriacuteaquieren tener al menos una buena respuesta y algunos el mejor resultado posible Perodebido a la gran complejidad combinatoria de la mayoriacutea de los problemas reales deorganizacioacuten una optimizacioacuten real es muy difiacutecil asiacute que en la mayoriacutea de los casos seusa la programacioacuten con restricciones en combinacioacuten con otras teacutecnicas tales comoAlgoritmos Geneacuteticos para dar soluciones casi oacuteptimas en un tiempo razonable

Normalmente los problemas de organizacioacuten se presentan usando variables conrestricciones fuertes y restricciones suaves Estas pueden ser agrupadas en la abstraccioacutendel problema de organizacioacuten Asiacute tiacutepicamente el tiempo de comienzo y fin y laduracioacuten de cada actividad se representan por variables con restricciones Los dominiosde estas variables son el rango de tiempo de intereacutes en la organizacioacuten requerida

Capiacutetulo 4 Anaacutelisis y Disentildeo

CAPIacuteTULO 4

ANAacuteLISIS Y DISENtildeO

41 Recopilacioacuten de informacioacuten

bull Documentos recopilados

bull Cataacutelogo de asignaturas prerrequisitos y semestrebull Cataacutelogo de aulas y su capacidadbull Cataacutelogo de catedraacuteticos horas disponiblesbull Mapa reticular de la carrerabull Reporte de grupos abiertos en periodo actualbull Reporte de alumnos por grupo en periodo actualbull Reporte de alumnos no inscritos por materia y semestrebull Reporte de simulacioacuten (si todos aprobaran sus cursos)bull Reporte del iacutendice de reprobacioacuten del semestre anteriorbull Encuesta aplicada para determinar los conocimientos requeridos

para impartir una materiabull Encuesta aplicada para obtener los conocimientos de cada

catedraacuteticobull Aacuterbol de conocimiento realizado para determinar los grupos por

abrir de cada asignaturabull Aacuterbol de conocimiento del perfil de las asignaturasbull Aacuterbol de conocimiento del perfil de los catedraacuteticosbull Aacuterbol de conocimiento de los criterios de apertura de materia

bull El proceso de la elaboracioacuten de los horarios

1 Elaboracioacuten de los reportes estadiacutesticos del periodo actual(grupos abiertos alumnos por grupo alumnos no inscritos pormateria simulacioacuten iacutendice de reprobacioacuten)

2 Caacutelculo de la estimacioacuten de alumnos por materia del proacuteximoperiodo

3 Caacutelculo del nuacutemero de grupos por materia requeridos para elproacuteximo periodo

4 Ajuste de los grupos por materia requeridos para el proacuteximoperiodo

5 Formacioacuten de los grupos en paquetes por semestre6 Asignacioacuten de hora y aula a los grupos

Capiacutetulo 4 Anaacutelisis y Disentildeo

7 Seleccioacuten de catedraacutetico al grupo y viceversa8 Ajustes en hora aula y catedraacutetico por grupo9 Elaboracioacuten del reporte condensado para publicacioacuten de horarios10 Elaboracioacuten de los reportes de grupos sin maestro maestros con

horas disponibles grupos sin aula

Para elaborar los horarios de los grupos y maestros un semestre determinado se tienenen consideracioacuten los siguientes elementos

bull El estadiacutestico de Servicios Escolares (SE)El departamento de SE cuenta con un sistema que registra todo el historial acadeacutemicode los alumnos inscritos en el ITZ las materias cursadas y sus calificaciones lasdiferentes carreras con su retiacutecula de asignaturas y sus prerrequisitos los grupos delsemestre actual la cantidad de alumnos en cada grupo de una asignatura los iacutendicesde reprobacioacuten de semestres anteriores las materias que puede cursar un alumno elproacuteximo semestre etceacutetera Toda esta informacioacuten plasmada en reportesdiferentes es la base para la generacioacuten de los horarios del proacuteximo semestre

bull Los grupos requeridosSobre la base de operaciones aplicadas a la informacioacuten estadiacutestica se obtiene lacantidad de grupos requeridos para abrirse el proacuteximo semestre este nuacutemero degrupos es la cantidad oacuteptima con la que se podraacuten inscribir los alumnos sin tenerproblemas de falta de espacio el alterar disminuyendo o aumentando el nuacutemero degrupos requeridos puede ocasionar alumnos con carga crediticia menor a lareglamentaria o que existan grupos con menos de 10 alumnos respectivamente

bull Las aulasEl ITZ cuenta con 52 aulas repartidas entre las 8 carreras a cada coordinador decarrera se le asigna determinado numero de aulas para su administracioacuten asiacute que alasignar el aula a cada grupo debe cuidar la correcta distribucioacuten de los grupos en loshorarios correspondientes y que la capacidad de las aulas no rebase el numero dealumnos inscritos

bull Los maestros y departamentosCada departamento esta formado por un jefe y los catedraacuteticos que forman laacademia de cada carrera los profesores pueden ser de tiempo completo frac34 y frac12tiempo o profesores de asignatura cada uno tiene un horario predeterminado en turnomatutino o vespertino los catedraacuteticos de un departamento cubren las asignaturas desu carrera y apoyan a otras carreras a cubrir las materias que tienen el perfil de esaacademia los catedraacuteticos son uno de los recursos mas difiacuteciles de controlar

Restricciones propias de los profesores

o Materia no tiene maestro

o Maestro tiene horas disponibles

Capiacutetulo 4 Anaacutelisis y Disentildeo

o Maestro tiene materias preferencia

o Maestro ha impartido materia

o Maestro solicita materia

o Maestro tiene restricciones de nuacutemero de materias a impartir

o Restriccioacuten no pueden darse maacutes de tres materias diferentes

o Maestro tiene una profesioacuten

o Maestro tiene un perfil

o Maestro tiene un aacuterea definida

o Maestro prefiere materias especialidad

o Maestro prefiere materias semestres iniciales

bull Las materias o asignaturasEn cada carrera se tiene un mapa reticular que tiene las materias de cada semestre elnombre los creacuteditos las horas de teoriacutea y praacutectica las ligas con los prerrequisitos lasmaterias de la especialidad seleccionada etc

Restricciones propias de las asignaturas

o Materia de 1deg semestre

o Materia de 2deg semestre

o Materia de 3deg semestre

o Materia de 4deg semestre

o Materia de 5deg semestre

o Materia de 6deg semestre

o Materia de 7deg semestre

o Materia de 8deg semestre

o Materia de 9deg semestre

o Materia de especialidad

o Materia tiene prerrequisito

o Materia es de baacutesicas

o Materia requiere conocimientos de Base de Datos

o Materia requiere conocimientos de Electroacutenica

o Materia la puede impartir cualquier maestro

Capiacutetulo 4 Anaacutelisis y Disentildeo

o Materia requiere conocimientos de Redes

o Materia requiere ser impartida por ingeniero

o Materia tiene complejidad alta

o Materia debe ser impartida por catedraacutetico con grado de maestriacutea

o Materia requiere conocimientos de Arquitectura de Computadoras

o Materia no tiene cadenas

o Materia de Administracioacuten

o Materia de Ingenieriacutea Industrial

o Materia requiere conocimientos de Aacutelgebra

o Materia requiere conocimientos de Caacutelculo Diferencial e Integral

o Materia requiere conocimientos de Quiacutemica Inorgaacutenica y Orgaacutenica

o Materia requiere una elaboracioacuten de proyectos

bull Las carrerasLas 8 carreras que se imparten en el ITZ son ordenadas por nuacutemero de alumnos

1 Ingenieriacutea en Sistemas Computacionales2 Licenciatura en Informaacutetica3 Licenciatura en Administracioacuten4 Ingenieriacutea Civil5 Ingenieriacutea Electromecaacutenica6 Ingenieriacutea Industrial7 Ingenieriacutea Quiacutemica8 Ingenieriacutea Bioquiacutemica

bull Los horarios de grupoUna vez determinados los grupos requeridos para el proacuteximo semestre se procede a laasignacioacuten de horario de acuerdo al nuacutemero de horas teoacuterico-praacutecticas se le asignaaula y un catedraacutetico responsable se fija tambieacuten un nuacutemero de alumnos y el tiempode laboratorio en caso de ser necesario

Capiacutetulo 4 Anaacutelisis y Disentildeo

Diagrama de flujo del proceso

Elaboracioacuten de los reportes estadiacutesticos

Caacutelculo de alumnos por materiaproacuteximo periodo

Caacutelculo del nuacutemero de grupos pormateria requeridos

Ajuste de los grupos por materiarequeridos

Formacioacuten de los grupos en paquetespor semestre

Asignacioacuten de hora y aula a los grupos

Asignacioacuten de catedraacutetico al grupo

Ajustes en hora aula y catedraacutetico porgrupo

Elaboracioacuten del reporte condensado

Elaboracioacuten de reportes varios

Todo cuadrabien

Si

No

Fin

Inicio

Capiacutetulo 4 Anaacutelisis y Disentildeo

42 Anaacutelisis de la informacioacuten

bull Cataacutelogo de asignaturas prerrequisitos y semestre

Funcioacuten Dar a conocer las asignaturas de una carrera los prerrequisitos de las materiasy el semestre al que pertenece una asignatura los creacuteditos miacutenimos que debe tenerun alumno para cursar la asignatura

Origen Reporte emitido por el departamento de Servicios Escolares

Campos del reporte nombre carrera nombre asignaturas creacuteditos miacutenimos materiasprerrequisito semestre al que pertenece la asignatura

bull Cataacutelogo de aulas y su capacidad

Funcioacuten Dar a conocer la nomenclatura y capacidad de las aulas y laboratorios del ITZ

Origen Departamento de Planeacioacuten

Campos del reporte Nombre del edificio nuacutemero de aula capacidad

bull Cataacutelogo de catedraacuteticos horas disponibles

Funcioacuten Dar a conocer los catedraacuteticos por departamento y sus horas disponibles frentea grupo

Origen Departamentos acadeacutemicos

Campos del reporte Nombre del departamento clave de profesor nombre del profesorcantidad de horas frente a grupo que debe tener

bull Mapa reticular de la carrera

Funcioacuten Mostrar el mapa reticular de una carrera graacuteficamente muestra las asignaturaspor semestre sus requisitos foacutermula crediticia etc

Origen Divisioacuten de Estudios Profesionales

Campos del reporte Nombre y clave de la carrera nombre y clave de las asignaturasfoacutermula crediticia (nuacutemero de horas teoacutericas nuacutemero de horas praacutecticas creacuteditos dela asignatura) las materias prerrequisito de otras materias de especialidad semestrede la asignatura nuacutemero de creacuteditos necesarios para poder cursar una asignatura

Capiacutetulo 4 Anaacutelisis y Disentildeo

bull Reporte de grupos abiertos en periodo actual

Funcioacuten Muestra los cursos que son ofertados en el periodo actual

Origen Departamento de Servicios Escolares

Campos del reporte Nombre de la carrera nombre de las asignaturas grupo de loscursos cantidad de alumnos inscritos nombre del catedraacutetico que lo imparte

bull Reporte de alumnos por grupo en periodo actual

Funcioacuten Muestra la cantidad de alumnos inscritos por semestre de una carrera

Origen Departamento de Servicios Escolares

Campos del reporte Nombre de la carrera semestres del 1 al 13 nuacutemero de alumnosinscritos por semestre

bull Reporte de alumnos no inscritos por materia y semestre

Funcioacuten Muestra los alumnos que pudieron inscribirse a una materia pero que poralguna razoacuten no lo hicieron

Origen Departamento de Servicios Escolares

Campos del reporte Nombre de la carrera nombre de la materia por semestre nuacutemerode alumnos que pudieron inscribirse y no lo hicieron

bull Reporte de simulacioacuten (si todos aprobaran sus cursos)

Funcioacuten Este reporte simula que todos los alumnos inscritos en los cursos acreditan elcurso entonces cuenta cuantos estudiantes pueden cursar todas las asignaturas comosi hubieran aprobado todos sus cursos actuales

Origen Departamento de Servicios Escolares

Campos del reporte Nombre de la carrera nombre de la asignatura y por semestre elnuacutemero de alumnos que pueden cursar una materia

bull Reporte del iacutendice de reprobacioacuten del semestre anterior

Funcioacuten Dar a los coordinadores los iacutendices de aprobacioacuten y reprobacioacuten de los cursosdel periodo anterior

Capiacutetulo 4 Anaacutelisis y Disentildeo

Origen Departamento de Servicios EscolaresCampos del reporte Nombre de la carrera nombre de la asignatura total de alumnos

aprobados total de alumnos reprobados del periodo anterior

bull Encuesta de conocimientos requeridos para impartir asignatura

Funcioacuten Obtener los datos de los conocimientos que debe poseer un catedraacutetico quequiera impartir una asignatura

Origen Academia de cada departamentoCampos del reporte Nombre de la asignatura objetivo de la asignatura carrera lista de

conocimientos requeridos para impartir la asignatura carrera adecuada del profesorque imparta la asignatura

bull Encuesta de conocimientos requeridos para perfil de profesores

Funcioacuten Obtener los datos de los conocimientos que debe posee un catedraacutetico

Origen Academia de cada departamento

Campos del reporte Nombre del catedraacutetico carrera del catedraacutetico conocimientos enaacutereas particulares de cada asignatura

43 Solucioacuten definida

Resolver el problema iniciando con la metodologiacutea ldquodivide y venceraacutesrdquo el problemageneral se dividiraacute en 6 problemas particulares

a) Sistema de Informacioacuten para control de horariosb) Sistema Experto para definicioacuten y generacioacuten de grupos

por abrirc) Moacutedulo Programacioacuten Loacutegica de Restricciones para

asignar horario a los gruposd) Moacutedulo Algoritmos Geneacuteticos para asignar aula a los

grupos ya definidose) Sistema Experto para definir catedraacutetico para

asignaturaf) Sistema Experto para asignar asignatura a catedraacutetico

Debido a la naturaleza y caracteriacutesticas de la informacioacuten todos lossistemas seraacuten realizados iniciando desde cero la recopilacioacuten deinformacioacuten el anaacutelisis el disentildeo y la programacioacuten de cada moacutedulo delsistema programado en Visual Basic y Bases de Datos en Access

Capiacutetulo 4 Anaacutelisis y Disentildeo

La principal ventaja de eacutesta opcioacuten es que el sistema estaacute hecho a la medida de lasnecesidades de la institucioacuten poniendo las restricciones en el formato que se tienenactualmente la desventaja es que se debe desarrollar TODO el sistema

44 Requerimientos del sistema

Los Motores de Inferencias deben ser disentildeados con las siguientes caracteriacutesticas

bull Buacutesqueda de primero en profundidad en ocasiones cuando se interactuacutee con elusuario este tipo de buacutesqueda seraacute utilizado para recorrer toda la base deconocimiento

bull Buacutesqueda heuriacutestica en la que el usuario deberaacute dar datos iniciales de por dondeempezar la buacutesqueda de alguna informacioacuten

bull Tomar informacioacuten de la Base de Conocimiento y guardarla en las bases de datos ytambieacuten inferir la informacioacuten y guardarla en las bases de datos para su posteriortratamiento e impresioacuten

bull Seleccionar la mejor opcioacuten y presentarla al usuario para los casos en que el usuariodecida cambiar alguacuten dato la maacutequina deberaacute presentar una opcioacuten y saber indicarel porqueacute la ldquoeligioacuterdquo

bull Dar otras soluciones ademaacutes de la oacuteptima teniendo porcentajes de aceptacioacuten paracada solucioacuten y permitiendo la buacutesqueda de maestros a impartir materias aulas paraalguacuten grupo o cantidad de grupos a abrir

bull Dar resultados en lenguaje natural de modo que el usuario entienda claramente loque la maacutequina le comunica

bull Trabajar interactivamente con el usuario para que eacuteste pueda cuestionar el porqueasignoacute un maestro abrioacute grupos asignoacute un aula etceacutetera

bull Tener capacidad para el uso del paradigma basado en analogiacuteas ldquoSi un maestro yadio la materia en alguacuten semestre entonces puede darla en este semestrerdquo o bien ldquoSieste paquete de materias estaacute completo entonces repite todo el paquete estesemestrerdquo

Interfaz de Usuario recibe y entrega informacioacuten interactuando con el usuario esdecir el usuario puede

1) alimentar hechos2) solicitar resultados y reportes3) cuestionar coacutemo se obtuvieron ciertas conclusiones

La interfaz de usuario debe tener las caracteriacutesticas siguientes

bull Comunicarse en el lenguaje del usuario sea un humano u otro dispositivobull Recibir hechos del usuario y almacenarlos en la base de hechosbull Presentar de manera amigable los objetivos a buscar e inferencias en pantallabull Dar de manera clara la explicacioacuten de la inferencia realizada

Capiacutetulo 4 Anaacutelisis y Disentildeo

bull Dar resultados por escrito en informesbull Proporcionar al usuario la facilidad de alimentar la base de conocimientosbull Dar al usuario la facultad de corregir las inferenciasbull Si el usuario es inexperto facilitar la ayuda necesaria

Seleccioacuten del lenguaje de programacioacuten

Visual Basic 60 proporciona a los programadores facilidad para desarrollar aplicacionescomplejas en poco tiempo (comparado con lo que cuesta programar en Visual C++ porejemplo)

El sistema necesita interfaces amigables al usuario con ventanas y botones emergentesen cualquier momento y Visual Basic 60 es una herramienta de disentildeo de aplicacionespara Windows en la que eacutestas se desarrollan en una gran parte a partir del disentildeo de unainterfaz graacutefica (pudiendo incorporar todos los elementos de este entorno informaacuteticoventanas botones cajas de diaacutelogo y texto botones de opcioacuten y de seleccioacuten barras dedesplazamiento graacuteficos menuacutes etc) En una aplicacioacuten Visual Basic 60 el programaestaacute formado por una parte de coacutedigo puro y otras partes asociadas a los objetos queforman la interfaz graacutefica Visual Basic 60 permite la programacioacuten de sus ventanasbotones y componentes de manera maacutes faacutecil que Java con sus Applets

En la parte del sistema de control de horarios que es un sistema de informacioacuten comuacutenlos programas que llenan de informacioacuten las bases de datos son muy parecidos unos conotros al hacer los procesos de altas bajas modificaciones consultas y validaciones seutilizan las ventajas que Visual Basic 60 ofrece de la Programacioacuten Orientada aObjetos (POO) eacutesta es una forma de programacioacuten que utiliza objetos ligados mediantemensajes para la solucioacuten de problemas Puede considerarse como una extensioacuten naturalde la programacioacuten estructurada en un intento de potenciar los conceptos demodularidad y reutilizacioacuten de coacutedigo Las caracteriacutesticas fundamentales de la POO sonabstraccioacuten encapsulamiento herencia y polimorfismo

Visual Basic 60 soporta la abstraccioacuten la encapsulacioacuten el polimorfismo y lareutilizacioacuten de coacutedigo Los objetos de Visual Basic estaacuten encapsulados es decircontienen su propio coacutedigo y sus propios datos

Manejador de Base de datos para el almacenamiento de la informacioacutenEl manejador de base de datos a utilizar seraacute Microsoft Access debido a que los usuariosque alimentan la base de conocimientos son expertos en diferentes aacutereas delconocimiento y tiene conocimientos limitados de los diferentes manejadores y estaacuten maacutesfamiliarizados con Microsoft Access Ademaacutes de que Access es transportablefaacutecilmente

Ademaacutes la cantidad y tipo de informacioacuten que se almacena en las tablas no requieremanejadores de bases de datos potentes o con caracteriacutesticas especiales

Capiacutetulo 4 Anaacutelisis y Disentildeo

Sistemagenerador dehorarios

SistemaExperto

Reglas

Criterios

Criterios por regla Conocimiento

Procesos

Capturaestadiacutesticas

Calcula grupos

Ajusta grupos

Sistema expertoasigna materia

Sistema Expertoasigna maestro

Asigna materia

Asigna catedraacutetico

Conocimientos

Procesos

Materias

Perfil general

Catedraacuteticos

Perfil materias

Perfil maestro

Asignacioacutenmateria-maestro

Asignacioacutenmaestro-materia

Buacutesqueda independiente

B adelante

B atraacutes

Abduccioacuten

Explicacioacuten

MoacuteduloPLR

Asigna horario

Datos

Arbol derestricciones Procesos

Materia

Grupos

Paquetes

Horario

Restriccioacuten 1

Restriccioacuten 3

Restriccioacuten 2

Restriccioacuten N

Genera random

Evaluacutea restricciones

Guarda grupo

MoacuteduloAlgoritmoGeneacutetico

Asigna aula

Operadores Geneacuteticos

Evaluacioacuten

Cruzamiento

Seleccioacuten

Mutacioacuten

Poblacioacuten Inicial

Versioacuten 1

Versioacuten 2

Versioacuten 3

Versioacuten N

Condensadodatos grales

Materia

Hora

Aula

Control escolar

Sistema deInformacioacuten

Aulas

Horarios

Grupos

Maestros

Datosestadiacutesticos

Datosgenerales

Datos condensado

Materias

45 MAPA CONCEPTUAL DEL PROYECTO

Capiacutetulo 4 Anaacutelisis y Disentildeo

Capiacutetulo 4 Anaacutelisis y Disentildeo

En la Figura 41 se muestra el mapa conceptual del proyecto La burbuja centralrepresenta el sistema generador de horarios y cada rama representa uno de los seismoacutedulos que lo componen las burbujas de cada rama contienen a su vez variasramificaciones en las que se muestran de manera graacutefica los componentes maacutesrepresentativos de los procesos utilizados la informacioacuten que manejan el conocimientoque utilizan y las restricciones involucradas

El moacutedulo Servicios Escolares contiene informacioacuten necesaria para la administracioacuten delos horarios en general y proporciona los datos para el funcionamiento de los demaacutesmoacutedulos

El moacutedulo Sistema Experto Creacioacuten de Grupos (SECG) muestra el conocimiento yprocesos utilizados para definir la cantidad de grupos a ofertar a partir de la informacioacutenestadiacutestica proporcionada por servicios escolares maacutes adelante en el documento seexplica a detalle su funcionamiento

En la Figura 41 se aprecia que los moacutedulos Sistema Experto AsignaCatedraacutetico(SEAC) y Sistema Experto Asigna Materia(SEAM) comparten las bases deconocimiento porque el conocimiento de un SE es la base de hechos del otro en amboscasos los procesos difieren solamente en la informacioacuten que utilizan y en los resultadosque producen noacutetese que existe un proceso que es ldquobuacutesqueda independienterdquo que puedecatalogarse como un Sistema Experto adicional que sirve para sugerir las asignaturasque puede impartir una persona que no estaacute dentro de las bases de datos de maestros ypor lo tanto su perfil tampoco estaraacute capturado en esta caso los hechos (su perfil deconocimientos) es capturado en el momento de la consulta

El moacutedulo de Algoritmos Geneacuteticos (AG) muestra los datos que recibe como se generauna poblacioacuten inicial el tratamiento que se le aplica por medio de los operadoresgeneacuteticos y la informacioacuten que se genera

Por uacuteltimo en la Figura 41 se nota tambieacuten el moacutedulo donde se utiliza la ProgramacioacutenLoacutegica de Restricciones que contiene 3 ramas donde una representa los datos recibidosy la informacioacuten generada otra rama denota un aacuterbol de restricciones que deben sersatisfechas por los paquetes de horarios la uacuteltima rama denota los procesos que se llevana cabo debe notarse que existe un proceso aleatorio que genera cada grupo un procesoque evaluacutea el grupo contra las restricciones y uno mas que guarda los grupos quecumplieron con todas

En este mapa conceptual no se muestra en que orden se ejecuta cada moacutedulo delproyecto la Figura 42 ilustra la secuencia de ejecucioacuten de los moacutedulos

La Figura 42 muestra el diagrama con la secuencia en que se van ejecutando losprocesos los datos que ingresan a cada moacutedulo y la informacioacuten que genera

Capiacutetulo 4 Anaacutelisis y Disentildeo

452 MAPAS CONCEPTUALES DE LOS MOacuteDULOS

Servicios Escolares

Datos Estadiacutesticos

Sistema Experto Creacioacuten de Grupos

Materias y grupos requeridos

Moacutedulo PLR

Materia + grupo + hora

Moacutedulo AG

Materia + grupo + hora + aula

Sistema ExpertoAsigna Catedraacutetico Sistema Experto

Asigna Materia

Sugiere profesorpara asignaturas

Sugiere asignaturapara profesor

Materia + grupo + hora + aula +profesor

Condensado final de materias

1

2

3

4

5 6

Fig 42 Diagrama de secuencia

Capiacutetulo 4 Anaacutelisis y Disentildeo

Como puede verse todo inicia cuando Servicios Escolares enviacutea la informacioacuten a laDivisioacuten de Estudios Profesionales (donde ldquohabitanrdquo los coordinadores) quienes son losresponsables de la elaboracioacuten de los horarios

Un primer proceso captura la informacioacuten que proviene de Servicios Escolares elsegundo moacutedulo define cuantos grupos deben programarse el tercer proceso asigna lahora a cada grupo el cuarto moacutedulo es el proceso que asigna las aulas los procesosquinto y sexto sirven para sugerir queacute catedraacutetico es el maacutes adecuado para cada grupo ycomo resultado final se tiene el condensado final de horarios para el siguiente semestre

En la Figura 43 se muestran los componentes del primer Sistema Experto utilizado paradefinir la cantidad de grupos que deben ofertarse el proacuteximo semestre en la partesuperior izquierda de la figura esta el coordinador de la carrera quien es el encargado decargar el conocimiento a las Bases de Conocimiento utilizando la interfaz de experto esla persona indicada para definir los criterios que tiene cada materia define las reglaspara la agrupacioacuten de los criterios y define en cada regla que tipo de ajuste se realiza

Experto

Coordinador

Interfaz Experto

Base deConocimientos

CriteriosReglasAjustes

Motor de Inferencia ListasMateriasGrupos requeridos

UsuarioMoacutedulo Explicacioacuten

Usuario(coordinador

novato)

Interfaz Usuario

Base Hechos

Informacion Estadiacutestica

Fig 43 Sistema Experto Generador de Grupos

Capiacutetulo 4 Anaacutelisis y Disentildeo

El usuario en la parte inferior de la figura puede ser el coordinador o su asistente y seencarga de capturar la informacioacuten estadiacutestica proporcionada por servicios escolares queson los datos de alumnos inscritos actualmente en cada materia el iacutendice de reprobacioacutenlos alumnos inscritos en la materias prerrequisito una simulacioacuten de los alumnosprobables para cursar esa materia si todos los inscritos aprueban todo y los alumnos quepueden cursar las materias pero no se inscribieron

Con los datos anteriores se realiza la siguiente operacioacuten

(Inscritos en materia iacutendice de reprobacioacuten de materia) 100 +Alumnos no inscritos +Alumnos en prerrequisito ndash (alumnos en prerrequisito iacutendice de reprobacioacuten) 100 +(Simulacioacuten ndash alumnos en prerrequisito ndash no inscritos) = Alumnos del proacuteximo semestre

Este uacuteltimo dato (alumnos del proacuteximo semestre) proporciona la cantidad de alumnospor materia que pueden inscribirse en los grupos seguacuten los estadiacutesticos de ServiciosEscolares pero no contempla preferencias de alumnos conveniencia de inscripcioacuten etc

Ofrecer los grupos necesarios para la inscripcioacuten de alumnos tomando el dato calculadoocasiona que al terminar las inscripciones existan grupos vaciacuteos grupos sobresaturadosalumnos con pocas materias y varios problemas mas

La finalidad de este Sistema Experto es realizar un ajuste al dato calculadoanteriormente para incluir en su caacutelculo todas aquellas caracteriacutesticas y experiencia delcoordinador para minimizar los problemas mencionados en el paacuterrafo anterior

Los ajustes pueden ser de varios tiposbull Ajuste draacutestico hacia abajo Se aplica una reduccioacuten del 50 al dato calculadobull Ajuste hacia arriba Se agrega un grupo maacutes al dato calculadobull Ajuste hacia abajo Se resta un grupo al dato calculadobull Ajuste numeacuterico Se ajusta utilizando la regla del redondeo de decimalesbull Ajuste draacutestico hacia arriba Se suman 2 oacute 3 grupos al dato calculado

Cuando utilizar una u otra regla estaacute definido por los criterios que cada materia contienenaturalmente y que con el paso de los semestres puede variar (aunque tambieacuten puedenpasar antildeos sin sufrir ninguacuten cambio)

La Figura 44 describe la utilizacioacuten de la teacutecnica de la Inteligencia Artificial llamadaProgramacioacuten Loacutegica de Restricciones para generar el condensado de grupos a partir deuna lista de materias que contiene solamente el nombre y la cantidad de grupos que sedeben abrir de una materia

Capiacutetulo 4 Anaacutelisis y Disentildeo

EoseX

Ugacgg

Lgc

s

ListasMaterias

Procesoformador depaquetes

Lista grupo +paquete

Moacutedulo generadorRandom Hora

Restricciones satisfec

Restriccio

Materia +hora

Moacuteduloverificadorrestriccione

s

Restriccionesnosatisfechas

Fig 44 Diagrama del moacutedulo Programacioacuten Loacutegica de Restriccione

xiste un proceso inicial que forma los ldquopaquetesrdquo de grupos esto es las materias serdenan por el semestre al que corresponden (generalmente son 6 materias poremestre) despueacutes para cada semestre se generan los grupos correspondientes si porjemplo se deben hacer 3 grupos de la materia X se generan tres registros de la materia y cada registro se etiqueta

Materia X grupo AA Materia X grupo AB y Materia X grupo AC

na vez que todas las materias han sido generadas y ldquoempaquetadasrdquo se pasan alenerador de horario en bloques de un paquete a la vez Este proceso funcionasignando un horario aleatorio a cada grupo despueacutes se verifica que cada grupo cumplaon todas las restricciones que son del tipo grupo no ldquochocardquo con otro del paqueterupo proporciona horario continuo al paquete grupo tiene horario de 2 horas por diacutearupo no deja horas vaciacuteas en paquete grupo cumple con todas sus horas asignadas etc

a Figura 45 muestra el disentildeo del Algoritmo Geneacutetico utilizado para asignar aula a losrupos que provienen del moacutedulo anterior (PLR) y recibe como datos de entrada unondensado de horarios (materia + grupo + hora)

Capiacutetulo 4 Anaacutelisis y Disentildeo

Procesoevaluacioacuten

Condensado

Materia +Grupo +Hora

Generador de versiones aleatorias

Genera versioacuten asigna aula

Versioacuten 3

Versioacuten 2

Versioacuten 1

Versioacuten N

Poblacioacuten inicial

ProcesoseleccioacutenProceso cruzamiento

clonacioacuten mutacioacuten

Versioacuten z

Versioacuten y

Versioacuten x

Versioacuten w

Nueva generacioacuten

Individuos aptos

Individuos no aptosReciclaje

CondensadoMateria + grupo +hora + aula

Fig 45 Diagrama del moacutedulo Algoritmo Geneacutetico

Capiacutetulo 4 Anaacutelisis y Disentildeo

Esta rama de la Inteligencia Artificial es utilizada generalmente para procesos deoptimizacioacuten y en esta ocasioacuten se utiliza para asignar las aulas al condensado dematerias

Al inicio se reciben como datos generales el condensado de materias La poblacioacuteninicial se obtiene copiando N veces (N versiones) este condensado y agregando a cadaregistro el nuacutemero de versioacuten y un aula asignada de manera aleatoria de esta manera seobtienen N versiones diferentes del condensado original

Cada versioacuten es entonces evaluada contando el nuacutemero de choques en aula y la cantidadde espacios vaciacuteos por aula a cada versioacuten se le genera un vector para guardar laevaluacioacuten (cromosoma de evaluacioacuten) y de esta manera se mide el grado de aptitud quetiene cada versioacuten

Las versiones que tienen menos choques y menos espacios vaciacuteos se consideran con ungrado de aptitud alto y son las mejores al contrario las que tienen muchos choquesson consideradas de aptitud baja no sirven para la reproduccioacuten y son desechadas

Una vez seleccionadas la mejores versiones se procede a la aplicacioacuten de los operadoresgeneacuteticos el primero que se aplica es el cruzamiento y consiste en elegir dos versionesde alta aptitud tomar segmentos seleccionados heuriacutesticamente de ellas y formar unnuevo individuo (una nueva versioacuten) se repite este proceso Y veces con las diferentesversiones hasta tener una nueva generacioacuten de N condensados de horarios

Repetir este proceso de generacioacuten evaluacioacuten y seleccioacuten durante Z generacionesaplicando cuando se necesite la clonacioacuten que es un proceso de copiar completamenteuna versioacuten (con alto grado de aptitud) a la nueva generacioacuten

Al principio la convergencia hacia horarios sin choques en aula es raacutepida pero al pasode las generaciones disminuye entonces se debe usar la mutacioacuten que es un proceso deacceder manualmente los registros de alguna versioacuten Zi en la generacioacuten Z y corregiralguacuten aula al final despueacutes de varias generaciones selecciones cruzamientosclonaciones y mutaciones se obtiene un condensado de aulas libres de choques y conpocos espacios vaciacuteos

En la Figura 46 se muestran los componentes del Sistema Experto utilizado para sugerircuales son los catedraacuteticos que mejor se desempentildeariacutean para impartir una asignaturatomando en cuenta los conocimientos que tiene un profesor (adquiridos a lo largo de sucarrera) y cuales son los conocimientos necesarios para impartir la caacutetedra de algunaasignatura

Capiacutetulo 4 Anaacutelisis y Disentildeo

Todo inicia haciendo una encuesta a los profesores acerca del perfil y los conocimientosnecesarios para poder impartir una asignatura el objetivo de la misma y los principalestemas que abarca todo lo anterior se captura en la base de hechos como el perfil de lamateria

Posteriormente se hace otra encuesta a los profesores pidieacutendoles que seleccionencuales son los conocimientos y el grado de dominio que tienen de los diferentes toacutepicosde las asignaturas esto se convierte en el perfil del catedraacutetico Por uacuteltimo con unproceso de induccioacuten se determina para cada materia cual es el grado de certeza con elcual puede un profesor impartir una asignatura

Experto

Coordinador

Interfaz Experto

Base deConocimientos

CatedraacuteticosConocimientos profesorPerfil profesor

Motor de Inferencia Lista profesores paraimpartir una materia

Jefedepartamento

Moacutedulo Explicacioacuten

Usuario(coordinador

novato)

Interfaz Usuario

Base Hechos

Perfil

Fig 46 Diagrama de Sistema Experto para sugerir profesor a asignatura

Capiacutetulo 4 Anaacutelisis y Disentildeo

Noacutetese en la Figura 47 que el coordinador captura el conocimiento referente a lasasignaturas (objetivo temas caracteriacutesticas necesarias para impartirla) y este esalmacenado en la Base de Conocimientos

Por otro lado un profesor debe llenar una encuesta en la que indique cuales son lostemas que domina y en que porcentaje lo hace (esto es el perfil del catedraacutetico) estainformacioacuten se almacena en la base de hechos--

El Motor de Inferencia hace los matchs respectivos y genera una lista de las materias quepuede impartir un profesor y con que grado de certeza estaacute capacitado para hacerlo

Por uacuteltimo el moacutedulo de explicacioacuten informa el porqueacute dio esa inferencia mostrando lascaracteriacutesticas de materia y profesor que hicieron match

Fig 47 Diagrama de Sistema Experto para sugerir asignaturas para catedraacutetico

Experto

Coordinador

Interfaz Experto

Base deConocimientos

MateriasCaracteriacutesticas MateriasPerfil materia

Motor de Inferencia Lista materias para unprofesor

Profesor

Moacutedulo Explicacioacuten

Profesor nuevoInterfaz Usuario

Base Hechos Perfil profesor

Capiacutetulo 4 Anaacutelisis y Disentildeo

453 Diagrama de contextoEn la Figura 48 se detallan los elementos que intervienen aportando y recibiendoinformacioacuten para el funcionamiento del sistema

Los departamentos acadeacutemicos aportan al sistema una lista con los catedraacuteticos quelaboran ahiacute incluye los datos personales de los profesores nuacutemero de tarjeta nombrecarrera etc Los coordinadores de carrera son los responsables de la elaboracioacuten de loshorarios estos funcionarios son la pieza fundamental de este proceso porque aportan susconocimientos para

bull Definir el ajuste al dato estadiacutestico proporcionado por Servicios Escolaresbull Definir las restricciones para la creacioacuten de los paquetes de gruposbull Definir las restricciones para asignar hora a cada grupobull La distribucioacuten de los grupos en las aulasbull Asignar la asignatura que mejor puede impartir un catedraacuteticobull Asignarle a una asignatura al profesor que mejor puede impartirla

El departamento de Servicios Escolares es el iniciador del proceso de la elaboracioacuten dehorarios aporta los datos estadiacutesticos obtenidos de la situacioacuten escolar actual de losalumnos cada alumno estaacute inscrito en alguna de las 8 carreras que se ofrecen en elInstituto estaacute cursando entre 5 y 8 asignaturas por semestre en cada periodo acredita oreprueba algunas materias En cada carrera se tiene un mapa reticular que incluyeaproximadamente 50 asignaturas con prerrequisitos creacuteditos horas en aula horas enlaboratorio orden por semestre etc

El departamento Divisioacuten de Estudios Profesionales (donde estaacuten adscritos loscoordinadores de carrera) es el responsable de distribuir las aulas disponibles delInstituto entre los distintos coordinadores las aulas son un recurso escaso y por lo tantovalioso de esta distribucioacuten depende en gran medida la holgura o estrechez que tienenlos coordinadores para asignar las aulas a los grupos creados

Los profesores son otro de los recursos valiosos de una institucioacuten son los responsablesde transmitir sus conocimientos a los alumnos cada catedraacutetico posee conocimientos dediversas aacutereas toacutepicos y ramas del saber humano el perfil del catedraacutetico estaacute enrelacioacuten directa con el dominio que tiene de cada una de ellas y varia desde unconocimiento superficial hasta el dominio total de un aacuterea

Los generadores random de los moacutedulos PLR y AG proporcionan la informacioacutennecesaria generada de manera aleatoria para el funcionamiento de esos moacutedulos

A los coordinadores y alumnos se les proporciona un condensado de horarios losalumnos conocen los grupos a los que se pueden inscribir las horas las aulas y loscatedraacuteticos que las impartiraacuten

Capiacutetulo 4 Anaacutelisis y Disentildeo

Sistema para laelaboracioacuten de

horarios

Departamentosacadeacutemicos

Jefes dedepartamento

Divisioacuten deEstudios

Profesionales

DepartamentoServiciosEscolares

Alumnos

Coordinadoresde carrera

Coordinadoresde carrera

Lista catedraacuteticos disponibles

Conocimientos

Reporte datos estadiacutesticos

Lista aulas disponibles

Condensado de horarios

Horarios disponibles

Lista horarios profesores

Profesores Generadoresaleatorios

Perfil maestro

Horas y aulas aleatorios

Fig 48 Diagrama de contexto del proyecto

Cap

iacutetulo

4

Anaacute

lisis

y D

isentilde

o

Sist

ema

para

lael

abor

acioacute

n de

hora

rios

Dep

arta

men

tos

acad

eacutemic

os

Div

isioacute

n de

Estu

dios

Prof

esio

nale

s

Dep

arta

men

toSe

rvic

ios

Esco

lare

sC

oord

inad

ores

de c

arre

ra

List

a ca

tedr

aacutetic

os d

ispo

nibl

es

Con

ocim

ient

osR

epor

teda

tose

stad

iacutestic

osLi

sta

aula

s dis

poni

bles

Prof

esor

esG

ener

ador

esal

eato

rios

Perf

il m

aest

roH

oras

y a

ulas

Fig

49

Dia

gram

a de

func

ione

s fun

dam

enta

les (

entra

das)

Cap

tura

supe

rfil

deco

noci

mie

nto

Cap

tura

las

aula

s

Enviacute

a da

tos

Cap

tura

suco

noci

mie

nto

Enviacute

a da

tos

depr

ofes

ores G

ener

ada

tos

Cla

ve n

ombr

eho

ras

turn

o

Tips

tru

cos

cono

cim

ient

ohe

uriacutes

tico

Cla

ve c

apac

idad

ed

ifici

o

Alu

mno

sin

scrit

os

sim

ulac

ioacuten

no

insc

ritos

iacutend

ice

repr

obac

ioacuten

Toacutepi

cos y

tem

asqu

e do

min

aA

ula

y ho

raal

eato

rios

Capiacutetulo 4 Anaacutelisis y Disentildeo

Sistema para laelaboracioacuten de

horarios

Coordinadoresde carrera

Jefes dedepartamento Alumnos

Fig 410 Diagrama de funciones fundamentales (salidas)

Imprimecondensado

Imprime lista Imprimehorarios

Maestro materiahora

Materia grupohora aula

maestrosugerido

Condensado de horarios Horarios disponibles

Lista horarios profesores

Materia grupohora aula

maestro

Capiacutetulo 4 Anaacutelisis y Disentildeo

454 Diagrama entidad - relacioacuten

NOTA Los siguientes diagramas muestran las tablas utilizadas por cada moacutedulo paramayor claridad se repitieron las tablas necesarias para representar cada parte del sistemapero en la base de datos no existe tal duplicacioacuten

Este diagrama contiene las tablas del moacutedulo administrativo de los horarios en unprincipio eacutestas eran las uacutenicas tablas de un sistema de control de horarios

FK_HORARIOS_REFERENCE_MATERIASFK_MATERIAS_REFERENCE_SERVICIO

FK_MATERIAS_REFERENCE_RAMA_MAT FK_MATERIAS_REFERENCE_CARRERAS

HORARIOS

GrupoId_aulaHora_inicioHora_lunesHora_martesHora_miercolesHora_juevesHora_viernesHora_sabadoObservacionesPeriodoAnioid_materiaId_catedratico

Text(2)INTEGERINTEGERText(6)Text(6)Text(6)Text(6)Text(6)Text(6)Text(30)Text(20)INTEGERINTEGERSMALLINT

ltfk3gt

ltfk2gtltfk1gt

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave de asig prerequisitoclave de asig prerequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

MATERIAS

SERVICIOS_ESCOLARESId_materiaINSCRITOSNO INSCRITOSSIMULACIONPROXIMO SEMESTREGRUPOS REQUERIDOSIndice de reprobacionperiodoantildeoGrupos ajustadoAlumnos ajustadoId_ajusteId_regla

INTEGERSMALLINTSMALLINTSMALLINTSMALLINTDOUBLEDOUBLEText(7)INTEGERSMALLINTSMALLINTINTEGERSMALLINT

RAMA_MATERIA

Id_ramaNombre_rama

COUNTERText(30)

ltpkgt

CARRERAS

Id_CarreraNombre_carrera

Text(15)Text(50)

ltpkgt

Fig 411 Diagrama entidad ndash relacioacuten del moacutedulo administrativo

Capiacutetulo 4 Anaacutelisis y Disentildeo

Este diagrama muestra las tablas donde se almacena el conocimiento de loscoordinadores para que el Sistema Experto del moacutedulo sugiera y aplique el ajuste aldato de cantidad de grupos sugerido por Servicios Escolares La relacioacuten entre las tablasva generando las reglas de produccioacuten

MATERIAS

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave asig prerrequisitoclave asig prerrequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

REGLAS

DescriId_reglaId_ajusteTot_peso

Text(70)COUNTERINTEGERINTEGER

ltpkgtltfkgt

FK_MATERIAS_REFERENCE_SERVICIO

FK_HECHOS_R_REFERENCE_CRITERIO

FK_HECHOS_R_REFERENCE_REGLAS

FK_HISTORIA_REFERENCE_REGLAS

FK_HISTORIA_REFERENCE_CRITERIO

FK_REGLAS_REFERENCE_AJUSTES

FK_HISTORIA_REFERENCE_MATERIAS

FK_HISTORIA_REFERENCE_CRITERIO

SERVICIOS_ESCOLARES

Id_materiaINSCRITOSNO INSCRITOSSIMULACIONPROXIMO SEMESTREGRUPOS REQUERIDOSIndice de reprobacioacutenperiodoantildeoGrupos ajustadoAlumnos ajustadoId_ajusteId_regla

INTEGERSMALLINTSMALLINTSMALLINTSMALLINTDOUBLEDOUBLEText(7)INTEGERSMALLINTSMALLINTINTEGERSMALLINT

HECHOS_REGLAS

Id_criterioId_reglaPromedio

INTEGERINTEGERINTEGER

ltfk2gtltfk1gt

CRITERIOS

Id_criterioDescripcion

COUNTERText(60)

ltpkgt

HISTORIAL_CRITERIOS

Id_criterioId_reglaPeso de la regla

INTEGERINTEGERSMALLINT

ltfk2gtltfk1gt

AJUSTES

TipoDescripcionId_ajuste

Text(25)MemoCOUNTER ltpkgt

HISTORIAL_MATERIA

Id_materiaId_criterioprioridad

INTEGERINTEGERSMALLINT

ltfk2gtltfk1gt

Fig 412 Diagrama E-R del moacutedulo para determinar y ajustar nuacutemero de grupos

Capiacutetulo 4 Anaacutelisis y Disentildeo

En este diagrama se muestra la base de datos que almacena la informacioacuten quemanipula el moacutedulo Algoritmo Geneacutetico las tablas maacutes representativas sonPOBLACION donde se guardan todas las versiones que forman las generaciones dehorarios y CROMOSOMAS que almacena el registro de evaluacioacuten de cada versioacuten dehorarios

FK_HORARIO__REFERENCE_AULAS

FK_HORARIO__REFERENCE_POBLACIO

FK_MATERIAS_REFERENCE_TIPO_HOR

FK_POBLACIO_REFERENCE_AULAS

FK_POBLACIO_REFERENCE_MATERIAS

FK_POBLACIO_REFERENCE_CROMOZOM1 1

HORARIO_AULA

VersionAulaLunesMartesMiercolesJuevesViernesSabadoHoraId_aula

INTEGERText(6)SMALLINTSMALLINTSMALLINTSMALLINTSMALLINTSMALLINTSMALLINTINTEGER

ltfk2gt

ltfk1gt

AULAS

Id_aulaCapacidad_aulaNombre_aulaDisponible

COUNTERSMALLINTText(50)YesNo

ltpkgt

POBLACION

Id_materiaGrupoId_catedraticoAulaHora_inicioHora_lunesHora_martesHora_miercolesHora_juevesHora_viernesVersionId_aulaPeriodoAnio

INTEGERText(4)INTEGERText(4)INTEGERText(6)Text(6)Text(6)Text(6)Text(6)INTEGERINTEGERText(10)INTEGER

ltfk2gt

ltfk1gtltfk3gt

MATERIAS

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave de asig prerequisitoclave de asig prerequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

TIPO_HORARIO

Tipo_horario

DescripcionLunes

MartesMiercoles

Jueves

ViernesSabado

COUNTER

Text(20)SMALLINT

SMALLINTSMALLINT

SMALLINT

SMALLINTSMALLINT

ltpkgt

CROMOZOMAS

VersionSemestreChoquesVacias

INTEGERINTEGERINTEGERINTEGER

ltpkgt

Fig 413 Diagrama E-R del moacutedulo para asignar aulas (Algoritmo Geneacutetico)

Capiacutetulo 4 Anaacutelisis y Disentildeo

En esta Figura 414 se pueden observar las tablas involucradas en el proceso paragenerar los paquetes de materias por semestre y la asignacioacuten de horario a cada grupodel paquete utilizando la teacutecnica Programacioacuten Loacutegica de Restricciones noacutetese que noexiste una tabla de restricciones eacutestas se aplican por software a cada grupo generado

FK_MATERIAS_REFERENCE_SERVIC

FK_MATERIAS_REFERENCE_TIPO_H

FK_HORARIOS_REFERENCE_MATERI

MATERIA

Id_materiMateriNum de HrsNum de HrsClave deId_CarrerCreditoSemestrObservacioneTroncoalumnos porclave de asigclave de asigId_ramSuma_maOrdeTipo_horari

INTEGEText(40SMALLINSMALLINText(8Text(15SMALLINSMALLINText(60YesNSMALLINText(40Text(40INTEGESMALLINSMALLININTEGE

ltpkfk4

ltfk1

ltfk3

ltfk2

SERVICIOS_ESCOLARE

Id_materiINSCRITONOSIMULACIOPROXIMOGRUPOSIndice deperiodantildeGruposAlumnosId_ajustId_regl

INTEGESMALLINSMALLINSMALLINSMALLINDOUBLDOUBLText(7INTEGESMALLINSMALLININTEGESMALLIN

TIPO_HORARI

Tipo_horariDescripcioLuneMarteMiercoleJueveVierneSabad

COUNTEText(20SMALLINSMALLINSMALLINSMALLINSMALLINSMALLIN

ltpk

HORARIO

GrupId_aulHora_iniciHora_luneHora_marteHora_miercoleHora_jueveHora_vierneHora_sabadObservacionePeriodAniid_materiId_catedratic

Text(2INTEGEINTEGEText(6Text(6Text(6Text(6Text(6Text(6Text(30Text(20INTEGEINTEGESMALLIN

ltfk3

ltfk2ltfk1

Fig414 Diagrama E-R del moacutedulo para asignar horario (PLR)

Capiacutetulo 4 Anaacutelisis y Disentildeo

FK_HECHOS_M_REFERENCE_MATERIAS

FK_HECHOS_M_REFERENCE_CATEDRAT

HECHOS_MAT_PROF

Id_catedraticoId_materiaPromedio

SMALLINTSMALLINTSMALLINT

ltpkfk1gtltpkfk2gt

FK_PERFIL_C_REFERENCE_CATEDRAT

FK_PERFIL_C_REFERENCE_PERFILES

FK_PERFILES_REFERENCE_TIPO_PER

FK_PROF_PAR_REFERENCE_CATEDRAT

FK_PROF_PAR_REFERENCE_MATERIAS

PERFIL_CATEDRATICO

Id_catedraticoId_perfilPrioridad_perfil_cate

SMALLINTINTEGERSMALLINT

ltfk1gtltfk2gt

CATEDRATICOS

Id_catedraticoApellido_paternoApellido_maternoNombre_catedraticoTitulo_catedraticoSuma_cate

SMALLINTText(20)Text(20)Text(20)Text(30)SMALLINT

ltpkgt

PERFILES

Id_perfilId_tipoDescripcion_perfil

COUNTERINTEGERText(60)

ltpkgtltfkgt

TIPO_PERFIL

Id_tipoTipo_perfil

COUNTERText(30)

ltpkgt

PROF_PARA_MAT

Id_materiaId_catedraticoPorcentaje_cate

INTEGERSMALLINTSMALLINT

ltpkfk2gtltpkfk1gt

MATERIAS

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave de asig prerequisitoclave de asig prerequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

Fig 415 Diagrama E-R del moacutedulo designa mejor catedraacutetico (Sistema Experto)

Capiacutetulo 4 Anaacutelisis y Disentildeo

En las figuras de la paacutegina anterior y eacutesta (Fig 415 y 416) se muestran las tablasutilizadas por los Sistemas Expertos para sugerir que materias puede impartir unprofesor y tambieacuten sugiere que profesores pueden impartir una asignatura

FK_PERFILES_REFERENCE_TIPO_PER

FK_PERFIL_M_REFERENCE_MATERIAS

FK_PERFIL_M_REFERENCE_PERFILES

FK_MAT_PARA_REFERENCE_MATERIAS

FK_MAT_PARA_REFERENCE_CATEDRAT

FK_HECHOS_M_REFERENCE_MATERIAS

FK_HECHOS_M_REFERENCE_CATEDRAT

PERFILES

Id_perfilId_tipoDescripcion_perfil

COUNTERINTEGERText(60)

ltpkgtltfkgt

TIPO_PERFIL

Id_tipoTipo_perfil

COUNTERText(30)

ltpkgt

PERFIL_MATERIA

Id_materiaId_perfilPrioridad_perfil_mat

INTEGERINTEGERINTEGER

ltfk2gtltfk1gt

MATERIAS

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave de asig prerequisitoclave de asig prerequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

MAT_PARA_PROF

Id_catedraticoId_materiaPorcentaje_mat

SMALLINTINTEGERSMALLINT

ltpkfk1gtltpkfk2gt

CATEDRATICOS

Id_catedraticoApellido_paternoApellido_maternoNombre_catedraticoTitulo_catedraticoSuma_cate

SMALLINTText(20)Text(20)Text(20)Text(30)SMALLINT

ltpkgt

HECHOS_MAT_PROF

Id_catedraticoId_materiaPromedio

SMALLINTSMALLINTSMALLINT

ltpkfk1gtltpkfk2gt

Fig 416 Diagrama E-R del moacutedulo selecciona mejor materia (sistema experto)

Capiacutetulo 4 Anaacutelisis y Disentildeo

455 Diccionario de la Base de Datos

Nombre HORARIOS_CON_CONOCIMIENTOComentario Base de datos del sistema ldquoGeneracioacuten de horarios mediante Sistemas

Basados en ConocimientordquoDBMS Microsoft Access 97

Lista de Tablas

Nombre Tipo deObjeto

AJUSTES TableAULAS TableCARRERAS TableCATEDRATICOS TableCRITERIOS TableCROMOSOMAS TableHECHOS TableHECHOS_MAT_PROF TableHECHOS_PROF_MAT TableHECHOS_REGLAS TableHISTORIAL_CRITERIOS TableHISTORIAL_MATERIA TableHORARIO_AULA TableHORARIOS TableMAT_PARA_PROF TableMATERIAS TablePERFIL_CATEDRATICO TablePERFIL_MATERIA TablePERFILES TablePOBLACION TablePROF_PARA_MAT TableRAMA_MATERIA TableREGLAS TableSERVICIOS_ESCOLARES TableTIPO_HORARIO TableTIPO_PERFIL Table

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla AJUSTESFuncioacuten Almacena los datos de los tipos de ajuste que se aplican por el Sistema Experto al

dato estadiacutestico que define cuantos grupos se deben abrir de cada materia

Lista de columnas de la tabla AJUSTESNombre Tipo de

DatoLong Llave

Primaria ForaneaComentario

Tipo Text(25) 25 Nombre del tipo de ajusteDescripcioacuten Memo Explicacioacuten del ajuste a realizar al nuacutemero

de grupos calculados segun estadisticosId_ajuste COUNTER 4 X Identificador del ajuste

Tabla AULASFuncioacuten Almacena los datos de las aulas que existen en cada edificio del instituto

Lista de columnas de la tabla AULASNombre Tipo de

DatoLong Llave

Primaria ForaneaComentario

Id_aula COUNTER 4 X Identificador del aulaCapacidad_aula SMALLINT 4 Nuacutemero maacuteximo de alumnos en el

aulaNombre_aula Text(50) 50 Nombre del aula (edificio+numero)Disponible YesNo 1 Disponibilidad del aula

Tabla CARRERASFuncioacuten Almacena los datos de las carreras que se imparten en el ITZ

Lista de columnas de la tabla CARRERASNombre Tipo de

DatoLong Llave

Primaria ForaneaComentario

Id_Carrera Text(15) 15 X Clave de la carreraNombre_carrera Text(50) 50 Nombre de la carrera

Tabla CATEDRATICOSFuncioacuten Almacena los datos de los CATEDRAacuteTICOS que imparten clases en las diferentes carreras del

Instituto Se utilizan los datos en los Sistemas Expertos que definen cual es el mejor catedraacuteticopara impartir una materia

Capiacutetulo 4 Anaacutelisis y Disentildeo

Lista de columnas de la tabla CATEDRATICOSNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_catedratico SMALLINT 4 X Nuacutemero de tarjeta del catedraacuteticoApellido_paterno Text(20) 20 Apellido paterno del catedraacuteticoApellido_materno Text(20) 20 Apellido materno del catedraacuteticoNombre_catedratico Text(20) 20 Nombre del catedraacuteticoTitulo_catedratico Text(30) 30 Grado de estudios y tiacutetulo del

catedraacuteticoSuma_cate SMALLINT 4 Suma total de las pesos de los perfiles

pertenecientes al catedraacutetico

Tabla CRITERIOSFuncioacuten Tabla de los criterios utilizados por el experto para crear las reglas que definen el tipo de

ajuste inferido por el Sistema Experto para definicioacuten de grupos por abrir

Lista de columnas de la tabla CRITERIOSNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_criterio COUNTER 4 X Identificador del criterio aplicado auna materia para crear grupos

Descripcion Text(60) 60 Descripcioacuten del criterio

Tabla CROMOSOMASFuncioacuten Almacena los datos de la evaluacioacuten de cada versioacuten de horarios generada ya sea por la

poblacioacuten inicial o por los operadores geneacuteticos se genera un cromosoma por cadasemestre en cada versioacuten

Lista de columnas de la tabla CROMOSOMASNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Version INTEGER 4 X Nuacutemero de individuo o versioacuten dehorarios

Semestre INTEGER 4 Semestre al que pertenece el datoChoques INTEGER 4 Nuacutemero de choques de versioacuten y

semestreVacias INTEGER 4 Nuacutemero de aulas vaciacuteas del individuo

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla HECHOS_MAT_PROFFuncioacuten Esta tabla almacena el resultado de la inferencia del Sistema Experto materias para

profesor indica para cada catedraacutetico las materias y el porcentaje de certeza con quepuede impartirlas

Lista de columnas de la tabla HECHOS_MAT_PROFNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_catedratico SMALLINT 4 X Identificador del catedraacuteticoId_materia SMALLINT 4 X Identificador de la asignaturaPromedio SMALLINT 4 Porcentaje de certeza con que un

profesor puede impartir una materia(resultado de la inferencia)

Tabla HECHOS_PROF_MATFuncioacuten Almacena los datos de la inferencia del Sistema Experto que calcula para una materia

determinada cuales son los mejores maestros para impartirla

Lista de columnas de la tabla HECHOS_PROF_MATNombre Tipo de

DatoLongitud

LlavePrimaria Foraacutenea

Comentario

Id_catedratico SMALLINT 4 X Identificador del catedraacuteticoId_materia SMALLINT 4 X Identificador de la asignaturaPromedio SMALLINT 4 Porcentaje de certeza con que una

materia puede ser impartida por unprofesor (resultado de la inferencia)

Tabla HECHOS_REGLASFuncioacuten Almacena los porcentajes de certeza con que se dispara una regla del Sistema Experto

que define los grupos por abrir

Lista de columnas de la tabla HECHOS_REGLASNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_criterio SMALLINT 4 X Identificador del criterioId_regla SMALLINT 4 X Identificador de la reglaPromedio INTEGER 4 Porcentaje de certeza con que una

regla dispara un criterio

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla HISTORIAL_CRITERIOS

Funcioacuten Almacena las reglas formadas por los criterios utilizados por el Sistema Experto paradefinir los grupos por abrir

Lista de columnas de la tabla HISTORIAL_CRITERIOSNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_criterio INTEGER 4 X Identificador del criterio pertenecientea la regla

Id_regla INTEGER 4 X Identificador de la reglaPeso de la regla SMALLINT 4 Peso del criterio en la regla

Tabla HISTORIAL_MATERIAFuncioacuten Tabla que almacena la definicioacuten de cada materia con base en los criterios utilizados por

las reglas para definir por materia el nuacutemero de grupos por abrir

Lista de columnas de la tabla HISTORIAL_MATERIANombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materia para suasignacioacuten de criterios

Id_criterio INTEGER 4 X Identificador del criterio que se aplicaa la materia para describirla

Prioridad SMALLINT 4 Peso del criterio en la materia

Tabla HORARIOS

Funcioacuten Almacena los datos del condensado final de horarios aquiacute se almacena el producto finaldel sistema para su posterior publicacioacuten y distribucioacuten entre la comunidad tecnoloacutegica

Lista de columnas de la tabla HORARIOSNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materiaGrupo Text(2) 2 Identificador del grupo A B CId_catedratico SMALLINT 4 X Catedraacutetico asignado al grupoId_aula INTEGER 4 X Aula asignada al grupoHora_inicio INTEGER 4 Hora de inicio del grupoHora_lunes Text(6) 6 Horas que se imparte el grupo el diacutea

lunes

Capiacutetulo 4 Anaacutelisis y Disentildeo

Hora_martes Text(6) 6Hora_miercoles Text(6) 6Hora_jueves Text(6) 6Hora_viernes Text(6) 6Hora_sabado Text(6) 6Observaciones Text(30) 30 Observaciones al grupoPeriodo Text(20) 20 Periodo Ene-jun o Ago-dicAnio INTEGER 4 Antildeo en que se utiliza el horario

Tabla HORARIO_AULAFuncioacuten Tabla auxiliar utilizada como almacenamiento temporal durante el proceso de evaluacioacuten

en el Algoritmo Geneacutetico guarda los datos de ocupacioacuten choques y no utilizacioacuten decada aula por hora diacutea y versioacuten

Lista de columnas de la tabla HORARIO_AULANombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Version INTEGER 4 X Nuacutemero de individuo o versioacutenAula Text(6) 6 Nombre del aulaLunes SMALLINT 4 Nuacutemero de horas que se utiliza el aula

el diacutea lunesMartes SMALLINT 4Miercoles SMALLINT 4Jueves SMALLINT 4Viernes SMALLINT 4Sabado SMALLINT 4Hora SMALLINT 4 Hora de utilizacioacuten del aulaId_aula INTEGER 4 X Identificador del aula en la versioacuten

Tabla MATERIASFuncioacuten Esta es una de las principales tablas del proyecto se utiliza en todos los moacutedulos del

sistema contiene informacioacuten base para caacutelculos diversos ademaacutes contiene tambieacuten lasllaves de diferentes tablas que describen de manera de manera especial a las materias

Lista de columnas de la tabla MATERIASNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia COUNTER 4 X Identificacioacuten de la materia llaveprincipal

Materia Text(40) 40 Nombre de la materiaNum de Hrs prac SMALLINT 4 Nuacutemero de horas praacutecticasNum de Hrs teo SMALLINT 4 Nuacutemero de horas teoacutericasClave de Asig Text(8) 8 Clave oficial de la materiaId_Carrera Text(15) 15 X Carrera a la que pertenece la materiaCreditos SMALLINT 4 Creacuteditos de la materia

Capiacutetulo 4 Anaacutelisis y Disentildeo

Semestre SMALLINT 4 Semestre en que se imparte la materiaObservaciones Text(60) 60Tronco comun YesNo 1 Definicioacuten de especialidad o tronco

comuacutenalumnos porgrupo

SMALLINT 4 Capacidad sugerida de los grupos deesta materia

clave de asigprerequisito

Text(40) 40 Clave de asignatura del prerrequisito

clave de asigprerequisito1

Text(40) 40 Clave de asignatura del prerrequisito

Id_rama INTEGER 4 X Identificador de la rama a la quepertenece la materia

Suma_mat SMALLINT 4 Suma total de los perfilespertenecientes a la materia

Orden SMALLINT 4 Es el nuacutemero de materia en un paqueteTipo_horario INTEGER 4 X El tipo de horario asignado a materia

Tabla MAT_PARA_PROFFuncioacuten La tabla almacena para cada catedraacutetico las asignaturas que puede impartir y el grado

de certeza con que puede hacerlo se almacena en esta tabla el resultado de la inferenciadel Sistema Experto

Lista de columnas de la tabla MAT_PARA_PROFNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_catedratico SMALLINT 4 X Nuacutemero de tarjeta del profesorId_materia INTEGER 4 X Identificador de la materiaPorcentaje_mat SMALLINT 4 Porcentaje de certeza con que un

profesor puede impartir una materia

Tabla PERFILESFuncioacuten Tabla que contiene una relacioacuten de todas las caracteriacutesticas de las materias

caracteriacutesticas necesarias para poder impartirlas es al mismo tiempo la tabla quecontiene la relacioacuten general de los conocimientos que poseen los profesores

Lista de columnas de la tabla PERFILESNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_perfil COUNTER 4 X Identificador del perfil paraasignaciones de materias acatedraacuteticos

Id_tipo INTEGER 4 X Identificador del tipo del perfilDescripcion_perfil Text(60) 60 Descripcioacuten de una caracteriacutestica del

perfil de una materia o un catedraacutetico

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla PERFIL_CATEDRATICOFuncioacuten Tabla que contiene el perfil de todos los catedraacuteticos (pueden llamarse las reglas) del

Sistema Experto que recomienda profesores para las materias el perfil de un catedraacuteticoesta definido por los conceptos que domina de las materias

Lista de columnas de la tabla PERFIL_CATEDRATICONombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_catedratico SMALLINT 4 X Identificador del catedraacutetico paradefinicioacuten de su perfil acadeacutemico

Id_perfil INTEGER 4 X Identificador del perfil que define aun catedraacutetico

Prioridad_perfil_cate SMALLINT 4 Porcentaje en que contribuye elperfil especificado en la definicioacutendel catedraacutetico

Tabla PERFIL_MATERIAFuncioacuten Esta tabla almacena las reglas que definen el perfil de una materia contiene las

caracteriacutesticas y temas que forman el temario de la materia

Lista de columnas de la tabla PERFIL_MATERIANombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materia en laregla de la materia

Id_perfil INTEGER 4 X Identificador del perfilperteneciente a una materia

Prioridad_perfil_mat INTEGER 4 Porcentaje en que contribuye esteperfil particular a definir unamateria

Tabla PROF_PARA_MATFuncioacuten Esta tabla almacena la inferencia del Sistema Experto para determinar cuales son los

mejores profesores para impartir una materia contiene para cada asignatura una lista delos profesores y el porcentaje de certeza con que pueden desempentildearse si la imparten

Capiacutetulo 4 Anaacutelisis y Disentildeo

Lista de columnas de la tabla PROF_PARA_MATNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de materiaId_catedratico SMALLINT 4 X Identificador de catedraacuteticoPorcentaje_cate SMALLINT 4 de certeza con que el catedraacutetico X

puede impartir la materia Y

Tabla POBLACIONFuncioacuten La tabla es la maacutes importante para el moacutedulo de Algoritmo Geneacutetico porque almacena los

datos de cada individuo hipoacutetesis o versioacuten que son generados ya sea por la poblacioacuteninicial aleatoria o por los diversos operadores geneacuteticos contiene copias (versiones) delcondensado de horarios con aulas aleatorias

Lista de columnas de la tabla POBLACIONNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materiaGrupo Text(4) 4 Grupo de la materiaId_catedratico INTEGER 4 X Identificador del catedraticoAula Text(4) 4 X Nombre del aula (edificio + numero)Hora_inicio INTEGER 4 Hora de inicio del grupoHora_lunes Text(6) 6 Hora inicio del lunesHora_martes Text(6) 6Hora_miercoles Text(6) 6Hora_jueves Text(6) 6Hora_viernes Text(6) 6Version INTEGER 4 X Nuacutemero de la versioacuten o hipoacutetesisPeriodo Text(10) 10 Periodo o semestre del grupoAnio INTEGER 4 Antildeo del grupo

Tabla RAMA_MATERIAFuncioacuten La tabla almacena la clasificacioacuten de las materias de acuerdo a las ciencias a la que

pertenecen

Lista de columnas de la tabla RAMA_MATERIANombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_rama COUNTER 4 X Identificador de la rama de unamateria (clasificacioacuten)

Nombre_rama Text(30) 30 Descripcioacuten de la rama de unamateria

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla REGLAS

Funcioacuten Esta tabla almacena las reglas utilizadas para generar los grupos que se deben ofertar elproacuteximo semestre indicando para cada regla el tipo de ajuste que debe aplicarse

Lista de Columnas de la Tabla REGLASNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Descripcion Text(70) 70 Descripcioacuten de la regla para ajustarel nuacutemero de grupos

Id_regla COUNTER 4 X Identificador de la reglaId_ajuste INTEGER 4 X Identificador del tipo de ajuste que

se aplica cuando esta regla sedispara para alguna materia

Tot_peso INTEGER 4 Total de los pesos de lascaracteriacutesticas de esta regla

Tabla SERVICIOS_ESCOLARESFuncioacuten En esta tabla se almacenan los datos estadiacutesticos de cada materia que provienen de

Servicios Escolares para el caacutelculo del nuacutemero de grupos que deben abrirse para elproacuteximo semestre contiene tambieacuten los paraacutemetros proporcionados por el SistemaExperto para realizar el ajuste al nuacutemero de grupos calculado inicialmente

Lista de columnas de la tabla SERVICIOS_ESCOLARESNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materiaINSCRITOS SMALLINT 4 Nuacutemero de alumnos inscritos

actualmente en el grupoNO INSCRITOS SMALLINT 4 Nuacutemero de alumnos que pueden

cursar la materia pero no seinscribieron

SIMULACION SMALLINT 4 Simulacioacuten de Servicios Escolaresde alumnos que podraacuten cursar lamateria

PROXIMOSEMESTRE

SMALLINT 4 Resultado del calculo de ServEscolares de alumnos que cursaraacutenla materia

GRUPOSREQUERIDOS

DOUBLE 4 Grupos requeridos para abrirproacuteximo semestre seguacuten caacutelculosiniciales

Indice dereprobacion

DOUBLE 4 Indice de reprobacioacuten de la materia

periodo Text(7) 7 Periodo de caacutelculo de horarios actual(semestre ene-jun o ago-dic)

Capiacutetulo 4 Anaacutelisis y Disentildeo

antildeo INTEGER 4 Antildeo de caacutelculo de horariosGrupos ajustado SMALLINT 4 Nuacutemero de grupos a solicitar para

abrir proacuteximo semestreAlumnos ajustado SMALLINT 4 Caacutelculo final del numero de alumnos

del proacuteximo semestre en estamateria

Id_ajuste INTEGER 4 X Tipo del ajuste aplicado por elSistema Experto al campogrupos_requeridos

Id_regla SMALLINT 4 X Regla que se disparo para realizar elajuste

Tabla TIPO_HORARIOFuncioacuten Esta tabla almacena los formatos de los distintos tipos de horario que existen y se ofrecen

para cada materia horarios de 2345 diacuteas a la semana y de 123 o 4 horas por diacutea

Lista de columnas de la tabla TIPO_HORARIONombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Tipo_horario COUNTER 4 X Identificador del tipo de horarioDescripcion Text(20) 20 Descripcioacuten del tipo de horarioLunes SMALLINT 4 Nuacutemero de horas del lunesMartes SMALLINT 4 Nuacutemero de horas del martesMiercoles SMALLINT 4 Nuacutemero de horas del mieacutercolesJueves SMALLINT 4 Nuacutemero de horas del juevesViernes SMALLINT 4 Nuacutemero de horas del viernesSabado SMALLINT 4 Nuacutemero de horas del saacutebado

Tabla TIPO_PERFILFuncioacuten Aquiacute se almacena una clasificacioacuten de los perfiles de acuerdo a la rama de conocimiento

a la que pertenecen

Lista de columnas de la tabla TIPO_PERFILNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_tipo COUNTER 4 X Identificador del tipo de perfilTipo_perfil Text(30) 30 Descripcioacuten del tipo de perfil de los

catedraacuteticos o las materias

Capiacutetulo 4 Anaacutelisis y Disentildeo

456 Lista de funciones o programas

Nombre Programa Descripcioacuten del programa

Ajustes Datos generales de los tipos de ajustes que se aplican al nuacutemero degrupos por abrir al dato de Servicios Escolares

Aulas Captura los datos de las aulas disponibles para claseCaptura_horarios Este programa realiza los cambios posteriores a la generacioacutenCarreras Captura los datos de las carreras del tecnoloacutegicoCatedraticos Datos generales de los catedraacuteticosClonacion Obtiene una copia (clon) del mejor individuo de una generacioacutenCons_ajuste Muestra yo imprime los datos generales de los ajustesCons_aulas Emite una pantalla de consulta general de aulasCons_captura_horarios Muestra una pantalla de consulta de los horarios generadosCons_carrera Despliega yo imprime las carrerasCons_catedratico Muestraimprime los datos generales de los catedraacuteticosCons_criterio Formulario que muestra yo despliega los criterios generalesCons_critXmat Muestra yo imprime los criterios de una materiaCons_critXregla Despliegaimprime los criterios que forman una reglaCons_gpos_abrir Explicacioacuten de la inferencia realizada (reglas disparadas)Cons_hist_crit Muestra las reglas de produccioacuten de los criteriosCons_materia Pantalla que despliega yo imprime datos de las materiasCons_materia_gral Pantalla de consulta general de los datos de materiasCons_perf_cate Consultaimprime los datos del perfil acadeacutemico de los

catedraacuteticosCons_perf_mate Consultaimprime los datos del perfil acadeacutemico de las materiasCons_perfil Muestraimprime datos de los perfilesCons_perfiles Consulta a la lista de perfiles o caracteriacutesticas Cons_perfilxmat Consulta a las reglas de produccioacuten del perfil de una materiaCons_rama Consulta a la lista de ramas (clasificacioacuten de las materias)Cons_reglas Consulta a la base de reglas para ajustar nuacutemero de gruposCons_serv_esc Consulta a las tablas que tienen informacioacuten de Servicios

EscolaresCons_serv_escol Pantalla que muestra yo imprime los datos estadiacutesticos de Serv

EscCons_tipo_perfil Consulta a los tipos de perfil (clasificacioacuten de perfiles)Crit_X_mat Formulario que captura los criterios pertenecientes a una materiaCrit_X_regla Captura los criterios que forman una regla de produccioacutenCriterios Pantalla que captura el conocimiento de criterios para el SECriteriosxmat Pantalla de captura para los criterios por materiaCruzamiento Programa que realiza la combinacioacuten (cruza) de individuos de la

poblacioacuten en el Algoritmo Geneacutetico

Capiacutetulo 4 Anaacutelisis y Disentildeo

Evaluacion Programa que realiza la creacioacuten del cromosoma de evaluacioacuten alevaluar las versiones de horarios de una generacioacuten

Explica_ajustes Moacutedulo de explicacioacuten del porque se aplicoacute determinado ajuste auna materia

Explica_mat_p_prof Explicacioacuten del porque una materia puede ser impartida por unprofesor con cierto grado de certidumbre

Explica_prof_p_mat Explicacion del porque un profesor puede impartir una materiacon cierto grado de certidumbre

Genera_horarios Sistema que utiliza Programacioacuten Loacutegica de Restricciones paragenerar los paquetes de horarios de un semestre

Genera_paquete Muestra el paquete generado por el procesoGrupo_nuevo Programa que va generando los paquetesGrupos_por_abrir Inferencia realizada para definir el ajuste aplicado a los grupos

definidos por Servicios EscolaresHistorial_criterios Captura los criterios necesarios para hacer una reglaHistorial_materia Captara los criterios por materiaMat_para_prof Inferencia realizada para determinar que profesores pueden

impartir una materiaMaterias Actualizacioacuten al archivo datos generales de las materiasMenu_algoritmos_geneticos Menuacute del moacutedulo para asignar aula a los gruposMenu_generacion_grupos Menuacute del Sistema Experto para definir cuantos grupos abrirMenu_asigna_horario Menuacute del moacutedulo asignacioacuten de horarioMenu_principal Menuacute principal del sistemaMenu_sel_catedra Menuacute del Sistema Experto para seleccioacuten de catedraacuteticos a

materiaMutacion Programa que hace la modificacioacuten de informacioacuten de aulas de

alguna versioacuten (versioacuten)Perfil_catedratico Captura el perfil acadeacutemico de los catedraacuteticosPerfil_materia Captura el perfil acadeacutemico de las materiasPerfiles Datos generales del perfil acadeacutemico de materias y catedraacuteticosPoblacion_inicial Programa que genera versiones de horarios y que de manera

aleatoria le va asignando aula a los gruposPortada_principal Es la ventana de entrada al sistemaProf_para_mat Inferencia realizada para determinar que materias pueden ser

impartidas por un profesorRama Programa que capturas las posibles ramas de los materiasReglas Datos generales de las reglas de produccioacuten para definir el No de

grupos por abrirSeleccioacuten Proceso que selecciona las mejores versiones de horarios (mejores

individuos) y elimina las menos aptasServ_escolares Pantalla de captura de los datos estadiacutesticos de Servicios EscolaresTipo_perfil Programa que captura la clasificacioacuten de los perfiles de materias y

profesores

Capiacutetulo 4 Anaacutelisis y Disentildeo

457 Diagrama de Arquitectura (Menuacutes)

Menuacute general

Menuacute Grupos porabrir

MenuacuteGeneracioacuten de

horarios

MenuacuteAsignacioacuten de

aulas

Datos de materias

Estadiacutesticos Serv Esc

Criterios

Criterios por materia

Reglas

Criterios por regla

Ajustes

Carreras

Nuacutemero de grupos

MenuacuteSeleccioacuten decatedraacuteticos

Genera paquete

Genera horarios

Datos generalesgrupos

Datos de aulas

Genera poblacioacuteninicial

Evaluacioacuten

Seleccioacuten

Cruzamiento

Clonacioacuten

Mutacioacuten

Horarios finales

Perfiles

Perfil de las materias

Perfil de catedraacuteticos

Catedraacuteticos

Perfil de loscatedraacuteticos

Asignacioacuten materia aprofesor

Asignacioacuten profesor amateria

Capiacutetulo 4 Anaacutelisis y Disentildeo

Capiacutetulo 5 Implementacioacuten del sistema

CAPIacuteTULO 5

IMPLEMENTACIOacuteN

51 Pantallas del sistema

La Figura 51 muestra la portada inicial del proyecto Contiene los logotipos de las tresinstituciones participantes y el nombre del proyecto

Fig 51 Portada inicial del proyecto

La Figura 52 es la pantalla que proporciona la informacioacuten de los autores del proyecto

Es el botoacutende entrada alsistema

Botoacuten deinformacioacuten delos autores

Capiacutetulo 5 Implementacioacuten del sistema

Fig 52 Acerca del sistema

La Figura 53 muestra el menuacute principal del proyecto contiene y 4 moacutedulos La primeraopcioacuten incluye los moacutedulos administrativo y generacioacuten de grupos la segunda opcioacutenincluye seleccioacuten de maestro y seleccioacuten de materia

Fig 53 Menuacute principal del proyecto

Moacutedulos delproyecto

Cuadro queproporcionalainformacioacutende la opcioacutensentildealada porel cursor

Capiacutetulo 5 Implementacioacuten del sistema

En la Figura 54 se tiene la pantalla del menuacute que agrupa los programas del moacuteduloadministrativo y Sistema Experto para determinar el nuacutemero de grupos por abrir seguacutenlos caacutelculos realizados con los datos de Servicios Escolares y el ajuste a ese dato

Fig 54 Menuacute grupos por abrir

Este programa del moacutedulo administrativo (Figura 55) sirve para capturar la informacioacutengeneral de las asignaturas que componen una carrera

Fig 55 Materias

Programas delos moacutedulos

Descripcioacutende laactividad delprogramaseleccionado

Nombre de laasignatura

Nuacutemero dehoraspraacutecticas yteoacutericas

Alumnos por grupopara calcularcantidad de grupos

Dato para formarpaquetes porsemestre

Icono quehabilita lacaptura denuevosdatos

Icono queregresa alMenuacute anterior

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 56 es un ejemplo de la consulta de datos en pantalla

Fig 56 Consulta Materias

La Figura 57 es la pantalla donde se capturan los datos estadiacutesticos provenientes deServicios Escolares contiene la informacioacuten necesaria para realizar el caacutelculo originaldel nuacutemero de grupos de cada asignatura que se debe abrir para ofertarse a los alumnosel siguiente semestre la foacutermula mostrada proporciona tal dato

Botoacuten queregresa elcontrol alprogramaque loinvocoacute

Alumnosesperados parael proacuteximo

Fccg

Datosestadiacutesticos

Fig 57 Pantalla Servicios Es

semestre

oacutermula paraaacutelculoantidad-rupos

Caacutelculosgeneral y pormateria

Grupos (datoestadiacutestico)

colares

Capiacutetulo 5 Implementacioacuten del sistema

En la Figura 58 se muestra la pantalla de consulta de los datos estadiacutesticosproporcionados por Servicios Escolares

Fig 58 Pantalla consulta Servicios Escolares

Esta pantalla captura las caracteriacutesticas por materia que dan origen al conocimientonecesario para definir el tipo de ajuste que se aplica al dato del nuacutemero de gruposproporcionado por los caacutelculos estadiacutesticos de la pantalla anterior

Criterios de unamateria

Fig 59 Pantalla criterios por materia

Grado deimportancia de esacaracteriacutestica para la

Capiacutetulo 5 Implementacioacuten del sistema

En la Figura 510 se muestra un ejemplo de la consulta a la base de datos del sistema enla parte de criterios por materia

Fig 510 Pantalla consulta criterios por materia

Esta pantalla (fig 511) proporciona al sistema la capacidad de capturar modificarborrar e imprimir las carreras del Instituto Tecnoloacutegico de Zacatepec

Fig 511 Pantalla carreras

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 512 proporciona al sistema la capacidad para capturar los criterios(conocimientos) del experto para definir a cada materia

Fig 512 Pantalla criterios

La Figura 513 muestra un ejemplo de consulta al archivo de los criterios capturados enel sistema

Fig 513 Pantalla consulta criterios

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 514 muestra la pantalla de captura de las reglas que componen el SistemaExperto para determinar el tipo de ajuste que se aplicaraacute al dato estadiacutestico del nuacutemerode grupos que se van a abrir el proacuteximo semestre cada regla tiene asignado un tipo deajuste

Fig 514 Pantalla reglas

La Figura 515 muestra un ejemplo de la consulta al archivo de las reglas que utiliza elSistema Experto para determinar nuacutemero de grupos por ofertar el proacuteximo semestre

Fig 515 Pantalla consulta reglas

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 516 muestra la pantalla de captura al archivo de ajustes noacutetese que ladescripcioacuten explica en extenso la accioacuten que se realiza al aplicar este ajuste provenientede una regla disparada por los criterios pertenecientes a la definicioacuten de una materia

Fig 516 Pantalla ajustes

La Figura 517 muestra la pantalla de la consulta a los ajustes que contiene el sistema

Fig 517 Pantalla consulta ajustes

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 518 muestra la pantalla que captura los criterios para cada regla Una reglaestaacute formada por el mismo tipo de criterios que definen a las materias

Criteriosde una

Fig 518 Pantalla criterios por regla

La Figura 519 muestra el ejemplo de una consulta de los criterios que definen a unaregla

Fig 519 Pantalla consulta criterios por regla

Reglas de produccioacuten Criterios por regla

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 520 es la pantalla maacutes importante de moacutedulo de generacioacuten de grupos porquees donde se realiza la inferencia para calcular el tipo de ajuste que se va a aplicar a cadamateria con base en las reglas que se disparan y que hacen match los criterios de unaregla y los criterios de una materia

Fig 520 Pantalla caacutelculo de ajustes

Esta pantalla (Figura 521) ofrece una explicacioacuten mostrando los criterios que definenuna materia y su correspondiente regla disparada mostrando los criterios de la regla quehacen match con los criterios de la materia

Fig 521 Pantalla explicacioacuten de la inferencia

Asignaturaa la que sele aplicaraacuteel ajuste

Regla quese disparaseguacutencriterios

Tipo deajuste quese aplica

Dato seguacutenestadiacutestico

Datos seguacutenajuste delSistemaExperto

Inferenciageneral

Inferenciaindividual

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 522 muestra el formulario que forma los paquetes de materias seguacuten laretiacutecula de una carrera muestra el nuacutemero de grupos por cada materia que se van aformar y hace los paquetes asignando los grupos AA AB AC AD

Fig 522 Pantalla inicial del moacutedulo generacioacuten de horarios

La Figura 523 es el formulario del moacutedulo Programacioacuten Loacutegica de Regenera los horarios por paquete satisfaciendo las restricciones para forlibre de choques continuo (sin horas muertas) cumpliendo las horas por m

Fig 523 Pantalla principal del moacutedulo generacioacuten de horari

Semestre al que sele formaraacuten lospaquetes

Paquetes generadosHora de iniciode clases decada grupo

Materias delsemestre

Nuacutemero de gruposal que se lesgeneraraacute horario

MateriaPaquete

Nuacutemero dehoras por diacutea

Botonesque invocanal moacutedulogeneradorde horarios

stricciones quemar un horarioateria etc

Hora de iniciode la materia

os

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 524 muestra el moacutedulo para asignar aula a los horarios que ya tienen materiagrupo y hora

Fig 524 Pantalla principal del menuacute Algoritmos Geneacuteticos

Esta pantalla (Figura 525) se utiliza para hacer altas bajas consulta y modificaciones alos grupos que se les va a dar aula

Fig 525 Pantalla de administracioacuten de grupos

Periodode loshorarios

Hora iniciodel grupo

Hora por diacutea

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 526 muestra una consulta de la pantalla administracioacuten de grupos

Fig 526 Pantalla de consulta de administracioacuten de grupos

La Figura 527 muestra la pantalla para actualizar las aulas disponibles por las personasque generan los horarios estas aulas estaacuten disponibles para que el Algoritmo Geneacuteticolas utilice para asignarles grupos durante el proceso

Fig 527 Pantalla del control de aulas

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 528 muestra la consulta de las aulas que utiliza el moacutedulo generacioacuten deaulas

Fig 528 Pantalla de consultas del control de aulas

La Figura 529 muestra la pantalla que genera la poblacioacuten inicial a partir de los datosgenerales proveniente de los moacutedulos anteriores

Fig 529 Pantalla de genera poblacioacuten inicial

Nuacutemero dehipoacutetesisversiones oindividuos

Aula aleatoriagenerada

Este botoacuteninicia lageneracioacutende las nversionesde horarios

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 530 muestra la pantalla que evaluacutea las versiones originadas y genera paracada una de ellas un cromosoma cuyos genes contienen la informacioacuten obtenida

Fig 530 Pantalla de evaluacioacuten de versiones

La Figura 531 muestra el formulario del proceso de seleccioacuten de las mejores versionesde horarios toma aquellas que tienen menor numero de choques y mayor espacio deocupacioacuten de aulas

Fig 531 Pantalla del proceso de seleccioacuten

Cantidad deversiones quesobreviviraacuten

Cromosomas delos mejoresindividuos

Botoacuten queinicia elproceso deseleccioacuten

Botoacuten queinicia elproceso deeliminacioacuten

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 532 muestra la pantalla del proceso de clonacioacuten donde se selecciona la mejorversioacuten y se obtiene un clon ideacutentico con un nuevo nuacutemero de versioacuten

Fig 532 Pantalla del proceso de clonacioacuten

La Figura 533 muestra la pantalla del proceso de mutacioacuten utilizado para hacer elcambio ldquomutarrdquo los datos de una versioacuten para romper alguacuten ciclado de la tendencia haciael resultado o simplemente para acelerar el proceso de optimizacioacuten

Cromosomasde versionesmaacutes aptas

Nuacutemero demejor versioacuten

Poblacioacutenversiones

Cromosomamuestra lasmejoresversiones

Aulas quepueden mutarse

Botoacuten queinicia elproceso demutacioacuten

Nuacutemero deversioacuten

Fig 533 Pantalla de mutacioacuten

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 534 muestra la pantalla donde se realiza el cruzamiento utilizando plantillaspredeterminadas dirigiendo la cruza de versiones por paquetes de materias agrupadas porsemestre y cada plantilla genera una nueva versioacuten con la combinacioacuten de fragmentosde varias versiones

Fig 534 Pantalla del proceso de cruzamiento

La Figura 535 permite la seleccioacuten y enviacuteo de la mejor versioacuten de horarios y adaptarloal moacutedulo administrativo para su distribucioacuten y publicacioacuten

Fig 535 Horarios finales

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 536 muestra el menuacute de los moacutedulos que sugiere maestros para impartir unaasignatura y sugerencia de asignatura para alguacuten maestro

Fig 536 Pantalla menuacute seleccioacuten de catedraacuteticos

La Figura 537 muestra la pantalla para la captura de caracteriacutesticas de losconocimientos requeridos para dar una materia que son las mismas caracteriacutesticas quedefinen los conocimientos de un profesor para impartir las materias

Fig 537 Pantalla de perfiles

Clasificacioacutende los perfiles

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 538 muestra una consulta de los perfiles agrupados por tipo

Fig 538 Pantalla de consulta perfiles

La Figura 539 muestra la pantalla en la que se definen los conocimientos requeridospara poder impartir una asignatura de acuerdo al perfil y contenido temaacutetico

Fig 539 Pantalla perfiles de las materias

La Figura 540 muestra un ejemplo de la consulta al perfil de una materia

Importancia de lacaracteriacutestica en la materia

Capiacutetulo 5 Implementacioacuten del sistema

Fig 540 Pantalla consulta perfiles de las materias

La Figura 541 es utilizada para capturar los datos de los catedraacuteticos que imparten lasasignaturas de una carrera

Fig 541 Pantalla captura datos de catedraacuteticos

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 542 es una muestra de la consulta al archivo de los catedraacuteticos

Fig 542 Pantalla consulta datos de catedraacuteticos

La Figura 543 muestra la pantalla en que se captura el perfil de los catedraacuteticos elperfil son los conocimientos que tiene el profesor que lo capacitan para impartir algunaasignatura

Fig 543 Pantalla captura perfil de catedraacuteticos

Conocimientosdel profesor

Barra deseleccioacuten deperfiles

Grado dedominio deltema

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 544 muestra una consulta tiacutepica al archivo de perfiles de los catedraacuteticos

Fig 544 Pantalla consulta perfil de catedraacuteticos

La Figura 545 muestra la pantalla de inferencia final que sugiere quienes son loscatedraacuteticos maacutes capacitados para impartir una materia haciendo la inferencia mediantela buacutesqueda de matchs entre el perfil de la asignatura y el perfil del catedraacutetico

Fig 545 Pantalla muestra inferencia catedraacuteticos para materia

Candidatos aimpartir lamateria

Botoacuten del proceso deinferencia generalPorcentaje de certeza con

que puede impartirla

Botoacuten delprocesodeinferenciaparticular

Botoacuten queinvoca almoacutedulo deexplicacioacuten

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 546 muestra la pantalla de explicacioacuten donde se indican los perfiles de lamateria y el perfil del profesor

Fig 546 Pantalla explicacioacuten porque un maestro puede dar una materia

La Figura 547 muestra el resultado de la inferencia del proceso que sugiere las materiasque puede impartir un profesor con base en el perfil de la materia y el perfil del profesor

Fig 547 Pantalla materias que puede impartir un profesor

Posibles materia aimpartir Porcentaje de certeza con

que puede impartirlaBotoacuten del proceso deinferencia general

Botoacuten delprocesodeinferenciaparticular

Botoacuten queinvoca almoacutedulo deexplicacioacuten

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 548 muestra la pantalla de explicacioacuten donde se indican el perfil de la materiay el perfil del profesor

Fig 548 Pantalla de explicacioacuten porque un profesor puede dar una materia

Capiacutetulo 5 Implementacioacuten del sistema

Capiacutetulo 6 Pruebas y Resultados

CAPIacuteTULO 6

PRUEBAS Y RESULTADOS

61 Pruebas del sistema

Se pueden detectar dentro del desarrollo de sistemas las actividades para realizarpruebas las producidas durante la etapa de requerimientos de disentildeo preliminar y las dedisentildeo detallado Clasificadas de otra manera eacutestas pueden ser funcionales deintegracioacuten y de implementacioacuten

La finalidad de realizar Pruebas funcionales es detectar errores que pudieran habersedado durante las fases de anaacutelisis y de especificacioacuten Por otro lado ellas pueden ayudara probar si el disentildeo es correcto ya que esta fase en sus dos niveles preliminar ydetallado estaacute basada en el anaacutelisis y especificacioacuten de requerimientos del sistema Estaactividad es guiada por los objetivos y requerimientos plasmados Se busca en estaprueba la posibilidad de que se haya incurrido en errores de conceptualizacioacuten yo deespecificacioacuten Las pruebas se organizan tomando como guiacutea las diferentes opciones delsistema final

Las Pruebas de integracioacuten se realizan cuando se procede a interconectar los diferentessubsistemas que constituyen el futuro sistema Como es conocido un sistema puede serdesarrollado por diferentes personas Por esta razoacuten es de suma importancia probar lainterconexioacuten de los diferentes subsistemas y asiacute verificar que ha sido realizada demanera correcta

Las Pruebas de implementacioacuten o codificacioacuten son las que se realizan directamentesobre los programas que se estaacuten desarrollando durante la fase de implementacioacuten Estosmoacutedulos o programas a su vez constituyen subsistemas Por esta razoacuten la integracioacuten delos diferentes moacutedulos que forman un subsistema deben ser probados Estas pruebasdeben estar basadas en la especificacioacuten de disentildeo preliminar y detallado [Gerez 1985]

Los siguientes rubros describen las pruebas maacutes importantes que se consideraron paravalidar el sistema las pruebas funcionales Las pruebas de implementacioacuten se realizarondurante el desarrollo de la codificacioacuten de los diferentes moacutedulos

Capiacutetulo 6 Pruebas y Resultados

62 PRUEBAS DEL SISTEMA

621 PRUEBA 1 AacuteREAS DE MENUacuteS

Objetivo Guiar al usuario en el desarrollo del proceso Esta prueba verifica que elsistema tenga como opciones principales y submenuacutes los sentildealados en la definicioacuten derequerimientos

Criterios de aceptacioacuten Cada prueba verifica que el sistema produzca los resultadossentildealados en la definicioacuten de requerimientos

Procedimiento de la prueba A continuacioacuten se despliegan las pantallascorrespondientes a los menuacutes principales y submenuacutes Las opciones principales delproyecto son dos Menu Principal y Datos de los autores

Resultado de la prueba Los resultados fueron satisfactorios En todas las opcionesactivadas el sistema presentoacute los submenuacutes definidos en la etapa de requerimientos

La Figura 61 muestra la portada inicial del proyecto Contiene los logotipos de las tresinstituciones participantes y el nombre del proyecto

Fig 61 Portada inicial del proyecto

Es el botoacutende entrada alsistema

Botoacuten deinformacioacutende los autores

Capiacutetulo 6 Pruebas y Resultados

La Figura 62 muestra el menuacute principal del proyecto y contiene 4 moacutedulos La primeraopcioacuten incluye los moacutedulos administrativo y generacioacuten de grupos la segunda opcioacutenincluye seleccioacuten de maestro y seleccioacuten de materia

Fig 62 Menuacute principal del proyecto

En la Figura 63 se tiene la pantalla del menuacute que agrupa los programas del moacuteduloadministrativo y Sistema Experto para determinar el nuacutemero de grupos por abrir seguacutenlos caacutelculos realizados con los datos de Servicios Escolares y el ajuste a ese dato

Fig 63 Menuacute grupos por abrir

Moacutedulos delproyecto

Cuadro queproporcionalainformacioacutende la opcioacutensentildealada porel cursor

Programas delos moacutedulos

Descripcioacutende laactividad delprogramaseleccionado

Capiacutetulo 6 Pruebas y Resultados

La Figura 64 muestra el menuacute de los moacutedulos que sugiere maestros para impartir unaasignatura y sugerencia de asignatura para alguacuten maestro

Fig 64 Pantalla menuacute seleccioacuten de catedraacuteticos

La Figura 65 muestra el moacutedulo para asignar aula a los horarios que ya tienen materiagrupo y hora

Fig 65 Pantalla principal del menuacute Algoritmos Geneacuteticos

Capiacutetulo 6 Pruebas y Resultados

622 PRUEBA 2 VALIDACIOacuteN DE ENTRADAS

Objetivo Evitar peacuterdidas de tiempo con entradas erroacuteneas de datos y resultados sinvalidez

Criterios de aceptacioacuten Esta prueba deberaacute mostrar de manera exacta la informacioacutenal seleccionar la opcioacuten deseada

Procedimiento de la prueba Se verifica que todas las cajas de texto tengan el dato quese pide y una vez dados todos los datos se guardan para que estos datos posteriormentesean procesados por el sistema y almacenen los datos correctos

Resultado de la prueba Los resultados fueron satisfactorios En todas las opcionesactivadas el sistema presentoacute los resultados correctos a cada opcioacuten Ademaacutes losdesplegados de mensajes de error se presentaron de manera correcta en todas laspruebas

La Figura 66 muestra la captura de datos de una asignatura y enviacutea el correspondientemensaje de error si una caja de texto se encuentra vaciacutea

Fig 66 Pantalla de captura de datos de las Materias

Muestra elmensaje deerror si esque hacefalta alguacuten

Capiacutetulo 6 Pruebas y Resultados

La Figura 67 muestra una pantalla de captura de datos asignando criterios a una materiay valida la no duplicidad de criterios en esa materia se enviacutea el correspondiente mensajede error si una entrada ya fue capturada

Fig 67 Pantalla de captura de datos de Criterios por Materia

La Figura 68 muestra una pantalla de captura de datos de las carreras al encontrar unregistro ya capturado muestra el mensaje de error si una carrera ya fue capturada

Fig 68 Pantalla de captura de datos de Carreras

Muestra elmensajede error sies que yaexiste elregistro

Muestra elmensaje deerror si esque yaexiste elregistro

Capiacutetulo 6 Pruebas y Resultados

623 PRUEBA 3 DESPLEGADO DE RESULTADOS

6231 MOacuteDULO DE GENERACIOacuteN DE GRUPOS POR ABRIR

Objetivo Proporcionar los datos que el moacutedulo pide para que posteriormente elsistema genere el nuacutemero de grupos sugerido por abrir para cada materia

Criterios de aceptacioacuten Esta prueba muestra la lista de grupos que se deben abrirdespueacutes de aplicar los criterios del Sistema Experto

Procedimiento de la prueba Una vez que se proporcionan los datos que el SistemaExperto requiere el sistema generaraacute una lista de los grupos que se deben abrir elproacuteximo semestre

Resultado de la prueba Los resultados fueron satisfactorios En todos los casospresentados el sistema generoacute la lista en forma satisfactoria y con la informacioacutencorrecta

La Figura 69 es la pantalla maacutes importante de moacutedulo de generacioacuten de grupos porquees donde se realiza la inferencia para calcular el tipo de ajuste que se va a aplicar a cadamateria con base en las reglas que se disparan y que hacen match los criterios de unaregla y los criterios de una materia

Asignaturaa la que sele aplicaraacuteel ajuste

Regla quese disparaseguacutencriterios

Tipo deajuste quese aplica

Inferenciageneral

Datoseguacuten

Fig 69 Pantalla caacutelculo de ajustes

Datos seguacutenajuste delSistemaExperto

Inferenciaindividual

Capiacutetulo 6 Pruebas y Resultados

6232 MOacuteDULO DE GENERACIOacuteN DE HORARIOS

Objetivo Proporcionar los datos que el moacutedulo pide para que posteriormente elsistema genere el horario por semestre de las materias de una carrera

Criterios de aceptacioacuten Esta prueba debe mostrar los horarios para las materias sinerrores sin choques de hora en un paquete

Procedimiento de la prueba Recibe como entrada cuantos grupos abrir de cadamateria en cada semestre y genera primero los paquetes posteriormente a cada paquetede materias le asigna la hora por materia

Resultado de la prueba Los resultados fueron satisfactorios En todos los casospresentados el sistema generoacute los horarios correspondientes

La Figura 610 muestra el formulario que forma los paquetes de materias seguacuten laretiacutecula de una carrera muestra el nuacutemero de grupos por cada materia que se van aformar y hace los paquetes asignando los grupos AA AB AC AD

Fig 610 Pantalla inicial del moacutedulo generacioacuten de horarios

Semestre al que sele formaraacuten lospaquetes

Paquetes generadosHora de iniciode clases decada grupo

Materias delsemestre

Nuacutemero de grupospor al que se lesgeneraraacute horario

Botonesque invocanal moacutedulogeneradorde horarios

Capiacutetulo 6 Pruebas y Resultados

La Figura 611 es el formulario del moacutedulo Programacioacuten Loacutegica de Restricciones quegenera los horarios por paquete satisfaciendo las restricciones para formar un horariolibre de choques continuo (sin horas muertas) cumpliendo las horas por materia etc

Fig 611 Pantalla princip

6233 MOacuteDULO ASIGNACIOacuteN D

Objetivo Utilizar los datos generadoaulas a los paquetes de materias

Criterios de aceptacioacuten Esta pruebaasignacioacuten de aula sin choques

Procedimiento de la prueba Se genAlgoritmos Geneacuteticos durante variachoques en el aula

Resultado de la prueba Los resupresentados el sistema generoacute las aula

MateriaPaquete

Nuacutemero dehoras por diacutea

Hora de iniciode la materia

al del moacutedulo generacioacuten de horarios

E AULA

s en el moacutedulo anterior para hacer la asignacioacuten de

debe mostrar los horarios de las materias con una

eran las aulas utilizando los procedimientos de loss generaciones hasta lograr una generacioacuten sin

ltados fueron satisfactorios En todos los casoss correspondientes

Capiacutetulo 6 Pruebas y Resultados

La Figura 612 muestra la pantalla para actualizar las aulas disponibles por las personasque generan los horarios estas aulas estaacuten disponibles para que el Algoritmo Geneacuteticolas utilice para asignarles grupos durante el proceso

Fig 612 Pantalla del control de aulas

La Figura 613 muestra la consulta de las aulas que utiliza el moacutedulo generacioacuten deaulas

Fig 613 Pantalla de consultas del control de aulas

Capiacutetulo 6 Pruebas y Resultados

La Figura 614 muestra la pantalla que genera la poblacioacuten inicial a partir de los datosgenerales proveniente de los moacutedulos anteriores

Fig 614 Pantalla de genera poblacioacuten inicial

La Figura 615 muestra la pantalla que evaluacutea las versiones originadas y genera paracada una de ellas un cromosoma cuyos genes contienen la informacioacuten obtenida

Fig 615 Pantalla de evaluacioacuten de versiones

Nuacutemero dehipoacutetesisversiones oindividuos

Aula aleatoriagenerada

Este botoacuteninicia lageneracioacutende las nversionesde horarios

Capiacutetulo 6 Pruebas y Resultados

La Figura 616 muestra el formulario del proceso de seleccioacuten de las mejores versionesde horarios toma aquellas que tienen menor numero de choques y mayor espacio deocupacioacuten de aulas

Fig 616 Pantalla del proceso de seleccioacuten

La Figura 617 muestra la pantalla del proceso de clonacioacuten donde se selecciona la mejorversioacuten y se obtiene un clon ideacutentico con un nuevo nuacutemero de versioacuten

Fig 617 Pantalla del proceso de clonacioacuten

Cantidad deversiones quesobreviviraacuten

Cromosomas delos mejoresindividuos

Botoacuten queinicia elproceso deseleccioacuten

Botoacuten queinicia elproceso deeliminacioacuten

Cromosomasde versionesmaacutes aptas

Nuacutemero demejor versioacuten

Poblacioacutenversiones

Capiacutetulo 6 Pruebas y Resultados

La Figura 618 muestra la pantalla del proceso de mutacioacuten utilizado para hacer elcambio ldquomutarrdquo los datos de una versioacuten para romper alguacuten ciclado de la tendencia haciael resultado o simplemente para acelerar el proceso de optimizacioacuten

Fig 618 Pantalla de mutacioacuten

La Figura 619 muestra la pantalla donde se realiza el cruzamiento utilizando plantillaspredeterminadas dirigiendo la cruza de versiones por paquetes de materias agrupadas porsemestre y cada plantilla genera una nueva versioacuten con la combinacioacuten de fragmentosde varias versiones

Fig 619 Pantalla del proceso de cruzamiento

Cromosomamuestra lasmejoresversiones

Nuacutemero deversioacuten amutar

Aulas quepueden mutarse

Botoacuten queinicia elproceso demutacioacuten

Capiacutetulo 6 Pruebas y Resultados

La Figura 620 permite la seleccioacuten y enviacuteo de la mejor versioacuten de horarios y adaptarloal moacutedulo administrativo para su distribucioacuten y publicacioacuten

Fig 620 Horarios finales

6234 MOacuteDULO SELECCIOacuteN DE CATEDRATICOS

Objetivo Capturar los datos de los profesores y su perfil profesiograacutefico ademaacutescapturar los conocimientos necesarios para impartir una asignatura para poder sugerircual es el mejor catedraacutetico que puede impartir una asignatura

Criterios de aceptacioacuten Esta prueba debe mostrar la sugerencia de los mejorescatedraacuteticos para una materia y las mejores materias para un catedraacutetico

Procedimiento de la prueba Se daraacuten los datos iniciales de los maestros y el sistemadeberaacute generar una lista a partir de la inferencia del Sistema Experto respectivo yviceversa

Resultado de la prueba Los resultados fueron satisfactorios En todos los casospresentados el sistema infirioacute las materias y los catedraacuteticos correspondientes

Capiacutetulo 6 Pruebas y Resultados

La Figura 621 muestra la pantalla en que se captura el perfil de los catedraacuteticos elperfil son los conocimientos que tiene el profesor que lo capacitan para impartir algunaasignatura

Fig 621 Pantalla captura perfil de catedraacuteticos

La Figura 622 muestra la pantalla de inferencia final que sugiere quienes son loscatedraacuteticos maacutes capacitados para impartir una materia haciendo la inferencia mediantela buacutesqueda de matchs entre el perfil de la asignatura y el perfil del catedraacutetico

Fig 622 Pantalla muestra inferencia catedraacuteticos para materia

Conocimientosdel profesor

Barra deseleccioacuten deperfiles

Grado dedominio deltema

Botoacuten delprocesodeinferenciaparticular

Botoacuten queinvoca almoacutedulo deexplicacioacuten

Candidatos aimpartir lamateria Botoacuten del proceso de

inferencia generalPorcentaje de certeza conque puede impartirla

Capiacutetulo 6 Pruebas y Resultados

La Figura 623 muestra la pantalla de explicacioacuten donde se indican los perfiles de lamateria y el perfil del profesor

Fig 623 Pantalla explicacioacuten porque un maestro puede dar una materia

La Figura 624 muestra el resultado de la inferencia del proceso que sugiere las materiasque puede impartir un profesor con base en el perfil de la materia y el perfil del profesor

Fig 624 Pantalla materias que puede impartir un profesor

Posibles materia aimpartir Porcentaje de certeza con

que puede impartirlaBotoacuten del proceso deinferencia general

Botoacuten delprocesodeinferenciaparticular

Botoacuten queinvoca almoacutedulo deexplicacioacuten

Capiacutetulo 6 Pruebas y Resultados

La Figura 625 muestra la pantalla de explicacioacuten donde se indican el perfil de la materiay el perfil del profesor

Fig 625 Pantalla de explicacioacuten porque un profesor puede dar una materia

Capiacutetulo 6 Pruebas y Resultados

Capiacutetulo 7 Conclusiones y Trabajos Futuros

CAPIacuteTULO 7

CONCLUSIONES Y TRABAJOS FUTUROS

71 CONCLUSIONES

Los meacutetodos de programacioacuten lineal proporcionan una solucioacuten parcial al problema dela generacioacuten de horarios utilizan una ldquorecetardquo predefinida para lograr la optimizacioacutende la asignacioacuten de recursos como lo hace el meacutetodo Huacutengaro La Inteligencia Artificialsoluciona el problema utilizando la heuriacutestica el conocimiento y la experiencia de unexperto humano para solucionar el problema se decidioacute utilizar esta metodologiacutea paraexplorar una solucioacuten aproximada al problema

En el ITZ la generacioacuten de horarios se haciacutea de forma manual no se utilizaba ninguacutenmeacutetodo automatizado Al aplicar algunas teacutecnicas de la Inteligencia Artificial se halogrado generar de manera automatizada los horarios de las materias que se ofertaraacuten elproacuteximo semestre

La aplicacioacuten de varias ramas de la Inteligencia Artificial para la resolucioacuten delproblema de la generacioacuten de horarios viene a demostrar que si es posible generar uncondensado de horarios para el Instituto Tecnoloacutegico de Zacatepec que es una escuelade nivel superior y que estos horarios satisfacen adecuadamente las restricciones fuertesmedias y suaves Para ello fue necesaria la combinacioacuten de varias disciplinas de lacomputacioacuten para generar cada una de las partes que componen un horario y tambieacutenrecomendar los catedraacuteticos mas apropiados para impartir dichos grupos nuevamentequeda demostrado que la Inteligencia Artificial sirve para resolver problemas que lasteacutecnicas convencionales de computacioacuten consideran problema NP-completo

La utilizacioacuten de las teacutecnicas de los Sistemas Expertos para ajustar el nuacutemero de grupospor abrir el proacuteximo semestre permite aplicar el conocimiento y experiencia de lapersona encargada de elaborar los horarios y asiacute disminuir el nuacutemero de gruposcancelados el conocimiento e intuicioacuten del experto humano realizan un ajuste fino alnuacutemero de grupos y como puede notarse el sistema lo hace de manera similar

Para el moacutedulo de generacioacuten de los grupos y los horarios la utilizacioacuten de la teacutecnicallamada Programacioacuten Loacutegica de Restricciones permitioacute la satisfaccioacuten de lasrestricciones que hacen que los horarios sean considerados factibles para su aplicacioacuten a

Capiacutetulo 7 Conclusiones y Trabajos Futuros

los alumnos el proacuteximo semestre ya que los paquetes de materias por semestre tienenhorarios corridos y sin choques en horas nuacutemero de materias completo y buenadistribucioacuten de horas pares e impares

Se utilizoacute tambieacuten la teacutecnica de optimizacioacuten llamada Algoritmos Geneacuteticos pararealizar la asignacioacuten de aulas a cada grupo generado logrando con ello minimizarautomaacuteticamente el nuacutemero de choques de materias en aulas En las pruebas realizadasse logroacute que en la sexta generacioacuten de individuos ya soacutelo hubiera hasta un maacuteximo de 24choques lo que indicaba que soacutelo 4 oacute 5 grupos compartiacutean aula a la misma hora esto erafaacutecilmente corregible realizando una inspeccioacuten visual a la versioacuten de horarios final yajustando los uacuteltimos errores

Por uacuteltimo nuevamente se aplicaron los Sistemas Expertos en el moacutedulo de sugerenciade materias que puede impartir un maestro y en el moacutedulo maestros que pueden impartiruna determinada materia vale la pena comentar que durante las pruebas realizadas loscatedraacuteticos del departamento de Sistemas y Computacioacuten capturaban su perfilprofesiograacutefico y al pedir al sistema la sugerencia de cuaacuteles materias podriacutean impartirlos Sistemas Expertos del proyecto inferiacutean exactamente las materias que loscatedraacuteticos estaacuten impartiendo en este semestre y las que habiacutean impartido en alguacutensemestre anterior demostrando que en efecto para profesores nuevos la recomendacioacutendel sistema seriacutea vaacutelida

72 TRABAJOS FUTUROS

Se sugiere que se ampliacutee el proyecto para que a cada grupo generado con aula y hora sele asigne de manera automaacutetica un catedraacutetico utilizando ya sea Algoritmos Geneacuteticos oProgramacioacuten Loacutegica de Restricciones

Otra posible mejora puede ser incluir la Loacutegica Difusa en los Sistemas Expertos de losmoacutedulos que sugieren las materias que puede impartir un catedraacutetico y los catedraacuteticosque pueden impartir una asignatura

Como ya se comproboacute la factibilidad de generar los horarios de manera automaacutetica sepropone tambieacuten la exploracioacuten de otras ramas y teacutecnicas de la computacioacuten (RedesNeuronales Buacutesqueda Tabuacute Grafos Coloreados etc) para comparar el rendimientotiempo esfuerzo y asiacute poder determinar cuales son mejores o peores teacutecnicas pararesolver el problema de la generacioacuten de horarios

Referencias Bibliograacuteficas

REFERENCIAS BIBLIOGRAacuteFICAS

[Abramson 1991] Abramson D ldquoConstructing School Timetables Using SimulatedAnnealing Secuencial and Parallel Algoritmsrdquo Management Science PWS PublishingBoston 1998

[Beasley 1993] Beasley D amp Bull DR amp Martin RR ldquoAn Overview of GeneticAlgorithms Part 1 Fundamentalsrdquo University Computing

[Bull 1993] Bull DR amp Beasley D amp Martin RR ldquoAn Overview of GeneticAlgorithms Part 2rdquo University Computing Magazine 1993

[Burke1994]Burke EK ldquoA Genetic Algorithm for University Timetablingrdquo AISBworkshop on evolutionary computing Leeds 1994

[Burke 1997] Burke Edmund K ldquoAutomated Scheduling Optimization and PlanningGroup (ASAP)rdquo PATATrsquo97 Proceedings of the 2nd Intenational Conference on thePractice And Theory of Automated Timetabling 1997

[Burke2000] Burke Edmund amp Eliman David amp Weare Rupert ldquoA GeneticAlgorithm Based University Timetabling Systemrdquo PATATrsquo2000 Proceedings of the 5ft

Intenational Conference on the Practice And Theory of Automated Timetabling 2000

[Burke2001] Burke EK amp Eliman DGamp Weare R ldquoAutomated Scheduling OfUniversity Examsrdquo Leeds 2001

[Burke2002] Burke Edmund amp Eliman David amp Weare Rupert ldquoExaminationTimetabling in British Universities ndash A Surveyrdquo Leeds 2002

[Carrasco 2004] Carrasco Marco amp Pato Margarida ldquoSolving Real ClassTeacherTimetabling Problems using Neural Networksrdquo Facultade de Ciencias University ofLisboa Portugal

[Chorafas 1990] Chorafas Dimitris N ldquoKnowledge Engineeringrdquo Van NostrandReinnhold New York USA

Referencias Bibliograacuteficas

[Corne 1993] Corne D ldquoSolving the module exam scheduling problem with geneticalgorithmsrdquo Proceedings of the 6th Intenational conference in Industrial andEngineering applications of Artificial Intelligence and Expert Systems1993

[Daellenbach 1987] Daellenbach Hans amp McNickle Donald ldquoIntroduccioacuten a teacutecnicasde Investigacioacuten de Operacionesrdquo CECSA Meacutexico 1987

[Davis 1991] Davis L ldquoHandbook of Genetic Algorithmsrdquo Van Nostrand ReinholdNew York NY

[Demist2000] Demist ldquoDepartamental Timetabling Proyect ProposalDeMIStinterface to Timetabling Package Proyectrdquo Demist University 2000

[Detcher 1990] Detcher R ldquoEnhancement Schemes for Constraint Processing BackJumping Learning and Cutset Decompositionrdquo Artificial Intelligence 41 (1990)

[Eliman 2000] Eliman David ldquoSpecialised Recombinative Operators for TimetablingProblemsrdquo Cambridge University Press New York 2000

[Elmohamed2000] Elmohamed Saleh ldquoThe timetabling problemrdquo PATATrsquo2000Proceedings of the 5th Intenational Conference on the Practice And Theory ofAutomated Timetabling 2000

[Elmohamed2001] Elmohamed Saleh ldquoConstraint based university coursetimetablingrdquo 4th World Congress on Timetabing Aplication of advanced informationTechnologies London 2001

[Fahrion y Dollanski 1992] Fahrion R amp G Dollanski ldquoConstruction of UniversityFaculty Timetables using Logic Programmingrdquo ACM Sigsoft Notes vol 9 no 3 May1992

[Frenzel 1986]Frenzel Louis E ldquoCrash Course in Artificial Intelligence and ExpertSystemsrdquo Howard W Sams amp Co McMillan Inc Indianapolis USA

[Gerez 1985] Gerez Victor amp Mier Mauricio ldquoDesarrollo y administracioacuten deprogramas de computadorardquo McGraw Hill Meacutexico 1985

[Gervaacutes 1999] Gervaacutes P amp San Miguel B ldquoSequential Building of ConstrainedTimetables Using Rule-Based Heuristics An Expert System for AutomatedTimetablingrdquo Congreso Internacional de Investigacioacuten en Ciencias Computacionales

Referencias Bibliograacuteficas

[Giarratamo 1998] Giarratamo Joseph y Gary Riley ldquoExpert Systems Principles andProgrammingrdquo PWS Kent Publishing Company Boston USA

[Gines 1986] Gines B amp Boose J ldquoKnowledge Acquisition for Knowledge-BasedSystemsrdquo Vol 1amp2 Academic Press London U K

[Goldberg 1989] Goldberg DE ldquoGenetic Algorithms in SearchOptimization andMachine LearningrdquoAddison-Wesley

[Kang y White 1994 ] Kang L amp White GM ldquoA Logic Approach to the Resolutionof Constrains in Timetablingrdquo European Journal of Operational Research vol 61 1994

[Kandel 1991] Kandel Abraham ldquoFuzzy Expert Systemsrdquo CRC Press Inc LondonUK 1991

[Kendall1999] Kendall y Kendall ldquoAnaacutelisis y disentildeo de sistemasrdquo 3ordf edicion PearsonEducacioacuten

[Koza 1992] Koza JR ldquoGenetic Programming On the Programming of Computers bymeans of Natural Selectionrdquo Cambridge MA MIT Press

[Martiacutenez 1999] Martiacutenez Alfaro Horacio ldquoSolucioacuten al problema de asignacioacuten desalones de clases horario y grupo mediante templado simuladordquo Memorias 6ordm CongresoInternacional de Mecatroacutenica e Inteligencia Artificial Meacutexico 1999

[Medina 2004] Medina Pasaflores Horacio ldquoFundamentos de Algoritmos GeneacuteticosrdquoTesis de licenciatura Zacatepec Mexico 2004

[Michalewicz 1992] Michalewicz Z ldquoGenetic algorithms + Data Structures =Evolution Programsrdquo Springer-Verlag New York NY

[Negoita1985] Negoita ConstantinV Expert Systems and Fuzzy Systems TheBenjamin Cummings Publishing Co Menlo Park CA USA

[Nielsoft 2000] Nielsoft informatica ldquoManual de usuario Mimosa for windowsrdquo

[Paechter 1994] Paechter B ldquoTwo solutions to the general timetabling problemusing evolutionary methodsrdquo IEEE WCCI 1994

[Pluss1999] Pluss JJ ldquoSistemas expertos un enfoque pragmaacuteticordquo UNR

Referencias Bibliograacuteficas

[Rich 1996] Rich E y Knight K ldquoInteligencia Artificialrdquo McGraw HillInteramericana Madrid Espantildea

[Russell 1996] Russell S y Norvig P ldquoInteligencia Artificial un enfoque modernordquoPrentice Hall Mexico 1996

[Sanchez1999] Sanchez y Beltran ldquoSistemas expertos una metodologiacutea deprogramacioacutenrdquo Macrobit

[Schedul2000] SchedulExpert ldquoCourse scheduling in post educational institutionsrdquo EdAddison Wesley 2000

[Trick 1999 ] Trick Michael ldquoNetwork resources for coloring a graphrdquo Oracle PressEd McGraw Hill 1999

[Turban 1995] Turban Efraim ldquoDecision Support and Expert Systems ManagementSupport Systemsrdquo Fourth Edition Orentice Hall NJ USA

[Waterman1986] Waterman Donald A ldquoA Guide to Expert Systemsrdquo Addison-Wesley Publishing Co USA

[Weare2000] Weare Rupert amp Burke Edmundo amp Eliman David ldquoA Questionnaireon Exam Timetabling in Universitiesrdquo Annual review of computer Science Volume 2Palo Alto 2000

[Wilke 2002] Wilke P amp Grobner M amp Oster N ldquoA hibrid Genetic Algorithm forSchool Timetablingrdquo Advances in Artificial Intelligence Springer Lecture Notes inComputer Science New York

[Yoshikawa 1994] Yoshikawa M amp Kaneko KldquoA Constraint-based Approach toHigh School Timetabling Problems A Case Studyrdquo AAAI-94 12ordm NationalConference on Artificial Intelligence

Referencias Bibliograacuteficas

Referencias electroacutenicas

httpwwwmonografiacuteascomtrabajos12inteartfinteartfshtmlObregoacuten Arturo Inteligencia artificial y Sistemas expertos IIMAS-UNAM (1992)

httpwwwlafacucomapuntesinformaticasist_conodefaulthtmCruz Ochoa Wilson Sistemas de conocimiento

httpwwwingenieroseninformaticaorgrecursostutorialessist_exphtmlZambrano Molina Darwin Sistemas expertos

httpredcientificacomdocdoc199008210001htmlSamper Marquez Juan Joseacute Introduccioacuten a los sistemas expertos Madrid 2000

httpmismonografiascomarSistemas20expertofuzzyhtmlArede Dario Sistema experto fuzzy

httpcruzrojaguayaorginteligenciainterhtmlAyuquina Martha amp Arellano Gregorio Inteligencia artificial Universidad de Guayaquil

httpdmiuibesabasolointart1-introduccionhtmlAbasolo Mariacutea Joseacute Dra Inteligencia Artificial

Page 7: BORIS ANTONIO ARANDA BENITEZ

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

CAPIacuteTULO 6 PRUEBAS Y RESULTADOS61 Pruebas del sistema 11462 Pruebas del sistema 115621 Prueba 1 Aacuterea de menuacutes 115622 Prueba 2 Validacioacuten de entradas 118623 Prueba 3 Desplegado de resultados 1206231 Moacutedulo generacioacuten de grupos por abrir 1206232 Moacutedulo generacioacuten de horarios 1216233 Moacutedulo asignacioacuten de aula 1226234 Moacutedulo seleccioacuten de catedraacuteticos 127

CAPIacuteTULO 7 CONCLUSIONES Y TRABAJOS FUTUROS71 Conclusiones 13172 Trabajos futuros 132

REFERENCIAS BIBLIOGRAacuteFICAS 133

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

LISTA DE FIGURAS

Figura Nombre Paacutegina

31 Arquitectura de un Sistema Experto 2632 Pseudocoacutedigo del Algoritmo Geneacutetico simple 3341 Mapa conceptual del proyecto 5242 Diagrama de secuencia 5443 Sistema Experto generador de grupos 5544 Diagrama del moacutedulo Programacioacuten Loacutegica de Restricciones 5745 Diagrama del moacutedulo Algoritmo Geneacutetico 5846 Diagrama de Sistema Experto para sugerir profesor a asignatura 6047 Diagrama de Sistema Experto para sugerir asignaturas para

catedraacutetico61

48 Diagrama de contexto del proyecto 6449 Diagrama de funciones fundamentales (entradas) 65410 Diagrama de funciones fundamentales (salidas) 66411 Diagrama entidad relacioacuten del moacutedulo administrativo 67412 Diagrama E-R del moacutedulo para determinar y ajustar nuacutemero de

grupos68

413 Diagrama E-R del moacutedulo para asignar aulas (Algoritmo Geneacutetico) 69414 Diagrama E-R del moacutedulo para asignar horario (PLR) 70415 Diagrama E-R del moacutedulo designa mejor catedraacutetico (Sistema

Experto)71

416 Diagrama E-R del moacutedulo selecciona mejor materia (SistemaExperto)

72

51 Portada inicial del proyecto 8852 Acerca del sistema 8953 Menuacute principal del proyecto 8954 Menuacute grupos por abrir 9055 Materias 9056 Consulta materias 9157 Pantalla servicios escolares 9158 Pantalla consulta servicios escolares 9259 Pantalla criterios por materia 92510 Pantalla consulta criterios por materia 93511 Pantalla carreras 93512 Pantalla criterios 94513 Pantalla consulta criterios 94514 Pantalla reglas 95515 Pantalla consulta reglas 95516 Pantalla ajustes 96

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

517 Pantalla consulta ajustes 96518 Pantalla criterios por regla 97519 Pantalla consulta criterios por regla 97520 Pantalla caacutelculo de ajustes 98521 Pantalla explicacioacuten de la inferencia 98522 Pantalla inicial del moacutedulo generacioacuten de horarios 99523 Pantalla principal del moacutedulo generacioacuten de horarios 99524 Pantalla principal del menuacute Algoritmos Geneacuteticos 100525 Pantalla de administracioacuten de grupos 100526 Pantalla de consulta de administracioacuten de grupos 101527 Pantalla del control de aulas 101528 Pantalla de consultas del control de aulas 102529 Pantalla para generacioacuten de poblacioacuten inicial 102530 Pantalla de evaluacioacuten de versiones 103531 Pantalla del proceso de seleccioacuten 103532 Pantalla del proceso de clonacioacuten 104

533 Pantalla de mutacioacuten 104534 Pantalla del proceso de cruzamiento 105535 Horarios finales 105536 Pantalla menuacute seleccioacuten de catedraacuteticos 106537 Pantalla de perfiles 106538 Pantalla de consulta perfiles 107539 Pantalla perfiles de las materias 107540 Pantalla consulta perfiles de las materias 108541 Pantalla captura datos de catedraacuteticos 108542 Pantalla consulta datos de catedraacuteticos 109543 Pantalla captura perfil de catedraacuteticos 109544 Pantalla consulta perfil de catedraacuteticos 110545 Pantalla muestra inferencia catedraacuteticos para materia 110546 Pantalla explicacioacuten del porqueacute un maestro puede dar una materia 111547 Pantalla materias que puede impartir un profesor 111548 Pantalla de explicacioacuten del porqueacute un profesor puede dar una

materia112

61 Portada inicial del proyecto 11562 Menuacute principal del proyecto 11663 Menuacute grupos por abrir 11664 Pantalla menuacute seleccioacuten de catedraacuteticos 11765 Pantalla principal del menuacute Algoritmos Geneacuteticos 11766 Pantalla de captura de datos de las Materias 11867 Pantalla de captura de datos de Criterios por Materia 11968 Pantalla de captura de datos de Carreras 11969 Pantalla caacutelculo de ajustes 120

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

610 Pantalla inicial del moacutedulo generacioacuten de horarios 121611 Pantalla principal del moacutedulo generacioacuten de horarios 122612 Pantalla del control de aulas 123613 Pantalla de consultas del control de aulas 123614 Pantalla de genera poblacioacuten inicial 124615 Pantalla de evaluacioacuten de versiones 124616 Pantalla del proceso de seleccioacuten 125617 Pantalla del proceso de clonacioacuten 125618 Pantalla de mutacioacuten 126619 Pantalla del proceso de cruzamiento 126620 Horarios finales 127621 Pantalla captura perfil de catedraacuteticos 128622 Pantalla muestra inferencia catedraacuteticos para materia 128623 Pantalla explicacioacuten porque un maestro puede dar una materia 129624 Pantalla materias que puede impartir un profesor 129625 Pantalla de explicacioacuten porque un profesor puede dar una materia 130

Capiacutetulo 1 Introduccioacuten

CAPIacuteTULO 1

INTRODUCCIOacuteN

11 Antecedentes

iquestQueacute es un horario

ldquoEl horario completo bien puede gobernar las vidas demiles de alumnos y cientos de profesores para los 200 diacuteasdel antildeo escolar semestre a semestre hora tras hora Comouna poderosa herramienta puede faacutecilmente crear o deshacersituaciones de ensentildeanza aprendizajerdquo [Johnson 1980]

En la educacioacuten superior la historia siempre es la misma la proporcioacuten de tiempodictada por el horario para los alumnos y profesores es generalmente muy baja Apesar de esto las dificultades en la creacioacuten de los horarios son grandes Existenvarios departamentos y carreras cada uno con sus propias ideas de coacutemo y cuaacutendo sedeben programar sus cursos El nuacutemero de estudiantes puede variar considerablementede antildeo en antildeo Similarmente las preferencias de los alumnos a favor o en contra delas materias pueden variar dramaacuteticamente de un semestre a otro Los estudiantespueden tomar cursos de un departamento o de varios de ellos aun maacutes puedenseleccionar materias de otras carreras La reciente desaparicioacuten de las restricciones decreacuteditos para cursar las asignaturas complica maacutes la situacioacuten porque ampliacutea el rangode materias que puede tomar un alumno Los horarios aparecen en varias formasmatutinos vespertinos mixtos y todo el diacutea Los horarios escolares indican cuando unmaestro y un alumno deben ir a cada clase Todas las escuelas tienen un horario decursos que dirige lo que cada estudiante y catedraacutetico debe hacer en determinadomomento Esta tesis versa especiacuteficamente sobre el problema de construir horariospara Institutos Tecnoloacutegicos en Meacutexico

La planeacioacuten de los horarios es un trabajo que se realiza semestralmente antes de iniciarel siguiente periodo escolar tomando en cuenta la demanda de grupos que se ofreceraacuteny asignando a estos grupos los alumnos el aula el catedraacutetico y el horariocorrespondiente mediante informacioacuten que se obtiene de varias maneras

El principal objetivo de este proyecto es dar una solucioacuten aproximada (aceptable) alproblema de la generacioacuten de horarios de una escuela de nivel superior que se resumeasiacute

Capiacutetulo 1 Introduccioacuten

ldquoDado un conjunto de departamentos y carreras asignaturas con prerrequisitos gruposcatedraacuteticos con especialidad y horario definidos aulas laboratorios y alumnos con suspreferencias de materias el problema es construir un condensado de horarios factibleque satisfaga todas las restricciones fuertes y minimice las restricciones medias ysuavesrdquo

Las restricciones fuertes son restricciones de espacio y tiempo tal como planear doscursos en un aula al mismo tiempo Las restricciones medias y suaves son laspreferencias de maestros y estudiantes que deberaacuten ser satisfechas si es posible[Elmohamed 1998]

El problema de la generacioacuten de horarios ha sido tratado por muchos investigadoresutilizando meacutetodos que van desde la investigacioacuten de operaciones hasta disciplinas de laInteligencia Artificial como son Algoritmos Geneacuteticos Recocido Simulado RedesNeuronales etc

12 Planteamiento del problema

La generacioacuten de horarios es una forma particular del problema de asignacioacuten derecursos En el caso maacutes general existe una serie de objetos (recursos) y una serie deprocesos que necesitan ser realizados por cada uno de esos objetos En un contextoeducacional cada estudiante debe asistir a un nuacutemero predeterminado de clases y elprofesor debe impartirlas durante la semana en un aula predeterminada el estudiante elprofesor y el aula pasan aquiacute a ser el objeto y las clases el proceso

La complejidad del problema de la generacioacuten de horarios

La generacioacuten de horarios es un problema de optimizacioacuten combinatorio multi-dimensional no Euclidiano con muacuteltiples restricciones y por lo tanto difiacutecil de resolver[Elmohamed 1998]

El problema de la generacioacuten de horarios esta agrupado dentro de los considerados decomplejidad NP-completos es decir que no pueden ser resueltos en tiempo polinomialusando un algoritmo determiniacutestico No se conoce un algoritmo determiniacutestico detiempo polinomial para resolver alguno de esos problemas y la mayoriacutea de la gente creeque dichos algoritmos no existen[Karp 1972]

La generacioacuten de horarios es la asignacioacuten de lapsos de tiempo a un conjunto de eventossujeto a las restricciones en esas asignaciones Seguacuten Elmohamed [Elmohamed 1998]el problema NP-completo de la elaboracioacuten de horarios es un problema para la

Capiacutetulo 1 Introduccioacuten

satisfaccioacuten de restricciones que puede ser definido de la siguiente maneraPara una escuela dada con

Np profesores con sus horarios y turnos Nq materias con su temario y objetivosNx aulas y laboratorios con su capacidad Ns estudiantes

es requerido programar Nt parejas de

alumno-materiahora-materiamaestro-materiaaula-materia

una vez definidas las parejas anteriores se deben programar elementos de la formamateria-maestro-hora -aula

En un liacutemite de Nt lapsos de tiempo para producir una programacioacuten factible En unaprogramacioacuten factible no se puede encontrar a un profesor grupo o estudiante en maacutesde un lugar al mismo tiempo y un aula no puede ser asignada con maacutes de una clase a lavez o maacutes estudiantes de su capacidad o un profesor programado fuera de su horarionormal o con maacutes horas frente a grupo de las reglamentarias ademaacutes de un conjuntoadicional de restricciones

Importancia del problema

La administracioacuten de los recursos comprende la apertura de los grupos para inscribir alos alumnos el proacuteximo semestre la asignacioacuten de carga acadeacutemica a los catedraacuteticos lautilizacioacuten de aulas y laboratorios de quiacutemica produccioacuten coacutemputo electromecaacutenicaaulas de dibujo y demaacutes instalaciones del Instituto Tecnoloacutegico de Zacatepec (ITZ)Cuando por errores imputables al creador de los horarios se hizo una mala planeacioacuten sederivan los siguientes problemasbull Alumnos que se inscriben con una carga de creacuteditos menor a la miacutenima por falta de

grupos suficientesbull Alumnos que deben estar en el ITZ desde las 700 hrs hasta las 2000 hrs varios

diacuteas a la semana por abrir grupos en horarios muy separadosbull Alumnos que pierden la secuencia de materias seriadas por falta de cupobull Alumnos que deben permanecer 1 oacute 2 semestres maacutes en el ITZ por no prever

suficientes grupos para semestres terminalesbull Catedraacuteticos que no imparten el miacutenimo reglamentario de horas frente a grupo por

no crearles grupos suficientesbull Catedraacuteticos a los que se les avisa 1 diacutea antes del inicio de clases que impartiraacuten una

Capiacutetulo 1 Introduccioacuten

asignatura nuevabull Asignaturas que son impartidas por profesores que no cumplen el perfil deseado en

esa asignaturabull Choque de grupos en las aulasbull Choque de grupos en laboratoriosbull Falta de laboratorio a algunos gruposbull Deficiente utilizacioacuten de las aulas

La creacioacuten de un sistema que evite de manera automaacutetica caer en errores como losmencionados NO ES TAREA TRIVIAL intentar resolver este problema involucra laelaboracioacuten de un ldquosistema inteligenterdquo capaz de tomar decisiones aprender inferirbasaacutendose en hechos generar nueva informacioacuten y a partir de ella nuevamente volver adecidir El sistema que se elabore debe tener la capacidad para deducir e inducir de unamanera combinada

Desventajas del sistema actual

La mayoriacutea de los problemas anteriores son ocasionados por alguno o varios de lossiguientes motivosbull Todo el proceso de caacutelculo y administracioacuten de los recursos es manualbull El proceso de elaboracioacuten coincide con el cierre de semestre actual y como las

personas responsables tambieacuten son catedraacuteticos deben combinar la generacioacuten dehorarios con las evaluaciones finales revisioacuten de proyectos y entrega decalificaciones de sus grupos a los alumnos

bull La elaboracioacuten de los horarios es un proceso que se lleva semanas de labor diariabull Requiere la atencioacuten total de los coordinadores durante todo el tiempo de

elaboracioacutenbull Al no tener la informacioacuten automatizada se tienen peacuterdidas de tiempo en la toma de

decisiones como por ejemplo en el preacutestamo de aulas no utilizadas o en la forma decompartir catedraacuteticos

bull Se tienen fuertes restricciones debido a los horarios de los catedraacuteticosbull Hay fuertes dificultades cuando se deben negociar cambios de horarios porque el

proceso implica mover asignaturas buscar aulas dejar paquetes de materias porsemestre etc

bull El estado de aacutenimo del coordinador influye en la elaboracioacuten de los horarios

13 Objetivo general

Generacioacuten de una solucioacuten aproximada del condensado de horarios para una escuela denivel superior que satisfaga las restricciones ocasionadas por los recursos involucradosmediante la elaboracioacuten de un sistema hiacutebrido (experto geneacutetico y loacutegico restrictivo)

Capiacutetulo 1 Introduccioacuten

14 Objetivos especiacuteficos

Se tiene el disentildeo e implementacioacuten de un sistema que

bull Proporciona una solucioacuten aproximada aceptable al problema de la generacioacuten dehorarios

bull Permite a los coordinadores delegar a la computadora la asignacioacuten de recursosbull Ahorra tiempo en la generacioacuten de los horariosbull Reduce el trabajo manualbull Agiliza la toma de decisionesbull Reduce el tiempo de elaboracioacuten de horariosbull Facilita la modificacioacuten de informacioacuten generadabull Aumenta la eficiencia en las negociaciones entre jefes y coordinadoresbull Lleva al Instituto Tecnoloacutegico de Zacatepec (ITZ) a la modernizacioacuten en este

proceso

15 Justificacioacuten del sistema

151 Justificacioacuten teoacuterica

La utilizacioacuten de la Inteligencia Artificial (IA) para la solucioacuten de problemas de la vidacotidiana ha sido una estrategia utilizada cuando los sistemas tradicionales decomputacioacuten no proveen mecanismos suficientes para garantizar una solucioacuten adecuadasu utilizacioacuten para la generacioacuten de horarios (creacioacuten de grupos asignacioacuten de horaasignacioacuten de aula determinacioacuten de catedraacutetico) presenta una alternativa ideal paracomprobarlo

152 Justificacioacuten metodoloacutegica

La utilizacioacuten de un grupo de Sistemas Expertos que realice la asignacioacuten de losrecursos para la generacioacuten de grupos y le proponga una materia determinada a unprofesor seguacuten el perfil acadeacutemico de ambos reuacutene las caracteriacutesticas necesarias paradar la solucioacuten elegante y efectiva al problema planteado anteriormente porque

bull Se requiere del conocimiento de un experto para plantear el funcionamiento delsistema

bull El conocimiento se alimentaraacute a una base de conocimientos que conste de variaspartes

bull Para la generacioacuten de grupos de una asignatura dada el sistema debe ldquorazonarrdquo paradeterminar cuantos de eacutestos se deben abrir para ofertarlos a los alumnos

Capiacutetulo 1 Introduccioacuten

bull En la asignacioacuten de nuevas materias a los catedraacuteticos el sistema debe ldquodeterminarrdquoquieacuten es el maacutes idoacuteneo para impartirla de acuerdo al perfil de ambos materia ymaestro

La Programacioacuten Loacutegica de Restricciones (PLR) es una de las teacutecnicas que maneja demanera natural informacioacuten sometida a ciertas restricciones y fue seleccionada paraseguir trabajando en la resolucioacuten del problema porque

bull Los horarios deben satisfacer ciertas restricciones como por ejemplo no se debengenerar mas grupos de los necesarios no puede haber dos materias con el mismogrupo no deben existir grupos del mismo paquete a la misma hora etc

bull Cada paquete de un semestre es un objeto que por siacute mismo posee ciertascualidades y restricciones por ejemplo no debe tener horas sin asignatura entre lahora inicial y final existen materias que se deben impartir de una hora diaria otrasdeben ser impartidas de 2 horas diarias etc

bull La solucioacuten presentada por la PLR inicia con datos aleatorios de un horario despueacutesse verifica si las restricciones se cumplen o no si se cumplen se guarda el dato si nose genera un nuevo dato aleatorio

Los Algoritmos Geneacuteticos utilizados aquiacute para asignar aula a los grupos cumplen con lametodologiacutea de la Computacioacuten Evolutiva porque

bull Se tienen datos iniciales de los grupos (materia-hora)bull Se genera una poblacioacuten inicial que son n versiones de un condensado de horarios

sin aulabull Esta poblacioacuten inicial es evaluada se seleccionan los condensados maacutes adecuados y

se eliminan las versiones menos adecuadasbull Se realizan cruzamientos mutaciones clonaciones y se crea la nueva generacioacuten de

horariosbull Se repite el proceso hasta llegar a una utilizacioacuten eficiente de las aulas

Por lo anterior se pueden observar las ventajas de utilizar un sistema inteligente sobreuno convencional para solucionar el problema planteado

Una vez definido el modelo para solucionar el problema de la asignacioacuten de horariospara las asignaturas aulas y catedraacuteticos de una institucioacuten de educacioacuten superior seraacutefaacutecil extrapolarlo para solucionar algunos problemas referentes a la planeacioacuten dehorarios de otro tipo de escuelas de nivel medio superior

153 Justificacioacuten praacutectica

La creacioacuten de un sistema que resuelva el problema de la elaboracioacuten de horarios ygenere automaacuteticamente la programacioacuten de grupos aulas y maestros sin violar las

Capiacutetulo 1 Introduccioacuten

restricciones fuertes minimizando las restricciones medias y suaves optimizando lautilizacioacuten de las aulas cumpliendo con las restricciones de los profesores asignandoprofesores adecuados para impartir las clases traeraacute como consecuencia condicionespara mejorar el proceso de ensentildeanza aprendizaje

16 Alcances y limitaciones

Alcances

El sistema generaraacute un espacio de soluciones finito que satisfaga las restriccionesfuertes medias y suaves optimizando el uso de los recursos disponibles se puede decirque el sistema optimizaraacute los recursos cuando los horarios generados tengan lascaracteriacutesticas mencionadas maacutes adelante

Esta tesis documenta la creacioacuten de un sistema basado en el conocimiento parasolucionar el problema de la generacioacuten de horarios en el Instituto Tecnoloacutegico deZacatepec que permite

bull Generar grupos suficientes para que todos los estudiantes se inscriban al menos conla carga miacutenima reglamentaria

bull Que los alumnos tengan horarios adecuados a sus necesidades y preferenciasbull Que todos los grupos tengan capacidad suficiente para todos los estudiantes que

deseen inscribirsebull Que los profesores impartan materias de acuerdo a su perfil profesionalbull Evitar los choques de grupos en aulas y laboratoriosbull Que todos los grupos tengan aula asignada desde el inicio del semestrebull La utilizacioacuten oacuteptima de las aulas y laboratoriosbull La correcta asignacioacuten de aulas y laboratorios a los cursosbull Realizar de manera automaacutetica la asignacioacuten de los recursosbull Determinar el nuacutemero de grupos que se deben abrirbull Llenar las aulas con grupos sin permitir choque de horariosbull Imprimir la lista de grupos ofertados para el semestre siguientebull Cuando exista el grupo de una materia sin maestro determinar cual es el mejor para

impartirla

Tener un Sistema terminado que contenga los siguientes moacutedulos

Sistema administrativo para control de horarios Sistema Experto para determinar la cantidad de grupos por abrir Sistema Experto para sugerir materias a un catedraacutetico Sistema Experto para seleccionar los mejores catedraacuteticos para impartir una

asignatura

Capiacutetulo 1 Introduccioacuten

Moacutedulo de Programacioacuten Loacutegica de Restricciones para generar los horarios a lospaquetes de materias por semestre

Moacutedulo de Algoritmo Geneacutetico para asignar aula a los grupos

Cada moacutedulo tendraacute

bull Interfaces de usuario amigablesbull Tiempos de ejecucioacuten raacutepidos (independientemente de la maacutequina objetivo)bull Reglas de inferencia para generar resultados (soacutelo los Sistemas Expertos)bull Buacutesquedas heuriacutesticas o aleatorias seguacuten el casobull Procesos para realizar induccioacuten y deduccioacuten (soacutelo los Sistemas Expertos)bull Manejo de incertidumbre (soacutelo los Sistemas Expertos)bull Un moacutedulo de explicaciones en lenguaje natural

Limitaciones

El sistema estaacute disentildeado para generar horarios de una escuela de nivel superior donde elcoordinador de cada carrera es el responsable de la generacioacuten de sus horarios controlarsus profesores impartir cierto nuacutemero de materias y utilizar cierta cantidad de aulas ylaboratorios

Trabaja exclusivamente en lenguaje espantildeol

Las reglas de la base de conocimiento tienen un formato predeterminado por unasintaxis definida para el sistema

El sistema estaacute elaborado para trabajar en microcomputadoras compatibles con IBM

No maneja los horarios individuales de los alumnos en el proceso de inscripcioacuten estaactividad deberaacute ser realizada por los sistemas del departamento de servicios escolares

Capiacutetulo 2 Marco teoacuterico

CAPIacuteTULO 2

MARCO TEOacuteRICO

21 El estado del arte

211 Antecedentes

El problema de la generacioacuten de horarios ha sido atacado de varias maneras a nivelmundial inclusive existe un grupo internacional que convoca al congreso llamadoPATATxx (Practice and Theory of Automated Timetabling) donde xx es el antildeo delcongreso en cuestioacuten

La ASAP (Automated scheduling optimization and planing group) es otro organismocuyo fin principal es conducir investigacioacuten en modelos heuriacutesticas y algoritmos para laproduccioacuten automaacutetica de soluciones de alta calidad a una gran variedad de problemasde planeacioacuten y optimizacioacuten del mundo real incluyendo elaboracioacuten de horarioslogiacutestica asignacioacuten de espacio y mantenimiento de inventarios

212 Algunos meacutetodos para resolver el Problema de laGeneracioacuten de Horarios

La generacioacuten de horarios acadeacutemicos ha sido acometida por muchos investigadoresbaacutesicamente dentro del aacuterea de la Investigacioacuten de Operaciones

2121 Investigacioacuten de Operaciones

El algoritmo para resolver problemas de asignacioacuten se denomina Huacutengaro ya que fuerondos matemaacuteticos Huacutengaros Koumlnig (1916) y Egervary (1931) los que aportaron lasteoriacuteas que sirven de base a este meacutetodo [Daellenbach 1987]

Este problema se presenta en diversos casos de toma de decisiones Los problemastiacutepicos de asignacioacuten implican asignar tareas a maacutequinas trabajadores a tareas yproyectos personal de ventas a territorios de ventas contratos a licitaciones horarios deaulas disponibles a horarios de maestros disponibles enfermos a camas disponibles delhospital cierto nuacutemero de empleados a cierta cantidad de puestos en una empresaaviones a destinos aeacutereos entre otros

Capiacutetulo 2 Marco teoacuterico

Una caracteriacutestica importante de los problemas de asignacioacuten es que se asigna untrabajador una tarea a una sola maacutequina proyectoEn particular se busca elconjunto de asignaciones que optimice el objetivo planteado tal como minimizar costosminimizar tiempo o maximizar utilidad

La formulacioacuten del problema general de asignacioacuten es

Sujeta a

Corresponde a un caso especial del problema del transporte en el cual las variables Xijsoacutelo pueden tomar el valor 0 oacute 1 tomar el valor 1 si el origen i se hace corresponder aldestino j y 0 en caso contrario

El Algoritmo Huacutengaro

Este algoritmo se usa para resolver problemas de minimizacioacuten ya que es maacutes eficazque el empleado para resolver el problema del transporte por el alto grado dedegeneracioacuten que pueden presentar los problemas de asignacioacuten Las fases para laaplicacioacuten del meacutetodo Huacutengaro son

Capiacutetulo 2 Marco teoacuterico

Paso 1 Encontrar primero el elemento maacutes pequentildeo en cada fila de la matriz de costosmm se debe construir una nueva matriz al restar de cada costo el costo miacutenimo de cadafila encontrar para esta nueva matriz el costo miacutenimo en cada columna A continuacioacutense debe construir una nueva matriz (denominada matriz de costos reducidos) al restar decada costo el costo miacutenimo de su columna

Paso 2 (En algunos pocos textos este paso se atribuye a Flood) Consiste en trazar elnuacutemero miacutenimo de liacuteneas (horizontales o verticales o ambas uacutenicamente de esasmaneras) que se requieren para cubrir todos los ceros en la matriz de costos reducidos sise necesitan m liacuteneas para cubrir todos los ceros se tiene una solucioacuten oacuteptima entre losceros cubiertos de la matriz Si se requieren menos de m liacuteneas para cubrir todos losceros se debe continuar con el paso 3 El nuacutemero de liacuteneas para cubrir los ceros es iguala la cantidad de asignaciones que hasta ese momento se pueden realizar

Paso 3 Encontrar el menor elemento diferente de cero (llamado k) en la matriz decostos reducidos que no estaacute cubierto por las liacuteneas dibujadas en el paso 2 acontinuacioacuten se debe restar k de cada elemento no cubierto de la matriz de costosreducidos y sumar k a cada elemento de la matriz de costos reducidos cubierto por dosliacuteneas (intersecciones) Por uacuteltimo se debe regresar al paso 2

Notas

1 Para resolver un problema de asignacioacuten en el cual la meta es maximizar la funcioacutenobjetivo se debe multiplicar la matriz de ganancias por menos uno (-1) y resolver elproblema como uno de minimizacioacuten

2 Si el nuacutemero de filas y de columnas en la matriz de costos son diferentes el problemade asignacioacuten estaacute desbalanceado El meacutetodo Huacutengaro puede proporcionar una solucioacutenincorrecta si el problema no estaacute balanceado debido a lo anterior se debe balancearprimero cualquier problema de asignacioacuten (antildeadiendo filas o columnas ficticias) antes deresolverlo mediante el meacutetodo Huacutengaro

3 En un problema grande puede resultar difiacutecil obtener el miacutenimo nuacutemero de filasnecesarias para cubrir todos los ceros en la matriz de costos actual Se puede demostrarque si se necesitan j liacuteneas para cubrir todos los ceros entonces se pueden asignarsolamente j trabajos a un costo cero en la matriz actual esto explica porqueacute terminacuando se necesitan m liacuteneas

Capiacutetulo 2 Marco teoacuterico

Tambieacuten han aparecido meacutetodos no convencionales que atacan el problema desdediferentes aacutengulos Los maacutes usuales son

Algoritmos Geneacuteticos Redes Neuronales Recocido Simulado Buacutesquedas Tabuacute Sistemas Expertos Programacioacuten Loacutegica de Restricciones Grafos Coloreados Operadores Recombinatorios Especializados

2122 Algoritmos Geneacuteticos

Los Algoritmos Geneacuteticos han sido utilizados satisfactoriamente para planear exaacutemenesy cursos en cierto nuacutemero de casos [Corne 1993] utiliza una buena aproximacioacutentradicional donde cada gene representa la hora en la cual se presentaraacute un examen ocurso Con operadores de cruzamiento y mutacioacuten como los mencionadosanteriormente agrega sustanciosos ahorros de tiempo al meacutetodo de Corne [Paechter1994] da una aproximacioacuten diferente donde el gene de cada examen no solo especificaldquoel cuandordquo sino que tambieacuten busca un nuevo horario del examen si despueacutes delcruzamiento el curso esta causando un conflicto Si el examen no puede ser programadoen alguna hora entonces no se agrega a la planeacioacuten con la finalidad de no tenerhorarios infactibles

[Burke1994] incorpora dominios de conocimiento especiacutefico para asegurar que ningunade las soluciones candidato es no factible En particular una representacioacuten directa seutilizada que incluye no soacutelo el cuaacutendo sino tambieacuten el doacutende un curso o examendeberaacuten ser tomados permitiendo al programador de horarios detener la ejecucioacuten delalgoritmo en cualquier punto y tener ya una serie de soluciones de buenos horariosfactibles

2123 Programacioacuten Loacutegica de Restricciones

Varios autores han presentado teacutecnicas de Programacioacuten Loacutegica de Restricciones pararesolver problemas de asignacioacuten de horarios pero eacuteste sigue siendo un nuevo enfoqueTambieacuten han aparecido algunos usando PLR para la planeacioacuten de clase-maestro[Yoshikawa 1994]

Kang y White presentaron una buena aproximacioacuten estaacutendar de PLR programandocursos sin permitir ningun conflicto [Kang y White 1994] Ellos usaron una teacutecnica dereversa equivalente al backtracking con lo cual cuando un curso no puede ser

Capiacutetulo 2 Marco teoacuterico

asignado uno similar es desasignado y el nuevo es colocado en su lugar Esto previeneuna buacutesqueda exhaustiva completa Esto tambieacuten introduce el concepto de undelimitador de tamantildeo que establece un maacuteximo en el tamantildeo del aula que puede usarun curso en particular Las restricciones son priorizadas en cinco diferentes categoriacuteasdonde la categoriacutea cinco debe ser liberada antes que la categoriacutea cuatro y asiacute con lasdemaacutes Este procedimiento fue utilizado para programar exitosamente los cursos de laUniversidad de Otawa

Tambieacuten se ha utilizado la teacutecnica de la Programacioacuten Loacutegica de Restricciones parahacer los horarios de una facultad utilizando una regla heuriacutestica para seleccionar quecurso asignar primero [Fahrion y Dollanski 1992]

2124 Redes Neuronales

De las distintas categoriacuteas de las Redes Neuronales Artificiales la maacutes apropiada pararesolver el problema es la familia de las Redes Neuronales de reaccioacuten basadas enneuronas multiestado con ecuaciones de teoriacutea de campos con significado controlandolas dinaacutemicas Las ecuaciones anteriores son usadas en lugar de los procedimientospara actualizacioacuten de demanda estocaacutesticos que han sido usados por otros esquemas paraevitar quedar atorados en circuitos locales miacutenimos [Carrasco 2004]

2125 Recocido Simulado

Recocido Simulado se refiere al uso de una teacutecnica de optimizacioacuten combinatoria odiscreta Divide el problema en grupos del mismo tiempo de clase los cuales sonespecificados por cada departamento acadeacutemico basados en la habilidad de losinstructores Funciona asiacute

1 El proceso asigna aulas procesando un grupo a la vez empezando con el primero2 El proceso continuacutea hasta que todos los grupos son procesados3 Cuando una solucioacuten es obtenida dividiendo el problema en conjuntos de horario

una mutacioacuten especial es generada con grupos traslapados Esto podriacutea generar unamala asignacioacuten de aula para minimizar esto se utiliza el siguiente paso

4 Los grupos son procesados basados en el nuacutemero de aulas este nuacutemero de aulas esoptimizado y se termina con las horas de clase con el miacutenimo de paquetes a esa hora

5 La implementacioacuten del programa genera una base de datos con la nueva asignacioacutende salones para el proacuteximo semestre [Abramson 1991]

2126 Operadores Recombinatorios Especializados

Los operadores de cruzamiento de los Algoritmos Geneacuteticos producen buenas

Capiacutetulo 2 Marco teoacuterico

combinaciones de genes para ser pasados entre los diferentes miembros de unapoblacioacuten En los Algoritmos Geneacuteticos estaacutendar es un procedimiento similar a escogerlos primeros n genes del primer padre y los uacuteltimos del segundo padre esteprocedimiento no es uacutetil en situaciones donde existen fuertes restricciones sobre laforma de los miembros de la poblacioacuten aquiacute un operador violaraacute esos requerimientosEl operador de recombinacioacuten heuriacutestico hiacutebrido trabaja asiacute

1 Los grupos no programados del periodo anterior son pasados al algoritmo2 Primero selecciona aquellos grupos programados en el periodo i en los padres 1 y 23 Los grupos extra son seleccionados de aquellos programados en el periodo i ya sea

del padre 1 o del padre 2 o de los dejados del periodo i ndash 14 Cualquiera de los grupos no programados es pasado al periodo i+15 Soacutelo los grupos que no crean conflicto con aquellos ya programados para este

periodo pueden ser seleccionados [Wilke 2002]

2127 El Sistema Experto Basado en Reglas

Los Sistemas Basados en Reglas proporcionan un buen punto de referencia para saberque tan buenos son otros meacutetodos en comparacioacuten a esta teacutecnica estaacutendar Varias deestas reglas son usadas para proporcionar sensibles elecciones para los movimientos enel algoritmo de Recocido Simulado en lugar de seleccionar cambios de manera aleatoriase ha usado este sistema como un preprocesador para generar una buena aproximacioacuteninicial y darla al Recocido Simulado

El Sistema Experto Basado en Reglas consiste en un nuacutemero de reglas (o heuriacutesticas) yrecursioacuten convencional para ayudar en la generacioacuten de asignacioacuten de clases Lasestructuras de datos o componentes del sistema son

bull Una matriz de distancias entre los departamentos acadeacutemicos y los edificios queseraacuten utilizados

bull Estructura de los datos de las materias para cada grupo programado en el campobull Estructura para las aulas (independientemente del tipo de aula) involucradas en el

procesobull Horarios para cada periodo de tiempo guardando cuales estaacuten disponibles y

cuales ya fueron ocupadasbull La estructura de los departamentosbull Las preferencias de los estudiantes indicando las clases requeridas

independientemente del semestre que sean las materias [Gervaacutes 1999]

Capiacutetulo 2 Marco teoacuterico

213 Observaciones realizadas a algunos paquetes generadores de horarios

Nombre DeMIStDescripcioacuten Puede describirse como un paquete que realiza bien las operaciones decasa (la propia universidad que lo creoacute) pero salioacute tan costoso como si hubierancomprado un paquete [Demist 2000]Proveedor DeMISt University

KnowTISEs un proyecto iniciado por la universidad de Leeds En la literatura aparece como unpaquete que es mejor para la generacioacuten de Grandes Horarios para una universidad quepara un departamento Utiliza el beneficio de gran cantidad de informacioacutencentralizada para la optimizacioacuten de recursos [Schedul 2000]Leeds University

STARSSTARS(Space Time and Resources Management) Igual que el anterior corre mejor enla elaboracioacuten de horarios de buen tamantildeo que en una aplicacioacuten departamentalDe Montfort University

Meeting maker Office TalkEs un generador de clases y acciones diarias es bueno cuando no es uacutetil el horario delos alumnos ya que proporciona uacutenicamente los espacios para las clases [Gervaacutes 1999]Varios proveedores

GP-UNTISEs un paquete australiano que funciona perfectamente para los requerimientos de lasescuelas secundariasTimetabling Services UK

Syllabus PlusEs una buena opcioacuten para uso departamental cumple los requerimientos de unauniversidad para la generacioacuten de horarios no trabaja a nivel de estudiantes pero si lohace con grupos de ellos no es factible para la generacioacuten de Grandes HorariosScientia LTD

Facility TimetablerEs una buena opcioacuten para uso departamental y para Grandes Horarios tiene interfaz conlos sistemas de alumnos y permite la creacioacuten de horarios individuales permite el uso

Capiacutetulo 2 Marco teoacuterico

centralizado de las aulas para una buena optimizacioacutenFacility Systems

Mimosa for WindowsEs un software general de planificacioacuten de la ensentildeanza y de programacioacuten de horariosLa aplicacioacuten utiliza todas las propiedades de Windows eficientemente es raacutepida tienegran capacidad y lo mas importante es tan flexible que puede aplicarse en todo el tipode escuelas desde la escuela primaria a las universidades desde las escuelasvocacionales a las academias militares

Se podriacutea decir que este producto cubririacutea todas las necesidades de la institucioacuten perohan existido algunos inconvenientes ya que no cubre con las necesidades deldepartamento tan solo da ayuda al usuario para que pueda generar sus horarios ademaacutesel tener tantos botones en pantalla (200) podriacutean confundir al usuario y realizar horarioserroacuteneos y no se resolveriacutea el problema [Nielsoft 2000]Mimosa Software Oy Finlandia

GestHor BSPEs un producto informaacutetico para resolver problemas de horarios escolares en escuelasbaacutesicas escuelas secundarias y escuelas profesionales

Toacutemese en cuenta que la mayoriacutea de los sistemas mencionados se enfoca solo a laasignacioacuten aula ndash materia y no abarca lo que es asignacioacuten materia ndash profesor

22 Los horarios

Existe mucha literatura referente a los horarios con una gran variedad de subtiacutetulos ydiferentes problemas Una gran variedad de algoritmos han sido propuestos empleandometodologiacuteas y heuriacutesticas de buacutesqueda produciendo horarios completos o soacuteloayudando durante el proceso Una de las grandes preguntas para la elaboracioacuten dehorarios es que si eacutestos pueden ser generales es decir iquestse puede encontrar un algoritmoo meacutetodo suficientemente general que produzca buenos horarios para todos losproblemas y para todas las restricciones La alternativa desde luego es continuardesarrollando algoritmos especializados aislados cada vez que un problema de horariosaparece

Al trabajar con una solucioacuten para el problema de los horarios se deben contestar lassiguientes preguntas iquestTodas las escuelas de nivel superior elaboran los horarios de lamisma manera iquestSon grandes o pequentildeas las diferencias en la forma de elaborar loshorarios iquestQueacute tan necesaria es la ayuda de la computadora iquestSoacutelo se requiere unpaquete general para la elaboracioacuten de los horarios iquestQueacute funcionalidad debe tener

Capiacutetulo 2 Marco teoacuterico

dicho paquete iquestQueacute tan grande y complejo es el problema de elaboracioacuten de horariosiquestQueacute propiedades debe poseer un horario aceptable para que una institucioacuten lo use

Se han realizado algunas encuestas para conocer si las escuelas de nivel superior tienensistemas computarizados para la elaboracioacuten de horarios si no los tienen si lonecesitaban y queacute caracteriacutesticas deberiacutea poseer El estudio concluyoacute que existe una grandemanda para tal sistema que se requiere un alto grado de asistencia automatizada yque la mayoriacutea de los elaboradores de horarios no estaban muy contentos con sussistemas actuales [Comm y Mathaisel 1988]

[Dowsland y Lim 1982] consideraron el problema de la elaboracioacuten de horarios peroproporcionaron alternativas en la encuesta de la utilidad de sistemas automatizados[Junginger 1986] establece que ldquoAunque los horarios producidos requierenmodificacioacuten las escuelas estaacuten contentas con los resultados El tiempo ahorrado fueconsiderable arriba del 75rdquo Dowsland por otro lado concluye que ldquoEs muy difiacuteciljuzgar el eacutexito actual de los paquetes para la elaboracioacuten de horarios pero el uso muylimitado de ellos sugiere que sus ventajas son limitadasrdquo Claramente ninguacuten disentildeadorde sistemas puede garantizar la idea de que su producto seraacute bienvenido con los brazosabiertos

[Pendlebury 1986] encuestoacute a las universidades politeacutecnicas britaacutenicas con respecto ala elaboracioacuten de horarios de cursos Doce de las treinta que contestaron la encuestautilizan elaboracioacuten de horarios por computadora (siete a gran escala y cuatro lo hacenen pequentildea escala) Es interesante notar que Pendlebury encontroacute que la mayoriacutea de loscursos se basan en clases que son muy independientes unas de otras y en la mayoriacutea delas instituciones encuestadas los departamentos individuales son responsables deproducir sus propios horarios

221 El problema de la elaboracioacuten de horarios

La elaboracioacuten de horarios es el acto de programar cursos a periacuteodos de tiempo asignarun aula a esos cursos y asignar un catedraacutetico a dicho curso

A menudo se hacen afirmaciones acerca de la naturaleza del problema que puedenpermitir encontrar una solucioacuten maacutes eficientemente Sin embargo cuando se trata deconstruir un sistema general se estaacute limitado a que las afirmaciones son el miacutenimocomuacuten denominador de todos los posibles escenarios

Una informacioacuten impliacutecita que ha sido hecha a menudo es la independencia entreunidades acadeacutemicas separadas Algunas universidades programan preguntando a susdepartamentos los horarios de sus propios cursos Una unioacuten central de dichos horarioses entonces utilizada para asegurar que todas las restricciones relevantes son cumplidasEn muchos casos esta es la forma normal en que es producido el horario de los cursos

Capiacutetulo 2 Marco teoacuterico

aunque algunos departamentos desarrollan su propio software para la programacioacuten decursos

En varias universidades los alumnos pueden tomar algunos de sus cursos endepartamentos diferentes al suyo Obviamente la independencia no debe ser asumidageneralmente debido a que puede haber diferencia en la programacioacuten de los cursos decada departamento En el Tecnoloacutegico de Zacatepec por ejemplo la probabilidadpromedio de que un curso tenga conflicto con uno de otro departamento es 1650mientras que la probabilidad de que dos cursos del mismo departamento tengan conflictoes 2250 notaacutendose una gran diferencia en el resultado

Dificultades encontradas por los responsables de la generacioacuten de horarios

Algunas dificultades experimentadas por los departamentos y facultades sonmencionadas aquiacute

bull Los programas acadeacutemicos se hacen cada vez maacutes flexibles (los estudiantesseleccionan queacute asignaturas tomar cuaacutendo doacutende y con quieacuten)

bull Algunos departamentos tienen asignaturas para ofrecer pero no tienen muchosalumnos

bull Los espacios para ofrecer las materias son cada vez menos y el problema se agravacuando los alumnos no quieren asistir en las tardes o los saacutebados

bull El staff de profesores no siempre estaacute disponible para impartir clases por muacuteltiplesrazones

bull Los alumnos pueden solicitar los grupos del proacuteximo semestre desde antes de queinicie pero al llegar el momento de inscribirse no lo hacen

bull Los departamentos estaacuten ansiosos por ofrecer una gran variedad de grupos teniendolos recursos pero esto puede ocasionar problemas

bull Existe una gran variedad de reglas al momento de asignar las aulas (pertenencia alas carreras prioridades de profesores etc)

bull Como no hay un costo asociado a la utilizacioacuten de un aula y no hay sanciones porreservarla y no utilizarla los departamentos acadeacutemicos no tienen un buen motivopara hacer una correcta utilizacioacuten del espacio

bull La falta de recursos ocasiona el mayor de los problemas porque obliga a laoptimizacioacuten en la planeacioacuten

Cursos y estudiantes

El problema de la elaboracioacuten de horarios estaacute relacionado esencialmente con el nuacutemerode eventos que requieren ser programados en este caso los cursos para los estudiantesClaramente el tamantildeo del problema variacutea entre los diferentes centros de estudio desdepequentildeos problemas con alrededor de 50 a 100 cursos hasta los 500 o 1000 cursos que

Capiacutetulo 2 Marco teoacuterico

programar Esta variacioacuten en el tamantildeo afectaraacute el tiempo requerido para resolver elproblema Un problema pequentildeo puede ser resuelto casi de manera oacuteptima mientrasque en uno grande se deben usar buacutesquedas heuriacutesticas u otras formas de acotar elespacio de buacutesqueda de una solucioacuten en un periodo de tiempo razonable

Se debe esperar que el nuacutemero de cursos y el nuacutemero de alumnos esteacuten correlacionadosEl nuacutemero de cursos ofrecidos y desde luego programados debe ser calculado porextrapolacioacuten del promedio de 5 o 6 cursos por alumno y con cupo promedio de 30alumnos por curso obviamente algunos alumnos se inscribiraacuten en 7 u 8 cursos porsemestre mientras que los cursos tendraacuten inscritos entre 20 y 40 alumnos Losalumnos dependiendo del semestre en que se encuentran inscritos deben matricularse aciertos cursos especiacuteficos para ese semestre dichos cursos deben programarse de maneraque los alumnos tengan la menor cantidad de tiempo entre el primer y el uacuteltimo cursodel diacutea permitieacutendoles con esto realizar actividades complementarias

En el Tecnoloacutegico de Zacatepec para una carrera con 900 alumnos se requieren ofertaraproximadamente entre 140 y 160 cursos ademaacutes los estudiantes pueden matricularse encursos ofrecidos por otros departamentos (esto ampliacutea el rango de posibilidades para losalumnos)

Los cursos y los departamentos

El promedio de los cursos ofrecidos por cada departamento variacutea considerablementeentre las diferentes escuelas de nivel superior La razoacuten de esta variabilidad puede servista como un indicador de la naturaleza de la complejidad de la planeacioacuten de horarios

Cada departamento ofrece cursos a los estudiantes de las carreras a las que da soportedirecto pero ademaacutes debe ofrecer cursos para todas las otras carreras de la institucioacutenque lo requieran esto es si un departamento X solicita la apertura de determinadonuacutemero de cursos a un departamento Y el departamento Y debe ofertar los cursossolicitados por X para los alumnos matriculados en el departamento X aunado a estoalgunos cursos ofertados por el departamento Y tienen compatibilidad con cursosofrecidos por X y por lo tanto los estudiantes de Y y X pueden ingresar indistintamenteen cualquiera de los cursos

Los cursos los semestres y las horas

Una de las afirmaciones que se pueden hacer en las instituciones de nivel superior es quelos cursos generalmente inician durante cierto periodo de tiempo y pueden tenerduracioacuten semestral (la gran mayoriacutea) trimestral y sin fechas predeterminadas (algunosposgrados por ejemplo) En general los cursos empiezan a las 700 AM y terminandependiendo del lugar a las 2000 o a las 2100 horas de lunes a saacutebado Aunque estopermite tener un amplio margen de horas para programar los cursos esto hace tambieacuten

Capiacutetulo 2 Marco teoacuterico

aun maacutes difiacutecil la elaboracioacuten de los horarios porque aumenta el rango de posiblescombinaciones donde programar cursos

Los cursos se pueden programar en periodos de tiempo muy variados aunque la mayoriacuteade los programadores de horarios siguen los siguientes patrones

bull Curso diario de 1 horabull Curso de dos horas en diacuteas saltados (lunes y mieacutercoles jueves y viernes

mieacutercoles y viernes)bull Curso de dos horas diarias 3 diacuteas por semana (lunes mieacutercoles y viernes)

(lunes martes y jueves) o (martes jueves y viernes)bull Cursos de cuatro horas en un solo diacutea por semanabull En el peor de los casos se programan cursos con la combinacioacuten de algunos

de los anteriores

Dependiendo del curso algunos tienen duracioacuten de cuatro horas teoacutericas semanales otroscombinan cuatro horas de teoriacutea y dos de praacutectica y algunos excepcionalmente sonprogramados con cuatro horas de praacutectica y dos de teoriacutea Las horas de praacutecticageneralmente se realizan en laboratorios o praacutecticas de campo agregando esto un nuevoparaacutemetro para la complejidad de la elaboracioacuten de horarios

Los cursos y las aulas

Las aulas son el espacio fiacutesico donde se impartiraacuten los cursos pueden ser salones declase laboratorios salones de exposicioacuten aulas para aplicacioacuten de exaacutemenes aulas paraactividades deportivas musicales o recreativas cada aula tiene capacidad para quecierto nuacutemero definido de estudiantes reciba sin problema unidades de ensentildeanzaaprendizaje

En una encuesta realizada por la Universidad de Nottingham [Burke y Elliman 1998] sedefinioacute que la programacioacuten de los cursos en las aulas es uno de los mayores problemasa los que se enfrentan los responsables de la elaboracioacuten de horarios Esto proviene dedos problemas mayores El primer problema es la escasez de aulas disponibles ya queen algunas de las escuelas de nivel superior el crecimiento de la poblacioacuten estudiantil hasido mayor que el crecimiento del nuacutemero de aulas disponibles para la ensentildeanza Elsegundo problema ocurre cuando se programa un curso en mas de un aula o saloacuten declase

La ocupacioacuten de las aulas es variable de acuerdo al departamento para el que seaasignada algunos prefieren utilizarlas al maacuteximo en el turno matutino otros en el turnovespertino tienen ocupacioacuten total algunos las utilizan exhaustivamente de lunes ajueves unos departamentos las llenan los viernes y saacutebados y otros tienen que utilizarlastodo el diacutea de lunes a saacutebado inclusive solicitan prestadas a los otros departamentosaquellos espacios que no son utilizados en alguacuten diacutea y hora a la semana

Capiacutetulo 2 Marco teoacuterico

Para el Tecnoloacutegico de Zacatepec el recurso llamado las aulas debe ser optimizado enuna buena planeacioacuten de horarios esto es deben ser utilizadas al maacuteximo todos los diacuteasde la semana desde las 700 hasta las 2100 de lunes viernes y los saacutebados hasta las1500 horas

Tipos de cursos

Una de las cosas a tomarse en cuenta durante la elaboracioacuten de los horarios es el tipo decurso a programar

bull Teoacutericos como los cursos matemaacuteticos cursos de administracioacuten etcbull Teoacuterico praacutecticos como los cursos de electroacutenica sistemas digitalesbull Lenguajes de programacioacutenbull Con praacutecticas de campo que deben salir al aire librebull Con praacutecticas de quiacutemica

Otra consideracioacuten es el tipo de aula requerida por los diferentes tipos de cursos

bull cursos que requieren medios audiovisuales simples (pizarroacuten y gis)bull algunos cursos adicionalmente requieren proyectores de acetatos y salas

obscurecidasbull cursos que requieren equipo de coacutemputo equipo de proyeccioacuten equipo de video y

televisioacuten para el desarrollo de la caacutetedra etcbull cursos que requieren laboratorios con computadorasbull que requieren equipos de medicioacuten electroacutenica generadores de sentildeales enchufes

eleacutectricos ybull cursos que requieren mesas tomas eleacutectricas y equipos para conexioacuten de redes

Los cursos y los catedraacuteticos

Definitivamente eacutesta es una de las principales consideraciones que tienen en cuenta losprogramadores de horarios la asignacioacuten de los cursos a los catedraacuteticos porque es unproceso que no puede realizarse de manera aleatoria es un proceso delicado porque deesto depende la efectividad del proceso de ensentildeanzandashaprendizaje

Los catedraacuteticos tienen caracteriacutesticas individuales que los hacen uacutenicosindependientemente de la profesioacuten que hayan estudiado Tienen intereses diferentesmeacutetodos diferentes aacutereas de preferencia diferentes perfil profesiograacutefico distinto tienenactividades extralaborales variadas asiacute que

iquestCoacutemo asignarle un curso a un catedraacutetico para que logre un oacuteptimo resultado en el

Capiacutetulo 2 Marco teoacuterico

proceso de ensentildeanza-aprendizajeiquestCoacutemo garantizar que el curso asignado a un profesor seraacute bien impartidoiquestCoacutemo saber que el profesor estaacute capacitado para ofrecer un buen cursoiquestCuaacuteles son los requisitos que debe reunir un profesor para impartir cierto cursoiquestDependen soacutelo de la profesioacuten los cursos que puede impartiriquestCoacutemo conocer de antemano las preferencias de los profesoresiquestEl nivel de estudio de los profesores les capacita para impartir cualquier cursoiquestDeben los profesores ser guiados a una especialidad por los programadores dehorarios

Las respuestas a todas estas preguntas incorporadas en un sistema generador de horariosiquestpermitiraacuten hacer una buena asignacioacuten de catedraacutetico a un curso

El condensado de horarios

Es un documento emitido cada semestre por los responsables de la elaboracioacuten de loshorarios que contiene la informacioacuten requerida por los alumnos jefes de departamento ycatedraacuteticos para conocer la distribucioacuten de las materias los grupos las aulas las horasy los catedraacuteticos que impartiraacuten los cursos en otras palabras el condensado de materiases el documento final de los HORARIOS que marcaraacute las acciones de todos el semestreactual

23 El proceso de la elaboracioacuten de horarios

El proceso de la elaboracioacuten de horarios abarca cada accioacuten que es requerida para crearel horario final completo y correcto de los datos iniciales Esto incluye recibir validary dar formato a los datos generar la versioacuten inicial hacer las correcciones y luegoproducir el condensado final de horarios El proceso de la generacioacuten de horariosabarca

bull la generacioacuten del dato de cuantos cursos se van a ofertarbull asignacioacuten de horario a esos cursosbull proporcionar aulas a los cursosbull designar profesores para los cursos definidos

la parte difiacutecil de esto es generar los horarios con los recursos disponibles en cadadepartamento cada etapa tiene sus restricciones (fuertes y suaves) los recursos no soninagotablesEl uso de la computadora

En una encuesta realizada por la Universidad de Nottingham [Burke y Elliman 1998]referente a la forma de elaborar horarios en las demaacutes universidades se encontroacute que un

Capiacutetulo 2 Marco teoacuterico

58 de ellas utilizan la computadora en alguna etapa del proceso de eacutestas el 21 tienela facilidad de realizar la programacioacuten aunque generalmente requieren captura manualde informacioacuten y conocimientos previos del problema particular del proceso El 1tienen paquetes comerciales y el 14 tienen paquetes hechos en casa para generarhorarios y el 2 aseguran que estaacuten desarrollando o comprando un paquete

Dado el tamantildeo de los horarios de dichas universidades es sorprendente que muchas notengan alguna forma de automatizacioacuten Esto se debe en la mayoriacutea de los casos a quelos horarios no cambian significativamente de un antildeo a otro Sin embargo de lasuniversidades que no programan horarios por computadora la mitad usa el horario delantildeo pasado y la otra mitad empiezan desde cero cada vez Cuando no se usa el horariodel antildeo pasado generalmente toma 4 semanas elaborar uno nuevo En la mayoriacutea de loscasos donde se usa la computadora generalmente no se toma en cuenta el horario delantildeo anterior

Causas de cambio de los horarios antildeo tras antildeo

Para que un horario pueda ser usado antildeo tras antildeo debe ser lo suficientemente robustopara que los cambios que ocurran en los datos de entrada produzcan soacutelo una pequentildeaalteracioacuten o modificacioacuten en el condensado final de horarios El uso del condensado delantildeo pasado depende en la cantidad de cambios que deben hacerse y esto a su vezdepende de cuanto cambie la cantidad de grupos que deben ofertarse para cadaasignatura y esto depende de la cantidad de alumnos que pueden cursar una asignaturaahora bien la cantidad de alumnos estaacute en funcioacuten de los iacutendices de aprobacioacuten yreprobacioacuten del periodo de los alumnos que por alguna razoacuten no cursaron unaasignatura y de la cantidad de grupos ofertados el periodo pasado

Si cambia la cantidad de horas frente a grupo asignada a un departamento entoncescambiaraacute el condensado de horarios con respecto al del antildeo pasado porque eso afectadirectamente en la cantidad de cursos que podraacute ofertarse este periodo este es uno de losrecursos maacutes variables que influyen para hacer cambios en los condensados antildeo trasantildeo

La redistribucioacuten de aulas y laboratorios (que no se realiza a menudo) llega tambieacuten ainfluir en los cambios

El cambio de horario matutino a vespertino (o viceversa) solicitado por un catedraacuteticoque es el especialista en impartir cierto curso ocasiona los cambios del condensado dehorarios del antildeo anterior al nuevo

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

CAPIacuteTULO 3

TEacuteCNICAS DE INTELIGENCIA ARTIFICIAL UTILIZADASPARA LA GENERACIOacuteN DE HORARIOS

31 Sistemas Expertos (SE)Bajo el teacutermino de Sistemas Expertos se entiende un nuevo tipo de software que imita elcomportamiento de un experto humano en la solucioacuten de un problema Un SE puedealmacenar conocimientos de expertos para un campo determinado y solucionar unproblema mediante razonamiento loacutegico de conclusiones

Los Sistemas Expertos son sistemas que buscan modelar el conocimiento yprocedimientos usados por un experto humano para resolver un problemadeterminado[Saacutenchez 1999]

iquestUn Sistema Experto utiliza teacutecnicas de la Inteligencia Artificial (IA)

Los Sistemas Expertos son uno de los puntos que componen las investigaciones en elcampo de la IA Un sistema de computadoras que trabaje con teacutecnicas de IA deberaacuteestar en situacioacuten de combinar informacioacuten de forma ldquointeligenterdquo alcanzarconclusiones y justificarlas (al igual que el resultado final) Los Sistemas Expertos sonuna expresioacuten de los sistemas basados en el conocimiento Con la aplicacioacuten de teacutecnicasde Inteligencia Artificial finaliza la transicioacuten del procesamiento de datos alprocesamiento de conocimientos

Un Sistema Experto es un sistema informaacutetico que simula el proceso de aprendizaje dememorizacioacuten de razonamiento de comunicacioacuten y de accioacuten de un experto humano enuna determinada rama o dominio Estas caracteriacutesticas le permiten almacenar datos yconocimiento sacar conclusiones loacutegicas tomar decisiones aprender de la experiencia ylos datos existentes comunicarse con humanos explicar el porqueacute de las decisionestomadas y realizar acciones como consecuencia de todo lo anterior

La incorporacioacuten dentro de un sistema de computadoras de un componente basado enel conocimiento correspondiente a una habilidad experta de tal forma que el sistemapueda ofrecer asesoramiento inteligente o tomar una decisioacuten inteligente sobre unafuncioacuten del proceso Una caracteriacutestica adicional deseable que muchos consideranfundamental es la capacidad del sistema si se le solicita de justificar su propia liacutenea derazonamiento de un modo directamente inteligible para el interrogador El estiloadoptado para alcanzar estas caracteriacutesticas es la programacioacuten basada en reglas[Waterman 1986]

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

311 Funcioacuten de un Sistema Experto

La funcioacuten de un Sistema Experto es aportar soluciones a problemas de un dominioespeciacutefico imitando la forma de razonamiento de los seres humanos es decir el SistemaExperto debe ser capaz de mostrar soluciones inteligentes [Giarratamo 1998]

Acceder a los conocimientos adquiridos por experiencia es lo maacutes difiacutecil ya que losexpertos al igual que otras personas apenas los reconocen como tales Son buscadoscon mucho esfuerzo y cuidado siendo descubiertos de uno en uno poco a poco

Ventajas del Sistema Experto

Experto Humano Experto ArtificialMortal PermanenteDifiacutecil de documentar Faacutecil de documentarDifiacutecil de transferir Faacutecil de transferirImpredecible ConsistenteMaacutes caro Menos caro

Ventajas del Experto Humano

Experto Humano Experto ArtificialCreativo No creativoAdaptable Requiere mantenimientoExperiencia sensorial Entrada simboacutelicaConocimiento de sentido comuacuten Conocimiento teacutecnico

312 Arquitectura de Sistemas Expertos [Gines 1986] [Giarratamo 1998]

La arquitectura general de un SE (Fig 31) estaacute compuesta fundamentalmente de

bull Base de Conocimiento Representa el conocimiento adquirido del expertohumano incluyendo experiencia sentido comuacuten e intuicioacuten

bull Motor de Inferencia Decide que se debe aplicar que se debe hacer resuelveconflictos nuevos hace uso de la base del conocimiento Proporcionamecanismos de razonamiento buacutesqueda aprendizaje etc

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

bull Interfaz Usuario Facilita la comunicacioacuten entre el Sistema Experto y el usuarioque realiza las consultas

bull Subsistema de Adquisicioacuten Mejor conocido como la Interfaz de Expertopermite ingresar el conocimiento a la Base de Conocimientos por parte delhumano experto en alguacuten dominio de conocimiento

bull Subsistema de explicaciones Permite dar a conocer los resultados obtenidospor el Sistema Experto

313 La base de conocimiento

El enfoque maacutes comuacuten para representar el dominio del conocimiento que se requierepara un SE son las reglas de produccioacuten Estas pueden ser referidas como reglasldquosituacioacuten-accioacutenrdquo o ldquoif-thenrdquo De esta forma con frecuencia una base deconocimientos estaacute fraguada principalmente de reglas las cuales son invocadas por uncasamiento de patrones con las particularidades de las tareas circunstanciales que vanapareciendo en la base de hechosLas reglas en una base de conocimientos representan el dominio de hechos y laheuriacutestica de un buen juicio de acciones a tomar cuando uno llega a situacionesespeciacuteficas La fuerza de un SE yace en el conocimiento especiacutefico del dominio delproblema Casi todos los sistemas existentes basados en reglas contienen cientos o milesde ellas y generalmente se obtienen de entrevistas con expertos durante un tiempo largoEn cualquier SE las reglas se conectan una a otra por ligas de asociacioacuten para formar

Base de

Motor de

Subsistema deadquisicioacuten

del

Subsistemade

explicacione

Interfazde

usuario

Ingeniero delconocimiento y experto Usuario

Base de hechos

Figura 31 Arquitectura de un Sistema Experto

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

redes de reglas Una vez que han sido ensambladas tales redes entonces se tiene unarepresentacioacuten de un cuerpo de conocimientos que es sustancial

Generalmente un experto tiene muchas reglas de criterio empiacutericas por lo que el soportesuele ser incompleto para la evidencia que se dispone En tales casos una teacutecnica es la devincular valores numeacutericos a cada regla para indicar el grado de certidumbre que eacutestatiene En la operacioacuten de SE los valores de certidumbre se combinan unos a otros atraveacutes de la red considerando tambieacuten la certidumbre de los datos de entrada delproblema para llegar finalmente a un valor de certidumbre de la solucioacuten final

314 El motor de inferencias

El sistema experto modela el proceso de razonamiento humano con un moacutedulo conocidocomo el motor de inferencia Dicho motor de inferencia trabaja con la informacioacutencontenida en la base de conocimientos y la base de hechos para deducir nuevos hechosContrasta los hechos particulares de la base de hechos con el conocimiento contenido enla base de conocimientos para obtener conclusiones acerca del problemaEl modelo de problema - solucioacuten y sus meacutetodos organizan y controlan las etapas que sevan tomando para la resolucioacuten de problemas Un modelo muy poderoso y comuacuten es elde encadenar las reglas `` if-then-else con el fin de formar alguna liacutenea derazonamiento Si el encadenamiento se inicia a partir de un conjunto de condiciones y semueve hacia alguna conclusioacuten el meacutetodo se llama encadenamiento hacia adelante y ensu caso contrario el encadenamiento es hacia atraacutes

Un problema de encadenamiento hacia adelante sin una apropiada heuriacutestica de podaderivaraacute muchas soluciones de las cuales no todas son necesarias En el caso deencadenamiento hacia atraacutes es necesario tambieacuten trabajar con una heuriacutestica apropiadacon la finalidad de poder manejar submetas conjuntivas En general para atacar elproblema de conjuncioacuten es necesario encontrar un caso en donde todas las submetasinteractuantes se satisfagan Pero con frecuencia una buacutesqueda de tal naturaleza nos dauna explosioacuten combinatoria de posibilidades Es por esta razoacuten que el dominioapropiado de la heuriacutestica y su esquema inferencial deberaacuten ser encontrados para cadatipo de problemas para que de esta manera se tenga un SE eficaz y eficiente

315 iquestPor queacute utilizar un Sistema Experto [Pluss 1999] [Sanchez 1999]

1 Con la ayuda de un Sistema Experto personas con poca experiencia pueden resolverproblemas que requieren un conocimiento formal especializado

2 Los Sistemas Expertos pueden obtener conclusiones y resolver problemas de formamaacutes raacutepida que los expertos humanos

3 Los Sistemas Expertos razonan pero basaacutendose en un conocimiento adquirido y notienen sitio para la subjetividad

Capiacutetulo 2 Marco teoacuterico

4 El uso de Sistemas Expertos es especialmente recomendado en las siguientessituaciones

bull Cuando los expertos humanos en una determinada materia son escasos

bull En situaciones complejas donde la subjetividad humana puede llevar aconclusiones erroacuteneas

bull Cuando es muy elevado el volumen de datos que ha de considerarse paraobtener una conclusioacuten

316 Construccioacuten de prototipos [Turban 1995]

En el desarrollo de Sistemas Expertos se plantean dos importantes riesgos

1- No existen implementaciones similares que puedan servir de orientacioacuten al encargadodel desarrollo en la casi totalidad de los casos

2- En muchos puntos los requisitos necesarios estaacuten esbozados con muy poca precisioacuten

El disentildeo y la especificacioacuten requieren una temprana determinacioacuten de la interfaz delsoftware y de la funcionalidad de los componentes En el desarrollo de SistemasExpertos deben alterarse a menudo durante y tambieacuten despueacutes de su implementacioacuten yaque los requisitos se han ido configurando y han obtenido mayor precisioacuten o porque seha descubierto que deben iniciarse otras viacuteas de solucioacuten Durante el desarrollo resultamaacutes apropiado empezar con implementaciones tipo test para encontrar el camino haciauna solucioacuten definitiva y para hacerlas coincidir con las necesidades del usuario

32 Algoritmos Geneacuteticos

321 Antecedentes [Medina 2004] [Goldberg 1989] [Davis 1991]

El Algoritmo Geneacutetico es una teacutecnica de buacutesqueda basada en la teoriacutea de la evolucioacutende Darwin que ha cobrado tremenda popularidad en todo el mundo durante los uacuteltimosantildeos

Esta teacutecnica se basa en los mecanismos de seleccioacuten que utiliza la naturaleza de acuerdoa los cuales los individuos maacutes aptos de una poblacioacuten son los que sobreviven al

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

adaptarse maacutes faacutecilmente a los cambios que se producen en su entorno Hoy en diacutea sesabe que estos cambios se efectuacutean en los genes de un individuo (unidad baacutesica decodificacioacuten de cada uno de los atributos de un ser vivo) y que sus atributos maacutesdeseables se transmiten a sus descendientes cuando eacuteste se reproduce sexualmente

En 1859 Darwin publica su libro laquoEl origen de las especiesraquo El libro causoacute una granpoleacutemica en el mundo cientiacutefico por las revolucionarias teoriacuteas en eacutel contenidas que lasespecies evolucionan acorde al medio para adaptarse a eacuteste Con ello el universopasaba de ser una creacioacuten de Dios estaacutetica y perfecta desde su inicio a un conjunto deindividuos en constante competicioacuten y evolucioacuten para poder perpetuar su especie en eltiempo La existencia de una especie pasa asiacute a ser algo dinaacutemico las especies se creanevolucionan y desaparecen si no se adaptan Para cada especie animal la naturalezaproponiacutea un crudo filtro soacutelo los mejores los maacutes aptos los que mejor se adapten almedio conseguiacutean sobrevivir lo suficiente para llegar a la madurez y encontrar unapareja para perpetuar sus aptitudes que le haciacutean maacutes apto

La informaacutetica ve aquiacute un claro proceso de optimizacioacuten Se toman los individuos mejoradaptados (mejores soluciones temporales) se cruzan (se mezclan ) generando nuevosindividuos (nuevas soluciones) que contendraacuten parte del coacutedigo geneacutetico (informacioacuten)de sus dos antecesores y por lo tanto aunque el nuevo individuo no tenga que estarforzosamente mejor adaptado de hecho puede que ni la probabilidad de que el nuevoindividuo generado esteacute mejor adaptado que los padres sea alta el promedio de laadaptacioacuten de toda la poblacioacuten si mejora ya que tienden a perpetuarse y extenderse lasmejores caracteriacutesticas y a extinguirse las poco beneficiosas o perjudiciales En losAlgoritmos Geneacuteticos se crea una nueva abstraccioacuten -la poblacioacuten- cuya funcioacuten decoste mejoraraacute globalmente por lo que puede que se encuentre alguacuten individuo conmejores caracteriacutesticas

Un investigador de la Universidad de Michigan llamado John Holland era consciente dela importancia de la seleccioacuten natural y a fines de los antildeos 60 desarrolloacute una teacutecnica quepermitioacute incorporarla a un programa Su objetivo era lograr que las computadorasaprendieran por siacute mismas A la teacutecnica que inventoacute Holland se le llamoacute originalmentePlanes Reproductivos pero se hizo popular bajo el nombre Algoritmo Geneacutetico trasla publicacioacuten de su libro en 1975

En esa universidad Holland impartiacutea un curso titulado Teoriacutea de sistemas adaptativosDentro de este curso y con una participacioacuten activa por parte de sus estudiantes fuedonde se crearon las ideas que maacutes tarde se convertiriacutean en los Algoritmos GeneacuteticosLos objetivos de su investigacioacuten fueron dos

Imitar los procesos adaptativos de los sistemas naturales y Disentildear sistemas artificiales (normalmente programas) que retengan los mecanismos

importantes de los sistemas naturales

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

Unos 15 antildeos maacutes adelante David Goldberg actual delfiacuten de los Algoritmos Geneacuteticosconocioacute a Holland y se convirtioacute en su estudiante Golberg era un ingeniero industrialtrabajando en disentildeo de tuberiacuteas y fue uno de los primeros que tratoacute de aplicar losAlgoritmos Geneacuteticos a problemas industriales Aunque Holland tratoacute de disuadirleporque pensaba que el problema era excesivamente complejo Goldberg consiguioacute loque queriacutea escribiendo un Algoritmo Geneacutetico en una computadora personal Apple IIEstas y otras aplicaciones creadas por estudiantes de Holland convirtieron a losAlgoritmos Geneacuteticos en un campo con base suficiente como para celebrar la primeraconferencia en 1985 ICGAacute85 Tal conferencia se sigue celebrando bianualmente[Beasley 1993]

Una definicioacuten bastante completa de un Algoritmo Geneacutetico es la propuesta por JohnKoza es un algoritmo matemaacutetico altamente paralelo que transforma un conjunto deobjetos matemaacuteticos individuales con respecto al tiempo usando operaciones modeladasde acuerdo al principio Darwiniano de reproduccioacuten y supervivencia del maacutes apto y trashaberse presentado de forma natural una serie de operaciones geneacuteticas de entre las quedestaca la recombinacioacuten sexual Cada uno de estos objetos matemaacuteticos suele ser unacadena de caracteres (letras o nuacutemeros) de longitud fija que se ajusta al modelo de lascadenas de cromosomas y se les asocia con una cierta funcioacuten matemaacutetica que refleja suaptitud [Koza 1992] 322 Definicioacuten de AG

Los Algoritmos Geneacuteticos (AG) son meacutetodos adaptativos que pueden usarse pararesolver problemas de buacutesqueda y optimizacioacuten Estaacuten basados en el proceso geneacutetico delos organismos vivos A lo largo de las generaciones las poblaciones evolucionan en lanaturaleza de acorde con los principios de la seleccioacuten natural y la supervivencia de losmaacutes fuertes postulados por Darwin Por imitacioacuten de este proceso los AlgoritmosGeneacuteticos son capaces de ir creando soluciones para problemas del mundo real Laevolucioacuten de dichas soluciones hacia valores oacuteptimos del problema depende en buenamedida de una adecuada codificacioacuten de las mismas [Goldberg 1989]

Un Algoritmo Geneacutetico consiste en una funcioacuten matemaacutetica que toma como entradas alos ejemplares y retorna como salidas cuaacuteles de ellos deben generar descendencia para lanueva generacioacuten

Los Algoritmos Geneacuteticos presentan ventajas sobre otros algoritmos que los hacenpreferibles para determinado tipo de aplicaciones Algunas de las caracteriacutesticas de losAlgoritmos Geneacuteticos son

bull Son algoritmos estocaacutesticos Dos ejecuciones distintas pueden dar dos solucionesdistintas Esto es uacutetil por el hecho de que hay gran cantidad de isoacutemeros que

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

corresponden a soluciones vaacutelidas por lo que es interesante que distintas ejecucionespuedan dar isoacutemeros distintos

bull Son algoritmos de buacutesqueda muacuteltiple luego dan varias soluciones Aunquehabitualmente la energiacutea de los individuos de la poblacioacuten final es similar losindividuos suelen ser distintos entre si Con el modelo de paralelizacioacuten empleado -geneacutetico multipoblacional- la probabilidad de obtener muchas soluciones distintas esmaacutes alta todaviacutea

bull Son los algoritmos que hacen una barrida mayor al subespacio de posiblessoluciones vaacutelidas De hecho se considera que de todos los algoritmos deoptimizacioacuten estocaacutesticos los Algoritmos Geneacuteticos son de los maacutes exploratoriosdisponibles

323 Ventajas y Desventajas [Bull 1993]

bull No necesitan conocimientos especiacuteficos sobre el problema que intentan resolverbull Operan de forma simultaacutenea con varias soluciones en vez de trabajar de forma

secuencial como las teacutecnicas tradicionalesbull Cuando se usan para problemas de optimizacioacuten de una funcioacuten objetivo- resultan

menos afectados por los oacuteptimos locales (falsas soluciones) que las teacutecnicastradicionales

bull Usan operadores probabiliacutesticos en vez de los tiacutepicos operadores determiniacutesticos delas otras teacutecnicas

bull La mayoriacutea de las otras teacutecnicas de optimizacioacuten son tambieacuten estocaacutesticasbull Pueden tardar mucho en converger o no converger en absoluto dependiendo en

cierta medida de los paraacutemetros que se utilicen tamantildeo de la poblacioacuten nuacutemero degeneraciones etc-

bull Pueden converger prematuramente debido a una serie de problemas de diversaiacutendole

324 iquestCoacutemo saber si es posible usar un Algoritmo Geneacutetico

La aplicacioacuten maacutes comuacuten de los Algoritmos Geneacuteticos ha sido la solucioacuten de problemasde optimizacioacuten en donde han mostrado ser muy eficientes y confiables Sin embargono todos los problemas pudieran ser apropiados para la teacutecnica y se recomienda engeneral tomar en cuenta las siguientes caracteriacutesticas del mismo antes de intentar usarlabull Su espacio de buacutesqueda (ie sus posibles soluciones) debe estar delimitado dentro

de un cierto rangobull Debe poderse definir una funcioacuten de aptitud que indique que tan buena o mala es

una cierta respuestabull Las soluciones deben codificarse de una forma que resulte relativamente faacutecil de

implementar en la computadora

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

Decisiones para implementar un Algoritmo Geneacutetico [Michalewicz 1992]

Las decisiones que hay que tomar para implementar un Algoritmo Geneacutetico son

bull Criterio de codificacioacuten Coacutemo se va a almacenar la informacioacuten en el genomabull Criterio de tratamiento de individuos no factibles Coacutemo se van a tratar a los

individuos que no cumplan las restriccionesbull Criterio de inicializacioacuten Coacutemo se va a construir la poblacioacuten inicialbull Criterio de parada Determina cuaacutendo el algoritmo ha llegado a una solucioacuten

aceptablebull Funcioacuten de adaptacioacuten Corresponde a la funcioacuten de costo de la investigacioacuten

operativa tradicionalbull Operadores geneacuteticos Se emplean para determinar coacutemo va a ser la nueva

generacioacuten Baacutesicamente son los operadores de cruce y mutacioacuten aunque pueden serempleados otros adicionales -muerte aborto envejecimiento- Tanto cruce comomutacioacuten pueden ser realizados de muchas formas distintas

bull Criterios de reemplazo Los criterios que determinan quieacutenes se van a cruzar Notienen que ser obligatoriamente los mismos que los criterios de seleccioacuten de lospadres

bull Paraacutemetros de funcionamiento Determinados paraacutemetros que sin poder serenglobados en ninguno de los anteriores son fundamentales para el funcionamientode un Algoritmo Geneacutetico Es el caso por ejemplo del tamantildeo de la poblacioacuten laprobabilidad de la aplicacioacuten de los operadores geneacuteticos etc

325 Paraacutemetros que deben ser especificados en el programa

Nordm de generaciones cantidad de veces que se produce una nueva generacioacuten deindividuos utilizando las reglas anteriormente explicadas Por loacutegica cuantas maacutesgeneraciones se produzcan se obtendraacuten mejores individuosNordm de individuos por generacioacuten en este ejemplo la cantidad de individuos de unageneracioacuten a otra es constante no variacuteaNordm de entrenamientos cantidad de veces que se lleva a cabo un entrenamiento entrediferentes generaciones de individuos

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

Fig 32 Pseudocoacutedigo del Algoritmo Geneacutetico simple

Los Algoritmos Geneacuteticos son una poderosa herramienta de propoacutesito general deoptimizacioacuten que modela los principios de la evolucioacuten [Burke 1994]

El proceso es el siguiente

1 Una poblacioacuten random de horarios factibles es creada Cada horario es evaluado deacuerdo a una conjunto de criterios (por ejemplo el tamantildeo del horario cuantosgrupos son colocados a la misma hora y en el mismo saloacuten cuantos salones hayvaciacuteos)

2 Los horarios son seleccionados de manera aleatoria para ser las bases de la proacuteximageneracioacuten Los buenos horarios son maacutes deseables que los malos En las bases dela evaluacioacuten de estos miembros de la poblacioacuten (horarios factibles) se escogen lospadres de la proacutexima generacioacuten de horarios Evaluando numeacutericamente durante elproceso de seleccioacuten buscando los mejores horarios los peores horarios soneliminados al mismo tiempo que la buacutesqueda se dirige hacia las aacutereas maacutespromisorias del espacio de soluciones

3 El Operador Mutacioacuten se aplica generalmente a un solo miembro de la poblacioacuten einvolucra el cambio aleatorio de la hora o aula de algunos grupos despueacutesalmacena el nuevo horario siempre manteniendo un horario factible Esto agrega

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

un elemento que permite tambieacuten introducir material geneacutetico uacutetil que ha sidoperdido en otros horarios en las primeras generaciones

4 El Operador de Cruzamiento toma una pareja de horarios y los combina de algunamanera para producir uno o dos nuevos horarios esto se hace generalmente deforma aleatoria seleccionando algunos grupos de la mantildeana de un miembro de lapoblacioacuten y los algunos grupos de la tarde de otro miembro para producir un nuevohorario cualquier grupo que no pueda ser colocado de esta manera se manda alperiodo siguiente disponible

5 La nueva poblacioacuten es generada El proceso seraacute repetido hasta que una buenasolucioacuten sea generada

33 Programacioacuten Loacutegica de Restricciones (PLR)

331 Antecedentes de la PLR

La Programacioacuten Loacutegica de Restricciones (PLR) es una teacutecnica que tiene mucho encomuacuten con los algoritmos de asignacioacuten heuriacutestica Dechter describe asiacute el problemade la satisfaccioacuten de restricciones ldquoUn problema de satisfaccioacuten de restricciones (PSR)es representado por una red de restricciones consistente en un conjunto de n variablesX1 Xn con sus respectivos valores de dominio RR n y un conjunto derestricciones Una restriccioacuten Ci (Xi1Xij)es un subconjunto del producto cartesiano Ri1 x x R i1 formado por todas las tuplas de valores para un subconjunto(X i1X ij) delas variables que son compatibles unas con otrasrdquo [Detcher 1990]

Una solucioacuten de la red es una asignacioacuten de valores a todas las variables de tal formaque todas las restricciones son satisfechasrdquo Esta es una representacioacuten maacutes poderosaque el modelo de los Grafos Coloreados porque puede representar restricciones mascomplejas El problema de los grafos coloreados es equivalente a un PLR binario en lacual cada restriccioacuten soacutelo tiene dos variables

Este modelo se resuelve tratando de asignar valores a cada una de las variables encuestioacuten y entonces regresando si se encuentra en un punto muerto y quitandorestricciones si se descubre que no se puede encontrar solucioacuten El orden en el que lasvariables son seleccionadas y el orden de los valores que son asignados a las variablespuede ser alterado para tratar aumentar la velocidad de buacutesqueda

La PLR es un meacutetodo que permite el disentildeo raacutepido de prototipos de resolucioacuten deproblemas complejos Las principales aportaciones en esta liacutenea se centran en eldesarrollo de programas que incluyen conjuntos de restricciones adaptadas a unadeterminada familia de problemas asiacute como al disentildeo formal e implementacioacuten demodelos de interpretacioacuten en paralelo con el fin de mejorar la eficiencia del proceso

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

deductivo El objetivo final es disponer de sistemas de resolucioacuten implementados paraapoyar la creacioacuten de sistemas donde la explosioacuten combinatoria de los elementos de unproblema hace muy difiacutecil la buacutesqueda de una solucioacuten en un tiempo razonable [Farion1992]

En esta seccioacuten se proporciona una breve introduccioacuten de la Programacioacuten Loacutegica conRestricciones y sus aplicaciones dentro del marco general de la programacioacuten loacutegica Setrata eacuteste de un campo que ha tenido una notable expansioacuten debido a su potencialaplicacioacuten praacutectica dado que el anaacutelisis de las restricciones permite mejorarconsiderablemente la eficiencia del caacutelculo de determinadas funciones

332 Restricciones

En primer lugar se empieza por contestar la pregunta iquestQueacute es una restriccioacuten Estacuestioacuten se puede responder tan brevemente como escribe Roman Bartak[1998]Una restriccioacuten es simplemente una relacioacuten loacutegica entre varias variablesdesconocidas tomando cada una un valor dentro de un dominio determinado (peA+B=C-el circulo estaacute dentro del cuadrado- etc)Asiacute las restricciones aparecen de forma natural en todos los campos del conocimientohumano La suma de los aacutengulos de un triaacutengulo es 180 grados es un ejemplo derestriccioacuten que aparece en el mundo real De hecho las restricciones son el medionatural en el que las personas expresamos los problemas en todas las aacutereas

Con la explicacioacuten dada se ve de forma natural que las restricciones gozan de variaspropiedades interesantes

bull las restricciones pueden especificar informacioacuten parcial es decir en lasrestricciones no hace falta que se den de forma uacutenica los valores de sus variables

bull las variables son no direccionales es decir en una restriccioacuten tiacutepica sobre dosvariables (XY) se puede inferir una restriccioacuten sobre X dada una restriccioacutensobre Y y viceversa

bull las restricciones son declarativas es decir se puede especificar que relacioacutendeben mantener sin especificar el procedimiento computacional que implementeesa relacioacuten

bull las restricciones son aditivas es decir el orden de imposicioacuten de las restriccionesno importa todo lo que importa al fin y al cabo es la conjuncioacuten de restriccionesy su efecto

bull las restricciones no suelen ser independientes normalmente restricciones dentrodel conjunto total de restricciones comparte variables

Asiacute siguiendo esta idea el objetivo de la Programacioacuten Loacutegica con Restricciones essustituir el proceso de unificacioacuten por la resolucioacuten de restricciones sobre un dominio

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

particular de intereacutes Con esta visioacuten se considera que el procesador de restriccionesdebe encargarse de comprobar la consistencia del conjunto de restricciones y dentro delo posible reducirlo a alguna forma normal

Seguacuten Elmohamed [Elmohamed 1998] las restricciones pueden ser divididas en trestipos fuertes medias y suaves

Restricciones fuertes Son todas aquellas que deben ser cumplidas obligatoriamente elcosto de no cumplir estas restricciones es sumamente alto y por lo tanto en un horariofactible su costo asociado por incumplimiento debe ser cero Por ejemplo (en unproblema real se pueden encontrar de 10 a 15 restricciones fuertes)

bull Dos o maacutes clases impartidas por un profesor no se pueden programar a lamisma hora

bull Una clase teoacuterica y su laboratorio no se pueden programar a la misma hora en elmismo diacutea

bull Una clase no se puede programar en un aula a menos que su capacidad seamayor al nuacutemero de alumnos inscritos

Restricciones medias Estas restricciones no se refieren a conflictos de tiempo perotienen asociado un alto costo a ellas sin embargo este costo no es tan alto como el de lasrestricciones fuertes En el condensado de horarios final el costo de estas restriccioneses minimizado y es deseable reducirlo a cero Por ejemplo (en un problema real sepueden tener entre 20 y 25 restricciones medias)

bull Para cada estudiante el balancear las secciones LunMieVie y MarJuebull Balancear o distribuir y equilibrar las horas de clase en la semanabull Las clases pueden requerir periodos de tiempo contiguosbull Las clases se pueden agrupar con otras clases formando paquetesbull Los horarios particulares deben tener la menor cantidad de ldquohoyosrdquo posible esto

es que las clases deben ser consecutivas unas despueacutes de otras

Restricciones suaves Estas restricciones no tienen nada que ver con conflictos detiempo y tienen un bajo costo asociado a ellas Tambieacuten en el condensado de horariosfinal este costo es minimizado pero no necesariamente debe ser cero Por ejemplo (sepueden tener entre 30 y 40 restricciones suaves)

bull Balancear la inscripcioacuten en cursos de varios paquetesbull Especificar la hora de comida y otros periodos de descansobull Los catedraacuteticos pueden requerir periodos de tiempo sin clasebull No inscribir alumnos-atletas en cursos que tengan conflicto con sus horas de

praacutectica deportiva etc

333 Sistemas con RestriccionesUna manera maacutes formal de definir las restricciones es considerarlas como una foacutermulade primer orden interpretada en una estructura para asiacute tener en cuenta la semaacutenticaparticular del sistema de restricciones Esta semaacutentica declarativa es adecuada cuando

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

existe a priori una estructura que se adecua al sistema de restricciones (pe Los realespara las restricciones aritmeacuteticas) pero esto no funciona demasiado bien para lossistemas de restricciones maacutes praacutecticos (pe Dominios finitos) Obviamente no se puededireccionar ninguacuten caacutelculo operacional relacionado con el propio procesador de lasrestricciones [Elmohamed 2001]

334 Referencia Histoacuterica de las RestriccionesLas restricciones como un aacuterea de trabajo que combina investigacioacuten de un gran nuacutemerode campos incluyendo Inteligencia Artificial Lenguajes de Programacioacuten CaacutelculoSimboacutelico y Loacutegica Computacional Las restricciones sobre redes y los problemas desatisfabilidad con restricciones empezaron a estudiarse por los investigadores deInteligencia Artificial en los antildeos 70

La programacioacuten con restricciones ha sido aplicada con notable eacutexito en numerososcampos Los trabajos en esta aacuterea se remontan a la investigacioacuten de InteligenciaArtificial y Representacioacuten Graacutefica por Computadora por los antildeos 60 y 70 En la uacuteltimadeacutecada sin embargo ha empezado a darse una mayor conciencia de que las restriccionesproporcionan las bases para un potente acercamiento a la programacioacuten modelado yresolucioacuten de problemas y que los diferentes esfuerzos por explotar estas ideas puedenser unidos bajo el mismo prisma conceptual y praacutectico la programacioacuten conrestricciones

Entre los dominios tratados por los sistemas de Programacioacuten Loacutegica con Restriccioneslos que maacutes ampliamente son investigados son sin duda los dominios finitos losnuacutemeros reales y racionales con restricciones aritmeacuteticas y los booleanos De hecho 3de los principales lenguajes de Programacioacuten Loacutegica con Restricciones son un claroejemplo de esta tendencia CHIP que proporciona restricciones sobre dominios finitosracionales y booleanos PrologIII que incluye racionales booleanos y listas y PLR(R)que maneja restricciones sobre reales

En la actualidad se pueden observar dos ramas principales en los avances en laprogramacioacuten con restricciones que parten de diferente base y por tanto usan diferentemetodologiacutea para resolver las restricciones Estas dos ramas son

bull Satisfaccioacuten de Restriccionesbull Resolucioacuten de Restricciones

335 Satisfaccioacuten de RestriccionesLa satisfaccioacuten de restricciones parte de los avances en Inteligencia Artificial (problemascombinatorios) y los Graacuteficos por computadora (sistema de SKETCHPAD[1963]expresando coherencia geomeacutetrica en el caso de anaacutelisis de escenas)

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

336 Resolucioacuten de RestriccionesLa resolucioacuten de restricciones difiere de la satisfaccioacuten de restricciones porque usavariables con dominios infinitos Ademaacutes las restricciones individuales son maacutescomplicadas por ejemplo ecuaciones no lineales En consecuencia los algoritmos deresolucioacuten de restricciones usan meacutetodos algebraicos y numeacutericos en vez decombinaciones y buacutesqueda Sin embargo existe metodologiacutea para discretizar losdominios infinitos en un nuacutemero finito de componentes y entonces se aplican lasteacutecnicas de Satisfaccioacuten de Restricciones

La programacioacuten con restricciones ha sido aplicada con eacutexito en numerosos campos Lasaplicaciones recientes incluyen [Detcher 1990]

bull Graacuteficos por Computadorabull Procesamiento del Lenguaje Natural (construccioacuten de analizadores eficientes)bull Sistemas de Bases de Datos (para reforzar yo mantener la consistencia de los

datosbull Problemas de Investigacioacuten Operativa (como la optimizacioacuten de problemas)bull Biologiacutea Molecular (secuenciacioacuten de ADN)bull Aplicaciones de Empresabull Ingenieriacutea Eleacutectrica (localizacioacuten de fallos)bull Disentildeo de Circuitos (para computar configuraciones)bull Planificacioacuten y organizacioacutenbull Configuracioacutenbull Juegosbull Configuracioacuten de horariosbull Criptoaritmeacuteticabull Coloreado de Grafosbull Razonamiento de hipoacutetesis quiacutemicas

En esta seccioacuten se va a dedicar una parte a cada una las aplicaciones maacutes estudiadas

337 Organizacioacuten de Proyectos

El problema de la Organizacioacuten es el proceso de asignar actividades a recursos en eltiempo En el caso general de organizacioacuten es un proceso de tomar decisiones donde sepueden tomar dos tipos de decisiones

bull Decisiones de situar temporalmente Cuaacutendo deberiacutea empezar cada actividadbull Decisiones de asignacioacuten de recursos Con queacute recursos deberiacutea ejecutarse cada

actividad

Los problemas de organizacioacuten y de asignacioacuten de recursos estaacuten basados enrestricciones Diferentes restricciones pueden afectar a la organizacioacuten la duracioacuten de

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

una actividad las fechas de contrato restricciones precedentes tiempos de transferenciao de inicio de la actividad la capacidad de los recursos y el reparto de recursos

La relajacioacuten de las restricciones principales caracteriza la calidad de los problemas deorganizacioacuten Estas restricciones son las relacionadas con fechas de entregaproductividad periodicidad de los cambios de herramientas niveles de inventariomargen de tiempo etc Algunas de estas restricciones pueden ser combinadas en lafuncioacuten de evaluacioacuten para la optimizacioacuten

Las aplicaciones industriales de las teacutecnicas de resolucioacuten de restricciones a losproblemas del tipo de asignacioacuten de tareas incluye[Detcher 1990]

bull Organizacioacuten de la produccioacutenbull Organizacioacuten y planificacioacuten del transporte y la logiacutesticabull Administracioacuten del traacuteficobull Disentildeo de horarios de recursos y de hombresbull Asignacioacuten de plantilla incluyendo aplicaciones de ingenieriacutea de organizacioacutenbull Problemas de empaquebull Configuracioacuten de maacutequinas

Claramente hay muchos problemas relacionados en el aacuterea de la organizacioacuten en lapraacutectica para los sistemas comerciales e industriales reales los liacutemites entre unos y otrosno estaacuten claros Es difiacutecil encontrar alguacuten problema real que se ajuste a un modelopreconcebido sin tener que descartar partes del problema y aproximar otras asiacute que hayque tomar estos modelos con amplio margen de aproximacioacuten

Otra complicacioacuten es el tema de la optimizacioacuten En algunos casos el usuario estaacutesatisfecho soacutelo con tener una manera automaacutetica de tener la respuesta pero la mayoriacuteaquieren tener al menos una buena respuesta y algunos el mejor resultado posible Perodebido a la gran complejidad combinatoria de la mayoriacutea de los problemas reales deorganizacioacuten una optimizacioacuten real es muy difiacutecil asiacute que en la mayoriacutea de los casos seusa la programacioacuten con restricciones en combinacioacuten con otras teacutecnicas tales comoAlgoritmos Geneacuteticos para dar soluciones casi oacuteptimas en un tiempo razonable

Normalmente los problemas de organizacioacuten se presentan usando variables conrestricciones fuertes y restricciones suaves Estas pueden ser agrupadas en la abstraccioacutendel problema de organizacioacuten Asiacute tiacutepicamente el tiempo de comienzo y fin y laduracioacuten de cada actividad se representan por variables con restricciones Los dominiosde estas variables son el rango de tiempo de intereacutes en la organizacioacuten requerida

Capiacutetulo 4 Anaacutelisis y Disentildeo

CAPIacuteTULO 4

ANAacuteLISIS Y DISENtildeO

41 Recopilacioacuten de informacioacuten

bull Documentos recopilados

bull Cataacutelogo de asignaturas prerrequisitos y semestrebull Cataacutelogo de aulas y su capacidadbull Cataacutelogo de catedraacuteticos horas disponiblesbull Mapa reticular de la carrerabull Reporte de grupos abiertos en periodo actualbull Reporte de alumnos por grupo en periodo actualbull Reporte de alumnos no inscritos por materia y semestrebull Reporte de simulacioacuten (si todos aprobaran sus cursos)bull Reporte del iacutendice de reprobacioacuten del semestre anteriorbull Encuesta aplicada para determinar los conocimientos requeridos

para impartir una materiabull Encuesta aplicada para obtener los conocimientos de cada

catedraacuteticobull Aacuterbol de conocimiento realizado para determinar los grupos por

abrir de cada asignaturabull Aacuterbol de conocimiento del perfil de las asignaturasbull Aacuterbol de conocimiento del perfil de los catedraacuteticosbull Aacuterbol de conocimiento de los criterios de apertura de materia

bull El proceso de la elaboracioacuten de los horarios

1 Elaboracioacuten de los reportes estadiacutesticos del periodo actual(grupos abiertos alumnos por grupo alumnos no inscritos pormateria simulacioacuten iacutendice de reprobacioacuten)

2 Caacutelculo de la estimacioacuten de alumnos por materia del proacuteximoperiodo

3 Caacutelculo del nuacutemero de grupos por materia requeridos para elproacuteximo periodo

4 Ajuste de los grupos por materia requeridos para el proacuteximoperiodo

5 Formacioacuten de los grupos en paquetes por semestre6 Asignacioacuten de hora y aula a los grupos

Capiacutetulo 4 Anaacutelisis y Disentildeo

7 Seleccioacuten de catedraacutetico al grupo y viceversa8 Ajustes en hora aula y catedraacutetico por grupo9 Elaboracioacuten del reporte condensado para publicacioacuten de horarios10 Elaboracioacuten de los reportes de grupos sin maestro maestros con

horas disponibles grupos sin aula

Para elaborar los horarios de los grupos y maestros un semestre determinado se tienenen consideracioacuten los siguientes elementos

bull El estadiacutestico de Servicios Escolares (SE)El departamento de SE cuenta con un sistema que registra todo el historial acadeacutemicode los alumnos inscritos en el ITZ las materias cursadas y sus calificaciones lasdiferentes carreras con su retiacutecula de asignaturas y sus prerrequisitos los grupos delsemestre actual la cantidad de alumnos en cada grupo de una asignatura los iacutendicesde reprobacioacuten de semestres anteriores las materias que puede cursar un alumno elproacuteximo semestre etceacutetera Toda esta informacioacuten plasmada en reportesdiferentes es la base para la generacioacuten de los horarios del proacuteximo semestre

bull Los grupos requeridosSobre la base de operaciones aplicadas a la informacioacuten estadiacutestica se obtiene lacantidad de grupos requeridos para abrirse el proacuteximo semestre este nuacutemero degrupos es la cantidad oacuteptima con la que se podraacuten inscribir los alumnos sin tenerproblemas de falta de espacio el alterar disminuyendo o aumentando el nuacutemero degrupos requeridos puede ocasionar alumnos con carga crediticia menor a lareglamentaria o que existan grupos con menos de 10 alumnos respectivamente

bull Las aulasEl ITZ cuenta con 52 aulas repartidas entre las 8 carreras a cada coordinador decarrera se le asigna determinado numero de aulas para su administracioacuten asiacute que alasignar el aula a cada grupo debe cuidar la correcta distribucioacuten de los grupos en loshorarios correspondientes y que la capacidad de las aulas no rebase el numero dealumnos inscritos

bull Los maestros y departamentosCada departamento esta formado por un jefe y los catedraacuteticos que forman laacademia de cada carrera los profesores pueden ser de tiempo completo frac34 y frac12tiempo o profesores de asignatura cada uno tiene un horario predeterminado en turnomatutino o vespertino los catedraacuteticos de un departamento cubren las asignaturas desu carrera y apoyan a otras carreras a cubrir las materias que tienen el perfil de esaacademia los catedraacuteticos son uno de los recursos mas difiacuteciles de controlar

Restricciones propias de los profesores

o Materia no tiene maestro

o Maestro tiene horas disponibles

Capiacutetulo 4 Anaacutelisis y Disentildeo

o Maestro tiene materias preferencia

o Maestro ha impartido materia

o Maestro solicita materia

o Maestro tiene restricciones de nuacutemero de materias a impartir

o Restriccioacuten no pueden darse maacutes de tres materias diferentes

o Maestro tiene una profesioacuten

o Maestro tiene un perfil

o Maestro tiene un aacuterea definida

o Maestro prefiere materias especialidad

o Maestro prefiere materias semestres iniciales

bull Las materias o asignaturasEn cada carrera se tiene un mapa reticular que tiene las materias de cada semestre elnombre los creacuteditos las horas de teoriacutea y praacutectica las ligas con los prerrequisitos lasmaterias de la especialidad seleccionada etc

Restricciones propias de las asignaturas

o Materia de 1deg semestre

o Materia de 2deg semestre

o Materia de 3deg semestre

o Materia de 4deg semestre

o Materia de 5deg semestre

o Materia de 6deg semestre

o Materia de 7deg semestre

o Materia de 8deg semestre

o Materia de 9deg semestre

o Materia de especialidad

o Materia tiene prerrequisito

o Materia es de baacutesicas

o Materia requiere conocimientos de Base de Datos

o Materia requiere conocimientos de Electroacutenica

o Materia la puede impartir cualquier maestro

Capiacutetulo 4 Anaacutelisis y Disentildeo

o Materia requiere conocimientos de Redes

o Materia requiere ser impartida por ingeniero

o Materia tiene complejidad alta

o Materia debe ser impartida por catedraacutetico con grado de maestriacutea

o Materia requiere conocimientos de Arquitectura de Computadoras

o Materia no tiene cadenas

o Materia de Administracioacuten

o Materia de Ingenieriacutea Industrial

o Materia requiere conocimientos de Aacutelgebra

o Materia requiere conocimientos de Caacutelculo Diferencial e Integral

o Materia requiere conocimientos de Quiacutemica Inorgaacutenica y Orgaacutenica

o Materia requiere una elaboracioacuten de proyectos

bull Las carrerasLas 8 carreras que se imparten en el ITZ son ordenadas por nuacutemero de alumnos

1 Ingenieriacutea en Sistemas Computacionales2 Licenciatura en Informaacutetica3 Licenciatura en Administracioacuten4 Ingenieriacutea Civil5 Ingenieriacutea Electromecaacutenica6 Ingenieriacutea Industrial7 Ingenieriacutea Quiacutemica8 Ingenieriacutea Bioquiacutemica

bull Los horarios de grupoUna vez determinados los grupos requeridos para el proacuteximo semestre se procede a laasignacioacuten de horario de acuerdo al nuacutemero de horas teoacuterico-praacutecticas se le asignaaula y un catedraacutetico responsable se fija tambieacuten un nuacutemero de alumnos y el tiempode laboratorio en caso de ser necesario

Capiacutetulo 4 Anaacutelisis y Disentildeo

Diagrama de flujo del proceso

Elaboracioacuten de los reportes estadiacutesticos

Caacutelculo de alumnos por materiaproacuteximo periodo

Caacutelculo del nuacutemero de grupos pormateria requeridos

Ajuste de los grupos por materiarequeridos

Formacioacuten de los grupos en paquetespor semestre

Asignacioacuten de hora y aula a los grupos

Asignacioacuten de catedraacutetico al grupo

Ajustes en hora aula y catedraacutetico porgrupo

Elaboracioacuten del reporte condensado

Elaboracioacuten de reportes varios

Todo cuadrabien

Si

No

Fin

Inicio

Capiacutetulo 4 Anaacutelisis y Disentildeo

42 Anaacutelisis de la informacioacuten

bull Cataacutelogo de asignaturas prerrequisitos y semestre

Funcioacuten Dar a conocer las asignaturas de una carrera los prerrequisitos de las materiasy el semestre al que pertenece una asignatura los creacuteditos miacutenimos que debe tenerun alumno para cursar la asignatura

Origen Reporte emitido por el departamento de Servicios Escolares

Campos del reporte nombre carrera nombre asignaturas creacuteditos miacutenimos materiasprerrequisito semestre al que pertenece la asignatura

bull Cataacutelogo de aulas y su capacidad

Funcioacuten Dar a conocer la nomenclatura y capacidad de las aulas y laboratorios del ITZ

Origen Departamento de Planeacioacuten

Campos del reporte Nombre del edificio nuacutemero de aula capacidad

bull Cataacutelogo de catedraacuteticos horas disponibles

Funcioacuten Dar a conocer los catedraacuteticos por departamento y sus horas disponibles frentea grupo

Origen Departamentos acadeacutemicos

Campos del reporte Nombre del departamento clave de profesor nombre del profesorcantidad de horas frente a grupo que debe tener

bull Mapa reticular de la carrera

Funcioacuten Mostrar el mapa reticular de una carrera graacuteficamente muestra las asignaturaspor semestre sus requisitos foacutermula crediticia etc

Origen Divisioacuten de Estudios Profesionales

Campos del reporte Nombre y clave de la carrera nombre y clave de las asignaturasfoacutermula crediticia (nuacutemero de horas teoacutericas nuacutemero de horas praacutecticas creacuteditos dela asignatura) las materias prerrequisito de otras materias de especialidad semestrede la asignatura nuacutemero de creacuteditos necesarios para poder cursar una asignatura

Capiacutetulo 4 Anaacutelisis y Disentildeo

bull Reporte de grupos abiertos en periodo actual

Funcioacuten Muestra los cursos que son ofertados en el periodo actual

Origen Departamento de Servicios Escolares

Campos del reporte Nombre de la carrera nombre de las asignaturas grupo de loscursos cantidad de alumnos inscritos nombre del catedraacutetico que lo imparte

bull Reporte de alumnos por grupo en periodo actual

Funcioacuten Muestra la cantidad de alumnos inscritos por semestre de una carrera

Origen Departamento de Servicios Escolares

Campos del reporte Nombre de la carrera semestres del 1 al 13 nuacutemero de alumnosinscritos por semestre

bull Reporte de alumnos no inscritos por materia y semestre

Funcioacuten Muestra los alumnos que pudieron inscribirse a una materia pero que poralguna razoacuten no lo hicieron

Origen Departamento de Servicios Escolares

Campos del reporte Nombre de la carrera nombre de la materia por semestre nuacutemerode alumnos que pudieron inscribirse y no lo hicieron

bull Reporte de simulacioacuten (si todos aprobaran sus cursos)

Funcioacuten Este reporte simula que todos los alumnos inscritos en los cursos acreditan elcurso entonces cuenta cuantos estudiantes pueden cursar todas las asignaturas comosi hubieran aprobado todos sus cursos actuales

Origen Departamento de Servicios Escolares

Campos del reporte Nombre de la carrera nombre de la asignatura y por semestre elnuacutemero de alumnos que pueden cursar una materia

bull Reporte del iacutendice de reprobacioacuten del semestre anterior

Funcioacuten Dar a los coordinadores los iacutendices de aprobacioacuten y reprobacioacuten de los cursosdel periodo anterior

Capiacutetulo 4 Anaacutelisis y Disentildeo

Origen Departamento de Servicios EscolaresCampos del reporte Nombre de la carrera nombre de la asignatura total de alumnos

aprobados total de alumnos reprobados del periodo anterior

bull Encuesta de conocimientos requeridos para impartir asignatura

Funcioacuten Obtener los datos de los conocimientos que debe poseer un catedraacutetico quequiera impartir una asignatura

Origen Academia de cada departamentoCampos del reporte Nombre de la asignatura objetivo de la asignatura carrera lista de

conocimientos requeridos para impartir la asignatura carrera adecuada del profesorque imparta la asignatura

bull Encuesta de conocimientos requeridos para perfil de profesores

Funcioacuten Obtener los datos de los conocimientos que debe posee un catedraacutetico

Origen Academia de cada departamento

Campos del reporte Nombre del catedraacutetico carrera del catedraacutetico conocimientos enaacutereas particulares de cada asignatura

43 Solucioacuten definida

Resolver el problema iniciando con la metodologiacutea ldquodivide y venceraacutesrdquo el problemageneral se dividiraacute en 6 problemas particulares

a) Sistema de Informacioacuten para control de horariosb) Sistema Experto para definicioacuten y generacioacuten de grupos

por abrirc) Moacutedulo Programacioacuten Loacutegica de Restricciones para

asignar horario a los gruposd) Moacutedulo Algoritmos Geneacuteticos para asignar aula a los

grupos ya definidose) Sistema Experto para definir catedraacutetico para

asignaturaf) Sistema Experto para asignar asignatura a catedraacutetico

Debido a la naturaleza y caracteriacutesticas de la informacioacuten todos lossistemas seraacuten realizados iniciando desde cero la recopilacioacuten deinformacioacuten el anaacutelisis el disentildeo y la programacioacuten de cada moacutedulo delsistema programado en Visual Basic y Bases de Datos en Access

Capiacutetulo 4 Anaacutelisis y Disentildeo

La principal ventaja de eacutesta opcioacuten es que el sistema estaacute hecho a la medida de lasnecesidades de la institucioacuten poniendo las restricciones en el formato que se tienenactualmente la desventaja es que se debe desarrollar TODO el sistema

44 Requerimientos del sistema

Los Motores de Inferencias deben ser disentildeados con las siguientes caracteriacutesticas

bull Buacutesqueda de primero en profundidad en ocasiones cuando se interactuacutee con elusuario este tipo de buacutesqueda seraacute utilizado para recorrer toda la base deconocimiento

bull Buacutesqueda heuriacutestica en la que el usuario deberaacute dar datos iniciales de por dondeempezar la buacutesqueda de alguna informacioacuten

bull Tomar informacioacuten de la Base de Conocimiento y guardarla en las bases de datos ytambieacuten inferir la informacioacuten y guardarla en las bases de datos para su posteriortratamiento e impresioacuten

bull Seleccionar la mejor opcioacuten y presentarla al usuario para los casos en que el usuariodecida cambiar alguacuten dato la maacutequina deberaacute presentar una opcioacuten y saber indicarel porqueacute la ldquoeligioacuterdquo

bull Dar otras soluciones ademaacutes de la oacuteptima teniendo porcentajes de aceptacioacuten paracada solucioacuten y permitiendo la buacutesqueda de maestros a impartir materias aulas paraalguacuten grupo o cantidad de grupos a abrir

bull Dar resultados en lenguaje natural de modo que el usuario entienda claramente loque la maacutequina le comunica

bull Trabajar interactivamente con el usuario para que eacuteste pueda cuestionar el porqueasignoacute un maestro abrioacute grupos asignoacute un aula etceacutetera

bull Tener capacidad para el uso del paradigma basado en analogiacuteas ldquoSi un maestro yadio la materia en alguacuten semestre entonces puede darla en este semestrerdquo o bien ldquoSieste paquete de materias estaacute completo entonces repite todo el paquete estesemestrerdquo

Interfaz de Usuario recibe y entrega informacioacuten interactuando con el usuario esdecir el usuario puede

1) alimentar hechos2) solicitar resultados y reportes3) cuestionar coacutemo se obtuvieron ciertas conclusiones

La interfaz de usuario debe tener las caracteriacutesticas siguientes

bull Comunicarse en el lenguaje del usuario sea un humano u otro dispositivobull Recibir hechos del usuario y almacenarlos en la base de hechosbull Presentar de manera amigable los objetivos a buscar e inferencias en pantallabull Dar de manera clara la explicacioacuten de la inferencia realizada

Capiacutetulo 4 Anaacutelisis y Disentildeo

bull Dar resultados por escrito en informesbull Proporcionar al usuario la facilidad de alimentar la base de conocimientosbull Dar al usuario la facultad de corregir las inferenciasbull Si el usuario es inexperto facilitar la ayuda necesaria

Seleccioacuten del lenguaje de programacioacuten

Visual Basic 60 proporciona a los programadores facilidad para desarrollar aplicacionescomplejas en poco tiempo (comparado con lo que cuesta programar en Visual C++ porejemplo)

El sistema necesita interfaces amigables al usuario con ventanas y botones emergentesen cualquier momento y Visual Basic 60 es una herramienta de disentildeo de aplicacionespara Windows en la que eacutestas se desarrollan en una gran parte a partir del disentildeo de unainterfaz graacutefica (pudiendo incorporar todos los elementos de este entorno informaacuteticoventanas botones cajas de diaacutelogo y texto botones de opcioacuten y de seleccioacuten barras dedesplazamiento graacuteficos menuacutes etc) En una aplicacioacuten Visual Basic 60 el programaestaacute formado por una parte de coacutedigo puro y otras partes asociadas a los objetos queforman la interfaz graacutefica Visual Basic 60 permite la programacioacuten de sus ventanasbotones y componentes de manera maacutes faacutecil que Java con sus Applets

En la parte del sistema de control de horarios que es un sistema de informacioacuten comuacutenlos programas que llenan de informacioacuten las bases de datos son muy parecidos unos conotros al hacer los procesos de altas bajas modificaciones consultas y validaciones seutilizan las ventajas que Visual Basic 60 ofrece de la Programacioacuten Orientada aObjetos (POO) eacutesta es una forma de programacioacuten que utiliza objetos ligados mediantemensajes para la solucioacuten de problemas Puede considerarse como una extensioacuten naturalde la programacioacuten estructurada en un intento de potenciar los conceptos demodularidad y reutilizacioacuten de coacutedigo Las caracteriacutesticas fundamentales de la POO sonabstraccioacuten encapsulamiento herencia y polimorfismo

Visual Basic 60 soporta la abstraccioacuten la encapsulacioacuten el polimorfismo y lareutilizacioacuten de coacutedigo Los objetos de Visual Basic estaacuten encapsulados es decircontienen su propio coacutedigo y sus propios datos

Manejador de Base de datos para el almacenamiento de la informacioacutenEl manejador de base de datos a utilizar seraacute Microsoft Access debido a que los usuariosque alimentan la base de conocimientos son expertos en diferentes aacutereas delconocimiento y tiene conocimientos limitados de los diferentes manejadores y estaacuten maacutesfamiliarizados con Microsoft Access Ademaacutes de que Access es transportablefaacutecilmente

Ademaacutes la cantidad y tipo de informacioacuten que se almacena en las tablas no requieremanejadores de bases de datos potentes o con caracteriacutesticas especiales

Capiacutetulo 4 Anaacutelisis y Disentildeo

Sistemagenerador dehorarios

SistemaExperto

Reglas

Criterios

Criterios por regla Conocimiento

Procesos

Capturaestadiacutesticas

Calcula grupos

Ajusta grupos

Sistema expertoasigna materia

Sistema Expertoasigna maestro

Asigna materia

Asigna catedraacutetico

Conocimientos

Procesos

Materias

Perfil general

Catedraacuteticos

Perfil materias

Perfil maestro

Asignacioacutenmateria-maestro

Asignacioacutenmaestro-materia

Buacutesqueda independiente

B adelante

B atraacutes

Abduccioacuten

Explicacioacuten

MoacuteduloPLR

Asigna horario

Datos

Arbol derestricciones Procesos

Materia

Grupos

Paquetes

Horario

Restriccioacuten 1

Restriccioacuten 3

Restriccioacuten 2

Restriccioacuten N

Genera random

Evaluacutea restricciones

Guarda grupo

MoacuteduloAlgoritmoGeneacutetico

Asigna aula

Operadores Geneacuteticos

Evaluacioacuten

Cruzamiento

Seleccioacuten

Mutacioacuten

Poblacioacuten Inicial

Versioacuten 1

Versioacuten 2

Versioacuten 3

Versioacuten N

Condensadodatos grales

Materia

Hora

Aula

Control escolar

Sistema deInformacioacuten

Aulas

Horarios

Grupos

Maestros

Datosestadiacutesticos

Datosgenerales

Datos condensado

Materias

45 MAPA CONCEPTUAL DEL PROYECTO

Capiacutetulo 4 Anaacutelisis y Disentildeo

Capiacutetulo 4 Anaacutelisis y Disentildeo

En la Figura 41 se muestra el mapa conceptual del proyecto La burbuja centralrepresenta el sistema generador de horarios y cada rama representa uno de los seismoacutedulos que lo componen las burbujas de cada rama contienen a su vez variasramificaciones en las que se muestran de manera graacutefica los componentes maacutesrepresentativos de los procesos utilizados la informacioacuten que manejan el conocimientoque utilizan y las restricciones involucradas

El moacutedulo Servicios Escolares contiene informacioacuten necesaria para la administracioacuten delos horarios en general y proporciona los datos para el funcionamiento de los demaacutesmoacutedulos

El moacutedulo Sistema Experto Creacioacuten de Grupos (SECG) muestra el conocimiento yprocesos utilizados para definir la cantidad de grupos a ofertar a partir de la informacioacutenestadiacutestica proporcionada por servicios escolares maacutes adelante en el documento seexplica a detalle su funcionamiento

En la Figura 41 se aprecia que los moacutedulos Sistema Experto AsignaCatedraacutetico(SEAC) y Sistema Experto Asigna Materia(SEAM) comparten las bases deconocimiento porque el conocimiento de un SE es la base de hechos del otro en amboscasos los procesos difieren solamente en la informacioacuten que utilizan y en los resultadosque producen noacutetese que existe un proceso que es ldquobuacutesqueda independienterdquo que puedecatalogarse como un Sistema Experto adicional que sirve para sugerir las asignaturasque puede impartir una persona que no estaacute dentro de las bases de datos de maestros ypor lo tanto su perfil tampoco estaraacute capturado en esta caso los hechos (su perfil deconocimientos) es capturado en el momento de la consulta

El moacutedulo de Algoritmos Geneacuteticos (AG) muestra los datos que recibe como se generauna poblacioacuten inicial el tratamiento que se le aplica por medio de los operadoresgeneacuteticos y la informacioacuten que se genera

Por uacuteltimo en la Figura 41 se nota tambieacuten el moacutedulo donde se utiliza la ProgramacioacutenLoacutegica de Restricciones que contiene 3 ramas donde una representa los datos recibidosy la informacioacuten generada otra rama denota un aacuterbol de restricciones que deben sersatisfechas por los paquetes de horarios la uacuteltima rama denota los procesos que se llevana cabo debe notarse que existe un proceso aleatorio que genera cada grupo un procesoque evaluacutea el grupo contra las restricciones y uno mas que guarda los grupos quecumplieron con todas

En este mapa conceptual no se muestra en que orden se ejecuta cada moacutedulo delproyecto la Figura 42 ilustra la secuencia de ejecucioacuten de los moacutedulos

La Figura 42 muestra el diagrama con la secuencia en que se van ejecutando losprocesos los datos que ingresan a cada moacutedulo y la informacioacuten que genera

Capiacutetulo 4 Anaacutelisis y Disentildeo

452 MAPAS CONCEPTUALES DE LOS MOacuteDULOS

Servicios Escolares

Datos Estadiacutesticos

Sistema Experto Creacioacuten de Grupos

Materias y grupos requeridos

Moacutedulo PLR

Materia + grupo + hora

Moacutedulo AG

Materia + grupo + hora + aula

Sistema ExpertoAsigna Catedraacutetico Sistema Experto

Asigna Materia

Sugiere profesorpara asignaturas

Sugiere asignaturapara profesor

Materia + grupo + hora + aula +profesor

Condensado final de materias

1

2

3

4

5 6

Fig 42 Diagrama de secuencia

Capiacutetulo 4 Anaacutelisis y Disentildeo

Como puede verse todo inicia cuando Servicios Escolares enviacutea la informacioacuten a laDivisioacuten de Estudios Profesionales (donde ldquohabitanrdquo los coordinadores) quienes son losresponsables de la elaboracioacuten de los horarios

Un primer proceso captura la informacioacuten que proviene de Servicios Escolares elsegundo moacutedulo define cuantos grupos deben programarse el tercer proceso asigna lahora a cada grupo el cuarto moacutedulo es el proceso que asigna las aulas los procesosquinto y sexto sirven para sugerir queacute catedraacutetico es el maacutes adecuado para cada grupo ycomo resultado final se tiene el condensado final de horarios para el siguiente semestre

En la Figura 43 se muestran los componentes del primer Sistema Experto utilizado paradefinir la cantidad de grupos que deben ofertarse el proacuteximo semestre en la partesuperior izquierda de la figura esta el coordinador de la carrera quien es el encargado decargar el conocimiento a las Bases de Conocimiento utilizando la interfaz de experto esla persona indicada para definir los criterios que tiene cada materia define las reglaspara la agrupacioacuten de los criterios y define en cada regla que tipo de ajuste se realiza

Experto

Coordinador

Interfaz Experto

Base deConocimientos

CriteriosReglasAjustes

Motor de Inferencia ListasMateriasGrupos requeridos

UsuarioMoacutedulo Explicacioacuten

Usuario(coordinador

novato)

Interfaz Usuario

Base Hechos

Informacion Estadiacutestica

Fig 43 Sistema Experto Generador de Grupos

Capiacutetulo 4 Anaacutelisis y Disentildeo

El usuario en la parte inferior de la figura puede ser el coordinador o su asistente y seencarga de capturar la informacioacuten estadiacutestica proporcionada por servicios escolares queson los datos de alumnos inscritos actualmente en cada materia el iacutendice de reprobacioacutenlos alumnos inscritos en la materias prerrequisito una simulacioacuten de los alumnosprobables para cursar esa materia si todos los inscritos aprueban todo y los alumnos quepueden cursar las materias pero no se inscribieron

Con los datos anteriores se realiza la siguiente operacioacuten

(Inscritos en materia iacutendice de reprobacioacuten de materia) 100 +Alumnos no inscritos +Alumnos en prerrequisito ndash (alumnos en prerrequisito iacutendice de reprobacioacuten) 100 +(Simulacioacuten ndash alumnos en prerrequisito ndash no inscritos) = Alumnos del proacuteximo semestre

Este uacuteltimo dato (alumnos del proacuteximo semestre) proporciona la cantidad de alumnospor materia que pueden inscribirse en los grupos seguacuten los estadiacutesticos de ServiciosEscolares pero no contempla preferencias de alumnos conveniencia de inscripcioacuten etc

Ofrecer los grupos necesarios para la inscripcioacuten de alumnos tomando el dato calculadoocasiona que al terminar las inscripciones existan grupos vaciacuteos grupos sobresaturadosalumnos con pocas materias y varios problemas mas

La finalidad de este Sistema Experto es realizar un ajuste al dato calculadoanteriormente para incluir en su caacutelculo todas aquellas caracteriacutesticas y experiencia delcoordinador para minimizar los problemas mencionados en el paacuterrafo anterior

Los ajustes pueden ser de varios tiposbull Ajuste draacutestico hacia abajo Se aplica una reduccioacuten del 50 al dato calculadobull Ajuste hacia arriba Se agrega un grupo maacutes al dato calculadobull Ajuste hacia abajo Se resta un grupo al dato calculadobull Ajuste numeacuterico Se ajusta utilizando la regla del redondeo de decimalesbull Ajuste draacutestico hacia arriba Se suman 2 oacute 3 grupos al dato calculado

Cuando utilizar una u otra regla estaacute definido por los criterios que cada materia contienenaturalmente y que con el paso de los semestres puede variar (aunque tambieacuten puedenpasar antildeos sin sufrir ninguacuten cambio)

La Figura 44 describe la utilizacioacuten de la teacutecnica de la Inteligencia Artificial llamadaProgramacioacuten Loacutegica de Restricciones para generar el condensado de grupos a partir deuna lista de materias que contiene solamente el nombre y la cantidad de grupos que sedeben abrir de una materia

Capiacutetulo 4 Anaacutelisis y Disentildeo

EoseX

Ugacgg

Lgc

s

ListasMaterias

Procesoformador depaquetes

Lista grupo +paquete

Moacutedulo generadorRandom Hora

Restricciones satisfec

Restriccio

Materia +hora

Moacuteduloverificadorrestriccione

s

Restriccionesnosatisfechas

Fig 44 Diagrama del moacutedulo Programacioacuten Loacutegica de Restriccione

xiste un proceso inicial que forma los ldquopaquetesrdquo de grupos esto es las materias serdenan por el semestre al que corresponden (generalmente son 6 materias poremestre) despueacutes para cada semestre se generan los grupos correspondientes si porjemplo se deben hacer 3 grupos de la materia X se generan tres registros de la materia y cada registro se etiqueta

Materia X grupo AA Materia X grupo AB y Materia X grupo AC

na vez que todas las materias han sido generadas y ldquoempaquetadasrdquo se pasan alenerador de horario en bloques de un paquete a la vez Este proceso funcionasignando un horario aleatorio a cada grupo despueacutes se verifica que cada grupo cumplaon todas las restricciones que son del tipo grupo no ldquochocardquo con otro del paqueterupo proporciona horario continuo al paquete grupo tiene horario de 2 horas por diacutearupo no deja horas vaciacuteas en paquete grupo cumple con todas sus horas asignadas etc

a Figura 45 muestra el disentildeo del Algoritmo Geneacutetico utilizado para asignar aula a losrupos que provienen del moacutedulo anterior (PLR) y recibe como datos de entrada unondensado de horarios (materia + grupo + hora)

Capiacutetulo 4 Anaacutelisis y Disentildeo

Procesoevaluacioacuten

Condensado

Materia +Grupo +Hora

Generador de versiones aleatorias

Genera versioacuten asigna aula

Versioacuten 3

Versioacuten 2

Versioacuten 1

Versioacuten N

Poblacioacuten inicial

ProcesoseleccioacutenProceso cruzamiento

clonacioacuten mutacioacuten

Versioacuten z

Versioacuten y

Versioacuten x

Versioacuten w

Nueva generacioacuten

Individuos aptos

Individuos no aptosReciclaje

CondensadoMateria + grupo +hora + aula

Fig 45 Diagrama del moacutedulo Algoritmo Geneacutetico

Capiacutetulo 4 Anaacutelisis y Disentildeo

Esta rama de la Inteligencia Artificial es utilizada generalmente para procesos deoptimizacioacuten y en esta ocasioacuten se utiliza para asignar las aulas al condensado dematerias

Al inicio se reciben como datos generales el condensado de materias La poblacioacuteninicial se obtiene copiando N veces (N versiones) este condensado y agregando a cadaregistro el nuacutemero de versioacuten y un aula asignada de manera aleatoria de esta manera seobtienen N versiones diferentes del condensado original

Cada versioacuten es entonces evaluada contando el nuacutemero de choques en aula y la cantidadde espacios vaciacuteos por aula a cada versioacuten se le genera un vector para guardar laevaluacioacuten (cromosoma de evaluacioacuten) y de esta manera se mide el grado de aptitud quetiene cada versioacuten

Las versiones que tienen menos choques y menos espacios vaciacuteos se consideran con ungrado de aptitud alto y son las mejores al contrario las que tienen muchos choquesson consideradas de aptitud baja no sirven para la reproduccioacuten y son desechadas

Una vez seleccionadas la mejores versiones se procede a la aplicacioacuten de los operadoresgeneacuteticos el primero que se aplica es el cruzamiento y consiste en elegir dos versionesde alta aptitud tomar segmentos seleccionados heuriacutesticamente de ellas y formar unnuevo individuo (una nueva versioacuten) se repite este proceso Y veces con las diferentesversiones hasta tener una nueva generacioacuten de N condensados de horarios

Repetir este proceso de generacioacuten evaluacioacuten y seleccioacuten durante Z generacionesaplicando cuando se necesite la clonacioacuten que es un proceso de copiar completamenteuna versioacuten (con alto grado de aptitud) a la nueva generacioacuten

Al principio la convergencia hacia horarios sin choques en aula es raacutepida pero al pasode las generaciones disminuye entonces se debe usar la mutacioacuten que es un proceso deacceder manualmente los registros de alguna versioacuten Zi en la generacioacuten Z y corregiralguacuten aula al final despueacutes de varias generaciones selecciones cruzamientosclonaciones y mutaciones se obtiene un condensado de aulas libres de choques y conpocos espacios vaciacuteos

En la Figura 46 se muestran los componentes del Sistema Experto utilizado para sugerircuales son los catedraacuteticos que mejor se desempentildeariacutean para impartir una asignaturatomando en cuenta los conocimientos que tiene un profesor (adquiridos a lo largo de sucarrera) y cuales son los conocimientos necesarios para impartir la caacutetedra de algunaasignatura

Capiacutetulo 4 Anaacutelisis y Disentildeo

Todo inicia haciendo una encuesta a los profesores acerca del perfil y los conocimientosnecesarios para poder impartir una asignatura el objetivo de la misma y los principalestemas que abarca todo lo anterior se captura en la base de hechos como el perfil de lamateria

Posteriormente se hace otra encuesta a los profesores pidieacutendoles que seleccionencuales son los conocimientos y el grado de dominio que tienen de los diferentes toacutepicosde las asignaturas esto se convierte en el perfil del catedraacutetico Por uacuteltimo con unproceso de induccioacuten se determina para cada materia cual es el grado de certeza con elcual puede un profesor impartir una asignatura

Experto

Coordinador

Interfaz Experto

Base deConocimientos

CatedraacuteticosConocimientos profesorPerfil profesor

Motor de Inferencia Lista profesores paraimpartir una materia

Jefedepartamento

Moacutedulo Explicacioacuten

Usuario(coordinador

novato)

Interfaz Usuario

Base Hechos

Perfil

Fig 46 Diagrama de Sistema Experto para sugerir profesor a asignatura

Capiacutetulo 4 Anaacutelisis y Disentildeo

Noacutetese en la Figura 47 que el coordinador captura el conocimiento referente a lasasignaturas (objetivo temas caracteriacutesticas necesarias para impartirla) y este esalmacenado en la Base de Conocimientos

Por otro lado un profesor debe llenar una encuesta en la que indique cuales son lostemas que domina y en que porcentaje lo hace (esto es el perfil del catedraacutetico) estainformacioacuten se almacena en la base de hechos--

El Motor de Inferencia hace los matchs respectivos y genera una lista de las materias quepuede impartir un profesor y con que grado de certeza estaacute capacitado para hacerlo

Por uacuteltimo el moacutedulo de explicacioacuten informa el porqueacute dio esa inferencia mostrando lascaracteriacutesticas de materia y profesor que hicieron match

Fig 47 Diagrama de Sistema Experto para sugerir asignaturas para catedraacutetico

Experto

Coordinador

Interfaz Experto

Base deConocimientos

MateriasCaracteriacutesticas MateriasPerfil materia

Motor de Inferencia Lista materias para unprofesor

Profesor

Moacutedulo Explicacioacuten

Profesor nuevoInterfaz Usuario

Base Hechos Perfil profesor

Capiacutetulo 4 Anaacutelisis y Disentildeo

453 Diagrama de contextoEn la Figura 48 se detallan los elementos que intervienen aportando y recibiendoinformacioacuten para el funcionamiento del sistema

Los departamentos acadeacutemicos aportan al sistema una lista con los catedraacuteticos quelaboran ahiacute incluye los datos personales de los profesores nuacutemero de tarjeta nombrecarrera etc Los coordinadores de carrera son los responsables de la elaboracioacuten de loshorarios estos funcionarios son la pieza fundamental de este proceso porque aportan susconocimientos para

bull Definir el ajuste al dato estadiacutestico proporcionado por Servicios Escolaresbull Definir las restricciones para la creacioacuten de los paquetes de gruposbull Definir las restricciones para asignar hora a cada grupobull La distribucioacuten de los grupos en las aulasbull Asignar la asignatura que mejor puede impartir un catedraacuteticobull Asignarle a una asignatura al profesor que mejor puede impartirla

El departamento de Servicios Escolares es el iniciador del proceso de la elaboracioacuten dehorarios aporta los datos estadiacutesticos obtenidos de la situacioacuten escolar actual de losalumnos cada alumno estaacute inscrito en alguna de las 8 carreras que se ofrecen en elInstituto estaacute cursando entre 5 y 8 asignaturas por semestre en cada periodo acredita oreprueba algunas materias En cada carrera se tiene un mapa reticular que incluyeaproximadamente 50 asignaturas con prerrequisitos creacuteditos horas en aula horas enlaboratorio orden por semestre etc

El departamento Divisioacuten de Estudios Profesionales (donde estaacuten adscritos loscoordinadores de carrera) es el responsable de distribuir las aulas disponibles delInstituto entre los distintos coordinadores las aulas son un recurso escaso y por lo tantovalioso de esta distribucioacuten depende en gran medida la holgura o estrechez que tienenlos coordinadores para asignar las aulas a los grupos creados

Los profesores son otro de los recursos valiosos de una institucioacuten son los responsablesde transmitir sus conocimientos a los alumnos cada catedraacutetico posee conocimientos dediversas aacutereas toacutepicos y ramas del saber humano el perfil del catedraacutetico estaacute enrelacioacuten directa con el dominio que tiene de cada una de ellas y varia desde unconocimiento superficial hasta el dominio total de un aacuterea

Los generadores random de los moacutedulos PLR y AG proporcionan la informacioacutennecesaria generada de manera aleatoria para el funcionamiento de esos moacutedulos

A los coordinadores y alumnos se les proporciona un condensado de horarios losalumnos conocen los grupos a los que se pueden inscribir las horas las aulas y loscatedraacuteticos que las impartiraacuten

Capiacutetulo 4 Anaacutelisis y Disentildeo

Sistema para laelaboracioacuten de

horarios

Departamentosacadeacutemicos

Jefes dedepartamento

Divisioacuten deEstudios

Profesionales

DepartamentoServiciosEscolares

Alumnos

Coordinadoresde carrera

Coordinadoresde carrera

Lista catedraacuteticos disponibles

Conocimientos

Reporte datos estadiacutesticos

Lista aulas disponibles

Condensado de horarios

Horarios disponibles

Lista horarios profesores

Profesores Generadoresaleatorios

Perfil maestro

Horas y aulas aleatorios

Fig 48 Diagrama de contexto del proyecto

Cap

iacutetulo

4

Anaacute

lisis

y D

isentilde

o

Sist

ema

para

lael

abor

acioacute

n de

hora

rios

Dep

arta

men

tos

acad

eacutemic

os

Div

isioacute

n de

Estu

dios

Prof

esio

nale

s

Dep

arta

men

toSe

rvic

ios

Esco

lare

sC

oord

inad

ores

de c

arre

ra

List

a ca

tedr

aacutetic

os d

ispo

nibl

es

Con

ocim

ient

osR

epor

teda

tose

stad

iacutestic

osLi

sta

aula

s dis

poni

bles

Prof

esor

esG

ener

ador

esal

eato

rios

Perf

il m

aest

roH

oras

y a

ulas

Fig

49

Dia

gram

a de

func

ione

s fun

dam

enta

les (

entra

das)

Cap

tura

supe

rfil

deco

noci

mie

nto

Cap

tura

las

aula

s

Enviacute

a da

tos

Cap

tura

suco

noci

mie

nto

Enviacute

a da

tos

depr

ofes

ores G

ener

ada

tos

Cla

ve n

ombr

eho

ras

turn

o

Tips

tru

cos

cono

cim

ient

ohe

uriacutes

tico

Cla

ve c

apac

idad

ed

ifici

o

Alu

mno

sin

scrit

os

sim

ulac

ioacuten

no

insc

ritos

iacutend

ice

repr

obac

ioacuten

Toacutepi

cos y

tem

asqu

e do

min

aA

ula

y ho

raal

eato

rios

Capiacutetulo 4 Anaacutelisis y Disentildeo

Sistema para laelaboracioacuten de

horarios

Coordinadoresde carrera

Jefes dedepartamento Alumnos

Fig 410 Diagrama de funciones fundamentales (salidas)

Imprimecondensado

Imprime lista Imprimehorarios

Maestro materiahora

Materia grupohora aula

maestrosugerido

Condensado de horarios Horarios disponibles

Lista horarios profesores

Materia grupohora aula

maestro

Capiacutetulo 4 Anaacutelisis y Disentildeo

454 Diagrama entidad - relacioacuten

NOTA Los siguientes diagramas muestran las tablas utilizadas por cada moacutedulo paramayor claridad se repitieron las tablas necesarias para representar cada parte del sistemapero en la base de datos no existe tal duplicacioacuten

Este diagrama contiene las tablas del moacutedulo administrativo de los horarios en unprincipio eacutestas eran las uacutenicas tablas de un sistema de control de horarios

FK_HORARIOS_REFERENCE_MATERIASFK_MATERIAS_REFERENCE_SERVICIO

FK_MATERIAS_REFERENCE_RAMA_MAT FK_MATERIAS_REFERENCE_CARRERAS

HORARIOS

GrupoId_aulaHora_inicioHora_lunesHora_martesHora_miercolesHora_juevesHora_viernesHora_sabadoObservacionesPeriodoAnioid_materiaId_catedratico

Text(2)INTEGERINTEGERText(6)Text(6)Text(6)Text(6)Text(6)Text(6)Text(30)Text(20)INTEGERINTEGERSMALLINT

ltfk3gt

ltfk2gtltfk1gt

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave de asig prerequisitoclave de asig prerequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

MATERIAS

SERVICIOS_ESCOLARESId_materiaINSCRITOSNO INSCRITOSSIMULACIONPROXIMO SEMESTREGRUPOS REQUERIDOSIndice de reprobacionperiodoantildeoGrupos ajustadoAlumnos ajustadoId_ajusteId_regla

INTEGERSMALLINTSMALLINTSMALLINTSMALLINTDOUBLEDOUBLEText(7)INTEGERSMALLINTSMALLINTINTEGERSMALLINT

RAMA_MATERIA

Id_ramaNombre_rama

COUNTERText(30)

ltpkgt

CARRERAS

Id_CarreraNombre_carrera

Text(15)Text(50)

ltpkgt

Fig 411 Diagrama entidad ndash relacioacuten del moacutedulo administrativo

Capiacutetulo 4 Anaacutelisis y Disentildeo

Este diagrama muestra las tablas donde se almacena el conocimiento de loscoordinadores para que el Sistema Experto del moacutedulo sugiera y aplique el ajuste aldato de cantidad de grupos sugerido por Servicios Escolares La relacioacuten entre las tablasva generando las reglas de produccioacuten

MATERIAS

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave asig prerrequisitoclave asig prerrequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

REGLAS

DescriId_reglaId_ajusteTot_peso

Text(70)COUNTERINTEGERINTEGER

ltpkgtltfkgt

FK_MATERIAS_REFERENCE_SERVICIO

FK_HECHOS_R_REFERENCE_CRITERIO

FK_HECHOS_R_REFERENCE_REGLAS

FK_HISTORIA_REFERENCE_REGLAS

FK_HISTORIA_REFERENCE_CRITERIO

FK_REGLAS_REFERENCE_AJUSTES

FK_HISTORIA_REFERENCE_MATERIAS

FK_HISTORIA_REFERENCE_CRITERIO

SERVICIOS_ESCOLARES

Id_materiaINSCRITOSNO INSCRITOSSIMULACIONPROXIMO SEMESTREGRUPOS REQUERIDOSIndice de reprobacioacutenperiodoantildeoGrupos ajustadoAlumnos ajustadoId_ajusteId_regla

INTEGERSMALLINTSMALLINTSMALLINTSMALLINTDOUBLEDOUBLEText(7)INTEGERSMALLINTSMALLINTINTEGERSMALLINT

HECHOS_REGLAS

Id_criterioId_reglaPromedio

INTEGERINTEGERINTEGER

ltfk2gtltfk1gt

CRITERIOS

Id_criterioDescripcion

COUNTERText(60)

ltpkgt

HISTORIAL_CRITERIOS

Id_criterioId_reglaPeso de la regla

INTEGERINTEGERSMALLINT

ltfk2gtltfk1gt

AJUSTES

TipoDescripcionId_ajuste

Text(25)MemoCOUNTER ltpkgt

HISTORIAL_MATERIA

Id_materiaId_criterioprioridad

INTEGERINTEGERSMALLINT

ltfk2gtltfk1gt

Fig 412 Diagrama E-R del moacutedulo para determinar y ajustar nuacutemero de grupos

Capiacutetulo 4 Anaacutelisis y Disentildeo

En este diagrama se muestra la base de datos que almacena la informacioacuten quemanipula el moacutedulo Algoritmo Geneacutetico las tablas maacutes representativas sonPOBLACION donde se guardan todas las versiones que forman las generaciones dehorarios y CROMOSOMAS que almacena el registro de evaluacioacuten de cada versioacuten dehorarios

FK_HORARIO__REFERENCE_AULAS

FK_HORARIO__REFERENCE_POBLACIO

FK_MATERIAS_REFERENCE_TIPO_HOR

FK_POBLACIO_REFERENCE_AULAS

FK_POBLACIO_REFERENCE_MATERIAS

FK_POBLACIO_REFERENCE_CROMOZOM1 1

HORARIO_AULA

VersionAulaLunesMartesMiercolesJuevesViernesSabadoHoraId_aula

INTEGERText(6)SMALLINTSMALLINTSMALLINTSMALLINTSMALLINTSMALLINTSMALLINTINTEGER

ltfk2gt

ltfk1gt

AULAS

Id_aulaCapacidad_aulaNombre_aulaDisponible

COUNTERSMALLINTText(50)YesNo

ltpkgt

POBLACION

Id_materiaGrupoId_catedraticoAulaHora_inicioHora_lunesHora_martesHora_miercolesHora_juevesHora_viernesVersionId_aulaPeriodoAnio

INTEGERText(4)INTEGERText(4)INTEGERText(6)Text(6)Text(6)Text(6)Text(6)INTEGERINTEGERText(10)INTEGER

ltfk2gt

ltfk1gtltfk3gt

MATERIAS

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave de asig prerequisitoclave de asig prerequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

TIPO_HORARIO

Tipo_horario

DescripcionLunes

MartesMiercoles

Jueves

ViernesSabado

COUNTER

Text(20)SMALLINT

SMALLINTSMALLINT

SMALLINT

SMALLINTSMALLINT

ltpkgt

CROMOZOMAS

VersionSemestreChoquesVacias

INTEGERINTEGERINTEGERINTEGER

ltpkgt

Fig 413 Diagrama E-R del moacutedulo para asignar aulas (Algoritmo Geneacutetico)

Capiacutetulo 4 Anaacutelisis y Disentildeo

En esta Figura 414 se pueden observar las tablas involucradas en el proceso paragenerar los paquetes de materias por semestre y la asignacioacuten de horario a cada grupodel paquete utilizando la teacutecnica Programacioacuten Loacutegica de Restricciones noacutetese que noexiste una tabla de restricciones eacutestas se aplican por software a cada grupo generado

FK_MATERIAS_REFERENCE_SERVIC

FK_MATERIAS_REFERENCE_TIPO_H

FK_HORARIOS_REFERENCE_MATERI

MATERIA

Id_materiMateriNum de HrsNum de HrsClave deId_CarrerCreditoSemestrObservacioneTroncoalumnos porclave de asigclave de asigId_ramSuma_maOrdeTipo_horari

INTEGEText(40SMALLINSMALLINText(8Text(15SMALLINSMALLINText(60YesNSMALLINText(40Text(40INTEGESMALLINSMALLININTEGE

ltpkfk4

ltfk1

ltfk3

ltfk2

SERVICIOS_ESCOLARE

Id_materiINSCRITONOSIMULACIOPROXIMOGRUPOSIndice deperiodantildeGruposAlumnosId_ajustId_regl

INTEGESMALLINSMALLINSMALLINSMALLINDOUBLDOUBLText(7INTEGESMALLINSMALLININTEGESMALLIN

TIPO_HORARI

Tipo_horariDescripcioLuneMarteMiercoleJueveVierneSabad

COUNTEText(20SMALLINSMALLINSMALLINSMALLINSMALLINSMALLIN

ltpk

HORARIO

GrupId_aulHora_iniciHora_luneHora_marteHora_miercoleHora_jueveHora_vierneHora_sabadObservacionePeriodAniid_materiId_catedratic

Text(2INTEGEINTEGEText(6Text(6Text(6Text(6Text(6Text(6Text(30Text(20INTEGEINTEGESMALLIN

ltfk3

ltfk2ltfk1

Fig414 Diagrama E-R del moacutedulo para asignar horario (PLR)

Capiacutetulo 4 Anaacutelisis y Disentildeo

FK_HECHOS_M_REFERENCE_MATERIAS

FK_HECHOS_M_REFERENCE_CATEDRAT

HECHOS_MAT_PROF

Id_catedraticoId_materiaPromedio

SMALLINTSMALLINTSMALLINT

ltpkfk1gtltpkfk2gt

FK_PERFIL_C_REFERENCE_CATEDRAT

FK_PERFIL_C_REFERENCE_PERFILES

FK_PERFILES_REFERENCE_TIPO_PER

FK_PROF_PAR_REFERENCE_CATEDRAT

FK_PROF_PAR_REFERENCE_MATERIAS

PERFIL_CATEDRATICO

Id_catedraticoId_perfilPrioridad_perfil_cate

SMALLINTINTEGERSMALLINT

ltfk1gtltfk2gt

CATEDRATICOS

Id_catedraticoApellido_paternoApellido_maternoNombre_catedraticoTitulo_catedraticoSuma_cate

SMALLINTText(20)Text(20)Text(20)Text(30)SMALLINT

ltpkgt

PERFILES

Id_perfilId_tipoDescripcion_perfil

COUNTERINTEGERText(60)

ltpkgtltfkgt

TIPO_PERFIL

Id_tipoTipo_perfil

COUNTERText(30)

ltpkgt

PROF_PARA_MAT

Id_materiaId_catedraticoPorcentaje_cate

INTEGERSMALLINTSMALLINT

ltpkfk2gtltpkfk1gt

MATERIAS

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave de asig prerequisitoclave de asig prerequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

Fig 415 Diagrama E-R del moacutedulo designa mejor catedraacutetico (Sistema Experto)

Capiacutetulo 4 Anaacutelisis y Disentildeo

En las figuras de la paacutegina anterior y eacutesta (Fig 415 y 416) se muestran las tablasutilizadas por los Sistemas Expertos para sugerir que materias puede impartir unprofesor y tambieacuten sugiere que profesores pueden impartir una asignatura

FK_PERFILES_REFERENCE_TIPO_PER

FK_PERFIL_M_REFERENCE_MATERIAS

FK_PERFIL_M_REFERENCE_PERFILES

FK_MAT_PARA_REFERENCE_MATERIAS

FK_MAT_PARA_REFERENCE_CATEDRAT

FK_HECHOS_M_REFERENCE_MATERIAS

FK_HECHOS_M_REFERENCE_CATEDRAT

PERFILES

Id_perfilId_tipoDescripcion_perfil

COUNTERINTEGERText(60)

ltpkgtltfkgt

TIPO_PERFIL

Id_tipoTipo_perfil

COUNTERText(30)

ltpkgt

PERFIL_MATERIA

Id_materiaId_perfilPrioridad_perfil_mat

INTEGERINTEGERINTEGER

ltfk2gtltfk1gt

MATERIAS

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave de asig prerequisitoclave de asig prerequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

MAT_PARA_PROF

Id_catedraticoId_materiaPorcentaje_mat

SMALLINTINTEGERSMALLINT

ltpkfk1gtltpkfk2gt

CATEDRATICOS

Id_catedraticoApellido_paternoApellido_maternoNombre_catedraticoTitulo_catedraticoSuma_cate

SMALLINTText(20)Text(20)Text(20)Text(30)SMALLINT

ltpkgt

HECHOS_MAT_PROF

Id_catedraticoId_materiaPromedio

SMALLINTSMALLINTSMALLINT

ltpkfk1gtltpkfk2gt

Fig 416 Diagrama E-R del moacutedulo selecciona mejor materia (sistema experto)

Capiacutetulo 4 Anaacutelisis y Disentildeo

455 Diccionario de la Base de Datos

Nombre HORARIOS_CON_CONOCIMIENTOComentario Base de datos del sistema ldquoGeneracioacuten de horarios mediante Sistemas

Basados en ConocimientordquoDBMS Microsoft Access 97

Lista de Tablas

Nombre Tipo deObjeto

AJUSTES TableAULAS TableCARRERAS TableCATEDRATICOS TableCRITERIOS TableCROMOSOMAS TableHECHOS TableHECHOS_MAT_PROF TableHECHOS_PROF_MAT TableHECHOS_REGLAS TableHISTORIAL_CRITERIOS TableHISTORIAL_MATERIA TableHORARIO_AULA TableHORARIOS TableMAT_PARA_PROF TableMATERIAS TablePERFIL_CATEDRATICO TablePERFIL_MATERIA TablePERFILES TablePOBLACION TablePROF_PARA_MAT TableRAMA_MATERIA TableREGLAS TableSERVICIOS_ESCOLARES TableTIPO_HORARIO TableTIPO_PERFIL Table

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla AJUSTESFuncioacuten Almacena los datos de los tipos de ajuste que se aplican por el Sistema Experto al

dato estadiacutestico que define cuantos grupos se deben abrir de cada materia

Lista de columnas de la tabla AJUSTESNombre Tipo de

DatoLong Llave

Primaria ForaneaComentario

Tipo Text(25) 25 Nombre del tipo de ajusteDescripcioacuten Memo Explicacioacuten del ajuste a realizar al nuacutemero

de grupos calculados segun estadisticosId_ajuste COUNTER 4 X Identificador del ajuste

Tabla AULASFuncioacuten Almacena los datos de las aulas que existen en cada edificio del instituto

Lista de columnas de la tabla AULASNombre Tipo de

DatoLong Llave

Primaria ForaneaComentario

Id_aula COUNTER 4 X Identificador del aulaCapacidad_aula SMALLINT 4 Nuacutemero maacuteximo de alumnos en el

aulaNombre_aula Text(50) 50 Nombre del aula (edificio+numero)Disponible YesNo 1 Disponibilidad del aula

Tabla CARRERASFuncioacuten Almacena los datos de las carreras que se imparten en el ITZ

Lista de columnas de la tabla CARRERASNombre Tipo de

DatoLong Llave

Primaria ForaneaComentario

Id_Carrera Text(15) 15 X Clave de la carreraNombre_carrera Text(50) 50 Nombre de la carrera

Tabla CATEDRATICOSFuncioacuten Almacena los datos de los CATEDRAacuteTICOS que imparten clases en las diferentes carreras del

Instituto Se utilizan los datos en los Sistemas Expertos que definen cual es el mejor catedraacuteticopara impartir una materia

Capiacutetulo 4 Anaacutelisis y Disentildeo

Lista de columnas de la tabla CATEDRATICOSNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_catedratico SMALLINT 4 X Nuacutemero de tarjeta del catedraacuteticoApellido_paterno Text(20) 20 Apellido paterno del catedraacuteticoApellido_materno Text(20) 20 Apellido materno del catedraacuteticoNombre_catedratico Text(20) 20 Nombre del catedraacuteticoTitulo_catedratico Text(30) 30 Grado de estudios y tiacutetulo del

catedraacuteticoSuma_cate SMALLINT 4 Suma total de las pesos de los perfiles

pertenecientes al catedraacutetico

Tabla CRITERIOSFuncioacuten Tabla de los criterios utilizados por el experto para crear las reglas que definen el tipo de

ajuste inferido por el Sistema Experto para definicioacuten de grupos por abrir

Lista de columnas de la tabla CRITERIOSNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_criterio COUNTER 4 X Identificador del criterio aplicado auna materia para crear grupos

Descripcion Text(60) 60 Descripcioacuten del criterio

Tabla CROMOSOMASFuncioacuten Almacena los datos de la evaluacioacuten de cada versioacuten de horarios generada ya sea por la

poblacioacuten inicial o por los operadores geneacuteticos se genera un cromosoma por cadasemestre en cada versioacuten

Lista de columnas de la tabla CROMOSOMASNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Version INTEGER 4 X Nuacutemero de individuo o versioacuten dehorarios

Semestre INTEGER 4 Semestre al que pertenece el datoChoques INTEGER 4 Nuacutemero de choques de versioacuten y

semestreVacias INTEGER 4 Nuacutemero de aulas vaciacuteas del individuo

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla HECHOS_MAT_PROFFuncioacuten Esta tabla almacena el resultado de la inferencia del Sistema Experto materias para

profesor indica para cada catedraacutetico las materias y el porcentaje de certeza con quepuede impartirlas

Lista de columnas de la tabla HECHOS_MAT_PROFNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_catedratico SMALLINT 4 X Identificador del catedraacuteticoId_materia SMALLINT 4 X Identificador de la asignaturaPromedio SMALLINT 4 Porcentaje de certeza con que un

profesor puede impartir una materia(resultado de la inferencia)

Tabla HECHOS_PROF_MATFuncioacuten Almacena los datos de la inferencia del Sistema Experto que calcula para una materia

determinada cuales son los mejores maestros para impartirla

Lista de columnas de la tabla HECHOS_PROF_MATNombre Tipo de

DatoLongitud

LlavePrimaria Foraacutenea

Comentario

Id_catedratico SMALLINT 4 X Identificador del catedraacuteticoId_materia SMALLINT 4 X Identificador de la asignaturaPromedio SMALLINT 4 Porcentaje de certeza con que una

materia puede ser impartida por unprofesor (resultado de la inferencia)

Tabla HECHOS_REGLASFuncioacuten Almacena los porcentajes de certeza con que se dispara una regla del Sistema Experto

que define los grupos por abrir

Lista de columnas de la tabla HECHOS_REGLASNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_criterio SMALLINT 4 X Identificador del criterioId_regla SMALLINT 4 X Identificador de la reglaPromedio INTEGER 4 Porcentaje de certeza con que una

regla dispara un criterio

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla HISTORIAL_CRITERIOS

Funcioacuten Almacena las reglas formadas por los criterios utilizados por el Sistema Experto paradefinir los grupos por abrir

Lista de columnas de la tabla HISTORIAL_CRITERIOSNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_criterio INTEGER 4 X Identificador del criterio pertenecientea la regla

Id_regla INTEGER 4 X Identificador de la reglaPeso de la regla SMALLINT 4 Peso del criterio en la regla

Tabla HISTORIAL_MATERIAFuncioacuten Tabla que almacena la definicioacuten de cada materia con base en los criterios utilizados por

las reglas para definir por materia el nuacutemero de grupos por abrir

Lista de columnas de la tabla HISTORIAL_MATERIANombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materia para suasignacioacuten de criterios

Id_criterio INTEGER 4 X Identificador del criterio que se aplicaa la materia para describirla

Prioridad SMALLINT 4 Peso del criterio en la materia

Tabla HORARIOS

Funcioacuten Almacena los datos del condensado final de horarios aquiacute se almacena el producto finaldel sistema para su posterior publicacioacuten y distribucioacuten entre la comunidad tecnoloacutegica

Lista de columnas de la tabla HORARIOSNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materiaGrupo Text(2) 2 Identificador del grupo A B CId_catedratico SMALLINT 4 X Catedraacutetico asignado al grupoId_aula INTEGER 4 X Aula asignada al grupoHora_inicio INTEGER 4 Hora de inicio del grupoHora_lunes Text(6) 6 Horas que se imparte el grupo el diacutea

lunes

Capiacutetulo 4 Anaacutelisis y Disentildeo

Hora_martes Text(6) 6Hora_miercoles Text(6) 6Hora_jueves Text(6) 6Hora_viernes Text(6) 6Hora_sabado Text(6) 6Observaciones Text(30) 30 Observaciones al grupoPeriodo Text(20) 20 Periodo Ene-jun o Ago-dicAnio INTEGER 4 Antildeo en que se utiliza el horario

Tabla HORARIO_AULAFuncioacuten Tabla auxiliar utilizada como almacenamiento temporal durante el proceso de evaluacioacuten

en el Algoritmo Geneacutetico guarda los datos de ocupacioacuten choques y no utilizacioacuten decada aula por hora diacutea y versioacuten

Lista de columnas de la tabla HORARIO_AULANombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Version INTEGER 4 X Nuacutemero de individuo o versioacutenAula Text(6) 6 Nombre del aulaLunes SMALLINT 4 Nuacutemero de horas que se utiliza el aula

el diacutea lunesMartes SMALLINT 4Miercoles SMALLINT 4Jueves SMALLINT 4Viernes SMALLINT 4Sabado SMALLINT 4Hora SMALLINT 4 Hora de utilizacioacuten del aulaId_aula INTEGER 4 X Identificador del aula en la versioacuten

Tabla MATERIASFuncioacuten Esta es una de las principales tablas del proyecto se utiliza en todos los moacutedulos del

sistema contiene informacioacuten base para caacutelculos diversos ademaacutes contiene tambieacuten lasllaves de diferentes tablas que describen de manera de manera especial a las materias

Lista de columnas de la tabla MATERIASNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia COUNTER 4 X Identificacioacuten de la materia llaveprincipal

Materia Text(40) 40 Nombre de la materiaNum de Hrs prac SMALLINT 4 Nuacutemero de horas praacutecticasNum de Hrs teo SMALLINT 4 Nuacutemero de horas teoacutericasClave de Asig Text(8) 8 Clave oficial de la materiaId_Carrera Text(15) 15 X Carrera a la que pertenece la materiaCreditos SMALLINT 4 Creacuteditos de la materia

Capiacutetulo 4 Anaacutelisis y Disentildeo

Semestre SMALLINT 4 Semestre en que se imparte la materiaObservaciones Text(60) 60Tronco comun YesNo 1 Definicioacuten de especialidad o tronco

comuacutenalumnos porgrupo

SMALLINT 4 Capacidad sugerida de los grupos deesta materia

clave de asigprerequisito

Text(40) 40 Clave de asignatura del prerrequisito

clave de asigprerequisito1

Text(40) 40 Clave de asignatura del prerrequisito

Id_rama INTEGER 4 X Identificador de la rama a la quepertenece la materia

Suma_mat SMALLINT 4 Suma total de los perfilespertenecientes a la materia

Orden SMALLINT 4 Es el nuacutemero de materia en un paqueteTipo_horario INTEGER 4 X El tipo de horario asignado a materia

Tabla MAT_PARA_PROFFuncioacuten La tabla almacena para cada catedraacutetico las asignaturas que puede impartir y el grado

de certeza con que puede hacerlo se almacena en esta tabla el resultado de la inferenciadel Sistema Experto

Lista de columnas de la tabla MAT_PARA_PROFNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_catedratico SMALLINT 4 X Nuacutemero de tarjeta del profesorId_materia INTEGER 4 X Identificador de la materiaPorcentaje_mat SMALLINT 4 Porcentaje de certeza con que un

profesor puede impartir una materia

Tabla PERFILESFuncioacuten Tabla que contiene una relacioacuten de todas las caracteriacutesticas de las materias

caracteriacutesticas necesarias para poder impartirlas es al mismo tiempo la tabla quecontiene la relacioacuten general de los conocimientos que poseen los profesores

Lista de columnas de la tabla PERFILESNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_perfil COUNTER 4 X Identificador del perfil paraasignaciones de materias acatedraacuteticos

Id_tipo INTEGER 4 X Identificador del tipo del perfilDescripcion_perfil Text(60) 60 Descripcioacuten de una caracteriacutestica del

perfil de una materia o un catedraacutetico

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla PERFIL_CATEDRATICOFuncioacuten Tabla que contiene el perfil de todos los catedraacuteticos (pueden llamarse las reglas) del

Sistema Experto que recomienda profesores para las materias el perfil de un catedraacuteticoesta definido por los conceptos que domina de las materias

Lista de columnas de la tabla PERFIL_CATEDRATICONombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_catedratico SMALLINT 4 X Identificador del catedraacutetico paradefinicioacuten de su perfil acadeacutemico

Id_perfil INTEGER 4 X Identificador del perfil que define aun catedraacutetico

Prioridad_perfil_cate SMALLINT 4 Porcentaje en que contribuye elperfil especificado en la definicioacutendel catedraacutetico

Tabla PERFIL_MATERIAFuncioacuten Esta tabla almacena las reglas que definen el perfil de una materia contiene las

caracteriacutesticas y temas que forman el temario de la materia

Lista de columnas de la tabla PERFIL_MATERIANombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materia en laregla de la materia

Id_perfil INTEGER 4 X Identificador del perfilperteneciente a una materia

Prioridad_perfil_mat INTEGER 4 Porcentaje en que contribuye esteperfil particular a definir unamateria

Tabla PROF_PARA_MATFuncioacuten Esta tabla almacena la inferencia del Sistema Experto para determinar cuales son los

mejores profesores para impartir una materia contiene para cada asignatura una lista delos profesores y el porcentaje de certeza con que pueden desempentildearse si la imparten

Capiacutetulo 4 Anaacutelisis y Disentildeo

Lista de columnas de la tabla PROF_PARA_MATNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de materiaId_catedratico SMALLINT 4 X Identificador de catedraacuteticoPorcentaje_cate SMALLINT 4 de certeza con que el catedraacutetico X

puede impartir la materia Y

Tabla POBLACIONFuncioacuten La tabla es la maacutes importante para el moacutedulo de Algoritmo Geneacutetico porque almacena los

datos de cada individuo hipoacutetesis o versioacuten que son generados ya sea por la poblacioacuteninicial aleatoria o por los diversos operadores geneacuteticos contiene copias (versiones) delcondensado de horarios con aulas aleatorias

Lista de columnas de la tabla POBLACIONNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materiaGrupo Text(4) 4 Grupo de la materiaId_catedratico INTEGER 4 X Identificador del catedraticoAula Text(4) 4 X Nombre del aula (edificio + numero)Hora_inicio INTEGER 4 Hora de inicio del grupoHora_lunes Text(6) 6 Hora inicio del lunesHora_martes Text(6) 6Hora_miercoles Text(6) 6Hora_jueves Text(6) 6Hora_viernes Text(6) 6Version INTEGER 4 X Nuacutemero de la versioacuten o hipoacutetesisPeriodo Text(10) 10 Periodo o semestre del grupoAnio INTEGER 4 Antildeo del grupo

Tabla RAMA_MATERIAFuncioacuten La tabla almacena la clasificacioacuten de las materias de acuerdo a las ciencias a la que

pertenecen

Lista de columnas de la tabla RAMA_MATERIANombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_rama COUNTER 4 X Identificador de la rama de unamateria (clasificacioacuten)

Nombre_rama Text(30) 30 Descripcioacuten de la rama de unamateria

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla REGLAS

Funcioacuten Esta tabla almacena las reglas utilizadas para generar los grupos que se deben ofertar elproacuteximo semestre indicando para cada regla el tipo de ajuste que debe aplicarse

Lista de Columnas de la Tabla REGLASNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Descripcion Text(70) 70 Descripcioacuten de la regla para ajustarel nuacutemero de grupos

Id_regla COUNTER 4 X Identificador de la reglaId_ajuste INTEGER 4 X Identificador del tipo de ajuste que

se aplica cuando esta regla sedispara para alguna materia

Tot_peso INTEGER 4 Total de los pesos de lascaracteriacutesticas de esta regla

Tabla SERVICIOS_ESCOLARESFuncioacuten En esta tabla se almacenan los datos estadiacutesticos de cada materia que provienen de

Servicios Escolares para el caacutelculo del nuacutemero de grupos que deben abrirse para elproacuteximo semestre contiene tambieacuten los paraacutemetros proporcionados por el SistemaExperto para realizar el ajuste al nuacutemero de grupos calculado inicialmente

Lista de columnas de la tabla SERVICIOS_ESCOLARESNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materiaINSCRITOS SMALLINT 4 Nuacutemero de alumnos inscritos

actualmente en el grupoNO INSCRITOS SMALLINT 4 Nuacutemero de alumnos que pueden

cursar la materia pero no seinscribieron

SIMULACION SMALLINT 4 Simulacioacuten de Servicios Escolaresde alumnos que podraacuten cursar lamateria

PROXIMOSEMESTRE

SMALLINT 4 Resultado del calculo de ServEscolares de alumnos que cursaraacutenla materia

GRUPOSREQUERIDOS

DOUBLE 4 Grupos requeridos para abrirproacuteximo semestre seguacuten caacutelculosiniciales

Indice dereprobacion

DOUBLE 4 Indice de reprobacioacuten de la materia

periodo Text(7) 7 Periodo de caacutelculo de horarios actual(semestre ene-jun o ago-dic)

Capiacutetulo 4 Anaacutelisis y Disentildeo

antildeo INTEGER 4 Antildeo de caacutelculo de horariosGrupos ajustado SMALLINT 4 Nuacutemero de grupos a solicitar para

abrir proacuteximo semestreAlumnos ajustado SMALLINT 4 Caacutelculo final del numero de alumnos

del proacuteximo semestre en estamateria

Id_ajuste INTEGER 4 X Tipo del ajuste aplicado por elSistema Experto al campogrupos_requeridos

Id_regla SMALLINT 4 X Regla que se disparo para realizar elajuste

Tabla TIPO_HORARIOFuncioacuten Esta tabla almacena los formatos de los distintos tipos de horario que existen y se ofrecen

para cada materia horarios de 2345 diacuteas a la semana y de 123 o 4 horas por diacutea

Lista de columnas de la tabla TIPO_HORARIONombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Tipo_horario COUNTER 4 X Identificador del tipo de horarioDescripcion Text(20) 20 Descripcioacuten del tipo de horarioLunes SMALLINT 4 Nuacutemero de horas del lunesMartes SMALLINT 4 Nuacutemero de horas del martesMiercoles SMALLINT 4 Nuacutemero de horas del mieacutercolesJueves SMALLINT 4 Nuacutemero de horas del juevesViernes SMALLINT 4 Nuacutemero de horas del viernesSabado SMALLINT 4 Nuacutemero de horas del saacutebado

Tabla TIPO_PERFILFuncioacuten Aquiacute se almacena una clasificacioacuten de los perfiles de acuerdo a la rama de conocimiento

a la que pertenecen

Lista de columnas de la tabla TIPO_PERFILNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_tipo COUNTER 4 X Identificador del tipo de perfilTipo_perfil Text(30) 30 Descripcioacuten del tipo de perfil de los

catedraacuteticos o las materias

Capiacutetulo 4 Anaacutelisis y Disentildeo

456 Lista de funciones o programas

Nombre Programa Descripcioacuten del programa

Ajustes Datos generales de los tipos de ajustes que se aplican al nuacutemero degrupos por abrir al dato de Servicios Escolares

Aulas Captura los datos de las aulas disponibles para claseCaptura_horarios Este programa realiza los cambios posteriores a la generacioacutenCarreras Captura los datos de las carreras del tecnoloacutegicoCatedraticos Datos generales de los catedraacuteticosClonacion Obtiene una copia (clon) del mejor individuo de una generacioacutenCons_ajuste Muestra yo imprime los datos generales de los ajustesCons_aulas Emite una pantalla de consulta general de aulasCons_captura_horarios Muestra una pantalla de consulta de los horarios generadosCons_carrera Despliega yo imprime las carrerasCons_catedratico Muestraimprime los datos generales de los catedraacuteticosCons_criterio Formulario que muestra yo despliega los criterios generalesCons_critXmat Muestra yo imprime los criterios de una materiaCons_critXregla Despliegaimprime los criterios que forman una reglaCons_gpos_abrir Explicacioacuten de la inferencia realizada (reglas disparadas)Cons_hist_crit Muestra las reglas de produccioacuten de los criteriosCons_materia Pantalla que despliega yo imprime datos de las materiasCons_materia_gral Pantalla de consulta general de los datos de materiasCons_perf_cate Consultaimprime los datos del perfil acadeacutemico de los

catedraacuteticosCons_perf_mate Consultaimprime los datos del perfil acadeacutemico de las materiasCons_perfil Muestraimprime datos de los perfilesCons_perfiles Consulta a la lista de perfiles o caracteriacutesticas Cons_perfilxmat Consulta a las reglas de produccioacuten del perfil de una materiaCons_rama Consulta a la lista de ramas (clasificacioacuten de las materias)Cons_reglas Consulta a la base de reglas para ajustar nuacutemero de gruposCons_serv_esc Consulta a las tablas que tienen informacioacuten de Servicios

EscolaresCons_serv_escol Pantalla que muestra yo imprime los datos estadiacutesticos de Serv

EscCons_tipo_perfil Consulta a los tipos de perfil (clasificacioacuten de perfiles)Crit_X_mat Formulario que captura los criterios pertenecientes a una materiaCrit_X_regla Captura los criterios que forman una regla de produccioacutenCriterios Pantalla que captura el conocimiento de criterios para el SECriteriosxmat Pantalla de captura para los criterios por materiaCruzamiento Programa que realiza la combinacioacuten (cruza) de individuos de la

poblacioacuten en el Algoritmo Geneacutetico

Capiacutetulo 4 Anaacutelisis y Disentildeo

Evaluacion Programa que realiza la creacioacuten del cromosoma de evaluacioacuten alevaluar las versiones de horarios de una generacioacuten

Explica_ajustes Moacutedulo de explicacioacuten del porque se aplicoacute determinado ajuste auna materia

Explica_mat_p_prof Explicacioacuten del porque una materia puede ser impartida por unprofesor con cierto grado de certidumbre

Explica_prof_p_mat Explicacion del porque un profesor puede impartir una materiacon cierto grado de certidumbre

Genera_horarios Sistema que utiliza Programacioacuten Loacutegica de Restricciones paragenerar los paquetes de horarios de un semestre

Genera_paquete Muestra el paquete generado por el procesoGrupo_nuevo Programa que va generando los paquetesGrupos_por_abrir Inferencia realizada para definir el ajuste aplicado a los grupos

definidos por Servicios EscolaresHistorial_criterios Captura los criterios necesarios para hacer una reglaHistorial_materia Captara los criterios por materiaMat_para_prof Inferencia realizada para determinar que profesores pueden

impartir una materiaMaterias Actualizacioacuten al archivo datos generales de las materiasMenu_algoritmos_geneticos Menuacute del moacutedulo para asignar aula a los gruposMenu_generacion_grupos Menuacute del Sistema Experto para definir cuantos grupos abrirMenu_asigna_horario Menuacute del moacutedulo asignacioacuten de horarioMenu_principal Menuacute principal del sistemaMenu_sel_catedra Menuacute del Sistema Experto para seleccioacuten de catedraacuteticos a

materiaMutacion Programa que hace la modificacioacuten de informacioacuten de aulas de

alguna versioacuten (versioacuten)Perfil_catedratico Captura el perfil acadeacutemico de los catedraacuteticosPerfil_materia Captura el perfil acadeacutemico de las materiasPerfiles Datos generales del perfil acadeacutemico de materias y catedraacuteticosPoblacion_inicial Programa que genera versiones de horarios y que de manera

aleatoria le va asignando aula a los gruposPortada_principal Es la ventana de entrada al sistemaProf_para_mat Inferencia realizada para determinar que materias pueden ser

impartidas por un profesorRama Programa que capturas las posibles ramas de los materiasReglas Datos generales de las reglas de produccioacuten para definir el No de

grupos por abrirSeleccioacuten Proceso que selecciona las mejores versiones de horarios (mejores

individuos) y elimina las menos aptasServ_escolares Pantalla de captura de los datos estadiacutesticos de Servicios EscolaresTipo_perfil Programa que captura la clasificacioacuten de los perfiles de materias y

profesores

Capiacutetulo 4 Anaacutelisis y Disentildeo

457 Diagrama de Arquitectura (Menuacutes)

Menuacute general

Menuacute Grupos porabrir

MenuacuteGeneracioacuten de

horarios

MenuacuteAsignacioacuten de

aulas

Datos de materias

Estadiacutesticos Serv Esc

Criterios

Criterios por materia

Reglas

Criterios por regla

Ajustes

Carreras

Nuacutemero de grupos

MenuacuteSeleccioacuten decatedraacuteticos

Genera paquete

Genera horarios

Datos generalesgrupos

Datos de aulas

Genera poblacioacuteninicial

Evaluacioacuten

Seleccioacuten

Cruzamiento

Clonacioacuten

Mutacioacuten

Horarios finales

Perfiles

Perfil de las materias

Perfil de catedraacuteticos

Catedraacuteticos

Perfil de loscatedraacuteticos

Asignacioacuten materia aprofesor

Asignacioacuten profesor amateria

Capiacutetulo 4 Anaacutelisis y Disentildeo

Capiacutetulo 5 Implementacioacuten del sistema

CAPIacuteTULO 5

IMPLEMENTACIOacuteN

51 Pantallas del sistema

La Figura 51 muestra la portada inicial del proyecto Contiene los logotipos de las tresinstituciones participantes y el nombre del proyecto

Fig 51 Portada inicial del proyecto

La Figura 52 es la pantalla que proporciona la informacioacuten de los autores del proyecto

Es el botoacutende entrada alsistema

Botoacuten deinformacioacuten delos autores

Capiacutetulo 5 Implementacioacuten del sistema

Fig 52 Acerca del sistema

La Figura 53 muestra el menuacute principal del proyecto contiene y 4 moacutedulos La primeraopcioacuten incluye los moacutedulos administrativo y generacioacuten de grupos la segunda opcioacutenincluye seleccioacuten de maestro y seleccioacuten de materia

Fig 53 Menuacute principal del proyecto

Moacutedulos delproyecto

Cuadro queproporcionalainformacioacutende la opcioacutensentildealada porel cursor

Capiacutetulo 5 Implementacioacuten del sistema

En la Figura 54 se tiene la pantalla del menuacute que agrupa los programas del moacuteduloadministrativo y Sistema Experto para determinar el nuacutemero de grupos por abrir seguacutenlos caacutelculos realizados con los datos de Servicios Escolares y el ajuste a ese dato

Fig 54 Menuacute grupos por abrir

Este programa del moacutedulo administrativo (Figura 55) sirve para capturar la informacioacutengeneral de las asignaturas que componen una carrera

Fig 55 Materias

Programas delos moacutedulos

Descripcioacutende laactividad delprogramaseleccionado

Nombre de laasignatura

Nuacutemero dehoraspraacutecticas yteoacutericas

Alumnos por grupopara calcularcantidad de grupos

Dato para formarpaquetes porsemestre

Icono quehabilita lacaptura denuevosdatos

Icono queregresa alMenuacute anterior

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 56 es un ejemplo de la consulta de datos en pantalla

Fig 56 Consulta Materias

La Figura 57 es la pantalla donde se capturan los datos estadiacutesticos provenientes deServicios Escolares contiene la informacioacuten necesaria para realizar el caacutelculo originaldel nuacutemero de grupos de cada asignatura que se debe abrir para ofertarse a los alumnosel siguiente semestre la foacutermula mostrada proporciona tal dato

Botoacuten queregresa elcontrol alprogramaque loinvocoacute

Alumnosesperados parael proacuteximo

Fccg

Datosestadiacutesticos

Fig 57 Pantalla Servicios Es

semestre

oacutermula paraaacutelculoantidad-rupos

Caacutelculosgeneral y pormateria

Grupos (datoestadiacutestico)

colares

Capiacutetulo 5 Implementacioacuten del sistema

En la Figura 58 se muestra la pantalla de consulta de los datos estadiacutesticosproporcionados por Servicios Escolares

Fig 58 Pantalla consulta Servicios Escolares

Esta pantalla captura las caracteriacutesticas por materia que dan origen al conocimientonecesario para definir el tipo de ajuste que se aplica al dato del nuacutemero de gruposproporcionado por los caacutelculos estadiacutesticos de la pantalla anterior

Criterios de unamateria

Fig 59 Pantalla criterios por materia

Grado deimportancia de esacaracteriacutestica para la

Capiacutetulo 5 Implementacioacuten del sistema

En la Figura 510 se muestra un ejemplo de la consulta a la base de datos del sistema enla parte de criterios por materia

Fig 510 Pantalla consulta criterios por materia

Esta pantalla (fig 511) proporciona al sistema la capacidad de capturar modificarborrar e imprimir las carreras del Instituto Tecnoloacutegico de Zacatepec

Fig 511 Pantalla carreras

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 512 proporciona al sistema la capacidad para capturar los criterios(conocimientos) del experto para definir a cada materia

Fig 512 Pantalla criterios

La Figura 513 muestra un ejemplo de consulta al archivo de los criterios capturados enel sistema

Fig 513 Pantalla consulta criterios

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 514 muestra la pantalla de captura de las reglas que componen el SistemaExperto para determinar el tipo de ajuste que se aplicaraacute al dato estadiacutestico del nuacutemerode grupos que se van a abrir el proacuteximo semestre cada regla tiene asignado un tipo deajuste

Fig 514 Pantalla reglas

La Figura 515 muestra un ejemplo de la consulta al archivo de las reglas que utiliza elSistema Experto para determinar nuacutemero de grupos por ofertar el proacuteximo semestre

Fig 515 Pantalla consulta reglas

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 516 muestra la pantalla de captura al archivo de ajustes noacutetese que ladescripcioacuten explica en extenso la accioacuten que se realiza al aplicar este ajuste provenientede una regla disparada por los criterios pertenecientes a la definicioacuten de una materia

Fig 516 Pantalla ajustes

La Figura 517 muestra la pantalla de la consulta a los ajustes que contiene el sistema

Fig 517 Pantalla consulta ajustes

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 518 muestra la pantalla que captura los criterios para cada regla Una reglaestaacute formada por el mismo tipo de criterios que definen a las materias

Criteriosde una

Fig 518 Pantalla criterios por regla

La Figura 519 muestra el ejemplo de una consulta de los criterios que definen a unaregla

Fig 519 Pantalla consulta criterios por regla

Reglas de produccioacuten Criterios por regla

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 520 es la pantalla maacutes importante de moacutedulo de generacioacuten de grupos porquees donde se realiza la inferencia para calcular el tipo de ajuste que se va a aplicar a cadamateria con base en las reglas que se disparan y que hacen match los criterios de unaregla y los criterios de una materia

Fig 520 Pantalla caacutelculo de ajustes

Esta pantalla (Figura 521) ofrece una explicacioacuten mostrando los criterios que definenuna materia y su correspondiente regla disparada mostrando los criterios de la regla quehacen match con los criterios de la materia

Fig 521 Pantalla explicacioacuten de la inferencia

Asignaturaa la que sele aplicaraacuteel ajuste

Regla quese disparaseguacutencriterios

Tipo deajuste quese aplica

Dato seguacutenestadiacutestico

Datos seguacutenajuste delSistemaExperto

Inferenciageneral

Inferenciaindividual

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 522 muestra el formulario que forma los paquetes de materias seguacuten laretiacutecula de una carrera muestra el nuacutemero de grupos por cada materia que se van aformar y hace los paquetes asignando los grupos AA AB AC AD

Fig 522 Pantalla inicial del moacutedulo generacioacuten de horarios

La Figura 523 es el formulario del moacutedulo Programacioacuten Loacutegica de Regenera los horarios por paquete satisfaciendo las restricciones para forlibre de choques continuo (sin horas muertas) cumpliendo las horas por m

Fig 523 Pantalla principal del moacutedulo generacioacuten de horari

Semestre al que sele formaraacuten lospaquetes

Paquetes generadosHora de iniciode clases decada grupo

Materias delsemestre

Nuacutemero de gruposal que se lesgeneraraacute horario

MateriaPaquete

Nuacutemero dehoras por diacutea

Botonesque invocanal moacutedulogeneradorde horarios

stricciones quemar un horarioateria etc

Hora de iniciode la materia

os

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 524 muestra el moacutedulo para asignar aula a los horarios que ya tienen materiagrupo y hora

Fig 524 Pantalla principal del menuacute Algoritmos Geneacuteticos

Esta pantalla (Figura 525) se utiliza para hacer altas bajas consulta y modificaciones alos grupos que se les va a dar aula

Fig 525 Pantalla de administracioacuten de grupos

Periodode loshorarios

Hora iniciodel grupo

Hora por diacutea

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 526 muestra una consulta de la pantalla administracioacuten de grupos

Fig 526 Pantalla de consulta de administracioacuten de grupos

La Figura 527 muestra la pantalla para actualizar las aulas disponibles por las personasque generan los horarios estas aulas estaacuten disponibles para que el Algoritmo Geneacuteticolas utilice para asignarles grupos durante el proceso

Fig 527 Pantalla del control de aulas

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 528 muestra la consulta de las aulas que utiliza el moacutedulo generacioacuten deaulas

Fig 528 Pantalla de consultas del control de aulas

La Figura 529 muestra la pantalla que genera la poblacioacuten inicial a partir de los datosgenerales proveniente de los moacutedulos anteriores

Fig 529 Pantalla de genera poblacioacuten inicial

Nuacutemero dehipoacutetesisversiones oindividuos

Aula aleatoriagenerada

Este botoacuteninicia lageneracioacutende las nversionesde horarios

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 530 muestra la pantalla que evaluacutea las versiones originadas y genera paracada una de ellas un cromosoma cuyos genes contienen la informacioacuten obtenida

Fig 530 Pantalla de evaluacioacuten de versiones

La Figura 531 muestra el formulario del proceso de seleccioacuten de las mejores versionesde horarios toma aquellas que tienen menor numero de choques y mayor espacio deocupacioacuten de aulas

Fig 531 Pantalla del proceso de seleccioacuten

Cantidad deversiones quesobreviviraacuten

Cromosomas delos mejoresindividuos

Botoacuten queinicia elproceso deseleccioacuten

Botoacuten queinicia elproceso deeliminacioacuten

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 532 muestra la pantalla del proceso de clonacioacuten donde se selecciona la mejorversioacuten y se obtiene un clon ideacutentico con un nuevo nuacutemero de versioacuten

Fig 532 Pantalla del proceso de clonacioacuten

La Figura 533 muestra la pantalla del proceso de mutacioacuten utilizado para hacer elcambio ldquomutarrdquo los datos de una versioacuten para romper alguacuten ciclado de la tendencia haciael resultado o simplemente para acelerar el proceso de optimizacioacuten

Cromosomasde versionesmaacutes aptas

Nuacutemero demejor versioacuten

Poblacioacutenversiones

Cromosomamuestra lasmejoresversiones

Aulas quepueden mutarse

Botoacuten queinicia elproceso demutacioacuten

Nuacutemero deversioacuten

Fig 533 Pantalla de mutacioacuten

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 534 muestra la pantalla donde se realiza el cruzamiento utilizando plantillaspredeterminadas dirigiendo la cruza de versiones por paquetes de materias agrupadas porsemestre y cada plantilla genera una nueva versioacuten con la combinacioacuten de fragmentosde varias versiones

Fig 534 Pantalla del proceso de cruzamiento

La Figura 535 permite la seleccioacuten y enviacuteo de la mejor versioacuten de horarios y adaptarloal moacutedulo administrativo para su distribucioacuten y publicacioacuten

Fig 535 Horarios finales

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 536 muestra el menuacute de los moacutedulos que sugiere maestros para impartir unaasignatura y sugerencia de asignatura para alguacuten maestro

Fig 536 Pantalla menuacute seleccioacuten de catedraacuteticos

La Figura 537 muestra la pantalla para la captura de caracteriacutesticas de losconocimientos requeridos para dar una materia que son las mismas caracteriacutesticas quedefinen los conocimientos de un profesor para impartir las materias

Fig 537 Pantalla de perfiles

Clasificacioacutende los perfiles

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 538 muestra una consulta de los perfiles agrupados por tipo

Fig 538 Pantalla de consulta perfiles

La Figura 539 muestra la pantalla en la que se definen los conocimientos requeridospara poder impartir una asignatura de acuerdo al perfil y contenido temaacutetico

Fig 539 Pantalla perfiles de las materias

La Figura 540 muestra un ejemplo de la consulta al perfil de una materia

Importancia de lacaracteriacutestica en la materia

Capiacutetulo 5 Implementacioacuten del sistema

Fig 540 Pantalla consulta perfiles de las materias

La Figura 541 es utilizada para capturar los datos de los catedraacuteticos que imparten lasasignaturas de una carrera

Fig 541 Pantalla captura datos de catedraacuteticos

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 542 es una muestra de la consulta al archivo de los catedraacuteticos

Fig 542 Pantalla consulta datos de catedraacuteticos

La Figura 543 muestra la pantalla en que se captura el perfil de los catedraacuteticos elperfil son los conocimientos que tiene el profesor que lo capacitan para impartir algunaasignatura

Fig 543 Pantalla captura perfil de catedraacuteticos

Conocimientosdel profesor

Barra deseleccioacuten deperfiles

Grado dedominio deltema

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 544 muestra una consulta tiacutepica al archivo de perfiles de los catedraacuteticos

Fig 544 Pantalla consulta perfil de catedraacuteticos

La Figura 545 muestra la pantalla de inferencia final que sugiere quienes son loscatedraacuteticos maacutes capacitados para impartir una materia haciendo la inferencia mediantela buacutesqueda de matchs entre el perfil de la asignatura y el perfil del catedraacutetico

Fig 545 Pantalla muestra inferencia catedraacuteticos para materia

Candidatos aimpartir lamateria

Botoacuten del proceso deinferencia generalPorcentaje de certeza con

que puede impartirla

Botoacuten delprocesodeinferenciaparticular

Botoacuten queinvoca almoacutedulo deexplicacioacuten

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 546 muestra la pantalla de explicacioacuten donde se indican los perfiles de lamateria y el perfil del profesor

Fig 546 Pantalla explicacioacuten porque un maestro puede dar una materia

La Figura 547 muestra el resultado de la inferencia del proceso que sugiere las materiasque puede impartir un profesor con base en el perfil de la materia y el perfil del profesor

Fig 547 Pantalla materias que puede impartir un profesor

Posibles materia aimpartir Porcentaje de certeza con

que puede impartirlaBotoacuten del proceso deinferencia general

Botoacuten delprocesodeinferenciaparticular

Botoacuten queinvoca almoacutedulo deexplicacioacuten

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 548 muestra la pantalla de explicacioacuten donde se indican el perfil de la materiay el perfil del profesor

Fig 548 Pantalla de explicacioacuten porque un profesor puede dar una materia

Capiacutetulo 5 Implementacioacuten del sistema

Capiacutetulo 6 Pruebas y Resultados

CAPIacuteTULO 6

PRUEBAS Y RESULTADOS

61 Pruebas del sistema

Se pueden detectar dentro del desarrollo de sistemas las actividades para realizarpruebas las producidas durante la etapa de requerimientos de disentildeo preliminar y las dedisentildeo detallado Clasificadas de otra manera eacutestas pueden ser funcionales deintegracioacuten y de implementacioacuten

La finalidad de realizar Pruebas funcionales es detectar errores que pudieran habersedado durante las fases de anaacutelisis y de especificacioacuten Por otro lado ellas pueden ayudara probar si el disentildeo es correcto ya que esta fase en sus dos niveles preliminar ydetallado estaacute basada en el anaacutelisis y especificacioacuten de requerimientos del sistema Estaactividad es guiada por los objetivos y requerimientos plasmados Se busca en estaprueba la posibilidad de que se haya incurrido en errores de conceptualizacioacuten yo deespecificacioacuten Las pruebas se organizan tomando como guiacutea las diferentes opciones delsistema final

Las Pruebas de integracioacuten se realizan cuando se procede a interconectar los diferentessubsistemas que constituyen el futuro sistema Como es conocido un sistema puede serdesarrollado por diferentes personas Por esta razoacuten es de suma importancia probar lainterconexioacuten de los diferentes subsistemas y asiacute verificar que ha sido realizada demanera correcta

Las Pruebas de implementacioacuten o codificacioacuten son las que se realizan directamentesobre los programas que se estaacuten desarrollando durante la fase de implementacioacuten Estosmoacutedulos o programas a su vez constituyen subsistemas Por esta razoacuten la integracioacuten delos diferentes moacutedulos que forman un subsistema deben ser probados Estas pruebasdeben estar basadas en la especificacioacuten de disentildeo preliminar y detallado [Gerez 1985]

Los siguientes rubros describen las pruebas maacutes importantes que se consideraron paravalidar el sistema las pruebas funcionales Las pruebas de implementacioacuten se realizarondurante el desarrollo de la codificacioacuten de los diferentes moacutedulos

Capiacutetulo 6 Pruebas y Resultados

62 PRUEBAS DEL SISTEMA

621 PRUEBA 1 AacuteREAS DE MENUacuteS

Objetivo Guiar al usuario en el desarrollo del proceso Esta prueba verifica que elsistema tenga como opciones principales y submenuacutes los sentildealados en la definicioacuten derequerimientos

Criterios de aceptacioacuten Cada prueba verifica que el sistema produzca los resultadossentildealados en la definicioacuten de requerimientos

Procedimiento de la prueba A continuacioacuten se despliegan las pantallascorrespondientes a los menuacutes principales y submenuacutes Las opciones principales delproyecto son dos Menu Principal y Datos de los autores

Resultado de la prueba Los resultados fueron satisfactorios En todas las opcionesactivadas el sistema presentoacute los submenuacutes definidos en la etapa de requerimientos

La Figura 61 muestra la portada inicial del proyecto Contiene los logotipos de las tresinstituciones participantes y el nombre del proyecto

Fig 61 Portada inicial del proyecto

Es el botoacutende entrada alsistema

Botoacuten deinformacioacutende los autores

Capiacutetulo 6 Pruebas y Resultados

La Figura 62 muestra el menuacute principal del proyecto y contiene 4 moacutedulos La primeraopcioacuten incluye los moacutedulos administrativo y generacioacuten de grupos la segunda opcioacutenincluye seleccioacuten de maestro y seleccioacuten de materia

Fig 62 Menuacute principal del proyecto

En la Figura 63 se tiene la pantalla del menuacute que agrupa los programas del moacuteduloadministrativo y Sistema Experto para determinar el nuacutemero de grupos por abrir seguacutenlos caacutelculos realizados con los datos de Servicios Escolares y el ajuste a ese dato

Fig 63 Menuacute grupos por abrir

Moacutedulos delproyecto

Cuadro queproporcionalainformacioacutende la opcioacutensentildealada porel cursor

Programas delos moacutedulos

Descripcioacutende laactividad delprogramaseleccionado

Capiacutetulo 6 Pruebas y Resultados

La Figura 64 muestra el menuacute de los moacutedulos que sugiere maestros para impartir unaasignatura y sugerencia de asignatura para alguacuten maestro

Fig 64 Pantalla menuacute seleccioacuten de catedraacuteticos

La Figura 65 muestra el moacutedulo para asignar aula a los horarios que ya tienen materiagrupo y hora

Fig 65 Pantalla principal del menuacute Algoritmos Geneacuteticos

Capiacutetulo 6 Pruebas y Resultados

622 PRUEBA 2 VALIDACIOacuteN DE ENTRADAS

Objetivo Evitar peacuterdidas de tiempo con entradas erroacuteneas de datos y resultados sinvalidez

Criterios de aceptacioacuten Esta prueba deberaacute mostrar de manera exacta la informacioacutenal seleccionar la opcioacuten deseada

Procedimiento de la prueba Se verifica que todas las cajas de texto tengan el dato quese pide y una vez dados todos los datos se guardan para que estos datos posteriormentesean procesados por el sistema y almacenen los datos correctos

Resultado de la prueba Los resultados fueron satisfactorios En todas las opcionesactivadas el sistema presentoacute los resultados correctos a cada opcioacuten Ademaacutes losdesplegados de mensajes de error se presentaron de manera correcta en todas laspruebas

La Figura 66 muestra la captura de datos de una asignatura y enviacutea el correspondientemensaje de error si una caja de texto se encuentra vaciacutea

Fig 66 Pantalla de captura de datos de las Materias

Muestra elmensaje deerror si esque hacefalta alguacuten

Capiacutetulo 6 Pruebas y Resultados

La Figura 67 muestra una pantalla de captura de datos asignando criterios a una materiay valida la no duplicidad de criterios en esa materia se enviacutea el correspondiente mensajede error si una entrada ya fue capturada

Fig 67 Pantalla de captura de datos de Criterios por Materia

La Figura 68 muestra una pantalla de captura de datos de las carreras al encontrar unregistro ya capturado muestra el mensaje de error si una carrera ya fue capturada

Fig 68 Pantalla de captura de datos de Carreras

Muestra elmensajede error sies que yaexiste elregistro

Muestra elmensaje deerror si esque yaexiste elregistro

Capiacutetulo 6 Pruebas y Resultados

623 PRUEBA 3 DESPLEGADO DE RESULTADOS

6231 MOacuteDULO DE GENERACIOacuteN DE GRUPOS POR ABRIR

Objetivo Proporcionar los datos que el moacutedulo pide para que posteriormente elsistema genere el nuacutemero de grupos sugerido por abrir para cada materia

Criterios de aceptacioacuten Esta prueba muestra la lista de grupos que se deben abrirdespueacutes de aplicar los criterios del Sistema Experto

Procedimiento de la prueba Una vez que se proporcionan los datos que el SistemaExperto requiere el sistema generaraacute una lista de los grupos que se deben abrir elproacuteximo semestre

Resultado de la prueba Los resultados fueron satisfactorios En todos los casospresentados el sistema generoacute la lista en forma satisfactoria y con la informacioacutencorrecta

La Figura 69 es la pantalla maacutes importante de moacutedulo de generacioacuten de grupos porquees donde se realiza la inferencia para calcular el tipo de ajuste que se va a aplicar a cadamateria con base en las reglas que se disparan y que hacen match los criterios de unaregla y los criterios de una materia

Asignaturaa la que sele aplicaraacuteel ajuste

Regla quese disparaseguacutencriterios

Tipo deajuste quese aplica

Inferenciageneral

Datoseguacuten

Fig 69 Pantalla caacutelculo de ajustes

Datos seguacutenajuste delSistemaExperto

Inferenciaindividual

Capiacutetulo 6 Pruebas y Resultados

6232 MOacuteDULO DE GENERACIOacuteN DE HORARIOS

Objetivo Proporcionar los datos que el moacutedulo pide para que posteriormente elsistema genere el horario por semestre de las materias de una carrera

Criterios de aceptacioacuten Esta prueba debe mostrar los horarios para las materias sinerrores sin choques de hora en un paquete

Procedimiento de la prueba Recibe como entrada cuantos grupos abrir de cadamateria en cada semestre y genera primero los paquetes posteriormente a cada paquetede materias le asigna la hora por materia

Resultado de la prueba Los resultados fueron satisfactorios En todos los casospresentados el sistema generoacute los horarios correspondientes

La Figura 610 muestra el formulario que forma los paquetes de materias seguacuten laretiacutecula de una carrera muestra el nuacutemero de grupos por cada materia que se van aformar y hace los paquetes asignando los grupos AA AB AC AD

Fig 610 Pantalla inicial del moacutedulo generacioacuten de horarios

Semestre al que sele formaraacuten lospaquetes

Paquetes generadosHora de iniciode clases decada grupo

Materias delsemestre

Nuacutemero de grupospor al que se lesgeneraraacute horario

Botonesque invocanal moacutedulogeneradorde horarios

Capiacutetulo 6 Pruebas y Resultados

La Figura 611 es el formulario del moacutedulo Programacioacuten Loacutegica de Restricciones quegenera los horarios por paquete satisfaciendo las restricciones para formar un horariolibre de choques continuo (sin horas muertas) cumpliendo las horas por materia etc

Fig 611 Pantalla princip

6233 MOacuteDULO ASIGNACIOacuteN D

Objetivo Utilizar los datos generadoaulas a los paquetes de materias

Criterios de aceptacioacuten Esta pruebaasignacioacuten de aula sin choques

Procedimiento de la prueba Se genAlgoritmos Geneacuteticos durante variachoques en el aula

Resultado de la prueba Los resupresentados el sistema generoacute las aula

MateriaPaquete

Nuacutemero dehoras por diacutea

Hora de iniciode la materia

al del moacutedulo generacioacuten de horarios

E AULA

s en el moacutedulo anterior para hacer la asignacioacuten de

debe mostrar los horarios de las materias con una

eran las aulas utilizando los procedimientos de loss generaciones hasta lograr una generacioacuten sin

ltados fueron satisfactorios En todos los casoss correspondientes

Capiacutetulo 6 Pruebas y Resultados

La Figura 612 muestra la pantalla para actualizar las aulas disponibles por las personasque generan los horarios estas aulas estaacuten disponibles para que el Algoritmo Geneacuteticolas utilice para asignarles grupos durante el proceso

Fig 612 Pantalla del control de aulas

La Figura 613 muestra la consulta de las aulas que utiliza el moacutedulo generacioacuten deaulas

Fig 613 Pantalla de consultas del control de aulas

Capiacutetulo 6 Pruebas y Resultados

La Figura 614 muestra la pantalla que genera la poblacioacuten inicial a partir de los datosgenerales proveniente de los moacutedulos anteriores

Fig 614 Pantalla de genera poblacioacuten inicial

La Figura 615 muestra la pantalla que evaluacutea las versiones originadas y genera paracada una de ellas un cromosoma cuyos genes contienen la informacioacuten obtenida

Fig 615 Pantalla de evaluacioacuten de versiones

Nuacutemero dehipoacutetesisversiones oindividuos

Aula aleatoriagenerada

Este botoacuteninicia lageneracioacutende las nversionesde horarios

Capiacutetulo 6 Pruebas y Resultados

La Figura 616 muestra el formulario del proceso de seleccioacuten de las mejores versionesde horarios toma aquellas que tienen menor numero de choques y mayor espacio deocupacioacuten de aulas

Fig 616 Pantalla del proceso de seleccioacuten

La Figura 617 muestra la pantalla del proceso de clonacioacuten donde se selecciona la mejorversioacuten y se obtiene un clon ideacutentico con un nuevo nuacutemero de versioacuten

Fig 617 Pantalla del proceso de clonacioacuten

Cantidad deversiones quesobreviviraacuten

Cromosomas delos mejoresindividuos

Botoacuten queinicia elproceso deseleccioacuten

Botoacuten queinicia elproceso deeliminacioacuten

Cromosomasde versionesmaacutes aptas

Nuacutemero demejor versioacuten

Poblacioacutenversiones

Capiacutetulo 6 Pruebas y Resultados

La Figura 618 muestra la pantalla del proceso de mutacioacuten utilizado para hacer elcambio ldquomutarrdquo los datos de una versioacuten para romper alguacuten ciclado de la tendencia haciael resultado o simplemente para acelerar el proceso de optimizacioacuten

Fig 618 Pantalla de mutacioacuten

La Figura 619 muestra la pantalla donde se realiza el cruzamiento utilizando plantillaspredeterminadas dirigiendo la cruza de versiones por paquetes de materias agrupadas porsemestre y cada plantilla genera una nueva versioacuten con la combinacioacuten de fragmentosde varias versiones

Fig 619 Pantalla del proceso de cruzamiento

Cromosomamuestra lasmejoresversiones

Nuacutemero deversioacuten amutar

Aulas quepueden mutarse

Botoacuten queinicia elproceso demutacioacuten

Capiacutetulo 6 Pruebas y Resultados

La Figura 620 permite la seleccioacuten y enviacuteo de la mejor versioacuten de horarios y adaptarloal moacutedulo administrativo para su distribucioacuten y publicacioacuten

Fig 620 Horarios finales

6234 MOacuteDULO SELECCIOacuteN DE CATEDRATICOS

Objetivo Capturar los datos de los profesores y su perfil profesiograacutefico ademaacutescapturar los conocimientos necesarios para impartir una asignatura para poder sugerircual es el mejor catedraacutetico que puede impartir una asignatura

Criterios de aceptacioacuten Esta prueba debe mostrar la sugerencia de los mejorescatedraacuteticos para una materia y las mejores materias para un catedraacutetico

Procedimiento de la prueba Se daraacuten los datos iniciales de los maestros y el sistemadeberaacute generar una lista a partir de la inferencia del Sistema Experto respectivo yviceversa

Resultado de la prueba Los resultados fueron satisfactorios En todos los casospresentados el sistema infirioacute las materias y los catedraacuteticos correspondientes

Capiacutetulo 6 Pruebas y Resultados

La Figura 621 muestra la pantalla en que se captura el perfil de los catedraacuteticos elperfil son los conocimientos que tiene el profesor que lo capacitan para impartir algunaasignatura

Fig 621 Pantalla captura perfil de catedraacuteticos

La Figura 622 muestra la pantalla de inferencia final que sugiere quienes son loscatedraacuteticos maacutes capacitados para impartir una materia haciendo la inferencia mediantela buacutesqueda de matchs entre el perfil de la asignatura y el perfil del catedraacutetico

Fig 622 Pantalla muestra inferencia catedraacuteticos para materia

Conocimientosdel profesor

Barra deseleccioacuten deperfiles

Grado dedominio deltema

Botoacuten delprocesodeinferenciaparticular

Botoacuten queinvoca almoacutedulo deexplicacioacuten

Candidatos aimpartir lamateria Botoacuten del proceso de

inferencia generalPorcentaje de certeza conque puede impartirla

Capiacutetulo 6 Pruebas y Resultados

La Figura 623 muestra la pantalla de explicacioacuten donde se indican los perfiles de lamateria y el perfil del profesor

Fig 623 Pantalla explicacioacuten porque un maestro puede dar una materia

La Figura 624 muestra el resultado de la inferencia del proceso que sugiere las materiasque puede impartir un profesor con base en el perfil de la materia y el perfil del profesor

Fig 624 Pantalla materias que puede impartir un profesor

Posibles materia aimpartir Porcentaje de certeza con

que puede impartirlaBotoacuten del proceso deinferencia general

Botoacuten delprocesodeinferenciaparticular

Botoacuten queinvoca almoacutedulo deexplicacioacuten

Capiacutetulo 6 Pruebas y Resultados

La Figura 625 muestra la pantalla de explicacioacuten donde se indican el perfil de la materiay el perfil del profesor

Fig 625 Pantalla de explicacioacuten porque un profesor puede dar una materia

Capiacutetulo 6 Pruebas y Resultados

Capiacutetulo 7 Conclusiones y Trabajos Futuros

CAPIacuteTULO 7

CONCLUSIONES Y TRABAJOS FUTUROS

71 CONCLUSIONES

Los meacutetodos de programacioacuten lineal proporcionan una solucioacuten parcial al problema dela generacioacuten de horarios utilizan una ldquorecetardquo predefinida para lograr la optimizacioacutende la asignacioacuten de recursos como lo hace el meacutetodo Huacutengaro La Inteligencia Artificialsoluciona el problema utilizando la heuriacutestica el conocimiento y la experiencia de unexperto humano para solucionar el problema se decidioacute utilizar esta metodologiacutea paraexplorar una solucioacuten aproximada al problema

En el ITZ la generacioacuten de horarios se haciacutea de forma manual no se utilizaba ninguacutenmeacutetodo automatizado Al aplicar algunas teacutecnicas de la Inteligencia Artificial se halogrado generar de manera automatizada los horarios de las materias que se ofertaraacuten elproacuteximo semestre

La aplicacioacuten de varias ramas de la Inteligencia Artificial para la resolucioacuten delproblema de la generacioacuten de horarios viene a demostrar que si es posible generar uncondensado de horarios para el Instituto Tecnoloacutegico de Zacatepec que es una escuelade nivel superior y que estos horarios satisfacen adecuadamente las restricciones fuertesmedias y suaves Para ello fue necesaria la combinacioacuten de varias disciplinas de lacomputacioacuten para generar cada una de las partes que componen un horario y tambieacutenrecomendar los catedraacuteticos mas apropiados para impartir dichos grupos nuevamentequeda demostrado que la Inteligencia Artificial sirve para resolver problemas que lasteacutecnicas convencionales de computacioacuten consideran problema NP-completo

La utilizacioacuten de las teacutecnicas de los Sistemas Expertos para ajustar el nuacutemero de grupospor abrir el proacuteximo semestre permite aplicar el conocimiento y experiencia de lapersona encargada de elaborar los horarios y asiacute disminuir el nuacutemero de gruposcancelados el conocimiento e intuicioacuten del experto humano realizan un ajuste fino alnuacutemero de grupos y como puede notarse el sistema lo hace de manera similar

Para el moacutedulo de generacioacuten de los grupos y los horarios la utilizacioacuten de la teacutecnicallamada Programacioacuten Loacutegica de Restricciones permitioacute la satisfaccioacuten de lasrestricciones que hacen que los horarios sean considerados factibles para su aplicacioacuten a

Capiacutetulo 7 Conclusiones y Trabajos Futuros

los alumnos el proacuteximo semestre ya que los paquetes de materias por semestre tienenhorarios corridos y sin choques en horas nuacutemero de materias completo y buenadistribucioacuten de horas pares e impares

Se utilizoacute tambieacuten la teacutecnica de optimizacioacuten llamada Algoritmos Geneacuteticos pararealizar la asignacioacuten de aulas a cada grupo generado logrando con ello minimizarautomaacuteticamente el nuacutemero de choques de materias en aulas En las pruebas realizadasse logroacute que en la sexta generacioacuten de individuos ya soacutelo hubiera hasta un maacuteximo de 24choques lo que indicaba que soacutelo 4 oacute 5 grupos compartiacutean aula a la misma hora esto erafaacutecilmente corregible realizando una inspeccioacuten visual a la versioacuten de horarios final yajustando los uacuteltimos errores

Por uacuteltimo nuevamente se aplicaron los Sistemas Expertos en el moacutedulo de sugerenciade materias que puede impartir un maestro y en el moacutedulo maestros que pueden impartiruna determinada materia vale la pena comentar que durante las pruebas realizadas loscatedraacuteticos del departamento de Sistemas y Computacioacuten capturaban su perfilprofesiograacutefico y al pedir al sistema la sugerencia de cuaacuteles materias podriacutean impartirlos Sistemas Expertos del proyecto inferiacutean exactamente las materias que loscatedraacuteticos estaacuten impartiendo en este semestre y las que habiacutean impartido en alguacutensemestre anterior demostrando que en efecto para profesores nuevos la recomendacioacutendel sistema seriacutea vaacutelida

72 TRABAJOS FUTUROS

Se sugiere que se ampliacutee el proyecto para que a cada grupo generado con aula y hora sele asigne de manera automaacutetica un catedraacutetico utilizando ya sea Algoritmos Geneacuteticos oProgramacioacuten Loacutegica de Restricciones

Otra posible mejora puede ser incluir la Loacutegica Difusa en los Sistemas Expertos de losmoacutedulos que sugieren las materias que puede impartir un catedraacutetico y los catedraacuteticosque pueden impartir una asignatura

Como ya se comproboacute la factibilidad de generar los horarios de manera automaacutetica sepropone tambieacuten la exploracioacuten de otras ramas y teacutecnicas de la computacioacuten (RedesNeuronales Buacutesqueda Tabuacute Grafos Coloreados etc) para comparar el rendimientotiempo esfuerzo y asiacute poder determinar cuales son mejores o peores teacutecnicas pararesolver el problema de la generacioacuten de horarios

Referencias Bibliograacuteficas

REFERENCIAS BIBLIOGRAacuteFICAS

[Abramson 1991] Abramson D ldquoConstructing School Timetables Using SimulatedAnnealing Secuencial and Parallel Algoritmsrdquo Management Science PWS PublishingBoston 1998

[Beasley 1993] Beasley D amp Bull DR amp Martin RR ldquoAn Overview of GeneticAlgorithms Part 1 Fundamentalsrdquo University Computing

[Bull 1993] Bull DR amp Beasley D amp Martin RR ldquoAn Overview of GeneticAlgorithms Part 2rdquo University Computing Magazine 1993

[Burke1994]Burke EK ldquoA Genetic Algorithm for University Timetablingrdquo AISBworkshop on evolutionary computing Leeds 1994

[Burke 1997] Burke Edmund K ldquoAutomated Scheduling Optimization and PlanningGroup (ASAP)rdquo PATATrsquo97 Proceedings of the 2nd Intenational Conference on thePractice And Theory of Automated Timetabling 1997

[Burke2000] Burke Edmund amp Eliman David amp Weare Rupert ldquoA GeneticAlgorithm Based University Timetabling Systemrdquo PATATrsquo2000 Proceedings of the 5ft

Intenational Conference on the Practice And Theory of Automated Timetabling 2000

[Burke2001] Burke EK amp Eliman DGamp Weare R ldquoAutomated Scheduling OfUniversity Examsrdquo Leeds 2001

[Burke2002] Burke Edmund amp Eliman David amp Weare Rupert ldquoExaminationTimetabling in British Universities ndash A Surveyrdquo Leeds 2002

[Carrasco 2004] Carrasco Marco amp Pato Margarida ldquoSolving Real ClassTeacherTimetabling Problems using Neural Networksrdquo Facultade de Ciencias University ofLisboa Portugal

[Chorafas 1990] Chorafas Dimitris N ldquoKnowledge Engineeringrdquo Van NostrandReinnhold New York USA

Referencias Bibliograacuteficas

[Corne 1993] Corne D ldquoSolving the module exam scheduling problem with geneticalgorithmsrdquo Proceedings of the 6th Intenational conference in Industrial andEngineering applications of Artificial Intelligence and Expert Systems1993

[Daellenbach 1987] Daellenbach Hans amp McNickle Donald ldquoIntroduccioacuten a teacutecnicasde Investigacioacuten de Operacionesrdquo CECSA Meacutexico 1987

[Davis 1991] Davis L ldquoHandbook of Genetic Algorithmsrdquo Van Nostrand ReinholdNew York NY

[Demist2000] Demist ldquoDepartamental Timetabling Proyect ProposalDeMIStinterface to Timetabling Package Proyectrdquo Demist University 2000

[Detcher 1990] Detcher R ldquoEnhancement Schemes for Constraint Processing BackJumping Learning and Cutset Decompositionrdquo Artificial Intelligence 41 (1990)

[Eliman 2000] Eliman David ldquoSpecialised Recombinative Operators for TimetablingProblemsrdquo Cambridge University Press New York 2000

[Elmohamed2000] Elmohamed Saleh ldquoThe timetabling problemrdquo PATATrsquo2000Proceedings of the 5th Intenational Conference on the Practice And Theory ofAutomated Timetabling 2000

[Elmohamed2001] Elmohamed Saleh ldquoConstraint based university coursetimetablingrdquo 4th World Congress on Timetabing Aplication of advanced informationTechnologies London 2001

[Fahrion y Dollanski 1992] Fahrion R amp G Dollanski ldquoConstruction of UniversityFaculty Timetables using Logic Programmingrdquo ACM Sigsoft Notes vol 9 no 3 May1992

[Frenzel 1986]Frenzel Louis E ldquoCrash Course in Artificial Intelligence and ExpertSystemsrdquo Howard W Sams amp Co McMillan Inc Indianapolis USA

[Gerez 1985] Gerez Victor amp Mier Mauricio ldquoDesarrollo y administracioacuten deprogramas de computadorardquo McGraw Hill Meacutexico 1985

[Gervaacutes 1999] Gervaacutes P amp San Miguel B ldquoSequential Building of ConstrainedTimetables Using Rule-Based Heuristics An Expert System for AutomatedTimetablingrdquo Congreso Internacional de Investigacioacuten en Ciencias Computacionales

Referencias Bibliograacuteficas

[Giarratamo 1998] Giarratamo Joseph y Gary Riley ldquoExpert Systems Principles andProgrammingrdquo PWS Kent Publishing Company Boston USA

[Gines 1986] Gines B amp Boose J ldquoKnowledge Acquisition for Knowledge-BasedSystemsrdquo Vol 1amp2 Academic Press London U K

[Goldberg 1989] Goldberg DE ldquoGenetic Algorithms in SearchOptimization andMachine LearningrdquoAddison-Wesley

[Kang y White 1994 ] Kang L amp White GM ldquoA Logic Approach to the Resolutionof Constrains in Timetablingrdquo European Journal of Operational Research vol 61 1994

[Kandel 1991] Kandel Abraham ldquoFuzzy Expert Systemsrdquo CRC Press Inc LondonUK 1991

[Kendall1999] Kendall y Kendall ldquoAnaacutelisis y disentildeo de sistemasrdquo 3ordf edicion PearsonEducacioacuten

[Koza 1992] Koza JR ldquoGenetic Programming On the Programming of Computers bymeans of Natural Selectionrdquo Cambridge MA MIT Press

[Martiacutenez 1999] Martiacutenez Alfaro Horacio ldquoSolucioacuten al problema de asignacioacuten desalones de clases horario y grupo mediante templado simuladordquo Memorias 6ordm CongresoInternacional de Mecatroacutenica e Inteligencia Artificial Meacutexico 1999

[Medina 2004] Medina Pasaflores Horacio ldquoFundamentos de Algoritmos GeneacuteticosrdquoTesis de licenciatura Zacatepec Mexico 2004

[Michalewicz 1992] Michalewicz Z ldquoGenetic algorithms + Data Structures =Evolution Programsrdquo Springer-Verlag New York NY

[Negoita1985] Negoita ConstantinV Expert Systems and Fuzzy Systems TheBenjamin Cummings Publishing Co Menlo Park CA USA

[Nielsoft 2000] Nielsoft informatica ldquoManual de usuario Mimosa for windowsrdquo

[Paechter 1994] Paechter B ldquoTwo solutions to the general timetabling problemusing evolutionary methodsrdquo IEEE WCCI 1994

[Pluss1999] Pluss JJ ldquoSistemas expertos un enfoque pragmaacuteticordquo UNR

Referencias Bibliograacuteficas

[Rich 1996] Rich E y Knight K ldquoInteligencia Artificialrdquo McGraw HillInteramericana Madrid Espantildea

[Russell 1996] Russell S y Norvig P ldquoInteligencia Artificial un enfoque modernordquoPrentice Hall Mexico 1996

[Sanchez1999] Sanchez y Beltran ldquoSistemas expertos una metodologiacutea deprogramacioacutenrdquo Macrobit

[Schedul2000] SchedulExpert ldquoCourse scheduling in post educational institutionsrdquo EdAddison Wesley 2000

[Trick 1999 ] Trick Michael ldquoNetwork resources for coloring a graphrdquo Oracle PressEd McGraw Hill 1999

[Turban 1995] Turban Efraim ldquoDecision Support and Expert Systems ManagementSupport Systemsrdquo Fourth Edition Orentice Hall NJ USA

[Waterman1986] Waterman Donald A ldquoA Guide to Expert Systemsrdquo Addison-Wesley Publishing Co USA

[Weare2000] Weare Rupert amp Burke Edmundo amp Eliman David ldquoA Questionnaireon Exam Timetabling in Universitiesrdquo Annual review of computer Science Volume 2Palo Alto 2000

[Wilke 2002] Wilke P amp Grobner M amp Oster N ldquoA hibrid Genetic Algorithm forSchool Timetablingrdquo Advances in Artificial Intelligence Springer Lecture Notes inComputer Science New York

[Yoshikawa 1994] Yoshikawa M amp Kaneko KldquoA Constraint-based Approach toHigh School Timetabling Problems A Case Studyrdquo AAAI-94 12ordm NationalConference on Artificial Intelligence

Referencias Bibliograacuteficas

Referencias electroacutenicas

httpwwwmonografiacuteascomtrabajos12inteartfinteartfshtmlObregoacuten Arturo Inteligencia artificial y Sistemas expertos IIMAS-UNAM (1992)

httpwwwlafacucomapuntesinformaticasist_conodefaulthtmCruz Ochoa Wilson Sistemas de conocimiento

httpwwwingenieroseninformaticaorgrecursostutorialessist_exphtmlZambrano Molina Darwin Sistemas expertos

httpredcientificacomdocdoc199008210001htmlSamper Marquez Juan Joseacute Introduccioacuten a los sistemas expertos Madrid 2000

httpmismonografiascomarSistemas20expertofuzzyhtmlArede Dario Sistema experto fuzzy

httpcruzrojaguayaorginteligenciainterhtmlAyuquina Martha amp Arellano Gregorio Inteligencia artificial Universidad de Guayaquil

httpdmiuibesabasolointart1-introduccionhtmlAbasolo Mariacutea Joseacute Dra Inteligencia Artificial

Page 8: BORIS ANTONIO ARANDA BENITEZ

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

LISTA DE FIGURAS

Figura Nombre Paacutegina

31 Arquitectura de un Sistema Experto 2632 Pseudocoacutedigo del Algoritmo Geneacutetico simple 3341 Mapa conceptual del proyecto 5242 Diagrama de secuencia 5443 Sistema Experto generador de grupos 5544 Diagrama del moacutedulo Programacioacuten Loacutegica de Restricciones 5745 Diagrama del moacutedulo Algoritmo Geneacutetico 5846 Diagrama de Sistema Experto para sugerir profesor a asignatura 6047 Diagrama de Sistema Experto para sugerir asignaturas para

catedraacutetico61

48 Diagrama de contexto del proyecto 6449 Diagrama de funciones fundamentales (entradas) 65410 Diagrama de funciones fundamentales (salidas) 66411 Diagrama entidad relacioacuten del moacutedulo administrativo 67412 Diagrama E-R del moacutedulo para determinar y ajustar nuacutemero de

grupos68

413 Diagrama E-R del moacutedulo para asignar aulas (Algoritmo Geneacutetico) 69414 Diagrama E-R del moacutedulo para asignar horario (PLR) 70415 Diagrama E-R del moacutedulo designa mejor catedraacutetico (Sistema

Experto)71

416 Diagrama E-R del moacutedulo selecciona mejor materia (SistemaExperto)

72

51 Portada inicial del proyecto 8852 Acerca del sistema 8953 Menuacute principal del proyecto 8954 Menuacute grupos por abrir 9055 Materias 9056 Consulta materias 9157 Pantalla servicios escolares 9158 Pantalla consulta servicios escolares 9259 Pantalla criterios por materia 92510 Pantalla consulta criterios por materia 93511 Pantalla carreras 93512 Pantalla criterios 94513 Pantalla consulta criterios 94514 Pantalla reglas 95515 Pantalla consulta reglas 95516 Pantalla ajustes 96

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

517 Pantalla consulta ajustes 96518 Pantalla criterios por regla 97519 Pantalla consulta criterios por regla 97520 Pantalla caacutelculo de ajustes 98521 Pantalla explicacioacuten de la inferencia 98522 Pantalla inicial del moacutedulo generacioacuten de horarios 99523 Pantalla principal del moacutedulo generacioacuten de horarios 99524 Pantalla principal del menuacute Algoritmos Geneacuteticos 100525 Pantalla de administracioacuten de grupos 100526 Pantalla de consulta de administracioacuten de grupos 101527 Pantalla del control de aulas 101528 Pantalla de consultas del control de aulas 102529 Pantalla para generacioacuten de poblacioacuten inicial 102530 Pantalla de evaluacioacuten de versiones 103531 Pantalla del proceso de seleccioacuten 103532 Pantalla del proceso de clonacioacuten 104

533 Pantalla de mutacioacuten 104534 Pantalla del proceso de cruzamiento 105535 Horarios finales 105536 Pantalla menuacute seleccioacuten de catedraacuteticos 106537 Pantalla de perfiles 106538 Pantalla de consulta perfiles 107539 Pantalla perfiles de las materias 107540 Pantalla consulta perfiles de las materias 108541 Pantalla captura datos de catedraacuteticos 108542 Pantalla consulta datos de catedraacuteticos 109543 Pantalla captura perfil de catedraacuteticos 109544 Pantalla consulta perfil de catedraacuteticos 110545 Pantalla muestra inferencia catedraacuteticos para materia 110546 Pantalla explicacioacuten del porqueacute un maestro puede dar una materia 111547 Pantalla materias que puede impartir un profesor 111548 Pantalla de explicacioacuten del porqueacute un profesor puede dar una

materia112

61 Portada inicial del proyecto 11562 Menuacute principal del proyecto 11663 Menuacute grupos por abrir 11664 Pantalla menuacute seleccioacuten de catedraacuteticos 11765 Pantalla principal del menuacute Algoritmos Geneacuteticos 11766 Pantalla de captura de datos de las Materias 11867 Pantalla de captura de datos de Criterios por Materia 11968 Pantalla de captura de datos de Carreras 11969 Pantalla caacutelculo de ajustes 120

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

610 Pantalla inicial del moacutedulo generacioacuten de horarios 121611 Pantalla principal del moacutedulo generacioacuten de horarios 122612 Pantalla del control de aulas 123613 Pantalla de consultas del control de aulas 123614 Pantalla de genera poblacioacuten inicial 124615 Pantalla de evaluacioacuten de versiones 124616 Pantalla del proceso de seleccioacuten 125617 Pantalla del proceso de clonacioacuten 125618 Pantalla de mutacioacuten 126619 Pantalla del proceso de cruzamiento 126620 Horarios finales 127621 Pantalla captura perfil de catedraacuteticos 128622 Pantalla muestra inferencia catedraacuteticos para materia 128623 Pantalla explicacioacuten porque un maestro puede dar una materia 129624 Pantalla materias que puede impartir un profesor 129625 Pantalla de explicacioacuten porque un profesor puede dar una materia 130

Capiacutetulo 1 Introduccioacuten

CAPIacuteTULO 1

INTRODUCCIOacuteN

11 Antecedentes

iquestQueacute es un horario

ldquoEl horario completo bien puede gobernar las vidas demiles de alumnos y cientos de profesores para los 200 diacuteasdel antildeo escolar semestre a semestre hora tras hora Comouna poderosa herramienta puede faacutecilmente crear o deshacersituaciones de ensentildeanza aprendizajerdquo [Johnson 1980]

En la educacioacuten superior la historia siempre es la misma la proporcioacuten de tiempodictada por el horario para los alumnos y profesores es generalmente muy baja Apesar de esto las dificultades en la creacioacuten de los horarios son grandes Existenvarios departamentos y carreras cada uno con sus propias ideas de coacutemo y cuaacutendo sedeben programar sus cursos El nuacutemero de estudiantes puede variar considerablementede antildeo en antildeo Similarmente las preferencias de los alumnos a favor o en contra delas materias pueden variar dramaacuteticamente de un semestre a otro Los estudiantespueden tomar cursos de un departamento o de varios de ellos aun maacutes puedenseleccionar materias de otras carreras La reciente desaparicioacuten de las restricciones decreacuteditos para cursar las asignaturas complica maacutes la situacioacuten porque ampliacutea el rangode materias que puede tomar un alumno Los horarios aparecen en varias formasmatutinos vespertinos mixtos y todo el diacutea Los horarios escolares indican cuando unmaestro y un alumno deben ir a cada clase Todas las escuelas tienen un horario decursos que dirige lo que cada estudiante y catedraacutetico debe hacer en determinadomomento Esta tesis versa especiacuteficamente sobre el problema de construir horariospara Institutos Tecnoloacutegicos en Meacutexico

La planeacioacuten de los horarios es un trabajo que se realiza semestralmente antes de iniciarel siguiente periodo escolar tomando en cuenta la demanda de grupos que se ofreceraacuteny asignando a estos grupos los alumnos el aula el catedraacutetico y el horariocorrespondiente mediante informacioacuten que se obtiene de varias maneras

El principal objetivo de este proyecto es dar una solucioacuten aproximada (aceptable) alproblema de la generacioacuten de horarios de una escuela de nivel superior que se resumeasiacute

Capiacutetulo 1 Introduccioacuten

ldquoDado un conjunto de departamentos y carreras asignaturas con prerrequisitos gruposcatedraacuteticos con especialidad y horario definidos aulas laboratorios y alumnos con suspreferencias de materias el problema es construir un condensado de horarios factibleque satisfaga todas las restricciones fuertes y minimice las restricciones medias ysuavesrdquo

Las restricciones fuertes son restricciones de espacio y tiempo tal como planear doscursos en un aula al mismo tiempo Las restricciones medias y suaves son laspreferencias de maestros y estudiantes que deberaacuten ser satisfechas si es posible[Elmohamed 1998]

El problema de la generacioacuten de horarios ha sido tratado por muchos investigadoresutilizando meacutetodos que van desde la investigacioacuten de operaciones hasta disciplinas de laInteligencia Artificial como son Algoritmos Geneacuteticos Recocido Simulado RedesNeuronales etc

12 Planteamiento del problema

La generacioacuten de horarios es una forma particular del problema de asignacioacuten derecursos En el caso maacutes general existe una serie de objetos (recursos) y una serie deprocesos que necesitan ser realizados por cada uno de esos objetos En un contextoeducacional cada estudiante debe asistir a un nuacutemero predeterminado de clases y elprofesor debe impartirlas durante la semana en un aula predeterminada el estudiante elprofesor y el aula pasan aquiacute a ser el objeto y las clases el proceso

La complejidad del problema de la generacioacuten de horarios

La generacioacuten de horarios es un problema de optimizacioacuten combinatorio multi-dimensional no Euclidiano con muacuteltiples restricciones y por lo tanto difiacutecil de resolver[Elmohamed 1998]

El problema de la generacioacuten de horarios esta agrupado dentro de los considerados decomplejidad NP-completos es decir que no pueden ser resueltos en tiempo polinomialusando un algoritmo determiniacutestico No se conoce un algoritmo determiniacutestico detiempo polinomial para resolver alguno de esos problemas y la mayoriacutea de la gente creeque dichos algoritmos no existen[Karp 1972]

La generacioacuten de horarios es la asignacioacuten de lapsos de tiempo a un conjunto de eventossujeto a las restricciones en esas asignaciones Seguacuten Elmohamed [Elmohamed 1998]el problema NP-completo de la elaboracioacuten de horarios es un problema para la

Capiacutetulo 1 Introduccioacuten

satisfaccioacuten de restricciones que puede ser definido de la siguiente maneraPara una escuela dada con

Np profesores con sus horarios y turnos Nq materias con su temario y objetivosNx aulas y laboratorios con su capacidad Ns estudiantes

es requerido programar Nt parejas de

alumno-materiahora-materiamaestro-materiaaula-materia

una vez definidas las parejas anteriores se deben programar elementos de la formamateria-maestro-hora -aula

En un liacutemite de Nt lapsos de tiempo para producir una programacioacuten factible En unaprogramacioacuten factible no se puede encontrar a un profesor grupo o estudiante en maacutesde un lugar al mismo tiempo y un aula no puede ser asignada con maacutes de una clase a lavez o maacutes estudiantes de su capacidad o un profesor programado fuera de su horarionormal o con maacutes horas frente a grupo de las reglamentarias ademaacutes de un conjuntoadicional de restricciones

Importancia del problema

La administracioacuten de los recursos comprende la apertura de los grupos para inscribir alos alumnos el proacuteximo semestre la asignacioacuten de carga acadeacutemica a los catedraacuteticos lautilizacioacuten de aulas y laboratorios de quiacutemica produccioacuten coacutemputo electromecaacutenicaaulas de dibujo y demaacutes instalaciones del Instituto Tecnoloacutegico de Zacatepec (ITZ)Cuando por errores imputables al creador de los horarios se hizo una mala planeacioacuten sederivan los siguientes problemasbull Alumnos que se inscriben con una carga de creacuteditos menor a la miacutenima por falta de

grupos suficientesbull Alumnos que deben estar en el ITZ desde las 700 hrs hasta las 2000 hrs varios

diacuteas a la semana por abrir grupos en horarios muy separadosbull Alumnos que pierden la secuencia de materias seriadas por falta de cupobull Alumnos que deben permanecer 1 oacute 2 semestres maacutes en el ITZ por no prever

suficientes grupos para semestres terminalesbull Catedraacuteticos que no imparten el miacutenimo reglamentario de horas frente a grupo por

no crearles grupos suficientesbull Catedraacuteticos a los que se les avisa 1 diacutea antes del inicio de clases que impartiraacuten una

Capiacutetulo 1 Introduccioacuten

asignatura nuevabull Asignaturas que son impartidas por profesores que no cumplen el perfil deseado en

esa asignaturabull Choque de grupos en las aulasbull Choque de grupos en laboratoriosbull Falta de laboratorio a algunos gruposbull Deficiente utilizacioacuten de las aulas

La creacioacuten de un sistema que evite de manera automaacutetica caer en errores como losmencionados NO ES TAREA TRIVIAL intentar resolver este problema involucra laelaboracioacuten de un ldquosistema inteligenterdquo capaz de tomar decisiones aprender inferirbasaacutendose en hechos generar nueva informacioacuten y a partir de ella nuevamente volver adecidir El sistema que se elabore debe tener la capacidad para deducir e inducir de unamanera combinada

Desventajas del sistema actual

La mayoriacutea de los problemas anteriores son ocasionados por alguno o varios de lossiguientes motivosbull Todo el proceso de caacutelculo y administracioacuten de los recursos es manualbull El proceso de elaboracioacuten coincide con el cierre de semestre actual y como las

personas responsables tambieacuten son catedraacuteticos deben combinar la generacioacuten dehorarios con las evaluaciones finales revisioacuten de proyectos y entrega decalificaciones de sus grupos a los alumnos

bull La elaboracioacuten de los horarios es un proceso que se lleva semanas de labor diariabull Requiere la atencioacuten total de los coordinadores durante todo el tiempo de

elaboracioacutenbull Al no tener la informacioacuten automatizada se tienen peacuterdidas de tiempo en la toma de

decisiones como por ejemplo en el preacutestamo de aulas no utilizadas o en la forma decompartir catedraacuteticos

bull Se tienen fuertes restricciones debido a los horarios de los catedraacuteticosbull Hay fuertes dificultades cuando se deben negociar cambios de horarios porque el

proceso implica mover asignaturas buscar aulas dejar paquetes de materias porsemestre etc

bull El estado de aacutenimo del coordinador influye en la elaboracioacuten de los horarios

13 Objetivo general

Generacioacuten de una solucioacuten aproximada del condensado de horarios para una escuela denivel superior que satisfaga las restricciones ocasionadas por los recursos involucradosmediante la elaboracioacuten de un sistema hiacutebrido (experto geneacutetico y loacutegico restrictivo)

Capiacutetulo 1 Introduccioacuten

14 Objetivos especiacuteficos

Se tiene el disentildeo e implementacioacuten de un sistema que

bull Proporciona una solucioacuten aproximada aceptable al problema de la generacioacuten dehorarios

bull Permite a los coordinadores delegar a la computadora la asignacioacuten de recursosbull Ahorra tiempo en la generacioacuten de los horariosbull Reduce el trabajo manualbull Agiliza la toma de decisionesbull Reduce el tiempo de elaboracioacuten de horariosbull Facilita la modificacioacuten de informacioacuten generadabull Aumenta la eficiencia en las negociaciones entre jefes y coordinadoresbull Lleva al Instituto Tecnoloacutegico de Zacatepec (ITZ) a la modernizacioacuten en este

proceso

15 Justificacioacuten del sistema

151 Justificacioacuten teoacuterica

La utilizacioacuten de la Inteligencia Artificial (IA) para la solucioacuten de problemas de la vidacotidiana ha sido una estrategia utilizada cuando los sistemas tradicionales decomputacioacuten no proveen mecanismos suficientes para garantizar una solucioacuten adecuadasu utilizacioacuten para la generacioacuten de horarios (creacioacuten de grupos asignacioacuten de horaasignacioacuten de aula determinacioacuten de catedraacutetico) presenta una alternativa ideal paracomprobarlo

152 Justificacioacuten metodoloacutegica

La utilizacioacuten de un grupo de Sistemas Expertos que realice la asignacioacuten de losrecursos para la generacioacuten de grupos y le proponga una materia determinada a unprofesor seguacuten el perfil acadeacutemico de ambos reuacutene las caracteriacutesticas necesarias paradar la solucioacuten elegante y efectiva al problema planteado anteriormente porque

bull Se requiere del conocimiento de un experto para plantear el funcionamiento delsistema

bull El conocimiento se alimentaraacute a una base de conocimientos que conste de variaspartes

bull Para la generacioacuten de grupos de una asignatura dada el sistema debe ldquorazonarrdquo paradeterminar cuantos de eacutestos se deben abrir para ofertarlos a los alumnos

Capiacutetulo 1 Introduccioacuten

bull En la asignacioacuten de nuevas materias a los catedraacuteticos el sistema debe ldquodeterminarrdquoquieacuten es el maacutes idoacuteneo para impartirla de acuerdo al perfil de ambos materia ymaestro

La Programacioacuten Loacutegica de Restricciones (PLR) es una de las teacutecnicas que maneja demanera natural informacioacuten sometida a ciertas restricciones y fue seleccionada paraseguir trabajando en la resolucioacuten del problema porque

bull Los horarios deben satisfacer ciertas restricciones como por ejemplo no se debengenerar mas grupos de los necesarios no puede haber dos materias con el mismogrupo no deben existir grupos del mismo paquete a la misma hora etc

bull Cada paquete de un semestre es un objeto que por siacute mismo posee ciertascualidades y restricciones por ejemplo no debe tener horas sin asignatura entre lahora inicial y final existen materias que se deben impartir de una hora diaria otrasdeben ser impartidas de 2 horas diarias etc

bull La solucioacuten presentada por la PLR inicia con datos aleatorios de un horario despueacutesse verifica si las restricciones se cumplen o no si se cumplen se guarda el dato si nose genera un nuevo dato aleatorio

Los Algoritmos Geneacuteticos utilizados aquiacute para asignar aula a los grupos cumplen con lametodologiacutea de la Computacioacuten Evolutiva porque

bull Se tienen datos iniciales de los grupos (materia-hora)bull Se genera una poblacioacuten inicial que son n versiones de un condensado de horarios

sin aulabull Esta poblacioacuten inicial es evaluada se seleccionan los condensados maacutes adecuados y

se eliminan las versiones menos adecuadasbull Se realizan cruzamientos mutaciones clonaciones y se crea la nueva generacioacuten de

horariosbull Se repite el proceso hasta llegar a una utilizacioacuten eficiente de las aulas

Por lo anterior se pueden observar las ventajas de utilizar un sistema inteligente sobreuno convencional para solucionar el problema planteado

Una vez definido el modelo para solucionar el problema de la asignacioacuten de horariospara las asignaturas aulas y catedraacuteticos de una institucioacuten de educacioacuten superior seraacutefaacutecil extrapolarlo para solucionar algunos problemas referentes a la planeacioacuten dehorarios de otro tipo de escuelas de nivel medio superior

153 Justificacioacuten praacutectica

La creacioacuten de un sistema que resuelva el problema de la elaboracioacuten de horarios ygenere automaacuteticamente la programacioacuten de grupos aulas y maestros sin violar las

Capiacutetulo 1 Introduccioacuten

restricciones fuertes minimizando las restricciones medias y suaves optimizando lautilizacioacuten de las aulas cumpliendo con las restricciones de los profesores asignandoprofesores adecuados para impartir las clases traeraacute como consecuencia condicionespara mejorar el proceso de ensentildeanza aprendizaje

16 Alcances y limitaciones

Alcances

El sistema generaraacute un espacio de soluciones finito que satisfaga las restriccionesfuertes medias y suaves optimizando el uso de los recursos disponibles se puede decirque el sistema optimizaraacute los recursos cuando los horarios generados tengan lascaracteriacutesticas mencionadas maacutes adelante

Esta tesis documenta la creacioacuten de un sistema basado en el conocimiento parasolucionar el problema de la generacioacuten de horarios en el Instituto Tecnoloacutegico deZacatepec que permite

bull Generar grupos suficientes para que todos los estudiantes se inscriban al menos conla carga miacutenima reglamentaria

bull Que los alumnos tengan horarios adecuados a sus necesidades y preferenciasbull Que todos los grupos tengan capacidad suficiente para todos los estudiantes que

deseen inscribirsebull Que los profesores impartan materias de acuerdo a su perfil profesionalbull Evitar los choques de grupos en aulas y laboratoriosbull Que todos los grupos tengan aula asignada desde el inicio del semestrebull La utilizacioacuten oacuteptima de las aulas y laboratoriosbull La correcta asignacioacuten de aulas y laboratorios a los cursosbull Realizar de manera automaacutetica la asignacioacuten de los recursosbull Determinar el nuacutemero de grupos que se deben abrirbull Llenar las aulas con grupos sin permitir choque de horariosbull Imprimir la lista de grupos ofertados para el semestre siguientebull Cuando exista el grupo de una materia sin maestro determinar cual es el mejor para

impartirla

Tener un Sistema terminado que contenga los siguientes moacutedulos

Sistema administrativo para control de horarios Sistema Experto para determinar la cantidad de grupos por abrir Sistema Experto para sugerir materias a un catedraacutetico Sistema Experto para seleccionar los mejores catedraacuteticos para impartir una

asignatura

Capiacutetulo 1 Introduccioacuten

Moacutedulo de Programacioacuten Loacutegica de Restricciones para generar los horarios a lospaquetes de materias por semestre

Moacutedulo de Algoritmo Geneacutetico para asignar aula a los grupos

Cada moacutedulo tendraacute

bull Interfaces de usuario amigablesbull Tiempos de ejecucioacuten raacutepidos (independientemente de la maacutequina objetivo)bull Reglas de inferencia para generar resultados (soacutelo los Sistemas Expertos)bull Buacutesquedas heuriacutesticas o aleatorias seguacuten el casobull Procesos para realizar induccioacuten y deduccioacuten (soacutelo los Sistemas Expertos)bull Manejo de incertidumbre (soacutelo los Sistemas Expertos)bull Un moacutedulo de explicaciones en lenguaje natural

Limitaciones

El sistema estaacute disentildeado para generar horarios de una escuela de nivel superior donde elcoordinador de cada carrera es el responsable de la generacioacuten de sus horarios controlarsus profesores impartir cierto nuacutemero de materias y utilizar cierta cantidad de aulas ylaboratorios

Trabaja exclusivamente en lenguaje espantildeol

Las reglas de la base de conocimiento tienen un formato predeterminado por unasintaxis definida para el sistema

El sistema estaacute elaborado para trabajar en microcomputadoras compatibles con IBM

No maneja los horarios individuales de los alumnos en el proceso de inscripcioacuten estaactividad deberaacute ser realizada por los sistemas del departamento de servicios escolares

Capiacutetulo 2 Marco teoacuterico

CAPIacuteTULO 2

MARCO TEOacuteRICO

21 El estado del arte

211 Antecedentes

El problema de la generacioacuten de horarios ha sido atacado de varias maneras a nivelmundial inclusive existe un grupo internacional que convoca al congreso llamadoPATATxx (Practice and Theory of Automated Timetabling) donde xx es el antildeo delcongreso en cuestioacuten

La ASAP (Automated scheduling optimization and planing group) es otro organismocuyo fin principal es conducir investigacioacuten en modelos heuriacutesticas y algoritmos para laproduccioacuten automaacutetica de soluciones de alta calidad a una gran variedad de problemasde planeacioacuten y optimizacioacuten del mundo real incluyendo elaboracioacuten de horarioslogiacutestica asignacioacuten de espacio y mantenimiento de inventarios

212 Algunos meacutetodos para resolver el Problema de laGeneracioacuten de Horarios

La generacioacuten de horarios acadeacutemicos ha sido acometida por muchos investigadoresbaacutesicamente dentro del aacuterea de la Investigacioacuten de Operaciones

2121 Investigacioacuten de Operaciones

El algoritmo para resolver problemas de asignacioacuten se denomina Huacutengaro ya que fuerondos matemaacuteticos Huacutengaros Koumlnig (1916) y Egervary (1931) los que aportaron lasteoriacuteas que sirven de base a este meacutetodo [Daellenbach 1987]

Este problema se presenta en diversos casos de toma de decisiones Los problemastiacutepicos de asignacioacuten implican asignar tareas a maacutequinas trabajadores a tareas yproyectos personal de ventas a territorios de ventas contratos a licitaciones horarios deaulas disponibles a horarios de maestros disponibles enfermos a camas disponibles delhospital cierto nuacutemero de empleados a cierta cantidad de puestos en una empresaaviones a destinos aeacutereos entre otros

Capiacutetulo 2 Marco teoacuterico

Una caracteriacutestica importante de los problemas de asignacioacuten es que se asigna untrabajador una tarea a una sola maacutequina proyectoEn particular se busca elconjunto de asignaciones que optimice el objetivo planteado tal como minimizar costosminimizar tiempo o maximizar utilidad

La formulacioacuten del problema general de asignacioacuten es

Sujeta a

Corresponde a un caso especial del problema del transporte en el cual las variables Xijsoacutelo pueden tomar el valor 0 oacute 1 tomar el valor 1 si el origen i se hace corresponder aldestino j y 0 en caso contrario

El Algoritmo Huacutengaro

Este algoritmo se usa para resolver problemas de minimizacioacuten ya que es maacutes eficazque el empleado para resolver el problema del transporte por el alto grado dedegeneracioacuten que pueden presentar los problemas de asignacioacuten Las fases para laaplicacioacuten del meacutetodo Huacutengaro son

Capiacutetulo 2 Marco teoacuterico

Paso 1 Encontrar primero el elemento maacutes pequentildeo en cada fila de la matriz de costosmm se debe construir una nueva matriz al restar de cada costo el costo miacutenimo de cadafila encontrar para esta nueva matriz el costo miacutenimo en cada columna A continuacioacutense debe construir una nueva matriz (denominada matriz de costos reducidos) al restar decada costo el costo miacutenimo de su columna

Paso 2 (En algunos pocos textos este paso se atribuye a Flood) Consiste en trazar elnuacutemero miacutenimo de liacuteneas (horizontales o verticales o ambas uacutenicamente de esasmaneras) que se requieren para cubrir todos los ceros en la matriz de costos reducidos sise necesitan m liacuteneas para cubrir todos los ceros se tiene una solucioacuten oacuteptima entre losceros cubiertos de la matriz Si se requieren menos de m liacuteneas para cubrir todos losceros se debe continuar con el paso 3 El nuacutemero de liacuteneas para cubrir los ceros es iguala la cantidad de asignaciones que hasta ese momento se pueden realizar

Paso 3 Encontrar el menor elemento diferente de cero (llamado k) en la matriz decostos reducidos que no estaacute cubierto por las liacuteneas dibujadas en el paso 2 acontinuacioacuten se debe restar k de cada elemento no cubierto de la matriz de costosreducidos y sumar k a cada elemento de la matriz de costos reducidos cubierto por dosliacuteneas (intersecciones) Por uacuteltimo se debe regresar al paso 2

Notas

1 Para resolver un problema de asignacioacuten en el cual la meta es maximizar la funcioacutenobjetivo se debe multiplicar la matriz de ganancias por menos uno (-1) y resolver elproblema como uno de minimizacioacuten

2 Si el nuacutemero de filas y de columnas en la matriz de costos son diferentes el problemade asignacioacuten estaacute desbalanceado El meacutetodo Huacutengaro puede proporcionar una solucioacutenincorrecta si el problema no estaacute balanceado debido a lo anterior se debe balancearprimero cualquier problema de asignacioacuten (antildeadiendo filas o columnas ficticias) antes deresolverlo mediante el meacutetodo Huacutengaro

3 En un problema grande puede resultar difiacutecil obtener el miacutenimo nuacutemero de filasnecesarias para cubrir todos los ceros en la matriz de costos actual Se puede demostrarque si se necesitan j liacuteneas para cubrir todos los ceros entonces se pueden asignarsolamente j trabajos a un costo cero en la matriz actual esto explica porqueacute terminacuando se necesitan m liacuteneas

Capiacutetulo 2 Marco teoacuterico

Tambieacuten han aparecido meacutetodos no convencionales que atacan el problema desdediferentes aacutengulos Los maacutes usuales son

Algoritmos Geneacuteticos Redes Neuronales Recocido Simulado Buacutesquedas Tabuacute Sistemas Expertos Programacioacuten Loacutegica de Restricciones Grafos Coloreados Operadores Recombinatorios Especializados

2122 Algoritmos Geneacuteticos

Los Algoritmos Geneacuteticos han sido utilizados satisfactoriamente para planear exaacutemenesy cursos en cierto nuacutemero de casos [Corne 1993] utiliza una buena aproximacioacutentradicional donde cada gene representa la hora en la cual se presentaraacute un examen ocurso Con operadores de cruzamiento y mutacioacuten como los mencionadosanteriormente agrega sustanciosos ahorros de tiempo al meacutetodo de Corne [Paechter1994] da una aproximacioacuten diferente donde el gene de cada examen no solo especificaldquoel cuandordquo sino que tambieacuten busca un nuevo horario del examen si despueacutes delcruzamiento el curso esta causando un conflicto Si el examen no puede ser programadoen alguna hora entonces no se agrega a la planeacioacuten con la finalidad de no tenerhorarios infactibles

[Burke1994] incorpora dominios de conocimiento especiacutefico para asegurar que ningunade las soluciones candidato es no factible En particular una representacioacuten directa seutilizada que incluye no soacutelo el cuaacutendo sino tambieacuten el doacutende un curso o examendeberaacuten ser tomados permitiendo al programador de horarios detener la ejecucioacuten delalgoritmo en cualquier punto y tener ya una serie de soluciones de buenos horariosfactibles

2123 Programacioacuten Loacutegica de Restricciones

Varios autores han presentado teacutecnicas de Programacioacuten Loacutegica de Restricciones pararesolver problemas de asignacioacuten de horarios pero eacuteste sigue siendo un nuevo enfoqueTambieacuten han aparecido algunos usando PLR para la planeacioacuten de clase-maestro[Yoshikawa 1994]

Kang y White presentaron una buena aproximacioacuten estaacutendar de PLR programandocursos sin permitir ningun conflicto [Kang y White 1994] Ellos usaron una teacutecnica dereversa equivalente al backtracking con lo cual cuando un curso no puede ser

Capiacutetulo 2 Marco teoacuterico

asignado uno similar es desasignado y el nuevo es colocado en su lugar Esto previeneuna buacutesqueda exhaustiva completa Esto tambieacuten introduce el concepto de undelimitador de tamantildeo que establece un maacuteximo en el tamantildeo del aula que puede usarun curso en particular Las restricciones son priorizadas en cinco diferentes categoriacuteasdonde la categoriacutea cinco debe ser liberada antes que la categoriacutea cuatro y asiacute con lasdemaacutes Este procedimiento fue utilizado para programar exitosamente los cursos de laUniversidad de Otawa

Tambieacuten se ha utilizado la teacutecnica de la Programacioacuten Loacutegica de Restricciones parahacer los horarios de una facultad utilizando una regla heuriacutestica para seleccionar quecurso asignar primero [Fahrion y Dollanski 1992]

2124 Redes Neuronales

De las distintas categoriacuteas de las Redes Neuronales Artificiales la maacutes apropiada pararesolver el problema es la familia de las Redes Neuronales de reaccioacuten basadas enneuronas multiestado con ecuaciones de teoriacutea de campos con significado controlandolas dinaacutemicas Las ecuaciones anteriores son usadas en lugar de los procedimientospara actualizacioacuten de demanda estocaacutesticos que han sido usados por otros esquemas paraevitar quedar atorados en circuitos locales miacutenimos [Carrasco 2004]

2125 Recocido Simulado

Recocido Simulado se refiere al uso de una teacutecnica de optimizacioacuten combinatoria odiscreta Divide el problema en grupos del mismo tiempo de clase los cuales sonespecificados por cada departamento acadeacutemico basados en la habilidad de losinstructores Funciona asiacute

1 El proceso asigna aulas procesando un grupo a la vez empezando con el primero2 El proceso continuacutea hasta que todos los grupos son procesados3 Cuando una solucioacuten es obtenida dividiendo el problema en conjuntos de horario

una mutacioacuten especial es generada con grupos traslapados Esto podriacutea generar unamala asignacioacuten de aula para minimizar esto se utiliza el siguiente paso

4 Los grupos son procesados basados en el nuacutemero de aulas este nuacutemero de aulas esoptimizado y se termina con las horas de clase con el miacutenimo de paquetes a esa hora

5 La implementacioacuten del programa genera una base de datos con la nueva asignacioacutende salones para el proacuteximo semestre [Abramson 1991]

2126 Operadores Recombinatorios Especializados

Los operadores de cruzamiento de los Algoritmos Geneacuteticos producen buenas

Capiacutetulo 2 Marco teoacuterico

combinaciones de genes para ser pasados entre los diferentes miembros de unapoblacioacuten En los Algoritmos Geneacuteticos estaacutendar es un procedimiento similar a escogerlos primeros n genes del primer padre y los uacuteltimos del segundo padre esteprocedimiento no es uacutetil en situaciones donde existen fuertes restricciones sobre laforma de los miembros de la poblacioacuten aquiacute un operador violaraacute esos requerimientosEl operador de recombinacioacuten heuriacutestico hiacutebrido trabaja asiacute

1 Los grupos no programados del periodo anterior son pasados al algoritmo2 Primero selecciona aquellos grupos programados en el periodo i en los padres 1 y 23 Los grupos extra son seleccionados de aquellos programados en el periodo i ya sea

del padre 1 o del padre 2 o de los dejados del periodo i ndash 14 Cualquiera de los grupos no programados es pasado al periodo i+15 Soacutelo los grupos que no crean conflicto con aquellos ya programados para este

periodo pueden ser seleccionados [Wilke 2002]

2127 El Sistema Experto Basado en Reglas

Los Sistemas Basados en Reglas proporcionan un buen punto de referencia para saberque tan buenos son otros meacutetodos en comparacioacuten a esta teacutecnica estaacutendar Varias deestas reglas son usadas para proporcionar sensibles elecciones para los movimientos enel algoritmo de Recocido Simulado en lugar de seleccionar cambios de manera aleatoriase ha usado este sistema como un preprocesador para generar una buena aproximacioacuteninicial y darla al Recocido Simulado

El Sistema Experto Basado en Reglas consiste en un nuacutemero de reglas (o heuriacutesticas) yrecursioacuten convencional para ayudar en la generacioacuten de asignacioacuten de clases Lasestructuras de datos o componentes del sistema son

bull Una matriz de distancias entre los departamentos acadeacutemicos y los edificios queseraacuten utilizados

bull Estructura de los datos de las materias para cada grupo programado en el campobull Estructura para las aulas (independientemente del tipo de aula) involucradas en el

procesobull Horarios para cada periodo de tiempo guardando cuales estaacuten disponibles y

cuales ya fueron ocupadasbull La estructura de los departamentosbull Las preferencias de los estudiantes indicando las clases requeridas

independientemente del semestre que sean las materias [Gervaacutes 1999]

Capiacutetulo 2 Marco teoacuterico

213 Observaciones realizadas a algunos paquetes generadores de horarios

Nombre DeMIStDescripcioacuten Puede describirse como un paquete que realiza bien las operaciones decasa (la propia universidad que lo creoacute) pero salioacute tan costoso como si hubierancomprado un paquete [Demist 2000]Proveedor DeMISt University

KnowTISEs un proyecto iniciado por la universidad de Leeds En la literatura aparece como unpaquete que es mejor para la generacioacuten de Grandes Horarios para una universidad quepara un departamento Utiliza el beneficio de gran cantidad de informacioacutencentralizada para la optimizacioacuten de recursos [Schedul 2000]Leeds University

STARSSTARS(Space Time and Resources Management) Igual que el anterior corre mejor enla elaboracioacuten de horarios de buen tamantildeo que en una aplicacioacuten departamentalDe Montfort University

Meeting maker Office TalkEs un generador de clases y acciones diarias es bueno cuando no es uacutetil el horario delos alumnos ya que proporciona uacutenicamente los espacios para las clases [Gervaacutes 1999]Varios proveedores

GP-UNTISEs un paquete australiano que funciona perfectamente para los requerimientos de lasescuelas secundariasTimetabling Services UK

Syllabus PlusEs una buena opcioacuten para uso departamental cumple los requerimientos de unauniversidad para la generacioacuten de horarios no trabaja a nivel de estudiantes pero si lohace con grupos de ellos no es factible para la generacioacuten de Grandes HorariosScientia LTD

Facility TimetablerEs una buena opcioacuten para uso departamental y para Grandes Horarios tiene interfaz conlos sistemas de alumnos y permite la creacioacuten de horarios individuales permite el uso

Capiacutetulo 2 Marco teoacuterico

centralizado de las aulas para una buena optimizacioacutenFacility Systems

Mimosa for WindowsEs un software general de planificacioacuten de la ensentildeanza y de programacioacuten de horariosLa aplicacioacuten utiliza todas las propiedades de Windows eficientemente es raacutepida tienegran capacidad y lo mas importante es tan flexible que puede aplicarse en todo el tipode escuelas desde la escuela primaria a las universidades desde las escuelasvocacionales a las academias militares

Se podriacutea decir que este producto cubririacutea todas las necesidades de la institucioacuten perohan existido algunos inconvenientes ya que no cubre con las necesidades deldepartamento tan solo da ayuda al usuario para que pueda generar sus horarios ademaacutesel tener tantos botones en pantalla (200) podriacutean confundir al usuario y realizar horarioserroacuteneos y no se resolveriacutea el problema [Nielsoft 2000]Mimosa Software Oy Finlandia

GestHor BSPEs un producto informaacutetico para resolver problemas de horarios escolares en escuelasbaacutesicas escuelas secundarias y escuelas profesionales

Toacutemese en cuenta que la mayoriacutea de los sistemas mencionados se enfoca solo a laasignacioacuten aula ndash materia y no abarca lo que es asignacioacuten materia ndash profesor

22 Los horarios

Existe mucha literatura referente a los horarios con una gran variedad de subtiacutetulos ydiferentes problemas Una gran variedad de algoritmos han sido propuestos empleandometodologiacuteas y heuriacutesticas de buacutesqueda produciendo horarios completos o soacuteloayudando durante el proceso Una de las grandes preguntas para la elaboracioacuten dehorarios es que si eacutestos pueden ser generales es decir iquestse puede encontrar un algoritmoo meacutetodo suficientemente general que produzca buenos horarios para todos losproblemas y para todas las restricciones La alternativa desde luego es continuardesarrollando algoritmos especializados aislados cada vez que un problema de horariosaparece

Al trabajar con una solucioacuten para el problema de los horarios se deben contestar lassiguientes preguntas iquestTodas las escuelas de nivel superior elaboran los horarios de lamisma manera iquestSon grandes o pequentildeas las diferencias en la forma de elaborar loshorarios iquestQueacute tan necesaria es la ayuda de la computadora iquestSoacutelo se requiere unpaquete general para la elaboracioacuten de los horarios iquestQueacute funcionalidad debe tener

Capiacutetulo 2 Marco teoacuterico

dicho paquete iquestQueacute tan grande y complejo es el problema de elaboracioacuten de horariosiquestQueacute propiedades debe poseer un horario aceptable para que una institucioacuten lo use

Se han realizado algunas encuestas para conocer si las escuelas de nivel superior tienensistemas computarizados para la elaboracioacuten de horarios si no los tienen si lonecesitaban y queacute caracteriacutesticas deberiacutea poseer El estudio concluyoacute que existe una grandemanda para tal sistema que se requiere un alto grado de asistencia automatizada yque la mayoriacutea de los elaboradores de horarios no estaban muy contentos con sussistemas actuales [Comm y Mathaisel 1988]

[Dowsland y Lim 1982] consideraron el problema de la elaboracioacuten de horarios peroproporcionaron alternativas en la encuesta de la utilidad de sistemas automatizados[Junginger 1986] establece que ldquoAunque los horarios producidos requierenmodificacioacuten las escuelas estaacuten contentas con los resultados El tiempo ahorrado fueconsiderable arriba del 75rdquo Dowsland por otro lado concluye que ldquoEs muy difiacuteciljuzgar el eacutexito actual de los paquetes para la elaboracioacuten de horarios pero el uso muylimitado de ellos sugiere que sus ventajas son limitadasrdquo Claramente ninguacuten disentildeadorde sistemas puede garantizar la idea de que su producto seraacute bienvenido con los brazosabiertos

[Pendlebury 1986] encuestoacute a las universidades politeacutecnicas britaacutenicas con respecto ala elaboracioacuten de horarios de cursos Doce de las treinta que contestaron la encuestautilizan elaboracioacuten de horarios por computadora (siete a gran escala y cuatro lo hacenen pequentildea escala) Es interesante notar que Pendlebury encontroacute que la mayoriacutea de loscursos se basan en clases que son muy independientes unas de otras y en la mayoriacutea delas instituciones encuestadas los departamentos individuales son responsables deproducir sus propios horarios

221 El problema de la elaboracioacuten de horarios

La elaboracioacuten de horarios es el acto de programar cursos a periacuteodos de tiempo asignarun aula a esos cursos y asignar un catedraacutetico a dicho curso

A menudo se hacen afirmaciones acerca de la naturaleza del problema que puedenpermitir encontrar una solucioacuten maacutes eficientemente Sin embargo cuando se trata deconstruir un sistema general se estaacute limitado a que las afirmaciones son el miacutenimocomuacuten denominador de todos los posibles escenarios

Una informacioacuten impliacutecita que ha sido hecha a menudo es la independencia entreunidades acadeacutemicas separadas Algunas universidades programan preguntando a susdepartamentos los horarios de sus propios cursos Una unioacuten central de dichos horarioses entonces utilizada para asegurar que todas las restricciones relevantes son cumplidasEn muchos casos esta es la forma normal en que es producido el horario de los cursos

Capiacutetulo 2 Marco teoacuterico

aunque algunos departamentos desarrollan su propio software para la programacioacuten decursos

En varias universidades los alumnos pueden tomar algunos de sus cursos endepartamentos diferentes al suyo Obviamente la independencia no debe ser asumidageneralmente debido a que puede haber diferencia en la programacioacuten de los cursos decada departamento En el Tecnoloacutegico de Zacatepec por ejemplo la probabilidadpromedio de que un curso tenga conflicto con uno de otro departamento es 1650mientras que la probabilidad de que dos cursos del mismo departamento tengan conflictoes 2250 notaacutendose una gran diferencia en el resultado

Dificultades encontradas por los responsables de la generacioacuten de horarios

Algunas dificultades experimentadas por los departamentos y facultades sonmencionadas aquiacute

bull Los programas acadeacutemicos se hacen cada vez maacutes flexibles (los estudiantesseleccionan queacute asignaturas tomar cuaacutendo doacutende y con quieacuten)

bull Algunos departamentos tienen asignaturas para ofrecer pero no tienen muchosalumnos

bull Los espacios para ofrecer las materias son cada vez menos y el problema se agravacuando los alumnos no quieren asistir en las tardes o los saacutebados

bull El staff de profesores no siempre estaacute disponible para impartir clases por muacuteltiplesrazones

bull Los alumnos pueden solicitar los grupos del proacuteximo semestre desde antes de queinicie pero al llegar el momento de inscribirse no lo hacen

bull Los departamentos estaacuten ansiosos por ofrecer una gran variedad de grupos teniendolos recursos pero esto puede ocasionar problemas

bull Existe una gran variedad de reglas al momento de asignar las aulas (pertenencia alas carreras prioridades de profesores etc)

bull Como no hay un costo asociado a la utilizacioacuten de un aula y no hay sanciones porreservarla y no utilizarla los departamentos acadeacutemicos no tienen un buen motivopara hacer una correcta utilizacioacuten del espacio

bull La falta de recursos ocasiona el mayor de los problemas porque obliga a laoptimizacioacuten en la planeacioacuten

Cursos y estudiantes

El problema de la elaboracioacuten de horarios estaacute relacionado esencialmente con el nuacutemerode eventos que requieren ser programados en este caso los cursos para los estudiantesClaramente el tamantildeo del problema variacutea entre los diferentes centros de estudio desdepequentildeos problemas con alrededor de 50 a 100 cursos hasta los 500 o 1000 cursos que

Capiacutetulo 2 Marco teoacuterico

programar Esta variacioacuten en el tamantildeo afectaraacute el tiempo requerido para resolver elproblema Un problema pequentildeo puede ser resuelto casi de manera oacuteptima mientrasque en uno grande se deben usar buacutesquedas heuriacutesticas u otras formas de acotar elespacio de buacutesqueda de una solucioacuten en un periodo de tiempo razonable

Se debe esperar que el nuacutemero de cursos y el nuacutemero de alumnos esteacuten correlacionadosEl nuacutemero de cursos ofrecidos y desde luego programados debe ser calculado porextrapolacioacuten del promedio de 5 o 6 cursos por alumno y con cupo promedio de 30alumnos por curso obviamente algunos alumnos se inscribiraacuten en 7 u 8 cursos porsemestre mientras que los cursos tendraacuten inscritos entre 20 y 40 alumnos Losalumnos dependiendo del semestre en que se encuentran inscritos deben matricularse aciertos cursos especiacuteficos para ese semestre dichos cursos deben programarse de maneraque los alumnos tengan la menor cantidad de tiempo entre el primer y el uacuteltimo cursodel diacutea permitieacutendoles con esto realizar actividades complementarias

En el Tecnoloacutegico de Zacatepec para una carrera con 900 alumnos se requieren ofertaraproximadamente entre 140 y 160 cursos ademaacutes los estudiantes pueden matricularse encursos ofrecidos por otros departamentos (esto ampliacutea el rango de posibilidades para losalumnos)

Los cursos y los departamentos

El promedio de los cursos ofrecidos por cada departamento variacutea considerablementeentre las diferentes escuelas de nivel superior La razoacuten de esta variabilidad puede servista como un indicador de la naturaleza de la complejidad de la planeacioacuten de horarios

Cada departamento ofrece cursos a los estudiantes de las carreras a las que da soportedirecto pero ademaacutes debe ofrecer cursos para todas las otras carreras de la institucioacutenque lo requieran esto es si un departamento X solicita la apertura de determinadonuacutemero de cursos a un departamento Y el departamento Y debe ofertar los cursossolicitados por X para los alumnos matriculados en el departamento X aunado a estoalgunos cursos ofertados por el departamento Y tienen compatibilidad con cursosofrecidos por X y por lo tanto los estudiantes de Y y X pueden ingresar indistintamenteen cualquiera de los cursos

Los cursos los semestres y las horas

Una de las afirmaciones que se pueden hacer en las instituciones de nivel superior es quelos cursos generalmente inician durante cierto periodo de tiempo y pueden tenerduracioacuten semestral (la gran mayoriacutea) trimestral y sin fechas predeterminadas (algunosposgrados por ejemplo) En general los cursos empiezan a las 700 AM y terminandependiendo del lugar a las 2000 o a las 2100 horas de lunes a saacutebado Aunque estopermite tener un amplio margen de horas para programar los cursos esto hace tambieacuten

Capiacutetulo 2 Marco teoacuterico

aun maacutes difiacutecil la elaboracioacuten de los horarios porque aumenta el rango de posiblescombinaciones donde programar cursos

Los cursos se pueden programar en periodos de tiempo muy variados aunque la mayoriacuteade los programadores de horarios siguen los siguientes patrones

bull Curso diario de 1 horabull Curso de dos horas en diacuteas saltados (lunes y mieacutercoles jueves y viernes

mieacutercoles y viernes)bull Curso de dos horas diarias 3 diacuteas por semana (lunes mieacutercoles y viernes)

(lunes martes y jueves) o (martes jueves y viernes)bull Cursos de cuatro horas en un solo diacutea por semanabull En el peor de los casos se programan cursos con la combinacioacuten de algunos

de los anteriores

Dependiendo del curso algunos tienen duracioacuten de cuatro horas teoacutericas semanales otroscombinan cuatro horas de teoriacutea y dos de praacutectica y algunos excepcionalmente sonprogramados con cuatro horas de praacutectica y dos de teoriacutea Las horas de praacutecticageneralmente se realizan en laboratorios o praacutecticas de campo agregando esto un nuevoparaacutemetro para la complejidad de la elaboracioacuten de horarios

Los cursos y las aulas

Las aulas son el espacio fiacutesico donde se impartiraacuten los cursos pueden ser salones declase laboratorios salones de exposicioacuten aulas para aplicacioacuten de exaacutemenes aulas paraactividades deportivas musicales o recreativas cada aula tiene capacidad para quecierto nuacutemero definido de estudiantes reciba sin problema unidades de ensentildeanzaaprendizaje

En una encuesta realizada por la Universidad de Nottingham [Burke y Elliman 1998] sedefinioacute que la programacioacuten de los cursos en las aulas es uno de los mayores problemasa los que se enfrentan los responsables de la elaboracioacuten de horarios Esto proviene dedos problemas mayores El primer problema es la escasez de aulas disponibles ya queen algunas de las escuelas de nivel superior el crecimiento de la poblacioacuten estudiantil hasido mayor que el crecimiento del nuacutemero de aulas disponibles para la ensentildeanza Elsegundo problema ocurre cuando se programa un curso en mas de un aula o saloacuten declase

La ocupacioacuten de las aulas es variable de acuerdo al departamento para el que seaasignada algunos prefieren utilizarlas al maacuteximo en el turno matutino otros en el turnovespertino tienen ocupacioacuten total algunos las utilizan exhaustivamente de lunes ajueves unos departamentos las llenan los viernes y saacutebados y otros tienen que utilizarlastodo el diacutea de lunes a saacutebado inclusive solicitan prestadas a los otros departamentosaquellos espacios que no son utilizados en alguacuten diacutea y hora a la semana

Capiacutetulo 2 Marco teoacuterico

Para el Tecnoloacutegico de Zacatepec el recurso llamado las aulas debe ser optimizado enuna buena planeacioacuten de horarios esto es deben ser utilizadas al maacuteximo todos los diacuteasde la semana desde las 700 hasta las 2100 de lunes viernes y los saacutebados hasta las1500 horas

Tipos de cursos

Una de las cosas a tomarse en cuenta durante la elaboracioacuten de los horarios es el tipo decurso a programar

bull Teoacutericos como los cursos matemaacuteticos cursos de administracioacuten etcbull Teoacuterico praacutecticos como los cursos de electroacutenica sistemas digitalesbull Lenguajes de programacioacutenbull Con praacutecticas de campo que deben salir al aire librebull Con praacutecticas de quiacutemica

Otra consideracioacuten es el tipo de aula requerida por los diferentes tipos de cursos

bull cursos que requieren medios audiovisuales simples (pizarroacuten y gis)bull algunos cursos adicionalmente requieren proyectores de acetatos y salas

obscurecidasbull cursos que requieren equipo de coacutemputo equipo de proyeccioacuten equipo de video y

televisioacuten para el desarrollo de la caacutetedra etcbull cursos que requieren laboratorios con computadorasbull que requieren equipos de medicioacuten electroacutenica generadores de sentildeales enchufes

eleacutectricos ybull cursos que requieren mesas tomas eleacutectricas y equipos para conexioacuten de redes

Los cursos y los catedraacuteticos

Definitivamente eacutesta es una de las principales consideraciones que tienen en cuenta losprogramadores de horarios la asignacioacuten de los cursos a los catedraacuteticos porque es unproceso que no puede realizarse de manera aleatoria es un proceso delicado porque deesto depende la efectividad del proceso de ensentildeanzandashaprendizaje

Los catedraacuteticos tienen caracteriacutesticas individuales que los hacen uacutenicosindependientemente de la profesioacuten que hayan estudiado Tienen intereses diferentesmeacutetodos diferentes aacutereas de preferencia diferentes perfil profesiograacutefico distinto tienenactividades extralaborales variadas asiacute que

iquestCoacutemo asignarle un curso a un catedraacutetico para que logre un oacuteptimo resultado en el

Capiacutetulo 2 Marco teoacuterico

proceso de ensentildeanza-aprendizajeiquestCoacutemo garantizar que el curso asignado a un profesor seraacute bien impartidoiquestCoacutemo saber que el profesor estaacute capacitado para ofrecer un buen cursoiquestCuaacuteles son los requisitos que debe reunir un profesor para impartir cierto cursoiquestDependen soacutelo de la profesioacuten los cursos que puede impartiriquestCoacutemo conocer de antemano las preferencias de los profesoresiquestEl nivel de estudio de los profesores les capacita para impartir cualquier cursoiquestDeben los profesores ser guiados a una especialidad por los programadores dehorarios

Las respuestas a todas estas preguntas incorporadas en un sistema generador de horariosiquestpermitiraacuten hacer una buena asignacioacuten de catedraacutetico a un curso

El condensado de horarios

Es un documento emitido cada semestre por los responsables de la elaboracioacuten de loshorarios que contiene la informacioacuten requerida por los alumnos jefes de departamento ycatedraacuteticos para conocer la distribucioacuten de las materias los grupos las aulas las horasy los catedraacuteticos que impartiraacuten los cursos en otras palabras el condensado de materiases el documento final de los HORARIOS que marcaraacute las acciones de todos el semestreactual

23 El proceso de la elaboracioacuten de horarios

El proceso de la elaboracioacuten de horarios abarca cada accioacuten que es requerida para crearel horario final completo y correcto de los datos iniciales Esto incluye recibir validary dar formato a los datos generar la versioacuten inicial hacer las correcciones y luegoproducir el condensado final de horarios El proceso de la generacioacuten de horariosabarca

bull la generacioacuten del dato de cuantos cursos se van a ofertarbull asignacioacuten de horario a esos cursosbull proporcionar aulas a los cursosbull designar profesores para los cursos definidos

la parte difiacutecil de esto es generar los horarios con los recursos disponibles en cadadepartamento cada etapa tiene sus restricciones (fuertes y suaves) los recursos no soninagotablesEl uso de la computadora

En una encuesta realizada por la Universidad de Nottingham [Burke y Elliman 1998]referente a la forma de elaborar horarios en las demaacutes universidades se encontroacute que un

Capiacutetulo 2 Marco teoacuterico

58 de ellas utilizan la computadora en alguna etapa del proceso de eacutestas el 21 tienela facilidad de realizar la programacioacuten aunque generalmente requieren captura manualde informacioacuten y conocimientos previos del problema particular del proceso El 1tienen paquetes comerciales y el 14 tienen paquetes hechos en casa para generarhorarios y el 2 aseguran que estaacuten desarrollando o comprando un paquete

Dado el tamantildeo de los horarios de dichas universidades es sorprendente que muchas notengan alguna forma de automatizacioacuten Esto se debe en la mayoriacutea de los casos a quelos horarios no cambian significativamente de un antildeo a otro Sin embargo de lasuniversidades que no programan horarios por computadora la mitad usa el horario delantildeo pasado y la otra mitad empiezan desde cero cada vez Cuando no se usa el horariodel antildeo pasado generalmente toma 4 semanas elaborar uno nuevo En la mayoriacutea de loscasos donde se usa la computadora generalmente no se toma en cuenta el horario delantildeo anterior

Causas de cambio de los horarios antildeo tras antildeo

Para que un horario pueda ser usado antildeo tras antildeo debe ser lo suficientemente robustopara que los cambios que ocurran en los datos de entrada produzcan soacutelo una pequentildeaalteracioacuten o modificacioacuten en el condensado final de horarios El uso del condensado delantildeo pasado depende en la cantidad de cambios que deben hacerse y esto a su vezdepende de cuanto cambie la cantidad de grupos que deben ofertarse para cadaasignatura y esto depende de la cantidad de alumnos que pueden cursar una asignaturaahora bien la cantidad de alumnos estaacute en funcioacuten de los iacutendices de aprobacioacuten yreprobacioacuten del periodo de los alumnos que por alguna razoacuten no cursaron unaasignatura y de la cantidad de grupos ofertados el periodo pasado

Si cambia la cantidad de horas frente a grupo asignada a un departamento entoncescambiaraacute el condensado de horarios con respecto al del antildeo pasado porque eso afectadirectamente en la cantidad de cursos que podraacute ofertarse este periodo este es uno de losrecursos maacutes variables que influyen para hacer cambios en los condensados antildeo trasantildeo

La redistribucioacuten de aulas y laboratorios (que no se realiza a menudo) llega tambieacuten ainfluir en los cambios

El cambio de horario matutino a vespertino (o viceversa) solicitado por un catedraacuteticoque es el especialista en impartir cierto curso ocasiona los cambios del condensado dehorarios del antildeo anterior al nuevo

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

CAPIacuteTULO 3

TEacuteCNICAS DE INTELIGENCIA ARTIFICIAL UTILIZADASPARA LA GENERACIOacuteN DE HORARIOS

31 Sistemas Expertos (SE)Bajo el teacutermino de Sistemas Expertos se entiende un nuevo tipo de software que imita elcomportamiento de un experto humano en la solucioacuten de un problema Un SE puedealmacenar conocimientos de expertos para un campo determinado y solucionar unproblema mediante razonamiento loacutegico de conclusiones

Los Sistemas Expertos son sistemas que buscan modelar el conocimiento yprocedimientos usados por un experto humano para resolver un problemadeterminado[Saacutenchez 1999]

iquestUn Sistema Experto utiliza teacutecnicas de la Inteligencia Artificial (IA)

Los Sistemas Expertos son uno de los puntos que componen las investigaciones en elcampo de la IA Un sistema de computadoras que trabaje con teacutecnicas de IA deberaacuteestar en situacioacuten de combinar informacioacuten de forma ldquointeligenterdquo alcanzarconclusiones y justificarlas (al igual que el resultado final) Los Sistemas Expertos sonuna expresioacuten de los sistemas basados en el conocimiento Con la aplicacioacuten de teacutecnicasde Inteligencia Artificial finaliza la transicioacuten del procesamiento de datos alprocesamiento de conocimientos

Un Sistema Experto es un sistema informaacutetico que simula el proceso de aprendizaje dememorizacioacuten de razonamiento de comunicacioacuten y de accioacuten de un experto humano enuna determinada rama o dominio Estas caracteriacutesticas le permiten almacenar datos yconocimiento sacar conclusiones loacutegicas tomar decisiones aprender de la experiencia ylos datos existentes comunicarse con humanos explicar el porqueacute de las decisionestomadas y realizar acciones como consecuencia de todo lo anterior

La incorporacioacuten dentro de un sistema de computadoras de un componente basado enel conocimiento correspondiente a una habilidad experta de tal forma que el sistemapueda ofrecer asesoramiento inteligente o tomar una decisioacuten inteligente sobre unafuncioacuten del proceso Una caracteriacutestica adicional deseable que muchos consideranfundamental es la capacidad del sistema si se le solicita de justificar su propia liacutenea derazonamiento de un modo directamente inteligible para el interrogador El estiloadoptado para alcanzar estas caracteriacutesticas es la programacioacuten basada en reglas[Waterman 1986]

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

311 Funcioacuten de un Sistema Experto

La funcioacuten de un Sistema Experto es aportar soluciones a problemas de un dominioespeciacutefico imitando la forma de razonamiento de los seres humanos es decir el SistemaExperto debe ser capaz de mostrar soluciones inteligentes [Giarratamo 1998]

Acceder a los conocimientos adquiridos por experiencia es lo maacutes difiacutecil ya que losexpertos al igual que otras personas apenas los reconocen como tales Son buscadoscon mucho esfuerzo y cuidado siendo descubiertos de uno en uno poco a poco

Ventajas del Sistema Experto

Experto Humano Experto ArtificialMortal PermanenteDifiacutecil de documentar Faacutecil de documentarDifiacutecil de transferir Faacutecil de transferirImpredecible ConsistenteMaacutes caro Menos caro

Ventajas del Experto Humano

Experto Humano Experto ArtificialCreativo No creativoAdaptable Requiere mantenimientoExperiencia sensorial Entrada simboacutelicaConocimiento de sentido comuacuten Conocimiento teacutecnico

312 Arquitectura de Sistemas Expertos [Gines 1986] [Giarratamo 1998]

La arquitectura general de un SE (Fig 31) estaacute compuesta fundamentalmente de

bull Base de Conocimiento Representa el conocimiento adquirido del expertohumano incluyendo experiencia sentido comuacuten e intuicioacuten

bull Motor de Inferencia Decide que se debe aplicar que se debe hacer resuelveconflictos nuevos hace uso de la base del conocimiento Proporcionamecanismos de razonamiento buacutesqueda aprendizaje etc

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

bull Interfaz Usuario Facilita la comunicacioacuten entre el Sistema Experto y el usuarioque realiza las consultas

bull Subsistema de Adquisicioacuten Mejor conocido como la Interfaz de Expertopermite ingresar el conocimiento a la Base de Conocimientos por parte delhumano experto en alguacuten dominio de conocimiento

bull Subsistema de explicaciones Permite dar a conocer los resultados obtenidospor el Sistema Experto

313 La base de conocimiento

El enfoque maacutes comuacuten para representar el dominio del conocimiento que se requierepara un SE son las reglas de produccioacuten Estas pueden ser referidas como reglasldquosituacioacuten-accioacutenrdquo o ldquoif-thenrdquo De esta forma con frecuencia una base deconocimientos estaacute fraguada principalmente de reglas las cuales son invocadas por uncasamiento de patrones con las particularidades de las tareas circunstanciales que vanapareciendo en la base de hechosLas reglas en una base de conocimientos representan el dominio de hechos y laheuriacutestica de un buen juicio de acciones a tomar cuando uno llega a situacionesespeciacuteficas La fuerza de un SE yace en el conocimiento especiacutefico del dominio delproblema Casi todos los sistemas existentes basados en reglas contienen cientos o milesde ellas y generalmente se obtienen de entrevistas con expertos durante un tiempo largoEn cualquier SE las reglas se conectan una a otra por ligas de asociacioacuten para formar

Base de

Motor de

Subsistema deadquisicioacuten

del

Subsistemade

explicacione

Interfazde

usuario

Ingeniero delconocimiento y experto Usuario

Base de hechos

Figura 31 Arquitectura de un Sistema Experto

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

redes de reglas Una vez que han sido ensambladas tales redes entonces se tiene unarepresentacioacuten de un cuerpo de conocimientos que es sustancial

Generalmente un experto tiene muchas reglas de criterio empiacutericas por lo que el soportesuele ser incompleto para la evidencia que se dispone En tales casos una teacutecnica es la devincular valores numeacutericos a cada regla para indicar el grado de certidumbre que eacutestatiene En la operacioacuten de SE los valores de certidumbre se combinan unos a otros atraveacutes de la red considerando tambieacuten la certidumbre de los datos de entrada delproblema para llegar finalmente a un valor de certidumbre de la solucioacuten final

314 El motor de inferencias

El sistema experto modela el proceso de razonamiento humano con un moacutedulo conocidocomo el motor de inferencia Dicho motor de inferencia trabaja con la informacioacutencontenida en la base de conocimientos y la base de hechos para deducir nuevos hechosContrasta los hechos particulares de la base de hechos con el conocimiento contenido enla base de conocimientos para obtener conclusiones acerca del problemaEl modelo de problema - solucioacuten y sus meacutetodos organizan y controlan las etapas que sevan tomando para la resolucioacuten de problemas Un modelo muy poderoso y comuacuten es elde encadenar las reglas `` if-then-else con el fin de formar alguna liacutenea derazonamiento Si el encadenamiento se inicia a partir de un conjunto de condiciones y semueve hacia alguna conclusioacuten el meacutetodo se llama encadenamiento hacia adelante y ensu caso contrario el encadenamiento es hacia atraacutes

Un problema de encadenamiento hacia adelante sin una apropiada heuriacutestica de podaderivaraacute muchas soluciones de las cuales no todas son necesarias En el caso deencadenamiento hacia atraacutes es necesario tambieacuten trabajar con una heuriacutestica apropiadacon la finalidad de poder manejar submetas conjuntivas En general para atacar elproblema de conjuncioacuten es necesario encontrar un caso en donde todas las submetasinteractuantes se satisfagan Pero con frecuencia una buacutesqueda de tal naturaleza nos dauna explosioacuten combinatoria de posibilidades Es por esta razoacuten que el dominioapropiado de la heuriacutestica y su esquema inferencial deberaacuten ser encontrados para cadatipo de problemas para que de esta manera se tenga un SE eficaz y eficiente

315 iquestPor queacute utilizar un Sistema Experto [Pluss 1999] [Sanchez 1999]

1 Con la ayuda de un Sistema Experto personas con poca experiencia pueden resolverproblemas que requieren un conocimiento formal especializado

2 Los Sistemas Expertos pueden obtener conclusiones y resolver problemas de formamaacutes raacutepida que los expertos humanos

3 Los Sistemas Expertos razonan pero basaacutendose en un conocimiento adquirido y notienen sitio para la subjetividad

Capiacutetulo 2 Marco teoacuterico

4 El uso de Sistemas Expertos es especialmente recomendado en las siguientessituaciones

bull Cuando los expertos humanos en una determinada materia son escasos

bull En situaciones complejas donde la subjetividad humana puede llevar aconclusiones erroacuteneas

bull Cuando es muy elevado el volumen de datos que ha de considerarse paraobtener una conclusioacuten

316 Construccioacuten de prototipos [Turban 1995]

En el desarrollo de Sistemas Expertos se plantean dos importantes riesgos

1- No existen implementaciones similares que puedan servir de orientacioacuten al encargadodel desarrollo en la casi totalidad de los casos

2- En muchos puntos los requisitos necesarios estaacuten esbozados con muy poca precisioacuten

El disentildeo y la especificacioacuten requieren una temprana determinacioacuten de la interfaz delsoftware y de la funcionalidad de los componentes En el desarrollo de SistemasExpertos deben alterarse a menudo durante y tambieacuten despueacutes de su implementacioacuten yaque los requisitos se han ido configurando y han obtenido mayor precisioacuten o porque seha descubierto que deben iniciarse otras viacuteas de solucioacuten Durante el desarrollo resultamaacutes apropiado empezar con implementaciones tipo test para encontrar el camino haciauna solucioacuten definitiva y para hacerlas coincidir con las necesidades del usuario

32 Algoritmos Geneacuteticos

321 Antecedentes [Medina 2004] [Goldberg 1989] [Davis 1991]

El Algoritmo Geneacutetico es una teacutecnica de buacutesqueda basada en la teoriacutea de la evolucioacutende Darwin que ha cobrado tremenda popularidad en todo el mundo durante los uacuteltimosantildeos

Esta teacutecnica se basa en los mecanismos de seleccioacuten que utiliza la naturaleza de acuerdoa los cuales los individuos maacutes aptos de una poblacioacuten son los que sobreviven al

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

adaptarse maacutes faacutecilmente a los cambios que se producen en su entorno Hoy en diacutea sesabe que estos cambios se efectuacutean en los genes de un individuo (unidad baacutesica decodificacioacuten de cada uno de los atributos de un ser vivo) y que sus atributos maacutesdeseables se transmiten a sus descendientes cuando eacuteste se reproduce sexualmente

En 1859 Darwin publica su libro laquoEl origen de las especiesraquo El libro causoacute una granpoleacutemica en el mundo cientiacutefico por las revolucionarias teoriacuteas en eacutel contenidas que lasespecies evolucionan acorde al medio para adaptarse a eacuteste Con ello el universopasaba de ser una creacioacuten de Dios estaacutetica y perfecta desde su inicio a un conjunto deindividuos en constante competicioacuten y evolucioacuten para poder perpetuar su especie en eltiempo La existencia de una especie pasa asiacute a ser algo dinaacutemico las especies se creanevolucionan y desaparecen si no se adaptan Para cada especie animal la naturalezaproponiacutea un crudo filtro soacutelo los mejores los maacutes aptos los que mejor se adapten almedio conseguiacutean sobrevivir lo suficiente para llegar a la madurez y encontrar unapareja para perpetuar sus aptitudes que le haciacutean maacutes apto

La informaacutetica ve aquiacute un claro proceso de optimizacioacuten Se toman los individuos mejoradaptados (mejores soluciones temporales) se cruzan (se mezclan ) generando nuevosindividuos (nuevas soluciones) que contendraacuten parte del coacutedigo geneacutetico (informacioacuten)de sus dos antecesores y por lo tanto aunque el nuevo individuo no tenga que estarforzosamente mejor adaptado de hecho puede que ni la probabilidad de que el nuevoindividuo generado esteacute mejor adaptado que los padres sea alta el promedio de laadaptacioacuten de toda la poblacioacuten si mejora ya que tienden a perpetuarse y extenderse lasmejores caracteriacutesticas y a extinguirse las poco beneficiosas o perjudiciales En losAlgoritmos Geneacuteticos se crea una nueva abstraccioacuten -la poblacioacuten- cuya funcioacuten decoste mejoraraacute globalmente por lo que puede que se encuentre alguacuten individuo conmejores caracteriacutesticas

Un investigador de la Universidad de Michigan llamado John Holland era consciente dela importancia de la seleccioacuten natural y a fines de los antildeos 60 desarrolloacute una teacutecnica quepermitioacute incorporarla a un programa Su objetivo era lograr que las computadorasaprendieran por siacute mismas A la teacutecnica que inventoacute Holland se le llamoacute originalmentePlanes Reproductivos pero se hizo popular bajo el nombre Algoritmo Geneacutetico trasla publicacioacuten de su libro en 1975

En esa universidad Holland impartiacutea un curso titulado Teoriacutea de sistemas adaptativosDentro de este curso y con una participacioacuten activa por parte de sus estudiantes fuedonde se crearon las ideas que maacutes tarde se convertiriacutean en los Algoritmos GeneacuteticosLos objetivos de su investigacioacuten fueron dos

Imitar los procesos adaptativos de los sistemas naturales y Disentildear sistemas artificiales (normalmente programas) que retengan los mecanismos

importantes de los sistemas naturales

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

Unos 15 antildeos maacutes adelante David Goldberg actual delfiacuten de los Algoritmos Geneacuteticosconocioacute a Holland y se convirtioacute en su estudiante Golberg era un ingeniero industrialtrabajando en disentildeo de tuberiacuteas y fue uno de los primeros que tratoacute de aplicar losAlgoritmos Geneacuteticos a problemas industriales Aunque Holland tratoacute de disuadirleporque pensaba que el problema era excesivamente complejo Goldberg consiguioacute loque queriacutea escribiendo un Algoritmo Geneacutetico en una computadora personal Apple IIEstas y otras aplicaciones creadas por estudiantes de Holland convirtieron a losAlgoritmos Geneacuteticos en un campo con base suficiente como para celebrar la primeraconferencia en 1985 ICGAacute85 Tal conferencia se sigue celebrando bianualmente[Beasley 1993]

Una definicioacuten bastante completa de un Algoritmo Geneacutetico es la propuesta por JohnKoza es un algoritmo matemaacutetico altamente paralelo que transforma un conjunto deobjetos matemaacuteticos individuales con respecto al tiempo usando operaciones modeladasde acuerdo al principio Darwiniano de reproduccioacuten y supervivencia del maacutes apto y trashaberse presentado de forma natural una serie de operaciones geneacuteticas de entre las quedestaca la recombinacioacuten sexual Cada uno de estos objetos matemaacuteticos suele ser unacadena de caracteres (letras o nuacutemeros) de longitud fija que se ajusta al modelo de lascadenas de cromosomas y se les asocia con una cierta funcioacuten matemaacutetica que refleja suaptitud [Koza 1992] 322 Definicioacuten de AG

Los Algoritmos Geneacuteticos (AG) son meacutetodos adaptativos que pueden usarse pararesolver problemas de buacutesqueda y optimizacioacuten Estaacuten basados en el proceso geneacutetico delos organismos vivos A lo largo de las generaciones las poblaciones evolucionan en lanaturaleza de acorde con los principios de la seleccioacuten natural y la supervivencia de losmaacutes fuertes postulados por Darwin Por imitacioacuten de este proceso los AlgoritmosGeneacuteticos son capaces de ir creando soluciones para problemas del mundo real Laevolucioacuten de dichas soluciones hacia valores oacuteptimos del problema depende en buenamedida de una adecuada codificacioacuten de las mismas [Goldberg 1989]

Un Algoritmo Geneacutetico consiste en una funcioacuten matemaacutetica que toma como entradas alos ejemplares y retorna como salidas cuaacuteles de ellos deben generar descendencia para lanueva generacioacuten

Los Algoritmos Geneacuteticos presentan ventajas sobre otros algoritmos que los hacenpreferibles para determinado tipo de aplicaciones Algunas de las caracteriacutesticas de losAlgoritmos Geneacuteticos son

bull Son algoritmos estocaacutesticos Dos ejecuciones distintas pueden dar dos solucionesdistintas Esto es uacutetil por el hecho de que hay gran cantidad de isoacutemeros que

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

corresponden a soluciones vaacutelidas por lo que es interesante que distintas ejecucionespuedan dar isoacutemeros distintos

bull Son algoritmos de buacutesqueda muacuteltiple luego dan varias soluciones Aunquehabitualmente la energiacutea de los individuos de la poblacioacuten final es similar losindividuos suelen ser distintos entre si Con el modelo de paralelizacioacuten empleado -geneacutetico multipoblacional- la probabilidad de obtener muchas soluciones distintas esmaacutes alta todaviacutea

bull Son los algoritmos que hacen una barrida mayor al subespacio de posiblessoluciones vaacutelidas De hecho se considera que de todos los algoritmos deoptimizacioacuten estocaacutesticos los Algoritmos Geneacuteticos son de los maacutes exploratoriosdisponibles

323 Ventajas y Desventajas [Bull 1993]

bull No necesitan conocimientos especiacuteficos sobre el problema que intentan resolverbull Operan de forma simultaacutenea con varias soluciones en vez de trabajar de forma

secuencial como las teacutecnicas tradicionalesbull Cuando se usan para problemas de optimizacioacuten de una funcioacuten objetivo- resultan

menos afectados por los oacuteptimos locales (falsas soluciones) que las teacutecnicastradicionales

bull Usan operadores probabiliacutesticos en vez de los tiacutepicos operadores determiniacutesticos delas otras teacutecnicas

bull La mayoriacutea de las otras teacutecnicas de optimizacioacuten son tambieacuten estocaacutesticasbull Pueden tardar mucho en converger o no converger en absoluto dependiendo en

cierta medida de los paraacutemetros que se utilicen tamantildeo de la poblacioacuten nuacutemero degeneraciones etc-

bull Pueden converger prematuramente debido a una serie de problemas de diversaiacutendole

324 iquestCoacutemo saber si es posible usar un Algoritmo Geneacutetico

La aplicacioacuten maacutes comuacuten de los Algoritmos Geneacuteticos ha sido la solucioacuten de problemasde optimizacioacuten en donde han mostrado ser muy eficientes y confiables Sin embargono todos los problemas pudieran ser apropiados para la teacutecnica y se recomienda engeneral tomar en cuenta las siguientes caracteriacutesticas del mismo antes de intentar usarlabull Su espacio de buacutesqueda (ie sus posibles soluciones) debe estar delimitado dentro

de un cierto rangobull Debe poderse definir una funcioacuten de aptitud que indique que tan buena o mala es

una cierta respuestabull Las soluciones deben codificarse de una forma que resulte relativamente faacutecil de

implementar en la computadora

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

Decisiones para implementar un Algoritmo Geneacutetico [Michalewicz 1992]

Las decisiones que hay que tomar para implementar un Algoritmo Geneacutetico son

bull Criterio de codificacioacuten Coacutemo se va a almacenar la informacioacuten en el genomabull Criterio de tratamiento de individuos no factibles Coacutemo se van a tratar a los

individuos que no cumplan las restriccionesbull Criterio de inicializacioacuten Coacutemo se va a construir la poblacioacuten inicialbull Criterio de parada Determina cuaacutendo el algoritmo ha llegado a una solucioacuten

aceptablebull Funcioacuten de adaptacioacuten Corresponde a la funcioacuten de costo de la investigacioacuten

operativa tradicionalbull Operadores geneacuteticos Se emplean para determinar coacutemo va a ser la nueva

generacioacuten Baacutesicamente son los operadores de cruce y mutacioacuten aunque pueden serempleados otros adicionales -muerte aborto envejecimiento- Tanto cruce comomutacioacuten pueden ser realizados de muchas formas distintas

bull Criterios de reemplazo Los criterios que determinan quieacutenes se van a cruzar Notienen que ser obligatoriamente los mismos que los criterios de seleccioacuten de lospadres

bull Paraacutemetros de funcionamiento Determinados paraacutemetros que sin poder serenglobados en ninguno de los anteriores son fundamentales para el funcionamientode un Algoritmo Geneacutetico Es el caso por ejemplo del tamantildeo de la poblacioacuten laprobabilidad de la aplicacioacuten de los operadores geneacuteticos etc

325 Paraacutemetros que deben ser especificados en el programa

Nordm de generaciones cantidad de veces que se produce una nueva generacioacuten deindividuos utilizando las reglas anteriormente explicadas Por loacutegica cuantas maacutesgeneraciones se produzcan se obtendraacuten mejores individuosNordm de individuos por generacioacuten en este ejemplo la cantidad de individuos de unageneracioacuten a otra es constante no variacuteaNordm de entrenamientos cantidad de veces que se lleva a cabo un entrenamiento entrediferentes generaciones de individuos

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

Fig 32 Pseudocoacutedigo del Algoritmo Geneacutetico simple

Los Algoritmos Geneacuteticos son una poderosa herramienta de propoacutesito general deoptimizacioacuten que modela los principios de la evolucioacuten [Burke 1994]

El proceso es el siguiente

1 Una poblacioacuten random de horarios factibles es creada Cada horario es evaluado deacuerdo a una conjunto de criterios (por ejemplo el tamantildeo del horario cuantosgrupos son colocados a la misma hora y en el mismo saloacuten cuantos salones hayvaciacuteos)

2 Los horarios son seleccionados de manera aleatoria para ser las bases de la proacuteximageneracioacuten Los buenos horarios son maacutes deseables que los malos En las bases dela evaluacioacuten de estos miembros de la poblacioacuten (horarios factibles) se escogen lospadres de la proacutexima generacioacuten de horarios Evaluando numeacutericamente durante elproceso de seleccioacuten buscando los mejores horarios los peores horarios soneliminados al mismo tiempo que la buacutesqueda se dirige hacia las aacutereas maacutespromisorias del espacio de soluciones

3 El Operador Mutacioacuten se aplica generalmente a un solo miembro de la poblacioacuten einvolucra el cambio aleatorio de la hora o aula de algunos grupos despueacutesalmacena el nuevo horario siempre manteniendo un horario factible Esto agrega

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

un elemento que permite tambieacuten introducir material geneacutetico uacutetil que ha sidoperdido en otros horarios en las primeras generaciones

4 El Operador de Cruzamiento toma una pareja de horarios y los combina de algunamanera para producir uno o dos nuevos horarios esto se hace generalmente deforma aleatoria seleccionando algunos grupos de la mantildeana de un miembro de lapoblacioacuten y los algunos grupos de la tarde de otro miembro para producir un nuevohorario cualquier grupo que no pueda ser colocado de esta manera se manda alperiodo siguiente disponible

5 La nueva poblacioacuten es generada El proceso seraacute repetido hasta que una buenasolucioacuten sea generada

33 Programacioacuten Loacutegica de Restricciones (PLR)

331 Antecedentes de la PLR

La Programacioacuten Loacutegica de Restricciones (PLR) es una teacutecnica que tiene mucho encomuacuten con los algoritmos de asignacioacuten heuriacutestica Dechter describe asiacute el problemade la satisfaccioacuten de restricciones ldquoUn problema de satisfaccioacuten de restricciones (PSR)es representado por una red de restricciones consistente en un conjunto de n variablesX1 Xn con sus respectivos valores de dominio RR n y un conjunto derestricciones Una restriccioacuten Ci (Xi1Xij)es un subconjunto del producto cartesiano Ri1 x x R i1 formado por todas las tuplas de valores para un subconjunto(X i1X ij) delas variables que son compatibles unas con otrasrdquo [Detcher 1990]

Una solucioacuten de la red es una asignacioacuten de valores a todas las variables de tal formaque todas las restricciones son satisfechasrdquo Esta es una representacioacuten maacutes poderosaque el modelo de los Grafos Coloreados porque puede representar restricciones mascomplejas El problema de los grafos coloreados es equivalente a un PLR binario en lacual cada restriccioacuten soacutelo tiene dos variables

Este modelo se resuelve tratando de asignar valores a cada una de las variables encuestioacuten y entonces regresando si se encuentra en un punto muerto y quitandorestricciones si se descubre que no se puede encontrar solucioacuten El orden en el que lasvariables son seleccionadas y el orden de los valores que son asignados a las variablespuede ser alterado para tratar aumentar la velocidad de buacutesqueda

La PLR es un meacutetodo que permite el disentildeo raacutepido de prototipos de resolucioacuten deproblemas complejos Las principales aportaciones en esta liacutenea se centran en eldesarrollo de programas que incluyen conjuntos de restricciones adaptadas a unadeterminada familia de problemas asiacute como al disentildeo formal e implementacioacuten demodelos de interpretacioacuten en paralelo con el fin de mejorar la eficiencia del proceso

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

deductivo El objetivo final es disponer de sistemas de resolucioacuten implementados paraapoyar la creacioacuten de sistemas donde la explosioacuten combinatoria de los elementos de unproblema hace muy difiacutecil la buacutesqueda de una solucioacuten en un tiempo razonable [Farion1992]

En esta seccioacuten se proporciona una breve introduccioacuten de la Programacioacuten Loacutegica conRestricciones y sus aplicaciones dentro del marco general de la programacioacuten loacutegica Setrata eacuteste de un campo que ha tenido una notable expansioacuten debido a su potencialaplicacioacuten praacutectica dado que el anaacutelisis de las restricciones permite mejorarconsiderablemente la eficiencia del caacutelculo de determinadas funciones

332 Restricciones

En primer lugar se empieza por contestar la pregunta iquestQueacute es una restriccioacuten Estacuestioacuten se puede responder tan brevemente como escribe Roman Bartak[1998]Una restriccioacuten es simplemente una relacioacuten loacutegica entre varias variablesdesconocidas tomando cada una un valor dentro de un dominio determinado (peA+B=C-el circulo estaacute dentro del cuadrado- etc)Asiacute las restricciones aparecen de forma natural en todos los campos del conocimientohumano La suma de los aacutengulos de un triaacutengulo es 180 grados es un ejemplo derestriccioacuten que aparece en el mundo real De hecho las restricciones son el medionatural en el que las personas expresamos los problemas en todas las aacutereas

Con la explicacioacuten dada se ve de forma natural que las restricciones gozan de variaspropiedades interesantes

bull las restricciones pueden especificar informacioacuten parcial es decir en lasrestricciones no hace falta que se den de forma uacutenica los valores de sus variables

bull las variables son no direccionales es decir en una restriccioacuten tiacutepica sobre dosvariables (XY) se puede inferir una restriccioacuten sobre X dada una restriccioacutensobre Y y viceversa

bull las restricciones son declarativas es decir se puede especificar que relacioacutendeben mantener sin especificar el procedimiento computacional que implementeesa relacioacuten

bull las restricciones son aditivas es decir el orden de imposicioacuten de las restriccionesno importa todo lo que importa al fin y al cabo es la conjuncioacuten de restriccionesy su efecto

bull las restricciones no suelen ser independientes normalmente restricciones dentrodel conjunto total de restricciones comparte variables

Asiacute siguiendo esta idea el objetivo de la Programacioacuten Loacutegica con Restricciones essustituir el proceso de unificacioacuten por la resolucioacuten de restricciones sobre un dominio

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

particular de intereacutes Con esta visioacuten se considera que el procesador de restriccionesdebe encargarse de comprobar la consistencia del conjunto de restricciones y dentro delo posible reducirlo a alguna forma normal

Seguacuten Elmohamed [Elmohamed 1998] las restricciones pueden ser divididas en trestipos fuertes medias y suaves

Restricciones fuertes Son todas aquellas que deben ser cumplidas obligatoriamente elcosto de no cumplir estas restricciones es sumamente alto y por lo tanto en un horariofactible su costo asociado por incumplimiento debe ser cero Por ejemplo (en unproblema real se pueden encontrar de 10 a 15 restricciones fuertes)

bull Dos o maacutes clases impartidas por un profesor no se pueden programar a lamisma hora

bull Una clase teoacuterica y su laboratorio no se pueden programar a la misma hora en elmismo diacutea

bull Una clase no se puede programar en un aula a menos que su capacidad seamayor al nuacutemero de alumnos inscritos

Restricciones medias Estas restricciones no se refieren a conflictos de tiempo perotienen asociado un alto costo a ellas sin embargo este costo no es tan alto como el de lasrestricciones fuertes En el condensado de horarios final el costo de estas restriccioneses minimizado y es deseable reducirlo a cero Por ejemplo (en un problema real sepueden tener entre 20 y 25 restricciones medias)

bull Para cada estudiante el balancear las secciones LunMieVie y MarJuebull Balancear o distribuir y equilibrar las horas de clase en la semanabull Las clases pueden requerir periodos de tiempo contiguosbull Las clases se pueden agrupar con otras clases formando paquetesbull Los horarios particulares deben tener la menor cantidad de ldquohoyosrdquo posible esto

es que las clases deben ser consecutivas unas despueacutes de otras

Restricciones suaves Estas restricciones no tienen nada que ver con conflictos detiempo y tienen un bajo costo asociado a ellas Tambieacuten en el condensado de horariosfinal este costo es minimizado pero no necesariamente debe ser cero Por ejemplo (sepueden tener entre 30 y 40 restricciones suaves)

bull Balancear la inscripcioacuten en cursos de varios paquetesbull Especificar la hora de comida y otros periodos de descansobull Los catedraacuteticos pueden requerir periodos de tiempo sin clasebull No inscribir alumnos-atletas en cursos que tengan conflicto con sus horas de

praacutectica deportiva etc

333 Sistemas con RestriccionesUna manera maacutes formal de definir las restricciones es considerarlas como una foacutermulade primer orden interpretada en una estructura para asiacute tener en cuenta la semaacutenticaparticular del sistema de restricciones Esta semaacutentica declarativa es adecuada cuando

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

existe a priori una estructura que se adecua al sistema de restricciones (pe Los realespara las restricciones aritmeacuteticas) pero esto no funciona demasiado bien para lossistemas de restricciones maacutes praacutecticos (pe Dominios finitos) Obviamente no se puededireccionar ninguacuten caacutelculo operacional relacionado con el propio procesador de lasrestricciones [Elmohamed 2001]

334 Referencia Histoacuterica de las RestriccionesLas restricciones como un aacuterea de trabajo que combina investigacioacuten de un gran nuacutemerode campos incluyendo Inteligencia Artificial Lenguajes de Programacioacuten CaacutelculoSimboacutelico y Loacutegica Computacional Las restricciones sobre redes y los problemas desatisfabilidad con restricciones empezaron a estudiarse por los investigadores deInteligencia Artificial en los antildeos 70

La programacioacuten con restricciones ha sido aplicada con notable eacutexito en numerososcampos Los trabajos en esta aacuterea se remontan a la investigacioacuten de InteligenciaArtificial y Representacioacuten Graacutefica por Computadora por los antildeos 60 y 70 En la uacuteltimadeacutecada sin embargo ha empezado a darse una mayor conciencia de que las restriccionesproporcionan las bases para un potente acercamiento a la programacioacuten modelado yresolucioacuten de problemas y que los diferentes esfuerzos por explotar estas ideas puedenser unidos bajo el mismo prisma conceptual y praacutectico la programacioacuten conrestricciones

Entre los dominios tratados por los sistemas de Programacioacuten Loacutegica con Restriccioneslos que maacutes ampliamente son investigados son sin duda los dominios finitos losnuacutemeros reales y racionales con restricciones aritmeacuteticas y los booleanos De hecho 3de los principales lenguajes de Programacioacuten Loacutegica con Restricciones son un claroejemplo de esta tendencia CHIP que proporciona restricciones sobre dominios finitosracionales y booleanos PrologIII que incluye racionales booleanos y listas y PLR(R)que maneja restricciones sobre reales

En la actualidad se pueden observar dos ramas principales en los avances en laprogramacioacuten con restricciones que parten de diferente base y por tanto usan diferentemetodologiacutea para resolver las restricciones Estas dos ramas son

bull Satisfaccioacuten de Restriccionesbull Resolucioacuten de Restricciones

335 Satisfaccioacuten de RestriccionesLa satisfaccioacuten de restricciones parte de los avances en Inteligencia Artificial (problemascombinatorios) y los Graacuteficos por computadora (sistema de SKETCHPAD[1963]expresando coherencia geomeacutetrica en el caso de anaacutelisis de escenas)

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

336 Resolucioacuten de RestriccionesLa resolucioacuten de restricciones difiere de la satisfaccioacuten de restricciones porque usavariables con dominios infinitos Ademaacutes las restricciones individuales son maacutescomplicadas por ejemplo ecuaciones no lineales En consecuencia los algoritmos deresolucioacuten de restricciones usan meacutetodos algebraicos y numeacutericos en vez decombinaciones y buacutesqueda Sin embargo existe metodologiacutea para discretizar losdominios infinitos en un nuacutemero finito de componentes y entonces se aplican lasteacutecnicas de Satisfaccioacuten de Restricciones

La programacioacuten con restricciones ha sido aplicada con eacutexito en numerosos campos Lasaplicaciones recientes incluyen [Detcher 1990]

bull Graacuteficos por Computadorabull Procesamiento del Lenguaje Natural (construccioacuten de analizadores eficientes)bull Sistemas de Bases de Datos (para reforzar yo mantener la consistencia de los

datosbull Problemas de Investigacioacuten Operativa (como la optimizacioacuten de problemas)bull Biologiacutea Molecular (secuenciacioacuten de ADN)bull Aplicaciones de Empresabull Ingenieriacutea Eleacutectrica (localizacioacuten de fallos)bull Disentildeo de Circuitos (para computar configuraciones)bull Planificacioacuten y organizacioacutenbull Configuracioacutenbull Juegosbull Configuracioacuten de horariosbull Criptoaritmeacuteticabull Coloreado de Grafosbull Razonamiento de hipoacutetesis quiacutemicas

En esta seccioacuten se va a dedicar una parte a cada una las aplicaciones maacutes estudiadas

337 Organizacioacuten de Proyectos

El problema de la Organizacioacuten es el proceso de asignar actividades a recursos en eltiempo En el caso general de organizacioacuten es un proceso de tomar decisiones donde sepueden tomar dos tipos de decisiones

bull Decisiones de situar temporalmente Cuaacutendo deberiacutea empezar cada actividadbull Decisiones de asignacioacuten de recursos Con queacute recursos deberiacutea ejecutarse cada

actividad

Los problemas de organizacioacuten y de asignacioacuten de recursos estaacuten basados enrestricciones Diferentes restricciones pueden afectar a la organizacioacuten la duracioacuten de

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

una actividad las fechas de contrato restricciones precedentes tiempos de transferenciao de inicio de la actividad la capacidad de los recursos y el reparto de recursos

La relajacioacuten de las restricciones principales caracteriza la calidad de los problemas deorganizacioacuten Estas restricciones son las relacionadas con fechas de entregaproductividad periodicidad de los cambios de herramientas niveles de inventariomargen de tiempo etc Algunas de estas restricciones pueden ser combinadas en lafuncioacuten de evaluacioacuten para la optimizacioacuten

Las aplicaciones industriales de las teacutecnicas de resolucioacuten de restricciones a losproblemas del tipo de asignacioacuten de tareas incluye[Detcher 1990]

bull Organizacioacuten de la produccioacutenbull Organizacioacuten y planificacioacuten del transporte y la logiacutesticabull Administracioacuten del traacuteficobull Disentildeo de horarios de recursos y de hombresbull Asignacioacuten de plantilla incluyendo aplicaciones de ingenieriacutea de organizacioacutenbull Problemas de empaquebull Configuracioacuten de maacutequinas

Claramente hay muchos problemas relacionados en el aacuterea de la organizacioacuten en lapraacutectica para los sistemas comerciales e industriales reales los liacutemites entre unos y otrosno estaacuten claros Es difiacutecil encontrar alguacuten problema real que se ajuste a un modelopreconcebido sin tener que descartar partes del problema y aproximar otras asiacute que hayque tomar estos modelos con amplio margen de aproximacioacuten

Otra complicacioacuten es el tema de la optimizacioacuten En algunos casos el usuario estaacutesatisfecho soacutelo con tener una manera automaacutetica de tener la respuesta pero la mayoriacuteaquieren tener al menos una buena respuesta y algunos el mejor resultado posible Perodebido a la gran complejidad combinatoria de la mayoriacutea de los problemas reales deorganizacioacuten una optimizacioacuten real es muy difiacutecil asiacute que en la mayoriacutea de los casos seusa la programacioacuten con restricciones en combinacioacuten con otras teacutecnicas tales comoAlgoritmos Geneacuteticos para dar soluciones casi oacuteptimas en un tiempo razonable

Normalmente los problemas de organizacioacuten se presentan usando variables conrestricciones fuertes y restricciones suaves Estas pueden ser agrupadas en la abstraccioacutendel problema de organizacioacuten Asiacute tiacutepicamente el tiempo de comienzo y fin y laduracioacuten de cada actividad se representan por variables con restricciones Los dominiosde estas variables son el rango de tiempo de intereacutes en la organizacioacuten requerida

Capiacutetulo 4 Anaacutelisis y Disentildeo

CAPIacuteTULO 4

ANAacuteLISIS Y DISENtildeO

41 Recopilacioacuten de informacioacuten

bull Documentos recopilados

bull Cataacutelogo de asignaturas prerrequisitos y semestrebull Cataacutelogo de aulas y su capacidadbull Cataacutelogo de catedraacuteticos horas disponiblesbull Mapa reticular de la carrerabull Reporte de grupos abiertos en periodo actualbull Reporte de alumnos por grupo en periodo actualbull Reporte de alumnos no inscritos por materia y semestrebull Reporte de simulacioacuten (si todos aprobaran sus cursos)bull Reporte del iacutendice de reprobacioacuten del semestre anteriorbull Encuesta aplicada para determinar los conocimientos requeridos

para impartir una materiabull Encuesta aplicada para obtener los conocimientos de cada

catedraacuteticobull Aacuterbol de conocimiento realizado para determinar los grupos por

abrir de cada asignaturabull Aacuterbol de conocimiento del perfil de las asignaturasbull Aacuterbol de conocimiento del perfil de los catedraacuteticosbull Aacuterbol de conocimiento de los criterios de apertura de materia

bull El proceso de la elaboracioacuten de los horarios

1 Elaboracioacuten de los reportes estadiacutesticos del periodo actual(grupos abiertos alumnos por grupo alumnos no inscritos pormateria simulacioacuten iacutendice de reprobacioacuten)

2 Caacutelculo de la estimacioacuten de alumnos por materia del proacuteximoperiodo

3 Caacutelculo del nuacutemero de grupos por materia requeridos para elproacuteximo periodo

4 Ajuste de los grupos por materia requeridos para el proacuteximoperiodo

5 Formacioacuten de los grupos en paquetes por semestre6 Asignacioacuten de hora y aula a los grupos

Capiacutetulo 4 Anaacutelisis y Disentildeo

7 Seleccioacuten de catedraacutetico al grupo y viceversa8 Ajustes en hora aula y catedraacutetico por grupo9 Elaboracioacuten del reporte condensado para publicacioacuten de horarios10 Elaboracioacuten de los reportes de grupos sin maestro maestros con

horas disponibles grupos sin aula

Para elaborar los horarios de los grupos y maestros un semestre determinado se tienenen consideracioacuten los siguientes elementos

bull El estadiacutestico de Servicios Escolares (SE)El departamento de SE cuenta con un sistema que registra todo el historial acadeacutemicode los alumnos inscritos en el ITZ las materias cursadas y sus calificaciones lasdiferentes carreras con su retiacutecula de asignaturas y sus prerrequisitos los grupos delsemestre actual la cantidad de alumnos en cada grupo de una asignatura los iacutendicesde reprobacioacuten de semestres anteriores las materias que puede cursar un alumno elproacuteximo semestre etceacutetera Toda esta informacioacuten plasmada en reportesdiferentes es la base para la generacioacuten de los horarios del proacuteximo semestre

bull Los grupos requeridosSobre la base de operaciones aplicadas a la informacioacuten estadiacutestica se obtiene lacantidad de grupos requeridos para abrirse el proacuteximo semestre este nuacutemero degrupos es la cantidad oacuteptima con la que se podraacuten inscribir los alumnos sin tenerproblemas de falta de espacio el alterar disminuyendo o aumentando el nuacutemero degrupos requeridos puede ocasionar alumnos con carga crediticia menor a lareglamentaria o que existan grupos con menos de 10 alumnos respectivamente

bull Las aulasEl ITZ cuenta con 52 aulas repartidas entre las 8 carreras a cada coordinador decarrera se le asigna determinado numero de aulas para su administracioacuten asiacute que alasignar el aula a cada grupo debe cuidar la correcta distribucioacuten de los grupos en loshorarios correspondientes y que la capacidad de las aulas no rebase el numero dealumnos inscritos

bull Los maestros y departamentosCada departamento esta formado por un jefe y los catedraacuteticos que forman laacademia de cada carrera los profesores pueden ser de tiempo completo frac34 y frac12tiempo o profesores de asignatura cada uno tiene un horario predeterminado en turnomatutino o vespertino los catedraacuteticos de un departamento cubren las asignaturas desu carrera y apoyan a otras carreras a cubrir las materias que tienen el perfil de esaacademia los catedraacuteticos son uno de los recursos mas difiacuteciles de controlar

Restricciones propias de los profesores

o Materia no tiene maestro

o Maestro tiene horas disponibles

Capiacutetulo 4 Anaacutelisis y Disentildeo

o Maestro tiene materias preferencia

o Maestro ha impartido materia

o Maestro solicita materia

o Maestro tiene restricciones de nuacutemero de materias a impartir

o Restriccioacuten no pueden darse maacutes de tres materias diferentes

o Maestro tiene una profesioacuten

o Maestro tiene un perfil

o Maestro tiene un aacuterea definida

o Maestro prefiere materias especialidad

o Maestro prefiere materias semestres iniciales

bull Las materias o asignaturasEn cada carrera se tiene un mapa reticular que tiene las materias de cada semestre elnombre los creacuteditos las horas de teoriacutea y praacutectica las ligas con los prerrequisitos lasmaterias de la especialidad seleccionada etc

Restricciones propias de las asignaturas

o Materia de 1deg semestre

o Materia de 2deg semestre

o Materia de 3deg semestre

o Materia de 4deg semestre

o Materia de 5deg semestre

o Materia de 6deg semestre

o Materia de 7deg semestre

o Materia de 8deg semestre

o Materia de 9deg semestre

o Materia de especialidad

o Materia tiene prerrequisito

o Materia es de baacutesicas

o Materia requiere conocimientos de Base de Datos

o Materia requiere conocimientos de Electroacutenica

o Materia la puede impartir cualquier maestro

Capiacutetulo 4 Anaacutelisis y Disentildeo

o Materia requiere conocimientos de Redes

o Materia requiere ser impartida por ingeniero

o Materia tiene complejidad alta

o Materia debe ser impartida por catedraacutetico con grado de maestriacutea

o Materia requiere conocimientos de Arquitectura de Computadoras

o Materia no tiene cadenas

o Materia de Administracioacuten

o Materia de Ingenieriacutea Industrial

o Materia requiere conocimientos de Aacutelgebra

o Materia requiere conocimientos de Caacutelculo Diferencial e Integral

o Materia requiere conocimientos de Quiacutemica Inorgaacutenica y Orgaacutenica

o Materia requiere una elaboracioacuten de proyectos

bull Las carrerasLas 8 carreras que se imparten en el ITZ son ordenadas por nuacutemero de alumnos

1 Ingenieriacutea en Sistemas Computacionales2 Licenciatura en Informaacutetica3 Licenciatura en Administracioacuten4 Ingenieriacutea Civil5 Ingenieriacutea Electromecaacutenica6 Ingenieriacutea Industrial7 Ingenieriacutea Quiacutemica8 Ingenieriacutea Bioquiacutemica

bull Los horarios de grupoUna vez determinados los grupos requeridos para el proacuteximo semestre se procede a laasignacioacuten de horario de acuerdo al nuacutemero de horas teoacuterico-praacutecticas se le asignaaula y un catedraacutetico responsable se fija tambieacuten un nuacutemero de alumnos y el tiempode laboratorio en caso de ser necesario

Capiacutetulo 4 Anaacutelisis y Disentildeo

Diagrama de flujo del proceso

Elaboracioacuten de los reportes estadiacutesticos

Caacutelculo de alumnos por materiaproacuteximo periodo

Caacutelculo del nuacutemero de grupos pormateria requeridos

Ajuste de los grupos por materiarequeridos

Formacioacuten de los grupos en paquetespor semestre

Asignacioacuten de hora y aula a los grupos

Asignacioacuten de catedraacutetico al grupo

Ajustes en hora aula y catedraacutetico porgrupo

Elaboracioacuten del reporte condensado

Elaboracioacuten de reportes varios

Todo cuadrabien

Si

No

Fin

Inicio

Capiacutetulo 4 Anaacutelisis y Disentildeo

42 Anaacutelisis de la informacioacuten

bull Cataacutelogo de asignaturas prerrequisitos y semestre

Funcioacuten Dar a conocer las asignaturas de una carrera los prerrequisitos de las materiasy el semestre al que pertenece una asignatura los creacuteditos miacutenimos que debe tenerun alumno para cursar la asignatura

Origen Reporte emitido por el departamento de Servicios Escolares

Campos del reporte nombre carrera nombre asignaturas creacuteditos miacutenimos materiasprerrequisito semestre al que pertenece la asignatura

bull Cataacutelogo de aulas y su capacidad

Funcioacuten Dar a conocer la nomenclatura y capacidad de las aulas y laboratorios del ITZ

Origen Departamento de Planeacioacuten

Campos del reporte Nombre del edificio nuacutemero de aula capacidad

bull Cataacutelogo de catedraacuteticos horas disponibles

Funcioacuten Dar a conocer los catedraacuteticos por departamento y sus horas disponibles frentea grupo

Origen Departamentos acadeacutemicos

Campos del reporte Nombre del departamento clave de profesor nombre del profesorcantidad de horas frente a grupo que debe tener

bull Mapa reticular de la carrera

Funcioacuten Mostrar el mapa reticular de una carrera graacuteficamente muestra las asignaturaspor semestre sus requisitos foacutermula crediticia etc

Origen Divisioacuten de Estudios Profesionales

Campos del reporte Nombre y clave de la carrera nombre y clave de las asignaturasfoacutermula crediticia (nuacutemero de horas teoacutericas nuacutemero de horas praacutecticas creacuteditos dela asignatura) las materias prerrequisito de otras materias de especialidad semestrede la asignatura nuacutemero de creacuteditos necesarios para poder cursar una asignatura

Capiacutetulo 4 Anaacutelisis y Disentildeo

bull Reporte de grupos abiertos en periodo actual

Funcioacuten Muestra los cursos que son ofertados en el periodo actual

Origen Departamento de Servicios Escolares

Campos del reporte Nombre de la carrera nombre de las asignaturas grupo de loscursos cantidad de alumnos inscritos nombre del catedraacutetico que lo imparte

bull Reporte de alumnos por grupo en periodo actual

Funcioacuten Muestra la cantidad de alumnos inscritos por semestre de una carrera

Origen Departamento de Servicios Escolares

Campos del reporte Nombre de la carrera semestres del 1 al 13 nuacutemero de alumnosinscritos por semestre

bull Reporte de alumnos no inscritos por materia y semestre

Funcioacuten Muestra los alumnos que pudieron inscribirse a una materia pero que poralguna razoacuten no lo hicieron

Origen Departamento de Servicios Escolares

Campos del reporte Nombre de la carrera nombre de la materia por semestre nuacutemerode alumnos que pudieron inscribirse y no lo hicieron

bull Reporte de simulacioacuten (si todos aprobaran sus cursos)

Funcioacuten Este reporte simula que todos los alumnos inscritos en los cursos acreditan elcurso entonces cuenta cuantos estudiantes pueden cursar todas las asignaturas comosi hubieran aprobado todos sus cursos actuales

Origen Departamento de Servicios Escolares

Campos del reporte Nombre de la carrera nombre de la asignatura y por semestre elnuacutemero de alumnos que pueden cursar una materia

bull Reporte del iacutendice de reprobacioacuten del semestre anterior

Funcioacuten Dar a los coordinadores los iacutendices de aprobacioacuten y reprobacioacuten de los cursosdel periodo anterior

Capiacutetulo 4 Anaacutelisis y Disentildeo

Origen Departamento de Servicios EscolaresCampos del reporte Nombre de la carrera nombre de la asignatura total de alumnos

aprobados total de alumnos reprobados del periodo anterior

bull Encuesta de conocimientos requeridos para impartir asignatura

Funcioacuten Obtener los datos de los conocimientos que debe poseer un catedraacutetico quequiera impartir una asignatura

Origen Academia de cada departamentoCampos del reporte Nombre de la asignatura objetivo de la asignatura carrera lista de

conocimientos requeridos para impartir la asignatura carrera adecuada del profesorque imparta la asignatura

bull Encuesta de conocimientos requeridos para perfil de profesores

Funcioacuten Obtener los datos de los conocimientos que debe posee un catedraacutetico

Origen Academia de cada departamento

Campos del reporte Nombre del catedraacutetico carrera del catedraacutetico conocimientos enaacutereas particulares de cada asignatura

43 Solucioacuten definida

Resolver el problema iniciando con la metodologiacutea ldquodivide y venceraacutesrdquo el problemageneral se dividiraacute en 6 problemas particulares

a) Sistema de Informacioacuten para control de horariosb) Sistema Experto para definicioacuten y generacioacuten de grupos

por abrirc) Moacutedulo Programacioacuten Loacutegica de Restricciones para

asignar horario a los gruposd) Moacutedulo Algoritmos Geneacuteticos para asignar aula a los

grupos ya definidose) Sistema Experto para definir catedraacutetico para

asignaturaf) Sistema Experto para asignar asignatura a catedraacutetico

Debido a la naturaleza y caracteriacutesticas de la informacioacuten todos lossistemas seraacuten realizados iniciando desde cero la recopilacioacuten deinformacioacuten el anaacutelisis el disentildeo y la programacioacuten de cada moacutedulo delsistema programado en Visual Basic y Bases de Datos en Access

Capiacutetulo 4 Anaacutelisis y Disentildeo

La principal ventaja de eacutesta opcioacuten es que el sistema estaacute hecho a la medida de lasnecesidades de la institucioacuten poniendo las restricciones en el formato que se tienenactualmente la desventaja es que se debe desarrollar TODO el sistema

44 Requerimientos del sistema

Los Motores de Inferencias deben ser disentildeados con las siguientes caracteriacutesticas

bull Buacutesqueda de primero en profundidad en ocasiones cuando se interactuacutee con elusuario este tipo de buacutesqueda seraacute utilizado para recorrer toda la base deconocimiento

bull Buacutesqueda heuriacutestica en la que el usuario deberaacute dar datos iniciales de por dondeempezar la buacutesqueda de alguna informacioacuten

bull Tomar informacioacuten de la Base de Conocimiento y guardarla en las bases de datos ytambieacuten inferir la informacioacuten y guardarla en las bases de datos para su posteriortratamiento e impresioacuten

bull Seleccionar la mejor opcioacuten y presentarla al usuario para los casos en que el usuariodecida cambiar alguacuten dato la maacutequina deberaacute presentar una opcioacuten y saber indicarel porqueacute la ldquoeligioacuterdquo

bull Dar otras soluciones ademaacutes de la oacuteptima teniendo porcentajes de aceptacioacuten paracada solucioacuten y permitiendo la buacutesqueda de maestros a impartir materias aulas paraalguacuten grupo o cantidad de grupos a abrir

bull Dar resultados en lenguaje natural de modo que el usuario entienda claramente loque la maacutequina le comunica

bull Trabajar interactivamente con el usuario para que eacuteste pueda cuestionar el porqueasignoacute un maestro abrioacute grupos asignoacute un aula etceacutetera

bull Tener capacidad para el uso del paradigma basado en analogiacuteas ldquoSi un maestro yadio la materia en alguacuten semestre entonces puede darla en este semestrerdquo o bien ldquoSieste paquete de materias estaacute completo entonces repite todo el paquete estesemestrerdquo

Interfaz de Usuario recibe y entrega informacioacuten interactuando con el usuario esdecir el usuario puede

1) alimentar hechos2) solicitar resultados y reportes3) cuestionar coacutemo se obtuvieron ciertas conclusiones

La interfaz de usuario debe tener las caracteriacutesticas siguientes

bull Comunicarse en el lenguaje del usuario sea un humano u otro dispositivobull Recibir hechos del usuario y almacenarlos en la base de hechosbull Presentar de manera amigable los objetivos a buscar e inferencias en pantallabull Dar de manera clara la explicacioacuten de la inferencia realizada

Capiacutetulo 4 Anaacutelisis y Disentildeo

bull Dar resultados por escrito en informesbull Proporcionar al usuario la facilidad de alimentar la base de conocimientosbull Dar al usuario la facultad de corregir las inferenciasbull Si el usuario es inexperto facilitar la ayuda necesaria

Seleccioacuten del lenguaje de programacioacuten

Visual Basic 60 proporciona a los programadores facilidad para desarrollar aplicacionescomplejas en poco tiempo (comparado con lo que cuesta programar en Visual C++ porejemplo)

El sistema necesita interfaces amigables al usuario con ventanas y botones emergentesen cualquier momento y Visual Basic 60 es una herramienta de disentildeo de aplicacionespara Windows en la que eacutestas se desarrollan en una gran parte a partir del disentildeo de unainterfaz graacutefica (pudiendo incorporar todos los elementos de este entorno informaacuteticoventanas botones cajas de diaacutelogo y texto botones de opcioacuten y de seleccioacuten barras dedesplazamiento graacuteficos menuacutes etc) En una aplicacioacuten Visual Basic 60 el programaestaacute formado por una parte de coacutedigo puro y otras partes asociadas a los objetos queforman la interfaz graacutefica Visual Basic 60 permite la programacioacuten de sus ventanasbotones y componentes de manera maacutes faacutecil que Java con sus Applets

En la parte del sistema de control de horarios que es un sistema de informacioacuten comuacutenlos programas que llenan de informacioacuten las bases de datos son muy parecidos unos conotros al hacer los procesos de altas bajas modificaciones consultas y validaciones seutilizan las ventajas que Visual Basic 60 ofrece de la Programacioacuten Orientada aObjetos (POO) eacutesta es una forma de programacioacuten que utiliza objetos ligados mediantemensajes para la solucioacuten de problemas Puede considerarse como una extensioacuten naturalde la programacioacuten estructurada en un intento de potenciar los conceptos demodularidad y reutilizacioacuten de coacutedigo Las caracteriacutesticas fundamentales de la POO sonabstraccioacuten encapsulamiento herencia y polimorfismo

Visual Basic 60 soporta la abstraccioacuten la encapsulacioacuten el polimorfismo y lareutilizacioacuten de coacutedigo Los objetos de Visual Basic estaacuten encapsulados es decircontienen su propio coacutedigo y sus propios datos

Manejador de Base de datos para el almacenamiento de la informacioacutenEl manejador de base de datos a utilizar seraacute Microsoft Access debido a que los usuariosque alimentan la base de conocimientos son expertos en diferentes aacutereas delconocimiento y tiene conocimientos limitados de los diferentes manejadores y estaacuten maacutesfamiliarizados con Microsoft Access Ademaacutes de que Access es transportablefaacutecilmente

Ademaacutes la cantidad y tipo de informacioacuten que se almacena en las tablas no requieremanejadores de bases de datos potentes o con caracteriacutesticas especiales

Capiacutetulo 4 Anaacutelisis y Disentildeo

Sistemagenerador dehorarios

SistemaExperto

Reglas

Criterios

Criterios por regla Conocimiento

Procesos

Capturaestadiacutesticas

Calcula grupos

Ajusta grupos

Sistema expertoasigna materia

Sistema Expertoasigna maestro

Asigna materia

Asigna catedraacutetico

Conocimientos

Procesos

Materias

Perfil general

Catedraacuteticos

Perfil materias

Perfil maestro

Asignacioacutenmateria-maestro

Asignacioacutenmaestro-materia

Buacutesqueda independiente

B adelante

B atraacutes

Abduccioacuten

Explicacioacuten

MoacuteduloPLR

Asigna horario

Datos

Arbol derestricciones Procesos

Materia

Grupos

Paquetes

Horario

Restriccioacuten 1

Restriccioacuten 3

Restriccioacuten 2

Restriccioacuten N

Genera random

Evaluacutea restricciones

Guarda grupo

MoacuteduloAlgoritmoGeneacutetico

Asigna aula

Operadores Geneacuteticos

Evaluacioacuten

Cruzamiento

Seleccioacuten

Mutacioacuten

Poblacioacuten Inicial

Versioacuten 1

Versioacuten 2

Versioacuten 3

Versioacuten N

Condensadodatos grales

Materia

Hora

Aula

Control escolar

Sistema deInformacioacuten

Aulas

Horarios

Grupos

Maestros

Datosestadiacutesticos

Datosgenerales

Datos condensado

Materias

45 MAPA CONCEPTUAL DEL PROYECTO

Capiacutetulo 4 Anaacutelisis y Disentildeo

Capiacutetulo 4 Anaacutelisis y Disentildeo

En la Figura 41 se muestra el mapa conceptual del proyecto La burbuja centralrepresenta el sistema generador de horarios y cada rama representa uno de los seismoacutedulos que lo componen las burbujas de cada rama contienen a su vez variasramificaciones en las que se muestran de manera graacutefica los componentes maacutesrepresentativos de los procesos utilizados la informacioacuten que manejan el conocimientoque utilizan y las restricciones involucradas

El moacutedulo Servicios Escolares contiene informacioacuten necesaria para la administracioacuten delos horarios en general y proporciona los datos para el funcionamiento de los demaacutesmoacutedulos

El moacutedulo Sistema Experto Creacioacuten de Grupos (SECG) muestra el conocimiento yprocesos utilizados para definir la cantidad de grupos a ofertar a partir de la informacioacutenestadiacutestica proporcionada por servicios escolares maacutes adelante en el documento seexplica a detalle su funcionamiento

En la Figura 41 se aprecia que los moacutedulos Sistema Experto AsignaCatedraacutetico(SEAC) y Sistema Experto Asigna Materia(SEAM) comparten las bases deconocimiento porque el conocimiento de un SE es la base de hechos del otro en amboscasos los procesos difieren solamente en la informacioacuten que utilizan y en los resultadosque producen noacutetese que existe un proceso que es ldquobuacutesqueda independienterdquo que puedecatalogarse como un Sistema Experto adicional que sirve para sugerir las asignaturasque puede impartir una persona que no estaacute dentro de las bases de datos de maestros ypor lo tanto su perfil tampoco estaraacute capturado en esta caso los hechos (su perfil deconocimientos) es capturado en el momento de la consulta

El moacutedulo de Algoritmos Geneacuteticos (AG) muestra los datos que recibe como se generauna poblacioacuten inicial el tratamiento que se le aplica por medio de los operadoresgeneacuteticos y la informacioacuten que se genera

Por uacuteltimo en la Figura 41 se nota tambieacuten el moacutedulo donde se utiliza la ProgramacioacutenLoacutegica de Restricciones que contiene 3 ramas donde una representa los datos recibidosy la informacioacuten generada otra rama denota un aacuterbol de restricciones que deben sersatisfechas por los paquetes de horarios la uacuteltima rama denota los procesos que se llevana cabo debe notarse que existe un proceso aleatorio que genera cada grupo un procesoque evaluacutea el grupo contra las restricciones y uno mas que guarda los grupos quecumplieron con todas

En este mapa conceptual no se muestra en que orden se ejecuta cada moacutedulo delproyecto la Figura 42 ilustra la secuencia de ejecucioacuten de los moacutedulos

La Figura 42 muestra el diagrama con la secuencia en que se van ejecutando losprocesos los datos que ingresan a cada moacutedulo y la informacioacuten que genera

Capiacutetulo 4 Anaacutelisis y Disentildeo

452 MAPAS CONCEPTUALES DE LOS MOacuteDULOS

Servicios Escolares

Datos Estadiacutesticos

Sistema Experto Creacioacuten de Grupos

Materias y grupos requeridos

Moacutedulo PLR

Materia + grupo + hora

Moacutedulo AG

Materia + grupo + hora + aula

Sistema ExpertoAsigna Catedraacutetico Sistema Experto

Asigna Materia

Sugiere profesorpara asignaturas

Sugiere asignaturapara profesor

Materia + grupo + hora + aula +profesor

Condensado final de materias

1

2

3

4

5 6

Fig 42 Diagrama de secuencia

Capiacutetulo 4 Anaacutelisis y Disentildeo

Como puede verse todo inicia cuando Servicios Escolares enviacutea la informacioacuten a laDivisioacuten de Estudios Profesionales (donde ldquohabitanrdquo los coordinadores) quienes son losresponsables de la elaboracioacuten de los horarios

Un primer proceso captura la informacioacuten que proviene de Servicios Escolares elsegundo moacutedulo define cuantos grupos deben programarse el tercer proceso asigna lahora a cada grupo el cuarto moacutedulo es el proceso que asigna las aulas los procesosquinto y sexto sirven para sugerir queacute catedraacutetico es el maacutes adecuado para cada grupo ycomo resultado final se tiene el condensado final de horarios para el siguiente semestre

En la Figura 43 se muestran los componentes del primer Sistema Experto utilizado paradefinir la cantidad de grupos que deben ofertarse el proacuteximo semestre en la partesuperior izquierda de la figura esta el coordinador de la carrera quien es el encargado decargar el conocimiento a las Bases de Conocimiento utilizando la interfaz de experto esla persona indicada para definir los criterios que tiene cada materia define las reglaspara la agrupacioacuten de los criterios y define en cada regla que tipo de ajuste se realiza

Experto

Coordinador

Interfaz Experto

Base deConocimientos

CriteriosReglasAjustes

Motor de Inferencia ListasMateriasGrupos requeridos

UsuarioMoacutedulo Explicacioacuten

Usuario(coordinador

novato)

Interfaz Usuario

Base Hechos

Informacion Estadiacutestica

Fig 43 Sistema Experto Generador de Grupos

Capiacutetulo 4 Anaacutelisis y Disentildeo

El usuario en la parte inferior de la figura puede ser el coordinador o su asistente y seencarga de capturar la informacioacuten estadiacutestica proporcionada por servicios escolares queson los datos de alumnos inscritos actualmente en cada materia el iacutendice de reprobacioacutenlos alumnos inscritos en la materias prerrequisito una simulacioacuten de los alumnosprobables para cursar esa materia si todos los inscritos aprueban todo y los alumnos quepueden cursar las materias pero no se inscribieron

Con los datos anteriores se realiza la siguiente operacioacuten

(Inscritos en materia iacutendice de reprobacioacuten de materia) 100 +Alumnos no inscritos +Alumnos en prerrequisito ndash (alumnos en prerrequisito iacutendice de reprobacioacuten) 100 +(Simulacioacuten ndash alumnos en prerrequisito ndash no inscritos) = Alumnos del proacuteximo semestre

Este uacuteltimo dato (alumnos del proacuteximo semestre) proporciona la cantidad de alumnospor materia que pueden inscribirse en los grupos seguacuten los estadiacutesticos de ServiciosEscolares pero no contempla preferencias de alumnos conveniencia de inscripcioacuten etc

Ofrecer los grupos necesarios para la inscripcioacuten de alumnos tomando el dato calculadoocasiona que al terminar las inscripciones existan grupos vaciacuteos grupos sobresaturadosalumnos con pocas materias y varios problemas mas

La finalidad de este Sistema Experto es realizar un ajuste al dato calculadoanteriormente para incluir en su caacutelculo todas aquellas caracteriacutesticas y experiencia delcoordinador para minimizar los problemas mencionados en el paacuterrafo anterior

Los ajustes pueden ser de varios tiposbull Ajuste draacutestico hacia abajo Se aplica una reduccioacuten del 50 al dato calculadobull Ajuste hacia arriba Se agrega un grupo maacutes al dato calculadobull Ajuste hacia abajo Se resta un grupo al dato calculadobull Ajuste numeacuterico Se ajusta utilizando la regla del redondeo de decimalesbull Ajuste draacutestico hacia arriba Se suman 2 oacute 3 grupos al dato calculado

Cuando utilizar una u otra regla estaacute definido por los criterios que cada materia contienenaturalmente y que con el paso de los semestres puede variar (aunque tambieacuten puedenpasar antildeos sin sufrir ninguacuten cambio)

La Figura 44 describe la utilizacioacuten de la teacutecnica de la Inteligencia Artificial llamadaProgramacioacuten Loacutegica de Restricciones para generar el condensado de grupos a partir deuna lista de materias que contiene solamente el nombre y la cantidad de grupos que sedeben abrir de una materia

Capiacutetulo 4 Anaacutelisis y Disentildeo

EoseX

Ugacgg

Lgc

s

ListasMaterias

Procesoformador depaquetes

Lista grupo +paquete

Moacutedulo generadorRandom Hora

Restricciones satisfec

Restriccio

Materia +hora

Moacuteduloverificadorrestriccione

s

Restriccionesnosatisfechas

Fig 44 Diagrama del moacutedulo Programacioacuten Loacutegica de Restriccione

xiste un proceso inicial que forma los ldquopaquetesrdquo de grupos esto es las materias serdenan por el semestre al que corresponden (generalmente son 6 materias poremestre) despueacutes para cada semestre se generan los grupos correspondientes si porjemplo se deben hacer 3 grupos de la materia X se generan tres registros de la materia y cada registro se etiqueta

Materia X grupo AA Materia X grupo AB y Materia X grupo AC

na vez que todas las materias han sido generadas y ldquoempaquetadasrdquo se pasan alenerador de horario en bloques de un paquete a la vez Este proceso funcionasignando un horario aleatorio a cada grupo despueacutes se verifica que cada grupo cumplaon todas las restricciones que son del tipo grupo no ldquochocardquo con otro del paqueterupo proporciona horario continuo al paquete grupo tiene horario de 2 horas por diacutearupo no deja horas vaciacuteas en paquete grupo cumple con todas sus horas asignadas etc

a Figura 45 muestra el disentildeo del Algoritmo Geneacutetico utilizado para asignar aula a losrupos que provienen del moacutedulo anterior (PLR) y recibe como datos de entrada unondensado de horarios (materia + grupo + hora)

Capiacutetulo 4 Anaacutelisis y Disentildeo

Procesoevaluacioacuten

Condensado

Materia +Grupo +Hora

Generador de versiones aleatorias

Genera versioacuten asigna aula

Versioacuten 3

Versioacuten 2

Versioacuten 1

Versioacuten N

Poblacioacuten inicial

ProcesoseleccioacutenProceso cruzamiento

clonacioacuten mutacioacuten

Versioacuten z

Versioacuten y

Versioacuten x

Versioacuten w

Nueva generacioacuten

Individuos aptos

Individuos no aptosReciclaje

CondensadoMateria + grupo +hora + aula

Fig 45 Diagrama del moacutedulo Algoritmo Geneacutetico

Capiacutetulo 4 Anaacutelisis y Disentildeo

Esta rama de la Inteligencia Artificial es utilizada generalmente para procesos deoptimizacioacuten y en esta ocasioacuten se utiliza para asignar las aulas al condensado dematerias

Al inicio se reciben como datos generales el condensado de materias La poblacioacuteninicial se obtiene copiando N veces (N versiones) este condensado y agregando a cadaregistro el nuacutemero de versioacuten y un aula asignada de manera aleatoria de esta manera seobtienen N versiones diferentes del condensado original

Cada versioacuten es entonces evaluada contando el nuacutemero de choques en aula y la cantidadde espacios vaciacuteos por aula a cada versioacuten se le genera un vector para guardar laevaluacioacuten (cromosoma de evaluacioacuten) y de esta manera se mide el grado de aptitud quetiene cada versioacuten

Las versiones que tienen menos choques y menos espacios vaciacuteos se consideran con ungrado de aptitud alto y son las mejores al contrario las que tienen muchos choquesson consideradas de aptitud baja no sirven para la reproduccioacuten y son desechadas

Una vez seleccionadas la mejores versiones se procede a la aplicacioacuten de los operadoresgeneacuteticos el primero que se aplica es el cruzamiento y consiste en elegir dos versionesde alta aptitud tomar segmentos seleccionados heuriacutesticamente de ellas y formar unnuevo individuo (una nueva versioacuten) se repite este proceso Y veces con las diferentesversiones hasta tener una nueva generacioacuten de N condensados de horarios

Repetir este proceso de generacioacuten evaluacioacuten y seleccioacuten durante Z generacionesaplicando cuando se necesite la clonacioacuten que es un proceso de copiar completamenteuna versioacuten (con alto grado de aptitud) a la nueva generacioacuten

Al principio la convergencia hacia horarios sin choques en aula es raacutepida pero al pasode las generaciones disminuye entonces se debe usar la mutacioacuten que es un proceso deacceder manualmente los registros de alguna versioacuten Zi en la generacioacuten Z y corregiralguacuten aula al final despueacutes de varias generaciones selecciones cruzamientosclonaciones y mutaciones se obtiene un condensado de aulas libres de choques y conpocos espacios vaciacuteos

En la Figura 46 se muestran los componentes del Sistema Experto utilizado para sugerircuales son los catedraacuteticos que mejor se desempentildeariacutean para impartir una asignaturatomando en cuenta los conocimientos que tiene un profesor (adquiridos a lo largo de sucarrera) y cuales son los conocimientos necesarios para impartir la caacutetedra de algunaasignatura

Capiacutetulo 4 Anaacutelisis y Disentildeo

Todo inicia haciendo una encuesta a los profesores acerca del perfil y los conocimientosnecesarios para poder impartir una asignatura el objetivo de la misma y los principalestemas que abarca todo lo anterior se captura en la base de hechos como el perfil de lamateria

Posteriormente se hace otra encuesta a los profesores pidieacutendoles que seleccionencuales son los conocimientos y el grado de dominio que tienen de los diferentes toacutepicosde las asignaturas esto se convierte en el perfil del catedraacutetico Por uacuteltimo con unproceso de induccioacuten se determina para cada materia cual es el grado de certeza con elcual puede un profesor impartir una asignatura

Experto

Coordinador

Interfaz Experto

Base deConocimientos

CatedraacuteticosConocimientos profesorPerfil profesor

Motor de Inferencia Lista profesores paraimpartir una materia

Jefedepartamento

Moacutedulo Explicacioacuten

Usuario(coordinador

novato)

Interfaz Usuario

Base Hechos

Perfil

Fig 46 Diagrama de Sistema Experto para sugerir profesor a asignatura

Capiacutetulo 4 Anaacutelisis y Disentildeo

Noacutetese en la Figura 47 que el coordinador captura el conocimiento referente a lasasignaturas (objetivo temas caracteriacutesticas necesarias para impartirla) y este esalmacenado en la Base de Conocimientos

Por otro lado un profesor debe llenar una encuesta en la que indique cuales son lostemas que domina y en que porcentaje lo hace (esto es el perfil del catedraacutetico) estainformacioacuten se almacena en la base de hechos--

El Motor de Inferencia hace los matchs respectivos y genera una lista de las materias quepuede impartir un profesor y con que grado de certeza estaacute capacitado para hacerlo

Por uacuteltimo el moacutedulo de explicacioacuten informa el porqueacute dio esa inferencia mostrando lascaracteriacutesticas de materia y profesor que hicieron match

Fig 47 Diagrama de Sistema Experto para sugerir asignaturas para catedraacutetico

Experto

Coordinador

Interfaz Experto

Base deConocimientos

MateriasCaracteriacutesticas MateriasPerfil materia

Motor de Inferencia Lista materias para unprofesor

Profesor

Moacutedulo Explicacioacuten

Profesor nuevoInterfaz Usuario

Base Hechos Perfil profesor

Capiacutetulo 4 Anaacutelisis y Disentildeo

453 Diagrama de contextoEn la Figura 48 se detallan los elementos que intervienen aportando y recibiendoinformacioacuten para el funcionamiento del sistema

Los departamentos acadeacutemicos aportan al sistema una lista con los catedraacuteticos quelaboran ahiacute incluye los datos personales de los profesores nuacutemero de tarjeta nombrecarrera etc Los coordinadores de carrera son los responsables de la elaboracioacuten de loshorarios estos funcionarios son la pieza fundamental de este proceso porque aportan susconocimientos para

bull Definir el ajuste al dato estadiacutestico proporcionado por Servicios Escolaresbull Definir las restricciones para la creacioacuten de los paquetes de gruposbull Definir las restricciones para asignar hora a cada grupobull La distribucioacuten de los grupos en las aulasbull Asignar la asignatura que mejor puede impartir un catedraacuteticobull Asignarle a una asignatura al profesor que mejor puede impartirla

El departamento de Servicios Escolares es el iniciador del proceso de la elaboracioacuten dehorarios aporta los datos estadiacutesticos obtenidos de la situacioacuten escolar actual de losalumnos cada alumno estaacute inscrito en alguna de las 8 carreras que se ofrecen en elInstituto estaacute cursando entre 5 y 8 asignaturas por semestre en cada periodo acredita oreprueba algunas materias En cada carrera se tiene un mapa reticular que incluyeaproximadamente 50 asignaturas con prerrequisitos creacuteditos horas en aula horas enlaboratorio orden por semestre etc

El departamento Divisioacuten de Estudios Profesionales (donde estaacuten adscritos loscoordinadores de carrera) es el responsable de distribuir las aulas disponibles delInstituto entre los distintos coordinadores las aulas son un recurso escaso y por lo tantovalioso de esta distribucioacuten depende en gran medida la holgura o estrechez que tienenlos coordinadores para asignar las aulas a los grupos creados

Los profesores son otro de los recursos valiosos de una institucioacuten son los responsablesde transmitir sus conocimientos a los alumnos cada catedraacutetico posee conocimientos dediversas aacutereas toacutepicos y ramas del saber humano el perfil del catedraacutetico estaacute enrelacioacuten directa con el dominio que tiene de cada una de ellas y varia desde unconocimiento superficial hasta el dominio total de un aacuterea

Los generadores random de los moacutedulos PLR y AG proporcionan la informacioacutennecesaria generada de manera aleatoria para el funcionamiento de esos moacutedulos

A los coordinadores y alumnos se les proporciona un condensado de horarios losalumnos conocen los grupos a los que se pueden inscribir las horas las aulas y loscatedraacuteticos que las impartiraacuten

Capiacutetulo 4 Anaacutelisis y Disentildeo

Sistema para laelaboracioacuten de

horarios

Departamentosacadeacutemicos

Jefes dedepartamento

Divisioacuten deEstudios

Profesionales

DepartamentoServiciosEscolares

Alumnos

Coordinadoresde carrera

Coordinadoresde carrera

Lista catedraacuteticos disponibles

Conocimientos

Reporte datos estadiacutesticos

Lista aulas disponibles

Condensado de horarios

Horarios disponibles

Lista horarios profesores

Profesores Generadoresaleatorios

Perfil maestro

Horas y aulas aleatorios

Fig 48 Diagrama de contexto del proyecto

Cap

iacutetulo

4

Anaacute

lisis

y D

isentilde

o

Sist

ema

para

lael

abor

acioacute

n de

hora

rios

Dep

arta

men

tos

acad

eacutemic

os

Div

isioacute

n de

Estu

dios

Prof

esio

nale

s

Dep

arta

men

toSe

rvic

ios

Esco

lare

sC

oord

inad

ores

de c

arre

ra

List

a ca

tedr

aacutetic

os d

ispo

nibl

es

Con

ocim

ient

osR

epor

teda

tose

stad

iacutestic

osLi

sta

aula

s dis

poni

bles

Prof

esor

esG

ener

ador

esal

eato

rios

Perf

il m

aest

roH

oras

y a

ulas

Fig

49

Dia

gram

a de

func

ione

s fun

dam

enta

les (

entra

das)

Cap

tura

supe

rfil

deco

noci

mie

nto

Cap

tura

las

aula

s

Enviacute

a da

tos

Cap

tura

suco

noci

mie

nto

Enviacute

a da

tos

depr

ofes

ores G

ener

ada

tos

Cla

ve n

ombr

eho

ras

turn

o

Tips

tru

cos

cono

cim

ient

ohe

uriacutes

tico

Cla

ve c

apac

idad

ed

ifici

o

Alu

mno

sin

scrit

os

sim

ulac

ioacuten

no

insc

ritos

iacutend

ice

repr

obac

ioacuten

Toacutepi

cos y

tem

asqu

e do

min

aA

ula

y ho

raal

eato

rios

Capiacutetulo 4 Anaacutelisis y Disentildeo

Sistema para laelaboracioacuten de

horarios

Coordinadoresde carrera

Jefes dedepartamento Alumnos

Fig 410 Diagrama de funciones fundamentales (salidas)

Imprimecondensado

Imprime lista Imprimehorarios

Maestro materiahora

Materia grupohora aula

maestrosugerido

Condensado de horarios Horarios disponibles

Lista horarios profesores

Materia grupohora aula

maestro

Capiacutetulo 4 Anaacutelisis y Disentildeo

454 Diagrama entidad - relacioacuten

NOTA Los siguientes diagramas muestran las tablas utilizadas por cada moacutedulo paramayor claridad se repitieron las tablas necesarias para representar cada parte del sistemapero en la base de datos no existe tal duplicacioacuten

Este diagrama contiene las tablas del moacutedulo administrativo de los horarios en unprincipio eacutestas eran las uacutenicas tablas de un sistema de control de horarios

FK_HORARIOS_REFERENCE_MATERIASFK_MATERIAS_REFERENCE_SERVICIO

FK_MATERIAS_REFERENCE_RAMA_MAT FK_MATERIAS_REFERENCE_CARRERAS

HORARIOS

GrupoId_aulaHora_inicioHora_lunesHora_martesHora_miercolesHora_juevesHora_viernesHora_sabadoObservacionesPeriodoAnioid_materiaId_catedratico

Text(2)INTEGERINTEGERText(6)Text(6)Text(6)Text(6)Text(6)Text(6)Text(30)Text(20)INTEGERINTEGERSMALLINT

ltfk3gt

ltfk2gtltfk1gt

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave de asig prerequisitoclave de asig prerequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

MATERIAS

SERVICIOS_ESCOLARESId_materiaINSCRITOSNO INSCRITOSSIMULACIONPROXIMO SEMESTREGRUPOS REQUERIDOSIndice de reprobacionperiodoantildeoGrupos ajustadoAlumnos ajustadoId_ajusteId_regla

INTEGERSMALLINTSMALLINTSMALLINTSMALLINTDOUBLEDOUBLEText(7)INTEGERSMALLINTSMALLINTINTEGERSMALLINT

RAMA_MATERIA

Id_ramaNombre_rama

COUNTERText(30)

ltpkgt

CARRERAS

Id_CarreraNombre_carrera

Text(15)Text(50)

ltpkgt

Fig 411 Diagrama entidad ndash relacioacuten del moacutedulo administrativo

Capiacutetulo 4 Anaacutelisis y Disentildeo

Este diagrama muestra las tablas donde se almacena el conocimiento de loscoordinadores para que el Sistema Experto del moacutedulo sugiera y aplique el ajuste aldato de cantidad de grupos sugerido por Servicios Escolares La relacioacuten entre las tablasva generando las reglas de produccioacuten

MATERIAS

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave asig prerrequisitoclave asig prerrequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

REGLAS

DescriId_reglaId_ajusteTot_peso

Text(70)COUNTERINTEGERINTEGER

ltpkgtltfkgt

FK_MATERIAS_REFERENCE_SERVICIO

FK_HECHOS_R_REFERENCE_CRITERIO

FK_HECHOS_R_REFERENCE_REGLAS

FK_HISTORIA_REFERENCE_REGLAS

FK_HISTORIA_REFERENCE_CRITERIO

FK_REGLAS_REFERENCE_AJUSTES

FK_HISTORIA_REFERENCE_MATERIAS

FK_HISTORIA_REFERENCE_CRITERIO

SERVICIOS_ESCOLARES

Id_materiaINSCRITOSNO INSCRITOSSIMULACIONPROXIMO SEMESTREGRUPOS REQUERIDOSIndice de reprobacioacutenperiodoantildeoGrupos ajustadoAlumnos ajustadoId_ajusteId_regla

INTEGERSMALLINTSMALLINTSMALLINTSMALLINTDOUBLEDOUBLEText(7)INTEGERSMALLINTSMALLINTINTEGERSMALLINT

HECHOS_REGLAS

Id_criterioId_reglaPromedio

INTEGERINTEGERINTEGER

ltfk2gtltfk1gt

CRITERIOS

Id_criterioDescripcion

COUNTERText(60)

ltpkgt

HISTORIAL_CRITERIOS

Id_criterioId_reglaPeso de la regla

INTEGERINTEGERSMALLINT

ltfk2gtltfk1gt

AJUSTES

TipoDescripcionId_ajuste

Text(25)MemoCOUNTER ltpkgt

HISTORIAL_MATERIA

Id_materiaId_criterioprioridad

INTEGERINTEGERSMALLINT

ltfk2gtltfk1gt

Fig 412 Diagrama E-R del moacutedulo para determinar y ajustar nuacutemero de grupos

Capiacutetulo 4 Anaacutelisis y Disentildeo

En este diagrama se muestra la base de datos que almacena la informacioacuten quemanipula el moacutedulo Algoritmo Geneacutetico las tablas maacutes representativas sonPOBLACION donde se guardan todas las versiones que forman las generaciones dehorarios y CROMOSOMAS que almacena el registro de evaluacioacuten de cada versioacuten dehorarios

FK_HORARIO__REFERENCE_AULAS

FK_HORARIO__REFERENCE_POBLACIO

FK_MATERIAS_REFERENCE_TIPO_HOR

FK_POBLACIO_REFERENCE_AULAS

FK_POBLACIO_REFERENCE_MATERIAS

FK_POBLACIO_REFERENCE_CROMOZOM1 1

HORARIO_AULA

VersionAulaLunesMartesMiercolesJuevesViernesSabadoHoraId_aula

INTEGERText(6)SMALLINTSMALLINTSMALLINTSMALLINTSMALLINTSMALLINTSMALLINTINTEGER

ltfk2gt

ltfk1gt

AULAS

Id_aulaCapacidad_aulaNombre_aulaDisponible

COUNTERSMALLINTText(50)YesNo

ltpkgt

POBLACION

Id_materiaGrupoId_catedraticoAulaHora_inicioHora_lunesHora_martesHora_miercolesHora_juevesHora_viernesVersionId_aulaPeriodoAnio

INTEGERText(4)INTEGERText(4)INTEGERText(6)Text(6)Text(6)Text(6)Text(6)INTEGERINTEGERText(10)INTEGER

ltfk2gt

ltfk1gtltfk3gt

MATERIAS

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave de asig prerequisitoclave de asig prerequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

TIPO_HORARIO

Tipo_horario

DescripcionLunes

MartesMiercoles

Jueves

ViernesSabado

COUNTER

Text(20)SMALLINT

SMALLINTSMALLINT

SMALLINT

SMALLINTSMALLINT

ltpkgt

CROMOZOMAS

VersionSemestreChoquesVacias

INTEGERINTEGERINTEGERINTEGER

ltpkgt

Fig 413 Diagrama E-R del moacutedulo para asignar aulas (Algoritmo Geneacutetico)

Capiacutetulo 4 Anaacutelisis y Disentildeo

En esta Figura 414 se pueden observar las tablas involucradas en el proceso paragenerar los paquetes de materias por semestre y la asignacioacuten de horario a cada grupodel paquete utilizando la teacutecnica Programacioacuten Loacutegica de Restricciones noacutetese que noexiste una tabla de restricciones eacutestas se aplican por software a cada grupo generado

FK_MATERIAS_REFERENCE_SERVIC

FK_MATERIAS_REFERENCE_TIPO_H

FK_HORARIOS_REFERENCE_MATERI

MATERIA

Id_materiMateriNum de HrsNum de HrsClave deId_CarrerCreditoSemestrObservacioneTroncoalumnos porclave de asigclave de asigId_ramSuma_maOrdeTipo_horari

INTEGEText(40SMALLINSMALLINText(8Text(15SMALLINSMALLINText(60YesNSMALLINText(40Text(40INTEGESMALLINSMALLININTEGE

ltpkfk4

ltfk1

ltfk3

ltfk2

SERVICIOS_ESCOLARE

Id_materiINSCRITONOSIMULACIOPROXIMOGRUPOSIndice deperiodantildeGruposAlumnosId_ajustId_regl

INTEGESMALLINSMALLINSMALLINSMALLINDOUBLDOUBLText(7INTEGESMALLINSMALLININTEGESMALLIN

TIPO_HORARI

Tipo_horariDescripcioLuneMarteMiercoleJueveVierneSabad

COUNTEText(20SMALLINSMALLINSMALLINSMALLINSMALLINSMALLIN

ltpk

HORARIO

GrupId_aulHora_iniciHora_luneHora_marteHora_miercoleHora_jueveHora_vierneHora_sabadObservacionePeriodAniid_materiId_catedratic

Text(2INTEGEINTEGEText(6Text(6Text(6Text(6Text(6Text(6Text(30Text(20INTEGEINTEGESMALLIN

ltfk3

ltfk2ltfk1

Fig414 Diagrama E-R del moacutedulo para asignar horario (PLR)

Capiacutetulo 4 Anaacutelisis y Disentildeo

FK_HECHOS_M_REFERENCE_MATERIAS

FK_HECHOS_M_REFERENCE_CATEDRAT

HECHOS_MAT_PROF

Id_catedraticoId_materiaPromedio

SMALLINTSMALLINTSMALLINT

ltpkfk1gtltpkfk2gt

FK_PERFIL_C_REFERENCE_CATEDRAT

FK_PERFIL_C_REFERENCE_PERFILES

FK_PERFILES_REFERENCE_TIPO_PER

FK_PROF_PAR_REFERENCE_CATEDRAT

FK_PROF_PAR_REFERENCE_MATERIAS

PERFIL_CATEDRATICO

Id_catedraticoId_perfilPrioridad_perfil_cate

SMALLINTINTEGERSMALLINT

ltfk1gtltfk2gt

CATEDRATICOS

Id_catedraticoApellido_paternoApellido_maternoNombre_catedraticoTitulo_catedraticoSuma_cate

SMALLINTText(20)Text(20)Text(20)Text(30)SMALLINT

ltpkgt

PERFILES

Id_perfilId_tipoDescripcion_perfil

COUNTERINTEGERText(60)

ltpkgtltfkgt

TIPO_PERFIL

Id_tipoTipo_perfil

COUNTERText(30)

ltpkgt

PROF_PARA_MAT

Id_materiaId_catedraticoPorcentaje_cate

INTEGERSMALLINTSMALLINT

ltpkfk2gtltpkfk1gt

MATERIAS

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave de asig prerequisitoclave de asig prerequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

Fig 415 Diagrama E-R del moacutedulo designa mejor catedraacutetico (Sistema Experto)

Capiacutetulo 4 Anaacutelisis y Disentildeo

En las figuras de la paacutegina anterior y eacutesta (Fig 415 y 416) se muestran las tablasutilizadas por los Sistemas Expertos para sugerir que materias puede impartir unprofesor y tambieacuten sugiere que profesores pueden impartir una asignatura

FK_PERFILES_REFERENCE_TIPO_PER

FK_PERFIL_M_REFERENCE_MATERIAS

FK_PERFIL_M_REFERENCE_PERFILES

FK_MAT_PARA_REFERENCE_MATERIAS

FK_MAT_PARA_REFERENCE_CATEDRAT

FK_HECHOS_M_REFERENCE_MATERIAS

FK_HECHOS_M_REFERENCE_CATEDRAT

PERFILES

Id_perfilId_tipoDescripcion_perfil

COUNTERINTEGERText(60)

ltpkgtltfkgt

TIPO_PERFIL

Id_tipoTipo_perfil

COUNTERText(30)

ltpkgt

PERFIL_MATERIA

Id_materiaId_perfilPrioridad_perfil_mat

INTEGERINTEGERINTEGER

ltfk2gtltfk1gt

MATERIAS

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave de asig prerequisitoclave de asig prerequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

MAT_PARA_PROF

Id_catedraticoId_materiaPorcentaje_mat

SMALLINTINTEGERSMALLINT

ltpkfk1gtltpkfk2gt

CATEDRATICOS

Id_catedraticoApellido_paternoApellido_maternoNombre_catedraticoTitulo_catedraticoSuma_cate

SMALLINTText(20)Text(20)Text(20)Text(30)SMALLINT

ltpkgt

HECHOS_MAT_PROF

Id_catedraticoId_materiaPromedio

SMALLINTSMALLINTSMALLINT

ltpkfk1gtltpkfk2gt

Fig 416 Diagrama E-R del moacutedulo selecciona mejor materia (sistema experto)

Capiacutetulo 4 Anaacutelisis y Disentildeo

455 Diccionario de la Base de Datos

Nombre HORARIOS_CON_CONOCIMIENTOComentario Base de datos del sistema ldquoGeneracioacuten de horarios mediante Sistemas

Basados en ConocimientordquoDBMS Microsoft Access 97

Lista de Tablas

Nombre Tipo deObjeto

AJUSTES TableAULAS TableCARRERAS TableCATEDRATICOS TableCRITERIOS TableCROMOSOMAS TableHECHOS TableHECHOS_MAT_PROF TableHECHOS_PROF_MAT TableHECHOS_REGLAS TableHISTORIAL_CRITERIOS TableHISTORIAL_MATERIA TableHORARIO_AULA TableHORARIOS TableMAT_PARA_PROF TableMATERIAS TablePERFIL_CATEDRATICO TablePERFIL_MATERIA TablePERFILES TablePOBLACION TablePROF_PARA_MAT TableRAMA_MATERIA TableREGLAS TableSERVICIOS_ESCOLARES TableTIPO_HORARIO TableTIPO_PERFIL Table

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla AJUSTESFuncioacuten Almacena los datos de los tipos de ajuste que se aplican por el Sistema Experto al

dato estadiacutestico que define cuantos grupos se deben abrir de cada materia

Lista de columnas de la tabla AJUSTESNombre Tipo de

DatoLong Llave

Primaria ForaneaComentario

Tipo Text(25) 25 Nombre del tipo de ajusteDescripcioacuten Memo Explicacioacuten del ajuste a realizar al nuacutemero

de grupos calculados segun estadisticosId_ajuste COUNTER 4 X Identificador del ajuste

Tabla AULASFuncioacuten Almacena los datos de las aulas que existen en cada edificio del instituto

Lista de columnas de la tabla AULASNombre Tipo de

DatoLong Llave

Primaria ForaneaComentario

Id_aula COUNTER 4 X Identificador del aulaCapacidad_aula SMALLINT 4 Nuacutemero maacuteximo de alumnos en el

aulaNombre_aula Text(50) 50 Nombre del aula (edificio+numero)Disponible YesNo 1 Disponibilidad del aula

Tabla CARRERASFuncioacuten Almacena los datos de las carreras que se imparten en el ITZ

Lista de columnas de la tabla CARRERASNombre Tipo de

DatoLong Llave

Primaria ForaneaComentario

Id_Carrera Text(15) 15 X Clave de la carreraNombre_carrera Text(50) 50 Nombre de la carrera

Tabla CATEDRATICOSFuncioacuten Almacena los datos de los CATEDRAacuteTICOS que imparten clases en las diferentes carreras del

Instituto Se utilizan los datos en los Sistemas Expertos que definen cual es el mejor catedraacuteticopara impartir una materia

Capiacutetulo 4 Anaacutelisis y Disentildeo

Lista de columnas de la tabla CATEDRATICOSNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_catedratico SMALLINT 4 X Nuacutemero de tarjeta del catedraacuteticoApellido_paterno Text(20) 20 Apellido paterno del catedraacuteticoApellido_materno Text(20) 20 Apellido materno del catedraacuteticoNombre_catedratico Text(20) 20 Nombre del catedraacuteticoTitulo_catedratico Text(30) 30 Grado de estudios y tiacutetulo del

catedraacuteticoSuma_cate SMALLINT 4 Suma total de las pesos de los perfiles

pertenecientes al catedraacutetico

Tabla CRITERIOSFuncioacuten Tabla de los criterios utilizados por el experto para crear las reglas que definen el tipo de

ajuste inferido por el Sistema Experto para definicioacuten de grupos por abrir

Lista de columnas de la tabla CRITERIOSNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_criterio COUNTER 4 X Identificador del criterio aplicado auna materia para crear grupos

Descripcion Text(60) 60 Descripcioacuten del criterio

Tabla CROMOSOMASFuncioacuten Almacena los datos de la evaluacioacuten de cada versioacuten de horarios generada ya sea por la

poblacioacuten inicial o por los operadores geneacuteticos se genera un cromosoma por cadasemestre en cada versioacuten

Lista de columnas de la tabla CROMOSOMASNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Version INTEGER 4 X Nuacutemero de individuo o versioacuten dehorarios

Semestre INTEGER 4 Semestre al que pertenece el datoChoques INTEGER 4 Nuacutemero de choques de versioacuten y

semestreVacias INTEGER 4 Nuacutemero de aulas vaciacuteas del individuo

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla HECHOS_MAT_PROFFuncioacuten Esta tabla almacena el resultado de la inferencia del Sistema Experto materias para

profesor indica para cada catedraacutetico las materias y el porcentaje de certeza con quepuede impartirlas

Lista de columnas de la tabla HECHOS_MAT_PROFNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_catedratico SMALLINT 4 X Identificador del catedraacuteticoId_materia SMALLINT 4 X Identificador de la asignaturaPromedio SMALLINT 4 Porcentaje de certeza con que un

profesor puede impartir una materia(resultado de la inferencia)

Tabla HECHOS_PROF_MATFuncioacuten Almacena los datos de la inferencia del Sistema Experto que calcula para una materia

determinada cuales son los mejores maestros para impartirla

Lista de columnas de la tabla HECHOS_PROF_MATNombre Tipo de

DatoLongitud

LlavePrimaria Foraacutenea

Comentario

Id_catedratico SMALLINT 4 X Identificador del catedraacuteticoId_materia SMALLINT 4 X Identificador de la asignaturaPromedio SMALLINT 4 Porcentaje de certeza con que una

materia puede ser impartida por unprofesor (resultado de la inferencia)

Tabla HECHOS_REGLASFuncioacuten Almacena los porcentajes de certeza con que se dispara una regla del Sistema Experto

que define los grupos por abrir

Lista de columnas de la tabla HECHOS_REGLASNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_criterio SMALLINT 4 X Identificador del criterioId_regla SMALLINT 4 X Identificador de la reglaPromedio INTEGER 4 Porcentaje de certeza con que una

regla dispara un criterio

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla HISTORIAL_CRITERIOS

Funcioacuten Almacena las reglas formadas por los criterios utilizados por el Sistema Experto paradefinir los grupos por abrir

Lista de columnas de la tabla HISTORIAL_CRITERIOSNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_criterio INTEGER 4 X Identificador del criterio pertenecientea la regla

Id_regla INTEGER 4 X Identificador de la reglaPeso de la regla SMALLINT 4 Peso del criterio en la regla

Tabla HISTORIAL_MATERIAFuncioacuten Tabla que almacena la definicioacuten de cada materia con base en los criterios utilizados por

las reglas para definir por materia el nuacutemero de grupos por abrir

Lista de columnas de la tabla HISTORIAL_MATERIANombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materia para suasignacioacuten de criterios

Id_criterio INTEGER 4 X Identificador del criterio que se aplicaa la materia para describirla

Prioridad SMALLINT 4 Peso del criterio en la materia

Tabla HORARIOS

Funcioacuten Almacena los datos del condensado final de horarios aquiacute se almacena el producto finaldel sistema para su posterior publicacioacuten y distribucioacuten entre la comunidad tecnoloacutegica

Lista de columnas de la tabla HORARIOSNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materiaGrupo Text(2) 2 Identificador del grupo A B CId_catedratico SMALLINT 4 X Catedraacutetico asignado al grupoId_aula INTEGER 4 X Aula asignada al grupoHora_inicio INTEGER 4 Hora de inicio del grupoHora_lunes Text(6) 6 Horas que se imparte el grupo el diacutea

lunes

Capiacutetulo 4 Anaacutelisis y Disentildeo

Hora_martes Text(6) 6Hora_miercoles Text(6) 6Hora_jueves Text(6) 6Hora_viernes Text(6) 6Hora_sabado Text(6) 6Observaciones Text(30) 30 Observaciones al grupoPeriodo Text(20) 20 Periodo Ene-jun o Ago-dicAnio INTEGER 4 Antildeo en que se utiliza el horario

Tabla HORARIO_AULAFuncioacuten Tabla auxiliar utilizada como almacenamiento temporal durante el proceso de evaluacioacuten

en el Algoritmo Geneacutetico guarda los datos de ocupacioacuten choques y no utilizacioacuten decada aula por hora diacutea y versioacuten

Lista de columnas de la tabla HORARIO_AULANombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Version INTEGER 4 X Nuacutemero de individuo o versioacutenAula Text(6) 6 Nombre del aulaLunes SMALLINT 4 Nuacutemero de horas que se utiliza el aula

el diacutea lunesMartes SMALLINT 4Miercoles SMALLINT 4Jueves SMALLINT 4Viernes SMALLINT 4Sabado SMALLINT 4Hora SMALLINT 4 Hora de utilizacioacuten del aulaId_aula INTEGER 4 X Identificador del aula en la versioacuten

Tabla MATERIASFuncioacuten Esta es una de las principales tablas del proyecto se utiliza en todos los moacutedulos del

sistema contiene informacioacuten base para caacutelculos diversos ademaacutes contiene tambieacuten lasllaves de diferentes tablas que describen de manera de manera especial a las materias

Lista de columnas de la tabla MATERIASNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia COUNTER 4 X Identificacioacuten de la materia llaveprincipal

Materia Text(40) 40 Nombre de la materiaNum de Hrs prac SMALLINT 4 Nuacutemero de horas praacutecticasNum de Hrs teo SMALLINT 4 Nuacutemero de horas teoacutericasClave de Asig Text(8) 8 Clave oficial de la materiaId_Carrera Text(15) 15 X Carrera a la que pertenece la materiaCreditos SMALLINT 4 Creacuteditos de la materia

Capiacutetulo 4 Anaacutelisis y Disentildeo

Semestre SMALLINT 4 Semestre en que se imparte la materiaObservaciones Text(60) 60Tronco comun YesNo 1 Definicioacuten de especialidad o tronco

comuacutenalumnos porgrupo

SMALLINT 4 Capacidad sugerida de los grupos deesta materia

clave de asigprerequisito

Text(40) 40 Clave de asignatura del prerrequisito

clave de asigprerequisito1

Text(40) 40 Clave de asignatura del prerrequisito

Id_rama INTEGER 4 X Identificador de la rama a la quepertenece la materia

Suma_mat SMALLINT 4 Suma total de los perfilespertenecientes a la materia

Orden SMALLINT 4 Es el nuacutemero de materia en un paqueteTipo_horario INTEGER 4 X El tipo de horario asignado a materia

Tabla MAT_PARA_PROFFuncioacuten La tabla almacena para cada catedraacutetico las asignaturas que puede impartir y el grado

de certeza con que puede hacerlo se almacena en esta tabla el resultado de la inferenciadel Sistema Experto

Lista de columnas de la tabla MAT_PARA_PROFNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_catedratico SMALLINT 4 X Nuacutemero de tarjeta del profesorId_materia INTEGER 4 X Identificador de la materiaPorcentaje_mat SMALLINT 4 Porcentaje de certeza con que un

profesor puede impartir una materia

Tabla PERFILESFuncioacuten Tabla que contiene una relacioacuten de todas las caracteriacutesticas de las materias

caracteriacutesticas necesarias para poder impartirlas es al mismo tiempo la tabla quecontiene la relacioacuten general de los conocimientos que poseen los profesores

Lista de columnas de la tabla PERFILESNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_perfil COUNTER 4 X Identificador del perfil paraasignaciones de materias acatedraacuteticos

Id_tipo INTEGER 4 X Identificador del tipo del perfilDescripcion_perfil Text(60) 60 Descripcioacuten de una caracteriacutestica del

perfil de una materia o un catedraacutetico

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla PERFIL_CATEDRATICOFuncioacuten Tabla que contiene el perfil de todos los catedraacuteticos (pueden llamarse las reglas) del

Sistema Experto que recomienda profesores para las materias el perfil de un catedraacuteticoesta definido por los conceptos que domina de las materias

Lista de columnas de la tabla PERFIL_CATEDRATICONombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_catedratico SMALLINT 4 X Identificador del catedraacutetico paradefinicioacuten de su perfil acadeacutemico

Id_perfil INTEGER 4 X Identificador del perfil que define aun catedraacutetico

Prioridad_perfil_cate SMALLINT 4 Porcentaje en que contribuye elperfil especificado en la definicioacutendel catedraacutetico

Tabla PERFIL_MATERIAFuncioacuten Esta tabla almacena las reglas que definen el perfil de una materia contiene las

caracteriacutesticas y temas que forman el temario de la materia

Lista de columnas de la tabla PERFIL_MATERIANombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materia en laregla de la materia

Id_perfil INTEGER 4 X Identificador del perfilperteneciente a una materia

Prioridad_perfil_mat INTEGER 4 Porcentaje en que contribuye esteperfil particular a definir unamateria

Tabla PROF_PARA_MATFuncioacuten Esta tabla almacena la inferencia del Sistema Experto para determinar cuales son los

mejores profesores para impartir una materia contiene para cada asignatura una lista delos profesores y el porcentaje de certeza con que pueden desempentildearse si la imparten

Capiacutetulo 4 Anaacutelisis y Disentildeo

Lista de columnas de la tabla PROF_PARA_MATNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de materiaId_catedratico SMALLINT 4 X Identificador de catedraacuteticoPorcentaje_cate SMALLINT 4 de certeza con que el catedraacutetico X

puede impartir la materia Y

Tabla POBLACIONFuncioacuten La tabla es la maacutes importante para el moacutedulo de Algoritmo Geneacutetico porque almacena los

datos de cada individuo hipoacutetesis o versioacuten que son generados ya sea por la poblacioacuteninicial aleatoria o por los diversos operadores geneacuteticos contiene copias (versiones) delcondensado de horarios con aulas aleatorias

Lista de columnas de la tabla POBLACIONNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materiaGrupo Text(4) 4 Grupo de la materiaId_catedratico INTEGER 4 X Identificador del catedraticoAula Text(4) 4 X Nombre del aula (edificio + numero)Hora_inicio INTEGER 4 Hora de inicio del grupoHora_lunes Text(6) 6 Hora inicio del lunesHora_martes Text(6) 6Hora_miercoles Text(6) 6Hora_jueves Text(6) 6Hora_viernes Text(6) 6Version INTEGER 4 X Nuacutemero de la versioacuten o hipoacutetesisPeriodo Text(10) 10 Periodo o semestre del grupoAnio INTEGER 4 Antildeo del grupo

Tabla RAMA_MATERIAFuncioacuten La tabla almacena la clasificacioacuten de las materias de acuerdo a las ciencias a la que

pertenecen

Lista de columnas de la tabla RAMA_MATERIANombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_rama COUNTER 4 X Identificador de la rama de unamateria (clasificacioacuten)

Nombre_rama Text(30) 30 Descripcioacuten de la rama de unamateria

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla REGLAS

Funcioacuten Esta tabla almacena las reglas utilizadas para generar los grupos que se deben ofertar elproacuteximo semestre indicando para cada regla el tipo de ajuste que debe aplicarse

Lista de Columnas de la Tabla REGLASNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Descripcion Text(70) 70 Descripcioacuten de la regla para ajustarel nuacutemero de grupos

Id_regla COUNTER 4 X Identificador de la reglaId_ajuste INTEGER 4 X Identificador del tipo de ajuste que

se aplica cuando esta regla sedispara para alguna materia

Tot_peso INTEGER 4 Total de los pesos de lascaracteriacutesticas de esta regla

Tabla SERVICIOS_ESCOLARESFuncioacuten En esta tabla se almacenan los datos estadiacutesticos de cada materia que provienen de

Servicios Escolares para el caacutelculo del nuacutemero de grupos que deben abrirse para elproacuteximo semestre contiene tambieacuten los paraacutemetros proporcionados por el SistemaExperto para realizar el ajuste al nuacutemero de grupos calculado inicialmente

Lista de columnas de la tabla SERVICIOS_ESCOLARESNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materiaINSCRITOS SMALLINT 4 Nuacutemero de alumnos inscritos

actualmente en el grupoNO INSCRITOS SMALLINT 4 Nuacutemero de alumnos que pueden

cursar la materia pero no seinscribieron

SIMULACION SMALLINT 4 Simulacioacuten de Servicios Escolaresde alumnos que podraacuten cursar lamateria

PROXIMOSEMESTRE

SMALLINT 4 Resultado del calculo de ServEscolares de alumnos que cursaraacutenla materia

GRUPOSREQUERIDOS

DOUBLE 4 Grupos requeridos para abrirproacuteximo semestre seguacuten caacutelculosiniciales

Indice dereprobacion

DOUBLE 4 Indice de reprobacioacuten de la materia

periodo Text(7) 7 Periodo de caacutelculo de horarios actual(semestre ene-jun o ago-dic)

Capiacutetulo 4 Anaacutelisis y Disentildeo

antildeo INTEGER 4 Antildeo de caacutelculo de horariosGrupos ajustado SMALLINT 4 Nuacutemero de grupos a solicitar para

abrir proacuteximo semestreAlumnos ajustado SMALLINT 4 Caacutelculo final del numero de alumnos

del proacuteximo semestre en estamateria

Id_ajuste INTEGER 4 X Tipo del ajuste aplicado por elSistema Experto al campogrupos_requeridos

Id_regla SMALLINT 4 X Regla que se disparo para realizar elajuste

Tabla TIPO_HORARIOFuncioacuten Esta tabla almacena los formatos de los distintos tipos de horario que existen y se ofrecen

para cada materia horarios de 2345 diacuteas a la semana y de 123 o 4 horas por diacutea

Lista de columnas de la tabla TIPO_HORARIONombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Tipo_horario COUNTER 4 X Identificador del tipo de horarioDescripcion Text(20) 20 Descripcioacuten del tipo de horarioLunes SMALLINT 4 Nuacutemero de horas del lunesMartes SMALLINT 4 Nuacutemero de horas del martesMiercoles SMALLINT 4 Nuacutemero de horas del mieacutercolesJueves SMALLINT 4 Nuacutemero de horas del juevesViernes SMALLINT 4 Nuacutemero de horas del viernesSabado SMALLINT 4 Nuacutemero de horas del saacutebado

Tabla TIPO_PERFILFuncioacuten Aquiacute se almacena una clasificacioacuten de los perfiles de acuerdo a la rama de conocimiento

a la que pertenecen

Lista de columnas de la tabla TIPO_PERFILNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_tipo COUNTER 4 X Identificador del tipo de perfilTipo_perfil Text(30) 30 Descripcioacuten del tipo de perfil de los

catedraacuteticos o las materias

Capiacutetulo 4 Anaacutelisis y Disentildeo

456 Lista de funciones o programas

Nombre Programa Descripcioacuten del programa

Ajustes Datos generales de los tipos de ajustes que se aplican al nuacutemero degrupos por abrir al dato de Servicios Escolares

Aulas Captura los datos de las aulas disponibles para claseCaptura_horarios Este programa realiza los cambios posteriores a la generacioacutenCarreras Captura los datos de las carreras del tecnoloacutegicoCatedraticos Datos generales de los catedraacuteticosClonacion Obtiene una copia (clon) del mejor individuo de una generacioacutenCons_ajuste Muestra yo imprime los datos generales de los ajustesCons_aulas Emite una pantalla de consulta general de aulasCons_captura_horarios Muestra una pantalla de consulta de los horarios generadosCons_carrera Despliega yo imprime las carrerasCons_catedratico Muestraimprime los datos generales de los catedraacuteticosCons_criterio Formulario que muestra yo despliega los criterios generalesCons_critXmat Muestra yo imprime los criterios de una materiaCons_critXregla Despliegaimprime los criterios que forman una reglaCons_gpos_abrir Explicacioacuten de la inferencia realizada (reglas disparadas)Cons_hist_crit Muestra las reglas de produccioacuten de los criteriosCons_materia Pantalla que despliega yo imprime datos de las materiasCons_materia_gral Pantalla de consulta general de los datos de materiasCons_perf_cate Consultaimprime los datos del perfil acadeacutemico de los

catedraacuteticosCons_perf_mate Consultaimprime los datos del perfil acadeacutemico de las materiasCons_perfil Muestraimprime datos de los perfilesCons_perfiles Consulta a la lista de perfiles o caracteriacutesticas Cons_perfilxmat Consulta a las reglas de produccioacuten del perfil de una materiaCons_rama Consulta a la lista de ramas (clasificacioacuten de las materias)Cons_reglas Consulta a la base de reglas para ajustar nuacutemero de gruposCons_serv_esc Consulta a las tablas que tienen informacioacuten de Servicios

EscolaresCons_serv_escol Pantalla que muestra yo imprime los datos estadiacutesticos de Serv

EscCons_tipo_perfil Consulta a los tipos de perfil (clasificacioacuten de perfiles)Crit_X_mat Formulario que captura los criterios pertenecientes a una materiaCrit_X_regla Captura los criterios que forman una regla de produccioacutenCriterios Pantalla que captura el conocimiento de criterios para el SECriteriosxmat Pantalla de captura para los criterios por materiaCruzamiento Programa que realiza la combinacioacuten (cruza) de individuos de la

poblacioacuten en el Algoritmo Geneacutetico

Capiacutetulo 4 Anaacutelisis y Disentildeo

Evaluacion Programa que realiza la creacioacuten del cromosoma de evaluacioacuten alevaluar las versiones de horarios de una generacioacuten

Explica_ajustes Moacutedulo de explicacioacuten del porque se aplicoacute determinado ajuste auna materia

Explica_mat_p_prof Explicacioacuten del porque una materia puede ser impartida por unprofesor con cierto grado de certidumbre

Explica_prof_p_mat Explicacion del porque un profesor puede impartir una materiacon cierto grado de certidumbre

Genera_horarios Sistema que utiliza Programacioacuten Loacutegica de Restricciones paragenerar los paquetes de horarios de un semestre

Genera_paquete Muestra el paquete generado por el procesoGrupo_nuevo Programa que va generando los paquetesGrupos_por_abrir Inferencia realizada para definir el ajuste aplicado a los grupos

definidos por Servicios EscolaresHistorial_criterios Captura los criterios necesarios para hacer una reglaHistorial_materia Captara los criterios por materiaMat_para_prof Inferencia realizada para determinar que profesores pueden

impartir una materiaMaterias Actualizacioacuten al archivo datos generales de las materiasMenu_algoritmos_geneticos Menuacute del moacutedulo para asignar aula a los gruposMenu_generacion_grupos Menuacute del Sistema Experto para definir cuantos grupos abrirMenu_asigna_horario Menuacute del moacutedulo asignacioacuten de horarioMenu_principal Menuacute principal del sistemaMenu_sel_catedra Menuacute del Sistema Experto para seleccioacuten de catedraacuteticos a

materiaMutacion Programa que hace la modificacioacuten de informacioacuten de aulas de

alguna versioacuten (versioacuten)Perfil_catedratico Captura el perfil acadeacutemico de los catedraacuteticosPerfil_materia Captura el perfil acadeacutemico de las materiasPerfiles Datos generales del perfil acadeacutemico de materias y catedraacuteticosPoblacion_inicial Programa que genera versiones de horarios y que de manera

aleatoria le va asignando aula a los gruposPortada_principal Es la ventana de entrada al sistemaProf_para_mat Inferencia realizada para determinar que materias pueden ser

impartidas por un profesorRama Programa que capturas las posibles ramas de los materiasReglas Datos generales de las reglas de produccioacuten para definir el No de

grupos por abrirSeleccioacuten Proceso que selecciona las mejores versiones de horarios (mejores

individuos) y elimina las menos aptasServ_escolares Pantalla de captura de los datos estadiacutesticos de Servicios EscolaresTipo_perfil Programa que captura la clasificacioacuten de los perfiles de materias y

profesores

Capiacutetulo 4 Anaacutelisis y Disentildeo

457 Diagrama de Arquitectura (Menuacutes)

Menuacute general

Menuacute Grupos porabrir

MenuacuteGeneracioacuten de

horarios

MenuacuteAsignacioacuten de

aulas

Datos de materias

Estadiacutesticos Serv Esc

Criterios

Criterios por materia

Reglas

Criterios por regla

Ajustes

Carreras

Nuacutemero de grupos

MenuacuteSeleccioacuten decatedraacuteticos

Genera paquete

Genera horarios

Datos generalesgrupos

Datos de aulas

Genera poblacioacuteninicial

Evaluacioacuten

Seleccioacuten

Cruzamiento

Clonacioacuten

Mutacioacuten

Horarios finales

Perfiles

Perfil de las materias

Perfil de catedraacuteticos

Catedraacuteticos

Perfil de loscatedraacuteticos

Asignacioacuten materia aprofesor

Asignacioacuten profesor amateria

Capiacutetulo 4 Anaacutelisis y Disentildeo

Capiacutetulo 5 Implementacioacuten del sistema

CAPIacuteTULO 5

IMPLEMENTACIOacuteN

51 Pantallas del sistema

La Figura 51 muestra la portada inicial del proyecto Contiene los logotipos de las tresinstituciones participantes y el nombre del proyecto

Fig 51 Portada inicial del proyecto

La Figura 52 es la pantalla que proporciona la informacioacuten de los autores del proyecto

Es el botoacutende entrada alsistema

Botoacuten deinformacioacuten delos autores

Capiacutetulo 5 Implementacioacuten del sistema

Fig 52 Acerca del sistema

La Figura 53 muestra el menuacute principal del proyecto contiene y 4 moacutedulos La primeraopcioacuten incluye los moacutedulos administrativo y generacioacuten de grupos la segunda opcioacutenincluye seleccioacuten de maestro y seleccioacuten de materia

Fig 53 Menuacute principal del proyecto

Moacutedulos delproyecto

Cuadro queproporcionalainformacioacutende la opcioacutensentildealada porel cursor

Capiacutetulo 5 Implementacioacuten del sistema

En la Figura 54 se tiene la pantalla del menuacute que agrupa los programas del moacuteduloadministrativo y Sistema Experto para determinar el nuacutemero de grupos por abrir seguacutenlos caacutelculos realizados con los datos de Servicios Escolares y el ajuste a ese dato

Fig 54 Menuacute grupos por abrir

Este programa del moacutedulo administrativo (Figura 55) sirve para capturar la informacioacutengeneral de las asignaturas que componen una carrera

Fig 55 Materias

Programas delos moacutedulos

Descripcioacutende laactividad delprogramaseleccionado

Nombre de laasignatura

Nuacutemero dehoraspraacutecticas yteoacutericas

Alumnos por grupopara calcularcantidad de grupos

Dato para formarpaquetes porsemestre

Icono quehabilita lacaptura denuevosdatos

Icono queregresa alMenuacute anterior

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 56 es un ejemplo de la consulta de datos en pantalla

Fig 56 Consulta Materias

La Figura 57 es la pantalla donde se capturan los datos estadiacutesticos provenientes deServicios Escolares contiene la informacioacuten necesaria para realizar el caacutelculo originaldel nuacutemero de grupos de cada asignatura que se debe abrir para ofertarse a los alumnosel siguiente semestre la foacutermula mostrada proporciona tal dato

Botoacuten queregresa elcontrol alprogramaque loinvocoacute

Alumnosesperados parael proacuteximo

Fccg

Datosestadiacutesticos

Fig 57 Pantalla Servicios Es

semestre

oacutermula paraaacutelculoantidad-rupos

Caacutelculosgeneral y pormateria

Grupos (datoestadiacutestico)

colares

Capiacutetulo 5 Implementacioacuten del sistema

En la Figura 58 se muestra la pantalla de consulta de los datos estadiacutesticosproporcionados por Servicios Escolares

Fig 58 Pantalla consulta Servicios Escolares

Esta pantalla captura las caracteriacutesticas por materia que dan origen al conocimientonecesario para definir el tipo de ajuste que se aplica al dato del nuacutemero de gruposproporcionado por los caacutelculos estadiacutesticos de la pantalla anterior

Criterios de unamateria

Fig 59 Pantalla criterios por materia

Grado deimportancia de esacaracteriacutestica para la

Capiacutetulo 5 Implementacioacuten del sistema

En la Figura 510 se muestra un ejemplo de la consulta a la base de datos del sistema enla parte de criterios por materia

Fig 510 Pantalla consulta criterios por materia

Esta pantalla (fig 511) proporciona al sistema la capacidad de capturar modificarborrar e imprimir las carreras del Instituto Tecnoloacutegico de Zacatepec

Fig 511 Pantalla carreras

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 512 proporciona al sistema la capacidad para capturar los criterios(conocimientos) del experto para definir a cada materia

Fig 512 Pantalla criterios

La Figura 513 muestra un ejemplo de consulta al archivo de los criterios capturados enel sistema

Fig 513 Pantalla consulta criterios

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 514 muestra la pantalla de captura de las reglas que componen el SistemaExperto para determinar el tipo de ajuste que se aplicaraacute al dato estadiacutestico del nuacutemerode grupos que se van a abrir el proacuteximo semestre cada regla tiene asignado un tipo deajuste

Fig 514 Pantalla reglas

La Figura 515 muestra un ejemplo de la consulta al archivo de las reglas que utiliza elSistema Experto para determinar nuacutemero de grupos por ofertar el proacuteximo semestre

Fig 515 Pantalla consulta reglas

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 516 muestra la pantalla de captura al archivo de ajustes noacutetese que ladescripcioacuten explica en extenso la accioacuten que se realiza al aplicar este ajuste provenientede una regla disparada por los criterios pertenecientes a la definicioacuten de una materia

Fig 516 Pantalla ajustes

La Figura 517 muestra la pantalla de la consulta a los ajustes que contiene el sistema

Fig 517 Pantalla consulta ajustes

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 518 muestra la pantalla que captura los criterios para cada regla Una reglaestaacute formada por el mismo tipo de criterios que definen a las materias

Criteriosde una

Fig 518 Pantalla criterios por regla

La Figura 519 muestra el ejemplo de una consulta de los criterios que definen a unaregla

Fig 519 Pantalla consulta criterios por regla

Reglas de produccioacuten Criterios por regla

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 520 es la pantalla maacutes importante de moacutedulo de generacioacuten de grupos porquees donde se realiza la inferencia para calcular el tipo de ajuste que se va a aplicar a cadamateria con base en las reglas que se disparan y que hacen match los criterios de unaregla y los criterios de una materia

Fig 520 Pantalla caacutelculo de ajustes

Esta pantalla (Figura 521) ofrece una explicacioacuten mostrando los criterios que definenuna materia y su correspondiente regla disparada mostrando los criterios de la regla quehacen match con los criterios de la materia

Fig 521 Pantalla explicacioacuten de la inferencia

Asignaturaa la que sele aplicaraacuteel ajuste

Regla quese disparaseguacutencriterios

Tipo deajuste quese aplica

Dato seguacutenestadiacutestico

Datos seguacutenajuste delSistemaExperto

Inferenciageneral

Inferenciaindividual

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 522 muestra el formulario que forma los paquetes de materias seguacuten laretiacutecula de una carrera muestra el nuacutemero de grupos por cada materia que se van aformar y hace los paquetes asignando los grupos AA AB AC AD

Fig 522 Pantalla inicial del moacutedulo generacioacuten de horarios

La Figura 523 es el formulario del moacutedulo Programacioacuten Loacutegica de Regenera los horarios por paquete satisfaciendo las restricciones para forlibre de choques continuo (sin horas muertas) cumpliendo las horas por m

Fig 523 Pantalla principal del moacutedulo generacioacuten de horari

Semestre al que sele formaraacuten lospaquetes

Paquetes generadosHora de iniciode clases decada grupo

Materias delsemestre

Nuacutemero de gruposal que se lesgeneraraacute horario

MateriaPaquete

Nuacutemero dehoras por diacutea

Botonesque invocanal moacutedulogeneradorde horarios

stricciones quemar un horarioateria etc

Hora de iniciode la materia

os

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 524 muestra el moacutedulo para asignar aula a los horarios que ya tienen materiagrupo y hora

Fig 524 Pantalla principal del menuacute Algoritmos Geneacuteticos

Esta pantalla (Figura 525) se utiliza para hacer altas bajas consulta y modificaciones alos grupos que se les va a dar aula

Fig 525 Pantalla de administracioacuten de grupos

Periodode loshorarios

Hora iniciodel grupo

Hora por diacutea

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 526 muestra una consulta de la pantalla administracioacuten de grupos

Fig 526 Pantalla de consulta de administracioacuten de grupos

La Figura 527 muestra la pantalla para actualizar las aulas disponibles por las personasque generan los horarios estas aulas estaacuten disponibles para que el Algoritmo Geneacuteticolas utilice para asignarles grupos durante el proceso

Fig 527 Pantalla del control de aulas

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 528 muestra la consulta de las aulas que utiliza el moacutedulo generacioacuten deaulas

Fig 528 Pantalla de consultas del control de aulas

La Figura 529 muestra la pantalla que genera la poblacioacuten inicial a partir de los datosgenerales proveniente de los moacutedulos anteriores

Fig 529 Pantalla de genera poblacioacuten inicial

Nuacutemero dehipoacutetesisversiones oindividuos

Aula aleatoriagenerada

Este botoacuteninicia lageneracioacutende las nversionesde horarios

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 530 muestra la pantalla que evaluacutea las versiones originadas y genera paracada una de ellas un cromosoma cuyos genes contienen la informacioacuten obtenida

Fig 530 Pantalla de evaluacioacuten de versiones

La Figura 531 muestra el formulario del proceso de seleccioacuten de las mejores versionesde horarios toma aquellas que tienen menor numero de choques y mayor espacio deocupacioacuten de aulas

Fig 531 Pantalla del proceso de seleccioacuten

Cantidad deversiones quesobreviviraacuten

Cromosomas delos mejoresindividuos

Botoacuten queinicia elproceso deseleccioacuten

Botoacuten queinicia elproceso deeliminacioacuten

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 532 muestra la pantalla del proceso de clonacioacuten donde se selecciona la mejorversioacuten y se obtiene un clon ideacutentico con un nuevo nuacutemero de versioacuten

Fig 532 Pantalla del proceso de clonacioacuten

La Figura 533 muestra la pantalla del proceso de mutacioacuten utilizado para hacer elcambio ldquomutarrdquo los datos de una versioacuten para romper alguacuten ciclado de la tendencia haciael resultado o simplemente para acelerar el proceso de optimizacioacuten

Cromosomasde versionesmaacutes aptas

Nuacutemero demejor versioacuten

Poblacioacutenversiones

Cromosomamuestra lasmejoresversiones

Aulas quepueden mutarse

Botoacuten queinicia elproceso demutacioacuten

Nuacutemero deversioacuten

Fig 533 Pantalla de mutacioacuten

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 534 muestra la pantalla donde se realiza el cruzamiento utilizando plantillaspredeterminadas dirigiendo la cruza de versiones por paquetes de materias agrupadas porsemestre y cada plantilla genera una nueva versioacuten con la combinacioacuten de fragmentosde varias versiones

Fig 534 Pantalla del proceso de cruzamiento

La Figura 535 permite la seleccioacuten y enviacuteo de la mejor versioacuten de horarios y adaptarloal moacutedulo administrativo para su distribucioacuten y publicacioacuten

Fig 535 Horarios finales

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 536 muestra el menuacute de los moacutedulos que sugiere maestros para impartir unaasignatura y sugerencia de asignatura para alguacuten maestro

Fig 536 Pantalla menuacute seleccioacuten de catedraacuteticos

La Figura 537 muestra la pantalla para la captura de caracteriacutesticas de losconocimientos requeridos para dar una materia que son las mismas caracteriacutesticas quedefinen los conocimientos de un profesor para impartir las materias

Fig 537 Pantalla de perfiles

Clasificacioacutende los perfiles

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 538 muestra una consulta de los perfiles agrupados por tipo

Fig 538 Pantalla de consulta perfiles

La Figura 539 muestra la pantalla en la que se definen los conocimientos requeridospara poder impartir una asignatura de acuerdo al perfil y contenido temaacutetico

Fig 539 Pantalla perfiles de las materias

La Figura 540 muestra un ejemplo de la consulta al perfil de una materia

Importancia de lacaracteriacutestica en la materia

Capiacutetulo 5 Implementacioacuten del sistema

Fig 540 Pantalla consulta perfiles de las materias

La Figura 541 es utilizada para capturar los datos de los catedraacuteticos que imparten lasasignaturas de una carrera

Fig 541 Pantalla captura datos de catedraacuteticos

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 542 es una muestra de la consulta al archivo de los catedraacuteticos

Fig 542 Pantalla consulta datos de catedraacuteticos

La Figura 543 muestra la pantalla en que se captura el perfil de los catedraacuteticos elperfil son los conocimientos que tiene el profesor que lo capacitan para impartir algunaasignatura

Fig 543 Pantalla captura perfil de catedraacuteticos

Conocimientosdel profesor

Barra deseleccioacuten deperfiles

Grado dedominio deltema

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 544 muestra una consulta tiacutepica al archivo de perfiles de los catedraacuteticos

Fig 544 Pantalla consulta perfil de catedraacuteticos

La Figura 545 muestra la pantalla de inferencia final que sugiere quienes son loscatedraacuteticos maacutes capacitados para impartir una materia haciendo la inferencia mediantela buacutesqueda de matchs entre el perfil de la asignatura y el perfil del catedraacutetico

Fig 545 Pantalla muestra inferencia catedraacuteticos para materia

Candidatos aimpartir lamateria

Botoacuten del proceso deinferencia generalPorcentaje de certeza con

que puede impartirla

Botoacuten delprocesodeinferenciaparticular

Botoacuten queinvoca almoacutedulo deexplicacioacuten

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 546 muestra la pantalla de explicacioacuten donde se indican los perfiles de lamateria y el perfil del profesor

Fig 546 Pantalla explicacioacuten porque un maestro puede dar una materia

La Figura 547 muestra el resultado de la inferencia del proceso que sugiere las materiasque puede impartir un profesor con base en el perfil de la materia y el perfil del profesor

Fig 547 Pantalla materias que puede impartir un profesor

Posibles materia aimpartir Porcentaje de certeza con

que puede impartirlaBotoacuten del proceso deinferencia general

Botoacuten delprocesodeinferenciaparticular

Botoacuten queinvoca almoacutedulo deexplicacioacuten

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 548 muestra la pantalla de explicacioacuten donde se indican el perfil de la materiay el perfil del profesor

Fig 548 Pantalla de explicacioacuten porque un profesor puede dar una materia

Capiacutetulo 5 Implementacioacuten del sistema

Capiacutetulo 6 Pruebas y Resultados

CAPIacuteTULO 6

PRUEBAS Y RESULTADOS

61 Pruebas del sistema

Se pueden detectar dentro del desarrollo de sistemas las actividades para realizarpruebas las producidas durante la etapa de requerimientos de disentildeo preliminar y las dedisentildeo detallado Clasificadas de otra manera eacutestas pueden ser funcionales deintegracioacuten y de implementacioacuten

La finalidad de realizar Pruebas funcionales es detectar errores que pudieran habersedado durante las fases de anaacutelisis y de especificacioacuten Por otro lado ellas pueden ayudara probar si el disentildeo es correcto ya que esta fase en sus dos niveles preliminar ydetallado estaacute basada en el anaacutelisis y especificacioacuten de requerimientos del sistema Estaactividad es guiada por los objetivos y requerimientos plasmados Se busca en estaprueba la posibilidad de que se haya incurrido en errores de conceptualizacioacuten yo deespecificacioacuten Las pruebas se organizan tomando como guiacutea las diferentes opciones delsistema final

Las Pruebas de integracioacuten se realizan cuando se procede a interconectar los diferentessubsistemas que constituyen el futuro sistema Como es conocido un sistema puede serdesarrollado por diferentes personas Por esta razoacuten es de suma importancia probar lainterconexioacuten de los diferentes subsistemas y asiacute verificar que ha sido realizada demanera correcta

Las Pruebas de implementacioacuten o codificacioacuten son las que se realizan directamentesobre los programas que se estaacuten desarrollando durante la fase de implementacioacuten Estosmoacutedulos o programas a su vez constituyen subsistemas Por esta razoacuten la integracioacuten delos diferentes moacutedulos que forman un subsistema deben ser probados Estas pruebasdeben estar basadas en la especificacioacuten de disentildeo preliminar y detallado [Gerez 1985]

Los siguientes rubros describen las pruebas maacutes importantes que se consideraron paravalidar el sistema las pruebas funcionales Las pruebas de implementacioacuten se realizarondurante el desarrollo de la codificacioacuten de los diferentes moacutedulos

Capiacutetulo 6 Pruebas y Resultados

62 PRUEBAS DEL SISTEMA

621 PRUEBA 1 AacuteREAS DE MENUacuteS

Objetivo Guiar al usuario en el desarrollo del proceso Esta prueba verifica que elsistema tenga como opciones principales y submenuacutes los sentildealados en la definicioacuten derequerimientos

Criterios de aceptacioacuten Cada prueba verifica que el sistema produzca los resultadossentildealados en la definicioacuten de requerimientos

Procedimiento de la prueba A continuacioacuten se despliegan las pantallascorrespondientes a los menuacutes principales y submenuacutes Las opciones principales delproyecto son dos Menu Principal y Datos de los autores

Resultado de la prueba Los resultados fueron satisfactorios En todas las opcionesactivadas el sistema presentoacute los submenuacutes definidos en la etapa de requerimientos

La Figura 61 muestra la portada inicial del proyecto Contiene los logotipos de las tresinstituciones participantes y el nombre del proyecto

Fig 61 Portada inicial del proyecto

Es el botoacutende entrada alsistema

Botoacuten deinformacioacutende los autores

Capiacutetulo 6 Pruebas y Resultados

La Figura 62 muestra el menuacute principal del proyecto y contiene 4 moacutedulos La primeraopcioacuten incluye los moacutedulos administrativo y generacioacuten de grupos la segunda opcioacutenincluye seleccioacuten de maestro y seleccioacuten de materia

Fig 62 Menuacute principal del proyecto

En la Figura 63 se tiene la pantalla del menuacute que agrupa los programas del moacuteduloadministrativo y Sistema Experto para determinar el nuacutemero de grupos por abrir seguacutenlos caacutelculos realizados con los datos de Servicios Escolares y el ajuste a ese dato

Fig 63 Menuacute grupos por abrir

Moacutedulos delproyecto

Cuadro queproporcionalainformacioacutende la opcioacutensentildealada porel cursor

Programas delos moacutedulos

Descripcioacutende laactividad delprogramaseleccionado

Capiacutetulo 6 Pruebas y Resultados

La Figura 64 muestra el menuacute de los moacutedulos que sugiere maestros para impartir unaasignatura y sugerencia de asignatura para alguacuten maestro

Fig 64 Pantalla menuacute seleccioacuten de catedraacuteticos

La Figura 65 muestra el moacutedulo para asignar aula a los horarios que ya tienen materiagrupo y hora

Fig 65 Pantalla principal del menuacute Algoritmos Geneacuteticos

Capiacutetulo 6 Pruebas y Resultados

622 PRUEBA 2 VALIDACIOacuteN DE ENTRADAS

Objetivo Evitar peacuterdidas de tiempo con entradas erroacuteneas de datos y resultados sinvalidez

Criterios de aceptacioacuten Esta prueba deberaacute mostrar de manera exacta la informacioacutenal seleccionar la opcioacuten deseada

Procedimiento de la prueba Se verifica que todas las cajas de texto tengan el dato quese pide y una vez dados todos los datos se guardan para que estos datos posteriormentesean procesados por el sistema y almacenen los datos correctos

Resultado de la prueba Los resultados fueron satisfactorios En todas las opcionesactivadas el sistema presentoacute los resultados correctos a cada opcioacuten Ademaacutes losdesplegados de mensajes de error se presentaron de manera correcta en todas laspruebas

La Figura 66 muestra la captura de datos de una asignatura y enviacutea el correspondientemensaje de error si una caja de texto se encuentra vaciacutea

Fig 66 Pantalla de captura de datos de las Materias

Muestra elmensaje deerror si esque hacefalta alguacuten

Capiacutetulo 6 Pruebas y Resultados

La Figura 67 muestra una pantalla de captura de datos asignando criterios a una materiay valida la no duplicidad de criterios en esa materia se enviacutea el correspondiente mensajede error si una entrada ya fue capturada

Fig 67 Pantalla de captura de datos de Criterios por Materia

La Figura 68 muestra una pantalla de captura de datos de las carreras al encontrar unregistro ya capturado muestra el mensaje de error si una carrera ya fue capturada

Fig 68 Pantalla de captura de datos de Carreras

Muestra elmensajede error sies que yaexiste elregistro

Muestra elmensaje deerror si esque yaexiste elregistro

Capiacutetulo 6 Pruebas y Resultados

623 PRUEBA 3 DESPLEGADO DE RESULTADOS

6231 MOacuteDULO DE GENERACIOacuteN DE GRUPOS POR ABRIR

Objetivo Proporcionar los datos que el moacutedulo pide para que posteriormente elsistema genere el nuacutemero de grupos sugerido por abrir para cada materia

Criterios de aceptacioacuten Esta prueba muestra la lista de grupos que se deben abrirdespueacutes de aplicar los criterios del Sistema Experto

Procedimiento de la prueba Una vez que se proporcionan los datos que el SistemaExperto requiere el sistema generaraacute una lista de los grupos que se deben abrir elproacuteximo semestre

Resultado de la prueba Los resultados fueron satisfactorios En todos los casospresentados el sistema generoacute la lista en forma satisfactoria y con la informacioacutencorrecta

La Figura 69 es la pantalla maacutes importante de moacutedulo de generacioacuten de grupos porquees donde se realiza la inferencia para calcular el tipo de ajuste que se va a aplicar a cadamateria con base en las reglas que se disparan y que hacen match los criterios de unaregla y los criterios de una materia

Asignaturaa la que sele aplicaraacuteel ajuste

Regla quese disparaseguacutencriterios

Tipo deajuste quese aplica

Inferenciageneral

Datoseguacuten

Fig 69 Pantalla caacutelculo de ajustes

Datos seguacutenajuste delSistemaExperto

Inferenciaindividual

Capiacutetulo 6 Pruebas y Resultados

6232 MOacuteDULO DE GENERACIOacuteN DE HORARIOS

Objetivo Proporcionar los datos que el moacutedulo pide para que posteriormente elsistema genere el horario por semestre de las materias de una carrera

Criterios de aceptacioacuten Esta prueba debe mostrar los horarios para las materias sinerrores sin choques de hora en un paquete

Procedimiento de la prueba Recibe como entrada cuantos grupos abrir de cadamateria en cada semestre y genera primero los paquetes posteriormente a cada paquetede materias le asigna la hora por materia

Resultado de la prueba Los resultados fueron satisfactorios En todos los casospresentados el sistema generoacute los horarios correspondientes

La Figura 610 muestra el formulario que forma los paquetes de materias seguacuten laretiacutecula de una carrera muestra el nuacutemero de grupos por cada materia que se van aformar y hace los paquetes asignando los grupos AA AB AC AD

Fig 610 Pantalla inicial del moacutedulo generacioacuten de horarios

Semestre al que sele formaraacuten lospaquetes

Paquetes generadosHora de iniciode clases decada grupo

Materias delsemestre

Nuacutemero de grupospor al que se lesgeneraraacute horario

Botonesque invocanal moacutedulogeneradorde horarios

Capiacutetulo 6 Pruebas y Resultados

La Figura 611 es el formulario del moacutedulo Programacioacuten Loacutegica de Restricciones quegenera los horarios por paquete satisfaciendo las restricciones para formar un horariolibre de choques continuo (sin horas muertas) cumpliendo las horas por materia etc

Fig 611 Pantalla princip

6233 MOacuteDULO ASIGNACIOacuteN D

Objetivo Utilizar los datos generadoaulas a los paquetes de materias

Criterios de aceptacioacuten Esta pruebaasignacioacuten de aula sin choques

Procedimiento de la prueba Se genAlgoritmos Geneacuteticos durante variachoques en el aula

Resultado de la prueba Los resupresentados el sistema generoacute las aula

MateriaPaquete

Nuacutemero dehoras por diacutea

Hora de iniciode la materia

al del moacutedulo generacioacuten de horarios

E AULA

s en el moacutedulo anterior para hacer la asignacioacuten de

debe mostrar los horarios de las materias con una

eran las aulas utilizando los procedimientos de loss generaciones hasta lograr una generacioacuten sin

ltados fueron satisfactorios En todos los casoss correspondientes

Capiacutetulo 6 Pruebas y Resultados

La Figura 612 muestra la pantalla para actualizar las aulas disponibles por las personasque generan los horarios estas aulas estaacuten disponibles para que el Algoritmo Geneacuteticolas utilice para asignarles grupos durante el proceso

Fig 612 Pantalla del control de aulas

La Figura 613 muestra la consulta de las aulas que utiliza el moacutedulo generacioacuten deaulas

Fig 613 Pantalla de consultas del control de aulas

Capiacutetulo 6 Pruebas y Resultados

La Figura 614 muestra la pantalla que genera la poblacioacuten inicial a partir de los datosgenerales proveniente de los moacutedulos anteriores

Fig 614 Pantalla de genera poblacioacuten inicial

La Figura 615 muestra la pantalla que evaluacutea las versiones originadas y genera paracada una de ellas un cromosoma cuyos genes contienen la informacioacuten obtenida

Fig 615 Pantalla de evaluacioacuten de versiones

Nuacutemero dehipoacutetesisversiones oindividuos

Aula aleatoriagenerada

Este botoacuteninicia lageneracioacutende las nversionesde horarios

Capiacutetulo 6 Pruebas y Resultados

La Figura 616 muestra el formulario del proceso de seleccioacuten de las mejores versionesde horarios toma aquellas que tienen menor numero de choques y mayor espacio deocupacioacuten de aulas

Fig 616 Pantalla del proceso de seleccioacuten

La Figura 617 muestra la pantalla del proceso de clonacioacuten donde se selecciona la mejorversioacuten y se obtiene un clon ideacutentico con un nuevo nuacutemero de versioacuten

Fig 617 Pantalla del proceso de clonacioacuten

Cantidad deversiones quesobreviviraacuten

Cromosomas delos mejoresindividuos

Botoacuten queinicia elproceso deseleccioacuten

Botoacuten queinicia elproceso deeliminacioacuten

Cromosomasde versionesmaacutes aptas

Nuacutemero demejor versioacuten

Poblacioacutenversiones

Capiacutetulo 6 Pruebas y Resultados

La Figura 618 muestra la pantalla del proceso de mutacioacuten utilizado para hacer elcambio ldquomutarrdquo los datos de una versioacuten para romper alguacuten ciclado de la tendencia haciael resultado o simplemente para acelerar el proceso de optimizacioacuten

Fig 618 Pantalla de mutacioacuten

La Figura 619 muestra la pantalla donde se realiza el cruzamiento utilizando plantillaspredeterminadas dirigiendo la cruza de versiones por paquetes de materias agrupadas porsemestre y cada plantilla genera una nueva versioacuten con la combinacioacuten de fragmentosde varias versiones

Fig 619 Pantalla del proceso de cruzamiento

Cromosomamuestra lasmejoresversiones

Nuacutemero deversioacuten amutar

Aulas quepueden mutarse

Botoacuten queinicia elproceso demutacioacuten

Capiacutetulo 6 Pruebas y Resultados

La Figura 620 permite la seleccioacuten y enviacuteo de la mejor versioacuten de horarios y adaptarloal moacutedulo administrativo para su distribucioacuten y publicacioacuten

Fig 620 Horarios finales

6234 MOacuteDULO SELECCIOacuteN DE CATEDRATICOS

Objetivo Capturar los datos de los profesores y su perfil profesiograacutefico ademaacutescapturar los conocimientos necesarios para impartir una asignatura para poder sugerircual es el mejor catedraacutetico que puede impartir una asignatura

Criterios de aceptacioacuten Esta prueba debe mostrar la sugerencia de los mejorescatedraacuteticos para una materia y las mejores materias para un catedraacutetico

Procedimiento de la prueba Se daraacuten los datos iniciales de los maestros y el sistemadeberaacute generar una lista a partir de la inferencia del Sistema Experto respectivo yviceversa

Resultado de la prueba Los resultados fueron satisfactorios En todos los casospresentados el sistema infirioacute las materias y los catedraacuteticos correspondientes

Capiacutetulo 6 Pruebas y Resultados

La Figura 621 muestra la pantalla en que se captura el perfil de los catedraacuteticos elperfil son los conocimientos que tiene el profesor que lo capacitan para impartir algunaasignatura

Fig 621 Pantalla captura perfil de catedraacuteticos

La Figura 622 muestra la pantalla de inferencia final que sugiere quienes son loscatedraacuteticos maacutes capacitados para impartir una materia haciendo la inferencia mediantela buacutesqueda de matchs entre el perfil de la asignatura y el perfil del catedraacutetico

Fig 622 Pantalla muestra inferencia catedraacuteticos para materia

Conocimientosdel profesor

Barra deseleccioacuten deperfiles

Grado dedominio deltema

Botoacuten delprocesodeinferenciaparticular

Botoacuten queinvoca almoacutedulo deexplicacioacuten

Candidatos aimpartir lamateria Botoacuten del proceso de

inferencia generalPorcentaje de certeza conque puede impartirla

Capiacutetulo 6 Pruebas y Resultados

La Figura 623 muestra la pantalla de explicacioacuten donde se indican los perfiles de lamateria y el perfil del profesor

Fig 623 Pantalla explicacioacuten porque un maestro puede dar una materia

La Figura 624 muestra el resultado de la inferencia del proceso que sugiere las materiasque puede impartir un profesor con base en el perfil de la materia y el perfil del profesor

Fig 624 Pantalla materias que puede impartir un profesor

Posibles materia aimpartir Porcentaje de certeza con

que puede impartirlaBotoacuten del proceso deinferencia general

Botoacuten delprocesodeinferenciaparticular

Botoacuten queinvoca almoacutedulo deexplicacioacuten

Capiacutetulo 6 Pruebas y Resultados

La Figura 625 muestra la pantalla de explicacioacuten donde se indican el perfil de la materiay el perfil del profesor

Fig 625 Pantalla de explicacioacuten porque un profesor puede dar una materia

Capiacutetulo 6 Pruebas y Resultados

Capiacutetulo 7 Conclusiones y Trabajos Futuros

CAPIacuteTULO 7

CONCLUSIONES Y TRABAJOS FUTUROS

71 CONCLUSIONES

Los meacutetodos de programacioacuten lineal proporcionan una solucioacuten parcial al problema dela generacioacuten de horarios utilizan una ldquorecetardquo predefinida para lograr la optimizacioacutende la asignacioacuten de recursos como lo hace el meacutetodo Huacutengaro La Inteligencia Artificialsoluciona el problema utilizando la heuriacutestica el conocimiento y la experiencia de unexperto humano para solucionar el problema se decidioacute utilizar esta metodologiacutea paraexplorar una solucioacuten aproximada al problema

En el ITZ la generacioacuten de horarios se haciacutea de forma manual no se utilizaba ninguacutenmeacutetodo automatizado Al aplicar algunas teacutecnicas de la Inteligencia Artificial se halogrado generar de manera automatizada los horarios de las materias que se ofertaraacuten elproacuteximo semestre

La aplicacioacuten de varias ramas de la Inteligencia Artificial para la resolucioacuten delproblema de la generacioacuten de horarios viene a demostrar que si es posible generar uncondensado de horarios para el Instituto Tecnoloacutegico de Zacatepec que es una escuelade nivel superior y que estos horarios satisfacen adecuadamente las restricciones fuertesmedias y suaves Para ello fue necesaria la combinacioacuten de varias disciplinas de lacomputacioacuten para generar cada una de las partes que componen un horario y tambieacutenrecomendar los catedraacuteticos mas apropiados para impartir dichos grupos nuevamentequeda demostrado que la Inteligencia Artificial sirve para resolver problemas que lasteacutecnicas convencionales de computacioacuten consideran problema NP-completo

La utilizacioacuten de las teacutecnicas de los Sistemas Expertos para ajustar el nuacutemero de grupospor abrir el proacuteximo semestre permite aplicar el conocimiento y experiencia de lapersona encargada de elaborar los horarios y asiacute disminuir el nuacutemero de gruposcancelados el conocimiento e intuicioacuten del experto humano realizan un ajuste fino alnuacutemero de grupos y como puede notarse el sistema lo hace de manera similar

Para el moacutedulo de generacioacuten de los grupos y los horarios la utilizacioacuten de la teacutecnicallamada Programacioacuten Loacutegica de Restricciones permitioacute la satisfaccioacuten de lasrestricciones que hacen que los horarios sean considerados factibles para su aplicacioacuten a

Capiacutetulo 7 Conclusiones y Trabajos Futuros

los alumnos el proacuteximo semestre ya que los paquetes de materias por semestre tienenhorarios corridos y sin choques en horas nuacutemero de materias completo y buenadistribucioacuten de horas pares e impares

Se utilizoacute tambieacuten la teacutecnica de optimizacioacuten llamada Algoritmos Geneacuteticos pararealizar la asignacioacuten de aulas a cada grupo generado logrando con ello minimizarautomaacuteticamente el nuacutemero de choques de materias en aulas En las pruebas realizadasse logroacute que en la sexta generacioacuten de individuos ya soacutelo hubiera hasta un maacuteximo de 24choques lo que indicaba que soacutelo 4 oacute 5 grupos compartiacutean aula a la misma hora esto erafaacutecilmente corregible realizando una inspeccioacuten visual a la versioacuten de horarios final yajustando los uacuteltimos errores

Por uacuteltimo nuevamente se aplicaron los Sistemas Expertos en el moacutedulo de sugerenciade materias que puede impartir un maestro y en el moacutedulo maestros que pueden impartiruna determinada materia vale la pena comentar que durante las pruebas realizadas loscatedraacuteticos del departamento de Sistemas y Computacioacuten capturaban su perfilprofesiograacutefico y al pedir al sistema la sugerencia de cuaacuteles materias podriacutean impartirlos Sistemas Expertos del proyecto inferiacutean exactamente las materias que loscatedraacuteticos estaacuten impartiendo en este semestre y las que habiacutean impartido en alguacutensemestre anterior demostrando que en efecto para profesores nuevos la recomendacioacutendel sistema seriacutea vaacutelida

72 TRABAJOS FUTUROS

Se sugiere que se ampliacutee el proyecto para que a cada grupo generado con aula y hora sele asigne de manera automaacutetica un catedraacutetico utilizando ya sea Algoritmos Geneacuteticos oProgramacioacuten Loacutegica de Restricciones

Otra posible mejora puede ser incluir la Loacutegica Difusa en los Sistemas Expertos de losmoacutedulos que sugieren las materias que puede impartir un catedraacutetico y los catedraacuteticosque pueden impartir una asignatura

Como ya se comproboacute la factibilidad de generar los horarios de manera automaacutetica sepropone tambieacuten la exploracioacuten de otras ramas y teacutecnicas de la computacioacuten (RedesNeuronales Buacutesqueda Tabuacute Grafos Coloreados etc) para comparar el rendimientotiempo esfuerzo y asiacute poder determinar cuales son mejores o peores teacutecnicas pararesolver el problema de la generacioacuten de horarios

Referencias Bibliograacuteficas

REFERENCIAS BIBLIOGRAacuteFICAS

[Abramson 1991] Abramson D ldquoConstructing School Timetables Using SimulatedAnnealing Secuencial and Parallel Algoritmsrdquo Management Science PWS PublishingBoston 1998

[Beasley 1993] Beasley D amp Bull DR amp Martin RR ldquoAn Overview of GeneticAlgorithms Part 1 Fundamentalsrdquo University Computing

[Bull 1993] Bull DR amp Beasley D amp Martin RR ldquoAn Overview of GeneticAlgorithms Part 2rdquo University Computing Magazine 1993

[Burke1994]Burke EK ldquoA Genetic Algorithm for University Timetablingrdquo AISBworkshop on evolutionary computing Leeds 1994

[Burke 1997] Burke Edmund K ldquoAutomated Scheduling Optimization and PlanningGroup (ASAP)rdquo PATATrsquo97 Proceedings of the 2nd Intenational Conference on thePractice And Theory of Automated Timetabling 1997

[Burke2000] Burke Edmund amp Eliman David amp Weare Rupert ldquoA GeneticAlgorithm Based University Timetabling Systemrdquo PATATrsquo2000 Proceedings of the 5ft

Intenational Conference on the Practice And Theory of Automated Timetabling 2000

[Burke2001] Burke EK amp Eliman DGamp Weare R ldquoAutomated Scheduling OfUniversity Examsrdquo Leeds 2001

[Burke2002] Burke Edmund amp Eliman David amp Weare Rupert ldquoExaminationTimetabling in British Universities ndash A Surveyrdquo Leeds 2002

[Carrasco 2004] Carrasco Marco amp Pato Margarida ldquoSolving Real ClassTeacherTimetabling Problems using Neural Networksrdquo Facultade de Ciencias University ofLisboa Portugal

[Chorafas 1990] Chorafas Dimitris N ldquoKnowledge Engineeringrdquo Van NostrandReinnhold New York USA

Referencias Bibliograacuteficas

[Corne 1993] Corne D ldquoSolving the module exam scheduling problem with geneticalgorithmsrdquo Proceedings of the 6th Intenational conference in Industrial andEngineering applications of Artificial Intelligence and Expert Systems1993

[Daellenbach 1987] Daellenbach Hans amp McNickle Donald ldquoIntroduccioacuten a teacutecnicasde Investigacioacuten de Operacionesrdquo CECSA Meacutexico 1987

[Davis 1991] Davis L ldquoHandbook of Genetic Algorithmsrdquo Van Nostrand ReinholdNew York NY

[Demist2000] Demist ldquoDepartamental Timetabling Proyect ProposalDeMIStinterface to Timetabling Package Proyectrdquo Demist University 2000

[Detcher 1990] Detcher R ldquoEnhancement Schemes for Constraint Processing BackJumping Learning and Cutset Decompositionrdquo Artificial Intelligence 41 (1990)

[Eliman 2000] Eliman David ldquoSpecialised Recombinative Operators for TimetablingProblemsrdquo Cambridge University Press New York 2000

[Elmohamed2000] Elmohamed Saleh ldquoThe timetabling problemrdquo PATATrsquo2000Proceedings of the 5th Intenational Conference on the Practice And Theory ofAutomated Timetabling 2000

[Elmohamed2001] Elmohamed Saleh ldquoConstraint based university coursetimetablingrdquo 4th World Congress on Timetabing Aplication of advanced informationTechnologies London 2001

[Fahrion y Dollanski 1992] Fahrion R amp G Dollanski ldquoConstruction of UniversityFaculty Timetables using Logic Programmingrdquo ACM Sigsoft Notes vol 9 no 3 May1992

[Frenzel 1986]Frenzel Louis E ldquoCrash Course in Artificial Intelligence and ExpertSystemsrdquo Howard W Sams amp Co McMillan Inc Indianapolis USA

[Gerez 1985] Gerez Victor amp Mier Mauricio ldquoDesarrollo y administracioacuten deprogramas de computadorardquo McGraw Hill Meacutexico 1985

[Gervaacutes 1999] Gervaacutes P amp San Miguel B ldquoSequential Building of ConstrainedTimetables Using Rule-Based Heuristics An Expert System for AutomatedTimetablingrdquo Congreso Internacional de Investigacioacuten en Ciencias Computacionales

Referencias Bibliograacuteficas

[Giarratamo 1998] Giarratamo Joseph y Gary Riley ldquoExpert Systems Principles andProgrammingrdquo PWS Kent Publishing Company Boston USA

[Gines 1986] Gines B amp Boose J ldquoKnowledge Acquisition for Knowledge-BasedSystemsrdquo Vol 1amp2 Academic Press London U K

[Goldberg 1989] Goldberg DE ldquoGenetic Algorithms in SearchOptimization andMachine LearningrdquoAddison-Wesley

[Kang y White 1994 ] Kang L amp White GM ldquoA Logic Approach to the Resolutionof Constrains in Timetablingrdquo European Journal of Operational Research vol 61 1994

[Kandel 1991] Kandel Abraham ldquoFuzzy Expert Systemsrdquo CRC Press Inc LondonUK 1991

[Kendall1999] Kendall y Kendall ldquoAnaacutelisis y disentildeo de sistemasrdquo 3ordf edicion PearsonEducacioacuten

[Koza 1992] Koza JR ldquoGenetic Programming On the Programming of Computers bymeans of Natural Selectionrdquo Cambridge MA MIT Press

[Martiacutenez 1999] Martiacutenez Alfaro Horacio ldquoSolucioacuten al problema de asignacioacuten desalones de clases horario y grupo mediante templado simuladordquo Memorias 6ordm CongresoInternacional de Mecatroacutenica e Inteligencia Artificial Meacutexico 1999

[Medina 2004] Medina Pasaflores Horacio ldquoFundamentos de Algoritmos GeneacuteticosrdquoTesis de licenciatura Zacatepec Mexico 2004

[Michalewicz 1992] Michalewicz Z ldquoGenetic algorithms + Data Structures =Evolution Programsrdquo Springer-Verlag New York NY

[Negoita1985] Negoita ConstantinV Expert Systems and Fuzzy Systems TheBenjamin Cummings Publishing Co Menlo Park CA USA

[Nielsoft 2000] Nielsoft informatica ldquoManual de usuario Mimosa for windowsrdquo

[Paechter 1994] Paechter B ldquoTwo solutions to the general timetabling problemusing evolutionary methodsrdquo IEEE WCCI 1994

[Pluss1999] Pluss JJ ldquoSistemas expertos un enfoque pragmaacuteticordquo UNR

Referencias Bibliograacuteficas

[Rich 1996] Rich E y Knight K ldquoInteligencia Artificialrdquo McGraw HillInteramericana Madrid Espantildea

[Russell 1996] Russell S y Norvig P ldquoInteligencia Artificial un enfoque modernordquoPrentice Hall Mexico 1996

[Sanchez1999] Sanchez y Beltran ldquoSistemas expertos una metodologiacutea deprogramacioacutenrdquo Macrobit

[Schedul2000] SchedulExpert ldquoCourse scheduling in post educational institutionsrdquo EdAddison Wesley 2000

[Trick 1999 ] Trick Michael ldquoNetwork resources for coloring a graphrdquo Oracle PressEd McGraw Hill 1999

[Turban 1995] Turban Efraim ldquoDecision Support and Expert Systems ManagementSupport Systemsrdquo Fourth Edition Orentice Hall NJ USA

[Waterman1986] Waterman Donald A ldquoA Guide to Expert Systemsrdquo Addison-Wesley Publishing Co USA

[Weare2000] Weare Rupert amp Burke Edmundo amp Eliman David ldquoA Questionnaireon Exam Timetabling in Universitiesrdquo Annual review of computer Science Volume 2Palo Alto 2000

[Wilke 2002] Wilke P amp Grobner M amp Oster N ldquoA hibrid Genetic Algorithm forSchool Timetablingrdquo Advances in Artificial Intelligence Springer Lecture Notes inComputer Science New York

[Yoshikawa 1994] Yoshikawa M amp Kaneko KldquoA Constraint-based Approach toHigh School Timetabling Problems A Case Studyrdquo AAAI-94 12ordm NationalConference on Artificial Intelligence

Referencias Bibliograacuteficas

Referencias electroacutenicas

httpwwwmonografiacuteascomtrabajos12inteartfinteartfshtmlObregoacuten Arturo Inteligencia artificial y Sistemas expertos IIMAS-UNAM (1992)

httpwwwlafacucomapuntesinformaticasist_conodefaulthtmCruz Ochoa Wilson Sistemas de conocimiento

httpwwwingenieroseninformaticaorgrecursostutorialessist_exphtmlZambrano Molina Darwin Sistemas expertos

httpredcientificacomdocdoc199008210001htmlSamper Marquez Juan Joseacute Introduccioacuten a los sistemas expertos Madrid 2000

httpmismonografiascomarSistemas20expertofuzzyhtmlArede Dario Sistema experto fuzzy

httpcruzrojaguayaorginteligenciainterhtmlAyuquina Martha amp Arellano Gregorio Inteligencia artificial Universidad de Guayaquil

httpdmiuibesabasolointart1-introduccionhtmlAbasolo Mariacutea Joseacute Dra Inteligencia Artificial

Page 9: BORIS ANTONIO ARANDA BENITEZ

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

517 Pantalla consulta ajustes 96518 Pantalla criterios por regla 97519 Pantalla consulta criterios por regla 97520 Pantalla caacutelculo de ajustes 98521 Pantalla explicacioacuten de la inferencia 98522 Pantalla inicial del moacutedulo generacioacuten de horarios 99523 Pantalla principal del moacutedulo generacioacuten de horarios 99524 Pantalla principal del menuacute Algoritmos Geneacuteticos 100525 Pantalla de administracioacuten de grupos 100526 Pantalla de consulta de administracioacuten de grupos 101527 Pantalla del control de aulas 101528 Pantalla de consultas del control de aulas 102529 Pantalla para generacioacuten de poblacioacuten inicial 102530 Pantalla de evaluacioacuten de versiones 103531 Pantalla del proceso de seleccioacuten 103532 Pantalla del proceso de clonacioacuten 104

533 Pantalla de mutacioacuten 104534 Pantalla del proceso de cruzamiento 105535 Horarios finales 105536 Pantalla menuacute seleccioacuten de catedraacuteticos 106537 Pantalla de perfiles 106538 Pantalla de consulta perfiles 107539 Pantalla perfiles de las materias 107540 Pantalla consulta perfiles de las materias 108541 Pantalla captura datos de catedraacuteticos 108542 Pantalla consulta datos de catedraacuteticos 109543 Pantalla captura perfil de catedraacuteticos 109544 Pantalla consulta perfil de catedraacuteticos 110545 Pantalla muestra inferencia catedraacuteticos para materia 110546 Pantalla explicacioacuten del porqueacute un maestro puede dar una materia 111547 Pantalla materias que puede impartir un profesor 111548 Pantalla de explicacioacuten del porqueacute un profesor puede dar una

materia112

61 Portada inicial del proyecto 11562 Menuacute principal del proyecto 11663 Menuacute grupos por abrir 11664 Pantalla menuacute seleccioacuten de catedraacuteticos 11765 Pantalla principal del menuacute Algoritmos Geneacuteticos 11766 Pantalla de captura de datos de las Materias 11867 Pantalla de captura de datos de Criterios por Materia 11968 Pantalla de captura de datos de Carreras 11969 Pantalla caacutelculo de ajustes 120

Generacioacuten de Horarios mediante Sistemas Basados en Conocimiento

610 Pantalla inicial del moacutedulo generacioacuten de horarios 121611 Pantalla principal del moacutedulo generacioacuten de horarios 122612 Pantalla del control de aulas 123613 Pantalla de consultas del control de aulas 123614 Pantalla de genera poblacioacuten inicial 124615 Pantalla de evaluacioacuten de versiones 124616 Pantalla del proceso de seleccioacuten 125617 Pantalla del proceso de clonacioacuten 125618 Pantalla de mutacioacuten 126619 Pantalla del proceso de cruzamiento 126620 Horarios finales 127621 Pantalla captura perfil de catedraacuteticos 128622 Pantalla muestra inferencia catedraacuteticos para materia 128623 Pantalla explicacioacuten porque un maestro puede dar una materia 129624 Pantalla materias que puede impartir un profesor 129625 Pantalla de explicacioacuten porque un profesor puede dar una materia 130

Capiacutetulo 1 Introduccioacuten

CAPIacuteTULO 1

INTRODUCCIOacuteN

11 Antecedentes

iquestQueacute es un horario

ldquoEl horario completo bien puede gobernar las vidas demiles de alumnos y cientos de profesores para los 200 diacuteasdel antildeo escolar semestre a semestre hora tras hora Comouna poderosa herramienta puede faacutecilmente crear o deshacersituaciones de ensentildeanza aprendizajerdquo [Johnson 1980]

En la educacioacuten superior la historia siempre es la misma la proporcioacuten de tiempodictada por el horario para los alumnos y profesores es generalmente muy baja Apesar de esto las dificultades en la creacioacuten de los horarios son grandes Existenvarios departamentos y carreras cada uno con sus propias ideas de coacutemo y cuaacutendo sedeben programar sus cursos El nuacutemero de estudiantes puede variar considerablementede antildeo en antildeo Similarmente las preferencias de los alumnos a favor o en contra delas materias pueden variar dramaacuteticamente de un semestre a otro Los estudiantespueden tomar cursos de un departamento o de varios de ellos aun maacutes puedenseleccionar materias de otras carreras La reciente desaparicioacuten de las restricciones decreacuteditos para cursar las asignaturas complica maacutes la situacioacuten porque ampliacutea el rangode materias que puede tomar un alumno Los horarios aparecen en varias formasmatutinos vespertinos mixtos y todo el diacutea Los horarios escolares indican cuando unmaestro y un alumno deben ir a cada clase Todas las escuelas tienen un horario decursos que dirige lo que cada estudiante y catedraacutetico debe hacer en determinadomomento Esta tesis versa especiacuteficamente sobre el problema de construir horariospara Institutos Tecnoloacutegicos en Meacutexico

La planeacioacuten de los horarios es un trabajo que se realiza semestralmente antes de iniciarel siguiente periodo escolar tomando en cuenta la demanda de grupos que se ofreceraacuteny asignando a estos grupos los alumnos el aula el catedraacutetico y el horariocorrespondiente mediante informacioacuten que se obtiene de varias maneras

El principal objetivo de este proyecto es dar una solucioacuten aproximada (aceptable) alproblema de la generacioacuten de horarios de una escuela de nivel superior que se resumeasiacute

Capiacutetulo 1 Introduccioacuten

ldquoDado un conjunto de departamentos y carreras asignaturas con prerrequisitos gruposcatedraacuteticos con especialidad y horario definidos aulas laboratorios y alumnos con suspreferencias de materias el problema es construir un condensado de horarios factibleque satisfaga todas las restricciones fuertes y minimice las restricciones medias ysuavesrdquo

Las restricciones fuertes son restricciones de espacio y tiempo tal como planear doscursos en un aula al mismo tiempo Las restricciones medias y suaves son laspreferencias de maestros y estudiantes que deberaacuten ser satisfechas si es posible[Elmohamed 1998]

El problema de la generacioacuten de horarios ha sido tratado por muchos investigadoresutilizando meacutetodos que van desde la investigacioacuten de operaciones hasta disciplinas de laInteligencia Artificial como son Algoritmos Geneacuteticos Recocido Simulado RedesNeuronales etc

12 Planteamiento del problema

La generacioacuten de horarios es una forma particular del problema de asignacioacuten derecursos En el caso maacutes general existe una serie de objetos (recursos) y una serie deprocesos que necesitan ser realizados por cada uno de esos objetos En un contextoeducacional cada estudiante debe asistir a un nuacutemero predeterminado de clases y elprofesor debe impartirlas durante la semana en un aula predeterminada el estudiante elprofesor y el aula pasan aquiacute a ser el objeto y las clases el proceso

La complejidad del problema de la generacioacuten de horarios

La generacioacuten de horarios es un problema de optimizacioacuten combinatorio multi-dimensional no Euclidiano con muacuteltiples restricciones y por lo tanto difiacutecil de resolver[Elmohamed 1998]

El problema de la generacioacuten de horarios esta agrupado dentro de los considerados decomplejidad NP-completos es decir que no pueden ser resueltos en tiempo polinomialusando un algoritmo determiniacutestico No se conoce un algoritmo determiniacutestico detiempo polinomial para resolver alguno de esos problemas y la mayoriacutea de la gente creeque dichos algoritmos no existen[Karp 1972]

La generacioacuten de horarios es la asignacioacuten de lapsos de tiempo a un conjunto de eventossujeto a las restricciones en esas asignaciones Seguacuten Elmohamed [Elmohamed 1998]el problema NP-completo de la elaboracioacuten de horarios es un problema para la

Capiacutetulo 1 Introduccioacuten

satisfaccioacuten de restricciones que puede ser definido de la siguiente maneraPara una escuela dada con

Np profesores con sus horarios y turnos Nq materias con su temario y objetivosNx aulas y laboratorios con su capacidad Ns estudiantes

es requerido programar Nt parejas de

alumno-materiahora-materiamaestro-materiaaula-materia

una vez definidas las parejas anteriores se deben programar elementos de la formamateria-maestro-hora -aula

En un liacutemite de Nt lapsos de tiempo para producir una programacioacuten factible En unaprogramacioacuten factible no se puede encontrar a un profesor grupo o estudiante en maacutesde un lugar al mismo tiempo y un aula no puede ser asignada con maacutes de una clase a lavez o maacutes estudiantes de su capacidad o un profesor programado fuera de su horarionormal o con maacutes horas frente a grupo de las reglamentarias ademaacutes de un conjuntoadicional de restricciones

Importancia del problema

La administracioacuten de los recursos comprende la apertura de los grupos para inscribir alos alumnos el proacuteximo semestre la asignacioacuten de carga acadeacutemica a los catedraacuteticos lautilizacioacuten de aulas y laboratorios de quiacutemica produccioacuten coacutemputo electromecaacutenicaaulas de dibujo y demaacutes instalaciones del Instituto Tecnoloacutegico de Zacatepec (ITZ)Cuando por errores imputables al creador de los horarios se hizo una mala planeacioacuten sederivan los siguientes problemasbull Alumnos que se inscriben con una carga de creacuteditos menor a la miacutenima por falta de

grupos suficientesbull Alumnos que deben estar en el ITZ desde las 700 hrs hasta las 2000 hrs varios

diacuteas a la semana por abrir grupos en horarios muy separadosbull Alumnos que pierden la secuencia de materias seriadas por falta de cupobull Alumnos que deben permanecer 1 oacute 2 semestres maacutes en el ITZ por no prever

suficientes grupos para semestres terminalesbull Catedraacuteticos que no imparten el miacutenimo reglamentario de horas frente a grupo por

no crearles grupos suficientesbull Catedraacuteticos a los que se les avisa 1 diacutea antes del inicio de clases que impartiraacuten una

Capiacutetulo 1 Introduccioacuten

asignatura nuevabull Asignaturas que son impartidas por profesores que no cumplen el perfil deseado en

esa asignaturabull Choque de grupos en las aulasbull Choque de grupos en laboratoriosbull Falta de laboratorio a algunos gruposbull Deficiente utilizacioacuten de las aulas

La creacioacuten de un sistema que evite de manera automaacutetica caer en errores como losmencionados NO ES TAREA TRIVIAL intentar resolver este problema involucra laelaboracioacuten de un ldquosistema inteligenterdquo capaz de tomar decisiones aprender inferirbasaacutendose en hechos generar nueva informacioacuten y a partir de ella nuevamente volver adecidir El sistema que se elabore debe tener la capacidad para deducir e inducir de unamanera combinada

Desventajas del sistema actual

La mayoriacutea de los problemas anteriores son ocasionados por alguno o varios de lossiguientes motivosbull Todo el proceso de caacutelculo y administracioacuten de los recursos es manualbull El proceso de elaboracioacuten coincide con el cierre de semestre actual y como las

personas responsables tambieacuten son catedraacuteticos deben combinar la generacioacuten dehorarios con las evaluaciones finales revisioacuten de proyectos y entrega decalificaciones de sus grupos a los alumnos

bull La elaboracioacuten de los horarios es un proceso que se lleva semanas de labor diariabull Requiere la atencioacuten total de los coordinadores durante todo el tiempo de

elaboracioacutenbull Al no tener la informacioacuten automatizada se tienen peacuterdidas de tiempo en la toma de

decisiones como por ejemplo en el preacutestamo de aulas no utilizadas o en la forma decompartir catedraacuteticos

bull Se tienen fuertes restricciones debido a los horarios de los catedraacuteticosbull Hay fuertes dificultades cuando se deben negociar cambios de horarios porque el

proceso implica mover asignaturas buscar aulas dejar paquetes de materias porsemestre etc

bull El estado de aacutenimo del coordinador influye en la elaboracioacuten de los horarios

13 Objetivo general

Generacioacuten de una solucioacuten aproximada del condensado de horarios para una escuela denivel superior que satisfaga las restricciones ocasionadas por los recursos involucradosmediante la elaboracioacuten de un sistema hiacutebrido (experto geneacutetico y loacutegico restrictivo)

Capiacutetulo 1 Introduccioacuten

14 Objetivos especiacuteficos

Se tiene el disentildeo e implementacioacuten de un sistema que

bull Proporciona una solucioacuten aproximada aceptable al problema de la generacioacuten dehorarios

bull Permite a los coordinadores delegar a la computadora la asignacioacuten de recursosbull Ahorra tiempo en la generacioacuten de los horariosbull Reduce el trabajo manualbull Agiliza la toma de decisionesbull Reduce el tiempo de elaboracioacuten de horariosbull Facilita la modificacioacuten de informacioacuten generadabull Aumenta la eficiencia en las negociaciones entre jefes y coordinadoresbull Lleva al Instituto Tecnoloacutegico de Zacatepec (ITZ) a la modernizacioacuten en este

proceso

15 Justificacioacuten del sistema

151 Justificacioacuten teoacuterica

La utilizacioacuten de la Inteligencia Artificial (IA) para la solucioacuten de problemas de la vidacotidiana ha sido una estrategia utilizada cuando los sistemas tradicionales decomputacioacuten no proveen mecanismos suficientes para garantizar una solucioacuten adecuadasu utilizacioacuten para la generacioacuten de horarios (creacioacuten de grupos asignacioacuten de horaasignacioacuten de aula determinacioacuten de catedraacutetico) presenta una alternativa ideal paracomprobarlo

152 Justificacioacuten metodoloacutegica

La utilizacioacuten de un grupo de Sistemas Expertos que realice la asignacioacuten de losrecursos para la generacioacuten de grupos y le proponga una materia determinada a unprofesor seguacuten el perfil acadeacutemico de ambos reuacutene las caracteriacutesticas necesarias paradar la solucioacuten elegante y efectiva al problema planteado anteriormente porque

bull Se requiere del conocimiento de un experto para plantear el funcionamiento delsistema

bull El conocimiento se alimentaraacute a una base de conocimientos que conste de variaspartes

bull Para la generacioacuten de grupos de una asignatura dada el sistema debe ldquorazonarrdquo paradeterminar cuantos de eacutestos se deben abrir para ofertarlos a los alumnos

Capiacutetulo 1 Introduccioacuten

bull En la asignacioacuten de nuevas materias a los catedraacuteticos el sistema debe ldquodeterminarrdquoquieacuten es el maacutes idoacuteneo para impartirla de acuerdo al perfil de ambos materia ymaestro

La Programacioacuten Loacutegica de Restricciones (PLR) es una de las teacutecnicas que maneja demanera natural informacioacuten sometida a ciertas restricciones y fue seleccionada paraseguir trabajando en la resolucioacuten del problema porque

bull Los horarios deben satisfacer ciertas restricciones como por ejemplo no se debengenerar mas grupos de los necesarios no puede haber dos materias con el mismogrupo no deben existir grupos del mismo paquete a la misma hora etc

bull Cada paquete de un semestre es un objeto que por siacute mismo posee ciertascualidades y restricciones por ejemplo no debe tener horas sin asignatura entre lahora inicial y final existen materias que se deben impartir de una hora diaria otrasdeben ser impartidas de 2 horas diarias etc

bull La solucioacuten presentada por la PLR inicia con datos aleatorios de un horario despueacutesse verifica si las restricciones se cumplen o no si se cumplen se guarda el dato si nose genera un nuevo dato aleatorio

Los Algoritmos Geneacuteticos utilizados aquiacute para asignar aula a los grupos cumplen con lametodologiacutea de la Computacioacuten Evolutiva porque

bull Se tienen datos iniciales de los grupos (materia-hora)bull Se genera una poblacioacuten inicial que son n versiones de un condensado de horarios

sin aulabull Esta poblacioacuten inicial es evaluada se seleccionan los condensados maacutes adecuados y

se eliminan las versiones menos adecuadasbull Se realizan cruzamientos mutaciones clonaciones y se crea la nueva generacioacuten de

horariosbull Se repite el proceso hasta llegar a una utilizacioacuten eficiente de las aulas

Por lo anterior se pueden observar las ventajas de utilizar un sistema inteligente sobreuno convencional para solucionar el problema planteado

Una vez definido el modelo para solucionar el problema de la asignacioacuten de horariospara las asignaturas aulas y catedraacuteticos de una institucioacuten de educacioacuten superior seraacutefaacutecil extrapolarlo para solucionar algunos problemas referentes a la planeacioacuten dehorarios de otro tipo de escuelas de nivel medio superior

153 Justificacioacuten praacutectica

La creacioacuten de un sistema que resuelva el problema de la elaboracioacuten de horarios ygenere automaacuteticamente la programacioacuten de grupos aulas y maestros sin violar las

Capiacutetulo 1 Introduccioacuten

restricciones fuertes minimizando las restricciones medias y suaves optimizando lautilizacioacuten de las aulas cumpliendo con las restricciones de los profesores asignandoprofesores adecuados para impartir las clases traeraacute como consecuencia condicionespara mejorar el proceso de ensentildeanza aprendizaje

16 Alcances y limitaciones

Alcances

El sistema generaraacute un espacio de soluciones finito que satisfaga las restriccionesfuertes medias y suaves optimizando el uso de los recursos disponibles se puede decirque el sistema optimizaraacute los recursos cuando los horarios generados tengan lascaracteriacutesticas mencionadas maacutes adelante

Esta tesis documenta la creacioacuten de un sistema basado en el conocimiento parasolucionar el problema de la generacioacuten de horarios en el Instituto Tecnoloacutegico deZacatepec que permite

bull Generar grupos suficientes para que todos los estudiantes se inscriban al menos conla carga miacutenima reglamentaria

bull Que los alumnos tengan horarios adecuados a sus necesidades y preferenciasbull Que todos los grupos tengan capacidad suficiente para todos los estudiantes que

deseen inscribirsebull Que los profesores impartan materias de acuerdo a su perfil profesionalbull Evitar los choques de grupos en aulas y laboratoriosbull Que todos los grupos tengan aula asignada desde el inicio del semestrebull La utilizacioacuten oacuteptima de las aulas y laboratoriosbull La correcta asignacioacuten de aulas y laboratorios a los cursosbull Realizar de manera automaacutetica la asignacioacuten de los recursosbull Determinar el nuacutemero de grupos que se deben abrirbull Llenar las aulas con grupos sin permitir choque de horariosbull Imprimir la lista de grupos ofertados para el semestre siguientebull Cuando exista el grupo de una materia sin maestro determinar cual es el mejor para

impartirla

Tener un Sistema terminado que contenga los siguientes moacutedulos

Sistema administrativo para control de horarios Sistema Experto para determinar la cantidad de grupos por abrir Sistema Experto para sugerir materias a un catedraacutetico Sistema Experto para seleccionar los mejores catedraacuteticos para impartir una

asignatura

Capiacutetulo 1 Introduccioacuten

Moacutedulo de Programacioacuten Loacutegica de Restricciones para generar los horarios a lospaquetes de materias por semestre

Moacutedulo de Algoritmo Geneacutetico para asignar aula a los grupos

Cada moacutedulo tendraacute

bull Interfaces de usuario amigablesbull Tiempos de ejecucioacuten raacutepidos (independientemente de la maacutequina objetivo)bull Reglas de inferencia para generar resultados (soacutelo los Sistemas Expertos)bull Buacutesquedas heuriacutesticas o aleatorias seguacuten el casobull Procesos para realizar induccioacuten y deduccioacuten (soacutelo los Sistemas Expertos)bull Manejo de incertidumbre (soacutelo los Sistemas Expertos)bull Un moacutedulo de explicaciones en lenguaje natural

Limitaciones

El sistema estaacute disentildeado para generar horarios de una escuela de nivel superior donde elcoordinador de cada carrera es el responsable de la generacioacuten de sus horarios controlarsus profesores impartir cierto nuacutemero de materias y utilizar cierta cantidad de aulas ylaboratorios

Trabaja exclusivamente en lenguaje espantildeol

Las reglas de la base de conocimiento tienen un formato predeterminado por unasintaxis definida para el sistema

El sistema estaacute elaborado para trabajar en microcomputadoras compatibles con IBM

No maneja los horarios individuales de los alumnos en el proceso de inscripcioacuten estaactividad deberaacute ser realizada por los sistemas del departamento de servicios escolares

Capiacutetulo 2 Marco teoacuterico

CAPIacuteTULO 2

MARCO TEOacuteRICO

21 El estado del arte

211 Antecedentes

El problema de la generacioacuten de horarios ha sido atacado de varias maneras a nivelmundial inclusive existe un grupo internacional que convoca al congreso llamadoPATATxx (Practice and Theory of Automated Timetabling) donde xx es el antildeo delcongreso en cuestioacuten

La ASAP (Automated scheduling optimization and planing group) es otro organismocuyo fin principal es conducir investigacioacuten en modelos heuriacutesticas y algoritmos para laproduccioacuten automaacutetica de soluciones de alta calidad a una gran variedad de problemasde planeacioacuten y optimizacioacuten del mundo real incluyendo elaboracioacuten de horarioslogiacutestica asignacioacuten de espacio y mantenimiento de inventarios

212 Algunos meacutetodos para resolver el Problema de laGeneracioacuten de Horarios

La generacioacuten de horarios acadeacutemicos ha sido acometida por muchos investigadoresbaacutesicamente dentro del aacuterea de la Investigacioacuten de Operaciones

2121 Investigacioacuten de Operaciones

El algoritmo para resolver problemas de asignacioacuten se denomina Huacutengaro ya que fuerondos matemaacuteticos Huacutengaros Koumlnig (1916) y Egervary (1931) los que aportaron lasteoriacuteas que sirven de base a este meacutetodo [Daellenbach 1987]

Este problema se presenta en diversos casos de toma de decisiones Los problemastiacutepicos de asignacioacuten implican asignar tareas a maacutequinas trabajadores a tareas yproyectos personal de ventas a territorios de ventas contratos a licitaciones horarios deaulas disponibles a horarios de maestros disponibles enfermos a camas disponibles delhospital cierto nuacutemero de empleados a cierta cantidad de puestos en una empresaaviones a destinos aeacutereos entre otros

Capiacutetulo 2 Marco teoacuterico

Una caracteriacutestica importante de los problemas de asignacioacuten es que se asigna untrabajador una tarea a una sola maacutequina proyectoEn particular se busca elconjunto de asignaciones que optimice el objetivo planteado tal como minimizar costosminimizar tiempo o maximizar utilidad

La formulacioacuten del problema general de asignacioacuten es

Sujeta a

Corresponde a un caso especial del problema del transporte en el cual las variables Xijsoacutelo pueden tomar el valor 0 oacute 1 tomar el valor 1 si el origen i se hace corresponder aldestino j y 0 en caso contrario

El Algoritmo Huacutengaro

Este algoritmo se usa para resolver problemas de minimizacioacuten ya que es maacutes eficazque el empleado para resolver el problema del transporte por el alto grado dedegeneracioacuten que pueden presentar los problemas de asignacioacuten Las fases para laaplicacioacuten del meacutetodo Huacutengaro son

Capiacutetulo 2 Marco teoacuterico

Paso 1 Encontrar primero el elemento maacutes pequentildeo en cada fila de la matriz de costosmm se debe construir una nueva matriz al restar de cada costo el costo miacutenimo de cadafila encontrar para esta nueva matriz el costo miacutenimo en cada columna A continuacioacutense debe construir una nueva matriz (denominada matriz de costos reducidos) al restar decada costo el costo miacutenimo de su columna

Paso 2 (En algunos pocos textos este paso se atribuye a Flood) Consiste en trazar elnuacutemero miacutenimo de liacuteneas (horizontales o verticales o ambas uacutenicamente de esasmaneras) que se requieren para cubrir todos los ceros en la matriz de costos reducidos sise necesitan m liacuteneas para cubrir todos los ceros se tiene una solucioacuten oacuteptima entre losceros cubiertos de la matriz Si se requieren menos de m liacuteneas para cubrir todos losceros se debe continuar con el paso 3 El nuacutemero de liacuteneas para cubrir los ceros es iguala la cantidad de asignaciones que hasta ese momento se pueden realizar

Paso 3 Encontrar el menor elemento diferente de cero (llamado k) en la matriz decostos reducidos que no estaacute cubierto por las liacuteneas dibujadas en el paso 2 acontinuacioacuten se debe restar k de cada elemento no cubierto de la matriz de costosreducidos y sumar k a cada elemento de la matriz de costos reducidos cubierto por dosliacuteneas (intersecciones) Por uacuteltimo se debe regresar al paso 2

Notas

1 Para resolver un problema de asignacioacuten en el cual la meta es maximizar la funcioacutenobjetivo se debe multiplicar la matriz de ganancias por menos uno (-1) y resolver elproblema como uno de minimizacioacuten

2 Si el nuacutemero de filas y de columnas en la matriz de costos son diferentes el problemade asignacioacuten estaacute desbalanceado El meacutetodo Huacutengaro puede proporcionar una solucioacutenincorrecta si el problema no estaacute balanceado debido a lo anterior se debe balancearprimero cualquier problema de asignacioacuten (antildeadiendo filas o columnas ficticias) antes deresolverlo mediante el meacutetodo Huacutengaro

3 En un problema grande puede resultar difiacutecil obtener el miacutenimo nuacutemero de filasnecesarias para cubrir todos los ceros en la matriz de costos actual Se puede demostrarque si se necesitan j liacuteneas para cubrir todos los ceros entonces se pueden asignarsolamente j trabajos a un costo cero en la matriz actual esto explica porqueacute terminacuando se necesitan m liacuteneas

Capiacutetulo 2 Marco teoacuterico

Tambieacuten han aparecido meacutetodos no convencionales que atacan el problema desdediferentes aacutengulos Los maacutes usuales son

Algoritmos Geneacuteticos Redes Neuronales Recocido Simulado Buacutesquedas Tabuacute Sistemas Expertos Programacioacuten Loacutegica de Restricciones Grafos Coloreados Operadores Recombinatorios Especializados

2122 Algoritmos Geneacuteticos

Los Algoritmos Geneacuteticos han sido utilizados satisfactoriamente para planear exaacutemenesy cursos en cierto nuacutemero de casos [Corne 1993] utiliza una buena aproximacioacutentradicional donde cada gene representa la hora en la cual se presentaraacute un examen ocurso Con operadores de cruzamiento y mutacioacuten como los mencionadosanteriormente agrega sustanciosos ahorros de tiempo al meacutetodo de Corne [Paechter1994] da una aproximacioacuten diferente donde el gene de cada examen no solo especificaldquoel cuandordquo sino que tambieacuten busca un nuevo horario del examen si despueacutes delcruzamiento el curso esta causando un conflicto Si el examen no puede ser programadoen alguna hora entonces no se agrega a la planeacioacuten con la finalidad de no tenerhorarios infactibles

[Burke1994] incorpora dominios de conocimiento especiacutefico para asegurar que ningunade las soluciones candidato es no factible En particular una representacioacuten directa seutilizada que incluye no soacutelo el cuaacutendo sino tambieacuten el doacutende un curso o examendeberaacuten ser tomados permitiendo al programador de horarios detener la ejecucioacuten delalgoritmo en cualquier punto y tener ya una serie de soluciones de buenos horariosfactibles

2123 Programacioacuten Loacutegica de Restricciones

Varios autores han presentado teacutecnicas de Programacioacuten Loacutegica de Restricciones pararesolver problemas de asignacioacuten de horarios pero eacuteste sigue siendo un nuevo enfoqueTambieacuten han aparecido algunos usando PLR para la planeacioacuten de clase-maestro[Yoshikawa 1994]

Kang y White presentaron una buena aproximacioacuten estaacutendar de PLR programandocursos sin permitir ningun conflicto [Kang y White 1994] Ellos usaron una teacutecnica dereversa equivalente al backtracking con lo cual cuando un curso no puede ser

Capiacutetulo 2 Marco teoacuterico

asignado uno similar es desasignado y el nuevo es colocado en su lugar Esto previeneuna buacutesqueda exhaustiva completa Esto tambieacuten introduce el concepto de undelimitador de tamantildeo que establece un maacuteximo en el tamantildeo del aula que puede usarun curso en particular Las restricciones son priorizadas en cinco diferentes categoriacuteasdonde la categoriacutea cinco debe ser liberada antes que la categoriacutea cuatro y asiacute con lasdemaacutes Este procedimiento fue utilizado para programar exitosamente los cursos de laUniversidad de Otawa

Tambieacuten se ha utilizado la teacutecnica de la Programacioacuten Loacutegica de Restricciones parahacer los horarios de una facultad utilizando una regla heuriacutestica para seleccionar quecurso asignar primero [Fahrion y Dollanski 1992]

2124 Redes Neuronales

De las distintas categoriacuteas de las Redes Neuronales Artificiales la maacutes apropiada pararesolver el problema es la familia de las Redes Neuronales de reaccioacuten basadas enneuronas multiestado con ecuaciones de teoriacutea de campos con significado controlandolas dinaacutemicas Las ecuaciones anteriores son usadas en lugar de los procedimientospara actualizacioacuten de demanda estocaacutesticos que han sido usados por otros esquemas paraevitar quedar atorados en circuitos locales miacutenimos [Carrasco 2004]

2125 Recocido Simulado

Recocido Simulado se refiere al uso de una teacutecnica de optimizacioacuten combinatoria odiscreta Divide el problema en grupos del mismo tiempo de clase los cuales sonespecificados por cada departamento acadeacutemico basados en la habilidad de losinstructores Funciona asiacute

1 El proceso asigna aulas procesando un grupo a la vez empezando con el primero2 El proceso continuacutea hasta que todos los grupos son procesados3 Cuando una solucioacuten es obtenida dividiendo el problema en conjuntos de horario

una mutacioacuten especial es generada con grupos traslapados Esto podriacutea generar unamala asignacioacuten de aula para minimizar esto se utiliza el siguiente paso

4 Los grupos son procesados basados en el nuacutemero de aulas este nuacutemero de aulas esoptimizado y se termina con las horas de clase con el miacutenimo de paquetes a esa hora

5 La implementacioacuten del programa genera una base de datos con la nueva asignacioacutende salones para el proacuteximo semestre [Abramson 1991]

2126 Operadores Recombinatorios Especializados

Los operadores de cruzamiento de los Algoritmos Geneacuteticos producen buenas

Capiacutetulo 2 Marco teoacuterico

combinaciones de genes para ser pasados entre los diferentes miembros de unapoblacioacuten En los Algoritmos Geneacuteticos estaacutendar es un procedimiento similar a escogerlos primeros n genes del primer padre y los uacuteltimos del segundo padre esteprocedimiento no es uacutetil en situaciones donde existen fuertes restricciones sobre laforma de los miembros de la poblacioacuten aquiacute un operador violaraacute esos requerimientosEl operador de recombinacioacuten heuriacutestico hiacutebrido trabaja asiacute

1 Los grupos no programados del periodo anterior son pasados al algoritmo2 Primero selecciona aquellos grupos programados en el periodo i en los padres 1 y 23 Los grupos extra son seleccionados de aquellos programados en el periodo i ya sea

del padre 1 o del padre 2 o de los dejados del periodo i ndash 14 Cualquiera de los grupos no programados es pasado al periodo i+15 Soacutelo los grupos que no crean conflicto con aquellos ya programados para este

periodo pueden ser seleccionados [Wilke 2002]

2127 El Sistema Experto Basado en Reglas

Los Sistemas Basados en Reglas proporcionan un buen punto de referencia para saberque tan buenos son otros meacutetodos en comparacioacuten a esta teacutecnica estaacutendar Varias deestas reglas son usadas para proporcionar sensibles elecciones para los movimientos enel algoritmo de Recocido Simulado en lugar de seleccionar cambios de manera aleatoriase ha usado este sistema como un preprocesador para generar una buena aproximacioacuteninicial y darla al Recocido Simulado

El Sistema Experto Basado en Reglas consiste en un nuacutemero de reglas (o heuriacutesticas) yrecursioacuten convencional para ayudar en la generacioacuten de asignacioacuten de clases Lasestructuras de datos o componentes del sistema son

bull Una matriz de distancias entre los departamentos acadeacutemicos y los edificios queseraacuten utilizados

bull Estructura de los datos de las materias para cada grupo programado en el campobull Estructura para las aulas (independientemente del tipo de aula) involucradas en el

procesobull Horarios para cada periodo de tiempo guardando cuales estaacuten disponibles y

cuales ya fueron ocupadasbull La estructura de los departamentosbull Las preferencias de los estudiantes indicando las clases requeridas

independientemente del semestre que sean las materias [Gervaacutes 1999]

Capiacutetulo 2 Marco teoacuterico

213 Observaciones realizadas a algunos paquetes generadores de horarios

Nombre DeMIStDescripcioacuten Puede describirse como un paquete que realiza bien las operaciones decasa (la propia universidad que lo creoacute) pero salioacute tan costoso como si hubierancomprado un paquete [Demist 2000]Proveedor DeMISt University

KnowTISEs un proyecto iniciado por la universidad de Leeds En la literatura aparece como unpaquete que es mejor para la generacioacuten de Grandes Horarios para una universidad quepara un departamento Utiliza el beneficio de gran cantidad de informacioacutencentralizada para la optimizacioacuten de recursos [Schedul 2000]Leeds University

STARSSTARS(Space Time and Resources Management) Igual que el anterior corre mejor enla elaboracioacuten de horarios de buen tamantildeo que en una aplicacioacuten departamentalDe Montfort University

Meeting maker Office TalkEs un generador de clases y acciones diarias es bueno cuando no es uacutetil el horario delos alumnos ya que proporciona uacutenicamente los espacios para las clases [Gervaacutes 1999]Varios proveedores

GP-UNTISEs un paquete australiano que funciona perfectamente para los requerimientos de lasescuelas secundariasTimetabling Services UK

Syllabus PlusEs una buena opcioacuten para uso departamental cumple los requerimientos de unauniversidad para la generacioacuten de horarios no trabaja a nivel de estudiantes pero si lohace con grupos de ellos no es factible para la generacioacuten de Grandes HorariosScientia LTD

Facility TimetablerEs una buena opcioacuten para uso departamental y para Grandes Horarios tiene interfaz conlos sistemas de alumnos y permite la creacioacuten de horarios individuales permite el uso

Capiacutetulo 2 Marco teoacuterico

centralizado de las aulas para una buena optimizacioacutenFacility Systems

Mimosa for WindowsEs un software general de planificacioacuten de la ensentildeanza y de programacioacuten de horariosLa aplicacioacuten utiliza todas las propiedades de Windows eficientemente es raacutepida tienegran capacidad y lo mas importante es tan flexible que puede aplicarse en todo el tipode escuelas desde la escuela primaria a las universidades desde las escuelasvocacionales a las academias militares

Se podriacutea decir que este producto cubririacutea todas las necesidades de la institucioacuten perohan existido algunos inconvenientes ya que no cubre con las necesidades deldepartamento tan solo da ayuda al usuario para que pueda generar sus horarios ademaacutesel tener tantos botones en pantalla (200) podriacutean confundir al usuario y realizar horarioserroacuteneos y no se resolveriacutea el problema [Nielsoft 2000]Mimosa Software Oy Finlandia

GestHor BSPEs un producto informaacutetico para resolver problemas de horarios escolares en escuelasbaacutesicas escuelas secundarias y escuelas profesionales

Toacutemese en cuenta que la mayoriacutea de los sistemas mencionados se enfoca solo a laasignacioacuten aula ndash materia y no abarca lo que es asignacioacuten materia ndash profesor

22 Los horarios

Existe mucha literatura referente a los horarios con una gran variedad de subtiacutetulos ydiferentes problemas Una gran variedad de algoritmos han sido propuestos empleandometodologiacuteas y heuriacutesticas de buacutesqueda produciendo horarios completos o soacuteloayudando durante el proceso Una de las grandes preguntas para la elaboracioacuten dehorarios es que si eacutestos pueden ser generales es decir iquestse puede encontrar un algoritmoo meacutetodo suficientemente general que produzca buenos horarios para todos losproblemas y para todas las restricciones La alternativa desde luego es continuardesarrollando algoritmos especializados aislados cada vez que un problema de horariosaparece

Al trabajar con una solucioacuten para el problema de los horarios se deben contestar lassiguientes preguntas iquestTodas las escuelas de nivel superior elaboran los horarios de lamisma manera iquestSon grandes o pequentildeas las diferencias en la forma de elaborar loshorarios iquestQueacute tan necesaria es la ayuda de la computadora iquestSoacutelo se requiere unpaquete general para la elaboracioacuten de los horarios iquestQueacute funcionalidad debe tener

Capiacutetulo 2 Marco teoacuterico

dicho paquete iquestQueacute tan grande y complejo es el problema de elaboracioacuten de horariosiquestQueacute propiedades debe poseer un horario aceptable para que una institucioacuten lo use

Se han realizado algunas encuestas para conocer si las escuelas de nivel superior tienensistemas computarizados para la elaboracioacuten de horarios si no los tienen si lonecesitaban y queacute caracteriacutesticas deberiacutea poseer El estudio concluyoacute que existe una grandemanda para tal sistema que se requiere un alto grado de asistencia automatizada yque la mayoriacutea de los elaboradores de horarios no estaban muy contentos con sussistemas actuales [Comm y Mathaisel 1988]

[Dowsland y Lim 1982] consideraron el problema de la elaboracioacuten de horarios peroproporcionaron alternativas en la encuesta de la utilidad de sistemas automatizados[Junginger 1986] establece que ldquoAunque los horarios producidos requierenmodificacioacuten las escuelas estaacuten contentas con los resultados El tiempo ahorrado fueconsiderable arriba del 75rdquo Dowsland por otro lado concluye que ldquoEs muy difiacuteciljuzgar el eacutexito actual de los paquetes para la elaboracioacuten de horarios pero el uso muylimitado de ellos sugiere que sus ventajas son limitadasrdquo Claramente ninguacuten disentildeadorde sistemas puede garantizar la idea de que su producto seraacute bienvenido con los brazosabiertos

[Pendlebury 1986] encuestoacute a las universidades politeacutecnicas britaacutenicas con respecto ala elaboracioacuten de horarios de cursos Doce de las treinta que contestaron la encuestautilizan elaboracioacuten de horarios por computadora (siete a gran escala y cuatro lo hacenen pequentildea escala) Es interesante notar que Pendlebury encontroacute que la mayoriacutea de loscursos se basan en clases que son muy independientes unas de otras y en la mayoriacutea delas instituciones encuestadas los departamentos individuales son responsables deproducir sus propios horarios

221 El problema de la elaboracioacuten de horarios

La elaboracioacuten de horarios es el acto de programar cursos a periacuteodos de tiempo asignarun aula a esos cursos y asignar un catedraacutetico a dicho curso

A menudo se hacen afirmaciones acerca de la naturaleza del problema que puedenpermitir encontrar una solucioacuten maacutes eficientemente Sin embargo cuando se trata deconstruir un sistema general se estaacute limitado a que las afirmaciones son el miacutenimocomuacuten denominador de todos los posibles escenarios

Una informacioacuten impliacutecita que ha sido hecha a menudo es la independencia entreunidades acadeacutemicas separadas Algunas universidades programan preguntando a susdepartamentos los horarios de sus propios cursos Una unioacuten central de dichos horarioses entonces utilizada para asegurar que todas las restricciones relevantes son cumplidasEn muchos casos esta es la forma normal en que es producido el horario de los cursos

Capiacutetulo 2 Marco teoacuterico

aunque algunos departamentos desarrollan su propio software para la programacioacuten decursos

En varias universidades los alumnos pueden tomar algunos de sus cursos endepartamentos diferentes al suyo Obviamente la independencia no debe ser asumidageneralmente debido a que puede haber diferencia en la programacioacuten de los cursos decada departamento En el Tecnoloacutegico de Zacatepec por ejemplo la probabilidadpromedio de que un curso tenga conflicto con uno de otro departamento es 1650mientras que la probabilidad de que dos cursos del mismo departamento tengan conflictoes 2250 notaacutendose una gran diferencia en el resultado

Dificultades encontradas por los responsables de la generacioacuten de horarios

Algunas dificultades experimentadas por los departamentos y facultades sonmencionadas aquiacute

bull Los programas acadeacutemicos se hacen cada vez maacutes flexibles (los estudiantesseleccionan queacute asignaturas tomar cuaacutendo doacutende y con quieacuten)

bull Algunos departamentos tienen asignaturas para ofrecer pero no tienen muchosalumnos

bull Los espacios para ofrecer las materias son cada vez menos y el problema se agravacuando los alumnos no quieren asistir en las tardes o los saacutebados

bull El staff de profesores no siempre estaacute disponible para impartir clases por muacuteltiplesrazones

bull Los alumnos pueden solicitar los grupos del proacuteximo semestre desde antes de queinicie pero al llegar el momento de inscribirse no lo hacen

bull Los departamentos estaacuten ansiosos por ofrecer una gran variedad de grupos teniendolos recursos pero esto puede ocasionar problemas

bull Existe una gran variedad de reglas al momento de asignar las aulas (pertenencia alas carreras prioridades de profesores etc)

bull Como no hay un costo asociado a la utilizacioacuten de un aula y no hay sanciones porreservarla y no utilizarla los departamentos acadeacutemicos no tienen un buen motivopara hacer una correcta utilizacioacuten del espacio

bull La falta de recursos ocasiona el mayor de los problemas porque obliga a laoptimizacioacuten en la planeacioacuten

Cursos y estudiantes

El problema de la elaboracioacuten de horarios estaacute relacionado esencialmente con el nuacutemerode eventos que requieren ser programados en este caso los cursos para los estudiantesClaramente el tamantildeo del problema variacutea entre los diferentes centros de estudio desdepequentildeos problemas con alrededor de 50 a 100 cursos hasta los 500 o 1000 cursos que

Capiacutetulo 2 Marco teoacuterico

programar Esta variacioacuten en el tamantildeo afectaraacute el tiempo requerido para resolver elproblema Un problema pequentildeo puede ser resuelto casi de manera oacuteptima mientrasque en uno grande se deben usar buacutesquedas heuriacutesticas u otras formas de acotar elespacio de buacutesqueda de una solucioacuten en un periodo de tiempo razonable

Se debe esperar que el nuacutemero de cursos y el nuacutemero de alumnos esteacuten correlacionadosEl nuacutemero de cursos ofrecidos y desde luego programados debe ser calculado porextrapolacioacuten del promedio de 5 o 6 cursos por alumno y con cupo promedio de 30alumnos por curso obviamente algunos alumnos se inscribiraacuten en 7 u 8 cursos porsemestre mientras que los cursos tendraacuten inscritos entre 20 y 40 alumnos Losalumnos dependiendo del semestre en que se encuentran inscritos deben matricularse aciertos cursos especiacuteficos para ese semestre dichos cursos deben programarse de maneraque los alumnos tengan la menor cantidad de tiempo entre el primer y el uacuteltimo cursodel diacutea permitieacutendoles con esto realizar actividades complementarias

En el Tecnoloacutegico de Zacatepec para una carrera con 900 alumnos se requieren ofertaraproximadamente entre 140 y 160 cursos ademaacutes los estudiantes pueden matricularse encursos ofrecidos por otros departamentos (esto ampliacutea el rango de posibilidades para losalumnos)

Los cursos y los departamentos

El promedio de los cursos ofrecidos por cada departamento variacutea considerablementeentre las diferentes escuelas de nivel superior La razoacuten de esta variabilidad puede servista como un indicador de la naturaleza de la complejidad de la planeacioacuten de horarios

Cada departamento ofrece cursos a los estudiantes de las carreras a las que da soportedirecto pero ademaacutes debe ofrecer cursos para todas las otras carreras de la institucioacutenque lo requieran esto es si un departamento X solicita la apertura de determinadonuacutemero de cursos a un departamento Y el departamento Y debe ofertar los cursossolicitados por X para los alumnos matriculados en el departamento X aunado a estoalgunos cursos ofertados por el departamento Y tienen compatibilidad con cursosofrecidos por X y por lo tanto los estudiantes de Y y X pueden ingresar indistintamenteen cualquiera de los cursos

Los cursos los semestres y las horas

Una de las afirmaciones que se pueden hacer en las instituciones de nivel superior es quelos cursos generalmente inician durante cierto periodo de tiempo y pueden tenerduracioacuten semestral (la gran mayoriacutea) trimestral y sin fechas predeterminadas (algunosposgrados por ejemplo) En general los cursos empiezan a las 700 AM y terminandependiendo del lugar a las 2000 o a las 2100 horas de lunes a saacutebado Aunque estopermite tener un amplio margen de horas para programar los cursos esto hace tambieacuten

Capiacutetulo 2 Marco teoacuterico

aun maacutes difiacutecil la elaboracioacuten de los horarios porque aumenta el rango de posiblescombinaciones donde programar cursos

Los cursos se pueden programar en periodos de tiempo muy variados aunque la mayoriacuteade los programadores de horarios siguen los siguientes patrones

bull Curso diario de 1 horabull Curso de dos horas en diacuteas saltados (lunes y mieacutercoles jueves y viernes

mieacutercoles y viernes)bull Curso de dos horas diarias 3 diacuteas por semana (lunes mieacutercoles y viernes)

(lunes martes y jueves) o (martes jueves y viernes)bull Cursos de cuatro horas en un solo diacutea por semanabull En el peor de los casos se programan cursos con la combinacioacuten de algunos

de los anteriores

Dependiendo del curso algunos tienen duracioacuten de cuatro horas teoacutericas semanales otroscombinan cuatro horas de teoriacutea y dos de praacutectica y algunos excepcionalmente sonprogramados con cuatro horas de praacutectica y dos de teoriacutea Las horas de praacutecticageneralmente se realizan en laboratorios o praacutecticas de campo agregando esto un nuevoparaacutemetro para la complejidad de la elaboracioacuten de horarios

Los cursos y las aulas

Las aulas son el espacio fiacutesico donde se impartiraacuten los cursos pueden ser salones declase laboratorios salones de exposicioacuten aulas para aplicacioacuten de exaacutemenes aulas paraactividades deportivas musicales o recreativas cada aula tiene capacidad para quecierto nuacutemero definido de estudiantes reciba sin problema unidades de ensentildeanzaaprendizaje

En una encuesta realizada por la Universidad de Nottingham [Burke y Elliman 1998] sedefinioacute que la programacioacuten de los cursos en las aulas es uno de los mayores problemasa los que se enfrentan los responsables de la elaboracioacuten de horarios Esto proviene dedos problemas mayores El primer problema es la escasez de aulas disponibles ya queen algunas de las escuelas de nivel superior el crecimiento de la poblacioacuten estudiantil hasido mayor que el crecimiento del nuacutemero de aulas disponibles para la ensentildeanza Elsegundo problema ocurre cuando se programa un curso en mas de un aula o saloacuten declase

La ocupacioacuten de las aulas es variable de acuerdo al departamento para el que seaasignada algunos prefieren utilizarlas al maacuteximo en el turno matutino otros en el turnovespertino tienen ocupacioacuten total algunos las utilizan exhaustivamente de lunes ajueves unos departamentos las llenan los viernes y saacutebados y otros tienen que utilizarlastodo el diacutea de lunes a saacutebado inclusive solicitan prestadas a los otros departamentosaquellos espacios que no son utilizados en alguacuten diacutea y hora a la semana

Capiacutetulo 2 Marco teoacuterico

Para el Tecnoloacutegico de Zacatepec el recurso llamado las aulas debe ser optimizado enuna buena planeacioacuten de horarios esto es deben ser utilizadas al maacuteximo todos los diacuteasde la semana desde las 700 hasta las 2100 de lunes viernes y los saacutebados hasta las1500 horas

Tipos de cursos

Una de las cosas a tomarse en cuenta durante la elaboracioacuten de los horarios es el tipo decurso a programar

bull Teoacutericos como los cursos matemaacuteticos cursos de administracioacuten etcbull Teoacuterico praacutecticos como los cursos de electroacutenica sistemas digitalesbull Lenguajes de programacioacutenbull Con praacutecticas de campo que deben salir al aire librebull Con praacutecticas de quiacutemica

Otra consideracioacuten es el tipo de aula requerida por los diferentes tipos de cursos

bull cursos que requieren medios audiovisuales simples (pizarroacuten y gis)bull algunos cursos adicionalmente requieren proyectores de acetatos y salas

obscurecidasbull cursos que requieren equipo de coacutemputo equipo de proyeccioacuten equipo de video y

televisioacuten para el desarrollo de la caacutetedra etcbull cursos que requieren laboratorios con computadorasbull que requieren equipos de medicioacuten electroacutenica generadores de sentildeales enchufes

eleacutectricos ybull cursos que requieren mesas tomas eleacutectricas y equipos para conexioacuten de redes

Los cursos y los catedraacuteticos

Definitivamente eacutesta es una de las principales consideraciones que tienen en cuenta losprogramadores de horarios la asignacioacuten de los cursos a los catedraacuteticos porque es unproceso que no puede realizarse de manera aleatoria es un proceso delicado porque deesto depende la efectividad del proceso de ensentildeanzandashaprendizaje

Los catedraacuteticos tienen caracteriacutesticas individuales que los hacen uacutenicosindependientemente de la profesioacuten que hayan estudiado Tienen intereses diferentesmeacutetodos diferentes aacutereas de preferencia diferentes perfil profesiograacutefico distinto tienenactividades extralaborales variadas asiacute que

iquestCoacutemo asignarle un curso a un catedraacutetico para que logre un oacuteptimo resultado en el

Capiacutetulo 2 Marco teoacuterico

proceso de ensentildeanza-aprendizajeiquestCoacutemo garantizar que el curso asignado a un profesor seraacute bien impartidoiquestCoacutemo saber que el profesor estaacute capacitado para ofrecer un buen cursoiquestCuaacuteles son los requisitos que debe reunir un profesor para impartir cierto cursoiquestDependen soacutelo de la profesioacuten los cursos que puede impartiriquestCoacutemo conocer de antemano las preferencias de los profesoresiquestEl nivel de estudio de los profesores les capacita para impartir cualquier cursoiquestDeben los profesores ser guiados a una especialidad por los programadores dehorarios

Las respuestas a todas estas preguntas incorporadas en un sistema generador de horariosiquestpermitiraacuten hacer una buena asignacioacuten de catedraacutetico a un curso

El condensado de horarios

Es un documento emitido cada semestre por los responsables de la elaboracioacuten de loshorarios que contiene la informacioacuten requerida por los alumnos jefes de departamento ycatedraacuteticos para conocer la distribucioacuten de las materias los grupos las aulas las horasy los catedraacuteticos que impartiraacuten los cursos en otras palabras el condensado de materiases el documento final de los HORARIOS que marcaraacute las acciones de todos el semestreactual

23 El proceso de la elaboracioacuten de horarios

El proceso de la elaboracioacuten de horarios abarca cada accioacuten que es requerida para crearel horario final completo y correcto de los datos iniciales Esto incluye recibir validary dar formato a los datos generar la versioacuten inicial hacer las correcciones y luegoproducir el condensado final de horarios El proceso de la generacioacuten de horariosabarca

bull la generacioacuten del dato de cuantos cursos se van a ofertarbull asignacioacuten de horario a esos cursosbull proporcionar aulas a los cursosbull designar profesores para los cursos definidos

la parte difiacutecil de esto es generar los horarios con los recursos disponibles en cadadepartamento cada etapa tiene sus restricciones (fuertes y suaves) los recursos no soninagotablesEl uso de la computadora

En una encuesta realizada por la Universidad de Nottingham [Burke y Elliman 1998]referente a la forma de elaborar horarios en las demaacutes universidades se encontroacute que un

Capiacutetulo 2 Marco teoacuterico

58 de ellas utilizan la computadora en alguna etapa del proceso de eacutestas el 21 tienela facilidad de realizar la programacioacuten aunque generalmente requieren captura manualde informacioacuten y conocimientos previos del problema particular del proceso El 1tienen paquetes comerciales y el 14 tienen paquetes hechos en casa para generarhorarios y el 2 aseguran que estaacuten desarrollando o comprando un paquete

Dado el tamantildeo de los horarios de dichas universidades es sorprendente que muchas notengan alguna forma de automatizacioacuten Esto se debe en la mayoriacutea de los casos a quelos horarios no cambian significativamente de un antildeo a otro Sin embargo de lasuniversidades que no programan horarios por computadora la mitad usa el horario delantildeo pasado y la otra mitad empiezan desde cero cada vez Cuando no se usa el horariodel antildeo pasado generalmente toma 4 semanas elaborar uno nuevo En la mayoriacutea de loscasos donde se usa la computadora generalmente no se toma en cuenta el horario delantildeo anterior

Causas de cambio de los horarios antildeo tras antildeo

Para que un horario pueda ser usado antildeo tras antildeo debe ser lo suficientemente robustopara que los cambios que ocurran en los datos de entrada produzcan soacutelo una pequentildeaalteracioacuten o modificacioacuten en el condensado final de horarios El uso del condensado delantildeo pasado depende en la cantidad de cambios que deben hacerse y esto a su vezdepende de cuanto cambie la cantidad de grupos que deben ofertarse para cadaasignatura y esto depende de la cantidad de alumnos que pueden cursar una asignaturaahora bien la cantidad de alumnos estaacute en funcioacuten de los iacutendices de aprobacioacuten yreprobacioacuten del periodo de los alumnos que por alguna razoacuten no cursaron unaasignatura y de la cantidad de grupos ofertados el periodo pasado

Si cambia la cantidad de horas frente a grupo asignada a un departamento entoncescambiaraacute el condensado de horarios con respecto al del antildeo pasado porque eso afectadirectamente en la cantidad de cursos que podraacute ofertarse este periodo este es uno de losrecursos maacutes variables que influyen para hacer cambios en los condensados antildeo trasantildeo

La redistribucioacuten de aulas y laboratorios (que no se realiza a menudo) llega tambieacuten ainfluir en los cambios

El cambio de horario matutino a vespertino (o viceversa) solicitado por un catedraacuteticoque es el especialista en impartir cierto curso ocasiona los cambios del condensado dehorarios del antildeo anterior al nuevo

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

CAPIacuteTULO 3

TEacuteCNICAS DE INTELIGENCIA ARTIFICIAL UTILIZADASPARA LA GENERACIOacuteN DE HORARIOS

31 Sistemas Expertos (SE)Bajo el teacutermino de Sistemas Expertos se entiende un nuevo tipo de software que imita elcomportamiento de un experto humano en la solucioacuten de un problema Un SE puedealmacenar conocimientos de expertos para un campo determinado y solucionar unproblema mediante razonamiento loacutegico de conclusiones

Los Sistemas Expertos son sistemas que buscan modelar el conocimiento yprocedimientos usados por un experto humano para resolver un problemadeterminado[Saacutenchez 1999]

iquestUn Sistema Experto utiliza teacutecnicas de la Inteligencia Artificial (IA)

Los Sistemas Expertos son uno de los puntos que componen las investigaciones en elcampo de la IA Un sistema de computadoras que trabaje con teacutecnicas de IA deberaacuteestar en situacioacuten de combinar informacioacuten de forma ldquointeligenterdquo alcanzarconclusiones y justificarlas (al igual que el resultado final) Los Sistemas Expertos sonuna expresioacuten de los sistemas basados en el conocimiento Con la aplicacioacuten de teacutecnicasde Inteligencia Artificial finaliza la transicioacuten del procesamiento de datos alprocesamiento de conocimientos

Un Sistema Experto es un sistema informaacutetico que simula el proceso de aprendizaje dememorizacioacuten de razonamiento de comunicacioacuten y de accioacuten de un experto humano enuna determinada rama o dominio Estas caracteriacutesticas le permiten almacenar datos yconocimiento sacar conclusiones loacutegicas tomar decisiones aprender de la experiencia ylos datos existentes comunicarse con humanos explicar el porqueacute de las decisionestomadas y realizar acciones como consecuencia de todo lo anterior

La incorporacioacuten dentro de un sistema de computadoras de un componente basado enel conocimiento correspondiente a una habilidad experta de tal forma que el sistemapueda ofrecer asesoramiento inteligente o tomar una decisioacuten inteligente sobre unafuncioacuten del proceso Una caracteriacutestica adicional deseable que muchos consideranfundamental es la capacidad del sistema si se le solicita de justificar su propia liacutenea derazonamiento de un modo directamente inteligible para el interrogador El estiloadoptado para alcanzar estas caracteriacutesticas es la programacioacuten basada en reglas[Waterman 1986]

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

311 Funcioacuten de un Sistema Experto

La funcioacuten de un Sistema Experto es aportar soluciones a problemas de un dominioespeciacutefico imitando la forma de razonamiento de los seres humanos es decir el SistemaExperto debe ser capaz de mostrar soluciones inteligentes [Giarratamo 1998]

Acceder a los conocimientos adquiridos por experiencia es lo maacutes difiacutecil ya que losexpertos al igual que otras personas apenas los reconocen como tales Son buscadoscon mucho esfuerzo y cuidado siendo descubiertos de uno en uno poco a poco

Ventajas del Sistema Experto

Experto Humano Experto ArtificialMortal PermanenteDifiacutecil de documentar Faacutecil de documentarDifiacutecil de transferir Faacutecil de transferirImpredecible ConsistenteMaacutes caro Menos caro

Ventajas del Experto Humano

Experto Humano Experto ArtificialCreativo No creativoAdaptable Requiere mantenimientoExperiencia sensorial Entrada simboacutelicaConocimiento de sentido comuacuten Conocimiento teacutecnico

312 Arquitectura de Sistemas Expertos [Gines 1986] [Giarratamo 1998]

La arquitectura general de un SE (Fig 31) estaacute compuesta fundamentalmente de

bull Base de Conocimiento Representa el conocimiento adquirido del expertohumano incluyendo experiencia sentido comuacuten e intuicioacuten

bull Motor de Inferencia Decide que se debe aplicar que se debe hacer resuelveconflictos nuevos hace uso de la base del conocimiento Proporcionamecanismos de razonamiento buacutesqueda aprendizaje etc

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

bull Interfaz Usuario Facilita la comunicacioacuten entre el Sistema Experto y el usuarioque realiza las consultas

bull Subsistema de Adquisicioacuten Mejor conocido como la Interfaz de Expertopermite ingresar el conocimiento a la Base de Conocimientos por parte delhumano experto en alguacuten dominio de conocimiento

bull Subsistema de explicaciones Permite dar a conocer los resultados obtenidospor el Sistema Experto

313 La base de conocimiento

El enfoque maacutes comuacuten para representar el dominio del conocimiento que se requierepara un SE son las reglas de produccioacuten Estas pueden ser referidas como reglasldquosituacioacuten-accioacutenrdquo o ldquoif-thenrdquo De esta forma con frecuencia una base deconocimientos estaacute fraguada principalmente de reglas las cuales son invocadas por uncasamiento de patrones con las particularidades de las tareas circunstanciales que vanapareciendo en la base de hechosLas reglas en una base de conocimientos representan el dominio de hechos y laheuriacutestica de un buen juicio de acciones a tomar cuando uno llega a situacionesespeciacuteficas La fuerza de un SE yace en el conocimiento especiacutefico del dominio delproblema Casi todos los sistemas existentes basados en reglas contienen cientos o milesde ellas y generalmente se obtienen de entrevistas con expertos durante un tiempo largoEn cualquier SE las reglas se conectan una a otra por ligas de asociacioacuten para formar

Base de

Motor de

Subsistema deadquisicioacuten

del

Subsistemade

explicacione

Interfazde

usuario

Ingeniero delconocimiento y experto Usuario

Base de hechos

Figura 31 Arquitectura de un Sistema Experto

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

redes de reglas Una vez que han sido ensambladas tales redes entonces se tiene unarepresentacioacuten de un cuerpo de conocimientos que es sustancial

Generalmente un experto tiene muchas reglas de criterio empiacutericas por lo que el soportesuele ser incompleto para la evidencia que se dispone En tales casos una teacutecnica es la devincular valores numeacutericos a cada regla para indicar el grado de certidumbre que eacutestatiene En la operacioacuten de SE los valores de certidumbre se combinan unos a otros atraveacutes de la red considerando tambieacuten la certidumbre de los datos de entrada delproblema para llegar finalmente a un valor de certidumbre de la solucioacuten final

314 El motor de inferencias

El sistema experto modela el proceso de razonamiento humano con un moacutedulo conocidocomo el motor de inferencia Dicho motor de inferencia trabaja con la informacioacutencontenida en la base de conocimientos y la base de hechos para deducir nuevos hechosContrasta los hechos particulares de la base de hechos con el conocimiento contenido enla base de conocimientos para obtener conclusiones acerca del problemaEl modelo de problema - solucioacuten y sus meacutetodos organizan y controlan las etapas que sevan tomando para la resolucioacuten de problemas Un modelo muy poderoso y comuacuten es elde encadenar las reglas `` if-then-else con el fin de formar alguna liacutenea derazonamiento Si el encadenamiento se inicia a partir de un conjunto de condiciones y semueve hacia alguna conclusioacuten el meacutetodo se llama encadenamiento hacia adelante y ensu caso contrario el encadenamiento es hacia atraacutes

Un problema de encadenamiento hacia adelante sin una apropiada heuriacutestica de podaderivaraacute muchas soluciones de las cuales no todas son necesarias En el caso deencadenamiento hacia atraacutes es necesario tambieacuten trabajar con una heuriacutestica apropiadacon la finalidad de poder manejar submetas conjuntivas En general para atacar elproblema de conjuncioacuten es necesario encontrar un caso en donde todas las submetasinteractuantes se satisfagan Pero con frecuencia una buacutesqueda de tal naturaleza nos dauna explosioacuten combinatoria de posibilidades Es por esta razoacuten que el dominioapropiado de la heuriacutestica y su esquema inferencial deberaacuten ser encontrados para cadatipo de problemas para que de esta manera se tenga un SE eficaz y eficiente

315 iquestPor queacute utilizar un Sistema Experto [Pluss 1999] [Sanchez 1999]

1 Con la ayuda de un Sistema Experto personas con poca experiencia pueden resolverproblemas que requieren un conocimiento formal especializado

2 Los Sistemas Expertos pueden obtener conclusiones y resolver problemas de formamaacutes raacutepida que los expertos humanos

3 Los Sistemas Expertos razonan pero basaacutendose en un conocimiento adquirido y notienen sitio para la subjetividad

Capiacutetulo 2 Marco teoacuterico

4 El uso de Sistemas Expertos es especialmente recomendado en las siguientessituaciones

bull Cuando los expertos humanos en una determinada materia son escasos

bull En situaciones complejas donde la subjetividad humana puede llevar aconclusiones erroacuteneas

bull Cuando es muy elevado el volumen de datos que ha de considerarse paraobtener una conclusioacuten

316 Construccioacuten de prototipos [Turban 1995]

En el desarrollo de Sistemas Expertos se plantean dos importantes riesgos

1- No existen implementaciones similares que puedan servir de orientacioacuten al encargadodel desarrollo en la casi totalidad de los casos

2- En muchos puntos los requisitos necesarios estaacuten esbozados con muy poca precisioacuten

El disentildeo y la especificacioacuten requieren una temprana determinacioacuten de la interfaz delsoftware y de la funcionalidad de los componentes En el desarrollo de SistemasExpertos deben alterarse a menudo durante y tambieacuten despueacutes de su implementacioacuten yaque los requisitos se han ido configurando y han obtenido mayor precisioacuten o porque seha descubierto que deben iniciarse otras viacuteas de solucioacuten Durante el desarrollo resultamaacutes apropiado empezar con implementaciones tipo test para encontrar el camino haciauna solucioacuten definitiva y para hacerlas coincidir con las necesidades del usuario

32 Algoritmos Geneacuteticos

321 Antecedentes [Medina 2004] [Goldberg 1989] [Davis 1991]

El Algoritmo Geneacutetico es una teacutecnica de buacutesqueda basada en la teoriacutea de la evolucioacutende Darwin que ha cobrado tremenda popularidad en todo el mundo durante los uacuteltimosantildeos

Esta teacutecnica se basa en los mecanismos de seleccioacuten que utiliza la naturaleza de acuerdoa los cuales los individuos maacutes aptos de una poblacioacuten son los que sobreviven al

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

adaptarse maacutes faacutecilmente a los cambios que se producen en su entorno Hoy en diacutea sesabe que estos cambios se efectuacutean en los genes de un individuo (unidad baacutesica decodificacioacuten de cada uno de los atributos de un ser vivo) y que sus atributos maacutesdeseables se transmiten a sus descendientes cuando eacuteste se reproduce sexualmente

En 1859 Darwin publica su libro laquoEl origen de las especiesraquo El libro causoacute una granpoleacutemica en el mundo cientiacutefico por las revolucionarias teoriacuteas en eacutel contenidas que lasespecies evolucionan acorde al medio para adaptarse a eacuteste Con ello el universopasaba de ser una creacioacuten de Dios estaacutetica y perfecta desde su inicio a un conjunto deindividuos en constante competicioacuten y evolucioacuten para poder perpetuar su especie en eltiempo La existencia de una especie pasa asiacute a ser algo dinaacutemico las especies se creanevolucionan y desaparecen si no se adaptan Para cada especie animal la naturalezaproponiacutea un crudo filtro soacutelo los mejores los maacutes aptos los que mejor se adapten almedio conseguiacutean sobrevivir lo suficiente para llegar a la madurez y encontrar unapareja para perpetuar sus aptitudes que le haciacutean maacutes apto

La informaacutetica ve aquiacute un claro proceso de optimizacioacuten Se toman los individuos mejoradaptados (mejores soluciones temporales) se cruzan (se mezclan ) generando nuevosindividuos (nuevas soluciones) que contendraacuten parte del coacutedigo geneacutetico (informacioacuten)de sus dos antecesores y por lo tanto aunque el nuevo individuo no tenga que estarforzosamente mejor adaptado de hecho puede que ni la probabilidad de que el nuevoindividuo generado esteacute mejor adaptado que los padres sea alta el promedio de laadaptacioacuten de toda la poblacioacuten si mejora ya que tienden a perpetuarse y extenderse lasmejores caracteriacutesticas y a extinguirse las poco beneficiosas o perjudiciales En losAlgoritmos Geneacuteticos se crea una nueva abstraccioacuten -la poblacioacuten- cuya funcioacuten decoste mejoraraacute globalmente por lo que puede que se encuentre alguacuten individuo conmejores caracteriacutesticas

Un investigador de la Universidad de Michigan llamado John Holland era consciente dela importancia de la seleccioacuten natural y a fines de los antildeos 60 desarrolloacute una teacutecnica quepermitioacute incorporarla a un programa Su objetivo era lograr que las computadorasaprendieran por siacute mismas A la teacutecnica que inventoacute Holland se le llamoacute originalmentePlanes Reproductivos pero se hizo popular bajo el nombre Algoritmo Geneacutetico trasla publicacioacuten de su libro en 1975

En esa universidad Holland impartiacutea un curso titulado Teoriacutea de sistemas adaptativosDentro de este curso y con una participacioacuten activa por parte de sus estudiantes fuedonde se crearon las ideas que maacutes tarde se convertiriacutean en los Algoritmos GeneacuteticosLos objetivos de su investigacioacuten fueron dos

Imitar los procesos adaptativos de los sistemas naturales y Disentildear sistemas artificiales (normalmente programas) que retengan los mecanismos

importantes de los sistemas naturales

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

Unos 15 antildeos maacutes adelante David Goldberg actual delfiacuten de los Algoritmos Geneacuteticosconocioacute a Holland y se convirtioacute en su estudiante Golberg era un ingeniero industrialtrabajando en disentildeo de tuberiacuteas y fue uno de los primeros que tratoacute de aplicar losAlgoritmos Geneacuteticos a problemas industriales Aunque Holland tratoacute de disuadirleporque pensaba que el problema era excesivamente complejo Goldberg consiguioacute loque queriacutea escribiendo un Algoritmo Geneacutetico en una computadora personal Apple IIEstas y otras aplicaciones creadas por estudiantes de Holland convirtieron a losAlgoritmos Geneacuteticos en un campo con base suficiente como para celebrar la primeraconferencia en 1985 ICGAacute85 Tal conferencia se sigue celebrando bianualmente[Beasley 1993]

Una definicioacuten bastante completa de un Algoritmo Geneacutetico es la propuesta por JohnKoza es un algoritmo matemaacutetico altamente paralelo que transforma un conjunto deobjetos matemaacuteticos individuales con respecto al tiempo usando operaciones modeladasde acuerdo al principio Darwiniano de reproduccioacuten y supervivencia del maacutes apto y trashaberse presentado de forma natural una serie de operaciones geneacuteticas de entre las quedestaca la recombinacioacuten sexual Cada uno de estos objetos matemaacuteticos suele ser unacadena de caracteres (letras o nuacutemeros) de longitud fija que se ajusta al modelo de lascadenas de cromosomas y se les asocia con una cierta funcioacuten matemaacutetica que refleja suaptitud [Koza 1992] 322 Definicioacuten de AG

Los Algoritmos Geneacuteticos (AG) son meacutetodos adaptativos que pueden usarse pararesolver problemas de buacutesqueda y optimizacioacuten Estaacuten basados en el proceso geneacutetico delos organismos vivos A lo largo de las generaciones las poblaciones evolucionan en lanaturaleza de acorde con los principios de la seleccioacuten natural y la supervivencia de losmaacutes fuertes postulados por Darwin Por imitacioacuten de este proceso los AlgoritmosGeneacuteticos son capaces de ir creando soluciones para problemas del mundo real Laevolucioacuten de dichas soluciones hacia valores oacuteptimos del problema depende en buenamedida de una adecuada codificacioacuten de las mismas [Goldberg 1989]

Un Algoritmo Geneacutetico consiste en una funcioacuten matemaacutetica que toma como entradas alos ejemplares y retorna como salidas cuaacuteles de ellos deben generar descendencia para lanueva generacioacuten

Los Algoritmos Geneacuteticos presentan ventajas sobre otros algoritmos que los hacenpreferibles para determinado tipo de aplicaciones Algunas de las caracteriacutesticas de losAlgoritmos Geneacuteticos son

bull Son algoritmos estocaacutesticos Dos ejecuciones distintas pueden dar dos solucionesdistintas Esto es uacutetil por el hecho de que hay gran cantidad de isoacutemeros que

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

corresponden a soluciones vaacutelidas por lo que es interesante que distintas ejecucionespuedan dar isoacutemeros distintos

bull Son algoritmos de buacutesqueda muacuteltiple luego dan varias soluciones Aunquehabitualmente la energiacutea de los individuos de la poblacioacuten final es similar losindividuos suelen ser distintos entre si Con el modelo de paralelizacioacuten empleado -geneacutetico multipoblacional- la probabilidad de obtener muchas soluciones distintas esmaacutes alta todaviacutea

bull Son los algoritmos que hacen una barrida mayor al subespacio de posiblessoluciones vaacutelidas De hecho se considera que de todos los algoritmos deoptimizacioacuten estocaacutesticos los Algoritmos Geneacuteticos son de los maacutes exploratoriosdisponibles

323 Ventajas y Desventajas [Bull 1993]

bull No necesitan conocimientos especiacuteficos sobre el problema que intentan resolverbull Operan de forma simultaacutenea con varias soluciones en vez de trabajar de forma

secuencial como las teacutecnicas tradicionalesbull Cuando se usan para problemas de optimizacioacuten de una funcioacuten objetivo- resultan

menos afectados por los oacuteptimos locales (falsas soluciones) que las teacutecnicastradicionales

bull Usan operadores probabiliacutesticos en vez de los tiacutepicos operadores determiniacutesticos delas otras teacutecnicas

bull La mayoriacutea de las otras teacutecnicas de optimizacioacuten son tambieacuten estocaacutesticasbull Pueden tardar mucho en converger o no converger en absoluto dependiendo en

cierta medida de los paraacutemetros que se utilicen tamantildeo de la poblacioacuten nuacutemero degeneraciones etc-

bull Pueden converger prematuramente debido a una serie de problemas de diversaiacutendole

324 iquestCoacutemo saber si es posible usar un Algoritmo Geneacutetico

La aplicacioacuten maacutes comuacuten de los Algoritmos Geneacuteticos ha sido la solucioacuten de problemasde optimizacioacuten en donde han mostrado ser muy eficientes y confiables Sin embargono todos los problemas pudieran ser apropiados para la teacutecnica y se recomienda engeneral tomar en cuenta las siguientes caracteriacutesticas del mismo antes de intentar usarlabull Su espacio de buacutesqueda (ie sus posibles soluciones) debe estar delimitado dentro

de un cierto rangobull Debe poderse definir una funcioacuten de aptitud que indique que tan buena o mala es

una cierta respuestabull Las soluciones deben codificarse de una forma que resulte relativamente faacutecil de

implementar en la computadora

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

Decisiones para implementar un Algoritmo Geneacutetico [Michalewicz 1992]

Las decisiones que hay que tomar para implementar un Algoritmo Geneacutetico son

bull Criterio de codificacioacuten Coacutemo se va a almacenar la informacioacuten en el genomabull Criterio de tratamiento de individuos no factibles Coacutemo se van a tratar a los

individuos que no cumplan las restriccionesbull Criterio de inicializacioacuten Coacutemo se va a construir la poblacioacuten inicialbull Criterio de parada Determina cuaacutendo el algoritmo ha llegado a una solucioacuten

aceptablebull Funcioacuten de adaptacioacuten Corresponde a la funcioacuten de costo de la investigacioacuten

operativa tradicionalbull Operadores geneacuteticos Se emplean para determinar coacutemo va a ser la nueva

generacioacuten Baacutesicamente son los operadores de cruce y mutacioacuten aunque pueden serempleados otros adicionales -muerte aborto envejecimiento- Tanto cruce comomutacioacuten pueden ser realizados de muchas formas distintas

bull Criterios de reemplazo Los criterios que determinan quieacutenes se van a cruzar Notienen que ser obligatoriamente los mismos que los criterios de seleccioacuten de lospadres

bull Paraacutemetros de funcionamiento Determinados paraacutemetros que sin poder serenglobados en ninguno de los anteriores son fundamentales para el funcionamientode un Algoritmo Geneacutetico Es el caso por ejemplo del tamantildeo de la poblacioacuten laprobabilidad de la aplicacioacuten de los operadores geneacuteticos etc

325 Paraacutemetros que deben ser especificados en el programa

Nordm de generaciones cantidad de veces que se produce una nueva generacioacuten deindividuos utilizando las reglas anteriormente explicadas Por loacutegica cuantas maacutesgeneraciones se produzcan se obtendraacuten mejores individuosNordm de individuos por generacioacuten en este ejemplo la cantidad de individuos de unageneracioacuten a otra es constante no variacuteaNordm de entrenamientos cantidad de veces que se lleva a cabo un entrenamiento entrediferentes generaciones de individuos

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

Fig 32 Pseudocoacutedigo del Algoritmo Geneacutetico simple

Los Algoritmos Geneacuteticos son una poderosa herramienta de propoacutesito general deoptimizacioacuten que modela los principios de la evolucioacuten [Burke 1994]

El proceso es el siguiente

1 Una poblacioacuten random de horarios factibles es creada Cada horario es evaluado deacuerdo a una conjunto de criterios (por ejemplo el tamantildeo del horario cuantosgrupos son colocados a la misma hora y en el mismo saloacuten cuantos salones hayvaciacuteos)

2 Los horarios son seleccionados de manera aleatoria para ser las bases de la proacuteximageneracioacuten Los buenos horarios son maacutes deseables que los malos En las bases dela evaluacioacuten de estos miembros de la poblacioacuten (horarios factibles) se escogen lospadres de la proacutexima generacioacuten de horarios Evaluando numeacutericamente durante elproceso de seleccioacuten buscando los mejores horarios los peores horarios soneliminados al mismo tiempo que la buacutesqueda se dirige hacia las aacutereas maacutespromisorias del espacio de soluciones

3 El Operador Mutacioacuten se aplica generalmente a un solo miembro de la poblacioacuten einvolucra el cambio aleatorio de la hora o aula de algunos grupos despueacutesalmacena el nuevo horario siempre manteniendo un horario factible Esto agrega

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

un elemento que permite tambieacuten introducir material geneacutetico uacutetil que ha sidoperdido en otros horarios en las primeras generaciones

4 El Operador de Cruzamiento toma una pareja de horarios y los combina de algunamanera para producir uno o dos nuevos horarios esto se hace generalmente deforma aleatoria seleccionando algunos grupos de la mantildeana de un miembro de lapoblacioacuten y los algunos grupos de la tarde de otro miembro para producir un nuevohorario cualquier grupo que no pueda ser colocado de esta manera se manda alperiodo siguiente disponible

5 La nueva poblacioacuten es generada El proceso seraacute repetido hasta que una buenasolucioacuten sea generada

33 Programacioacuten Loacutegica de Restricciones (PLR)

331 Antecedentes de la PLR

La Programacioacuten Loacutegica de Restricciones (PLR) es una teacutecnica que tiene mucho encomuacuten con los algoritmos de asignacioacuten heuriacutestica Dechter describe asiacute el problemade la satisfaccioacuten de restricciones ldquoUn problema de satisfaccioacuten de restricciones (PSR)es representado por una red de restricciones consistente en un conjunto de n variablesX1 Xn con sus respectivos valores de dominio RR n y un conjunto derestricciones Una restriccioacuten Ci (Xi1Xij)es un subconjunto del producto cartesiano Ri1 x x R i1 formado por todas las tuplas de valores para un subconjunto(X i1X ij) delas variables que son compatibles unas con otrasrdquo [Detcher 1990]

Una solucioacuten de la red es una asignacioacuten de valores a todas las variables de tal formaque todas las restricciones son satisfechasrdquo Esta es una representacioacuten maacutes poderosaque el modelo de los Grafos Coloreados porque puede representar restricciones mascomplejas El problema de los grafos coloreados es equivalente a un PLR binario en lacual cada restriccioacuten soacutelo tiene dos variables

Este modelo se resuelve tratando de asignar valores a cada una de las variables encuestioacuten y entonces regresando si se encuentra en un punto muerto y quitandorestricciones si se descubre que no se puede encontrar solucioacuten El orden en el que lasvariables son seleccionadas y el orden de los valores que son asignados a las variablespuede ser alterado para tratar aumentar la velocidad de buacutesqueda

La PLR es un meacutetodo que permite el disentildeo raacutepido de prototipos de resolucioacuten deproblemas complejos Las principales aportaciones en esta liacutenea se centran en eldesarrollo de programas que incluyen conjuntos de restricciones adaptadas a unadeterminada familia de problemas asiacute como al disentildeo formal e implementacioacuten demodelos de interpretacioacuten en paralelo con el fin de mejorar la eficiencia del proceso

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

deductivo El objetivo final es disponer de sistemas de resolucioacuten implementados paraapoyar la creacioacuten de sistemas donde la explosioacuten combinatoria de los elementos de unproblema hace muy difiacutecil la buacutesqueda de una solucioacuten en un tiempo razonable [Farion1992]

En esta seccioacuten se proporciona una breve introduccioacuten de la Programacioacuten Loacutegica conRestricciones y sus aplicaciones dentro del marco general de la programacioacuten loacutegica Setrata eacuteste de un campo que ha tenido una notable expansioacuten debido a su potencialaplicacioacuten praacutectica dado que el anaacutelisis de las restricciones permite mejorarconsiderablemente la eficiencia del caacutelculo de determinadas funciones

332 Restricciones

En primer lugar se empieza por contestar la pregunta iquestQueacute es una restriccioacuten Estacuestioacuten se puede responder tan brevemente como escribe Roman Bartak[1998]Una restriccioacuten es simplemente una relacioacuten loacutegica entre varias variablesdesconocidas tomando cada una un valor dentro de un dominio determinado (peA+B=C-el circulo estaacute dentro del cuadrado- etc)Asiacute las restricciones aparecen de forma natural en todos los campos del conocimientohumano La suma de los aacutengulos de un triaacutengulo es 180 grados es un ejemplo derestriccioacuten que aparece en el mundo real De hecho las restricciones son el medionatural en el que las personas expresamos los problemas en todas las aacutereas

Con la explicacioacuten dada se ve de forma natural que las restricciones gozan de variaspropiedades interesantes

bull las restricciones pueden especificar informacioacuten parcial es decir en lasrestricciones no hace falta que se den de forma uacutenica los valores de sus variables

bull las variables son no direccionales es decir en una restriccioacuten tiacutepica sobre dosvariables (XY) se puede inferir una restriccioacuten sobre X dada una restriccioacutensobre Y y viceversa

bull las restricciones son declarativas es decir se puede especificar que relacioacutendeben mantener sin especificar el procedimiento computacional que implementeesa relacioacuten

bull las restricciones son aditivas es decir el orden de imposicioacuten de las restriccionesno importa todo lo que importa al fin y al cabo es la conjuncioacuten de restriccionesy su efecto

bull las restricciones no suelen ser independientes normalmente restricciones dentrodel conjunto total de restricciones comparte variables

Asiacute siguiendo esta idea el objetivo de la Programacioacuten Loacutegica con Restricciones essustituir el proceso de unificacioacuten por la resolucioacuten de restricciones sobre un dominio

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

particular de intereacutes Con esta visioacuten se considera que el procesador de restriccionesdebe encargarse de comprobar la consistencia del conjunto de restricciones y dentro delo posible reducirlo a alguna forma normal

Seguacuten Elmohamed [Elmohamed 1998] las restricciones pueden ser divididas en trestipos fuertes medias y suaves

Restricciones fuertes Son todas aquellas que deben ser cumplidas obligatoriamente elcosto de no cumplir estas restricciones es sumamente alto y por lo tanto en un horariofactible su costo asociado por incumplimiento debe ser cero Por ejemplo (en unproblema real se pueden encontrar de 10 a 15 restricciones fuertes)

bull Dos o maacutes clases impartidas por un profesor no se pueden programar a lamisma hora

bull Una clase teoacuterica y su laboratorio no se pueden programar a la misma hora en elmismo diacutea

bull Una clase no se puede programar en un aula a menos que su capacidad seamayor al nuacutemero de alumnos inscritos

Restricciones medias Estas restricciones no se refieren a conflictos de tiempo perotienen asociado un alto costo a ellas sin embargo este costo no es tan alto como el de lasrestricciones fuertes En el condensado de horarios final el costo de estas restriccioneses minimizado y es deseable reducirlo a cero Por ejemplo (en un problema real sepueden tener entre 20 y 25 restricciones medias)

bull Para cada estudiante el balancear las secciones LunMieVie y MarJuebull Balancear o distribuir y equilibrar las horas de clase en la semanabull Las clases pueden requerir periodos de tiempo contiguosbull Las clases se pueden agrupar con otras clases formando paquetesbull Los horarios particulares deben tener la menor cantidad de ldquohoyosrdquo posible esto

es que las clases deben ser consecutivas unas despueacutes de otras

Restricciones suaves Estas restricciones no tienen nada que ver con conflictos detiempo y tienen un bajo costo asociado a ellas Tambieacuten en el condensado de horariosfinal este costo es minimizado pero no necesariamente debe ser cero Por ejemplo (sepueden tener entre 30 y 40 restricciones suaves)

bull Balancear la inscripcioacuten en cursos de varios paquetesbull Especificar la hora de comida y otros periodos de descansobull Los catedraacuteticos pueden requerir periodos de tiempo sin clasebull No inscribir alumnos-atletas en cursos que tengan conflicto con sus horas de

praacutectica deportiva etc

333 Sistemas con RestriccionesUna manera maacutes formal de definir las restricciones es considerarlas como una foacutermulade primer orden interpretada en una estructura para asiacute tener en cuenta la semaacutenticaparticular del sistema de restricciones Esta semaacutentica declarativa es adecuada cuando

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

existe a priori una estructura que se adecua al sistema de restricciones (pe Los realespara las restricciones aritmeacuteticas) pero esto no funciona demasiado bien para lossistemas de restricciones maacutes praacutecticos (pe Dominios finitos) Obviamente no se puededireccionar ninguacuten caacutelculo operacional relacionado con el propio procesador de lasrestricciones [Elmohamed 2001]

334 Referencia Histoacuterica de las RestriccionesLas restricciones como un aacuterea de trabajo que combina investigacioacuten de un gran nuacutemerode campos incluyendo Inteligencia Artificial Lenguajes de Programacioacuten CaacutelculoSimboacutelico y Loacutegica Computacional Las restricciones sobre redes y los problemas desatisfabilidad con restricciones empezaron a estudiarse por los investigadores deInteligencia Artificial en los antildeos 70

La programacioacuten con restricciones ha sido aplicada con notable eacutexito en numerososcampos Los trabajos en esta aacuterea se remontan a la investigacioacuten de InteligenciaArtificial y Representacioacuten Graacutefica por Computadora por los antildeos 60 y 70 En la uacuteltimadeacutecada sin embargo ha empezado a darse una mayor conciencia de que las restriccionesproporcionan las bases para un potente acercamiento a la programacioacuten modelado yresolucioacuten de problemas y que los diferentes esfuerzos por explotar estas ideas puedenser unidos bajo el mismo prisma conceptual y praacutectico la programacioacuten conrestricciones

Entre los dominios tratados por los sistemas de Programacioacuten Loacutegica con Restriccioneslos que maacutes ampliamente son investigados son sin duda los dominios finitos losnuacutemeros reales y racionales con restricciones aritmeacuteticas y los booleanos De hecho 3de los principales lenguajes de Programacioacuten Loacutegica con Restricciones son un claroejemplo de esta tendencia CHIP que proporciona restricciones sobre dominios finitosracionales y booleanos PrologIII que incluye racionales booleanos y listas y PLR(R)que maneja restricciones sobre reales

En la actualidad se pueden observar dos ramas principales en los avances en laprogramacioacuten con restricciones que parten de diferente base y por tanto usan diferentemetodologiacutea para resolver las restricciones Estas dos ramas son

bull Satisfaccioacuten de Restriccionesbull Resolucioacuten de Restricciones

335 Satisfaccioacuten de RestriccionesLa satisfaccioacuten de restricciones parte de los avances en Inteligencia Artificial (problemascombinatorios) y los Graacuteficos por computadora (sistema de SKETCHPAD[1963]expresando coherencia geomeacutetrica en el caso de anaacutelisis de escenas)

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

336 Resolucioacuten de RestriccionesLa resolucioacuten de restricciones difiere de la satisfaccioacuten de restricciones porque usavariables con dominios infinitos Ademaacutes las restricciones individuales son maacutescomplicadas por ejemplo ecuaciones no lineales En consecuencia los algoritmos deresolucioacuten de restricciones usan meacutetodos algebraicos y numeacutericos en vez decombinaciones y buacutesqueda Sin embargo existe metodologiacutea para discretizar losdominios infinitos en un nuacutemero finito de componentes y entonces se aplican lasteacutecnicas de Satisfaccioacuten de Restricciones

La programacioacuten con restricciones ha sido aplicada con eacutexito en numerosos campos Lasaplicaciones recientes incluyen [Detcher 1990]

bull Graacuteficos por Computadorabull Procesamiento del Lenguaje Natural (construccioacuten de analizadores eficientes)bull Sistemas de Bases de Datos (para reforzar yo mantener la consistencia de los

datosbull Problemas de Investigacioacuten Operativa (como la optimizacioacuten de problemas)bull Biologiacutea Molecular (secuenciacioacuten de ADN)bull Aplicaciones de Empresabull Ingenieriacutea Eleacutectrica (localizacioacuten de fallos)bull Disentildeo de Circuitos (para computar configuraciones)bull Planificacioacuten y organizacioacutenbull Configuracioacutenbull Juegosbull Configuracioacuten de horariosbull Criptoaritmeacuteticabull Coloreado de Grafosbull Razonamiento de hipoacutetesis quiacutemicas

En esta seccioacuten se va a dedicar una parte a cada una las aplicaciones maacutes estudiadas

337 Organizacioacuten de Proyectos

El problema de la Organizacioacuten es el proceso de asignar actividades a recursos en eltiempo En el caso general de organizacioacuten es un proceso de tomar decisiones donde sepueden tomar dos tipos de decisiones

bull Decisiones de situar temporalmente Cuaacutendo deberiacutea empezar cada actividadbull Decisiones de asignacioacuten de recursos Con queacute recursos deberiacutea ejecutarse cada

actividad

Los problemas de organizacioacuten y de asignacioacuten de recursos estaacuten basados enrestricciones Diferentes restricciones pueden afectar a la organizacioacuten la duracioacuten de

Capiacutetulo 3 Teacutecnicas de la IA utilizadas para la generacioacuten de horarios

una actividad las fechas de contrato restricciones precedentes tiempos de transferenciao de inicio de la actividad la capacidad de los recursos y el reparto de recursos

La relajacioacuten de las restricciones principales caracteriza la calidad de los problemas deorganizacioacuten Estas restricciones son las relacionadas con fechas de entregaproductividad periodicidad de los cambios de herramientas niveles de inventariomargen de tiempo etc Algunas de estas restricciones pueden ser combinadas en lafuncioacuten de evaluacioacuten para la optimizacioacuten

Las aplicaciones industriales de las teacutecnicas de resolucioacuten de restricciones a losproblemas del tipo de asignacioacuten de tareas incluye[Detcher 1990]

bull Organizacioacuten de la produccioacutenbull Organizacioacuten y planificacioacuten del transporte y la logiacutesticabull Administracioacuten del traacuteficobull Disentildeo de horarios de recursos y de hombresbull Asignacioacuten de plantilla incluyendo aplicaciones de ingenieriacutea de organizacioacutenbull Problemas de empaquebull Configuracioacuten de maacutequinas

Claramente hay muchos problemas relacionados en el aacuterea de la organizacioacuten en lapraacutectica para los sistemas comerciales e industriales reales los liacutemites entre unos y otrosno estaacuten claros Es difiacutecil encontrar alguacuten problema real que se ajuste a un modelopreconcebido sin tener que descartar partes del problema y aproximar otras asiacute que hayque tomar estos modelos con amplio margen de aproximacioacuten

Otra complicacioacuten es el tema de la optimizacioacuten En algunos casos el usuario estaacutesatisfecho soacutelo con tener una manera automaacutetica de tener la respuesta pero la mayoriacuteaquieren tener al menos una buena respuesta y algunos el mejor resultado posible Perodebido a la gran complejidad combinatoria de la mayoriacutea de los problemas reales deorganizacioacuten una optimizacioacuten real es muy difiacutecil asiacute que en la mayoriacutea de los casos seusa la programacioacuten con restricciones en combinacioacuten con otras teacutecnicas tales comoAlgoritmos Geneacuteticos para dar soluciones casi oacuteptimas en un tiempo razonable

Normalmente los problemas de organizacioacuten se presentan usando variables conrestricciones fuertes y restricciones suaves Estas pueden ser agrupadas en la abstraccioacutendel problema de organizacioacuten Asiacute tiacutepicamente el tiempo de comienzo y fin y laduracioacuten de cada actividad se representan por variables con restricciones Los dominiosde estas variables son el rango de tiempo de intereacutes en la organizacioacuten requerida

Capiacutetulo 4 Anaacutelisis y Disentildeo

CAPIacuteTULO 4

ANAacuteLISIS Y DISENtildeO

41 Recopilacioacuten de informacioacuten

bull Documentos recopilados

bull Cataacutelogo de asignaturas prerrequisitos y semestrebull Cataacutelogo de aulas y su capacidadbull Cataacutelogo de catedraacuteticos horas disponiblesbull Mapa reticular de la carrerabull Reporte de grupos abiertos en periodo actualbull Reporte de alumnos por grupo en periodo actualbull Reporte de alumnos no inscritos por materia y semestrebull Reporte de simulacioacuten (si todos aprobaran sus cursos)bull Reporte del iacutendice de reprobacioacuten del semestre anteriorbull Encuesta aplicada para determinar los conocimientos requeridos

para impartir una materiabull Encuesta aplicada para obtener los conocimientos de cada

catedraacuteticobull Aacuterbol de conocimiento realizado para determinar los grupos por

abrir de cada asignaturabull Aacuterbol de conocimiento del perfil de las asignaturasbull Aacuterbol de conocimiento del perfil de los catedraacuteticosbull Aacuterbol de conocimiento de los criterios de apertura de materia

bull El proceso de la elaboracioacuten de los horarios

1 Elaboracioacuten de los reportes estadiacutesticos del periodo actual(grupos abiertos alumnos por grupo alumnos no inscritos pormateria simulacioacuten iacutendice de reprobacioacuten)

2 Caacutelculo de la estimacioacuten de alumnos por materia del proacuteximoperiodo

3 Caacutelculo del nuacutemero de grupos por materia requeridos para elproacuteximo periodo

4 Ajuste de los grupos por materia requeridos para el proacuteximoperiodo

5 Formacioacuten de los grupos en paquetes por semestre6 Asignacioacuten de hora y aula a los grupos

Capiacutetulo 4 Anaacutelisis y Disentildeo

7 Seleccioacuten de catedraacutetico al grupo y viceversa8 Ajustes en hora aula y catedraacutetico por grupo9 Elaboracioacuten del reporte condensado para publicacioacuten de horarios10 Elaboracioacuten de los reportes de grupos sin maestro maestros con

horas disponibles grupos sin aula

Para elaborar los horarios de los grupos y maestros un semestre determinado se tienenen consideracioacuten los siguientes elementos

bull El estadiacutestico de Servicios Escolares (SE)El departamento de SE cuenta con un sistema que registra todo el historial acadeacutemicode los alumnos inscritos en el ITZ las materias cursadas y sus calificaciones lasdiferentes carreras con su retiacutecula de asignaturas y sus prerrequisitos los grupos delsemestre actual la cantidad de alumnos en cada grupo de una asignatura los iacutendicesde reprobacioacuten de semestres anteriores las materias que puede cursar un alumno elproacuteximo semestre etceacutetera Toda esta informacioacuten plasmada en reportesdiferentes es la base para la generacioacuten de los horarios del proacuteximo semestre

bull Los grupos requeridosSobre la base de operaciones aplicadas a la informacioacuten estadiacutestica se obtiene lacantidad de grupos requeridos para abrirse el proacuteximo semestre este nuacutemero degrupos es la cantidad oacuteptima con la que se podraacuten inscribir los alumnos sin tenerproblemas de falta de espacio el alterar disminuyendo o aumentando el nuacutemero degrupos requeridos puede ocasionar alumnos con carga crediticia menor a lareglamentaria o que existan grupos con menos de 10 alumnos respectivamente

bull Las aulasEl ITZ cuenta con 52 aulas repartidas entre las 8 carreras a cada coordinador decarrera se le asigna determinado numero de aulas para su administracioacuten asiacute que alasignar el aula a cada grupo debe cuidar la correcta distribucioacuten de los grupos en loshorarios correspondientes y que la capacidad de las aulas no rebase el numero dealumnos inscritos

bull Los maestros y departamentosCada departamento esta formado por un jefe y los catedraacuteticos que forman laacademia de cada carrera los profesores pueden ser de tiempo completo frac34 y frac12tiempo o profesores de asignatura cada uno tiene un horario predeterminado en turnomatutino o vespertino los catedraacuteticos de un departamento cubren las asignaturas desu carrera y apoyan a otras carreras a cubrir las materias que tienen el perfil de esaacademia los catedraacuteticos son uno de los recursos mas difiacuteciles de controlar

Restricciones propias de los profesores

o Materia no tiene maestro

o Maestro tiene horas disponibles

Capiacutetulo 4 Anaacutelisis y Disentildeo

o Maestro tiene materias preferencia

o Maestro ha impartido materia

o Maestro solicita materia

o Maestro tiene restricciones de nuacutemero de materias a impartir

o Restriccioacuten no pueden darse maacutes de tres materias diferentes

o Maestro tiene una profesioacuten

o Maestro tiene un perfil

o Maestro tiene un aacuterea definida

o Maestro prefiere materias especialidad

o Maestro prefiere materias semestres iniciales

bull Las materias o asignaturasEn cada carrera se tiene un mapa reticular que tiene las materias de cada semestre elnombre los creacuteditos las horas de teoriacutea y praacutectica las ligas con los prerrequisitos lasmaterias de la especialidad seleccionada etc

Restricciones propias de las asignaturas

o Materia de 1deg semestre

o Materia de 2deg semestre

o Materia de 3deg semestre

o Materia de 4deg semestre

o Materia de 5deg semestre

o Materia de 6deg semestre

o Materia de 7deg semestre

o Materia de 8deg semestre

o Materia de 9deg semestre

o Materia de especialidad

o Materia tiene prerrequisito

o Materia es de baacutesicas

o Materia requiere conocimientos de Base de Datos

o Materia requiere conocimientos de Electroacutenica

o Materia la puede impartir cualquier maestro

Capiacutetulo 4 Anaacutelisis y Disentildeo

o Materia requiere conocimientos de Redes

o Materia requiere ser impartida por ingeniero

o Materia tiene complejidad alta

o Materia debe ser impartida por catedraacutetico con grado de maestriacutea

o Materia requiere conocimientos de Arquitectura de Computadoras

o Materia no tiene cadenas

o Materia de Administracioacuten

o Materia de Ingenieriacutea Industrial

o Materia requiere conocimientos de Aacutelgebra

o Materia requiere conocimientos de Caacutelculo Diferencial e Integral

o Materia requiere conocimientos de Quiacutemica Inorgaacutenica y Orgaacutenica

o Materia requiere una elaboracioacuten de proyectos

bull Las carrerasLas 8 carreras que se imparten en el ITZ son ordenadas por nuacutemero de alumnos

1 Ingenieriacutea en Sistemas Computacionales2 Licenciatura en Informaacutetica3 Licenciatura en Administracioacuten4 Ingenieriacutea Civil5 Ingenieriacutea Electromecaacutenica6 Ingenieriacutea Industrial7 Ingenieriacutea Quiacutemica8 Ingenieriacutea Bioquiacutemica

bull Los horarios de grupoUna vez determinados los grupos requeridos para el proacuteximo semestre se procede a laasignacioacuten de horario de acuerdo al nuacutemero de horas teoacuterico-praacutecticas se le asignaaula y un catedraacutetico responsable se fija tambieacuten un nuacutemero de alumnos y el tiempode laboratorio en caso de ser necesario

Capiacutetulo 4 Anaacutelisis y Disentildeo

Diagrama de flujo del proceso

Elaboracioacuten de los reportes estadiacutesticos

Caacutelculo de alumnos por materiaproacuteximo periodo

Caacutelculo del nuacutemero de grupos pormateria requeridos

Ajuste de los grupos por materiarequeridos

Formacioacuten de los grupos en paquetespor semestre

Asignacioacuten de hora y aula a los grupos

Asignacioacuten de catedraacutetico al grupo

Ajustes en hora aula y catedraacutetico porgrupo

Elaboracioacuten del reporte condensado

Elaboracioacuten de reportes varios

Todo cuadrabien

Si

No

Fin

Inicio

Capiacutetulo 4 Anaacutelisis y Disentildeo

42 Anaacutelisis de la informacioacuten

bull Cataacutelogo de asignaturas prerrequisitos y semestre

Funcioacuten Dar a conocer las asignaturas de una carrera los prerrequisitos de las materiasy el semestre al que pertenece una asignatura los creacuteditos miacutenimos que debe tenerun alumno para cursar la asignatura

Origen Reporte emitido por el departamento de Servicios Escolares

Campos del reporte nombre carrera nombre asignaturas creacuteditos miacutenimos materiasprerrequisito semestre al que pertenece la asignatura

bull Cataacutelogo de aulas y su capacidad

Funcioacuten Dar a conocer la nomenclatura y capacidad de las aulas y laboratorios del ITZ

Origen Departamento de Planeacioacuten

Campos del reporte Nombre del edificio nuacutemero de aula capacidad

bull Cataacutelogo de catedraacuteticos horas disponibles

Funcioacuten Dar a conocer los catedraacuteticos por departamento y sus horas disponibles frentea grupo

Origen Departamentos acadeacutemicos

Campos del reporte Nombre del departamento clave de profesor nombre del profesorcantidad de horas frente a grupo que debe tener

bull Mapa reticular de la carrera

Funcioacuten Mostrar el mapa reticular de una carrera graacuteficamente muestra las asignaturaspor semestre sus requisitos foacutermula crediticia etc

Origen Divisioacuten de Estudios Profesionales

Campos del reporte Nombre y clave de la carrera nombre y clave de las asignaturasfoacutermula crediticia (nuacutemero de horas teoacutericas nuacutemero de horas praacutecticas creacuteditos dela asignatura) las materias prerrequisito de otras materias de especialidad semestrede la asignatura nuacutemero de creacuteditos necesarios para poder cursar una asignatura

Capiacutetulo 4 Anaacutelisis y Disentildeo

bull Reporte de grupos abiertos en periodo actual

Funcioacuten Muestra los cursos que son ofertados en el periodo actual

Origen Departamento de Servicios Escolares

Campos del reporte Nombre de la carrera nombre de las asignaturas grupo de loscursos cantidad de alumnos inscritos nombre del catedraacutetico que lo imparte

bull Reporte de alumnos por grupo en periodo actual

Funcioacuten Muestra la cantidad de alumnos inscritos por semestre de una carrera

Origen Departamento de Servicios Escolares

Campos del reporte Nombre de la carrera semestres del 1 al 13 nuacutemero de alumnosinscritos por semestre

bull Reporte de alumnos no inscritos por materia y semestre

Funcioacuten Muestra los alumnos que pudieron inscribirse a una materia pero que poralguna razoacuten no lo hicieron

Origen Departamento de Servicios Escolares

Campos del reporte Nombre de la carrera nombre de la materia por semestre nuacutemerode alumnos que pudieron inscribirse y no lo hicieron

bull Reporte de simulacioacuten (si todos aprobaran sus cursos)

Funcioacuten Este reporte simula que todos los alumnos inscritos en los cursos acreditan elcurso entonces cuenta cuantos estudiantes pueden cursar todas las asignaturas comosi hubieran aprobado todos sus cursos actuales

Origen Departamento de Servicios Escolares

Campos del reporte Nombre de la carrera nombre de la asignatura y por semestre elnuacutemero de alumnos que pueden cursar una materia

bull Reporte del iacutendice de reprobacioacuten del semestre anterior

Funcioacuten Dar a los coordinadores los iacutendices de aprobacioacuten y reprobacioacuten de los cursosdel periodo anterior

Capiacutetulo 4 Anaacutelisis y Disentildeo

Origen Departamento de Servicios EscolaresCampos del reporte Nombre de la carrera nombre de la asignatura total de alumnos

aprobados total de alumnos reprobados del periodo anterior

bull Encuesta de conocimientos requeridos para impartir asignatura

Funcioacuten Obtener los datos de los conocimientos que debe poseer un catedraacutetico quequiera impartir una asignatura

Origen Academia de cada departamentoCampos del reporte Nombre de la asignatura objetivo de la asignatura carrera lista de

conocimientos requeridos para impartir la asignatura carrera adecuada del profesorque imparta la asignatura

bull Encuesta de conocimientos requeridos para perfil de profesores

Funcioacuten Obtener los datos de los conocimientos que debe posee un catedraacutetico

Origen Academia de cada departamento

Campos del reporte Nombre del catedraacutetico carrera del catedraacutetico conocimientos enaacutereas particulares de cada asignatura

43 Solucioacuten definida

Resolver el problema iniciando con la metodologiacutea ldquodivide y venceraacutesrdquo el problemageneral se dividiraacute en 6 problemas particulares

a) Sistema de Informacioacuten para control de horariosb) Sistema Experto para definicioacuten y generacioacuten de grupos

por abrirc) Moacutedulo Programacioacuten Loacutegica de Restricciones para

asignar horario a los gruposd) Moacutedulo Algoritmos Geneacuteticos para asignar aula a los

grupos ya definidose) Sistema Experto para definir catedraacutetico para

asignaturaf) Sistema Experto para asignar asignatura a catedraacutetico

Debido a la naturaleza y caracteriacutesticas de la informacioacuten todos lossistemas seraacuten realizados iniciando desde cero la recopilacioacuten deinformacioacuten el anaacutelisis el disentildeo y la programacioacuten de cada moacutedulo delsistema programado en Visual Basic y Bases de Datos en Access

Capiacutetulo 4 Anaacutelisis y Disentildeo

La principal ventaja de eacutesta opcioacuten es que el sistema estaacute hecho a la medida de lasnecesidades de la institucioacuten poniendo las restricciones en el formato que se tienenactualmente la desventaja es que se debe desarrollar TODO el sistema

44 Requerimientos del sistema

Los Motores de Inferencias deben ser disentildeados con las siguientes caracteriacutesticas

bull Buacutesqueda de primero en profundidad en ocasiones cuando se interactuacutee con elusuario este tipo de buacutesqueda seraacute utilizado para recorrer toda la base deconocimiento

bull Buacutesqueda heuriacutestica en la que el usuario deberaacute dar datos iniciales de por dondeempezar la buacutesqueda de alguna informacioacuten

bull Tomar informacioacuten de la Base de Conocimiento y guardarla en las bases de datos ytambieacuten inferir la informacioacuten y guardarla en las bases de datos para su posteriortratamiento e impresioacuten

bull Seleccionar la mejor opcioacuten y presentarla al usuario para los casos en que el usuariodecida cambiar alguacuten dato la maacutequina deberaacute presentar una opcioacuten y saber indicarel porqueacute la ldquoeligioacuterdquo

bull Dar otras soluciones ademaacutes de la oacuteptima teniendo porcentajes de aceptacioacuten paracada solucioacuten y permitiendo la buacutesqueda de maestros a impartir materias aulas paraalguacuten grupo o cantidad de grupos a abrir

bull Dar resultados en lenguaje natural de modo que el usuario entienda claramente loque la maacutequina le comunica

bull Trabajar interactivamente con el usuario para que eacuteste pueda cuestionar el porqueasignoacute un maestro abrioacute grupos asignoacute un aula etceacutetera

bull Tener capacidad para el uso del paradigma basado en analogiacuteas ldquoSi un maestro yadio la materia en alguacuten semestre entonces puede darla en este semestrerdquo o bien ldquoSieste paquete de materias estaacute completo entonces repite todo el paquete estesemestrerdquo

Interfaz de Usuario recibe y entrega informacioacuten interactuando con el usuario esdecir el usuario puede

1) alimentar hechos2) solicitar resultados y reportes3) cuestionar coacutemo se obtuvieron ciertas conclusiones

La interfaz de usuario debe tener las caracteriacutesticas siguientes

bull Comunicarse en el lenguaje del usuario sea un humano u otro dispositivobull Recibir hechos del usuario y almacenarlos en la base de hechosbull Presentar de manera amigable los objetivos a buscar e inferencias en pantallabull Dar de manera clara la explicacioacuten de la inferencia realizada

Capiacutetulo 4 Anaacutelisis y Disentildeo

bull Dar resultados por escrito en informesbull Proporcionar al usuario la facilidad de alimentar la base de conocimientosbull Dar al usuario la facultad de corregir las inferenciasbull Si el usuario es inexperto facilitar la ayuda necesaria

Seleccioacuten del lenguaje de programacioacuten

Visual Basic 60 proporciona a los programadores facilidad para desarrollar aplicacionescomplejas en poco tiempo (comparado con lo que cuesta programar en Visual C++ porejemplo)

El sistema necesita interfaces amigables al usuario con ventanas y botones emergentesen cualquier momento y Visual Basic 60 es una herramienta de disentildeo de aplicacionespara Windows en la que eacutestas se desarrollan en una gran parte a partir del disentildeo de unainterfaz graacutefica (pudiendo incorporar todos los elementos de este entorno informaacuteticoventanas botones cajas de diaacutelogo y texto botones de opcioacuten y de seleccioacuten barras dedesplazamiento graacuteficos menuacutes etc) En una aplicacioacuten Visual Basic 60 el programaestaacute formado por una parte de coacutedigo puro y otras partes asociadas a los objetos queforman la interfaz graacutefica Visual Basic 60 permite la programacioacuten de sus ventanasbotones y componentes de manera maacutes faacutecil que Java con sus Applets

En la parte del sistema de control de horarios que es un sistema de informacioacuten comuacutenlos programas que llenan de informacioacuten las bases de datos son muy parecidos unos conotros al hacer los procesos de altas bajas modificaciones consultas y validaciones seutilizan las ventajas que Visual Basic 60 ofrece de la Programacioacuten Orientada aObjetos (POO) eacutesta es una forma de programacioacuten que utiliza objetos ligados mediantemensajes para la solucioacuten de problemas Puede considerarse como una extensioacuten naturalde la programacioacuten estructurada en un intento de potenciar los conceptos demodularidad y reutilizacioacuten de coacutedigo Las caracteriacutesticas fundamentales de la POO sonabstraccioacuten encapsulamiento herencia y polimorfismo

Visual Basic 60 soporta la abstraccioacuten la encapsulacioacuten el polimorfismo y lareutilizacioacuten de coacutedigo Los objetos de Visual Basic estaacuten encapsulados es decircontienen su propio coacutedigo y sus propios datos

Manejador de Base de datos para el almacenamiento de la informacioacutenEl manejador de base de datos a utilizar seraacute Microsoft Access debido a que los usuariosque alimentan la base de conocimientos son expertos en diferentes aacutereas delconocimiento y tiene conocimientos limitados de los diferentes manejadores y estaacuten maacutesfamiliarizados con Microsoft Access Ademaacutes de que Access es transportablefaacutecilmente

Ademaacutes la cantidad y tipo de informacioacuten que se almacena en las tablas no requieremanejadores de bases de datos potentes o con caracteriacutesticas especiales

Capiacutetulo 4 Anaacutelisis y Disentildeo

Sistemagenerador dehorarios

SistemaExperto

Reglas

Criterios

Criterios por regla Conocimiento

Procesos

Capturaestadiacutesticas

Calcula grupos

Ajusta grupos

Sistema expertoasigna materia

Sistema Expertoasigna maestro

Asigna materia

Asigna catedraacutetico

Conocimientos

Procesos

Materias

Perfil general

Catedraacuteticos

Perfil materias

Perfil maestro

Asignacioacutenmateria-maestro

Asignacioacutenmaestro-materia

Buacutesqueda independiente

B adelante

B atraacutes

Abduccioacuten

Explicacioacuten

MoacuteduloPLR

Asigna horario

Datos

Arbol derestricciones Procesos

Materia

Grupos

Paquetes

Horario

Restriccioacuten 1

Restriccioacuten 3

Restriccioacuten 2

Restriccioacuten N

Genera random

Evaluacutea restricciones

Guarda grupo

MoacuteduloAlgoritmoGeneacutetico

Asigna aula

Operadores Geneacuteticos

Evaluacioacuten

Cruzamiento

Seleccioacuten

Mutacioacuten

Poblacioacuten Inicial

Versioacuten 1

Versioacuten 2

Versioacuten 3

Versioacuten N

Condensadodatos grales

Materia

Hora

Aula

Control escolar

Sistema deInformacioacuten

Aulas

Horarios

Grupos

Maestros

Datosestadiacutesticos

Datosgenerales

Datos condensado

Materias

45 MAPA CONCEPTUAL DEL PROYECTO

Capiacutetulo 4 Anaacutelisis y Disentildeo

Capiacutetulo 4 Anaacutelisis y Disentildeo

En la Figura 41 se muestra el mapa conceptual del proyecto La burbuja centralrepresenta el sistema generador de horarios y cada rama representa uno de los seismoacutedulos que lo componen las burbujas de cada rama contienen a su vez variasramificaciones en las que se muestran de manera graacutefica los componentes maacutesrepresentativos de los procesos utilizados la informacioacuten que manejan el conocimientoque utilizan y las restricciones involucradas

El moacutedulo Servicios Escolares contiene informacioacuten necesaria para la administracioacuten delos horarios en general y proporciona los datos para el funcionamiento de los demaacutesmoacutedulos

El moacutedulo Sistema Experto Creacioacuten de Grupos (SECG) muestra el conocimiento yprocesos utilizados para definir la cantidad de grupos a ofertar a partir de la informacioacutenestadiacutestica proporcionada por servicios escolares maacutes adelante en el documento seexplica a detalle su funcionamiento

En la Figura 41 se aprecia que los moacutedulos Sistema Experto AsignaCatedraacutetico(SEAC) y Sistema Experto Asigna Materia(SEAM) comparten las bases deconocimiento porque el conocimiento de un SE es la base de hechos del otro en amboscasos los procesos difieren solamente en la informacioacuten que utilizan y en los resultadosque producen noacutetese que existe un proceso que es ldquobuacutesqueda independienterdquo que puedecatalogarse como un Sistema Experto adicional que sirve para sugerir las asignaturasque puede impartir una persona que no estaacute dentro de las bases de datos de maestros ypor lo tanto su perfil tampoco estaraacute capturado en esta caso los hechos (su perfil deconocimientos) es capturado en el momento de la consulta

El moacutedulo de Algoritmos Geneacuteticos (AG) muestra los datos que recibe como se generauna poblacioacuten inicial el tratamiento que se le aplica por medio de los operadoresgeneacuteticos y la informacioacuten que se genera

Por uacuteltimo en la Figura 41 se nota tambieacuten el moacutedulo donde se utiliza la ProgramacioacutenLoacutegica de Restricciones que contiene 3 ramas donde una representa los datos recibidosy la informacioacuten generada otra rama denota un aacuterbol de restricciones que deben sersatisfechas por los paquetes de horarios la uacuteltima rama denota los procesos que se llevana cabo debe notarse que existe un proceso aleatorio que genera cada grupo un procesoque evaluacutea el grupo contra las restricciones y uno mas que guarda los grupos quecumplieron con todas

En este mapa conceptual no se muestra en que orden se ejecuta cada moacutedulo delproyecto la Figura 42 ilustra la secuencia de ejecucioacuten de los moacutedulos

La Figura 42 muestra el diagrama con la secuencia en que se van ejecutando losprocesos los datos que ingresan a cada moacutedulo y la informacioacuten que genera

Capiacutetulo 4 Anaacutelisis y Disentildeo

452 MAPAS CONCEPTUALES DE LOS MOacuteDULOS

Servicios Escolares

Datos Estadiacutesticos

Sistema Experto Creacioacuten de Grupos

Materias y grupos requeridos

Moacutedulo PLR

Materia + grupo + hora

Moacutedulo AG

Materia + grupo + hora + aula

Sistema ExpertoAsigna Catedraacutetico Sistema Experto

Asigna Materia

Sugiere profesorpara asignaturas

Sugiere asignaturapara profesor

Materia + grupo + hora + aula +profesor

Condensado final de materias

1

2

3

4

5 6

Fig 42 Diagrama de secuencia

Capiacutetulo 4 Anaacutelisis y Disentildeo

Como puede verse todo inicia cuando Servicios Escolares enviacutea la informacioacuten a laDivisioacuten de Estudios Profesionales (donde ldquohabitanrdquo los coordinadores) quienes son losresponsables de la elaboracioacuten de los horarios

Un primer proceso captura la informacioacuten que proviene de Servicios Escolares elsegundo moacutedulo define cuantos grupos deben programarse el tercer proceso asigna lahora a cada grupo el cuarto moacutedulo es el proceso que asigna las aulas los procesosquinto y sexto sirven para sugerir queacute catedraacutetico es el maacutes adecuado para cada grupo ycomo resultado final se tiene el condensado final de horarios para el siguiente semestre

En la Figura 43 se muestran los componentes del primer Sistema Experto utilizado paradefinir la cantidad de grupos que deben ofertarse el proacuteximo semestre en la partesuperior izquierda de la figura esta el coordinador de la carrera quien es el encargado decargar el conocimiento a las Bases de Conocimiento utilizando la interfaz de experto esla persona indicada para definir los criterios que tiene cada materia define las reglaspara la agrupacioacuten de los criterios y define en cada regla que tipo de ajuste se realiza

Experto

Coordinador

Interfaz Experto

Base deConocimientos

CriteriosReglasAjustes

Motor de Inferencia ListasMateriasGrupos requeridos

UsuarioMoacutedulo Explicacioacuten

Usuario(coordinador

novato)

Interfaz Usuario

Base Hechos

Informacion Estadiacutestica

Fig 43 Sistema Experto Generador de Grupos

Capiacutetulo 4 Anaacutelisis y Disentildeo

El usuario en la parte inferior de la figura puede ser el coordinador o su asistente y seencarga de capturar la informacioacuten estadiacutestica proporcionada por servicios escolares queson los datos de alumnos inscritos actualmente en cada materia el iacutendice de reprobacioacutenlos alumnos inscritos en la materias prerrequisito una simulacioacuten de los alumnosprobables para cursar esa materia si todos los inscritos aprueban todo y los alumnos quepueden cursar las materias pero no se inscribieron

Con los datos anteriores se realiza la siguiente operacioacuten

(Inscritos en materia iacutendice de reprobacioacuten de materia) 100 +Alumnos no inscritos +Alumnos en prerrequisito ndash (alumnos en prerrequisito iacutendice de reprobacioacuten) 100 +(Simulacioacuten ndash alumnos en prerrequisito ndash no inscritos) = Alumnos del proacuteximo semestre

Este uacuteltimo dato (alumnos del proacuteximo semestre) proporciona la cantidad de alumnospor materia que pueden inscribirse en los grupos seguacuten los estadiacutesticos de ServiciosEscolares pero no contempla preferencias de alumnos conveniencia de inscripcioacuten etc

Ofrecer los grupos necesarios para la inscripcioacuten de alumnos tomando el dato calculadoocasiona que al terminar las inscripciones existan grupos vaciacuteos grupos sobresaturadosalumnos con pocas materias y varios problemas mas

La finalidad de este Sistema Experto es realizar un ajuste al dato calculadoanteriormente para incluir en su caacutelculo todas aquellas caracteriacutesticas y experiencia delcoordinador para minimizar los problemas mencionados en el paacuterrafo anterior

Los ajustes pueden ser de varios tiposbull Ajuste draacutestico hacia abajo Se aplica una reduccioacuten del 50 al dato calculadobull Ajuste hacia arriba Se agrega un grupo maacutes al dato calculadobull Ajuste hacia abajo Se resta un grupo al dato calculadobull Ajuste numeacuterico Se ajusta utilizando la regla del redondeo de decimalesbull Ajuste draacutestico hacia arriba Se suman 2 oacute 3 grupos al dato calculado

Cuando utilizar una u otra regla estaacute definido por los criterios que cada materia contienenaturalmente y que con el paso de los semestres puede variar (aunque tambieacuten puedenpasar antildeos sin sufrir ninguacuten cambio)

La Figura 44 describe la utilizacioacuten de la teacutecnica de la Inteligencia Artificial llamadaProgramacioacuten Loacutegica de Restricciones para generar el condensado de grupos a partir deuna lista de materias que contiene solamente el nombre y la cantidad de grupos que sedeben abrir de una materia

Capiacutetulo 4 Anaacutelisis y Disentildeo

EoseX

Ugacgg

Lgc

s

ListasMaterias

Procesoformador depaquetes

Lista grupo +paquete

Moacutedulo generadorRandom Hora

Restricciones satisfec

Restriccio

Materia +hora

Moacuteduloverificadorrestriccione

s

Restriccionesnosatisfechas

Fig 44 Diagrama del moacutedulo Programacioacuten Loacutegica de Restriccione

xiste un proceso inicial que forma los ldquopaquetesrdquo de grupos esto es las materias serdenan por el semestre al que corresponden (generalmente son 6 materias poremestre) despueacutes para cada semestre se generan los grupos correspondientes si porjemplo se deben hacer 3 grupos de la materia X se generan tres registros de la materia y cada registro se etiqueta

Materia X grupo AA Materia X grupo AB y Materia X grupo AC

na vez que todas las materias han sido generadas y ldquoempaquetadasrdquo se pasan alenerador de horario en bloques de un paquete a la vez Este proceso funcionasignando un horario aleatorio a cada grupo despueacutes se verifica que cada grupo cumplaon todas las restricciones que son del tipo grupo no ldquochocardquo con otro del paqueterupo proporciona horario continuo al paquete grupo tiene horario de 2 horas por diacutearupo no deja horas vaciacuteas en paquete grupo cumple con todas sus horas asignadas etc

a Figura 45 muestra el disentildeo del Algoritmo Geneacutetico utilizado para asignar aula a losrupos que provienen del moacutedulo anterior (PLR) y recibe como datos de entrada unondensado de horarios (materia + grupo + hora)

Capiacutetulo 4 Anaacutelisis y Disentildeo

Procesoevaluacioacuten

Condensado

Materia +Grupo +Hora

Generador de versiones aleatorias

Genera versioacuten asigna aula

Versioacuten 3

Versioacuten 2

Versioacuten 1

Versioacuten N

Poblacioacuten inicial

ProcesoseleccioacutenProceso cruzamiento

clonacioacuten mutacioacuten

Versioacuten z

Versioacuten y

Versioacuten x

Versioacuten w

Nueva generacioacuten

Individuos aptos

Individuos no aptosReciclaje

CondensadoMateria + grupo +hora + aula

Fig 45 Diagrama del moacutedulo Algoritmo Geneacutetico

Capiacutetulo 4 Anaacutelisis y Disentildeo

Esta rama de la Inteligencia Artificial es utilizada generalmente para procesos deoptimizacioacuten y en esta ocasioacuten se utiliza para asignar las aulas al condensado dematerias

Al inicio se reciben como datos generales el condensado de materias La poblacioacuteninicial se obtiene copiando N veces (N versiones) este condensado y agregando a cadaregistro el nuacutemero de versioacuten y un aula asignada de manera aleatoria de esta manera seobtienen N versiones diferentes del condensado original

Cada versioacuten es entonces evaluada contando el nuacutemero de choques en aula y la cantidadde espacios vaciacuteos por aula a cada versioacuten se le genera un vector para guardar laevaluacioacuten (cromosoma de evaluacioacuten) y de esta manera se mide el grado de aptitud quetiene cada versioacuten

Las versiones que tienen menos choques y menos espacios vaciacuteos se consideran con ungrado de aptitud alto y son las mejores al contrario las que tienen muchos choquesson consideradas de aptitud baja no sirven para la reproduccioacuten y son desechadas

Una vez seleccionadas la mejores versiones se procede a la aplicacioacuten de los operadoresgeneacuteticos el primero que se aplica es el cruzamiento y consiste en elegir dos versionesde alta aptitud tomar segmentos seleccionados heuriacutesticamente de ellas y formar unnuevo individuo (una nueva versioacuten) se repite este proceso Y veces con las diferentesversiones hasta tener una nueva generacioacuten de N condensados de horarios

Repetir este proceso de generacioacuten evaluacioacuten y seleccioacuten durante Z generacionesaplicando cuando se necesite la clonacioacuten que es un proceso de copiar completamenteuna versioacuten (con alto grado de aptitud) a la nueva generacioacuten

Al principio la convergencia hacia horarios sin choques en aula es raacutepida pero al pasode las generaciones disminuye entonces se debe usar la mutacioacuten que es un proceso deacceder manualmente los registros de alguna versioacuten Zi en la generacioacuten Z y corregiralguacuten aula al final despueacutes de varias generaciones selecciones cruzamientosclonaciones y mutaciones se obtiene un condensado de aulas libres de choques y conpocos espacios vaciacuteos

En la Figura 46 se muestran los componentes del Sistema Experto utilizado para sugerircuales son los catedraacuteticos que mejor se desempentildeariacutean para impartir una asignaturatomando en cuenta los conocimientos que tiene un profesor (adquiridos a lo largo de sucarrera) y cuales son los conocimientos necesarios para impartir la caacutetedra de algunaasignatura

Capiacutetulo 4 Anaacutelisis y Disentildeo

Todo inicia haciendo una encuesta a los profesores acerca del perfil y los conocimientosnecesarios para poder impartir una asignatura el objetivo de la misma y los principalestemas que abarca todo lo anterior se captura en la base de hechos como el perfil de lamateria

Posteriormente se hace otra encuesta a los profesores pidieacutendoles que seleccionencuales son los conocimientos y el grado de dominio que tienen de los diferentes toacutepicosde las asignaturas esto se convierte en el perfil del catedraacutetico Por uacuteltimo con unproceso de induccioacuten se determina para cada materia cual es el grado de certeza con elcual puede un profesor impartir una asignatura

Experto

Coordinador

Interfaz Experto

Base deConocimientos

CatedraacuteticosConocimientos profesorPerfil profesor

Motor de Inferencia Lista profesores paraimpartir una materia

Jefedepartamento

Moacutedulo Explicacioacuten

Usuario(coordinador

novato)

Interfaz Usuario

Base Hechos

Perfil

Fig 46 Diagrama de Sistema Experto para sugerir profesor a asignatura

Capiacutetulo 4 Anaacutelisis y Disentildeo

Noacutetese en la Figura 47 que el coordinador captura el conocimiento referente a lasasignaturas (objetivo temas caracteriacutesticas necesarias para impartirla) y este esalmacenado en la Base de Conocimientos

Por otro lado un profesor debe llenar una encuesta en la que indique cuales son lostemas que domina y en que porcentaje lo hace (esto es el perfil del catedraacutetico) estainformacioacuten se almacena en la base de hechos--

El Motor de Inferencia hace los matchs respectivos y genera una lista de las materias quepuede impartir un profesor y con que grado de certeza estaacute capacitado para hacerlo

Por uacuteltimo el moacutedulo de explicacioacuten informa el porqueacute dio esa inferencia mostrando lascaracteriacutesticas de materia y profesor que hicieron match

Fig 47 Diagrama de Sistema Experto para sugerir asignaturas para catedraacutetico

Experto

Coordinador

Interfaz Experto

Base deConocimientos

MateriasCaracteriacutesticas MateriasPerfil materia

Motor de Inferencia Lista materias para unprofesor

Profesor

Moacutedulo Explicacioacuten

Profesor nuevoInterfaz Usuario

Base Hechos Perfil profesor

Capiacutetulo 4 Anaacutelisis y Disentildeo

453 Diagrama de contextoEn la Figura 48 se detallan los elementos que intervienen aportando y recibiendoinformacioacuten para el funcionamiento del sistema

Los departamentos acadeacutemicos aportan al sistema una lista con los catedraacuteticos quelaboran ahiacute incluye los datos personales de los profesores nuacutemero de tarjeta nombrecarrera etc Los coordinadores de carrera son los responsables de la elaboracioacuten de loshorarios estos funcionarios son la pieza fundamental de este proceso porque aportan susconocimientos para

bull Definir el ajuste al dato estadiacutestico proporcionado por Servicios Escolaresbull Definir las restricciones para la creacioacuten de los paquetes de gruposbull Definir las restricciones para asignar hora a cada grupobull La distribucioacuten de los grupos en las aulasbull Asignar la asignatura que mejor puede impartir un catedraacuteticobull Asignarle a una asignatura al profesor que mejor puede impartirla

El departamento de Servicios Escolares es el iniciador del proceso de la elaboracioacuten dehorarios aporta los datos estadiacutesticos obtenidos de la situacioacuten escolar actual de losalumnos cada alumno estaacute inscrito en alguna de las 8 carreras que se ofrecen en elInstituto estaacute cursando entre 5 y 8 asignaturas por semestre en cada periodo acredita oreprueba algunas materias En cada carrera se tiene un mapa reticular que incluyeaproximadamente 50 asignaturas con prerrequisitos creacuteditos horas en aula horas enlaboratorio orden por semestre etc

El departamento Divisioacuten de Estudios Profesionales (donde estaacuten adscritos loscoordinadores de carrera) es el responsable de distribuir las aulas disponibles delInstituto entre los distintos coordinadores las aulas son un recurso escaso y por lo tantovalioso de esta distribucioacuten depende en gran medida la holgura o estrechez que tienenlos coordinadores para asignar las aulas a los grupos creados

Los profesores son otro de los recursos valiosos de una institucioacuten son los responsablesde transmitir sus conocimientos a los alumnos cada catedraacutetico posee conocimientos dediversas aacutereas toacutepicos y ramas del saber humano el perfil del catedraacutetico estaacute enrelacioacuten directa con el dominio que tiene de cada una de ellas y varia desde unconocimiento superficial hasta el dominio total de un aacuterea

Los generadores random de los moacutedulos PLR y AG proporcionan la informacioacutennecesaria generada de manera aleatoria para el funcionamiento de esos moacutedulos

A los coordinadores y alumnos se les proporciona un condensado de horarios losalumnos conocen los grupos a los que se pueden inscribir las horas las aulas y loscatedraacuteticos que las impartiraacuten

Capiacutetulo 4 Anaacutelisis y Disentildeo

Sistema para laelaboracioacuten de

horarios

Departamentosacadeacutemicos

Jefes dedepartamento

Divisioacuten deEstudios

Profesionales

DepartamentoServiciosEscolares

Alumnos

Coordinadoresde carrera

Coordinadoresde carrera

Lista catedraacuteticos disponibles

Conocimientos

Reporte datos estadiacutesticos

Lista aulas disponibles

Condensado de horarios

Horarios disponibles

Lista horarios profesores

Profesores Generadoresaleatorios

Perfil maestro

Horas y aulas aleatorios

Fig 48 Diagrama de contexto del proyecto

Cap

iacutetulo

4

Anaacute

lisis

y D

isentilde

o

Sist

ema

para

lael

abor

acioacute

n de

hora

rios

Dep

arta

men

tos

acad

eacutemic

os

Div

isioacute

n de

Estu

dios

Prof

esio

nale

s

Dep

arta

men

toSe

rvic

ios

Esco

lare

sC

oord

inad

ores

de c

arre

ra

List

a ca

tedr

aacutetic

os d

ispo

nibl

es

Con

ocim

ient

osR

epor

teda

tose

stad

iacutestic

osLi

sta

aula

s dis

poni

bles

Prof

esor

esG

ener

ador

esal

eato

rios

Perf

il m

aest

roH

oras

y a

ulas

Fig

49

Dia

gram

a de

func

ione

s fun

dam

enta

les (

entra

das)

Cap

tura

supe

rfil

deco

noci

mie

nto

Cap

tura

las

aula

s

Enviacute

a da

tos

Cap

tura

suco

noci

mie

nto

Enviacute

a da

tos

depr

ofes

ores G

ener

ada

tos

Cla

ve n

ombr

eho

ras

turn

o

Tips

tru

cos

cono

cim

ient

ohe

uriacutes

tico

Cla

ve c

apac

idad

ed

ifici

o

Alu

mno

sin

scrit

os

sim

ulac

ioacuten

no

insc

ritos

iacutend

ice

repr

obac

ioacuten

Toacutepi

cos y

tem

asqu

e do

min

aA

ula

y ho

raal

eato

rios

Capiacutetulo 4 Anaacutelisis y Disentildeo

Sistema para laelaboracioacuten de

horarios

Coordinadoresde carrera

Jefes dedepartamento Alumnos

Fig 410 Diagrama de funciones fundamentales (salidas)

Imprimecondensado

Imprime lista Imprimehorarios

Maestro materiahora

Materia grupohora aula

maestrosugerido

Condensado de horarios Horarios disponibles

Lista horarios profesores

Materia grupohora aula

maestro

Capiacutetulo 4 Anaacutelisis y Disentildeo

454 Diagrama entidad - relacioacuten

NOTA Los siguientes diagramas muestran las tablas utilizadas por cada moacutedulo paramayor claridad se repitieron las tablas necesarias para representar cada parte del sistemapero en la base de datos no existe tal duplicacioacuten

Este diagrama contiene las tablas del moacutedulo administrativo de los horarios en unprincipio eacutestas eran las uacutenicas tablas de un sistema de control de horarios

FK_HORARIOS_REFERENCE_MATERIASFK_MATERIAS_REFERENCE_SERVICIO

FK_MATERIAS_REFERENCE_RAMA_MAT FK_MATERIAS_REFERENCE_CARRERAS

HORARIOS

GrupoId_aulaHora_inicioHora_lunesHora_martesHora_miercolesHora_juevesHora_viernesHora_sabadoObservacionesPeriodoAnioid_materiaId_catedratico

Text(2)INTEGERINTEGERText(6)Text(6)Text(6)Text(6)Text(6)Text(6)Text(30)Text(20)INTEGERINTEGERSMALLINT

ltfk3gt

ltfk2gtltfk1gt

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave de asig prerequisitoclave de asig prerequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

MATERIAS

SERVICIOS_ESCOLARESId_materiaINSCRITOSNO INSCRITOSSIMULACIONPROXIMO SEMESTREGRUPOS REQUERIDOSIndice de reprobacionperiodoantildeoGrupos ajustadoAlumnos ajustadoId_ajusteId_regla

INTEGERSMALLINTSMALLINTSMALLINTSMALLINTDOUBLEDOUBLEText(7)INTEGERSMALLINTSMALLINTINTEGERSMALLINT

RAMA_MATERIA

Id_ramaNombre_rama

COUNTERText(30)

ltpkgt

CARRERAS

Id_CarreraNombre_carrera

Text(15)Text(50)

ltpkgt

Fig 411 Diagrama entidad ndash relacioacuten del moacutedulo administrativo

Capiacutetulo 4 Anaacutelisis y Disentildeo

Este diagrama muestra las tablas donde se almacena el conocimiento de loscoordinadores para que el Sistema Experto del moacutedulo sugiera y aplique el ajuste aldato de cantidad de grupos sugerido por Servicios Escolares La relacioacuten entre las tablasva generando las reglas de produccioacuten

MATERIAS

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave asig prerrequisitoclave asig prerrequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

REGLAS

DescriId_reglaId_ajusteTot_peso

Text(70)COUNTERINTEGERINTEGER

ltpkgtltfkgt

FK_MATERIAS_REFERENCE_SERVICIO

FK_HECHOS_R_REFERENCE_CRITERIO

FK_HECHOS_R_REFERENCE_REGLAS

FK_HISTORIA_REFERENCE_REGLAS

FK_HISTORIA_REFERENCE_CRITERIO

FK_REGLAS_REFERENCE_AJUSTES

FK_HISTORIA_REFERENCE_MATERIAS

FK_HISTORIA_REFERENCE_CRITERIO

SERVICIOS_ESCOLARES

Id_materiaINSCRITOSNO INSCRITOSSIMULACIONPROXIMO SEMESTREGRUPOS REQUERIDOSIndice de reprobacioacutenperiodoantildeoGrupos ajustadoAlumnos ajustadoId_ajusteId_regla

INTEGERSMALLINTSMALLINTSMALLINTSMALLINTDOUBLEDOUBLEText(7)INTEGERSMALLINTSMALLINTINTEGERSMALLINT

HECHOS_REGLAS

Id_criterioId_reglaPromedio

INTEGERINTEGERINTEGER

ltfk2gtltfk1gt

CRITERIOS

Id_criterioDescripcion

COUNTERText(60)

ltpkgt

HISTORIAL_CRITERIOS

Id_criterioId_reglaPeso de la regla

INTEGERINTEGERSMALLINT

ltfk2gtltfk1gt

AJUSTES

TipoDescripcionId_ajuste

Text(25)MemoCOUNTER ltpkgt

HISTORIAL_MATERIA

Id_materiaId_criterioprioridad

INTEGERINTEGERSMALLINT

ltfk2gtltfk1gt

Fig 412 Diagrama E-R del moacutedulo para determinar y ajustar nuacutemero de grupos

Capiacutetulo 4 Anaacutelisis y Disentildeo

En este diagrama se muestra la base de datos que almacena la informacioacuten quemanipula el moacutedulo Algoritmo Geneacutetico las tablas maacutes representativas sonPOBLACION donde se guardan todas las versiones que forman las generaciones dehorarios y CROMOSOMAS que almacena el registro de evaluacioacuten de cada versioacuten dehorarios

FK_HORARIO__REFERENCE_AULAS

FK_HORARIO__REFERENCE_POBLACIO

FK_MATERIAS_REFERENCE_TIPO_HOR

FK_POBLACIO_REFERENCE_AULAS

FK_POBLACIO_REFERENCE_MATERIAS

FK_POBLACIO_REFERENCE_CROMOZOM1 1

HORARIO_AULA

VersionAulaLunesMartesMiercolesJuevesViernesSabadoHoraId_aula

INTEGERText(6)SMALLINTSMALLINTSMALLINTSMALLINTSMALLINTSMALLINTSMALLINTINTEGER

ltfk2gt

ltfk1gt

AULAS

Id_aulaCapacidad_aulaNombre_aulaDisponible

COUNTERSMALLINTText(50)YesNo

ltpkgt

POBLACION

Id_materiaGrupoId_catedraticoAulaHora_inicioHora_lunesHora_martesHora_miercolesHora_juevesHora_viernesVersionId_aulaPeriodoAnio

INTEGERText(4)INTEGERText(4)INTEGERText(6)Text(6)Text(6)Text(6)Text(6)INTEGERINTEGERText(10)INTEGER

ltfk2gt

ltfk1gtltfk3gt

MATERIAS

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave de asig prerequisitoclave de asig prerequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

TIPO_HORARIO

Tipo_horario

DescripcionLunes

MartesMiercoles

Jueves

ViernesSabado

COUNTER

Text(20)SMALLINT

SMALLINTSMALLINT

SMALLINT

SMALLINTSMALLINT

ltpkgt

CROMOZOMAS

VersionSemestreChoquesVacias

INTEGERINTEGERINTEGERINTEGER

ltpkgt

Fig 413 Diagrama E-R del moacutedulo para asignar aulas (Algoritmo Geneacutetico)

Capiacutetulo 4 Anaacutelisis y Disentildeo

En esta Figura 414 se pueden observar las tablas involucradas en el proceso paragenerar los paquetes de materias por semestre y la asignacioacuten de horario a cada grupodel paquete utilizando la teacutecnica Programacioacuten Loacutegica de Restricciones noacutetese que noexiste una tabla de restricciones eacutestas se aplican por software a cada grupo generado

FK_MATERIAS_REFERENCE_SERVIC

FK_MATERIAS_REFERENCE_TIPO_H

FK_HORARIOS_REFERENCE_MATERI

MATERIA

Id_materiMateriNum de HrsNum de HrsClave deId_CarrerCreditoSemestrObservacioneTroncoalumnos porclave de asigclave de asigId_ramSuma_maOrdeTipo_horari

INTEGEText(40SMALLINSMALLINText(8Text(15SMALLINSMALLINText(60YesNSMALLINText(40Text(40INTEGESMALLINSMALLININTEGE

ltpkfk4

ltfk1

ltfk3

ltfk2

SERVICIOS_ESCOLARE

Id_materiINSCRITONOSIMULACIOPROXIMOGRUPOSIndice deperiodantildeGruposAlumnosId_ajustId_regl

INTEGESMALLINSMALLINSMALLINSMALLINDOUBLDOUBLText(7INTEGESMALLINSMALLININTEGESMALLIN

TIPO_HORARI

Tipo_horariDescripcioLuneMarteMiercoleJueveVierneSabad

COUNTEText(20SMALLINSMALLINSMALLINSMALLINSMALLINSMALLIN

ltpk

HORARIO

GrupId_aulHora_iniciHora_luneHora_marteHora_miercoleHora_jueveHora_vierneHora_sabadObservacionePeriodAniid_materiId_catedratic

Text(2INTEGEINTEGEText(6Text(6Text(6Text(6Text(6Text(6Text(30Text(20INTEGEINTEGESMALLIN

ltfk3

ltfk2ltfk1

Fig414 Diagrama E-R del moacutedulo para asignar horario (PLR)

Capiacutetulo 4 Anaacutelisis y Disentildeo

FK_HECHOS_M_REFERENCE_MATERIAS

FK_HECHOS_M_REFERENCE_CATEDRAT

HECHOS_MAT_PROF

Id_catedraticoId_materiaPromedio

SMALLINTSMALLINTSMALLINT

ltpkfk1gtltpkfk2gt

FK_PERFIL_C_REFERENCE_CATEDRAT

FK_PERFIL_C_REFERENCE_PERFILES

FK_PERFILES_REFERENCE_TIPO_PER

FK_PROF_PAR_REFERENCE_CATEDRAT

FK_PROF_PAR_REFERENCE_MATERIAS

PERFIL_CATEDRATICO

Id_catedraticoId_perfilPrioridad_perfil_cate

SMALLINTINTEGERSMALLINT

ltfk1gtltfk2gt

CATEDRATICOS

Id_catedraticoApellido_paternoApellido_maternoNombre_catedraticoTitulo_catedraticoSuma_cate

SMALLINTText(20)Text(20)Text(20)Text(30)SMALLINT

ltpkgt

PERFILES

Id_perfilId_tipoDescripcion_perfil

COUNTERINTEGERText(60)

ltpkgtltfkgt

TIPO_PERFIL

Id_tipoTipo_perfil

COUNTERText(30)

ltpkgt

PROF_PARA_MAT

Id_materiaId_catedraticoPorcentaje_cate

INTEGERSMALLINTSMALLINT

ltpkfk2gtltpkfk1gt

MATERIAS

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave de asig prerequisitoclave de asig prerequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

Fig 415 Diagrama E-R del moacutedulo designa mejor catedraacutetico (Sistema Experto)

Capiacutetulo 4 Anaacutelisis y Disentildeo

En las figuras de la paacutegina anterior y eacutesta (Fig 415 y 416) se muestran las tablasutilizadas por los Sistemas Expertos para sugerir que materias puede impartir unprofesor y tambieacuten sugiere que profesores pueden impartir una asignatura

FK_PERFILES_REFERENCE_TIPO_PER

FK_PERFIL_M_REFERENCE_MATERIAS

FK_PERFIL_M_REFERENCE_PERFILES

FK_MAT_PARA_REFERENCE_MATERIAS

FK_MAT_PARA_REFERENCE_CATEDRAT

FK_HECHOS_M_REFERENCE_MATERIAS

FK_HECHOS_M_REFERENCE_CATEDRAT

PERFILES

Id_perfilId_tipoDescripcion_perfil

COUNTERINTEGERText(60)

ltpkgtltfkgt

TIPO_PERFIL

Id_tipoTipo_perfil

COUNTERText(30)

ltpkgt

PERFIL_MATERIA

Id_materiaId_perfilPrioridad_perfil_mat

INTEGERINTEGERINTEGER

ltfk2gtltfk1gt

MATERIAS

Id_materiaMateriaNum de Hrs pracNum de Hrs teoClave de AsigId_CarreraCreditosSemestreObservacionesTronco comunalumnos por grupoclave de asig prerequisitoclave de asig prerequisito1Id_ramaSuma_matOrdenTipo_horario

INTEGERText(40)SMALLINTSMALLINTText(8)Text(15)SMALLINTSMALLINTText(60)YesNoSMALLINTText(40)Text(40)INTEGERSMALLINTSMALLINTINTEGER

ltpkfk4gt

ltfk1gt

ltfk3gt

ltfk2gt

MAT_PARA_PROF

Id_catedraticoId_materiaPorcentaje_mat

SMALLINTINTEGERSMALLINT

ltpkfk1gtltpkfk2gt

CATEDRATICOS

Id_catedraticoApellido_paternoApellido_maternoNombre_catedraticoTitulo_catedraticoSuma_cate

SMALLINTText(20)Text(20)Text(20)Text(30)SMALLINT

ltpkgt

HECHOS_MAT_PROF

Id_catedraticoId_materiaPromedio

SMALLINTSMALLINTSMALLINT

ltpkfk1gtltpkfk2gt

Fig 416 Diagrama E-R del moacutedulo selecciona mejor materia (sistema experto)

Capiacutetulo 4 Anaacutelisis y Disentildeo

455 Diccionario de la Base de Datos

Nombre HORARIOS_CON_CONOCIMIENTOComentario Base de datos del sistema ldquoGeneracioacuten de horarios mediante Sistemas

Basados en ConocimientordquoDBMS Microsoft Access 97

Lista de Tablas

Nombre Tipo deObjeto

AJUSTES TableAULAS TableCARRERAS TableCATEDRATICOS TableCRITERIOS TableCROMOSOMAS TableHECHOS TableHECHOS_MAT_PROF TableHECHOS_PROF_MAT TableHECHOS_REGLAS TableHISTORIAL_CRITERIOS TableHISTORIAL_MATERIA TableHORARIO_AULA TableHORARIOS TableMAT_PARA_PROF TableMATERIAS TablePERFIL_CATEDRATICO TablePERFIL_MATERIA TablePERFILES TablePOBLACION TablePROF_PARA_MAT TableRAMA_MATERIA TableREGLAS TableSERVICIOS_ESCOLARES TableTIPO_HORARIO TableTIPO_PERFIL Table

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla AJUSTESFuncioacuten Almacena los datos de los tipos de ajuste que se aplican por el Sistema Experto al

dato estadiacutestico que define cuantos grupos se deben abrir de cada materia

Lista de columnas de la tabla AJUSTESNombre Tipo de

DatoLong Llave

Primaria ForaneaComentario

Tipo Text(25) 25 Nombre del tipo de ajusteDescripcioacuten Memo Explicacioacuten del ajuste a realizar al nuacutemero

de grupos calculados segun estadisticosId_ajuste COUNTER 4 X Identificador del ajuste

Tabla AULASFuncioacuten Almacena los datos de las aulas que existen en cada edificio del instituto

Lista de columnas de la tabla AULASNombre Tipo de

DatoLong Llave

Primaria ForaneaComentario

Id_aula COUNTER 4 X Identificador del aulaCapacidad_aula SMALLINT 4 Nuacutemero maacuteximo de alumnos en el

aulaNombre_aula Text(50) 50 Nombre del aula (edificio+numero)Disponible YesNo 1 Disponibilidad del aula

Tabla CARRERASFuncioacuten Almacena los datos de las carreras que se imparten en el ITZ

Lista de columnas de la tabla CARRERASNombre Tipo de

DatoLong Llave

Primaria ForaneaComentario

Id_Carrera Text(15) 15 X Clave de la carreraNombre_carrera Text(50) 50 Nombre de la carrera

Tabla CATEDRATICOSFuncioacuten Almacena los datos de los CATEDRAacuteTICOS que imparten clases en las diferentes carreras del

Instituto Se utilizan los datos en los Sistemas Expertos que definen cual es el mejor catedraacuteticopara impartir una materia

Capiacutetulo 4 Anaacutelisis y Disentildeo

Lista de columnas de la tabla CATEDRATICOSNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_catedratico SMALLINT 4 X Nuacutemero de tarjeta del catedraacuteticoApellido_paterno Text(20) 20 Apellido paterno del catedraacuteticoApellido_materno Text(20) 20 Apellido materno del catedraacuteticoNombre_catedratico Text(20) 20 Nombre del catedraacuteticoTitulo_catedratico Text(30) 30 Grado de estudios y tiacutetulo del

catedraacuteticoSuma_cate SMALLINT 4 Suma total de las pesos de los perfiles

pertenecientes al catedraacutetico

Tabla CRITERIOSFuncioacuten Tabla de los criterios utilizados por el experto para crear las reglas que definen el tipo de

ajuste inferido por el Sistema Experto para definicioacuten de grupos por abrir

Lista de columnas de la tabla CRITERIOSNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_criterio COUNTER 4 X Identificador del criterio aplicado auna materia para crear grupos

Descripcion Text(60) 60 Descripcioacuten del criterio

Tabla CROMOSOMASFuncioacuten Almacena los datos de la evaluacioacuten de cada versioacuten de horarios generada ya sea por la

poblacioacuten inicial o por los operadores geneacuteticos se genera un cromosoma por cadasemestre en cada versioacuten

Lista de columnas de la tabla CROMOSOMASNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Version INTEGER 4 X Nuacutemero de individuo o versioacuten dehorarios

Semestre INTEGER 4 Semestre al que pertenece el datoChoques INTEGER 4 Nuacutemero de choques de versioacuten y

semestreVacias INTEGER 4 Nuacutemero de aulas vaciacuteas del individuo

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla HECHOS_MAT_PROFFuncioacuten Esta tabla almacena el resultado de la inferencia del Sistema Experto materias para

profesor indica para cada catedraacutetico las materias y el porcentaje de certeza con quepuede impartirlas

Lista de columnas de la tabla HECHOS_MAT_PROFNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_catedratico SMALLINT 4 X Identificador del catedraacuteticoId_materia SMALLINT 4 X Identificador de la asignaturaPromedio SMALLINT 4 Porcentaje de certeza con que un

profesor puede impartir una materia(resultado de la inferencia)

Tabla HECHOS_PROF_MATFuncioacuten Almacena los datos de la inferencia del Sistema Experto que calcula para una materia

determinada cuales son los mejores maestros para impartirla

Lista de columnas de la tabla HECHOS_PROF_MATNombre Tipo de

DatoLongitud

LlavePrimaria Foraacutenea

Comentario

Id_catedratico SMALLINT 4 X Identificador del catedraacuteticoId_materia SMALLINT 4 X Identificador de la asignaturaPromedio SMALLINT 4 Porcentaje de certeza con que una

materia puede ser impartida por unprofesor (resultado de la inferencia)

Tabla HECHOS_REGLASFuncioacuten Almacena los porcentajes de certeza con que se dispara una regla del Sistema Experto

que define los grupos por abrir

Lista de columnas de la tabla HECHOS_REGLASNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_criterio SMALLINT 4 X Identificador del criterioId_regla SMALLINT 4 X Identificador de la reglaPromedio INTEGER 4 Porcentaje de certeza con que una

regla dispara un criterio

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla HISTORIAL_CRITERIOS

Funcioacuten Almacena las reglas formadas por los criterios utilizados por el Sistema Experto paradefinir los grupos por abrir

Lista de columnas de la tabla HISTORIAL_CRITERIOSNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_criterio INTEGER 4 X Identificador del criterio pertenecientea la regla

Id_regla INTEGER 4 X Identificador de la reglaPeso de la regla SMALLINT 4 Peso del criterio en la regla

Tabla HISTORIAL_MATERIAFuncioacuten Tabla que almacena la definicioacuten de cada materia con base en los criterios utilizados por

las reglas para definir por materia el nuacutemero de grupos por abrir

Lista de columnas de la tabla HISTORIAL_MATERIANombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materia para suasignacioacuten de criterios

Id_criterio INTEGER 4 X Identificador del criterio que se aplicaa la materia para describirla

Prioridad SMALLINT 4 Peso del criterio en la materia

Tabla HORARIOS

Funcioacuten Almacena los datos del condensado final de horarios aquiacute se almacena el producto finaldel sistema para su posterior publicacioacuten y distribucioacuten entre la comunidad tecnoloacutegica

Lista de columnas de la tabla HORARIOSNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materiaGrupo Text(2) 2 Identificador del grupo A B CId_catedratico SMALLINT 4 X Catedraacutetico asignado al grupoId_aula INTEGER 4 X Aula asignada al grupoHora_inicio INTEGER 4 Hora de inicio del grupoHora_lunes Text(6) 6 Horas que se imparte el grupo el diacutea

lunes

Capiacutetulo 4 Anaacutelisis y Disentildeo

Hora_martes Text(6) 6Hora_miercoles Text(6) 6Hora_jueves Text(6) 6Hora_viernes Text(6) 6Hora_sabado Text(6) 6Observaciones Text(30) 30 Observaciones al grupoPeriodo Text(20) 20 Periodo Ene-jun o Ago-dicAnio INTEGER 4 Antildeo en que se utiliza el horario

Tabla HORARIO_AULAFuncioacuten Tabla auxiliar utilizada como almacenamiento temporal durante el proceso de evaluacioacuten

en el Algoritmo Geneacutetico guarda los datos de ocupacioacuten choques y no utilizacioacuten decada aula por hora diacutea y versioacuten

Lista de columnas de la tabla HORARIO_AULANombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Version INTEGER 4 X Nuacutemero de individuo o versioacutenAula Text(6) 6 Nombre del aulaLunes SMALLINT 4 Nuacutemero de horas que se utiliza el aula

el diacutea lunesMartes SMALLINT 4Miercoles SMALLINT 4Jueves SMALLINT 4Viernes SMALLINT 4Sabado SMALLINT 4Hora SMALLINT 4 Hora de utilizacioacuten del aulaId_aula INTEGER 4 X Identificador del aula en la versioacuten

Tabla MATERIASFuncioacuten Esta es una de las principales tablas del proyecto se utiliza en todos los moacutedulos del

sistema contiene informacioacuten base para caacutelculos diversos ademaacutes contiene tambieacuten lasllaves de diferentes tablas que describen de manera de manera especial a las materias

Lista de columnas de la tabla MATERIASNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia COUNTER 4 X Identificacioacuten de la materia llaveprincipal

Materia Text(40) 40 Nombre de la materiaNum de Hrs prac SMALLINT 4 Nuacutemero de horas praacutecticasNum de Hrs teo SMALLINT 4 Nuacutemero de horas teoacutericasClave de Asig Text(8) 8 Clave oficial de la materiaId_Carrera Text(15) 15 X Carrera a la que pertenece la materiaCreditos SMALLINT 4 Creacuteditos de la materia

Capiacutetulo 4 Anaacutelisis y Disentildeo

Semestre SMALLINT 4 Semestre en que se imparte la materiaObservaciones Text(60) 60Tronco comun YesNo 1 Definicioacuten de especialidad o tronco

comuacutenalumnos porgrupo

SMALLINT 4 Capacidad sugerida de los grupos deesta materia

clave de asigprerequisito

Text(40) 40 Clave de asignatura del prerrequisito

clave de asigprerequisito1

Text(40) 40 Clave de asignatura del prerrequisito

Id_rama INTEGER 4 X Identificador de la rama a la quepertenece la materia

Suma_mat SMALLINT 4 Suma total de los perfilespertenecientes a la materia

Orden SMALLINT 4 Es el nuacutemero de materia en un paqueteTipo_horario INTEGER 4 X El tipo de horario asignado a materia

Tabla MAT_PARA_PROFFuncioacuten La tabla almacena para cada catedraacutetico las asignaturas que puede impartir y el grado

de certeza con que puede hacerlo se almacena en esta tabla el resultado de la inferenciadel Sistema Experto

Lista de columnas de la tabla MAT_PARA_PROFNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_catedratico SMALLINT 4 X Nuacutemero de tarjeta del profesorId_materia INTEGER 4 X Identificador de la materiaPorcentaje_mat SMALLINT 4 Porcentaje de certeza con que un

profesor puede impartir una materia

Tabla PERFILESFuncioacuten Tabla que contiene una relacioacuten de todas las caracteriacutesticas de las materias

caracteriacutesticas necesarias para poder impartirlas es al mismo tiempo la tabla quecontiene la relacioacuten general de los conocimientos que poseen los profesores

Lista de columnas de la tabla PERFILESNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_perfil COUNTER 4 X Identificador del perfil paraasignaciones de materias acatedraacuteticos

Id_tipo INTEGER 4 X Identificador del tipo del perfilDescripcion_perfil Text(60) 60 Descripcioacuten de una caracteriacutestica del

perfil de una materia o un catedraacutetico

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla PERFIL_CATEDRATICOFuncioacuten Tabla que contiene el perfil de todos los catedraacuteticos (pueden llamarse las reglas) del

Sistema Experto que recomienda profesores para las materias el perfil de un catedraacuteticoesta definido por los conceptos que domina de las materias

Lista de columnas de la tabla PERFIL_CATEDRATICONombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_catedratico SMALLINT 4 X Identificador del catedraacutetico paradefinicioacuten de su perfil acadeacutemico

Id_perfil INTEGER 4 X Identificador del perfil que define aun catedraacutetico

Prioridad_perfil_cate SMALLINT 4 Porcentaje en que contribuye elperfil especificado en la definicioacutendel catedraacutetico

Tabla PERFIL_MATERIAFuncioacuten Esta tabla almacena las reglas que definen el perfil de una materia contiene las

caracteriacutesticas y temas que forman el temario de la materia

Lista de columnas de la tabla PERFIL_MATERIANombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materia en laregla de la materia

Id_perfil INTEGER 4 X Identificador del perfilperteneciente a una materia

Prioridad_perfil_mat INTEGER 4 Porcentaje en que contribuye esteperfil particular a definir unamateria

Tabla PROF_PARA_MATFuncioacuten Esta tabla almacena la inferencia del Sistema Experto para determinar cuales son los

mejores profesores para impartir una materia contiene para cada asignatura una lista delos profesores y el porcentaje de certeza con que pueden desempentildearse si la imparten

Capiacutetulo 4 Anaacutelisis y Disentildeo

Lista de columnas de la tabla PROF_PARA_MATNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de materiaId_catedratico SMALLINT 4 X Identificador de catedraacuteticoPorcentaje_cate SMALLINT 4 de certeza con que el catedraacutetico X

puede impartir la materia Y

Tabla POBLACIONFuncioacuten La tabla es la maacutes importante para el moacutedulo de Algoritmo Geneacutetico porque almacena los

datos de cada individuo hipoacutetesis o versioacuten que son generados ya sea por la poblacioacuteninicial aleatoria o por los diversos operadores geneacuteticos contiene copias (versiones) delcondensado de horarios con aulas aleatorias

Lista de columnas de la tabla POBLACIONNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materiaGrupo Text(4) 4 Grupo de la materiaId_catedratico INTEGER 4 X Identificador del catedraticoAula Text(4) 4 X Nombre del aula (edificio + numero)Hora_inicio INTEGER 4 Hora de inicio del grupoHora_lunes Text(6) 6 Hora inicio del lunesHora_martes Text(6) 6Hora_miercoles Text(6) 6Hora_jueves Text(6) 6Hora_viernes Text(6) 6Version INTEGER 4 X Nuacutemero de la versioacuten o hipoacutetesisPeriodo Text(10) 10 Periodo o semestre del grupoAnio INTEGER 4 Antildeo del grupo

Tabla RAMA_MATERIAFuncioacuten La tabla almacena la clasificacioacuten de las materias de acuerdo a las ciencias a la que

pertenecen

Lista de columnas de la tabla RAMA_MATERIANombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_rama COUNTER 4 X Identificador de la rama de unamateria (clasificacioacuten)

Nombre_rama Text(30) 30 Descripcioacuten de la rama de unamateria

Capiacutetulo 4 Anaacutelisis y Disentildeo

Tabla REGLAS

Funcioacuten Esta tabla almacena las reglas utilizadas para generar los grupos que se deben ofertar elproacuteximo semestre indicando para cada regla el tipo de ajuste que debe aplicarse

Lista de Columnas de la Tabla REGLASNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Descripcion Text(70) 70 Descripcioacuten de la regla para ajustarel nuacutemero de grupos

Id_regla COUNTER 4 X Identificador de la reglaId_ajuste INTEGER 4 X Identificador del tipo de ajuste que

se aplica cuando esta regla sedispara para alguna materia

Tot_peso INTEGER 4 Total de los pesos de lascaracteriacutesticas de esta regla

Tabla SERVICIOS_ESCOLARESFuncioacuten En esta tabla se almacenan los datos estadiacutesticos de cada materia que provienen de

Servicios Escolares para el caacutelculo del nuacutemero de grupos que deben abrirse para elproacuteximo semestre contiene tambieacuten los paraacutemetros proporcionados por el SistemaExperto para realizar el ajuste al nuacutemero de grupos calculado inicialmente

Lista de columnas de la tabla SERVICIOS_ESCOLARESNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_materia INTEGER 4 X Identificador de la materiaINSCRITOS SMALLINT 4 Nuacutemero de alumnos inscritos

actualmente en el grupoNO INSCRITOS SMALLINT 4 Nuacutemero de alumnos que pueden

cursar la materia pero no seinscribieron

SIMULACION SMALLINT 4 Simulacioacuten de Servicios Escolaresde alumnos que podraacuten cursar lamateria

PROXIMOSEMESTRE

SMALLINT 4 Resultado del calculo de ServEscolares de alumnos que cursaraacutenla materia

GRUPOSREQUERIDOS

DOUBLE 4 Grupos requeridos para abrirproacuteximo semestre seguacuten caacutelculosiniciales

Indice dereprobacion

DOUBLE 4 Indice de reprobacioacuten de la materia

periodo Text(7) 7 Periodo de caacutelculo de horarios actual(semestre ene-jun o ago-dic)

Capiacutetulo 4 Anaacutelisis y Disentildeo

antildeo INTEGER 4 Antildeo de caacutelculo de horariosGrupos ajustado SMALLINT 4 Nuacutemero de grupos a solicitar para

abrir proacuteximo semestreAlumnos ajustado SMALLINT 4 Caacutelculo final del numero de alumnos

del proacuteximo semestre en estamateria

Id_ajuste INTEGER 4 X Tipo del ajuste aplicado por elSistema Experto al campogrupos_requeridos

Id_regla SMALLINT 4 X Regla que se disparo para realizar elajuste

Tabla TIPO_HORARIOFuncioacuten Esta tabla almacena los formatos de los distintos tipos de horario que existen y se ofrecen

para cada materia horarios de 2345 diacuteas a la semana y de 123 o 4 horas por diacutea

Lista de columnas de la tabla TIPO_HORARIONombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Tipo_horario COUNTER 4 X Identificador del tipo de horarioDescripcion Text(20) 20 Descripcioacuten del tipo de horarioLunes SMALLINT 4 Nuacutemero de horas del lunesMartes SMALLINT 4 Nuacutemero de horas del martesMiercoles SMALLINT 4 Nuacutemero de horas del mieacutercolesJueves SMALLINT 4 Nuacutemero de horas del juevesViernes SMALLINT 4 Nuacutemero de horas del viernesSabado SMALLINT 4 Nuacutemero de horas del saacutebado

Tabla TIPO_PERFILFuncioacuten Aquiacute se almacena una clasificacioacuten de los perfiles de acuerdo a la rama de conocimiento

a la que pertenecen

Lista de columnas de la tabla TIPO_PERFILNombre Tipo de

DatoLong Llave

Primaria ForaacuteneaComentario

Id_tipo COUNTER 4 X Identificador del tipo de perfilTipo_perfil Text(30) 30 Descripcioacuten del tipo de perfil de los

catedraacuteticos o las materias

Capiacutetulo 4 Anaacutelisis y Disentildeo

456 Lista de funciones o programas

Nombre Programa Descripcioacuten del programa

Ajustes Datos generales de los tipos de ajustes que se aplican al nuacutemero degrupos por abrir al dato de Servicios Escolares

Aulas Captura los datos de las aulas disponibles para claseCaptura_horarios Este programa realiza los cambios posteriores a la generacioacutenCarreras Captura los datos de las carreras del tecnoloacutegicoCatedraticos Datos generales de los catedraacuteticosClonacion Obtiene una copia (clon) del mejor individuo de una generacioacutenCons_ajuste Muestra yo imprime los datos generales de los ajustesCons_aulas Emite una pantalla de consulta general de aulasCons_captura_horarios Muestra una pantalla de consulta de los horarios generadosCons_carrera Despliega yo imprime las carrerasCons_catedratico Muestraimprime los datos generales de los catedraacuteticosCons_criterio Formulario que muestra yo despliega los criterios generalesCons_critXmat Muestra yo imprime los criterios de una materiaCons_critXregla Despliegaimprime los criterios que forman una reglaCons_gpos_abrir Explicacioacuten de la inferencia realizada (reglas disparadas)Cons_hist_crit Muestra las reglas de produccioacuten de los criteriosCons_materia Pantalla que despliega yo imprime datos de las materiasCons_materia_gral Pantalla de consulta general de los datos de materiasCons_perf_cate Consultaimprime los datos del perfil acadeacutemico de los

catedraacuteticosCons_perf_mate Consultaimprime los datos del perfil acadeacutemico de las materiasCons_perfil Muestraimprime datos de los perfilesCons_perfiles Consulta a la lista de perfiles o caracteriacutesticas Cons_perfilxmat Consulta a las reglas de produccioacuten del perfil de una materiaCons_rama Consulta a la lista de ramas (clasificacioacuten de las materias)Cons_reglas Consulta a la base de reglas para ajustar nuacutemero de gruposCons_serv_esc Consulta a las tablas que tienen informacioacuten de Servicios

EscolaresCons_serv_escol Pantalla que muestra yo imprime los datos estadiacutesticos de Serv

EscCons_tipo_perfil Consulta a los tipos de perfil (clasificacioacuten de perfiles)Crit_X_mat Formulario que captura los criterios pertenecientes a una materiaCrit_X_regla Captura los criterios que forman una regla de produccioacutenCriterios Pantalla que captura el conocimiento de criterios para el SECriteriosxmat Pantalla de captura para los criterios por materiaCruzamiento Programa que realiza la combinacioacuten (cruza) de individuos de la

poblacioacuten en el Algoritmo Geneacutetico

Capiacutetulo 4 Anaacutelisis y Disentildeo

Evaluacion Programa que realiza la creacioacuten del cromosoma de evaluacioacuten alevaluar las versiones de horarios de una generacioacuten

Explica_ajustes Moacutedulo de explicacioacuten del porque se aplicoacute determinado ajuste auna materia

Explica_mat_p_prof Explicacioacuten del porque una materia puede ser impartida por unprofesor con cierto grado de certidumbre

Explica_prof_p_mat Explicacion del porque un profesor puede impartir una materiacon cierto grado de certidumbre

Genera_horarios Sistema que utiliza Programacioacuten Loacutegica de Restricciones paragenerar los paquetes de horarios de un semestre

Genera_paquete Muestra el paquete generado por el procesoGrupo_nuevo Programa que va generando los paquetesGrupos_por_abrir Inferencia realizada para definir el ajuste aplicado a los grupos

definidos por Servicios EscolaresHistorial_criterios Captura los criterios necesarios para hacer una reglaHistorial_materia Captara los criterios por materiaMat_para_prof Inferencia realizada para determinar que profesores pueden

impartir una materiaMaterias Actualizacioacuten al archivo datos generales de las materiasMenu_algoritmos_geneticos Menuacute del moacutedulo para asignar aula a los gruposMenu_generacion_grupos Menuacute del Sistema Experto para definir cuantos grupos abrirMenu_asigna_horario Menuacute del moacutedulo asignacioacuten de horarioMenu_principal Menuacute principal del sistemaMenu_sel_catedra Menuacute del Sistema Experto para seleccioacuten de catedraacuteticos a

materiaMutacion Programa que hace la modificacioacuten de informacioacuten de aulas de

alguna versioacuten (versioacuten)Perfil_catedratico Captura el perfil acadeacutemico de los catedraacuteticosPerfil_materia Captura el perfil acadeacutemico de las materiasPerfiles Datos generales del perfil acadeacutemico de materias y catedraacuteticosPoblacion_inicial Programa que genera versiones de horarios y que de manera

aleatoria le va asignando aula a los gruposPortada_principal Es la ventana de entrada al sistemaProf_para_mat Inferencia realizada para determinar que materias pueden ser

impartidas por un profesorRama Programa que capturas las posibles ramas de los materiasReglas Datos generales de las reglas de produccioacuten para definir el No de

grupos por abrirSeleccioacuten Proceso que selecciona las mejores versiones de horarios (mejores

individuos) y elimina las menos aptasServ_escolares Pantalla de captura de los datos estadiacutesticos de Servicios EscolaresTipo_perfil Programa que captura la clasificacioacuten de los perfiles de materias y

profesores

Capiacutetulo 4 Anaacutelisis y Disentildeo

457 Diagrama de Arquitectura (Menuacutes)

Menuacute general

Menuacute Grupos porabrir

MenuacuteGeneracioacuten de

horarios

MenuacuteAsignacioacuten de

aulas

Datos de materias

Estadiacutesticos Serv Esc

Criterios

Criterios por materia

Reglas

Criterios por regla

Ajustes

Carreras

Nuacutemero de grupos

MenuacuteSeleccioacuten decatedraacuteticos

Genera paquete

Genera horarios

Datos generalesgrupos

Datos de aulas

Genera poblacioacuteninicial

Evaluacioacuten

Seleccioacuten

Cruzamiento

Clonacioacuten

Mutacioacuten

Horarios finales

Perfiles

Perfil de las materias

Perfil de catedraacuteticos

Catedraacuteticos

Perfil de loscatedraacuteticos

Asignacioacuten materia aprofesor

Asignacioacuten profesor amateria

Capiacutetulo 4 Anaacutelisis y Disentildeo

Capiacutetulo 5 Implementacioacuten del sistema

CAPIacuteTULO 5

IMPLEMENTACIOacuteN

51 Pantallas del sistema

La Figura 51 muestra la portada inicial del proyecto Contiene los logotipos de las tresinstituciones participantes y el nombre del proyecto

Fig 51 Portada inicial del proyecto

La Figura 52 es la pantalla que proporciona la informacioacuten de los autores del proyecto

Es el botoacutende entrada alsistema

Botoacuten deinformacioacuten delos autores

Capiacutetulo 5 Implementacioacuten del sistema

Fig 52 Acerca del sistema

La Figura 53 muestra el menuacute principal del proyecto contiene y 4 moacutedulos La primeraopcioacuten incluye los moacutedulos administrativo y generacioacuten de grupos la segunda opcioacutenincluye seleccioacuten de maestro y seleccioacuten de materia

Fig 53 Menuacute principal del proyecto

Moacutedulos delproyecto

Cuadro queproporcionalainformacioacutende la opcioacutensentildealada porel cursor

Capiacutetulo 5 Implementacioacuten del sistema

En la Figura 54 se tiene la pantalla del menuacute que agrupa los programas del moacuteduloadministrativo y Sistema Experto para determinar el nuacutemero de grupos por abrir seguacutenlos caacutelculos realizados con los datos de Servicios Escolares y el ajuste a ese dato

Fig 54 Menuacute grupos por abrir

Este programa del moacutedulo administrativo (Figura 55) sirve para capturar la informacioacutengeneral de las asignaturas que componen una carrera

Fig 55 Materias

Programas delos moacutedulos

Descripcioacutende laactividad delprogramaseleccionado

Nombre de laasignatura

Nuacutemero dehoraspraacutecticas yteoacutericas

Alumnos por grupopara calcularcantidad de grupos

Dato para formarpaquetes porsemestre

Icono quehabilita lacaptura denuevosdatos

Icono queregresa alMenuacute anterior

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 56 es un ejemplo de la consulta de datos en pantalla

Fig 56 Consulta Materias

La Figura 57 es la pantalla donde se capturan los datos estadiacutesticos provenientes deServicios Escolares contiene la informacioacuten necesaria para realizar el caacutelculo originaldel nuacutemero de grupos de cada asignatura que se debe abrir para ofertarse a los alumnosel siguiente semestre la foacutermula mostrada proporciona tal dato

Botoacuten queregresa elcontrol alprogramaque loinvocoacute

Alumnosesperados parael proacuteximo

Fccg

Datosestadiacutesticos

Fig 57 Pantalla Servicios Es

semestre

oacutermula paraaacutelculoantidad-rupos

Caacutelculosgeneral y pormateria

Grupos (datoestadiacutestico)

colares

Capiacutetulo 5 Implementacioacuten del sistema

En la Figura 58 se muestra la pantalla de consulta de los datos estadiacutesticosproporcionados por Servicios Escolares

Fig 58 Pantalla consulta Servicios Escolares

Esta pantalla captura las caracteriacutesticas por materia que dan origen al conocimientonecesario para definir el tipo de ajuste que se aplica al dato del nuacutemero de gruposproporcionado por los caacutelculos estadiacutesticos de la pantalla anterior

Criterios de unamateria

Fig 59 Pantalla criterios por materia

Grado deimportancia de esacaracteriacutestica para la

Capiacutetulo 5 Implementacioacuten del sistema

En la Figura 510 se muestra un ejemplo de la consulta a la base de datos del sistema enla parte de criterios por materia

Fig 510 Pantalla consulta criterios por materia

Esta pantalla (fig 511) proporciona al sistema la capacidad de capturar modificarborrar e imprimir las carreras del Instituto Tecnoloacutegico de Zacatepec

Fig 511 Pantalla carreras

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 512 proporciona al sistema la capacidad para capturar los criterios(conocimientos) del experto para definir a cada materia

Fig 512 Pantalla criterios

La Figura 513 muestra un ejemplo de consulta al archivo de los criterios capturados enel sistema

Fig 513 Pantalla consulta criterios

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 514 muestra la pantalla de captura de las reglas que componen el SistemaExperto para determinar el tipo de ajuste que se aplicaraacute al dato estadiacutestico del nuacutemerode grupos que se van a abrir el proacuteximo semestre cada regla tiene asignado un tipo deajuste

Fig 514 Pantalla reglas

La Figura 515 muestra un ejemplo de la consulta al archivo de las reglas que utiliza elSistema Experto para determinar nuacutemero de grupos por ofertar el proacuteximo semestre

Fig 515 Pantalla consulta reglas

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 516 muestra la pantalla de captura al archivo de ajustes noacutetese que ladescripcioacuten explica en extenso la accioacuten que se realiza al aplicar este ajuste provenientede una regla disparada por los criterios pertenecientes a la definicioacuten de una materia

Fig 516 Pantalla ajustes

La Figura 517 muestra la pantalla de la consulta a los ajustes que contiene el sistema

Fig 517 Pantalla consulta ajustes

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 518 muestra la pantalla que captura los criterios para cada regla Una reglaestaacute formada por el mismo tipo de criterios que definen a las materias

Criteriosde una

Fig 518 Pantalla criterios por regla

La Figura 519 muestra el ejemplo de una consulta de los criterios que definen a unaregla

Fig 519 Pantalla consulta criterios por regla

Reglas de produccioacuten Criterios por regla

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 520 es la pantalla maacutes importante de moacutedulo de generacioacuten de grupos porquees donde se realiza la inferencia para calcular el tipo de ajuste que se va a aplicar a cadamateria con base en las reglas que se disparan y que hacen match los criterios de unaregla y los criterios de una materia

Fig 520 Pantalla caacutelculo de ajustes

Esta pantalla (Figura 521) ofrece una explicacioacuten mostrando los criterios que definenuna materia y su correspondiente regla disparada mostrando los criterios de la regla quehacen match con los criterios de la materia

Fig 521 Pantalla explicacioacuten de la inferencia

Asignaturaa la que sele aplicaraacuteel ajuste

Regla quese disparaseguacutencriterios

Tipo deajuste quese aplica

Dato seguacutenestadiacutestico

Datos seguacutenajuste delSistemaExperto

Inferenciageneral

Inferenciaindividual

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 522 muestra el formulario que forma los paquetes de materias seguacuten laretiacutecula de una carrera muestra el nuacutemero de grupos por cada materia que se van aformar y hace los paquetes asignando los grupos AA AB AC AD

Fig 522 Pantalla inicial del moacutedulo generacioacuten de horarios

La Figura 523 es el formulario del moacutedulo Programacioacuten Loacutegica de Regenera los horarios por paquete satisfaciendo las restricciones para forlibre de choques continuo (sin horas muertas) cumpliendo las horas por m

Fig 523 Pantalla principal del moacutedulo generacioacuten de horari

Semestre al que sele formaraacuten lospaquetes

Paquetes generadosHora de iniciode clases decada grupo

Materias delsemestre

Nuacutemero de gruposal que se lesgeneraraacute horario

MateriaPaquete

Nuacutemero dehoras por diacutea

Botonesque invocanal moacutedulogeneradorde horarios

stricciones quemar un horarioateria etc

Hora de iniciode la materia

os

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 524 muestra el moacutedulo para asignar aula a los horarios que ya tienen materiagrupo y hora

Fig 524 Pantalla principal del menuacute Algoritmos Geneacuteticos

Esta pantalla (Figura 525) se utiliza para hacer altas bajas consulta y modificaciones alos grupos que se les va a dar aula

Fig 525 Pantalla de administracioacuten de grupos

Periodode loshorarios

Hora iniciodel grupo

Hora por diacutea

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 526 muestra una consulta de la pantalla administracioacuten de grupos

Fig 526 Pantalla de consulta de administracioacuten de grupos

La Figura 527 muestra la pantalla para actualizar las aulas disponibles por las personasque generan los horarios estas aulas estaacuten disponibles para que el Algoritmo Geneacuteticolas utilice para asignarles grupos durante el proceso

Fig 527 Pantalla del control de aulas

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 528 muestra la consulta de las aulas que utiliza el moacutedulo generacioacuten deaulas

Fig 528 Pantalla de consultas del control de aulas

La Figura 529 muestra la pantalla que genera la poblacioacuten inicial a partir de los datosgenerales proveniente de los moacutedulos anteriores

Fig 529 Pantalla de genera poblacioacuten inicial

Nuacutemero dehipoacutetesisversiones oindividuos

Aula aleatoriagenerada

Este botoacuteninicia lageneracioacutende las nversionesde horarios

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 530 muestra la pantalla que evaluacutea las versiones originadas y genera paracada una de ellas un cromosoma cuyos genes contienen la informacioacuten obtenida

Fig 530 Pantalla de evaluacioacuten de versiones

La Figura 531 muestra el formulario del proceso de seleccioacuten de las mejores versionesde horarios toma aquellas que tienen menor numero de choques y mayor espacio deocupacioacuten de aulas

Fig 531 Pantalla del proceso de seleccioacuten

Cantidad deversiones quesobreviviraacuten

Cromosomas delos mejoresindividuos

Botoacuten queinicia elproceso deseleccioacuten

Botoacuten queinicia elproceso deeliminacioacuten

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 532 muestra la pantalla del proceso de clonacioacuten donde se selecciona la mejorversioacuten y se obtiene un clon ideacutentico con un nuevo nuacutemero de versioacuten

Fig 532 Pantalla del proceso de clonacioacuten

La Figura 533 muestra la pantalla del proceso de mutacioacuten utilizado para hacer elcambio ldquomutarrdquo los datos de una versioacuten para romper alguacuten ciclado de la tendencia haciael resultado o simplemente para acelerar el proceso de optimizacioacuten

Cromosomasde versionesmaacutes aptas

Nuacutemero demejor versioacuten

Poblacioacutenversiones

Cromosomamuestra lasmejoresversiones

Aulas quepueden mutarse

Botoacuten queinicia elproceso demutacioacuten

Nuacutemero deversioacuten

Fig 533 Pantalla de mutacioacuten

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 534 muestra la pantalla donde se realiza el cruzamiento utilizando plantillaspredeterminadas dirigiendo la cruza de versiones por paquetes de materias agrupadas porsemestre y cada plantilla genera una nueva versioacuten con la combinacioacuten de fragmentosde varias versiones

Fig 534 Pantalla del proceso de cruzamiento

La Figura 535 permite la seleccioacuten y enviacuteo de la mejor versioacuten de horarios y adaptarloal moacutedulo administrativo para su distribucioacuten y publicacioacuten

Fig 535 Horarios finales

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 536 muestra el menuacute de los moacutedulos que sugiere maestros para impartir unaasignatura y sugerencia de asignatura para alguacuten maestro

Fig 536 Pantalla menuacute seleccioacuten de catedraacuteticos

La Figura 537 muestra la pantalla para la captura de caracteriacutesticas de losconocimientos requeridos para dar una materia que son las mismas caracteriacutesticas quedefinen los conocimientos de un profesor para impartir las materias

Fig 537 Pantalla de perfiles

Clasificacioacutende los perfiles

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 538 muestra una consulta de los perfiles agrupados por tipo

Fig 538 Pantalla de consulta perfiles

La Figura 539 muestra la pantalla en la que se definen los conocimientos requeridospara poder impartir una asignatura de acuerdo al perfil y contenido temaacutetico

Fig 539 Pantalla perfiles de las materias

La Figura 540 muestra un ejemplo de la consulta al perfil de una materia

Importancia de lacaracteriacutestica en la materia

Capiacutetulo 5 Implementacioacuten del sistema

Fig 540 Pantalla consulta perfiles de las materias

La Figura 541 es utilizada para capturar los datos de los catedraacuteticos que imparten lasasignaturas de una carrera

Fig 541 Pantalla captura datos de catedraacuteticos

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 542 es una muestra de la consulta al archivo de los catedraacuteticos

Fig 542 Pantalla consulta datos de catedraacuteticos

La Figura 543 muestra la pantalla en que se captura el perfil de los catedraacuteticos elperfil son los conocimientos que tiene el profesor que lo capacitan para impartir algunaasignatura

Fig 543 Pantalla captura perfil de catedraacuteticos

Conocimientosdel profesor

Barra deseleccioacuten deperfiles

Grado dedominio deltema

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 544 muestra una consulta tiacutepica al archivo de perfiles de los catedraacuteticos

Fig 544 Pantalla consulta perfil de catedraacuteticos

La Figura 545 muestra la pantalla de inferencia final que sugiere quienes son loscatedraacuteticos maacutes capacitados para impartir una materia haciendo la inferencia mediantela buacutesqueda de matchs entre el perfil de la asignatura y el perfil del catedraacutetico

Fig 545 Pantalla muestra inferencia catedraacuteticos para materia

Candidatos aimpartir lamateria

Botoacuten del proceso deinferencia generalPorcentaje de certeza con

que puede impartirla

Botoacuten delprocesodeinferenciaparticular

Botoacuten queinvoca almoacutedulo deexplicacioacuten

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 546 muestra la pantalla de explicacioacuten donde se indican los perfiles de lamateria y el perfil del profesor

Fig 546 Pantalla explicacioacuten porque un maestro puede dar una materia

La Figura 547 muestra el resultado de la inferencia del proceso que sugiere las materiasque puede impartir un profesor con base en el perfil de la materia y el perfil del profesor

Fig 547 Pantalla materias que puede impartir un profesor

Posibles materia aimpartir Porcentaje de certeza con

que puede impartirlaBotoacuten del proceso deinferencia general

Botoacuten delprocesodeinferenciaparticular

Botoacuten queinvoca almoacutedulo deexplicacioacuten

Capiacutetulo 5 Implementacioacuten del sistema

La Figura 548 muestra la pantalla de explicacioacuten donde se indican el perfil de la materiay el perfil del profesor

Fig 548 Pantalla de explicacioacuten porque un profesor puede dar una materia

Capiacutetulo 5 Implementacioacuten del sistema

Capiacutetulo 6 Pruebas y Resultados

CAPIacuteTULO 6

PRUEBAS Y RESULTADOS

61 Pruebas del sistema

Se pueden detectar dentro del desarrollo de sistemas las actividades para realizarpruebas las producidas durante la etapa de requerimientos de disentildeo preliminar y las dedisentildeo detallado Clasificadas de otra manera eacutestas pueden ser funcionales deintegracioacuten y de implementacioacuten

La finalidad de realizar Pruebas funcionales es detectar errores que pudieran habersedado durante las fases de anaacutelisis y de especificacioacuten Por otro lado ellas pueden ayudara probar si el disentildeo es correcto ya que esta fase en sus dos niveles preliminar ydetallado estaacute basada en el anaacutelisis y especificacioacuten de requerimientos del sistema Estaactividad es guiada por los objetivos y requerimientos plasmados Se busca en estaprueba la posibilidad de que se haya incurrido en errores de conceptualizacioacuten yo deespecificacioacuten Las pruebas se organizan tomando como guiacutea las diferentes opciones delsistema final

Las Pruebas de integracioacuten se realizan cuando se procede a interconectar los diferentessubsistemas que constituyen el futuro sistema Como es conocido un sistema puede serdesarrollado por diferentes personas Por esta razoacuten es de suma importancia probar lainterconexioacuten de los diferentes subsistemas y asiacute verificar que ha sido realizada demanera correcta

Las Pruebas de implementacioacuten o codificacioacuten son las que se realizan directamentesobre los programas que se estaacuten desarrollando durante la fase de implementacioacuten Estosmoacutedulos o programas a su vez constituyen subsistemas Por esta razoacuten la integracioacuten delos diferentes moacutedulos que forman un subsistema deben ser probados Estas pruebasdeben estar basadas en la especificacioacuten de disentildeo preliminar y detallado [Gerez 1985]

Los siguientes rubros describen las pruebas maacutes importantes que se consideraron paravalidar el sistema las pruebas funcionales Las pruebas de implementacioacuten se realizarondurante el desarrollo de la codificacioacuten de los diferentes moacutedulos

Capiacutetulo 6 Pruebas y Resultados

62 PRUEBAS DEL SISTEMA

621 PRUEBA 1 AacuteREAS DE MENUacuteS

Objetivo Guiar al usuario en el desarrollo del proceso Esta prueba verifica que elsistema tenga como opciones principales y submenuacutes los sentildealados en la definicioacuten derequerimientos

Criterios de aceptacioacuten Cada prueba verifica que el sistema produzca los resultadossentildealados en la definicioacuten de requerimientos

Procedimiento de la prueba A continuacioacuten se despliegan las pantallascorrespondientes a los menuacutes principales y submenuacutes Las opciones principales delproyecto son dos Menu Principal y Datos de los autores

Resultado de la prueba Los resultados fueron satisfactorios En todas las opcionesactivadas el sistema presentoacute los submenuacutes definidos en la etapa de requerimientos

La Figura 61 muestra la portada inicial del proyecto Contiene los logotipos de las tresinstituciones participantes y el nombre del proyecto

Fig 61 Portada inicial del proyecto

Es el botoacutende entrada alsistema

Botoacuten deinformacioacutende los autores

Capiacutetulo 6 Pruebas y Resultados

La Figura 62 muestra el menuacute principal del proyecto y contiene 4 moacutedulos La primeraopcioacuten incluye los moacutedulos administrativo y generacioacuten de grupos la segunda opcioacutenincluye seleccioacuten de maestro y seleccioacuten de materia

Fig 62 Menuacute principal del proyecto

En la Figura 63 se tiene la pantalla del menuacute que agrupa los programas del moacuteduloadministrativo y Sistema Experto para determinar el nuacutemero de grupos por abrir seguacutenlos caacutelculos realizados con los datos de Servicios Escolares y el ajuste a ese dato

Fig 63 Menuacute grupos por abrir

Moacutedulos delproyecto

Cuadro queproporcionalainformacioacutende la opcioacutensentildealada porel cursor

Programas delos moacutedulos

Descripcioacutende laactividad delprogramaseleccionado

Capiacutetulo 6 Pruebas y Resultados

La Figura 64 muestra el menuacute de los moacutedulos que sugiere maestros para impartir unaasignatura y sugerencia de asignatura para alguacuten maestro

Fig 64 Pantalla menuacute seleccioacuten de catedraacuteticos

La Figura 65 muestra el moacutedulo para asignar aula a los horarios que ya tienen materiagrupo y hora

Fig 65 Pantalla principal del menuacute Algoritmos Geneacuteticos

Capiacutetulo 6 Pruebas y Resultados

622 PRUEBA 2 VALIDACIOacuteN DE ENTRADAS

Objetivo Evitar peacuterdidas de tiempo con entradas erroacuteneas de datos y resultados sinvalidez

Criterios de aceptacioacuten Esta prueba deberaacute mostrar de manera exacta la informacioacutenal seleccionar la opcioacuten deseada

Procedimiento de la prueba Se verifica que todas las cajas de texto tengan el dato quese pide y una vez dados todos los datos se guardan para que estos datos posteriormentesean procesados por el sistema y almacenen los datos correctos

Resultado de la prueba Los resultados fueron satisfactorios En todas las opcionesactivadas el sistema presentoacute los resultados correctos a cada opcioacuten Ademaacutes losdesplegados de mensajes de error se presentaron de manera correcta en todas laspruebas

La Figura 66 muestra la captura de datos de una asignatura y enviacutea el correspondientemensaje de error si una caja de texto se encuentra vaciacutea

Fig 66 Pantalla de captura de datos de las Materias

Muestra elmensaje deerror si esque hacefalta alguacuten

Capiacutetulo 6 Pruebas y Resultados

La Figura 67 muestra una pantalla de captura de datos asignando criterios a una materiay valida la no duplicidad de criterios en esa materia se enviacutea el correspondiente mensajede error si una entrada ya fue capturada

Fig 67 Pantalla de captura de datos de Criterios por Materia

La Figura 68 muestra una pantalla de captura de datos de las carreras al encontrar unregistro ya capturado muestra el mensaje de error si una carrera ya fue capturada

Fig 68 Pantalla de captura de datos de Carreras

Muestra elmensajede error sies que yaexiste elregistro

Muestra elmensaje deerror si esque yaexiste elregistro

Capiacutetulo 6 Pruebas y Resultados

623 PRUEBA 3 DESPLEGADO DE RESULTADOS

6231 MOacuteDULO DE GENERACIOacuteN DE GRUPOS POR ABRIR

Objetivo Proporcionar los datos que el moacutedulo pide para que posteriormente elsistema genere el nuacutemero de grupos sugerido por abrir para cada materia

Criterios de aceptacioacuten Esta prueba muestra la lista de grupos que se deben abrirdespueacutes de aplicar los criterios del Sistema Experto

Procedimiento de la prueba Una vez que se proporcionan los datos que el SistemaExperto requiere el sistema generaraacute una lista de los grupos que se deben abrir elproacuteximo semestre

Resultado de la prueba Los resultados fueron satisfactorios En todos los casospresentados el sistema generoacute la lista en forma satisfactoria y con la informacioacutencorrecta

La Figura 69 es la pantalla maacutes importante de moacutedulo de generacioacuten de grupos porquees donde se realiza la inferencia para calcular el tipo de ajuste que se va a aplicar a cadamateria con base en las reglas que se disparan y que hacen match los criterios de unaregla y los criterios de una materia

Asignaturaa la que sele aplicaraacuteel ajuste

Regla quese disparaseguacutencriterios

Tipo deajuste quese aplica

Inferenciageneral

Datoseguacuten

Fig 69 Pantalla caacutelculo de ajustes

Datos seguacutenajuste delSistemaExperto

Inferenciaindividual

Capiacutetulo 6 Pruebas y Resultados

6232 MOacuteDULO DE GENERACIOacuteN DE HORARIOS

Objetivo Proporcionar los datos que el moacutedulo pide para que posteriormente elsistema genere el horario por semestre de las materias de una carrera

Criterios de aceptacioacuten Esta prueba debe mostrar los horarios para las materias sinerrores sin choques de hora en un paquete

Procedimiento de la prueba Recibe como entrada cuantos grupos abrir de cadamateria en cada semestre y genera primero los paquetes posteriormente a cada paquetede materias le asigna la hora por materia

Resultado de la prueba Los resultados fueron satisfactorios En todos los casospresentados el sistema generoacute los horarios correspondientes

La Figura 610 muestra el formulario que forma los paquetes de materias seguacuten laretiacutecula de una carrera muestra el nuacutemero de grupos por cada materia que se van aformar y hace los paquetes asignando los grupos AA AB AC AD

Fig 610 Pantalla inicial del moacutedulo generacioacuten de horarios

Semestre al que sele formaraacuten lospaquetes

Paquetes generadosHora de iniciode clases decada grupo

Materias delsemestre

Nuacutemero de grupospor al que se lesgeneraraacute horario

Botonesque invocanal moacutedulogeneradorde horarios

Capiacutetulo 6 Pruebas y Resultados

La Figura 611 es el formulario del moacutedulo Programacioacuten Loacutegica de Restricciones quegenera los horarios por paquete satisfaciendo las restricciones para formar un horariolibre de choques continuo (sin horas muertas) cumpliendo las horas por materia etc

Fig 611 Pantalla princip

6233 MOacuteDULO ASIGNACIOacuteN D

Objetivo Utilizar los datos generadoaulas a los paquetes de materias

Criterios de aceptacioacuten Esta pruebaasignacioacuten de aula sin choques

Procedimiento de la prueba Se genAlgoritmos Geneacuteticos durante variachoques en el aula

Resultado de la prueba Los resupresentados el sistema generoacute las aula

MateriaPaquete

Nuacutemero dehoras por diacutea

Hora de iniciode la materia

al del moacutedulo generacioacuten de horarios

E AULA

s en el moacutedulo anterior para hacer la asignacioacuten de

debe mostrar los horarios de las materias con una

eran las aulas utilizando los procedimientos de loss generaciones hasta lograr una generacioacuten sin

ltados fueron satisfactorios En todos los casoss correspondientes

Capiacutetulo 6 Pruebas y Resultados

La Figura 612 muestra la pantalla para actualizar las aulas disponibles por las personasque generan los horarios estas aulas estaacuten disponibles para que el Algoritmo Geneacuteticolas utilice para asignarles grupos durante el proceso

Fig 612 Pantalla del control de aulas

La Figura 613 muestra la consulta de las aulas que utiliza el moacutedulo generacioacuten deaulas

Fig 613 Pantalla de consultas del control de aulas

Capiacutetulo 6 Pruebas y Resultados

La Figura 614 muestra la pantalla que genera la poblacioacuten inicial a partir de los datosgenerales proveniente de los moacutedulos anteriores

Fig 614 Pantalla de genera poblacioacuten inicial

La Figura 615 muestra la pantalla que evaluacutea las versiones originadas y genera paracada una de ellas un cromosoma cuyos genes contienen la informacioacuten obtenida

Fig 615 Pantalla de evaluacioacuten de versiones

Nuacutemero dehipoacutetesisversiones oindividuos

Aula aleatoriagenerada

Este botoacuteninicia lageneracioacutende las nversionesde horarios

Capiacutetulo 6 Pruebas y Resultados

La Figura 616 muestra el formulario del proceso de seleccioacuten de las mejores versionesde horarios toma aquellas que tienen menor numero de choques y mayor espacio deocupacioacuten de aulas

Fig 616 Pantalla del proceso de seleccioacuten

La Figura 617 muestra la pantalla del proceso de clonacioacuten donde se selecciona la mejorversioacuten y se obtiene un clon ideacutentico con un nuevo nuacutemero de versioacuten

Fig 617 Pantalla del proceso de clonacioacuten

Cantidad deversiones quesobreviviraacuten

Cromosomas delos mejoresindividuos

Botoacuten queinicia elproceso deseleccioacuten

Botoacuten queinicia elproceso deeliminacioacuten

Cromosomasde versionesmaacutes aptas

Nuacutemero demejor versioacuten

Poblacioacutenversiones

Capiacutetulo 6 Pruebas y Resultados

La Figura 618 muestra la pantalla del proceso de mutacioacuten utilizado para hacer elcambio ldquomutarrdquo los datos de una versioacuten para romper alguacuten ciclado de la tendencia haciael resultado o simplemente para acelerar el proceso de optimizacioacuten

Fig 618 Pantalla de mutacioacuten

La Figura 619 muestra la pantalla donde se realiza el cruzamiento utilizando plantillaspredeterminadas dirigiendo la cruza de versiones por paquetes de materias agrupadas porsemestre y cada plantilla genera una nueva versioacuten con la combinacioacuten de fragmentosde varias versiones

Fig 619 Pantalla del proceso de cruzamiento

Cromosomamuestra lasmejoresversiones

Nuacutemero deversioacuten amutar

Aulas quepueden mutarse

Botoacuten queinicia elproceso demutacioacuten

Capiacutetulo 6 Pruebas y Resultados

La Figura 620 permite la seleccioacuten y enviacuteo de la mejor versioacuten de horarios y adaptarloal moacutedulo administrativo para su distribucioacuten y publicacioacuten

Fig 620 Horarios finales

6234 MOacuteDULO SELECCIOacuteN DE CATEDRATICOS

Objetivo Capturar los datos de los profesores y su perfil profesiograacutefico ademaacutescapturar los conocimientos necesarios para impartir una asignatura para poder sugerircual es el mejor catedraacutetico que puede impartir una asignatura

Criterios de aceptacioacuten Esta prueba debe mostrar la sugerencia de los mejorescatedraacuteticos para una materia y las mejores materias para un catedraacutetico

Procedimiento de la prueba Se daraacuten los datos iniciales de los maestros y el sistemadeberaacute generar una lista a partir de la inferencia del Sistema Experto respectivo yviceversa

Resultado de la prueba Los resultados fueron satisfactorios En todos los casospresentados el sistema infirioacute las materias y los catedraacuteticos correspondientes

Capiacutetulo 6 Pruebas y Resultados

La Figura 621 muestra la pantalla en que se captura el perfil de los catedraacuteticos elperfil son los conocimientos que tiene el profesor que lo capacitan para impartir algunaasignatura

Fig 621 Pantalla captura perfil de catedraacuteticos

La Figura 622 muestra la pantalla de inferencia final que sugiere quienes son loscatedraacuteticos maacutes capacitados para impartir una materia haciendo la inferencia mediantela buacutesqueda de matchs entre el perfil de la asignatura y el perfil del catedraacutetico

Fig 622 Pantalla muestra inferencia catedraacuteticos para materia

Conocimientosdel profesor

Barra deseleccioacuten deperfiles

Grado dedominio deltema

Botoacuten delprocesodeinferenciaparticular

Botoacuten queinvoca almoacutedulo deexplicacioacuten

Candidatos aimpartir lamateria Botoacuten del proceso de

inferencia generalPorcentaje de certeza conque puede impartirla

Capiacutetulo 6 Pruebas y Resultados

La Figura 623 muestra la pantalla de explicacioacuten donde se indican los perfiles de lamateria y el perfil del profesor

Fig 623 Pantalla explicacioacuten porque un maestro puede dar una materia

La Figura 624 muestra el resultado de la inferencia del proceso que sugiere las materiasque puede impartir un profesor con base en el perfil de la materia y el perfil del profesor

Fig 624 Pantalla materias que puede impartir un profesor

Posibles materia aimpartir Porcentaje de certeza con

que puede impartirlaBotoacuten del proceso deinferencia general

Botoacuten delprocesodeinferenciaparticular

Botoacuten queinvoca almoacutedulo deexplicacioacuten

Capiacutetulo 6 Pruebas y Resultados

La Figura 625 muestra la pantalla de explicacioacuten donde se indican el perfil de la materiay el perfil del profesor

Fig 625 Pantalla de explicacioacuten porque un profesor puede dar una materia

Capiacutetulo 6 Pruebas y Resultados

Capiacutetulo 7 Conclusiones y Trabajos Futuros

CAPIacuteTULO 7

CONCLUSIONES Y TRABAJOS FUTUROS

71 CONCLUSIONES

Los meacutetodos de programacioacuten lineal proporcionan una solucioacuten parcial al problema dela generacioacuten de horarios utilizan una ldquorecetardquo predefinida para lograr la optimizacioacutende la asignacioacuten de recursos como lo hace el meacutetodo Huacutengaro La Inteligencia Artificialsoluciona el problema utilizando la heuriacutestica el conocimiento y la experiencia de unexperto humano para solucionar el problema se decidioacute utilizar esta metodologiacutea paraexplorar una solucioacuten aproximada al problema

En el ITZ la generacioacuten de horarios se haciacutea de forma manual no se utilizaba ninguacutenmeacutetodo automatizado Al aplicar algunas teacutecnicas de la Inteligencia Artificial se halogrado generar de manera automatizada los horarios de las materias que se ofertaraacuten elproacuteximo semestre

La aplicacioacuten de varias ramas de la Inteligencia Artificial para la resolucioacuten delproblema de la generacioacuten de horarios viene a demostrar que si es posible generar uncondensado de horarios para el Instituto Tecnoloacutegico de Zacatepec que es una escuelade nivel superior y que estos horarios satisfacen adecuadamente las restricciones fuertesmedias y suaves Para ello fue necesaria la combinacioacuten de varias disciplinas de lacomputacioacuten para generar cada una de las partes que componen un horario y tambieacutenrecomendar los catedraacuteticos mas apropiados para impartir dichos grupos nuevamentequeda demostrado que la Inteligencia Artificial sirve para resolver problemas que lasteacutecnicas convencionales de computacioacuten consideran problema NP-completo

La utilizacioacuten de las teacutecnicas de los Sistemas Expertos para ajustar el nuacutemero de grupospor abrir el proacuteximo semestre permite aplicar el conocimiento y experiencia de lapersona encargada de elaborar los horarios y asiacute disminuir el nuacutemero de gruposcancelados el conocimiento e intuicioacuten del experto humano realizan un ajuste fino alnuacutemero de grupos y como puede notarse el sistema lo hace de manera similar

Para el moacutedulo de generacioacuten de los grupos y los horarios la utilizacioacuten de la teacutecnicallamada Programacioacuten Loacutegica de Restricciones permitioacute la satisfaccioacuten de lasrestricciones que hacen que los horarios sean considerados factibles para su aplicacioacuten a

Capiacutetulo 7 Conclusiones y Trabajos Futuros

los alumnos el proacuteximo semestre ya que los paquetes de materias por semestre tienenhorarios corridos y sin choques en horas nuacutemero de materias completo y buenadistribucioacuten de horas pares e impares

Se utilizoacute tambieacuten la teacutecnica de optimizacioacuten llamada Algoritmos Geneacuteticos pararealizar la asignacioacuten de aulas a cada grupo generado logrando con ello minimizarautomaacuteticamente el nuacutemero de choques de materias en aulas En las pruebas realizadasse logroacute que en la sexta generacioacuten de individuos ya soacutelo hubiera hasta un maacuteximo de 24choques lo que indicaba que soacutelo 4 oacute 5 grupos compartiacutean aula a la misma hora esto erafaacutecilmente corregible realizando una inspeccioacuten visual a la versioacuten de horarios final yajustando los uacuteltimos errores

Por uacuteltimo nuevamente se aplicaron los Sistemas Expertos en el moacutedulo de sugerenciade materias que puede impartir un maestro y en el moacutedulo maestros que pueden impartiruna determinada materia vale la pena comentar que durante las pruebas realizadas loscatedraacuteticos del departamento de Sistemas y Computacioacuten capturaban su perfilprofesiograacutefico y al pedir al sistema la sugerencia de cuaacuteles materias podriacutean impartirlos Sistemas Expertos del proyecto inferiacutean exactamente las materias que loscatedraacuteticos estaacuten impartiendo en este semestre y las que habiacutean impartido en alguacutensemestre anterior demostrando que en efecto para profesores nuevos la recomendacioacutendel sistema seriacutea vaacutelida

72 TRABAJOS FUTUROS

Se sugiere que se ampliacutee el proyecto para que a cada grupo generado con aula y hora sele asigne de manera automaacutetica un catedraacutetico utilizando ya sea Algoritmos Geneacuteticos oProgramacioacuten Loacutegica de Restricciones

Otra posible mejora puede ser incluir la Loacutegica Difusa en los Sistemas Expertos de losmoacutedulos que sugieren las materias que puede impartir un catedraacutetico y los catedraacuteticosque pueden impartir una asignatura

Como ya se comproboacute la factibilidad de generar los horarios de manera automaacutetica sepropone tambieacuten la exploracioacuten de otras ramas y teacutecnicas de la computacioacuten (RedesNeuronales Buacutesqueda Tabuacute Grafos Coloreados etc) para comparar el rendimientotiempo esfuerzo y asiacute poder determinar cuales son mejores o peores teacutecnicas pararesolver el problema de la generacioacuten de horarios

Referencias Bibliograacuteficas

REFERENCIAS BIBLIOGRAacuteFICAS

[Abramson 1991] Abramson D ldquoConstructing School Timetables Using SimulatedAnnealing Secuencial and Parallel Algoritmsrdquo Management Science PWS PublishingBoston 1998

[Beasley 1993] Beasley D amp Bull DR amp Martin RR ldquoAn Overview of GeneticAlgorithms Part 1 Fundamentalsrdquo University Computing

[Bull 1993] Bull DR amp Beasley D amp Martin RR ldquoAn Overview of GeneticAlgorithms Part 2rdquo University Computing Magazine 1993

[Burke1994]Burke EK ldquoA Genetic Algorithm for University Timetablingrdquo AISBworkshop on evolutionary computing Leeds 1994

[Burke 1997] Burke Edmund K ldquoAutomated Scheduling Optimization and PlanningGroup (ASAP)rdquo PATATrsquo97 Proceedings of the 2nd Intenational Conference on thePractice And Theory of Automated Timetabling 1997

[Burke2000] Burke Edmund amp Eliman David amp Weare Rupert ldquoA GeneticAlgorithm Based University Timetabling Systemrdquo PATATrsquo2000 Proceedings of the 5ft

Intenational Conference on the Practice And Theory of Automated Timetabling 2000

[Burke2001] Burke EK amp Eliman DGamp Weare R ldquoAutomated Scheduling OfUniversity Examsrdquo Leeds 2001

[Burke2002] Burke Edmund amp Eliman David amp Weare Rupert ldquoExaminationTimetabling in British Universities ndash A Surveyrdquo Leeds 2002

[Carrasco 2004] Carrasco Marco amp Pato Margarida ldquoSolving Real ClassTeacherTimetabling Problems using Neural Networksrdquo Facultade de Ciencias University ofLisboa Portugal

[Chorafas 1990] Chorafas Dimitris N ldquoKnowledge Engineeringrdquo Van NostrandReinnhold New York USA

Referencias Bibliograacuteficas

[Corne 1993] Corne D ldquoSolving the module exam scheduling problem with geneticalgorithmsrdquo Proceedings of the 6th Intenational conference in Industrial andEngineering applications of Artificial Intelligence and Expert Systems1993

[Daellenbach 1987] Daellenbach Hans amp McNickle Donald ldquoIntroduccioacuten a teacutecnicasde Investigacioacuten de Operacionesrdquo CECSA Meacutexico 1987

[Davis 1991] Davis L ldquoHandbook of Genetic Algorithmsrdquo Van Nostrand ReinholdNew York NY

[Demist2000] Demist ldquoDepartamental Timetabling Proyect ProposalDeMIStinterface to Timetabling Package Proyectrdquo Demist University 2000

[Detcher 1990] Detcher R ldquoEnhancement Schemes for Constraint Processing BackJumping Learning and Cutset Decompositionrdquo Artificial Intelligence 41 (1990)

[Eliman 2000] Eliman David ldquoSpecialised Recombinative Operators for TimetablingProblemsrdquo Cambridge University Press New York 2000

[Elmohamed2000] Elmohamed Saleh ldquoThe timetabling problemrdquo PATATrsquo2000Proceedings of the 5th Intenational Conference on the Practice And Theory ofAutomated Timetabling 2000

[Elmohamed2001] Elmohamed Saleh ldquoConstraint based university coursetimetablingrdquo 4th World Congress on Timetabing Aplication of advanced informationTechnologies London 2001

[Fahrion y Dollanski 1992] Fahrion R amp G Dollanski ldquoConstruction of UniversityFaculty Timetables using Logic Programmingrdquo ACM Sigsoft Notes vol 9 no 3 May1992

[Frenzel 1986]Frenzel Louis E ldquoCrash Course in Artificial Intelligence and ExpertSystemsrdquo Howard W Sams amp Co McMillan Inc Indianapolis USA

[Gerez 1985] Gerez Victor amp Mier Mauricio ldquoDesarrollo y administracioacuten deprogramas de computadorardquo McGraw Hill Meacutexico 1985

[Gervaacutes 1999] Gervaacutes P amp San Miguel B ldquoSequential Building of ConstrainedTimetables Using Rule-Based Heuristics An Expert System for AutomatedTimetablingrdquo Congreso Internacional de Investigacioacuten en Ciencias Computacionales

Referencias Bibliograacuteficas

[Giarratamo 1998] Giarratamo Joseph y Gary Riley ldquoExpert Systems Principles andProgrammingrdquo PWS Kent Publishing Company Boston USA

[Gines 1986] Gines B amp Boose J ldquoKnowledge Acquisition for Knowledge-BasedSystemsrdquo Vol 1amp2 Academic Press London U K

[Goldberg 1989] Goldberg DE ldquoGenetic Algorithms in SearchOptimization andMachine LearningrdquoAddison-Wesley

[Kang y White 1994 ] Kang L amp White GM ldquoA Logic Approach to the Resolutionof Constrains in Timetablingrdquo European Journal of Operational Research vol 61 1994

[Kandel 1991] Kandel Abraham ldquoFuzzy Expert Systemsrdquo CRC Press Inc LondonUK 1991

[Kendall1999] Kendall y Kendall ldquoAnaacutelisis y disentildeo de sistemasrdquo 3ordf edicion PearsonEducacioacuten

[Koza 1992] Koza JR ldquoGenetic Programming On the Programming of Computers bymeans of Natural Selectionrdquo Cambridge MA MIT Press

[Martiacutenez 1999] Martiacutenez Alfaro Horacio ldquoSolucioacuten al problema de asignacioacuten desalones de clases horario y grupo mediante templado simuladordquo Memorias 6ordm CongresoInternacional de Mecatroacutenica e Inteligencia Artificial Meacutexico 1999

[Medina 2004] Medina Pasaflores Horacio ldquoFundamentos de Algoritmos GeneacuteticosrdquoTesis de licenciatura Zacatepec Mexico 2004

[Michalewicz 1992] Michalewicz Z ldquoGenetic algorithms + Data Structures =Evolution Programsrdquo Springer-Verlag New York NY

[Negoita1985] Negoita ConstantinV Expert Systems and Fuzzy Systems TheBenjamin Cummings Publishing Co Menlo Park CA USA

[Nielsoft 2000] Nielsoft informatica ldquoManual de usuario Mimosa for windowsrdquo

[Paechter 1994] Paechter B ldquoTwo solutions to the general timetabling problemusing evolutionary methodsrdquo IEEE WCCI 1994

[Pluss1999] Pluss JJ ldquoSistemas expertos un enfoque pragmaacuteticordquo UNR

Referencias Bibliograacuteficas

[Rich 1996] Rich E y Knight K ldquoInteligencia Artificialrdquo McGraw HillInteramericana Madrid Espantildea

[Russell 1996] Russell S y Norvig P ldquoInteligencia Artificial un enfoque modernordquoPrentice Hall Mexico 1996

[Sanchez1999] Sanchez y Beltran ldquoSistemas expertos una metodologiacutea deprogramacioacutenrdquo Macrobit

[Schedul2000] SchedulExpert ldquoCourse scheduling in post educational institutionsrdquo EdAddison Wesley 2000

[Trick 1999 ] Trick Michael ldquoNetwork resources for coloring a graphrdquo Oracle PressEd McGraw Hill 1999

[Turban 1995] Turban Efraim ldquoDecision Support and Expert Systems ManagementSupport Systemsrdquo Fourth Edition Orentice Hall NJ USA

[Waterman1986] Waterman Donald A ldquoA Guide to Expert Systemsrdquo Addison-Wesley Publishing Co USA

[Weare2000] Weare Rupert amp Burke Edmundo amp Eliman David ldquoA Questionnaireon Exam Timetabling in Universitiesrdquo Annual review of computer Science Volume 2Palo Alto 2000

[Wilke 2002] Wilke P amp Grobner M amp Oster N ldquoA hibrid Genetic Algorithm forSchool Timetablingrdquo Advances in Artificial Intelligence Springer Lecture Notes inComputer Science New York

[Yoshikawa 1994] Yoshikawa M amp Kaneko KldquoA Constraint-based Approach toHigh School Timetabling Problems A Case Studyrdquo AAAI-94 12ordm NationalConference on Artificial Intelligence

Referencias Bibliograacuteficas

Referencias electroacutenicas

httpwwwmonografiacuteascomtrabajos12inteartfinteartfshtmlObregoacuten Arturo Inteligencia artificial y Sistemas expertos IIMAS-UNAM (1992)

httpwwwlafacucomapuntesinformaticasist_conodefaulthtmCruz Ochoa Wilson Sistemas de conocimiento

httpwwwingenieroseninformaticaorgrecursostutorialessist_exphtmlZambrano Molina Darwin Sistemas expertos

httpredcientificacomdocdoc199008210001htmlSamper Marquez Juan Joseacute Introduccioacuten a los sistemas expertos Madrid 2000

httpmismonografiascomarSistemas20expertofuzzyhtmlArede Dario Sistema experto fuzzy

httpcruzrojaguayaorginteligenciainterhtmlAyuquina Martha amp Arellano Gregorio Inteligencia artificial Universidad de Guayaquil

httpdmiuibesabasolointart1-introduccionhtmlAbasolo Mariacutea Joseacute Dra Inteligencia Artificial

Page 10: BORIS ANTONIO ARANDA BENITEZ
Page 11: BORIS ANTONIO ARANDA BENITEZ
Page 12: BORIS ANTONIO ARANDA BENITEZ
Page 13: BORIS ANTONIO ARANDA BENITEZ
Page 14: BORIS ANTONIO ARANDA BENITEZ
Page 15: BORIS ANTONIO ARANDA BENITEZ
Page 16: BORIS ANTONIO ARANDA BENITEZ
Page 17: BORIS ANTONIO ARANDA BENITEZ
Page 18: BORIS ANTONIO ARANDA BENITEZ
Page 19: BORIS ANTONIO ARANDA BENITEZ
Page 20: BORIS ANTONIO ARANDA BENITEZ
Page 21: BORIS ANTONIO ARANDA BENITEZ
Page 22: BORIS ANTONIO ARANDA BENITEZ
Page 23: BORIS ANTONIO ARANDA BENITEZ
Page 24: BORIS ANTONIO ARANDA BENITEZ
Page 25: BORIS ANTONIO ARANDA BENITEZ
Page 26: BORIS ANTONIO ARANDA BENITEZ
Page 27: BORIS ANTONIO ARANDA BENITEZ
Page 28: BORIS ANTONIO ARANDA BENITEZ
Page 29: BORIS ANTONIO ARANDA BENITEZ
Page 30: BORIS ANTONIO ARANDA BENITEZ
Page 31: BORIS ANTONIO ARANDA BENITEZ
Page 32: BORIS ANTONIO ARANDA BENITEZ
Page 33: BORIS ANTONIO ARANDA BENITEZ
Page 34: BORIS ANTONIO ARANDA BENITEZ
Page 35: BORIS ANTONIO ARANDA BENITEZ
Page 36: BORIS ANTONIO ARANDA BENITEZ
Page 37: BORIS ANTONIO ARANDA BENITEZ
Page 38: BORIS ANTONIO ARANDA BENITEZ
Page 39: BORIS ANTONIO ARANDA BENITEZ
Page 40: BORIS ANTONIO ARANDA BENITEZ
Page 41: BORIS ANTONIO ARANDA BENITEZ
Page 42: BORIS ANTONIO ARANDA BENITEZ
Page 43: BORIS ANTONIO ARANDA BENITEZ
Page 44: BORIS ANTONIO ARANDA BENITEZ
Page 45: BORIS ANTONIO ARANDA BENITEZ
Page 46: BORIS ANTONIO ARANDA BENITEZ
Page 47: BORIS ANTONIO ARANDA BENITEZ
Page 48: BORIS ANTONIO ARANDA BENITEZ
Page 49: BORIS ANTONIO ARANDA BENITEZ
Page 50: BORIS ANTONIO ARANDA BENITEZ
Page 51: BORIS ANTONIO ARANDA BENITEZ
Page 52: BORIS ANTONIO ARANDA BENITEZ
Page 53: BORIS ANTONIO ARANDA BENITEZ
Page 54: BORIS ANTONIO ARANDA BENITEZ
Page 55: BORIS ANTONIO ARANDA BENITEZ
Page 56: BORIS ANTONIO ARANDA BENITEZ
Page 57: BORIS ANTONIO ARANDA BENITEZ
Page 58: BORIS ANTONIO ARANDA BENITEZ
Page 59: BORIS ANTONIO ARANDA BENITEZ
Page 60: BORIS ANTONIO ARANDA BENITEZ
Page 61: BORIS ANTONIO ARANDA BENITEZ
Page 62: BORIS ANTONIO ARANDA BENITEZ
Page 63: BORIS ANTONIO ARANDA BENITEZ
Page 64: BORIS ANTONIO ARANDA BENITEZ
Page 65: BORIS ANTONIO ARANDA BENITEZ
Page 66: BORIS ANTONIO ARANDA BENITEZ
Page 67: BORIS ANTONIO ARANDA BENITEZ
Page 68: BORIS ANTONIO ARANDA BENITEZ
Page 69: BORIS ANTONIO ARANDA BENITEZ
Page 70: BORIS ANTONIO ARANDA BENITEZ
Page 71: BORIS ANTONIO ARANDA BENITEZ
Page 72: BORIS ANTONIO ARANDA BENITEZ
Page 73: BORIS ANTONIO ARANDA BENITEZ
Page 74: BORIS ANTONIO ARANDA BENITEZ
Page 75: BORIS ANTONIO ARANDA BENITEZ
Page 76: BORIS ANTONIO ARANDA BENITEZ
Page 77: BORIS ANTONIO ARANDA BENITEZ
Page 78: BORIS ANTONIO ARANDA BENITEZ
Page 79: BORIS ANTONIO ARANDA BENITEZ
Page 80: BORIS ANTONIO ARANDA BENITEZ
Page 81: BORIS ANTONIO ARANDA BENITEZ
Page 82: BORIS ANTONIO ARANDA BENITEZ
Page 83: BORIS ANTONIO ARANDA BENITEZ
Page 84: BORIS ANTONIO ARANDA BENITEZ
Page 85: BORIS ANTONIO ARANDA BENITEZ
Page 86: BORIS ANTONIO ARANDA BENITEZ
Page 87: BORIS ANTONIO ARANDA BENITEZ
Page 88: BORIS ANTONIO ARANDA BENITEZ
Page 89: BORIS ANTONIO ARANDA BENITEZ
Page 90: BORIS ANTONIO ARANDA BENITEZ
Page 91: BORIS ANTONIO ARANDA BENITEZ
Page 92: BORIS ANTONIO ARANDA BENITEZ
Page 93: BORIS ANTONIO ARANDA BENITEZ
Page 94: BORIS ANTONIO ARANDA BENITEZ
Page 95: BORIS ANTONIO ARANDA BENITEZ
Page 96: BORIS ANTONIO ARANDA BENITEZ
Page 97: BORIS ANTONIO ARANDA BENITEZ
Page 98: BORIS ANTONIO ARANDA BENITEZ
Page 99: BORIS ANTONIO ARANDA BENITEZ
Page 100: BORIS ANTONIO ARANDA BENITEZ
Page 101: BORIS ANTONIO ARANDA BENITEZ
Page 102: BORIS ANTONIO ARANDA BENITEZ
Page 103: BORIS ANTONIO ARANDA BENITEZ
Page 104: BORIS ANTONIO ARANDA BENITEZ
Page 105: BORIS ANTONIO ARANDA BENITEZ
Page 106: BORIS ANTONIO ARANDA BENITEZ
Page 107: BORIS ANTONIO ARANDA BENITEZ
Page 108: BORIS ANTONIO ARANDA BENITEZ
Page 109: BORIS ANTONIO ARANDA BENITEZ
Page 110: BORIS ANTONIO ARANDA BENITEZ
Page 111: BORIS ANTONIO ARANDA BENITEZ
Page 112: BORIS ANTONIO ARANDA BENITEZ
Page 113: BORIS ANTONIO ARANDA BENITEZ
Page 114: BORIS ANTONIO ARANDA BENITEZ
Page 115: BORIS ANTONIO ARANDA BENITEZ
Page 116: BORIS ANTONIO ARANDA BENITEZ
Page 117: BORIS ANTONIO ARANDA BENITEZ
Page 118: BORIS ANTONIO ARANDA BENITEZ
Page 119: BORIS ANTONIO ARANDA BENITEZ
Page 120: BORIS ANTONIO ARANDA BENITEZ
Page 121: BORIS ANTONIO ARANDA BENITEZ
Page 122: BORIS ANTONIO ARANDA BENITEZ
Page 123: BORIS ANTONIO ARANDA BENITEZ
Page 124: BORIS ANTONIO ARANDA BENITEZ
Page 125: BORIS ANTONIO ARANDA BENITEZ
Page 126: BORIS ANTONIO ARANDA BENITEZ
Page 127: BORIS ANTONIO ARANDA BENITEZ
Page 128: BORIS ANTONIO ARANDA BENITEZ
Page 129: BORIS ANTONIO ARANDA BENITEZ
Page 130: BORIS ANTONIO ARANDA BENITEZ
Page 131: BORIS ANTONIO ARANDA BENITEZ
Page 132: BORIS ANTONIO ARANDA BENITEZ
Page 133: BORIS ANTONIO ARANDA BENITEZ
Page 134: BORIS ANTONIO ARANDA BENITEZ
Page 135: BORIS ANTONIO ARANDA BENITEZ
Page 136: BORIS ANTONIO ARANDA BENITEZ
Page 137: BORIS ANTONIO ARANDA BENITEZ
Page 138: BORIS ANTONIO ARANDA BENITEZ
Page 139: BORIS ANTONIO ARANDA BENITEZ
Page 140: BORIS ANTONIO ARANDA BENITEZ
Page 141: BORIS ANTONIO ARANDA BENITEZ
Page 142: BORIS ANTONIO ARANDA BENITEZ
Page 143: BORIS ANTONIO ARANDA BENITEZ
Page 144: BORIS ANTONIO ARANDA BENITEZ
Page 145: BORIS ANTONIO ARANDA BENITEZ
Page 146: BORIS ANTONIO ARANDA BENITEZ