java - AnyLogic 基于 Agent 的模拟代理值传递

标签 java simulation javaagents agent-based-modeling anylogic

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

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

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

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

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

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

最佳答案

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

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

在这里,var左侧是调用代理的变量。 get_Main()将其提升一级以访问其自己的群体和其他代理。然后它访问第 14 个代理(Java 从零开始)及其 var 值。

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

干杯

关于java - AnyLogic 基于 Agent 的模拟代理值传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36825158/

相关文章:

python - 在python中生成分类数据集

java - 如何从类路径 * 作为字节数组 * 加载 Java 类以进行字节码注入(inject)?

java - 在 JAVA 中用零初始化一个二维数组

c++ - 用于嵌套 for 循环的 OpenMP?

java - 使用 RMI 调用中的值修改其 DefaultListModel 时,JList 有时会变为空白

sorting - 事件模拟是否需要优先级队列?

jvm - 使用 ByteBuddy 代理重新定义 Spigot 类时出现 VerifyError

java - Adobe Experience Manager 中的 netdiagnostics Java 代理启动错误

java - 检查数组是否包含 Java 中的整数

java - java中二进制到十进制转换的问题(数组)