開始使用免費開始

開發離散事件模型

你受託為一個農場營運開發離散事件模型,以協助資源配置、提升生產力,並找出與消除瓶頸。

你目前還在和同事討論各個流程及其在模型中需要呈現的細節程度。因此,你們同意先把資訊彙整到名為 process_dict 的字典,結構如下。這個字典會隨著取得更多流程資訊而持續更新。

process_dict = {
    "Process name 1":  <duration>,
    "Process name 2":  <duration>,
    ...
}

我們來建立一個通用的離散事件模型 discrete_model_farm(),可以排程字典中定義的任意數量離散事件。

模型的輸入參數(依序)為:

  1. process_dict:包含流程資訊的字典
  2. simulation_time:模擬期間

模型中的時間單位以「天」計算。

本練習屬於課程

Python 的離散事件模擬

檢視課程

練習說明

  • 初始化模型的狀態變數 time(追蹤時間)與 supply_chain(追蹤週期次數),並將兩者設為 0。
  • 定義結束條件:當 time 小於 simulation_time 時讓模型持續執行。
  • 將流程的持續時間加到狀態變數 time。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

def discrete_model_farm(process_dict, simulation_time):
  # Initiate variables
  time = ____
  supply_chain = ____

  # Define ending condition
  while ____ < ____:

    supply_chain += 1
    process_names = list(process_dict.keys())

    for p in range(len(process_names)):
		  
      event_duration = process_dict[process_names[p]]
          
      # Add the process duration
      ____ += event_duration
      print(f"{process_names[p]}  (completed): time = {time}")
          
    print(f"COMPLETED: Production cycle #{supply_chain} | Time = {time} days")  
編輯並執行程式碼