Simulare de evenimente discrete în Python
Diogo Costa (PhD, MSc)
Adjunct Professor, University of Saskatchewan, Canada & CEO of ImpactBLUE-Scientific
Descrierea unui sistem natural sau uman cu ajutorul conceptelor și limbajului matematic.
Modelele pot fi clasificate ca:
Modelele matematice pot fi simple sau complexe.
George Box: „Toate modelele sunt greșite, dar unele sunt utile."

Model al debitului unui râu

Acest model prognozează debitul la stația hidrologică Goaya, China.
Prognoza se bazează pe date pluviometrice utilizate ca intrare în model.
Alte exemple
Prognozarea inflației

Alte exemple
# 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]
Exemplu de rezultat al unui model cu evenimente discrete pentru o activitate de producție
=> 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
Vizualizarea grafică a rezultatelor: utilă pentru identificarea tiparelor și a punctelor critice.
Vizualizarea trebuie adaptată obiectivelor simulării.
Pachete utile disponibile: matplotlib, seaborn, plotly.

Exemple
y) față de valorile temporale (x)plt.plot(x, y, color='green', marker='o',
markersize=12, linestyle='dashed',
linewidth=2)
x și numărarea valorilor din fiecare intervalplt.hist(x, 50, density=True,
facecolor='g', alpha=0.75)
Simulare de evenimente discrete în Python