Дискретно-подієве моделювання в Python
Diogo Costa (PhD, MSc)
Adjunct Professor, University of Saskatchewan, Canada & CEO of ImpactBLUE-Scientific
Опис природної або керованої людьми системи за допомогою математичних понять і мови.
Моделі поділяють на:
Математичні моделі можуть бути простими або складними.
Джордж Бокс: «Усі моделі помилкові, але деякі корисні».

Модель течії в річці

Ця модель прогнозує витрату води для гідрологічної станції Гояя, Китай.
Прогноз ґрунтується на опадах, що подаються як вхід моделі.
Інші приклади
Прогноз інфляції

Інші приклади
# 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]
Приклад виходу дискретно-подієвої моделі для виробничої діяльності
=> 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
Графічна візуалізація результатів моделі: допомагає виявляти закономірності та переломні моменти в системі.
Візуалізацію слід узгоджувати з цілями моделювання.
Доступно багато корисних пакетів для візуалізації: matplotlib, seaborn, plotly.

Приклади
y) проти відповідних значень часу (x)plt.plot(x, y, color='green', marker='o',
markersize=12, linestyle='dashed',
linewidth=2)
x на інтервали й підрахунку кількості значень у кожномуplt.hist(x, 50, density=True,
facecolor='g', alpha=0.75)
Дискретно-подієве моделювання в Python