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.
- Haga una lista de todas las reglas que alguien haya pedido que el horario respete.
- Marque como duras solo las reglas cuya infracción hace inutilizable la cuadrícula.
- Marque como firmes las reglas que la escuela doblaría en una emergencia concreta, y registre quién lo decide.
- Todo lo demás es blando: asígnele un peso de penalización en lugar de un veto.
- Compruebe si el conjunto duro es imposible en su totalidad antes de la primera ejecución.
- 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á
Period
Room A
Period
Room A
Period
Room A
Period
Room A
Period
Room A
Period
Room A
Period
Room A
Period
Room A
Period
Room A
Period
Room A
Conflicts detected
The following conflicts will occur if you proceed:
Room Lab B is already bookedChemistry practical at 13:00–14:30
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.