開始使用免費開始

汽車裝配線:加入非決定性事件

本練習先在不使用 SimPy 的情況下,專注於非決定性(non-deterministic)流程。下一題將再回到 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)
編輯並執行程式碼