시작하기무료로 시작하기

레스토랑 모델: 설정, 실행, 결과 분석

이전 연습 문제에서는 테이블 요청을 시뮬레이션하고 대기 시간에 따라 손님이 기다릴지 떠날지를 결정하는 제너레이터를 정의했어요.

이제 모델을 설정하고 실행한 뒤, 결과를 분석해 보겠습니다. 이 모델의 목표는 초기 투자와 운영 비용을 최소화하면서 최대한 많은 손님을 응대할 수 있도록 적절한 테이블 수와 주방 처리 용량을 결정하는 것입니다.

모델을 의미 있게 설정하기 위해, 인근 레스토랑을 방문해 손님 행동을 관찰했다고 가정해 봅시다.

평균적으로 관찰된 내용은 다음과 같아요:

  • 피크 시간대에는 10분마다 새 손님이 도착했어요
  • 손님들은 테이블을 위해 1~10분 동안 기다릴 인내심이 있었어요 (MIN_PATIENCEMAX_PATIENCE)
  • 대기 시간이 10분을 넘으면 손님은 떠났어요
  • 손님들은 테이블을 40~90분 동안 사용했어요 (MIN_SEATING_TIMEMAX_SEATING_TIME)

모델에서 시간 단위는 분입니다.

이 연습은 강의의 일부입니다

Python으로 배우는 이산 사건 시뮬레이션

강의 보기

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

INTERVAL_CUSTOMERS = 10

# Assign the appropriate values to the model parameters
MIN_PATIENCE = 1
MAX_PATIENCE = ____
MIN_SEATING_TIME = 40
MAX_SEATING_TIME = ____

customers_served = 0
customers_quiting_waiting = 0

env = simpy.Environment()

# Create the SimPy resource
tables = simpy.____(env, capacity=____)
env.process(source(env, NEW_CUSTOMERS, INTERVAL_CUSTOMERS, tables))

# Run the model
env.____(until=240)
print(f"Total number of tables served: {customers_served:02d}")
print(f"Total number of customers quiting waiting: {customers_quiting_waiting:02d}")
코드 편집 및 실행