使用路径计算代理数量

Calculate amount of agent using a path

我之前已经有过这个问题,但不是针对运输工具。在我的模型中,我想通过使用计数器作为变量来计算使用路径的代理数量,但是我当前用于传输器的方法不适用于没有传输器的代理。

我目前创建了一个代理应该通过的节点(参见第一张图片),并在此处放置了一个计数器(参见图 2)。但是,这似乎不适用于仅使用没有传输器的代理。还有其他方法吗?谢谢

我认为使用矩形节点进行计数有点矫枉过正。这是我的做法:

在main中创建一个变量,我们称之为counterNodes。它应该是 int[][] 类型。在初始值类型 new int[5][5] 中(假设您有 5 个节点和 5x5 种可能的组合(对))。

如果您的 Person 代理没有 origindestination 变量,请创建一个。如果您已经具备此逻辑,请跳过此步骤。

并且我假设您的节点称为 node0、node1、node2 等

如果您使用 moveTo 块,进入时,获取代理的起点和终点编号并增加计数器。

Integer a=(int) Integer.parseInt(agent.origin.getName().substring(4));
Integer b=(int) Integer.parseInt(agent.destination.getName().substring(4));

counterNodes[a][b]+=1;

你能做什么,因为一个愚蠢的解决方案是在你的代理中有 2 个事件......一个每 100 毫秒左右循环一次,完全没有任何作用

另一个是有条件的事件:

node.contains(getX(),getY())

在这次活动中,您将算数。

当运动开始时(不管你怎么做),你重新启动条件事件:

event.restart();