Pythonで学ぶ離散事象シミュレーション
Diogo Costa (PhD, MSc)
Adjunct Professor, University of Saskatchewan, Canada & CEO of ImpactBLUE-Scientific
活用例
サンプル数増加に伴うパラメータ空間



例:正規(ガウス)分布に基づくイベント生成器の出力範囲を調べるモンテカルロ実行
import random as rd
import numpy as np
import matplotlib.pyplot as plt
# Generating samples: Gaussian distribution
duration_sample = [rd.gauss(25, 5)
for i in range(5000)]
# Plotting
plt.scatter(duration_sample, np.r_[0:5000],
marker='.', c=duration_sample, cmap='CMRmap')
plt.xlabel("Duration [min]")
plt.ylabel("Monte Carlo Runs")
結果のプロット

主な目的

各プロセス期間の不確実性がシステム全体に伝播する
異なるモデル軌跡が生じる
応答エンベロープ と呼ばれる
例:
n_trajectories = 50
process_1 = {"Name": "Raw_material",
"OperationTime": 20,
"MaxDelayTimePercent": 10}
process_2 = {"Name": "Unloading",
"OperationTime": 15,
"MaxDelayTimePercent": 5}

Pythonで学ぶ離散事象シミュレーション