1. 학습
  2. /
  3. 강의
  4. /
  5. Python으로 배우는 이산 사건 시뮬레이션

Connected

연습 문제

제조 최적화: Search & Stop

이전에 만든 벽시계 공장 모델을 활용해, Monte Carlo 샘플링을 기반으로 한 "Search & Stop" 최적화 접근법을 적용해 핵심 병목 공정을 찾아보세요.

아래 표에 제조 프로세스가 요약되어 있으며, 이 정보는 각 공정당 하나의 딕셔너리를 갖는 리스트 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.

지침

100 XP
  • run_i가 0과 같거나 total_duration[run_i]가 85시간보다 큰 동안 시뮬레이션 궤적을 실행하는 루프를 설정하세요(즉, 정지 조건: total_duration[run_i]가 85시간 이하일 때).
  • 함수 run_monte_carlo()에 저장된 Monte Carlo 엔진을 실행하세요.