我正在使用AnyLogic开发人道主义物流供应链。此模型需要将卡车从陆军驻地发送到仓库,从仓库中挑选物品以支持受地震影响的人们并前往震中丢弃它们。此模型必须为每辆卡车选择最近的仓库,其中有物品可用。例如,如果最近的仓库没有可用,卡车必须选择第二个最近的可用仓库,并在其中挑选物品并前往震中。
我意识到这个状态图,其中我定义了一个算法,必须选择最近的仓库,其中有物品可用,如下所示:
List <Magazzini> subsetlist = findAll(main.magazzinis, w->w.availabilty>0);
// I select just warehouses with availablity
List <Magazzini> sortmag = new ArrayList<>();
sortmag = subsetlist;
for (Warehouses m : subsetlist)
{
distance.add(distanceTo(m));
sortmag = sortAscending(sortmag, p-> p.distanceTo(m)); //anylogic function which sort agent according a condition (distances
// from lorry in that case)
}
moveTo(sortmag.get(0)); //move towards the first one warehouse of the sorting made in the for cycle
System.out.println(sortmag); // just to print the result
sortmag = new ArrayList<>();
无论如何,这种算法并不适用于所有在状态图上读取它的卡车(在名为“at_warehouse”的州),但只适用于第一辆。随后,所有卡车都“读取”了第一辆卡车的相同结果。
我该如何解决它?请回答,如果你知道AnyLogic软件,不要关闭这篇文章。有关任何进一步的信息,请回答,我会给你的。我需要为我的论文工作解决这个问题。非常感谢。
PS:我还上传了一张照片,你可以看到卡车从萨勒诺出发,去巴里,而不是去那不勒斯,那里有一个可用的仓库。在这里输入图像描述
也许您可以首先在循环中设置距离值,然后对Arraylist排序,在这种情况下,您还必须在Magazzini中创建一个名为distance的属性,如下所示
for(Magazzini m: subsetList){
m.distance = distanceTo(m);
}
sortmag = sortAscending(subsetList, p-> p.distance);
希望这有帮助
问题内容: 您好,我有一个带有列的表: *使用oracle 我想知道如何获取给定用户的最新添加的文档。 谢谢 问题答案:
问题内容: 如何选择连续的第一个和最后一个? 问题答案: 您可以使用和伪选择器: 这应该在所有主流浏览器上都可以使用,但是当动态添加元素时IE7会出现一些问题(在IE6中将无法使用)。
我使用的是:
问题内容: 我有: 现在,如果我已经有了h2标签,最简单的方法就是将Peter带到这里?现在我尝试了: 但是在这里我得到nth-child NotImplementedError: 所以我不确定这是怎么回事。第二种选择是只获取所有’p’标签子代并进行硬选择[1],但是存在索引超出范围的危险,这将需要用try /包围所有尝试让 Peter 尝试,除非这有点愚蠢。 有什么方法可以用汤.select()
问题内容: 我试图选择一个表中的最后6个月的条目,我有一列称为datetime,这是一种datetime mysql格式。 我已经看到许多使用间隔和其他方法的方法-应该使用哪种方法?谢谢 问题答案: 使用DATE_SUB
问题内容: 我有一个生成的DataFrame,如下所示: 结果如下: 如您所见,DataFrame按升序排列,然后按降序排列。 我想选择每个组的第一行,即 从小时== 0的组中选择(0,cat26,30.9) 从小时= 1的组中选择(1,cat67,28.5) 从小时== 2的组中选择(2,cat56,39.6) 等等 因此,所需的输出将是: 能够选择每个组的前N行也可能很方便。 任何帮助都将受到