2

我对 Java 和 AnyLogic 还很陌生,所以请在这方面达到我的水平。

代理有没有办法从另一个代理获取变量值?在这种情况下,代理将属于同一类型。因此,它们都具有相同的变量,但由于它是具有随机初始值而不是参数的变量,因此值不一样。

代理最初也是通过小世界连接连接的,并且这些连接在运行期间不会改变。

例如,发生在事件中的代理如何从另一个代理收集变量值(例如代理 i 获取代理 j 的变量值 X)。该值将被放入一个小方程中,以修改代理 i 的变量 X 的值。换句话说,代理 i 会受到他的连接代理 j 的影响,从而改变他的 X 值。

我尝试了多种组合.getConnectedAgent().get没有任何成功。我现在正尝试将每个代理的 X 值提取到数据库中,然后使用该数据库通过代理 i 收集代理 j 的 X 值,但我在那里没有取得任何进展。

需要提取的值是doubles,但如果更容易,我可以将变量更改为整数。

4

1 回答 1

2

无需将其提取到数据库中。您应该更多地学习面向对象的编程,您的问题与 AnyLogic 的关系不大,而与正确使用 Java 的关系更大。

如果您有一个名为“MyAgents”的代理群体,其中每个代理都有一个带有随机双精度值的变量 var,那么代理 12 可以通过调用来获取代理 14 的双精度值var = get_Main().MyAgents.get(13).var

在这里,var左侧是调用代理的 var。get_Main()将其在层次结构中提升一级以访问其自己的人口和其他代理。然后它访问第 14 个代理(Java 是从零开始的)及其 var 值。

如果您打算使用getConnectedAgent(),您需要先连接代理。如果您使用“Small world”,则可以在某种程度上完成此操作,但通常您希望手动定义连接。检查帮助中的“链接到代理”一文。

干杯

于 2016-04-26T07:56:36.787 回答