在AnyLogic中按顺序生成多个代理

时间:2018-04-02 08:09:01

标签: anylogic

如何在块“源”中创建代理?例如,第一个代理,比两个代理,三个代理,再一个代理,两个,三个等。

1 个答案:

答案 0 :(得分:1)

我认为有很多方法可以做到这一点......但严格来说,我会提出两个解决方案:

解决方案1 ​​
您可以使用函数注入。您可以选择“调用inject()函数”定义的到达数。 inject source

然后你可以使用每秒运行一次的事件,并创建一个名为arrivals的变量作为初始值为1的int

在这种情况下你可以这样做:

source.inject(arrivals);
if(arrivals==3){
    arrivals=1;
}else{
    arrivals++;
}

解决方案2
如果您不想使用某个活动,可以直接在源中进行,选择按费率(或其他内容)定义的到达,并选中“每个到达的多个代理”,您将使用“代理商”中的变量到达到达”。您将创建另一个以1开头的varialbe arrivalsCounter,它将是一个int。

然后您可以使用以下代码:

if(arrivalsCount==arrivals){
    if(arrivals==3)
        arrivals=1;
    else
        arrivals++;
    arrivalsCount=1;
}else{
     arrivalsCount++;
}

这是您参考的源配置图片:

enter image description here