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

Метод 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()
Цикл вибірки Монте-Карло згенерує низку можливих траєкторій процесу та зупиниться, коли буде виконано потрібну умову, як показано на рисунку.

Ця вправа є частиною курсу
Дискретно-подієве моделювання в 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
____