在 AnyLogic 中,如何动态定义未预定义的批量大小?
In AnyLogic, how do you dynamically define batch sizes that are not predefined?
情况如下:
Source ---> Batch (random size) ---> Unbatch ---> Select Output (80%) ---> Batch agents from True Port and Batch agents from False Port.
带数字的示例是一批 50 个代理。取消批处理后,38 个通过 True 端口,而 12 个通过 False 端口。所以新的批量大小需要分别为 38 和 12。重要的是要注意 50 会随着每个批次而变化,因此我们无法知道新的批次大小,直到它们通过 Select 输出。
那么,总而言之,这个场景如何在 AnyLogic 中建模?有没有可以做到这一点的功能?
非常感谢。
我写了一篇关于这个主题的博客post,您可以在这里阅读:https://noorjax.com/2019/07/02/dynamic-batches/
想法是将等待块与批处理块结合起来。
当您的代理从 selectoutput 出来时,他们将进入一个等待块,在那里他们将等待所有关联的代理到达,当最后一个到达时,您将定义后续批块的批大小并释放所有需要批处理的代理。
所以当原始批次中的最后一个代理到达等待块时,您将释放两个等待块中的代理,因此您需要知道原始批次中有多少代理以及每个代理中存在的代理数量2 个等待块中的一个。
希望对你有所帮助
情况如下:
Source ---> Batch (random size) ---> Unbatch ---> Select Output (80%) ---> Batch agents from True Port and Batch agents from False Port.
带数字的示例是一批 50 个代理。取消批处理后,38 个通过 True 端口,而 12 个通过 False 端口。所以新的批量大小需要分别为 38 和 12。重要的是要注意 50 会随着每个批次而变化,因此我们无法知道新的批次大小,直到它们通过 Select 输出。
那么,总而言之,这个场景如何在 AnyLogic 中建模?有没有可以做到这一点的功能?
非常感谢。
我写了一篇关于这个主题的博客post,您可以在这里阅读:https://noorjax.com/2019/07/02/dynamic-batches/
想法是将等待块与批处理块结合起来。
当您的代理从 selectoutput 出来时,他们将进入一个等待块,在那里他们将等待所有关联的代理到达,当最后一个到达时,您将定义后续批块的批大小并释放所有需要批处理的代理。
所以当原始批次中的最后一个代理到达等待块时,您将释放两个等待块中的代理,因此您需要知道原始批次中有多少代理以及每个代理中存在的代理数量2 个等待块中的一个。
希望对你有所帮助