监控矩形节点的使用情况

时间:2019-02-26 06:23:56

标签: anylogic

我将一批代理移动到一个未绑定的节点上。一旦未批处理的代理程序占据了该节点,该节点将无法用于其他批次的代理程序移动到该节点,因此我从可用节点集合AvailableNodes中删除了该节点。(总共约有50个节点)。每个未批处理的代理程序都有一个参数,该参数是它已移动到的节点。问题是一旦所有未批处理的代理已从该节点移出后如何将其添加回AvailableNodes。在代理进入/退出节点时,我是否增加了与我增加或减少的每个节点相关联的变量?如果是这样,如何将唯一变量与节点关联?或者,还有更好的方法?

1 个答案:

答案 0 :(得分:1)

哦,您在不好的实践中行走……您的节点应该属于资源池,这意味着您应该拥有一个带有节点的代理,而不是一个节点...这样您就不会完全不需要任何收藏。

另一个选择是创建一个小型类,该类将具有节点和可用性...以及该节点中当前存在的代理数量。只需创建一个新类,然后添加这3个变量即可。然后,在模型开始时,将该类的实例添加到集合availableNodes中,然后可以根据要向该节点添加的代理情况仅执行Class.numberOfAgents + = 1或-= 1。要找到可用的代理,您可以执行TheClass x=findFirst(availableNodes, a->a.numberOfAgents==0);,然后将代理发送到x.node;

还有一种可能会继续做您正在做的事情...但是我什至不去那里,因为那会很混乱。