1. Lära sig
  2. /
  3. Courses
  4. /
  5. Python으로 배우는 이산 사건 시뮬레이션

Connected

exercise

SimPy로 만드는 이산 사건 모델의 Monte Carlo 샘플링

이제 동일한 Monte-Carlo 샘플링 분석을, 모델의 SimPy 버전을 사용해 구축해 보겠습니다. SimPy 모델에는 다양한 공정을 시뮬레이션하는 manufacturing_process라는 제너레이터가 있고, 모델을 여러 번 실행해 정보를 time_record라는 NumPy 배열에 저장하는 run_monte_carlo 함수가 있습니다.

결과를 그리는 코드는 이전 연습 문제에서 사용한 것과 비슷하지만, 아래에 보이는 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")
    fig.set(xlim=(0, len(processes) + 1))
    plt.plot() 

Monte-Carlo 샘플링 루프는 그림과 같이 가능한 여러 공정 궤적을 생성합니다. Monte Carlo trajectories for different process scenario.

Instruktioner

100 XP
  • process_duration을 진행시키고 yield 하세요.
  • 현재 시간을 time_record에 저장하세요.
  • 더미 변수 t를 사용해 n_trajectories 샘플을 도는 for 루프를 실행하세요.
  • SimPy 환경을 만들고, 프로세스를 추가한 뒤 모델을 실행하세요.