如何从人群中选择随机代理并给每个人一个随机值?

时间:2021-07-27 20:48:30

标签: anylogic

我目前的情况是,在一个群体中,我有 3 种类型的代理,分为 3 个来源。比如Agent的值应该在3-5之间,B应该在5-7之间,c应该在8-9之间。然后,我需要的是让每个进入逻辑的人都应该在这 3 个组的数字之间具有不同的值,并且必须是随机的。如何编写函数或做其他事情可以获得结果?我在 Anylogic 帮助中看到了从人群中随机选择一个代理,但我真的不明白。

1 个答案:

答案 0 :(得分:0)

您提到了 3 种不同的来源和 3 种不同的代理类型,因此我假设您的设置类似于以下设置。有 3 种代理类型,每一种都创建于不同的来源

在这种情况下,您可以轻松地在操作部分的 o"on at Exit" 代码中编写类似于屏幕截图中的代码 agent.variable = uniform_discr(3, 5);

这会为我在代理内部创建的 3 到 5 之间的变量赋值。

您只需在每个源中为不同的代理类型创建类似的代码并更改随机分布抽样代码中的值 uniform_discr(min, max)

enter image description here

如果您创建的所有代理都在一个群体中,您可以简单地循环遍历每种类型的代理的群体,并为它们分配一个像这样的值

for(AgentA agent : agentApopulation) {
    agent.variable = uniform_discr(3, 5);
}