118 lines
5.0 KiB
Markdown
118 lines
5.0 KiB
Markdown
# 13. Generazione dell'orario
|
|
|
|
È il momento in cui il sistema costruisce l'orario al posto tuo. In questa pagina
|
|
imposti l'ambito e le impostazioni, avvii il **motore di ottimizzazione** e ne
|
|
segui l'avanzamento in tempo reale.
|
|
|
|
> Voce di menu: **Timetable → Generate**.
|
|
|
|
## Prima di iniziare: la lista di controllo
|
|
|
|
La generazione riesce solo se i dati sono completi. Verifica di aver definito:
|
|
|
|
- [ ] l'**anno scolastico** ([cap. 4](04-anni-scolastici.md));
|
|
- [ ] almeno una **scuola** ([cap. 5](05-scuole.md));
|
|
- [ ] gli **orari delle campanelle** per ogni scuola ([cap. 7](07-orari-e-campanella.md));
|
|
- [ ] le **materie** ([cap. 8](08-materie.md));
|
|
- [ ] le **classi** con **monte ore** e **docenti assegnati** ([cap. 9](09-classi.md));
|
|
- [ ] i **docenti** con i loro limiti ([cap. 10](10-docenti.md));
|
|
- [ ] le **aule/laboratori** se richiesti ([cap. 6](06-aule-e-laboratori.md));
|
|
- [ ] i **tempi di viaggio** se hai più plessi ([cap. 11](11-spostamenti.md));
|
|
- [ ] (facoltativo) le **preferenze** dei docenti ([cap. 12](12-raccolta-preferenze.md)).
|
|
|
|
## Come lavora il motore, in due parole
|
|
|
|
Il motore prima cerca una soluzione che rispetti **tutti i vincoli rigidi**
|
|
(orario *ammissibile*), poi la **migliora** massimizzando le preferenze (orario
|
|
*di qualità*). Può trovare **più soluzioni** e proporti le migliori a confronto.
|
|
Non devi capire la matematica sottostante: ti basta configurare bene i dati e
|
|
scegliere quanto tempo concedergli.
|
|
|
|
## Passo 1 — Scegliere l'anno e l'ambito
|
|
|
|
1. Seleziona l'**anno scolastico** di destinazione.
|
|
2. Scegli l'**ambito (scope)**:
|
|
- **tutto l'istituto** (tutte le scuole e tutte le classi), oppure
|
|
- un **sottoinsieme** (alcune scuole o alcune classi).
|
|
|
|
> **Ambito più stretto = calcolo più rapido.** Generare per una sola scuola alla
|
|
> volta è utile per fare prove veloci o per programmare in modo incrementale
|
|
> (generi e "congeli" una parte, poi procedi con il resto).
|
|
|
|
## Passo 2 — Scegliere il preset e i pesi
|
|
|
|
Un **preset** è una configurazione salvata che dice al sistema **quanto** dare
|
|
importanza a ciascun obiettivo di qualità (i **pesi**).
|
|
|
|
- Per il **primo orario** lascia il **preset predefinito**: i pesi standard vanno
|
|
bene nella maggior parte dei casi.
|
|
- In seguito puoi creare preset personalizzati per dare più peso, ad esempio, alla
|
|
**riduzione degli spostamenti** o al **rispetto delle preferenze**.
|
|
|
|
Passando il mouse sulle singole opzioni compaiono dei **suggerimenti** che spiegano
|
|
a cosa serve ciascun peso. Per capire *come* i pesi influenzano il risultato, leggi
|
|
[Comprendere i punteggi di qualità](14-comprendere-i-punteggi.md).
|
|
|
|
> **Regola d'oro dei pesi.** I pesi sono **priorità relative**, non percentuali.
|
|
> Alzare il peso di un obiettivo lo fa preferire *a scapito* degli altri. Cambia
|
|
> **un peso alla volta** e rigenera, così capisci l'effetto di ciascuna modifica.
|
|
|
|
> [Immagine: pagina Generate con selezione ambito, preset e pesi] — Didascalia: i
|
|
> suggerimenti a comparsa spiegano ogni opzione.
|
|
|
|
## Passo 3 — Impostare le opzioni del solutore
|
|
|
|
Le principali impostazioni tecniche sono:
|
|
|
|
- **Tempo massimo (timeout):** per quanti secondi il motore può lavorare. Più tempo
|
|
gli concedi, migliore può essere la soluzione. Per istituti grandi, aumenta questo
|
|
valore.
|
|
- **Numero massimo di soluzioni:** quante alternative raccogliere per il confronto.
|
|
|
|
Puoi partire dai valori predefiniti e regolarli in base ai risultati.
|
|
|
|
## Passo 4 — Avviare e seguire l'avanzamento
|
|
|
|
Premi **Generate** (Genera). Durante il lavoro vedrai un **avanzamento in tempo
|
|
reale**:
|
|
|
|
- il numero di **soluzioni trovate** finora;
|
|
- la **qualità** (valore obiettivo) della migliore soluzione trovata;
|
|
- il **tempo trascorso**.
|
|
|
|
> [Immagine: barra di avanzamento con soluzioni trovate e tempo trascorso] —
|
|
> Didascalia: puoi seguire il lavoro del motore mentre procede.
|
|
|
|
Lascia la pagina aperta durante il calcolo. Se la connessione in tempo reale
|
|
dovesse interrompersi, il sistema continua comunque a lavorare e aggiorna lo stato
|
|
periodicamente.
|
|
|
|
## Passo 5 — Leggere l'esito
|
|
|
|
Al termine, il riepilogo mostra:
|
|
|
|
- quante **soluzioni** sono state trovate;
|
|
- la **qualità** della migliore;
|
|
- quante **lezioni (voci di orario)** sono state collocate;
|
|
- il collegamento per **vedere l'orario** generato.
|
|
|
|
Da qui passi alla pagina di [Revisione](15-revisione-orario.md), dove le versioni
|
|
prodotte si analizzano e si confrontano in dettaglio.
|
|
|
|
## Se non trova soluzioni
|
|
|
|
Se il motore **non trova alcuna soluzione**, quasi sempre significa che i vincoli
|
|
rigidi sono in conflitto (l'orario richiesto è *impossibile*, non solo difficile).
|
|
Le cause tipiche sono monte ore che non entra nella griglia, indisponibilità
|
|
eccessive o tempi di viaggio incompatibili. Trovi la diagnostica passo-passo in
|
|
[Buone pratiche e risoluzione dei problemi](18-buone-pratiche-e-problemi.md).
|
|
|
|
---
|
|
|
|
Prima di confrontare le versioni, impariamo a **leggere i punteggi** che ne
|
|
misurano la qualità.
|
|
|
|
---
|
|
|
|
[← Precedente: Raccolta preferenze](12-raccolta-preferenze.md) · [Indice](README.md) · [Successivo: Comprendere i punteggi →](14-comprendere-i-punteggi.md)
|