提问者:小点点

如何在Anylogic中创建特定吸引子元素作为运动块目标函数


我试图创建一个函数,将特定的吸引器目的地返回到moveTo块。 该功能将检查第一个吸引器是否忙,将去检查下一个吸引器。 如果下一个吸引子可用,则产品移动到该吸引子目的地。 挣扎在如何到达吸引子作为数组的一个元素,并返回该元素作为移动的一个目的地。 此外,如果下一个吸引子不可用,如何循环检查下一个吸引子的条件。

我试着用收集和人口代理。 但不能返回吸引子元素。

敬请指教,谢谢您的评论。景点模型照片


共1个答案

匿名用户

例如,使用一个名为yourCollection的LinkedHashMap,其中键为吸引子类型,值为布尔值(如果空闲,则为true;如果繁忙,则为false)。。。 然后你可以做你的收集。get(youraptractor),它会返回一个true或false

像这样初始化它:

for(Attractor a : collectionCellTest){
    yourCollection.put(a,false);
}

返回自由吸引子的函数应该是这样的:

for(Attractor a : yourCollection.keySet()){
    if(yourCollection.get(a)){
         return a;
    }
}
return null;

你也可以把资源放在吸引器里,然后使用moveTo来捕获资源单位。。。 这将是我认为最稳健的方法。

如果你想用吸引子做更多特殊的事情,你也可以考虑使用一个类集合,在这个集合中,类会有吸引子,至少如果它是免费的或者不是免费的。