Модель ресторану: налаштуйте, запустіть і проаналізуйте результати
У попередній вправі ви визначили генератор, що моделює запити на столики та рішення відвідувачів чекати або піти залежно від часу очікування.
Тепер налаштуймо модель, запустімо її та проаналізуймо результати. Нагадаємо, мета побудови цієї моделі — визначити оптимальну кількість столиків і спроможність кухні, щоб обслужити якомога більше відвідувачів, водночас мінімізуючи початкові інвестиції та експлуатаційні витрати.
Щоб осмислено налаштувати модель, ви вирішили відвідати ресторани в околиці й поспостерігати за поведінкою відвідувачів.
Ви помітили, що в середньому:
- У години пік нові відвідувачі приходили кожні 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}")