ПочатиПочніть безкоштовно

Оптимізація виробництва: «Пошук і зупинка»

Скористаймося моделлю фабрики настінних годинників із попередньої вправи та застосуймо підхід оптимізації «Пошук і зупинка» на основі вибірки Монте-Карло, щоб визначити критичні вузькі місця процесів.

Виробничий процес підсумовано в таблиці нижче, а інформацію збережено у списку словників під назвою 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 trajectories for different process scenario.

Ця вправа є частиною курсу

Дискретно-подієве моделювання в Python

Переглянути курс

Інструкції до вправи

  • Налаштуйте цикл, щоб запускати траєкторії моделювання, доки run_i дорівнює нулю або total_duration[run_i] перевищує 85 годин (тобто зупинна умова: total_duration[run_i] менше або дорівнює 85 годинам).
  • Запустіть механізм Монте-Карло, що збережений у функції run_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
____
Редагувати та запускати код