[英]AnyLogic Agent-Based simulation agents value transfer
我对Java和AnyLogic还是很陌生,所以请对此进行介绍。
代理有没有办法从另一个代理获取变量值? 在这种情况下,代理将是同一类型。 因此,它们都具有相同的变量,但是由于它是具有随机初始值而不是参数的变量,所以值是不同的。
代理程序最初也通过Small-World连接进行连接,并且这些连接在运行期间不会更改。
例如,发生在事件中的代理如何从另一个代理中收集变量值(例如,代理i获得代理j的变量值X)。 为了修改代理i的变量X的值,可以将该值放在一个小方程式中。 换句话说,代理i会受到其连接的代理j的影响,因此会更改其X的值。
我尝试了.getConnectedAgent()
和.get
多种组合,但.getConnectedAgent()
成功。 我现在正尝试将每个代理的X值提取到数据库中,然后使用该数据库按代理i收集代理j的X值,但是我在此没有任何进展。
需要提取的值是double
,但是如果更容易,我可以将变量更改为整数。
无需将其提取到数据库中。 您应该对面向对象的编程进行更多的学习,您的问题与AnyLogic无关,而与正确使用Java有关。
如果您有一个称为“ MyAgents”的代理,其中每个代理都有一个具有随机双精度值的变量var,则代理12可以通过调用var = get_Main().MyAgents.get(13).var
获得代理14的双var = get_Main().MyAgents.get(13).var
值var = get_Main().MyAgents.get(13).var
。
在这里, var
的左侧是主叫代理的变种。 get_Main()
在层次结构中将其上移至一个级别,以访问其自身的总体和其他代理。 然后,它访问第14个代理(Java从零开始)及其var值。
如果计划使用getConnectedAgent()
,则需要首先连接代理。 如果您使用“小世界”,则可以在某种程度上完成此操作,但是通常您希望手动定义连接。 检查帮助中的“链接到代理”文章。
干杯
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.