SimPyについて
SimPyは標準Pythonに基づくプロセスベースの離散イベントシミュレーションフレームワークです。SimPyのプロセスはPythonのジェネレータ関数で定義され、顧客、車両、エージェントなどのアクティブなコンポーネントをモデル化するために使用できます。また、サーバー、チェックアウトカウンター、トンネルなどの限られた容量の混雑ポイントをモデル化するための様々なタイプの共有リソースも提供しています。
シミュレーションは「できるだけ速く」、リアルタイム(壁時計の時間)で、または手動でイベントをステップ実行することで実行できます。SimPyでは理論的には連続シミュレーションが可能ですが、それを支援する機能はありません。一方、プロセスが互いにまたは共有リソースと相互作用せず、固定ステップサイズのシミュレーションにはSimPyは過剰です。
例えば、異なる時間間隔で2つの時計が刻む短い例は次のようになります:
import simpy
def clock(env, name, tick):
while True:
print(name, env.now)
yield env.timeout(tick)
env = simpy.Environment()
env.process(clock(env, 'fast', 0.5))
env.process(clock(env, 'slow', 1))
env.run(until=2)
ドキュメンテーションにはチュートリアル、キーコンセプトを説明するいくつかのガイド、多数の例、およびAPIリファレンスが含まれています。SimPyはMITライセンスの下でリリースされています。シミュレーションモデル開発者はSimPyコミュニティと自分のSimPyモデリング技術を共有することが奨励されています。SimPyメーリングリストにメッセージを投稿してください。SimPyの概念を説明し、いくつかの例を提供する紹介トークがあります:ビデオを視聴またはスライドを入手してください。SimPyは他のプログラミング言語でも再実装されています。ポートのリストを参照して詳細を確認してください。