제조 최적화: Search & Stop
이전에 만든 벽시계 공장 모델을 활용해, Monte Carlo 샘플링을 기반으로 한 "Search & Stop" 최적화 접근법을 적용해 핵심 병목 공정을 찾아보세요.
아래 표에 제조 프로세스가 요약되어 있으며, 이 정보는 각 공정당 하나의 딕셔너리를 갖는 리스트 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()
Monte Carlo 샘플링 루프는 가능한 공정 궤적을 여러 개 생성하고, 원하는 조건이 충족되면 정지합니다. 아래 그림처럼 동작해요.

이 연습은 강의의 일부입니다
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
____