【问题标题】:Anylogic, how can I create a dynamic batch size that depends on the number of arriving agents every day?Anylogic,我如何创建一个取决于每天到达代理数量的动态批量大小?
【发布时间】:2021-08-11 01:39:12
【问题描述】:

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

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

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

【问题讨论】:

    标签: anylogic


    【解决方案1】:

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

    batchSize = uniform_disc(1, 10);
    

    当然,不要使用我使用的发行版,而是使用您需要的任何发行版。

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

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

    batchBlock.set_batchSize(batchSize);
    

    将 batchBlock 替换为您的块名称。

    应该可以的。

    【讨论】:

    • 假设批处理块直接位于您的源代码之后。如果有延误/服务/等。在这两者之间,您将需要另一种方法。
    • 这绝对有帮助!谢谢 Emile,我是 Anylogic 的新手。
    猜你喜欢
    • 2018-02-21
    • 2019-06-24
    • 2019-02-11
    • 1970-01-01
    • 2016-09-22
    • 1970-01-01
    • 2018-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多