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

如何在AnyLogic中基于Person Agent的age属性控制到达率?

基于Person的age属性控制到达率的解决方案
  • 替换多Source为单一Source:放弃原有的三个设施各对应一个Source的方式,改用单个Source生成所有Person,后续通过分流逻辑将Person导向对应设施的流程,这样能统一管控不同年龄层的到达率。
  • 自定义到达率函数:在Source的「到达率」设置中,使用自定义函数替代固定数值。创建返回double类型的函数getArrivalRateByAge(),根据age属性返回对应到达率:
    double getArrivalRateByAge() {
        if (agent.age == 65) {
            return 5.0; // 每分钟5人
        } else if (agent.age == 20) {
            return 1.0; // 每分钟1人
        }
        // 可扩展更多年龄区间的逻辑
        return 0.0; // 默认到达率
    }
    
    若age为连续值,可调整为区间判断,例如if (agent.age >= 60 && agent.age <= 70) return 5.0;
  • 为Person赋值age属性:在Source的「On exit」动作中,给生成的Person设置age属性。如果需要按概率生成不同年龄的Person,可使用随机逻辑:
    double prob = random();
    if (prob < 0.2) {
        agent.age = 20;
    } else if (prob < 0.6) {
        agent.age = 65;
    }
    // 补充其他年龄层的概率分配规则
    
  • 按facilityChoice分流:在Source后添加SelectOutput模块,根据Person的facilityChoice属性,将其分流到对应设施的MoveTo模块入口,对接原有的Queue→Delay→Sink流程。
  • 验证到达率:通过仪表盘(Dashboard)添加统计组件,监控不同age的Person每分钟到达数量,确认是否符合设定的到达率要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 03:12:09