基于AnyLogic代理的模拟代理值转移

时间:2016-04-24 15:28:46

标签: java simulation javaagents agent-based-modeling anylogic

我对Java& amp; AnyLogic因此请为我的级别提供帮助。

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

代理也最初通过Small-World连接进行连接,并且在运行期间不会更改这些连接。

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

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

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

1 个答案:

答案 0 :(得分:1)

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

如果您有一群名为" MyAgents"的代理,其中每个代理都有一个带有随机双值的变量var,那么代理12可以通过调用{{1}来获取代理14的双值}。

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

如果您打算使用get_Main(),则需要先连接座席。如果您使用" Small world"但通常,您希望手动定义连接。检查"链接到代理"帮助中的文章。

欢呼声