모델 구축: 조립 라인의 응답 제어
이제 SimPy 환경과 자원, 그리고 항공기 주문을 생성하는 제너레이터까지 정의했으니, 알려진 처리 시간과 제한된 자원을 고려해 조립 라인의 응답을 나타내는 제너레이터를 만들어 볼 차례예요.
이 연습은 강의의 일부입니다
Python으로 배우는 이산 사건 시뮬레이션
연습 안내
step_2_wings에 대해slot_request_2라는 슬롯 요청을 만들고, 해당 요청을 yield 하세요.step_3_power_plant에 대해slot_request_3라는 슬롯 요청을 만들고, 해당 요청을 yield 하세요.step_4_landing_gear에 대해slot_request_4라는 슬롯 요청을 만드세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
def assembly_line(env, aircraft_id, step_1_fuselage, step_2_wings, step_3_power_plant, step_4_landing_gear):
processing_time_step_names = list(processing_time.keys())
with step_1_fuselage.request() as slot_request_1:
yield slot_request_1
yield env.timeout(processing_time[processing_time_step_names[0]])
# Make slot request for step_2_wings and yield the request
with step_2_wings.request() as ____:
request_2_time = env.now
____ slot_request_2
yield env.timeout(processing_time[processing_time_step_names[1]])
# Make slot request for step_3_power_plant and yield the request
with step_3_power_plant.request() as ____:
request_3_time = env.now
____ slot_request_3
yield env.timeout(processing_time[processing_time_step_names[2]])
# Make slot request for step_4_landing_gear
with step_4_landing_gear.request() as ____:
request_4_time = env.now
yield slot_request_4
yield env.timeout(processing_time[processing_time_step_names[3]])