FAQ — Comportamento dell'algoritmo di generazione
Domande frequenti sul comportamento del motore di generazione automatica. Per la descrizione del risolutore in sé, vedere Risolutore; per il dettaglio operativo, vedere Generazione automatica.
Su quali tipi di orario funziona il risolutore?
Sugli orari settimanali, ciclici e a calendario. In modalità calendario, le lezioni sono collocate su date reali e le opzioni di generazione includono limiti di date.
Come funziona l'algoritmo?
Omniscol avvia un'elaborazione di risoluzione in background. Il risolutore valuta le lezioni da collocare, i vincoli dichiarati e le preferenze di generazione. Il risultato dipende soprattutto dalla qualità dei dati: volumi orari, professori, aule, gruppi, disponibilità, incompatibilità e vincoli inter-sito.
Ogni generazione avvia un ambiente di calcolo dedicato e parallelizzato. Non c'è alcuna coda da gestire lato scuola; l'inizializzazione richiede spesso una decina di secondi prima che il calcolo effettivo abbia inizio. Nel modulo Gestione degli orari, il pulsante Generare un orario avvia il calcolo, ne segue lo stato e permette di ispezionare il risultato.
Il motore è un'IA di ottimizzazione metaeuristica Monte-Carlo neuro-simbolica: ricerca stocastica, vincoli simbolici e ottimizzazione progressiva dei punteggi. Non è una promessa di successo su un insieme di vincoli impossibile; in tal caso, Omniscol restituisce una diagnostica.
Quanto tempo richiede una generazione?
La durata dipende dalla dimensione dell'orario, dal numero di lezioni, dal numero di vincoli e dalle opzioni scelte. A titolo di ordine di grandezza, una scuola secondaria di circa 550 studenti, 45 professori e 16 classi, con molte disponibilità, può ottenere in meno di un minuto un orario completo, con pochissimi o nessun buco, quando i dati sono coerenti. Un caso più denso, molto vincolato o con ottimizzazioni onerose può richiedere nettamente più tempo.
Il risolutore rispetta tutti i vincoli?
I vincoli rigidi sono rispettati rigorosamente:
- un professore in un solo luogo nello stesso momento;
- una classe senza doppia collocazione, salvo i gruppi in partizione;
- disponibilità e fasce orarie contrassegnate come indisponibili;
- aula standard occupata da una sola lezione alla volta;
- aula grande utilizzata solo entro i suoi limiti di capacità e di numero di classi;
- aule specializzate, capacità, risorse materiali e spostamenti inter-sito compatibili;
- lezioni bloccate mantenute al loro posto.
I vincoli flessibili (disponibilità indesiderate, preferenze, ponderazione pedagogica, equilibrio delle giornate, numero di giorni di presenza, buchi negli orari) sono ottimizzati al meglio. Creano dei malus: il risolutore cerca la soluzione che ne accumula il minor numero, ma può conservarne alcuni se è il miglior compromesso compatibile con i vincoli rigidi.
Cosa fare se la generazione fallisce?
Quando non viene trovata alcuna soluzione completa, Omniscol restituisce il miglior orario calcolato e lascia le lezioni non posizionate nella barra dei post-it. L'orario parziale resta consultabile per capire ciò che è stato collocato, poi correggere i vincoli o riposizionare manualmente alcune lezioni. Le cause più frequenti sono descritte nella pagina Diagnosticare una generazione che fallisce.
È possibile forzare manualmente la posizione di una lezione?
Sì, tramite il blocco di una lezione dopo il posizionamento manuale. Il risolutore non sposta una lezione bloccata durante una nuova generazione, ma adatta le altre attorno ad essa. Utile per ancorare le lezioni immutabili (interventi esterni a data fissa, esami datati).
Perché il risolutore non propone più soluzioni?
Il risolutore ottimizza in base ai vincoli e alle preferenze dichiarate e restituisce la migliore soluzione trovata. Per ottenere più soluzioni da confrontare, duplichi l'orario prima di ogni generazione e regoli leggermente i vincoli o le ponderazioni tra due passaggi.
Il risolutore tiene conto delle assenze dichiarate?
Il risolutore si applica sull'orario strutturale, indipendentemente dalle assenze. Le assenze sono gestite a posteriori nel modulo Gestione delle assenze (vedere Panoramica del modulo Assenze), con impatto sulla visualizzazione dell'orario pubblicato e sulle statistiche del Dashboard (non sulla struttura sottostante).
Conflitto volontario e conflitto bloccante
Non tutti i conflitti sono equivalenti:
- Conflitti non bloccanti — possono essere lasciati come sono se si tratta di una scelta deliberata (per esempio, un'aula il cui organico visualizzato eccede la capacità perché si sa che non tutti gli iscritti si presenteranno). L'avviso resta visibile ma non blocca.
- Conflitti bloccanti — impediscono alla generazione automatica di riuscire (nessuna aula compatibile, allineamento incoerente, ecc.). Il pulsante Generare un orario resta disattivato finché questi conflitti persistono.
Vedere Conflitto.