Periodicità e Parametri Variabili nel Tempo
Cos’è la periodicità?
I processi reali non funzionano sempre allo stesso modo. Nell’assistenza clienti, le chiamate aumentano durante l’orario lavorativo. Nel manufacturing, i turni variano in base al personale. Nel retail ci sono picchi stagionali.
La periodicità ti permette di definire quando si applicano certe regole di simulazione. Al posto di un solo valore globale, puoi impostare parametri diversi per momenti diversi:
- Giorni feriali vs weekend
- Turno mattina vs sera
- Alta stagione vs bassa stagione
- Orari lavorativi vs fuori orario
In questo modo la simulazione riflette la realtà nei diversi contesti temporali.
Perché la periodicità è importante
Ecco un esempio semplice: la modellazione degli arrivi clienti.
Senza periodicità:
- 10 clienti all’ora, 24/7
Con periodicità:
- 25 clienti/ora feriali 9:00-18:00
- 15 clienti/ora feriali 18:00-21:00
- 5 clienti/ora weekend
- 2 clienti/ora di notte
Il secondo modello riflette schemi di domanda realistici che influenzano le code, l’uso delle risorse e il throughput.
Tipi di periodicità disponibili
ProcessMind supporta nove tipi di periodicità, ognuno dei quali definisce quando una regola si applica:
| Tipo | Parametri | Descrizione |
|---|---|---|
| Always | (nessuno) | Regola sempre attiva, nessuna variazione |
| Default | (nessuno) | Regola di fallback quando nessun’altra regola temporale corrisponde |
| Fixed Period | startDateTime, endDateTime | Periodo unico (non ricorrente) |
| Each Day | startTime, endTime | Stesse ore ogni giorno |
| Each Weekday | startTime, endTime | Solo dal lunedì al venerdì |
| Each Weekend Day | startTime, endTime | Solo sabato e domenica |
| Each Week | startDay, startTime, endDay, endTime | Ricorrenza settimanale, può coprire più giorni |
| Each Month | startDayOfMonth, startTime, endDayOfMonth, endTime | Ricorrenza mensile |
| Each Year | startMonth, startDayOfMonth, startTime, endMonth, endDayOfMonth, endTime | Ricorrenza annuale o stagionale |
Dettaglio dei tipi di periodicità
Always
L’opzione più semplice: la regola è sempre attiva, senza variazioni.
Usa questa modalità se: Il parametro non cambia nel tempo o vuoi una simulazione base semplice.
Default
Funziona da fallback se nessun’altra regola temporale corrisponde nel periodo corrente.
Usa questa modalità se: Vuoi gestire alcune eccezioni in orari specifici e dare un valore di default agli altri casi.
Includi sempre il Default
Quando usi più regole di periodicità, inserisci sempre una regola Default per coprire buchi temporali. Così eviti comportamenti inattesi.
Each Day
La regola si applica in una fascia oraria specifica tutti i giorni della settimana.
Parametri:
startTime: Ora di inizio regola (esempio: 09:00)endTime: Ora di fine regola (esempio: 17:00)
Esempio: Orario lavorativo 09:00-17:00 valido tutti i giorni, anche nel weekend.
Each Weekday
La regola si applica in una fascia oraria specifica solo dal lunedì al venerdì.
Parametri:
startTime: Ora di inizioendTime: Ora di fine
Esempio: L’assistenza clienti lavora 08:00-18:00 nei giorni feriali, con regole diverse nel weekend.
Each Weekend Day
La regola si applica in una fascia oraria specifica solo sabato e domenica.
Parametri:
startTime: Ora di inizioendTime: Ora di fine
Esempio: Orario ridotto di supporto 10:00-16:00 nel weekend.
Each Week
La regola si applica su un intervallo che può coprire più giorni della settimana. Utile per schemi che non coincidono con giorni singoli.
Parametri:
startDay: Giorno di inizio (lunedì, martedì, ecc.)startTime: Ora di inizio giornataendDay: Giorno di fineendTime: Ora di fine giornata
Esempio: Periodo di alto volume da mercoledì ore 14:00 a venerdì ore 12:00.
Each Month
La regola si applica in certi giorni di ogni mese.
Parametri:
startDayOfMonth: Giorno di inizio (1-31)startTime: Ora nel giorno di inizioendDayOfMonth: Giorno di fineendTime: Ora nel giorno di fine
Esempio: Picco di attività a fine mese dal 25 ore 08:00 all’ultimo giorno ore 23:59.
Each Year
La regola si applica in certe date ogni anno.
Parametri:
startMonth: Mese di iniziostartDayOfMonth: Giorno di inizio mesestartTime: Ora di inizioendMonth: Mese finaleendDayOfMonth: Giorno finaleendTime: Ora finale
Esempio: Picco retail natalizio dal 15 novembre ore 00:00 al 31 dicembre ore 23:59.
Periodo fisso
La regola si applica durante un intervallo di date e orari specifici (non ricorrente). Utile per eventi una tantum.
Parametri:
startDateTime: Data e ora di inizio esattaendDateTime: Data e ora di fine esatta
Esempio: Settimana di lancio prodotto 15-22 marzo 2025, con regole speciali di gestione.
Unire più regole di periodicità
La vera flessibilità della periodicità nasce dalla combinazione di più regole. Puoi impostare parametri diversi per diversi contesti temporali e la simulazione valuta quale regola applicare in ogni momento.
Esempio: Tempi di lavorazione multitur- no
Considera un processo produttivo con tempi di lavorazione diversi per turno:
| Nome regola | Periodicità | Distribuzione tempo di lavorazione |
|---|---|---|
| Day Shift | Ogni giorno feriale, 08:00-16:00 | Normal(30 min, 5 min) |
| Evening Shift | Ogni giorno feriale, 16:00-00:00 | Normal(45 min, 10 min) |
| Weekend Crew | Ogni giorno festivo, 10:00-18:00 | Normal(60 min, 15 min) |
| Overnight/Default | Default | Normal(90 min, 20 min) |
Il turno diurno è il più veloce (staff completo, operatori riposati). La sera è più lento (supervisione ridotta). Nei weekend è il più lento (presenza minima). La regola default copre le ore notturne.
Priorità delle regole
Se più regole potrebbero essere applicate:
- Le regole vengono valutate nell’ordine in cui sono definite nella configurazione
- Si usa la prima regola che corrisponde (quella in cima vince)
- Le regole default si applicano solo se nessun’altra regola è valida
Suggerimento: Inserisci prima le regole più specifiche. Metti “Ogni giorno feriale” prima di “Ogni giorno” se vuoi comportamenti diversi nei weekend.
Dove applicare la periodicità
La periodicità si usa su molti parametri della simulazione:
| Parametro | Caso d’uso |
|---|---|
| Case Arrivals | Tassi più alti nelle ore lavorative, più bassi la notte |
| Processing Times | Elaborazione più veloce con team al completo, più lenta in orari ridotti |
| Resource Capacity | Più personale nelle ore di punta, minimi la notte |
| Skip Chances | Regole di routing diverse per weekend o festività |
| Gateway Probabilities | Decisioni che variano a seconda dell’orario |
Esempio pratico: Customer Support Center
Ecco un esempio concreto che mostra come la periodicità gestisce più parametri in una simulazione di assistenza clienti:
Configurazione del tasso di arrivo
| Periodicità | Tasso di arrivo |
|---|---|
| Each Weekday 09:00-18:00 | Poisson(50 all’ora) |
| Each Weekday 18:00-22:00 | Poisson(20 all’ora) |
| Each Weekend Day 10:00-16:00 | Poisson(15 all’ora) |
| Default | Poisson(5 all’ora) |
Alto volume in orario lavorativo, traffico moderato la sera, ridotto nel weekend e di notte.
Configurazione tempi di lavorazione
| Periodicità | Distribuzione |
|---|---|
| Ogni giorno feriale 09:00-17:00 | Triangular(10, 20, 45 min) |
| Ogni giorno festivo | Triangular(20, 40, 90 min) |
| Default | Triangular(30, 60, 120 min) |
Più veloce con staff pieno, più lento nel weekend e fuori orario.
Configurazione capacità personale
| Periodicità | Agenti disponibili |
|---|---|
| Ogni giorno feriale 09:00-18:00 | 10 agenti |
| Ogni giorno feriale 18:00-22:00 | 4 agenti |
| Ogni giorno festivo 10:00-16:00 | 3 agenti |
| Default | 1 agente |
Staff al completo in orario business, copertura ridotta negli altri orari.
Come funzionano insieme
Alle 10:00 di martedì:
- Gli arrivi seguono la frequenza di 50/ora
- Il processing usa la distribuzione triangolare veloce
- 10 agenti disponibili
Alle 20:00 di martedì:
- Gli arrivi scendono a 20/ora
- Il processing usa la distribuzione default (più lenta)
- Solo 4 agenti disponibili
Alle 14:00 di sabato:
- Gli arrivi sono 15/ora
- Il processing usa la distribuzione weekend
- 3 agenti disponibili
Best practice
1. Parti dal Default
Definisci sempre prima la regola Default. Così copri qualsiasi fascia oraria non già gestita da altre regole.
2. Dal generale allo specifico
Inizia con le distinzioni principali (feriali vs weekend), poi aggiungi regole su fasce orarie o turni specifici solo se serve.
3. Semplicità prima di tutto
Inizia separando solo feriali e weekend, poi aggiungi dettagli orari o stagionali se serve. La complessità si può aggiungere dopo.
4. Modella gli schemi dai dati
Quando possibile analizza i dati storici per capire i veri andamenti. Esamina arrivi, tempi di lavorazione e personale per ora e giorno.
5. Testa i casi limite
Verifica che le regole gestiscano correttamente le transizioni:
- Cosa succede alle 17:00 quando cambia turno?
- Mezzanotte è gestita bene?
- Le regole di fine mese funzionano se il mese è più corto?
6. Documenta le regole
La configurazione della periodicità può diventare complessa. Spiega perché ogni regola esiste e quale esigenza di business rappresenta.