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

如何在AnyLogic中基于Agent类型调整到达间隔率?

解决AnyLogic中基于Agent类型调整到达间隔率的问题
  • 修正Option List枚举值的引用方式
    AnyLogic的Option List类型参数,枚举值需要通过参数名来访问,直接写type2会导致识别失败。将表达式修改为:

    agent.Type == Type.type2 ? triangular(1,2,3) : 50
    

    这里的Type是你创建的Option List参数名,确保和实际参数名一致。

  • 确认到达间隔设置的时机
    若你在Source模块的「到达间隔时间」中直接使用agent.Type,此时Agent尚未完成初始化,无法正确获取Type值。可以换两种方式处理:

    1. 先在Source的「On exit」动作中给Agent的Type赋值,同时创建全局函数来计算对应间隔:
      double getArrivalInterval(Type agentType) {
          return agentType == Type.type2 ? triangular(1,2,3) : 50;
      }
      
      然后将Source的到达间隔设置为getArrivalInterval(要生成的类型),比如根据概率分配类型时:
      getArrivalInterval(uniform(0,1) < 0.3 ? Type.type2 : Type.type7)
      
    2. 直接在到达间隔中用概率逻辑判断类型,同时在Source的「On exit」中同步赋值Agent的Type。
  • 检查Agent的Type参数初始化
    确保Agent的Type参数在生成时被正确赋值,比如在Agent的「On initialize」动作中设置默认值,或者在Source生成Agent时明确指定。如果Type未赋值,表达式会始终触发else分支返回50。

  • 验证表达式语法
    确认三元运算符格式正确,triangular(1,2,3)的参数符合要求(第一个值≤第二个≤第三个),你的参数是合法的,这部分无需调整。

内容的提问来源于stack exchange,提问作者Jahidul Hasan Razib

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 04:32:06