AnyLogic:使用数据库中的不同参数值同时创建多个代理

问题描述 投票:0回答:1

正如标题所说,我想在特定(同一)时间创建多个相同类型的代理。为此,我有一个数据库表(从 Excel 导入):

到达日期从“时间”列导入,每次到达的代理总数从“总计”列导入。因此,在 00:00,源创建了 139 个代理,在 00:15,源创建了 178 个代理,依此类推。效果很好。

但现在我还想将总共 139 个代理(从 00:00 开始)“拆分”为六个部分,并给它们一个参数。 24 个代理应从我的参数“id”获取值 101,9 个代理应获取 id 102,31 个代理应获取 id 103...直到 106。

这可能吗?

我尝试了多种方法。一是更改数据库,因此参数“id”仅显示在一列中。为此,数据库变得非常长,因为每次必须出现六次(每个 id 一次)。有效,但不是最佳解决方案。数据库应保持原样。

使用每次到达的代理的数据库参考对我来说不起作用。

创建六个源也不是解决这个问题的最佳方法。

anylogic
1个回答
0
投票

绝对可能,但需要一些自定义编码。这是热情:

  • 在模型开始时逐行读取数据
  • 为每一行创建一个动态事件(不是普通事件!)
  • 将 6 个参数传递到 DE 并在当前行的日期触发它
  • 在 DE 中,使用
    add_SomeAgentPopulation(...)
    创建与每个参数的值一样多的新代理,并相应地填充其参数
© www.soinside.com 2019 - 2024. All rights reserved.