餐厅模型:搭建、运行并分析结果
在上一个练习中,您已定义了用于模拟餐桌请求的生成器,以及顾客基于等待时间选择等位或离开的决策。
现在请搭建模型、运行它,并分析结果。请记住,本模型的目标是确定合适的餐桌数量和后厨产能,以在尽量降低初始投入与运营成本的同时,服务尽可能多的顾客。
为使模型设置更贴近现实,您决定走访周边餐厅并观察顾客行为。
您发现平均而言:
- 高峰时段每 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}")