First version 2025.07.16
This commit is contained in:
@@ -0,0 +1,117 @@
|
||||
# 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)
|
||||
Reference in New Issue
Block a user