【问题标题】:How to batch agents with similar parameters with different batch size?如何以不同的批量大小批量处理具有相似参数的代理?
【发布时间】:2021-10-25 18:58:49
【问题描述】:

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

非常感谢您提供的任何帮助。

这是我的最后一个问题,类似于这个问题: Anylogic: how to Batch agents with similar parameters?

【问题讨论】:

    标签: java anylogic


    【解决方案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 值的数组并循环遍历该数组来提高效率(与上一个问题中的回答相同)...这代表了一般理想

    【讨论】:

      猜你喜欢
      • 2021-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-22
      • 1970-01-01
      • 2016-10-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多