我们有500个代理商。每个人都有一个int参数和一个int变量。
如果我想通过消息发送每个座席的参数以更改另一个座席的变量,您的解决方案是什么?
例如,对于所有代理,我们将“ accept
”作为参数,将“ Opi
”作为变量。我们将“ accept
”发送给所有代理。当代理1将其“接受”发送给代理2时,我想设置“ Opi.2= Opi.2 + accept.1
”,但是Anylogic将其设置为“ Opi.2= Opi.2 + accept.2
”。
我定义了Mediator变量:
发送消息:
操作:
答案 0 :(得分:0)
那么,您需要访问agent1的参数X1。如果您共享了一些屏幕快照和实际的对象名称,这将很有帮助,但是在您的表示法中,您将需要类似以下内容,假设您在所有代理都居住的主要位置嵌入了一个代理种群(并且假设代理1和2是同一代理)类型),并假设我们使代理2更新为X
X = X + main.myAgentPopulation.get(0).Y
还要假设“特工1”是您种群中的第一个特工。
最好是,如果您共享更多细节或更好地了解基于Java的OOP(您不在数组,张量和矩阵的数据科学领域:-))。
欢呼
答案 1 :(得分:0)
我希望我能理解您的问题:
首先,要将消息从一个代理发送到另一个代理,可以使用发送功能。如果您的消息是从agent1发送到agent2的,则要发送X,您将使用:send(X,agent2)
第二,在代理连接中,您将消息定义为int,并且在收到消息时可以进行Y=Y+msg;
WPF ScrollViewer around DataGrid affects column width
请注意,味精是从agent1收到的X。
编辑: 如我所述,发送的消息只能在connections元素中读取...如果您在过渡中使用中介变量,则使用的是代理的中介变量,而不是已发送的中介变量。唯一的方法就是按照我刚给你的方法做。