Google OR-Tools · Constraint Programming

Un motore matematico, non un generatore casuale.

CP-SAT esplora un enorme spazio di combinazioni applicando contemporaneamente vincoli rigidi e obiettivi di qualità.

Perché CP-SAT

L’orario è un problema di soddisfacimento dei vincoli.

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.

Ogni possibile lezione è una variabile: il solver decide se collocarla in una fascia soltanto se tutte le equazioni e disuguaglianze restano valide.

Dal wizard al calendario

Quattro fasi verificabili.

01

Modellazione

Classi, docenti, discipline, ore, indisponibilità e risorse diventano variabili e domini interi.

02

Vincoli rigidi

Il modello vieta sovrapposizioni, docenti indisponibili, monte ore errati, risorse oltre capienza e altre incompatibilità.

03

Ottimizzazione

Fra le soluzioni ammesse, una funzione di costo penalizza buchi, materie frammentate e collocazioni sgradite.

04

Certificazione dello stato

Il solver restituisce uno stato preciso: ottimale, fattibile, impossibile, modello non valido o ricerca senza esito entro il limite.

Cosa viene modellato

Esempi di vincoli gestiti.

Persone

Una sola attività per fascia, indisponibilità, monte ore, minimo e massimo giornaliero, giorni di servizio, ore consecutive e buchi.

Classi e gruppi

Una lezione per fascia, distribuzione settimanale, attività simultanee, classi articolate e copertura completa.

Discipline

Massimo giornaliero, blocchi consecutivi, giorni minimi, preferenze di prima o ultima ora e docente assegnato.

Risorse

Palestre, laboratori e aule speciali non possono essere usati oltre la quantità disponibile nello stesso momento.

Compresenze

Due docenti o un docente e un ITP vengono occupati nella medesima lezione e nella medesima fascia.

Modifiche manuali

Una lezione spostata diventa un nuovo vincolo rigido; CP-SAT ricalcola le altre senza perdere la scelta.

Leggere il risultato

“Ottimale” e “fattibile” non significano la stessa cosa.

StatoSignificato operativo
OPTIMALÈ stata trovata una soluzione valida e il solver ha dimostrato che nessun’altra ha un costo migliore per l’obiettivo impostato.
FEASIBLELa soluzione rispetta i vincoli rigidi, ma il limite di ricerca non ha permesso di dimostrare che sia la migliore possibile.
INFEASIBLEIl sistema di vincoli è matematicamente incompatibile: almeno una regola o un dato deve cambiare.
UNKNOWNEntro 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

Metti alla prova il modello della tua scuola.

Richiedi una dimostrazione