我在AnyLogic中模拟一个过程。
我的代理商可以在“时间t=0”中作为“原材料”。在模拟开始的时候,我有3万名相同的特工。因此,对于源模块,我指的是一个数据库,其中每个到达框中的多个代理被勾选,每个到达的代理数从一个数据库(那里有30000个代理)中提取。
我使用的是一个虚拟过程,这些代理到达“源”,并立即从“水槽”出去。例如,当我有30多名探员到那里时,没有问题。然而,当我有30,000次记忆爆炸和模拟停止。我不知道为什么会有问题。在这样一个简单的例子中,30,000名代理之间的区别是什么?
ScreenShot:
我的简单模型看起来如下:

以及工作的数据库:

这些数量通过以下方式被称为:

所有这些都完成了:

但是,当我生产第一批产品三万多的时候,它就卡在了到货日期:

此外,我的代理班在这里:

它在项目视图上显示为:

发布于 2019-12-27 08:35:09
如果矩形节点具有“可见在上面的代理”集,请尝试取消标记。
当设置此值时,AnyLogic中当前存在一个错误,并且在高级代理中没有显示代理的(或代理的总体)表示,这会导致您正在经历的极度减速(特别是对于数量更多的代理;甚至,如果“可见在上面的代理”表示元素不是在有许多实例的代理类型中)。
在您的例子中,矩形节点位于顶级代理Main中,从演示的角度来看,这是实验的一个子节点--在这里设置“可见在上层代理上”也是没有意义的(但在某些情况下,它似乎仍然触发了bug )。
(话虽如此,但在我看到的情况下,bug并没有导致“500错误”,因此这可能行不通。)
发布于 2019-12-20 06:13:21
你能上传你的源和dbase表的截图吗?
如果你勾选那个框,听起来你在创建30000x30000代理?
在任何情况下,如果没有必要的话,对许多代理进行建模并不是一个很好的策略。在您的情况下,您可以将30000种材料组合成一个代理(直到它们被分解?)或者使用材料库或SD设置。
只有当你真的需要的时候才能做模特。
https://stackoverflow.com/questions/59418449
复制相似问题