1. 学ぶ
  2. /
  3. コース
  4. /
  5. Pythonで学ぶ離散事象シミュレーション

Connected

演習

モデルを作る:航空機の注文を生成する

SimPy の環境とリソースを作成したので、航空機の発注をシミュレートするジェネレーターとつなげましょう。航空機の注文は30件あります。

assembly_line() 関数は、航空機の各部品製造セクションに対して順番にリソース要求を行います。 以下のコードは、そのうちの1つの要求を示しています。

# Open the resource step_1_fuselage request
with step_1_fuselage.request() as slot_request_1:
  request_1_time = env.now
  yield slot_request_1
  print(f"time: {env.now:7.4f} | Aircraft {aircraft_id:02d} 
                               | Enters: step_1_fuselage 
                               | Queued for {env.now-request_1_time} hours")
  yield env.timeout(processing_time[processing_time_step_names[0]])

指示

100 XP
  • ダミー変数 request_i を使って、すべての注文(total_num_orders)をリクエストする for ループを作成します。
  • for ループ内で各航空機のリクエストごとに新しいプロセスを作成します。すべてのプロセスはジェネレーター assembly_process_request に基づきます。
  • 30機すべてが一度にバッチでリクエストされています。リクエスト間に待ち時間がないことが反映されるように、コードを完成させてください。