AC31

Anuncio
“GENERACIÓN DE HORARIOS ACADÉMICOS UNIVERSITARIOS EMPLEANDO ALGORITMOS
GENÉTICOS”
Autores:
Gabriel Rodríguez, Marianela [email protected]
Cruz Ortiz, Julio César
[email protected]
Miguel Vásquez, Fredy Ricardo [email protected]
Romero Ruiz, Hugo José Luis [email protected]
Institución:
Universidad Privada del Norte
Facultad de Ingeniería de Sistemas
Av. Ejercito Nº 920, Trujillo, Perú
Teléfono: (051) 044 – 220062
Portal Web: www.upnorte.edu.pe
Palabras Clave.- Búsqueda, generación de horarios, algoritmos genéticos, inteligencia artificial
El presente trabajo de investigación detalla la construcción de una aplicación informática que
implementa rutinas de búsquedas para la generación de horarios académicos basados en la teoría de
John Holland quien propuso una manera de seleccionar individuos y de cruzarlos y Goldberg quien lo
popularizó como el algoritmo genético simple, con la salvedad de que nuestra investigación no reduce
los códigos genéticos a binario, sino que los trabaja en su formato original, gracias a la tecnología de
punta computacional actual. La aplicación ha sido desarrollada en Microsoft Visual Studio .NET
El funcionamiento del algoritmo genético sigue el siguiente proceso:
1. El sistema genera varios centenares de individuos o soluciones posibles.
2. Los que mejor se ajustan a los requerimientos, obtienen más posibilidades de reproducirse.
3. Se procede al cruzamiento de individuos aleatoriamente
4. De acuerdo a una heurística se decide, si los individuos, además deben mutarse o no y así se obtiene una
nueva generación de individuo o soluciones.
5. Nuevamente se evalúa a los que mejor se ajustan a los requerimientos y obtienen más posibilidades de
reproducirse. Las peores son descartadas.
6. Continuación: los pasos 3 y 4 se reiteran docenas de miles de veces. Tras miles de generaciones, el mejor
individuo-solución resuelve el problema de manera satisfactoria. No se puede aspirar al óptimo absoluto.
Todo este proceso se basa en el tipo de reproducción en el que la dotación genética del nuevo ser tiene dos o
más orígenes. La gran ventaja del ordenador es que puede simular decenas de miles de generaciones en
minutos.
Este trabajo está basado en un algoritmo genético adecuadamente configurado. La función para nuestra
evaluación esta definida independientemente por el usuario final, para reflejar sus deseos particulares
(es decir, incluir en esta, todas las restricciones que deberán ser consideradas en el AG, así mismo las
bonificaciones y penalizaciones a que se hace acreedor el/los individuo(s) en evaluación) con respecto
a la calidad de la solución a obtener. También implica, que pueden utilizarse varias heurísticas o
probabilidades ya desarrolladas, en la generación de nuevos individuos, lo que a menudo conduce a
una mejora del rendimiento de éstos.
Modelo de Aplicación del Algoritmo Genético
El caso de estudio que se presenta en esta sección corresponde a las necesidades académicas para el
semestre 2003-1 de la Universidad Privada del Norte - UPN.
Partiremos entonces para este modelo, de un conjunto de clases (ofertas de un curso previstas por la
universidad para un semestre académico), cada una de las cuales tiene asociada una duración y un
tamaño, que es la cantidad de horas asignadas a la clase (divididas en horas de teoría, horas de
practica y horas de laboratorio) y el número de estudiantes real o estimado que se espera que asistan a
él. Además existe un conjunto de aulas de diversas características y capacidades, y un conjunto de
períodos de tiempo, en los cuales se llevarán a cabo los eventos.
Definimos entonces qué: un horario es una colección de N asignaciones, una para cada evento. Esta
definición está sometida a múltiples restricciones, y con diferentes pesos. Algunas son inviolables, es
decir, ningún horario será aceptado si no las cumple (restricciones duras). Y otras son convenientes o
deseables y servirán para medir la calidad del horario obtenido (restricciones blandas).
Variables Involucradas
a. Facultad y Carrera Profesional.- el ámbito donde se dictaran las asignaturas de la universidad.
b. Clases por especialidad.- Se refiere a la asignación de cursos para cada período.
c. Carga horaria por Clase.- se refiere a la cantidad de horas de teoría, práctica y laboratorio asignadas
a cada clase para el semestre en preparación.
d. Características de la Clase.- única; compartida por docente, aula o laboratorio y/o carrera profesional.
e. Número de carreras.- Cantidad de especialidades que se imparten en la institución.
f. Disponibilidad horaria del personal docente.- Las horas disponibles en que el profesor puede estar
frente a un grupo.
g. Número y características de aulas.- Espacios físicos disponibles.
h. Y algunas otras políticas particulares de asignación de clases.
3. REPRESENTACIÓN GRAFICA DE UN HORARIO
El caso de estudio que se presenta en esta sección corresponde a las necesidades académicas para
el semestre 2003-1 de la Universidad Privada del Norte - UPN.
Cromosoma 1
Cromosoma 2
Cromosoma 3
Cromosoma n
REPRESENTACIÓN DE UN HORARIO
Primero Veamos un Cromosoma
 Representación de una Clase
El código de una clase está formado por cuatro
(4) dígitos. Los códigos de clase pueden ir desde
0001 hasta la clase 9999. Ejemplo:
Aula
L006
14
5
4352
Clas
e
Do c
ente
Dí a
Grup
o
…
2915
Aula
…
L003
25
3
Do c
ente
Dí a
Grup
o
Clas
e
2407
4153
Aula
B201
1
25
4167
2406
Clas
e
Do c
ente
Dí a
Grup
o
Fig. 1 Representación Grafica de un Individuo
Como habíamos descrito en la problemática…”…Un horario (Individuo) fig. 1 será una colección de
N asignaciones, una para cada evento…” Esto significa que una asignación será tomada como un
cromosoma del individuo fig. 2 y este a
su vez estará seccionado en genes que no
vienen a ser sino, los atributos de una
asignación.
Fig. 2 Representación Grafica de un Cromosoma
Codificando un individuo de acuerdo a la estructura descrita:
 Representación de un Docente
El código de un docente está formado por cuatro
(4) dígitos. Los códigos de docente pueden
codificarse desde 0001 hasta 9999. Ejemplo:
 Representación de un Día
El código de un día está formado por un (1)
dígito. Los códigos de día pueden codificarse
desde 1 hasta 7. Ejemplo:
 Representación de un Aula
El código de un aula está formado por cuatro (4) caracteres. Los códigos
de aula pueden ser alfanuméricos, para incluir en este una letra que
identifique a un pabellón o edificio o tipo de aula (aula de teoría, aula de
prácticas o laboratorio de pruebas). Ejemplo:
 Representación de Grupo Hora
Se ha tratado de representar todas las
combinaciones existentes de horarios
posibles que pudiesen existir para un
día. Dicho de otra manera, existen
clases que se dictan en grupos de una
hora, de dos horas, de tres horas y
hasta de cuatro horas contiguas,
podemos observar entonces en el
siguiente cuadro cuantos grupos
contiguas de horas se han encontrado.
Aula
B201
C301
L003
L006
COMBINACIONES DE HORARIOS DISPONIBLES
Horario de Clases
Grupos de Horas Contiguas de Clases
07:00 – 07:50
1
2
08:00 – 08:50
1
3
2
4
09:00 – 09:50
1
3
2
4
10:00 – 10:50
1
3
2
4
11:00 – 11:50
1
3
2
4
12:00 – 12:50
1
3
2
4
13:00 – 13:50
1
3
2
4
14:00 – 14:50
1
3
2
4
15:00 – 15:50
1
3
2
4
16:00 – 16:50
1
3
2
4
17:00 – 17:50
1
3
2
4
18:00 – 18:50
1
3
2
4
19:00 – 19:50
1
3
2
4
20:00 – 20:50
1
3
2
4
21:00 – 21:50
1
3
2
22:00 – 22:50
1
Horarios Disponibles
16
8
7
5
5
4
4
3
3 3
TOTAL
58
Conclusiones
o Es posible aplicar la técnica de Algoritmos Genéticos al problema de la generación de
horarios académicos universitarios.
o Se ha logrado expresar adecuadamente las políticas de asignación de horarios para el caso
de la Universidad Privada del Norte.
o En el algoritmo se proponen distintos operadores dominio-dependientes y se utiliza una
función de evaluación basada en penalizaciones y bonificaciones de acuerdo a las
restricciones definidas para el caso de estudio.
o Se ha diseñado un algoritmo que logra una buena solución, siendo posible ejecutarlo varias
veces y así obtener distintas soluciones equiparables en calidad, pero diferentes en sus
detalles, lo que permitirá a los usuarios finales escoger entre varios horarios de buena
calidad.
Los programas han sido desarrollados en Microsoft Visual Studio .NET, utilizando C
Sharp (C# ) como lenguaje de programación y SQL Server 2000 como gestor de bases de
datos.
Descargar