Elenco documenti
In questa pagina

Come funziona il motore di simulazione

Come Funziona il Motore di Simulazione

ProcessMind utilizza un engine di discrete event simulation (DES) per modellare i processi. Capire come funziona ti aiuta a configurare le simulazioni in modo efficace e a interpretare meglio i risultati.


Cos’è la Discrete Event Simulation?

Nella discrete event simulation, lo stato del sistema cambia solo in corrispondenza di specifici eventi—l’orologio avanza da un evento all’altro e tra un evento e l’altro non accade nulla. Questo approccio è ideale per il business perché:

  • Le attività hanno tempi di inizio e fine precisi
  • Le risorse sono assegnate e rilasciate in momenti definiti
  • I case arrivano e terminano in punti stabiliti

Perché Discrete Event?

A differenza delle simulazioni continue (utilizzate in fisica o fluidodinamica), nei processi business non serve modellare ogni istante. Una richiesta prestito non passa gradualmente da “submitted” a “approved”: cambia stato solo in corrispondenza di eventi specifici.


Ciclo Principale degli Eventi

Il motore di simulazione segue un ciclo semplice ma potente:

1. Inizializza: Imposta le condizioni iniziali
2. Ottieni Prossimo Evento: Trova l'evento pianificato più vicino dalla coda prioritaria
3. Avanza Tempo: Sposta l'orologio della simulazione al tempo di quell'evento
4. Gestisci Evento: Esegui l'evento (avvia attività, completa attività, ecc.)
5. Pianifica Nuovi Eventi: Inserisci nuovi eventi in base a quanto accaduto
6. Ripeti: Continua fino all'end time o al raggiungimento del max events (2.000.000)
7. Output: Genera l'event log completo

Tipi di Eventi

La simulazione genera e gestisce diversi tipi di eventi:

Tipo EventoDescrizione
Case ArrivalUn nuovo case entra nel processo tramite uno start event
Activity StartUn case avvia una attività (risorse allocate)
Activity CompleteUn case termina una attività (risorse rilasciate)
Gateway EvaluationUn punto decisionale sceglie quali percorsi seguire
Case CompleteUn case raggiunge un end event

Generazione e Arrivo dei Case

I case entrano nella simulazione tramite gli Start Event nel tuo modello BPMN. Il pattern di arrivo è gestito dalla distribuzione di generazione case.

Pattern di Arrivo Predefinito

Per default i case arrivano secondo una Poisson distribution con tasso di 1 case all’ora. Questo genera tempi di arrivo realistici e variabili, comuni nei processi business.

Personalizza gli Arrivi

Puoi configurare diversi pattern di arrivo usando le distribuzioni descritte nella documentazione Distributions .


Flusso del Case nel Processo

Sequence Flow

Quando un case completa un elemento, segue subito il sequence flow in uscita. Se il percorso è unico, viene seguito in automatico.

Comportamento dei Gateway

I gateway controllano come i case si diramano e si uniscono:

Tipo GatewayComportamento
XOR (Exclusive)Seleziona uno e solo uno tra i percorsi in uscita tramite scelta casuale ponderata. Le probabilità sono viste come pesi relativi e normalizzate automaticamente.
AND (Parallel)Tutti i percorsi sono seguiti nello stesso momento. Il case si divide in token paralleli.
OR (Inclusive)Selezione casuale dei percorsi, con almeno uno sempre incluso.
Event-BasedScelta casuale tra gli eventi disponibili.

Impostare le Probabilità

Per gli XOR gateway, assegni una probabilità a ogni flow. Questi sono pesi relativi:

  • Se imposti i flow su 70, 20 e 10, corrispondono a 70%, 20%, 10%
  • Se imposti su 7, 2 e 1 ottieni lo stesso risultato
  • Tutti i flow devono avere una probabilità; i non assegnati usano la percentuale rimasta

Esecuzione Attività

Quando un case raggiunge una task (activity), l’engine segue questa sequenza:

1. Verifica Disponibilità Risorse

La risorsa richiesta ha capacità disponibile?

2. Accoda se Necessario

Se le risorse non sono disponibili, il case entra in coda di attesa. ProcessMind usa una logica FIFO (First In, First Out): i case vengono gestiti nell’ordine di arrivo.

3. Assegna Risorse

Quando disponibili, le risorse necessarie vengono riservate per questo case.

4. Campiona Tempo di Esecuzione

L’engine estrae un valore dalla distribuzione configurata del tempo di processamento. Questo determina la durata dell’attività.

5. Pianifica Completion Event

Un completion event viene aggiunto alla coda eventi a current_time + processing_time.

6. Rilascia Risorse

Quando viene eseguito il completion event, le risorse vengono restituite al pool per altri case.

Durata Minima delle Attività

Per garantire timestamp unici e comportamento realistico, tutte le attività hanno durata minima di 1 secondo. Anche con distribuzione a durata zero, l’attività impiega almeno questo tempo.


Probabilità di Salto

Le attività possono essere configurate con una skip chance (0-100%). Quando un’attività viene saltata:

  • Il case passa subito all’elemento successivo
  • Nessuna risorsa viene usata
  • Non passa tempo (tranne il minimo di 1 secondo)
  • L’attività appare nel log con durata minima

Questo consente di simulare casi reali in cui alcune fasi vengono saltate.


Gestione del Tempo

Simulation Clock

La simulazione mantiene un orologio virtuale che avanza in modo discreto da un evento al successivo. Se il prossimo evento è alle 10:35 e ora sono le 10:30, l’orologio passa direttamente alle 10:35.

Unità di Tempo

Tutti i tempi sono convertiti in unità coerenti. Puoi indicare le durate in:

  • Secondi
  • Minuti
  • Ore
  • Giorni
  • Settimane
  • Mesi

Periodicità e Fasce Orarie

I parametri possono variare in base al tempo di simulazione. Per esempio:

  • Tassi di arrivo diversi tra giorni feriali e weekend
  • Tempi di attività diversi tra turni mattina e pomeriggio
  • Capacity risorse diversa nelle ore di punta

Consulta la documentazione Periodicity  per i dettagli.


Gestione Risorse

Resource Pools

Ogni risorsa ha una capacity specifica: il numero di case che può gestire in contemporanea.

Gestione della Coda

Quando la domanda supera la capacità, i case attendono in coda. ProcessMind usa il criterio FIFO (First In, First Out), garantendo la gestione nell’ordine di arrivo.


Generazione Event Log

Durante la simulazione, tutte le esecuzioni di attività vengono registrate nell’event log di output:

CampoDescrizione
Case IDIdentificativo univoco per ogni case (generato in sequenza)
ActivityNome dell’elemento BPMN
Start TimestampQuando l’attività è iniziata
Complete TimestampQuando l’attività è terminata
ResourceRisorsa che ha eseguito l’attività
AttributesAttributi del case in quel momento

Questo log segue i formati standard di event log ed è analizzabile con tutti gli strumenti ProcessMind.


Limiti Simulazione

LimiteValoreScopo
Max Events2.000.000Evita simulazioni troppo lunghe
Min Duration1 secondoGarantisce timestamp unici

Inizia in piccolo, poi scala

Quando configuri una nuova simulazione, inizia con un periodo breve (pochi giorni o settimane) per validare la configurazione. Quando sei sicuro che il modello funziona, passa a periodi più lunghi.


Prossimi Passi

Resources
Comprendi come modellare risorse e vincoli di capacità.