Risolutore / Algoritmo di generazione automatica

Il risolutore di Omniscol calcola automaticamente il posizionamento delle lezioni di un orario settimanale, ciclico o calendario. Posiziona le lezioni create che non sono ancora collocate, può spostare le lezioni già collocate se ciò migliora l'orario e mantiene le lezioni bloccate al loro posto.

Come funziona

Quando si avvia una generazione, Omniscol predispone un ambiente di calcolo dedicato e parallelizzato. Non c'è alcuna coda da gestire lato scuola; l'inizializzazione richiede spesso circa una decina di secondi prima dei primi calcoli visibili. Il risultato dipende dalla qualità dei dati inseriti: siti, aule, professori, gruppi, volumi orari, disponibilità e incompatibilità. Più i vincoli sono numerosi o contraddittori, più la generazione può essere lunga o produrre un risultato parziale.

Il motore è un'IA di ottimizzazione metaeuristica Monte Carlo neuro-simbolica: combina ricerca stocastica, regole di business simboliche e scoring dei vincoli. Il punto importante è operativo: il risolutore è progettato per casi molto vincolati, segnalando al contempo le situazioni impossibili invece di nascondere i conflitti.

Vincoli rigidi

Il risolutore rispetta rigorosamente i vincoli che renderebbero l'orario non valido:

  • un professore non può trovarsi in due luoghi contemporaneamente;
  • una classe non può seguire due lezioni contemporaneamente, salvo i casi previsti da gruppi in partizione;
  • le disponibilità e i vincoli di livello impossibile bloccano il posizionamento;
  • un'aula standard non può ospitare due lezioni nello stesso momento;
  • un'aula grande può ospitare più lezioni solo entro i limiti di capacità e di numero di classi configurati;
  • le aule specializzate, le capacità, le risorse materiali e gli spostamenti tra siti devono restare compatibili;
  • una lezione bloccata conserva la propria posizione.

Vincoli di ottimizzazione

I vincoli morbidi servono a valutare e migliorare le soluzioni trovate. Non vengono ignorati: diventano penalità che il risolutore cerca di ridurre.

Esempi frequenti:

  • disponibilità o vincoli indesiderati per un professore, un'aula, una materia, un gruppo o una classe;
  • incompatibilità pedagogiche tra materie, per esempio evitare un laboratorio prima della lezione frontale corrispondente, evitare lo sport subito dopo una lezione molto intensa, oppure imporre l'ordine di una progressione;
  • evitare di avere due volte la stessa materia nello stesso giorno per una classe;
  • minimo o massimo di ore di lezione al giorno o a settimana;
  • equilibrio delle giornate;
  • riduzione dei buchi negli orari delle classi e dei professori;
  • numero di giorni di presenza dei professori, secondo le consuetudini della scuola o del paese.

La ricerca di una soluzione valida è la prima fase. L'ottimizzazione delle penalità può poi diventare la parte più lunga del calcolo.

Disponibilità

  • Orari settimanali — disponibile.
  • Orari ciclici — disponibile.
  • Orari calendario — disponibile con lezioni datate e un intervallo di date.

Cosa fare se la generazione non riesce

Se non viene trovata alcuna soluzione completa, Omniscol conserva il miglior orario calcolato e lascia le lezioni impossibili da collocare nell'elenco dei post-it non posizionati. Può quindi ispezionare l'orario parziale, leggere la diagnostica e correggere i vincoli.

Cause frequenti:

  • disponibilità troppo restrittive (un professore non ha alcuna fascia oraria libera compatibile),
  • aule insufficienti, oppure nessuna aula specializzata disponibile,
  • allineamento incoerente (volumi orari diversi tra i gruppi allineati),
  • incompatibilità troppo numerose o troppo rigide,
  • effettivo teorico della classe > capacità di tutte le aule candidate.

Vedi Diagnosticare una generazione che fallisce.

Forzare il posizionamento di una lezione

Può bloccare la posizione di una lezione prima di rilanciare la generazione: il risolutore non la sposta più, ma adatta le altre intorno. Utile per ancorare le lezioni «immutabili» (interventi esterni fissati per contratto, esami datati, ecc.).

See also