AnyLogic Attractor 奇怪的行为
AnyLogic Attractor weird behavior
我的理解是节点内的吸引子的容量应该为 1,也就是说在 3D 动画中,每个吸引子应该只有一个代理。
当我 运行 模型时,我在同一个吸引子上看到两个代理形状,而其他吸引子是空的。
这是正常现象吗?有什么办法可以防止这种情况发生吗?
请注意,这并非一直发生,但由于模型是 运行ning,有时代理会去空吸引子,而其他时候他们会去已经有代理的吸引子。
这完全有可能...如何避免取决于您的型号。
吸引子仅定义您的代理将在节点内的位置,并且没有规定您不能在同一个吸引子中拥有多个代理。
AnyLogic按照它们被创建的顺序发送代理到吸引子,如果你有10个吸引子,10个代理最初去吸引子,如果代理3离开吸引子,下一个代理不会去吸引子3,相反它会去吸引子1,然后下一个会去吸引子2,按照相同的顺序...
如果你想在一般情况下避免它,你应该明确指定你的代理应该去哪个吸引子。
我所做的是创建一个 class 并将其关联到那个吸引子并设置一个变量来定义吸引子是否被占用...
如果所有吸引子都被占用,那么你需要创建额外的逻辑将代理发送到其他地方
一个选项是创建一个集合,简单的 ArrayList 就可以,所有的吸引子
然后在您设置吸引子的过程建模块 (PML) 中,您有一个 returns 吸引子的函数。我在这里提供代理,这样我们就可以跟踪什么代理被发送到哪个吸引子,这样我们就可以在代理离开吸引子位置后将吸引子放回可用堆中。
这里是 getAttractor 函数
它得到一个随机可用的吸引子,然后还将把它带到地图上的代理保存起来
如果你想释放吸引子,你可以在吸引子被释放的任何时候简单地调用它
attractorsAvailable.add(mapAgentPerAttractor.get(agent));
mapAgentPerAttractor.remove(agent);
这是最终结果以及我们对您描述的问题进行的比较
我的理解是节点内的吸引子的容量应该为 1,也就是说在 3D 动画中,每个吸引子应该只有一个代理。 当我 运行 模型时,我在同一个吸引子上看到两个代理形状,而其他吸引子是空的。
这是正常现象吗?有什么办法可以防止这种情况发生吗?
请注意,这并非一直发生,但由于模型是 运行ning,有时代理会去空吸引子,而其他时候他们会去已经有代理的吸引子。
这完全有可能...如何避免取决于您的型号。
吸引子仅定义您的代理将在节点内的位置,并且没有规定您不能在同一个吸引子中拥有多个代理。
AnyLogic按照它们被创建的顺序发送代理到吸引子,如果你有10个吸引子,10个代理最初去吸引子,如果代理3离开吸引子,下一个代理不会去吸引子3,相反它会去吸引子1,然后下一个会去吸引子2,按照相同的顺序...
如果你想在一般情况下避免它,你应该明确指定你的代理应该去哪个吸引子。
我所做的是创建一个 class 并将其关联到那个吸引子并设置一个变量来定义吸引子是否被占用...
如果所有吸引子都被占用,那么你需要创建额外的逻辑将代理发送到其他地方
一个选项是创建一个集合,简单的 ArrayList 就可以,所有的吸引子
然后在您设置吸引子的过程建模块 (PML) 中,您有一个 returns 吸引子的函数。我在这里提供代理,这样我们就可以跟踪什么代理被发送到哪个吸引子,这样我们就可以在代理离开吸引子位置后将吸引子放回可用堆中。
这里是 getAttractor 函数
它得到一个随机可用的吸引子,然后还将把它带到地图上的代理保存起来
如果你想释放吸引子,你可以在吸引子被释放的任何时候简单地调用它
attractorsAvailable.add(mapAgentPerAttractor.get(agent));
mapAgentPerAttractor.remove(agent);
这是最终结果以及我们对您描述的问题进行的比较