使用路径计算代理数量
Calculate amount of agent using a path
我之前已经有过这个问题,但不是针对运输工具。在我的模型中,我想通过使用计数器作为变量来计算使用路径的代理数量,但是我当前用于传输器的方法不适用于没有传输器的代理。
我目前创建了一个代理应该通过的节点(参见第一张图片),并在此处放置了一个计数器(参见图 2)。但是,这似乎不适用于仅使用没有传输器的代理。还有其他方法吗?谢谢
我认为使用矩形节点进行计数有点矫枉过正。这是我的做法:
在main中创建一个变量,我们称之为counterNodes
。它应该是 int[][]
类型。在初始值类型 new int[5][5]
中(假设您有 5 个节点和 5x5 种可能的组合(对))。
如果您的 Person 代理没有 origin
和 destination
变量,请创建一个。如果您已经具备此逻辑,请跳过此步骤。
并且我假设您的节点称为 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();
我之前已经有过这个问题,但不是针对运输工具。在我的模型中,我想通过使用计数器作为变量来计算使用路径的代理数量,但是我当前用于传输器的方法不适用于没有传输器的代理。
我目前创建了一个代理应该通过的节点(参见第一张图片),并在此处放置了一个计数器(参见图 2)。但是,这似乎不适用于仅使用没有传输器的代理。还有其他方法吗?谢谢
我认为使用矩形节点进行计数有点矫枉过正。这是我的做法:
在main中创建一个变量,我们称之为counterNodes
。它应该是 int[][]
类型。在初始值类型 new int[5][5]
中(假设您有 5 个节点和 5x5 种可能的组合(对))。
如果您的 Person 代理没有 origin
和 destination
变量,请创建一个。如果您已经具备此逻辑,请跳过此步骤。
并且我假设您的节点称为 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();