【问题标题】:How to assign individual attributes to Any Logic Agents如何将单个属性分配给任何逻辑代理
【发布时间】:2018-12-02 08:22:39
【问题描述】:

我想解决以下问题:

  • 基于代理的模型,包含 500 个代理
  • 使用名为 v_agentID 的变量,使用顺序 v_agentID++ 为每个代理分配一个 ID 号;创建后
  • 然后应根据监控个人等待时间的条件进一步处理代理

如何将等待时间等单个属性(作为计算 waitingTime=waitingTimeEnd-waitingTimeStart 的结果)分配给每个代理?

非常感谢您的帮助。

巴斯蒂安

【问题讨论】:

    标签: attributes agent anylogic


    【解决方案1】:

    多种方式:

    1) 在使用您提供的公式计算 waitingTime 的单个代理上创建一个周期性事件
    2)为每个代理创建一个动态变量,并使其等于waitingTimeEnd-waitingTimeStart
    3) 随时创建变量并在所有代理中更改它:

    for(Agent a : agents){
        a.waitingTime=a.waitingTimeEnd-a.waitingTimeStart;
    }
    

    4) 找到具有您想要的 id 的代理并将变量分配给它

    Agent theAgent=findFirst(agents,a->a.id=theIdYouWant);
    theAgent.waitingTime=theAgent.waitingTimeEnd-theAgent-waitingTimeStart;
    

    5) 如果你知道代理的索引就行

    agents.get(index).waitingTime=agents.get(index).waitingTimeEnd-agents.get(index).waitingTimeStart
    

    【讨论】:

    • 嗨,felipe,我尝试了建议的方法,但似乎我仍然不太了解这个概念。
    • 嗨,felipe,我尝试了建议的方法,但似乎我仍然不太了解这个概念。由于我是 AnyLogic 的初学者,我正在使用状态图的图形支持。也许我需要更简单地执行此操作,您能否解释一下您在第 3 点下编写的“for”循环在做什么,使用的单词是我需要定义的变量以及 Any Logic 识别的代码是什么。 --> 抱歉再次询问,不幸的是,我是个初学者
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-07
    • 1970-01-01
    • 2015-08-17
    • 2010-11-15
    • 1970-01-01
    相关资源
    最近更新 更多