Dizionario SIR — Da NetLogo a Python

Categorie: Agenti· Spazio e posizione· Movimento· Contagio· Tempo e guarigione· Controllo e logica· Dati e visualizzazione· Liste e insiemi· Matematica· Numeri casuali· Input / Output
Speciali: Parole chiave· Attributi built-in· Import necessari
Agenti ← Turtle-related
Creazione, attributi e comportamento degli agenti. Nel modello SIR discreto ogni agente ha uno stato (S/I/R) e una posizione intera (pos_x, pos_y) che identifica la cella sulla griglia. Nessun angolo (il movimento usa 4 direzioni predefinite) e nessun timer (la guarigione è probabilistica ad ogni tick).
Spazio e posizione ← Turtle + World (griglia discreta)
Il modello SIR discreto usa una griglia con coordinate intere: mondo da −16 a +16 su entrambi gli assi, bordi duri (no wrap-around). Un agente che tenta di uscire dalla griglia rimane al bordo.
Movimento ← random 4 / setxy / np.clip
Il movimento nel discreto: 1 cella per tick in una delle 4 direzioni cardinali (N/S/E/W). Nessuna trigonometria — le direzioni sono predefinite come coppie (dx, dy). Tutti gli agenti si muovono ad ogni tick, indipendentemente dallo stato S/I/R.
Contagio ← max list / ask other turtles / random-float
La regola di contagio: I cerca S a distanza di Chebyshev ≤ 1 (vicinato di Moore: 8 celle adiacenti + stessa cella) e lo contagia con probabilità β. In Python si usano coppie (i, j) invece di ask other turtles.
Guarigione ← recover / random-float / gamma
I → R probabilistico: ad ogni tick ogni infetto guarisce con probabilità γ. Nessun timer — la durata media dell’infezione emerge statisticamente come 1/γ tick. Più semplice della versione deterministica (che richiederebbe un campo timer nell’agente).
Controllo e logica ← if / ifelse / stop / while / repeat
Condizioni, cicli, stop della simulazione. La logica è identica a NetLogo — cambia solo la sintassi.
Dati e visualizzazione ← plot / monitors / BehaviorSpace
Raccolta metriche e visualizzazione della curva epidemica S/I/R. In NetLogo i plot si configurano nell’interfaccia. In Python si usa Matplotlib.
Liste e insiemi ← list / agentset / with
Raccogliere, filtrare e iterare su collezioni di agenti o valori.
Matematica ← sin / cos / sqrt / distance
Nel modello discreto la matematica è minima: nessun sin/cos (nessuna trigonometria), nessun hypot (si usa Chebyshev non euclidea). Serve solo abs() e max(), entrambi built-in Python — nessun import math necessario.
Numeri casuali ← random / random-float / random-seed
Il SIR discreto usa due tipi di casualità: np.random.randint per posizioni intere e direzioni, np.random.rand() per i confronti probabilistici di contagio e guarigione.
Input / Output ← print / show / sliders / monitors
Configurazione parametri, stampa a schermo, export dati.
Parole chiave Python ← Keywords NetLogo
Costrutti sintattici fondamentali con il loro equivalente NetLogo.
Attributi built-in ← Built-in turtle variables
In NetLogo ogni turtle ha attributi automatici. In Python li dichiariamo nel @dataclass dell’agente. Il SIR discreto usa solo tre campi: stato e due coordinate intere.
Import necessari per il modello SIR
Tutte le righe import da mettere in cima al file SIR_model_discreto.py. Nessun import math: nel discreto non servono sin/cos/hypot.