Модель ресторана: настройка, запуск и анализ результатов
В предыдущем упражнении вы определили генератор, который моделирует запросы на столик и решения клиентов — ждать или уйти — в зависимости от времени ожидания.
Теперь настроим модель, запустим её и проанализируем результаты. Напомним, что цель построения этой модели — определить оптимальное количество столиков и пропускную способность кухни, чтобы обслужить максимальное число клиентов при минимальных начальных инвестициях и операционных расходах.
Чтобы задать модели реалистичные параметры, вы решили посетить рестораны в районе и понаблюдать за поведением клиентов.
Вы заметили, что в среднем:
- В часы пик новые клиенты приходили каждые 10 минут
- Клиенты были готовы ждать столик от 1 до 10 минут (
MIN_PATIENCEиMAX_PATIENCE) - Клиенты уходили, если время ожидания превышало 10 минут
- Клиенты занимали столики от 40 до 90 минут (
MIN_SEATING_TIMEиMAX_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}")