我是Java和AnyLogic的新手,所以请在这篇文章中达到我的水平。
有没有办法让代理从另一个代理获取变量值?在这种情况下,座席将属于同一类型。因此,它们都有相同的变量,但由于它是具有随机初始值的变量,而不是参数,因此值不相同。
代理最初也是通过小世界连接连接的,这些连接在运行期间不会改变。
例如,在事件中发生的代理如何从另一个代理收集变量值(例如,代理i获得代理j的变量值X)。为了修改代理i的变量X的值,这个值将被放入一个小的方程式中。换句话说,代理i将受到其连接的代理j的影响,从而改变他的X值。
我已经尝试了.getConnectedAgent()和.get的多种组合,但都没有成功。我现在正在尝试将每个代理的X的值提取到一个数据库中,然后通过代理i使用该数据库来收集代理j的X的值,但我在这方面没有任何进展。
需要提取的值是整数(double),但如果这样更容易,我可以将变量更改为整数。
发布于 2016-04-26 15:56:37
不需要将其提取到数据库中。你应该多学习一些面向对象的编程,你的问题与AnyLogic的关系不大,更多的是关于如何正确使用Java。
如果您有一个名为"MyAgents“的代理群体,其中每个代理都有一个具有随机双精度值的变量var,那么代理12可以通过调用var = get_Main().MyAgents.get(13).var来获得代理14的双精度值。
在这里,左侧的var是调用代理的变量。get_Main()将其在层次结构中上一级,以访问其自己的群体和其他代理。然后,它访问第14个代理(Java是从零开始的)和它的var值。
如果您计划使用getConnectedAgent(),则需要首先连接代理。如果您使用“小世界”,这在某种程度上是可以做到的,但通常,您希望手动定义连接。查看帮助中的"Link to Agent“文章。
干杯
https://stackoverflow.com/questions/36825158
复制相似问题