Restricciones de horarios

Restricciones duras en el horario escolar: las reglas que deciden la factibilidad

Qué pertenece al conjunto duro, por qué la respuesta correcta a un conjunto imposible es la inviabilidad y cómo mantener las preferencias fuera de él.

Juho Isola, fundador de Smootables

Una restricción dura es una regla de factibilidad: si el horario la rompe, el horario no sirve. Ningún docente en dos lugares, ninguna clase en dos lecciones, ningún aula con doble reserva, todas las lecciones requeridas programadas, la no disponibilidad docente respetada, todo dentro de la jornada lectiva.

El comportamiento que la define es lo que ocurre cuando el conjunto no puede satisfacerse. Un generador correcto informa de que no hay solución factible; no coloca en silencio una lección que rompe una regla. La inviabilidad es información.

Esta guía trata qué pertenece al conjunto duro y la disciplina de mantener las preferencias fuera de él. La otra mitad del modelo está en restricciones blandas.

Ideas clave

  • Las restricciones duras definen la factibilidad; una sola infracción hace inutilizable el horario.
  • El conjunto estándar: choques de docente, clase y aula, lecciones requeridas, no disponibilidad y jornada lectiva.
  • Un conjunto duro imposible debe aflorar como inviabilidad, nunca como una infracción oculta.
  • Clasifique las reglas como duras, firmes o blandas antes de decirle a un solver que todo es obligatorio.

El conjunto duro estándar

Seis reglas se repiten en casi todos los horarios escolares: sin choque de docentes, sin choque de clases, sin choque de aulas, todas las lecciones requeridas programadas, la no disponibilidad docente respetada y todas las actividades dentro de la jornada lectiva. Cada una es binaria. No existe un docente ligeramente duplicado.

Todo lo demás empieza su vida como preferencia. Ese es el criterio de trabajo: una regla entra en el conjunto duro solo cuando alguien puede decir qué se rompe si se infringe.

La inviabilidad es la respuesta correcta

Cuando el conjunto duro no puede satisfacerse, el generador útil lo dice. Un informe de inviabilidad le indica qué compromisos chocan; una regla doblada en silencio no le dice nada hasta que un docente encuentra el choque en la primera semana.

Por eso las restricciones duras son un contrato, no un deseo. Si usted aceptaría que la regla se rompiera bajo presión, nunca fue dura. Muévala al conjunto blando con una penalización y deje que se negocie abiertamente.

Clasifique antes de generar

La práctica documentada es clasificar las reglas como duras, firmes o blandas en lugar de declararlo todo obligatorio.

  1. Haga una lista de todas las reglas que alguien haya pedido que el horario respete.
  2. Marque como duras solo las reglas cuya infracción hace inutilizable la cuadrícula.
  3. Marque como firmes las reglas que la escuela doblaría en una emergencia concreta, y registre quién lo decide.
  4. Todo lo demás es blando: asígnele un peso de penalización en lugar de un veto.
  5. Compruebe si el conjunto duro es imposible en su totalidad antes de la primera ejecución.
  6. Revise la clasificación cuando cambien los compromisos de la escuela, no en plena crisis.

Cómo hacerlo en Smootables: reglas que el solver no romperá

Una regla dura hecha visible: el choque se nombra antes de que el movimiento se complete.

El solver de Smootables trata los choques y la disponibilidad como duros: su primera fase busca una cuadrícula que satisfaga las reglas duras, y solo después una segunda fase mejora la calidad. Si el conjunto duro no puede satisfacerse, la generación falla con un informe que nombra las causas del conflicto y acciones sugeridas, en lugar de devolver una cuadrícula rota.

La no disponibilidad dura se introduce en Disponibilidad, dentro de Recursos: bloqueos de fechas de día completo y reglas semanales repetidas dentro del día, para docentes y aulas. Las ediciones manuales reciben la misma protección con otra intensidad: soltar una lección donde choca abre un diálogo de conflictos que nombra qué colisionaría, y continuar registra el conflicto en lugar de ocultarlo.

Endurecer en exceso: el fallo habitual

El error de modelado más común es ascender preferencias al conjunto duro: peticiones horarias de docentes, deseos de no tener teoría en el último periodo, aulas favoritas. Cada ascenso reduce el espacio factible, y con los suficientes queda vacío. El fallo llega entonces como una inviabilidad sin explicación, que no señala nada en concreto.

Cuando una ejecución informa de inviabilidad, audite primero el conjunto duro: ¿cuál de estas reglas es en realidad una preferencia disfrazada de veto? Las comprobaciones que detectan esto antes de generar se tratan en validación de restricciones; qué comprobar en los propios datos está en comprobar los datos del horario.

Preguntas de planificadores sobre restricciones duras

¿Qué ocurre si marcamos todas las reglas como obligatorias?

Si el conjunto es imposible en su totalidad, se aplica la advertencia documentada: los intercambios del solver se vuelven impredecibles, porque usted no le dio ninguna jerarquía con la que negociar. Clasifique las restricciones como duras, firmes o blandas y los intercambios pasarán a ser suyos.

¿Un choque de estudiantes es duro o blando?

Según la política, cualquiera de los dos. Algunas escuelas tratan cualquier choque de estudiantes como inviable; otras aceptan una infracción puntuada en casos concretos. La clave es que es una decisión que hay que registrar, no un valor por defecto que se hereda.

¿Por qué un horario factible puede seguir siendo malo?

Porque las restricciones duras solo garantizan la legalidad. La calidad (huecos, distribución, días compactos) vive en el conjunto blando. Una cuadrícula puede cumplir todas las reglas duras y aun así ser una mala semana para todos los que viven en ella.

Más guías sobre este tema

Descubra cómo encaja Smootables en su centro

Reserve una demostración y adaptaremos Smootables a su proceso de planificación, carga docente y horarios.