Pythonで学ぶ離散事象シミュレーション
Dr Diogo Costa
Adjunct Professor, University of Saskatchewan, Canada & CEO of ImpactBLUE-Scientific
動的システムを理解する
離散イベントモデルの目的を定義する
プロセスを特定する:
適切なSimPyリソースを特定する(resource、container、store)
モデルのアーキテクチャを定義する:
動的システムを理解する
モデルの目的
何を最適化したいか?
これらの目的を監視するための状態変数
共有リソース
simpy.Resource(env, capacity=4)
例
コンテナ
simpy.Container(env, capacity,
init=initial_capacity)
タンクやバスケットのように振る舞うリソース
数量の追加と取り出し:
.put() と .get()
例
ストア
simpy.Store(env, capacity=4)
複数のアイテムを持つ店舗のようなリソース
容量は無制限(デフォルト)
任意のオブジェクトを格納するスロット
アイテムの追加と取り出し:
.put() と .get()
例
SimPyはビット演算子を使用して2つのイベントを連結します
Pythonの演算子の種類
ビット演算子
a & b、a >> b、a ^ bSimPyでは
SimPy向けの主なビット演算子
__and__() または &__or__() または |Pythonで学ぶ離散事象シミュレーション