如何只为一种座席类型设置一种预定义的布局模式? (最好是代码)

时间:2019-04-08 09:23:20

标签: anylogic

我计划在仿真中使用两种类型的代理。

对于一种座席类型,我计划通过该座席类型的“启动时”操作中调用的setXYZ()方法来显式设置位置。

我计划使用第二种座席类型,如以下所述使用一种预定义的布局模式(随机或环形):

https://help.anylogic.com/index.jsp?topic=%2Fcom.anylogic.help%2Fhtml%2Fagentbased%2FContinuous_Layouts.html

问题是,以下两种代码放置在主要代理类型的“启动时”操作中,这两种类型的代理之间并没有区别(并将所有代理放置在一个圆圈中):

setLayoutType(Agent.LAYOUT_RING); 
applyLayout();

我应该以某种方式修改上面的代码(正如我已经尝试过的那样)还是有另一种方法?

1 个答案:

答案 0 :(得分:0)

我认为该空间中存在的所有座席的布局类型必须相同...不过...您可以执行以下操作:

//first you apply the ring layout to everything
setLayoutType(Agent.LAYOUT_RING); 
applyLayout();
//then you define the type of agent you don't want to follow the ring layout separately
for(int i=0;i<100;i++){//assuming you will create 100 agents initially
    MyAgent p=add_myAgents();//you need to create your agents after the ring layout is applied though..
    p.setXY(uniform(0,500), uniform(0,500));//assuming your agents are in a 500x500 square in main
}

我不知道是否有更好的方法...但这就是我所知道的