Descripción del software orario
Usando el modelo de asignaciones presentado
anteriormente se ha desarrollado el software
orario
que es capaz de construir un horario para un centro educativo. Aquí se
explica en forma resumida su implementación y funcionamiento. Como se
ha indicado antes, en este caso los recursos del problema lo constituyen
los profesores conjuntamente con las materias que deben impartir y las
disponibilidades de tiempo que tienen para cumplir con sus clases. Las
necesidades están determinadas por los grupos que deben recibir cierta
cantidad de lecciones con algunos de estos profesores. Veamos primero qué
información debe alimentar el sistema. Para cada profesor es necesario
saber cuáles días y en qué lecciones está dispuesto a trabajar. Además
para cada una de las materias que imparte se debe indicar el nivel en
que las impartes, los grupos o secciones que tiene a su cargo, el número
semanal de lecciones que requiere cada grupo y (opcionalmente) alguna
observación importante que debe tenerse en cuenta al armar el horario.
Para cada grupo o sección se requiere saber en qué días y cuántas
lecciones recibe. Para resolver el problema manualmente se puede emplear
una pizarra o matriz con fichas (punteros). Cada fila representa una
sección o grupo. Las columnas se usan para indicar los días y
lecciones laboradas. En la Fig. 1.6 se muestra parte de esta
pizarra que llamaremos
.
En la posición
se coloca el nombre del profesor y la materia que imparte.
Figura 1.6: Tabla para
horarios
Suponga que tenemos
profesores y consideremos el profesor
con
.
Supongamos que este docente debe impartir
materias distintas, entendiendo por "distintas" que dichas
materias tienen diferente nombre o bien diferente nivel. Por
limitaciones del modelo empleado, el algoritmo de repartición propuesto
funciona en iteraciones, asignando primero la primera materia de cada
profesor, luego la segunda y así hasta cubrir todas las materias de
todos los profesores. En cada iteración del algoritmo de repartición,
cada materia del profesor
representa entonces un recurso. Las necesidades vienen a estar formadas
por las entradas de la matriz
presentada en la Fig 1.6. De esta forma se entenderá que una necesidad
ha sido satisfecha cuando se logra colocar el nombre de un profesor,
junto con una de las materias que imparte, en algunas de las entradas de
la matriz
.