Djinious
Simulazione a eventi discretiMetodi di ingegneria

A eventi discreti e ad agenti

L’altro tipo di simulazione — sistemi che saltano a eventi discreti e agenti che seguono regole semplici. Code validate rispetto alla teoria delle code, una linea di produzione e il suo collo di bottiglia, e ingorghi stradali che emergono dal nulla: il paradigma event-driven e ad agenti, non le equazioni differenziali.

DjiniousLab
Un diagramma spazio-tempo del traffico con bande scure di onde di ingorgo che si propagano all’indietro attraverso flussi di auto veloci
Errore simulazione M/M/1 vs teoria delle code
2.5%Errore simulazione M/M/1 vs teoria delle code
Residuo della legge di Little
0.0Residuo della legge di Little
picco di capacità del traffico (diagramma fondamentale)
1.96×picco di capacità del traffico (diagramma fondamentale)
ingorghi fantasma da regole locali
emergenteingorghi fantasma da regole locali
notebook di progetto
10notebook di progetto
requisiti PASS
5 / 5requisiti PASS

Non ogni sistema è un’equazione differenziale.

Una coda, una linea di fabbrica, una strada piena di auto, un’epidemia — questi non evolvono come campi continui. Saltano: un cliente arriva, una macchina finisce, un’auto frena, qualcuno si infetta. Questa è la simulazione a eventi discreti e ad agenti, il paradigma dietro SimEvents, Arena e AnyLogic — e un’intera classe di modellazione che il resto del portfolio, tutto equazioni differenziali, non tocca mai. Questo programma la costruisce in entrambi i modi: code fondate sulla teoria in forma chiusa, e comportamento emergente che nasce da nient’altro che regole locali.

Prima, riproduci un risultato che puoi dimostrare sulla carta.

La coda M/M/1 — arrivi casuali, un server, servizio casuale — ha una risposta esatta in forma chiusa dalla teoria delle code. Il programma la costruisce come un event loop scritto a mano (avanza all’evento successivo, aggiorna, ripeti) e porta la lunghezza media della coda entro il 2,5% del valore analitico L = ρ/(1−ρ), recuperando lungo la strada la distribuzione stazionaria geometrica. La legge di Little (L = λ·W) tiene con residuo nullo per ogni livello di carico. Questo accordo con la teoria è ciò che autorizza tutto quello che la simulazione fa dove non esiste alcuna formula.

DjiniousLab
La lunghezza media simulata della coda M/M/1 che segue la curva analitica della teoria delle code al crescere del carico
L’ancora di validazione: la lunghezza media della coda M/M/1 a event loop segue la curva in forma chiusa della teoria delle code al variare del carico, esplodendo quando l’utilizzo → 1. Fai combaciare la teoria dove esiste, poi fidati della simulazione dove non esiste.

Una linea corre alla velocità della sua stazione più lenta — e non più veloce.

Metti postazioni di lavoro in serie con buffer tra di esse e il throughput della linea è determinato interamente dalla stazione collo di bottiglia; aggiungere capacità altrove non fa nulla, e il work-in-process si accumula appena a monte del vincolo. La simulazione riproduce esattamente il risultato della Teoria dei Vincoli — il throughput segue il tasso del collo di bottiglia entro lo 0,4% — e mostra dove si accumula la scorta. Questa è la logica quotidiana della progettazione di fabbriche e logistica.

DjiniousLab
Il throughput di una linea di produzione in tandem che si stabilizza al tasso di servizio della stazione collo di bottiglia
Il collo di bottiglia: il throughput di una linea in tandem è limitato dalla sua stazione più lenta — velocizzare qualsiasi altra stazione non sposta nulla. Il modello a eventi discreti riproduce il risultato della Teoria dei Vincoli e mostra il WIP che si accumula appena a monte del vincolo.

Fai girare un sistema vicino alla piena utilizzazione e l’attesa esplode.

È tentante caricare un server al 95% per efficienza. La formula di Kingman — e la simulazione — mostrano perché è una trappola: il tempo di attesa cresce senza limite man mano che l’utilizzo si avvicina a 1, e cresce con la variabilità anche a carico medio fisso. Un sistema occupato il 95% del tempo non è il 5% più lento di uno all’90%; può essere più lento di diverse volte. È la variabilità, non solo il carico medio, a guidare le code — la lezione dietro ogni decisione di pianificazione della capacità.

DjiniousLab
Il tempo di attesa medio che cresce ripidamente e diverge man mano che l’utilizzo si avvicina a uno
La legge di Kingman: l’attesa media sale dolcemente, poi esplode man mano che l’utilizzo si avvicina a 1 — e a carico fisso cresce comunque con la variabilità. Perché non fai mai girare un sistema occupato al 99%, quantificato dalla simulazione e in accordo con l’approssimazione analitica VUT.
DjiniousLab
Un diagramma spazio-tempo del traffico che mostra onde di ingorgo che si propagano all’indietro attraverso auto veloci
Il protagonista — l’emergenza: una strada di agenti-auto che seguono tre semplici regole (accelera, frena in base allo spazio, rallenta a caso) forma spontaneamente onde di ingorgo stop-and-go che si propagano all’indietro nel traffico, senza alcun incidente o ostacolo. Le bande scure sono ingorghi fantasma. Un comportamento che nessun singolo agente contiene, ma che nasce da tutti loro insieme.

La stessa idea modella un’epidemia.

Sostituisci le auto con le persone e la frenata con l’infezione, e il paradigma ad agenti modella un focolaio: ogni individuo contatta altri a caso, l’infezione si diffonde, gli infetti guariscono. Nessuna equazione differenziale è imposta — le familiari curve di suscettibili/infetti/guariti emergono dalla popolazione di agenti, e la scansione del tasso di contatto recupera la soglia epidemica R₀ = 1 oltre cui i focolai decollano. Dal traffico al contagio, lo stesso paradigma di simulazione.

DjiniousLab
Un’epidemia SIR ad agenti — suscettibili in calo, infetti al picco, guariti in aumento
Epidemiologia ad agenti: curve di suscettibili, infetti e guariti che emergono da singoli agenti che si contattano a caso — nessuna ODE compartimentale imposta. Lo stesso paradigma del modello di traffico, puntato sul contagio; la scansione del tasso di contatto recupera la soglia R₀ = 1.

Ogni numero ricavato di nuovo all’approvazione finale.

Il notebook di V&V ricostruisce ogni modello da zero e ricava di nuovo i requisiti rispetto alla teoria, stampando un quadro PASS/FAIL.

Risultato

  • Simulazione M/M/1 vs L analitico: 2,5%
  • Residuo della legge di Little: 0,0
  • Throughput in tandem vs collo di bottiglia: 0,4%
  • Emergenza dell’ingorgo (varianza): 11,4
  • Picco di capacità del diagramma fondamentale: 1,96×

Requisito

  • Simulazione M/M/1 vs L analitico: R-01 < 5%
  • Residuo della legge di Little: R-02 < 0,05
  • Throughput in tandem vs collo di bottiglia: R-03 < 0,1
  • Emergenza dell’ingorgo (varianza): R-04 > 1
  • Picco di capacità del diagramma fondamentale: R-05 > 1,1

Un paradigma diverso, validato dove è possibile.

Il deliverable è dieci notebook e il dossier — event loop e automi cellulari, non una rete acausale, quindi non c’è alcun blocco personalizzato né canvas. I notebook sulle code assumono arrivi e servizio markoviani (esponenziali) in modo da poter essere verificati rispetto alla teoria in forma chiusa; le regole dell’automa cellulare e degli agenti sono idealizzate; i risultati sono singole esecuzioni lunghe piuttosto che insiemi con intervalli di confidenza, e non c’è alcun meccanismo per eventi rari o rilevamento di stato stazionario. Ciò che il programma dimostra è il paradigma stesso — che la piattaforma modella sistemi a eventi discreti e ad agenti, non solo equazioni differenziali — ancorato alla teoria delle code dove esistono risposte esatte e mostrando emergenza genuina dove non esistono.