Anylogic,如何创建取决于每天到达的代理数量的动态批量大小?

问题描述

由分布确定的多个代理 X 以定义的到达间隔时间到达源。我需要 X 也是我的 batchSize,这意味着每次有新的到达时,batchSize 需要更改并调整到该到达的 X 数量的代理。

我尝试在退出时使用 source.count() 然后使用 batch.set_batchSize(),但由于 source.count() 在新到达之前不会设置为 0,所以它不起作用。

有什么想法吗?非常感谢您的帮助。

解决方法

创建一个名为 batchSize 的变量,类型为 int。在来源的 On before arrival: 字段中,输入以下内容:

batchSize = uniform_disc(1,10);

当然,不要使用我使用的发行版,请使用您需要的任何一个。

然后,再次在源属性中,为 Agents per arrival: 字段写入 batchSize

在批处理块的 On enter: 字段中,写入:

batchBlock.set_batchSize(batchSize);

用您的块命名的任何名称替换 batchBlock。

应该可以。