始める無料で始める

自動車組立ライン:非決定的イベントの追加

この演習では、SimPy を使わずに非決定的なプロセスに焦点を当てます。次の演習では SimPy に注目します。

自動車生産ラインのこれまでの離散事象モデルで、プロセス所要時間のばらつきを考慮するよう依頼されました。これまでに特定したプロセス群は、(1)「溶接と塗装」および (2)「部品の組立と検査」です。これらのプロセス群には多くのサブプロセスやタスクが含まれますが、今はまずモデルの初版を高いレベルでコーディングすることに集中します。

以前は、溶接と塗装の平均所要時間は完了までに15時間、部品の組立と検査の平均所要時間は完了までに24時間と見積もっていました。

今回、これらのプロセスの所要時間のばらつきを調べるため、追加の調査とモニタリングを行いました。その結果、溶接と塗装は最大で±5時間、部品の組立は最大で±6時間変動する可能性があると結論づけました。

これらのイベントの所要時間の変動を考慮に入れるよう、離散事象モデルを更新してください。 random パッケージは読み込まれています。

この演習はコースの一部です

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

コースを見る

演習の手順

  • 溶接と塗装」プロセスの所要時間を、整数の乱数を生成する random パッケージのメソッドを用いて、ばらつきに関する新しい情報を反映して記録してください。
  • 部品の組立と検査」プロセスの所要時間を、整数の乱数を生成する random パッケージのメソッドを用いて、ばらつきに関する新しい情報を反映して記録してください。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

def car_production_line(SIMULATION_TIME):
    car_number, time  = 0, 0
    while time < SIMULATION_TIME:
        car_number += 1

        # Clock the time requirement for: Welding and Painting
        time += ____
        if time >= SIMULATION_TIME: break
        print(f"Time = {time:7.4f} | Car {car_number:02d} | Welding and Painting")

        # Clock the time requirement for: Assembly of parts and Testing 
        time += ____
        if time >= SIMULATION_TIME: break
        print(f"Time = {time:7.4f} | Car {car_number:02d} | Assembly of parts and Testing")
        print(f"Time = {time:7.4f} | Car {car_number:02d} | Car ready for shipping!")

car_production_line(SIMULATION_TIME)
コードを編集して実行