【问题标题】:AnyLogic Batching agents i.t.o WeightAnyLogic 批处理代理 i.t.o 重量
【发布时间】:2019-02-11 00:51:41
【问题描述】:

如何将批量大小设置为我要批量的重量?我目前正在模拟马铃薯植物。由于土豆的随机性,土豆(代理)都有自己的重量,但现在我必须将它们分批成10Kg的袋子。重量应该在 10 公斤以上,但不能更小,因此将是 9.9 公斤,再加上一个土豆。

F1 帮助功能建议使用自定义队列。但我不知道如何继续使用该选项。

任何帮助将不胜感激

【问题讨论】:

    标签: anylogic


    【解决方案1】:

    您可以使用具有无限容量的“等待”对象。每当添加土豆时,请检查总重量,如果它们超过您的阈值,您可以使用wait.freeAll()。这会将它们发送到下游批处理对象中。

    确保在使用 freeAll() 方法之前将批处理大小更改为“等待”对象中的土豆数量,以便将所有释放的土豆一起批处理。您可以使用 batch.set_batchSize(x) 动态执行此操作

    干杯

    【讨论】:

    • btw:你确定你的土豆需要代理吗?老实说,似乎有点矫枉过正。也许一个具有核心特征(重量、类型)的简单 Java 对象就足够了?如果您的模型中有数百万个代理,那么代理可能会变成一个内存问题,因为每个代理都带有很多您的土豆不需要的隐形包袱......
    • 感谢等待块的帮助,它正在按我的意愿工作。但如果你不介意只是另一个问题?您建议宁愿创建一个具有重量和大小特征的对象,我只有 PLE(个人学习版),只能创建 50 000 个动态代理。当我宁愿使用一个对象时,我是否能够在我的模拟中模拟更多的土豆?
    • no :-) 但是你总是可以用一种巧妙的方式设计你的模型来减少对象/代理的总数,比如在你不需要它们的个体时将几个土豆变成一个代理特点...
    • 谢谢你,你真的帮我分配了!
    猜你喜欢
    • 2016-12-05
    • 2018-03-14
    • 2021-10-24
    • 2021-09-05
    • 1970-01-01
    • 2010-12-17
    • 2019-08-22
    • 2018-10-26
    • 1970-01-01
    相关资源
    最近更新 更多