在 Anylogic 中获取特定人群的代理参数

Get a parameter of an agent of a specific population in Anylogic

我遇到以下问题,希望得到一些帮助。 情况:

代理人A在人口X中,代理人B在人口Y中

我想将agent A的变量varA设置为agent B的varB。agent A和agent B在不同的群体X和Y中,但是agent B是群体B中唯一参数par1等于代理A的参数par1.

我正在尝试将其写入一个函数,每当我需要更新该特定参数时都会调用该函数,但未能成功。

非常感谢任何帮助。

最佳Heinz_S

假设您的种群名称是 popX 和 popY...最初 varA 与 varB 不同,您希望根据参数 par1

的匹配使它们相等

以下函数将匹配您群体中具有相同 par1 的所有代理,并使 varA 在所有情况下都等于 varB。您可能可以更有效地使用 stream()...但我不知道如何使用。

for(int i=0;i<popX.size();i++){
    for(int j=0;j<popY.size();j++){
        if(popX.get(i).par1==popY.get(j).par1){
            popX.get(i).varA=popY.get(j).varB;
        }
    }
}