用于离散事件模型的 Monte Carlo 采样
设想一家生产挂钟的工厂。随着产品越来越受欢迎,需求已经超过了产能。工厂已经连续数月满负荷运转。您希望更好地理解其运行行为和瓶颈,以便做出更有依据的管理决策,并规划未来的投资与扩产。
我们已经构建了一个描述该工厂流程的离散事件模型。现在,您将运行一次 Monte Carlo 采样分析来探索不同情景。制造流程概述见下表,相关信息已存入名为 processes 的字典列表中,每个流程对应一个字典。字典的键与表格的列名一一对应。以下包已为您导入:numpy as np、matplotlib.pyplot as plt、seaborn as sns、random、pandas as pd,以及 time。

Monte Carlo 采样循环将生成一系列可能的流程轨迹,如下图所示。

本练习是课程的一部分
Python 中的离散事件模拟
练习说明
- 为
n_trajectories个样本设置主 Monte Carlo 采样 for 循环,使用占位变量t。 - 使用
random包中的高斯分布伪随机估计各流程的持续时间。
交互式实操练习
通过完成这段示例代码来试试这个练习。
n_trajectories = 100
# Run a Monte-Carlo for-loop for n_trajectories samples
____
for p in range(len(processes)):
proc_p = processes[p]
# Random gauss method to pseudo-randomly estimate process duration
process_duration = ____(proc_p["Average_Duration"], proc_p["Standard_Deviation"])
time_record[p + 1] = time_record[p] + process_duration
df_disc = pd.DataFrame({cNam[0]: process_line_space, cNam[1]: time_record})
fig = sns.lineplot(data=df_disc, x=cNam[0], y=cNam[1], marker="o") # Step_10
fig.set(xlim=(0, len(processes) + 1))
plt.plot()
plt.grid()
plt.show()