如何将单个属性分配给任何逻辑代理

时间:2018-06-22 20:14:28

标签: attributes agent anylogic

我想解决以下问题:

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

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

非常感谢您的帮助。

巴斯蒂安

1 个答案:

答案 0 :(得分:0)

许多方式:

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