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

Connected

연습 문제

모델 만들기: 항공기 주문 생성

이제 SimPy 환경과 리소스를 만들었으니, 항공기 구매 주문을 시뮬레이션하는 생성기와 연결해 보겠습니다. 항공기 주문은 총 30건이에요.

assembly_line() 함수는 항공기 구성 요소의 각 제조 공정 구간에 대해 순차적으로 리소스를 요청합니다. 아래 코드는 그중 하나의 요청 예시를 보여줍니다.

# 리소스 step_1_fuselage 요청 열기
with step_1_fuselage.request() as slot_request_1:
  request_1_time = env.now
  yield slot_request_1
  print(f"time: {env.now:7.4f} | Aircraft {aircraft_id:02d} 
                               | Enters: step_1_fuselage 
                               | Queued for {env.now-request_1_time} hours")
  yield env.timeout(processing_time[processing_time_step_names[0]])

지침

100 XP
  • 더미 변수 request_i를 사용해 모든 주문 요청(total_num_orders)을 생성하는 for 루프를 만드세요.
  • for 루프에서 각 항공기 요청마다 새 프로세스를 만드세요. 모든 프로세스는 제너레이터 assembly_process_request를 기반으로 합니다.
  • 30대의 항공기가 한 번에 일괄 요청되었으므로, 요청 간 대기 시간이 없도록 코드를 완성하세요.