Modellazione
Classi, docenti, discipline, ore, indisponibilità e risorse diventano variabili e domini interi.
Google OR-Tools · Constraint Programming
CP-SAT esplora un enorme spazio di combinazioni applicando contemporaneamente vincoli rigidi e obiettivi di qualità.
Perché CP-SAT
Anche una scuola di dimensioni contenute produce un numero enorme di possibili assegnazioni. Provare combinazioni casuali spreca tempo e non dimostra se una soluzione sia completa o davvero la migliore trovata.
Orario Maestro usa il solver CP-SAT della libreria open source Google OR-Tools, progettato per problemi di pianificazione con variabili intere, persone, attività e risorse limitate.
Dal wizard al calendario
Classi, docenti, discipline, ore, indisponibilità e risorse diventano variabili e domini interi.
Il modello vieta sovrapposizioni, docenti indisponibili, monte ore errati, risorse oltre capienza e altre incompatibilità.
Fra le soluzioni ammesse, una funzione di costo penalizza buchi, materie frammentate e collocazioni sgradite.
Il solver restituisce uno stato preciso: ottimale, fattibile, impossibile, modello non valido o ricerca senza esito entro il limite.
Cosa viene modellato
Una sola attività per fascia, indisponibilità, monte ore, minimo e massimo giornaliero, giorni di servizio, ore consecutive e buchi.
Una lezione per fascia, distribuzione settimanale, attività simultanee, classi articolate e copertura completa.
Massimo giornaliero, blocchi consecutivi, giorni minimi, preferenze di prima o ultima ora e docente assegnato.
Palestre, laboratori e aule speciali non possono essere usati oltre la quantità disponibile nello stesso momento.
Due docenti o un docente e un ITP vengono occupati nella medesima lezione e nella medesima fascia.
Una lezione spostata diventa un nuovo vincolo rigido; CP-SAT ricalcola le altre senza perdere la scelta.
Leggere il risultato
| Stato | Significato operativo |
|---|---|
| OPTIMAL | È stata trovata una soluzione valida e il solver ha dimostrato che nessun’altra ha un costo migliore per l’obiettivo impostato. |
| FEASIBLE | La soluzione rispetta i vincoli rigidi, ma il limite di ricerca non ha permesso di dimostrare che sia la migliore possibile. |
| INFEASIBLE | Il sistema di vincoli è matematicamente incompatibile: almeno una regola o un dato deve cambiare. |
| UNKNOWN | Entro il limite assegnato non è stata trovata una soluzione né dimostrata l’impossibilità. |
Questa distinzione segue gli stati documentati ufficialmente da OR-Tools. Approfondimento: documentazione ufficiale CP-SAT.
Verifica su dati reali