You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Anylogic超市仿真:如何避免顾客在关闭收银台排队?

超市仿真模型收银台排队控制实现方案

1. 结构化存储收银台工作计划

先把每个收银台的工作时段整理成可查询的结构化数据,方便后续判断:

  • 如果用代码实现(比如Python),可以用字典绑定收银台ID与对应时段:
# 示例:键为收银台ID,值为(开始时间, 结束时间),时间统一用小时为单位
checkout_schedules = {
    1: (9, 18),   # 9:00-18:00营业
    2: (8, 20),
    3: (10, 22),
    # ... 补充剩余5个收银台的时段配置
}
  • 如果用可视化仿真软件(如AnyLogic、Simio),直接给每个收银台对象添加openTime和closeTime属性,绑定对应的时段参数即可。

2. 编写收银台状态判断逻辑

写一个轻量的判断逻辑,实时检查当前仿真时间是否在目标收银台的营业时段内:

def is_checkout_available(current_sim_time, checkout_id):
    open_hour, close_hour = checkout_schedules[checkout_id]
    # 把仿真时间转换为小时单位(假设仿真时间以分钟为基准)
    current_hour = current_sim_time / 60
    # 返回是否处于营业时段内
    return open_hour <= current_hour < close_hour

在仿真软件中,直接把这段逻辑嵌入顾客的路径选择环节即可。

3. 改造顾客排队分配逻辑

  • 当顾客到达收银区时,先执行状态筛选:遍历所有收银台,只保留is_checkout_available返回True的收银台作为可选队列。
  • 从筛选后的营业收银台中,按预设规则(比如最短队列、随机选择)分配顾客。
  • 如果所有收银台都处于关闭状态,可触发对应逻辑:比如让顾客进入等待区直到有收银台开门,或者暂停该时段的顾客生成。

4. 处理时段切换的边界场景

  • 收银台到点关闭时,添加不再接受新顾客的标记,等当前队列的顾客处理完成后再停止运作,避免中途截断排队。
  • 收银台到点开门时,重置标记,恢复接受新顾客的状态。

内容的提问来源于stack exchange,提问作者mustafatasocak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 13:02:34