开发离散事件模型
您受托为一项农业生产运营开发一个离散事件模型,以帮助分配资源、提升产能,并识别与消除瓶颈。
您正与同事讨论涉及的不同流程,以及这些流程在模型中应当细化到什么程度。因此,大家同意先将信息汇总到一个名为 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")