Generación automática / Algoritmo de generación de horarios
La generación automática de Omniscol calcula de forma automática la colocación de las sesiones de un horario semanal, cíclico o calendario. Coloca las sesiones creadas que aún no están posicionadas, puede desplazar las sesiones ya posicionadas si con ello mejora el horario, y mantiene en su lugar las sesiones bloqueadas.
Cómo funciona
Cuando usted inicia una generación, Omniscol pone en marcha un entorno de cálculo dedicado y paralelizado. No hay ninguna cola de espera que gestionar por parte del centro; la inicialización suele tardar alrededor de una decena de segundos antes de los primeros cálculos visibles. El resultado depende de la calidad de los datos introducidos: sedes, aulas, profesores, grupos, volúmenes horarios, disponibilidad e incompatibilidades. Cuanto más numerosas o contradictorias sean las restricciones, más larga puede ser la generación o más parcial el resultado.
El motor es una IA de optimización metaheurística de Monte-Carlo neurosimbólica: combina búsqueda estocástica, reglas de negocio simbólicas y puntuación de las restricciones. El punto importante es operativo: el algoritmo de generación está diseñado para casos muy restringidos, y a la vez señala las situaciones imposibles en lugar de ocultar los conflictos.
Restricciones estrictas
El algoritmo de generación respeta estrictamente las restricciones que harían el horario inválido:
- un profesor no puede estar en dos lugares al mismo tiempo;
- una clase no puede asistir a dos sesiones al mismo tiempo, salvo en los casos previstos por grupos en partición;
- la disponibilidad y las restricciones de nivel no disponible bloquean la colocación;
- un aula estándar no puede acoger dos sesiones en el mismo momento;
- un aula grande puede acoger varias sesiones solo dentro de los límites de capacidad y de número de clases configurados;
- las aulas especializadas, las capacidades, los recursos materiales y los desplazamientos entre sedes deben seguir siendo compatibles;
- una sesión bloqueada conserva su posición.
Restricciones de optimización
Las restricciones flexibles sirven para puntuar y mejorar las soluciones encontradas. No se ignoran: se convierten en penalizaciones que el algoritmo de generación trata de reducir.
Ejemplos frecuentes:
- disponibilidad o restricciones no deseables para un profesor, un aula, una asignatura, un grupo o una clase;
- incompatibilidades pedagógicas entre asignaturas, por ejemplo evitar unas prácticas antes de la sesión correspondiente, evitar el deporte justo después de una sesión muy densa, o imponer el orden de una progresión;
- evitar tener dos veces la misma asignatura en el mismo día para una clase;
- mínimo o máximo de horas de clase por día o por semana;
- equilibrio de las jornadas;
- reducción de los huecos en los horarios de las clases y de los profesores;
- número de días de presencia de los profesores, según los usos del centro o del país.
La búsqueda de una solución válida es la primera etapa. La optimización de las penalizaciones puede convertirse después en la parte más larga del cálculo.
Disponibilidad
- Horarios semanales — disponible.
- Horarios cíclicos — disponible.
- Horarios calendario — disponible con sesiones fechadas y un rango de fechas.
Qué hacer si la generación falla
Si no se encuentra ninguna solución completa, Omniscol conserva el mejor horario calculado y deja las sesiones imposibles de colocar en la lista de notas adhesivas sin posicionar. Usted puede entonces inspeccionar el horario parcial, leer el diagnóstico y corregir las restricciones.
Causas frecuentes:
- disponibilidad demasiado restrictiva (un profesor no tiene ninguna franja horaria libre compatible),
- pocas aulas, o ningún aula especializada disponible,
- alineación incoherente (volúmenes horarios distintos entre los grupos alineados),
- incompatibilidades demasiado numerosas o demasiado estrictas,
- número teórico de alumnos de la clase > capacidad de todas las aulas candidatas.
Véase Diagnosticar una generación que falla.
Forzar la colocación de una sesión
Usted puede bloquear la posición de una sesión antes de relanzar la generación: el algoritmo de generación ya no la desplaza, sino que ajusta las demás a su alrededor. Práctico para anclar las sesiones «inamovibles» (intervenciones externas fijadas por contrato, exámenes con fecha, etc.).