AnyLogic 如何将吸引子选择设置为自由和随机

问题描述

有没有办法同时自由和随机地选择吸引子?

我自己的问题是:

  • When the choice is set to Free - agents are using attractors in very predictable order based on attractor creation.
  • When the choice is set to Random - more than one agent is using an attractor at the same time,which I don't want.

我找到了解决方案,但不知道如何正确实施在以下线程中:

AnyLogic Attractor weird behavior

我尝试创建一个代理类型(而不是一个类)'myAttractor',里面有一个布尔变量(占用或未占用的吸引器),但我不知道如何将该代理类型分配给节点内的实际吸引器- 如果这可能吗?

也许还有其他解决方案可以自定义吸引子选择以实现完全随机,每个吸引子只有一个代理?

非常感谢, 彼得

解决方法

这是一个很好的问题,而且通常是动画方面的问题。

一种选择是创建一个集合,简单的 ArrayList 就可以做到,所有吸引子

enter image description here

然后在设置吸引器的过程建模块 (PML) 中,您有一个返回吸引器的函数。我在这里提供代理,以便我们可以跟踪将哪个代理发送到哪个吸引子,以便一旦代理离开吸引子位置,我们就可以将吸引子放回可用堆中。

enter image description here

这里是 getAttractor 函数

enter image description here

它获得一个随机的可用吸引子,然后还将把它带到地图上的代理保存

这是地图 $ curl localhost:5443/

的设置

enter image description here

如果你想释放吸引子,你可以在吸引子被释放的任何时候简单地调用它

mapAgentPerAttractor

这是最终结果以及我们正在复制您描述的问题的比较

enter image description here

可以看到在底部节点中只有 8 个点可用,因为一些代理位于同一个吸引子上...