如何将具有相似参数的代理以不同的批量大小进行批处理?

问题描述 投票:0回答:2

我有一个名为 products 的代理,在这个代理中,我分配了一个名为 sp 的参数;在模拟中,我有相同的代理,其 sp 范围从 1 到 5。我想在同一批次中对具有相同 sp 的代理进行批处理,具体取决于 sp。因此,如果我有 200 个代理,其中 49 个 sp 等于 1,我想将它们分 4 批处理,因为这个 sp 的批量大小是 10,剩下的 9 个代理等到下一个周期,并且sp等于2,我有33个代理,批量大小为7,我想将它们分4批,剩下的5个代理等到下一个周期,依此类推。

我真的很感谢您提供的任何帮助。

这是我的最后一个问题,与这个问题类似: Anylogic:如何批量处理具有相似参数的代理?

java anylogic
2个回答
1
投票

遵循与上一个问题的答案相同的逻辑,先有一个等待块,后跟一个批处理块...在进入等待块时,您需要检查是否满足批处理的条件...

List <Product> sameSpProducts=findAll(self,s->s.sp==agent.sp);
if(agent.sp==1 && sameSpProducts.size()==10){
    theBatchBlock.set_batchSize(10);
    for(Product p : sameSpProducts){
       self.free(p);
    }
}

对于所有其他 sp 值都相同...您可以通过使用包含 sp 值的数组并循环该数组来提高效率(与上一个问题中的回答相同)...这代表了一般理想


0
投票

根据下面给出的信息回答以下问题。

与任何其他批次相比,任何参数的数值较高的批次排名较高(即该参数的数值较小

有多少批次在四个参数中的任何一个上排名高于至少一个且最多两个其他批次?

10

选择正确的操作

10

7

8

© www.soinside.com 2019 - 2024. All rights reserved.