Punti chiave
- I vincoli rigidi definiscono la fattibilità; una sola violazione rende l’orario inutilizzabile.
- L’insieme standard: conflitti di docente, classe e aula, lezioni richieste, indisponibilità, giornata didattica.
- Un insieme rigido impossibile deve emergere come infattibilità, mai come violazione nascosta.
- Classifica le regole come rigide, ferme o morbide prima di dire al solver che tutto è obbligatorio.
L’insieme rigido standard
Sei regole ricorrono in quasi ogni orario scolastico: nessun conflitto di docente, nessun conflitto di classe, nessun conflitto di aula, ogni lezione richiesta programmata, indisponibilità dei docenti rispettata e tutte le attività dentro la giornata didattica. Ognuna è binaria. Non esiste un docente prenotato due volte solo un po’.
Tutto il resto nasce come preferenza. Questo è il default di lavoro: una regola entra nell’insieme rigido solo quando qualcuno sa dire cosa si rompe se viene violata.
L’infattibilità è la risposta corretta
Quando l’insieme rigido non può essere soddisfatto, il generatore utile lo dice. Un report di infattibilità ti mostra quali impegni collidono; una regola piegata in silenzio non ti dice nulla finché un docente non trova il conflitto nella prima settimana.
Per questo i vincoli rigidi sono un contratto, non un desiderio. Se accetteresti che la regola venga violata sotto pressione, non era mai stata rigida. Spostala nell’insieme morbido con una penalità e lascia che venga scambiata alla luce del sole.
Classifica prima di generare
La pratica documentata è classificare le regole come rigide, ferme o morbide invece di dichiarare tutto obbligatorio.
- Elenca ogni regola che qualcuno ha chiesto all’orario di rispettare.
- Segna come rigide solo le regole la cui violazione rende la griglia inutilizzabile.
- Segna come ferme le regole che la scuola piegherebbe in un’emergenza definita, e registra chi decide.
- Tutto il resto è morbido: assegnagli un peso di penalità invece di un veto.
- Controlla che l’insieme rigido non sia impossibile nel suo complesso prima della prima esecuzione.
- Rivedi la classificazione quando cambiano gli impegni della scuola, non nel mezzo di una crisi.
Come farlo in Smootables: regole che il solver non violerà
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
Il solver di Smootables tratta conflitti e disponibilità come rigidi: la sua prima fase cerca una griglia che soddisfi le regole rigide, e solo dopo una seconda fase migliora la qualità. Se l’insieme rigido non può essere soddisfatto, la generazione fallisce con un report che nomina le cause del conflitto e le azioni suggerite, invece di restituire una griglia rotta.
L’indisponibilità rigida si inserisce sotto Disponibilità in Risorse: blocchi di date a giornata intera e regole settimanali ricorrenti dentro la giornata, per docenti e aule. Le modifiche manuali hanno la stessa protezione con una forza diversa: trascinare una lezione dove crea un conflitto apre una finestra dei conflitti che nomina cosa colliderebbe, e procedere registra il conflitto invece di nasconderlo.
Troppi vincoli rigidi: l’errore più comune
L’errore di modellazione più comune è promuovere le preferenze nell’insieme rigido: richieste di orario dei docenti, il desiderio di niente teoria nell’ultimo periodo, aule preferite. Ogni promozione restringe lo spazio fattibile, e un numero sufficiente lo svuota. Il fallimento arriva poi come infattibilità inspiegata, che non indica nulla in particolare.
Quando un’esecuzione risulta infattibile, controlla prima l’insieme rigido: quale di queste regole è in realtà una preferenza travestita da veto? I controlli che lo intercettano prima della generazione sono trattati nella validazione dei vincoli; cosa controllare nei dati stessi è in controllare i dati dell’orario.
Domande dei pianificatori sui vincoli rigidi
Cosa succede se segniamo ogni regola come obbligatoria?
Se l’insieme è impossibile nel suo complesso, vale l’avvertimento documentato: i compromessi del solver diventano imprevedibili, perché non gli hai dato nessuna gerarchia con cui scambiare. Classifica invece i vincoli come rigidi, fermi o morbidi, e i compromessi tornano nelle tue mani.
Un conflitto di studenti è rigido o morbido?
Per politica, l’uno o l’altro. Alcune scuole trattano qualsiasi conflitto di studenti come infattibile; altre accettano una violazione con penalità in casi ristretti. Il punto è che è una decisione da registrare, non un default da ereditare.
Perché un orario fattibile può comunque essere cattivo?
Perché i vincoli rigidi garantiscono solo la legalità. La qualità (buchi, distribuzione, giornate compatte) vive nell’insieme morbido. Una griglia può rispettare ogni regola rigida ed essere comunque una brutta settimana per tutti quelli che ci stanno dentro.