开始使用免费开始使用

制造优化:搜索并停止

让我们使用之前练习中创建的挂钟工厂模型,基于 Monte Carlo 抽样部署一种"搜索并停止"的优化方法,以识别关键瓶颈工序。

下面的表格总结了制造流程,相关信息已存储在名为 processes 的字典列表中,每个工序对应一个字典。该字典的键与表格的列名一致。

Table with process names and their duration statistics, namely mean and standard deviation.

用于在本练习中生成图表的 plot_results() 方法已预加载,如下所示。

def plot_results():
    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')
    plt.grid()
    fig.set(xlim=(0, len(processes)))
    fig.set(ylim=(0, 180))
    fig.set(xticks=process_line_space)
    plt.plot() 

Monte Carlo 抽样循环会生成一系列可能的工序轨迹,并在满足目标条件时停止,如图所示。 Monte Carlo trajectories for different process scenario.

本练习是课程的一部分

Python 中的离散事件模拟

查看课程

练习说明

  • 设置一个循环:当 run_i 等于 0,或 total_duration[run_i] 大于 85 小时时继续运行模拟轨迹(即停止条件为 total_duration[run_i] 小于或等于 85 小时)。
  • 运行存放在 run_monte_carlo() 函数中的 Monte Carlo 引擎。

交互式实操练习

通过完成这段示例代码来试试这个练习。

def run_monte_carlo():
    run_i = 0
    
    # While-loop with the stop condition
    ____

        run_i += 1
        env = simpy.Environment()
        env.process(manufractoring_process(env))
        env.run()
        plot_results()
    plt.show()

# Call the run_monte_carlo function
____
编辑并运行代码