【发布时间】:2016-08-17 22:25:14
【问题描述】:
我对 Java 和 AnyLogic 还很陌生,所以请在这方面达到我的水平。
代理有没有办法从另一个代理获取变量值? 在这种情况下,代理将属于同一类型。因此,它们都具有相同的变量,但由于它是具有随机初始值的变量而不是参数,因此值不一样。
代理最初也通过 Small-World 连接进行连接,并且这些连接在运行期间不会更改。
例如,发生在事件中的代理如何从另一个代理收集变量值(例如代理 i 获取代理 j 的变量值 X)。这个值将被放入一个小方程中,以修改代理 i 的变量 X 的值。换句话说,代理 i 会受到他的连接代理 j 的影响,从而改变他的 X 值。
我尝试了.getConnectedAgent() 和.get 的多种组合,但均未成功。我现在正尝试将每个代理的 X 值提取到数据库中,然后使用该数据库通过代理 i 收集代理 j 的 X 值,但我在那里没有取得任何进展。
需要提取的值是doubles,但如果更容易的话,我可以将变量更改为整数。
【问题讨论】:
-
为了使 Benjamin 的(好的)答案更加明确,如果您想从您连接的第一个代理获取 AnyLogic 变量 x 的值,那么您可以使用
getConnectedAgent(0).x。 (括号中的零告诉 AnyLogic 哪个您要使用连接代理,其中零是第一个。如果您使用小世界网络环境,AnyLogic 已为您设置零个或多个连接,其中在这种情况下,顺序有点无关紧要。) -
您还需要测试是否存在 实际上是当前代理的连接,但可能不存在,例如,您将代码放在 @ 987654325@块。
标签: java simulation javaagents agent-based-modeling anylogic