開發離散事件模型
你受託為一個農場營運開發離散事件模型,以協助資源配置、提升生產力,並找出與消除瓶頸。
你目前還在和同事討論各個流程及其在模型中需要呈現的細節程度。因此,你們同意先把資訊彙整到名為 process_dict 的字典,結構如下。這個字典會隨著取得更多流程資訊而持續更新。
process_dict = {
"Process name 1": <duration>,
"Process name 2": <duration>,
...
}
我們來建立一個通用的離散事件模型 discrete_model_farm(),可以排程字典中定義的任意數量離散事件。
模型的輸入參數(依序)為:
process_dict:包含流程資訊的字典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")