Hacia la optimización de recursos escolares basada en la aplicación de algoritmos genéticos

Resumen

El presente trabajo tiene la finalidad de presentar las bases de una propuesta cuyo objetivo es brindar una solución al problema de elaboración y asignación de horarios relacionando asignaturas y aulas disponibles. Para ellos se propone la aplicación de un modelo matemático adaptativo que considera como parámetros el uso de reglas suaves o fuertes que se respetarán para generar soluciones factibles mediante un algoritmo genético. El sistema comprende dos módulos: un módulo auxiliar de control de asistencias y poblaciones que determinaran junto con el algoritmo de control las bases que permitan definir horarios y que profesores deben impartir las clases en horarios específicos considerándose como las mejores soluciones meta heurísticas para la gestión controlada de la Escuela Superior de Tizayuca, y otro módulo que permita el control de acceso a las aulas basado en la asignación del primer módulo.


Palabras clave: gestión horaria, algoritmo genético, optimización de recursos, problema np

Abstract

This work is focused on presentation of the basis related to a proposal to solve the problem related to the generation and assignment of timetables by linking classes to available classrooms. Thus, the application of a matemathical model is proposed. This adaptative model takes into account attributes that are represented as soft and strong rules. These rules are followed to generate solutions by using a genetic algorithm. This system involves two modules: a module to control the assistance and population used at the genetic algorithm whose goal is to define timetables and professors assigned to that classes at specific time schedule. These solutions will be considered as the best metaheuristical solutions to manage these resources at the Superior School of Tizayuca. The second module uses the generated time table at the first module to control the access to the classrooms.


Keywords: timetable management, genetic algorihtm, resource optimizatios, np problem.

Introducción

El avance de las tecnologías en algunas áreas se atribuyen al desarrollo de lenguajes o algoritmos que potencializan los componentes computacionales. En dicho avances se puede observar el uso de algoritmos cuyo objetivo es la optimización de operaciones que resultan indispensables para los dispositivos cotidianos o los sistemas empresariales hoy en día usados.

Debido al volumen y velocidad de generación de resultados de dicho algoritmos, el uso de dichos algoritmos hasta ahora no pueden ser reemplazados por ninguna clase de persona o máquina, el uso de estos algoritmos y específicamente los algoritmos genéticos, han logrado obtener avances en campos diversos y siempre han demostrado soluciones nunca pensadas y una de las pocas técnicas capaces de enfrentar a los planteamientos que no pueden ser deducidos de manera mecánica. Por dichas razones es de relevancia el poder ser capaces de comprender y usar estos algoritmos.

Desde el crecimiento exponencial de la población, las instituciones han presentado dificultades en la organización y en la gestión de sus propios recursos, en específico las instituciones académicas reflejan este problema en la asignación de horarios de clases a sus diferentes recursos (estáticos como dinámicos) p.e. Aulas y alumnos. A este problema de le conoce como timetabling (Wood,1968) y su principal característica es su complejidad, la cual está relacionada directamente con estos recursos. En la actualidad, existen diferentes investigaciones acerca de este problema, e inclusive existe un software de tipo comercial (aSctimetables), que de acuerdo a sus características funciona con metaheurísticas y/o fuerza bruta. En las otras investigaciones se han utilizado algunas otras técnicas, todas en general se pueden clasificar principalmente en dos que son:

•Técnicas tradicionales: Son aquellas que resuelvan el problema sin considerar la complejidad computacional que requiere, dentro de esta clasificación se encuentra la programación Lineal, Tablas, Fuerza Bruta entre otras.

•Técnicas no tradicionales: Son Aproximaciones más conocidas por heurísticas, término introducido por Fred Glover (Glover & Laguna,1997), son utilizadas principalmente en el área de la inteligencia artificial. El principal objetivo de estas técnicas, es obtener un algoritmo eficiente que entregue soluciones aceptables, a problemas cuya búsqueda de la solución óptima resulta muy compleja hablando de costo computacional y en algunos casos son imposibles de obtener.

Las primeras aproximaciones a la solución de problemas NP (No polinomicos), se originaron mediante la simulación de los procesos naturales de evolución descritos en la teoría Darwiniana, en los años 50 y 60s los biólogos introdujeron por primera vez las bases de Algoritmo Genético (AG) (Banzhafet.al, 1998), pero limitaron su criterio de observación, pues múltiples problemas han adquirido solución debido a la aplicación de este algoritmo.

En el campo matemático el AG ha sido usado para la resolver ecuaciones de derivadas parciales de alto orden, increíblemente complejas de realizar de manera mecánica, en específico los algoritmos dieron solución a coeficientes de quinto orden en derivadas parciales específicas, mejor conocidas como super Korteweg-de Vries (Haunpt & Haupt, 1998).

te quiero y siempre asi sera

En el campo de la Ingeniería de Sistemas e Ingeniería Industrialen diferentes ámbitos, los algoritmos genéticos han sido los creadores de soluciones optimas innovadoras e incluso impensables, el Dr. Peter Senecal de la universidad de Wisconsin (Shechter, 2000), desarrollo un algoritmo genético para la creación de modelados de motores que mejoraban la eficiencia en el consumo de diésel de los motores actuales de marcas como Nissan, los resultados produjeron un ahorro del 15% de combustible y un 34% menos de emisión, actualmente el Dr. se encuentra diseñando mediante AG geometrías de motores que definirán nuevos modelos con mejoras más significativas (Shechter,2000), incluso la ingeniería de microcomponentes estableció algoritmos genéticos para la creación de modelos de placa más compactos, el resultado fue un 18% de disminución de uso de espacio, por lo tanto fue demostrado que el uso de estas técnicas pueden converger a soluciones de una forma rápida y eficiente.

Las aplicaciones no solo llegaron a ámbitos de creacionismo sino también de eficiencia y gestión de tiempos, las primeras aproximaciones se realizaron en la creación de horarios definidos para la comunidad estudiantil de manera masiva, para una serie de 4 universidades los lineamientos de la aplicación se desarrollaron de tal manera que ninguno tuviese posibilidad de copiar, todos los estudiantes lograron culminar la prueba y el algoritmo logro obtener un porcentaje de eficiencia de tiempos de 40% por sobre métodos que no utilizaban lineamientos a evolutivos, esta fue una de las primeras aproximaciones del uso de gestión de los algoritmos evolutivos, mismo que demuestran un enorme beneficio en tiempo y costos, esfuerzo (Burke, 1999).

Por tanto, el objetivo de este trabajo está orientado a diseñar un sistema de gestión asistido por sistemas digitales (computacional) para el control de aulas diario y generación automática de horarios con el fin de elaborar un modelo de control globalizado para una institución académica mediante el uso de un algoritmo evolutivo, específicamente basado en algoritmos genéticos y una tarjeta de desarrollo Raspberry PI para el control de acceso a las aulas asignadas.

Algoritmos genéticos

Expuesto concisamente, un algoritmo genético (AG) es una técnica de programación que imita a la evolución biológica como estrategia para resolver problemas. Dado un problema específico a resolver, la entrada del AG es un conjunto de soluciones potenciales a ese problema, codificadas de alguna manera, y una métrica llamada función de aptitud que permite evaluar cuantitativamente a cada candidata. Estas candidatas pueden ser soluciones que ya se sabe que funcionan, con el objetivo de que el AG las mejore, pero se suelen generar aleatoriamente.

Luego el AG evalúa cada candidata de acuerdo con la función de aptitud. En un acervo de candidatas generadas aleatoriamente, por supuesto, la mayoría no funcionarán de manera absoluta, y por tanto serán eliminadas. Sin embargo, por puro azar, unas pocas pueden ser prometedoras -pueden mostrar actividad, aunque sólo sea actividad débil e imperfecta- hacia la solución del problema.

Estas candidatas prometedoras se conservan y se les permite reproducirse. Se realizan múltiples copias de ellas, pero las copias no son perfectas; se introducen cambios aleatorios durante el proceso de copia. Luego, esta descendencia digital prosigue con la siguiente generación, formando un nuevo acervo de soluciones candidatas, y son sometidas a una ronda de evaluación de aptitud. Las candidatas que han empeorado o no han mejorado con los cambios en su código son eliminadas de nuevo; pero, de nuevo, por puro azar, las variaciones aleatorias introducidas en la población pueden haber mejorado a algunos individuos, convirtiéndolos en mejores soluciones del problema, más completas o más eficientes. De nuevo, se seleccionan y copian estos individuos vencedores hacia la siguiente generación con cambios aleatorios, y el proceso se repite. Las expectativas son que la aptitud media de la población se incrementará en cada ronda y, por tanto, repitiendo este proceso cientos o miles de rondas, pueden descubrirse soluciones muy buenas del problema.

Representación de los algoritmos genericos

En un Algoritmo Genético las soluciones al problema se pueden considerar como un cromosoma. La representación usada es el esquema binario en el cual un cromosoma es una cadena de la forma (a1, a2,..., ak), donde a1, a2,..., ak se denominan alelos y éstos pueden tomar el valor de cero o uno, en casos más complejos la representación del cromosoma puede representar números o incluso estructuras representadas de manera hexadecimal.

Existen muchas razones por las cuales la codificación binaria es la más utilizada. La mayoría de ellas se refieren al trabajo desarrollado por Holland, ya que comparó dos representaciones diferentes que tuvieran aproximadamente la misma capacidad de acarreo de información, pero de ellas, una tenía pocos alelos y cadenas largas y la otra tenía un número grande de alelos y cadenas cortas.

Holland argumentó que la primera opción permitía un grado más elevado de paralelismo implícito porque permite la creación de más esquemas. Un esquema es una plantilla que describe un subconjunto de cadenas que comparten ciertas similitudes en algunas posiciones a lo largo de su longitud (Holland, 1992).

La ventaja que presentan los algoritmos genéticos es el paralelismo, el algoritmo genético calcula las aptitudes de los individuos en una población, calcula de forma implícita las aptitudes promedio de un número mucho más alto de cadenas cromosómicas a través del cálculo de las aptitudes promedio generando nuevas y mejores poblaciones incrementales.

Por lo tanto, es preferible contar con muchos genes que tengan pocos alelos posibles que contar con pocos genes con muchos alelos posibles. Esto tiene una justificación biológica, ya que en genética es más usual tener cromosomas con muchas posiciones y pocos alelos por posición que pocas posiciones y muchos alelos por posición (Coello, 1999).

Representación en el sistema

El sistema trabaja con variables que respetan reglas que se dividen basándose en dos criterios: Criterio fuerte: Toda aquella regla que no puede ser violada, por ninguna solución propuesta.

Criterios débiles: Toda aquella calificación de una regla administrativa por toma de preferencias de manera consciente o automática.

Dado que el sistema debe de representar los factores de criterio como un número y determinan la mejor solución como la indicadora del mejor puntaje, la representación de las variables se realizara con números en base 10.

La representación binaria es posible utilizarla sin embargo no es necesario limitar tanto la grande las soluciones y realizar estructuras de datos tan inmensa.

Componentes básicos

Un algoritmo genético, es un proceso probabilístico e iterativo que opera sobre un conjunto P de individuos (población), cada uno de los cuales contiene uno o más cromosomas (Mitchell, 1996). Dichos cromosomas permiten que cada individuo represente una posible solución al problema que se está considerando. Un proceso de codificación-decodificación (ρ) permite obtener la solución que los cromosomas de cada individuo contienen. Inicialmente, esta población es generada aleatoriamente.

Cada uno de los individuos de la población recibe, a través de una función de evaluación de la aptitud (fitness (F)), una medida de su comportamiento con respecto al problema a resolver. Este valor es utilizado por el algoritmo.

Proceso de un algoritmo genético

El algoritmo está estructurado en tres fases principales que se ejecutan de manera circular: selección (σ), reproducción (ωx,ωm) y el reemplazo(ψ), las cuales se llevan a cabo de manera repetitiva. Cada una de las iteraciones del algoritmo se denomina ciclo reproductivo básico o generación. Este proceso se realiza hasta que se alcanza un determinado criterio de terminación.

Durante la fase de selección se crea una población temporal P, en la que aquellos individuos más aptos (los correspondientes a las mejores soluciones contenidas en la población) se les aplican los llamados operadores reproductivos. El objetivo de esta fase es producir individuos con nuevas características, idealmente mejores (principio de adaptación).

Finalmente, durante la fase de reemplazo, se substituyen individuos de la población inicial por los nuevos individuos creados. Este reemplazo afecta a los peores individuos y tiende a conservar a los mejores (supervivencia de los mejor adaptados). Todo este proceso se sigue hasta alcanzar el objetivo deseado.

Las funciones de aptitud, selección, cruzamiento, remplazo se definen como las operaciones de control del sistema, el cumulo de los algoritmos constituye el algoritmo genético en sí.

Bases del sistema de optimización de gestión de recursos

El proyecto tiene la finalidad de ser una herramienta que pueda ser usada en la Escuela Superior de Tizayuca o cualquier instituto perteneciente a la Universidad Autónoma del Estado de Hidalgo.

El desarrollo del proyecto está basado en las normas de control y estatutos pertenecientes a los reglamentos establecidos en el periodo del 2014, para la Universidad Autónoma del Estado de Hidalgo.

La siguiente investigación se desarrolla como instrumento de control para la delimitación inteligente de horarios, preferencia de estos mismos en base a reglas estrictas y otras que pueden ser configuradas.

Entidades

A partir del análisis del problema, se han identificado cinco tipos de actores principales:

• Alumno: Entiéndase por cualquier individuo en calidad de alumno afectado por el horario de manera directa, el cual solo puede y debe de consultar los resultados lanzados por el algoritmo evolutivo.

•Profesor: Entiéndase como la entidad cuyo propósito es impartir cátedra en base a disponibilidad (la cual no es estricta) pueden realizar consultas y sintetizar información de las mismas para impartir las grupos en base a las restricciones definidas.

•Aula: Entiéndase como la entidad cuyo propósito es ofertar un espacio físico el cual puede ser un aula o un laboratorio para impartir una clase.

•Clase (Asignatura): Entiéndase como la entidad cuyo propósito es definir un número de horas requeridas para impartir un tema teórico o práctico, que requiere un tipo de espacio físico específico. Este se encuentra asociado a un semestre de un plan académico definido.

•Plan Académico: Entiéndase como la entidad cuyo propósito es definir un número de semestres que contempla una serie de clases requeridas durante un semestre. Este se encuentra asociado a una carrera.

•Sistema horario: Entiéndase por la entidad de uso primordial que recopila las variables (como disponibilidad de tiempo, clases, nombres, número de horas, etc.) que requiere el algoritmo evolutivo, además puede manejar y modificar información del mismo en todo momento además de definir reglas duras y suaves según se necesite. Como resultado genera una solución que satisface las necesidades planteadas por la institución y la información requerida por el sistema de acceso y asistencia. Dicho sistema es gestionado por el Administrador del Sistema.

• Sistema de acceso y asistencia: Entiéndase por la entidad de uso complementario, que administra los espacios físicos de acuerdo a la administración de tiempo de los espacios físicos (aulas), a través del almacenamiento de registros de los encargados del aula (profesores, administradores).

•Administrador de Sistema: Entiéndase como la entidad que tiene acceso al sistema y lleva a cabo tareas de mantenimiento y configuración del Sistema de Horario y el Sistema de Acceso y Asistencia.

Roles

En el siguiente paso del análisis, con respecto a cada uno de los actores identificados, éstos cumplen con los siguientes roles:

a) Alumnos:

•Consultor: Visualiza la información relacionada con el horario que le corresponde acorde a su carrera, semestre y asignaturas correspondientes.

b) Profesor:

•Consultor: Visualiza la información relacionada con el horario asignado.

•Proveedor: Entrega al administrador de sistema sus datos generales a considerarse en la asignación de aulas.

c)Sistema Horario:

•Generador: Utiliza la información recabada, para obtener la administración de tiempos deseada, y exportarla en la manera requerida (para Alumno, Profesor, Grupo o Aula).

•Almacenador: Recolecta la información obtenida de la solución y la guarda en un fichero para continuar trabajando posteriormente.

•Monitor: Provee acceso a la información generada correspondiente a la asignación de aulas, y espera lasolicitud de validación del Sistema de Acceso para la recopilación del pase de lista.

d)Sistema Acceso:

•Verificador: Permite o Niega el acceso al espacio físico basándose en la asignación generada por el Sistema de Horario.

•Gestor de asistencia: Una vez autorizado el acceso manda un mensaje alSistema de Horario para que se registre el pase de lista de los profesores.

e)Administrador de Sistema:

•Capturista: Recopila la información de los profesores, alumnos, aulas, grupos e institución, es su obligación distribuir la información al sistema acceso.

•Consultor: Revisa los reportes del pase de asistencia y los horarios generados.

Reglas

Otra de las finalidades del sistema, es también un control de inspección para las inasistencias en las clases definidas por los algoritmos genéticos, que generan los horarios de manera aproximada a la mejor de las soluciones, dicho control esta dado aprovechando el control de acceso.

El sistema se estructuró en base al paradigma orientado a objetos, su estructura se define entre clases y su relación las cuales interactúan basándose en las siguientes reglas:

Reglas suaves:

En este caso son aquellos conjuntos de reglas admisibles por parte del sistema que pueden o no ser tomadas en cuenta. En este caso, se refiere a las reglas que se aplicarán de forma secundaria cuando se realice la asignación de espacios acorde al tipo de espacio que requiere la clase y la disponibilidad inicial que se tiene registrada del profesor.

•Preferencia de hora para impartir clases: El profesor puede tener asociado un horario en el cual se encuentra disponible para impartir clases. Sin embargo, esto puede ajustarse debido a que el horario del profesor puede ser modificado si por las necesidades de la institución.

•Preferencia en la elección de aulas en base a la afinidad de la carrera del grupo. El algoritmo puede identificar si la clase que se impartirá requiere de un aula o un laboratorio. Esto es relativo puesto que se procurará asignar laboratorios acorde a la asignatura pero se encuentra limitado a la disponibilidad del número de laboratorios disponibles.

Reglas fuertes:

Son aquellas que pese a cualquier proceso o de delimitación de regla suave, deben y siempre se cumplirán las operaciones o consideraciones especificadas bajo estatutos definidos antes, las reglas no pueden ser quebrantadas ni modificadas ni ignoradas, bajo ningún método o agente interno o externo. En este caso se consideran aspectos físicos y temporales en relación a los espacios y los profesores.

•Ningún profesor puede impartir dos clases al mismo tiempo. Un profesor físicamente le es imposible impartir dos clases al mismo tiempo en diferentes lugares.

•Un aula para una sola clase. Esto es estricto puesto en un espacio no se pueden impartir dos clases diferentes.

•No puede impartirse diferentes clases a la misma hora para la misma clase. Esto es estricto puesto en un espacio de tiempo no se pueden impartir dos clases diferentes para el mismo grupo de alumnos.

•Existe un periodo de clase de (7 am a 7 pm). El periodo debe cubrir el total de tiempo requerido para los créditos definidos en dicha materia.

Experimento inicial

El primer experimento tuvo como objetivo validar si el paradigma de los algoritmos genéticos genera una solución que puede ser adoptada considerando las variables y restricciones de la institución.

En este experimento se contemplaron 10 asignaturas de un semestre, 6 profesores con diferentes horarios, contemplando que 2 asignaturas requerían el uso de laboratorios y el resto de aulas dentro de una semana de clases. Asimismo, se aplicaron las reglas suaves y estrictas que se presentaron en la sección 3.2.

Para ello se implementó un algoritmo que contempló estas variantes, obteniéndose resultados satisfactorios. Después de 1590 interacciones, es decir soluciones propuestas, se logró generar un horario que basado en las reglas mencionadas en un tiempo de 5 minutos. Asimismo, se generaron 2 huecos de 1 hora y por ende dos espacios disponibles para casos excepcionales respetándose los horarios establecidos logrando que todas las clases tuvieran asignado un espacio.

Conclusiones

En este trabajo se presentaron las bases del comportamiento de un algoritmo genético así como su aplicación en un campo específico tal como lo es la optimización en la asignación de recursos escolares los cuales se encuentran regidos por reglas estrictas y modificables. Como resultado es posible observar en un primer experimento que dicha propuesta permite generar soluciones ante un problema NP el cual de forma manual requiere de un esfuerzo considerable. Como parte del trabajo futuro se pretende realizar experimentos contemplando toda la carga académica de una carrera e ir incorporando el resto de las carreras hasta contemplar los turnos matutino y vespertino.

Referencias

Banzhaf, Wolfgang; Nordin, Peter; Keller, Robert; y Francone, Frank.Genetic Programming – An Introduction. San Francisco, CA: Morgan Kaufmann 1998.

Burke, E.K. y J.P. Newall.A multistage evolutionary algorithm for the timetable problem. IEEE Transactions on Evolutionary Computation 1999;3:1, 63-74.

Coello, Coello Carlos A. Representación en los Algoritmos Genéticos (Parte 1), Soluciones Avanzadas, Tecnologías de Información y Estrategias de Negocios 1999; 7:69. 50-56.

Glover Fred y Laguna Manuel.General Purpose Heuristics for Integer Programming –Part I. Journal of Heuristics 1997:2, 343-358.

Haupt, Randy y Haupt, Sue Ellen. Practical Genetic Algorithms. USA: John Wiley & Sons 1998.

Holland, John. Genetic Algorithms, Scientific American 1992; 267:1, 66-72.

Mitchell, Melanie. An Introduction to Genetic Algorithms.USA:MIT Press 1996.

Wood, D.C.. A technique for Coloring a Graph Applicable to Large Timetabling Problems. Computer Journal 1968;12, 317-319.

Schechter, Bruce. Putting a Darwinian spin on the diesel engine. The New York Times, 19 de septiembre de 2000.

[a] Profesores Investigadores de la Escuela Superior Tizayuca, Universidad Autónoma del Estado de Hidalgo.