Simulazione a eventi discreti in Python
Diogo Costa (PhD, MSc)
Adjunct Professor, University of Saskatchewan, Canada & CEO of ImpactBLUE-Scientific
Descrizione di un sistema naturale o umano tramite concetti e linguaggio matematici.
I modelli si classificano in:
I modelli matematici possono essere semplici o complessi.
George Box: "Tutti i modelli sono sbagliati, ma alcuni sono utili."

Modello del flusso in un fiume

Questo modello prevede la portata alla stazione idrologica di Goaya, in Cina.
La previsione usa la pioggia come input del modello.
Altri esempi
Prevedere l'inflazione

Altri esempi
# Define model parameters
processes = {"process_1": 5,
"process_2": 2,
"process_3": 3}
# Simulation period
simulation_time = 365
# Run model
discrete_model(processes, simulation_time)
def discrete_model(processes, simulation_time): # 1) Run end-condition while (time < simulation_time): process_names = list(processes.keys())# 2) Loop over all processes for p in range(len(process_names)): process_name_p = process_names[p]# 3) Account for effect of each process time += processes[process_name_p]
Esempio di output di un modello a eventi discreti per un'attività manifatturiera
=> START OF SIMULATION (Time = 0 days)
Time = 6.00 days | Process Complete: Transport of raw material
Time = 9.00 days | Process Complete: Building components
Time = 11.00 days | Process Complete: Assembling parts
Time = 14.00 days | Process Complete: Selling product
=> COMPLETED: Supply-Chain cycle #1 | Time = 15.5 days
Time = 21.50 days | Process Complete: Transport raw material
Time = 24.50 days | Process Complete: Building components
Time = 26.50 days | Process Complete: Assembling parts
Time = 29.50 days | Process Complete: Selling product
=> COMPLETED: Supply-Chain cycle #2 | Time = 31.0 days
Visualizzazione grafica dei risultati: utile per individuare pattern e punti critici.
La visualizzazione va adattata agli obiettivi della simulazione.
Librerie utili: matplotlib, seaborn, plotly.

Esempi
y) vs. tempo (x)plt.plot(x, y, color='green', marker='o',
markersize=12, linestyle='dashed',
linewidth=2)
x e contare i valori per binplt.hist(x, 50, density=True,
facecolor='g', alpha=0.75)
Simulazione a eventi discreti in Python