AnyLogic 如何以一定的概率从总体中选择代理?

Posted

技术标签:

【中文标题】AnyLogic 如何以一定的概率从总体中选择代理?【英文标题】:AnyLogic How to choose agent from a population with a certain probability? 【发布时间】:2020-05-04 05:29:02 【问题描述】:

我有一组称为“目的地”的代理,由 14 个目的地组成,每个目的地都有被选中的概率。 目前我正在通过申请随机选择目的地:

Destination destination = randomFrom (destinations);

如何考虑概率而不是随机做?

【问题讨论】:

【参考方案1】:

一种方法:创建一个具有如下累积概率的表函数(假设 5 个目的地 0-4,而不是 14):

然后,destinations.get(tableFunction.get(uniform(0, 1))) 将以正确的概率从总体中返回第 i 个代理。所以在我的例子中,有 20% 的机会获得索引为 0 的目的地,但有 40% 的机会获得索引为 2 的目的地...

【讨论】:

将 double 转换为 int:“destinations.get((int)tableFunction.get(uniform(0, 1)))” 好吧,测试一下并使用它,直到它有意义为止。此外,AnyLogic 帮助会告诉您有关表函数及其作用的信息。 Uniform(0,1) 给你一个完全随机的值。将其作为参数输入到表函数中。假设你像我一样用累积概率设置它,你会在给定的机会下得到一个整数值。你用它来通过索引来获取你的目的地......玩一下表格功能并进行不同的设置以查看效果。例如,只有 2 个值 0&1 并将参数设置为 0 和 0.99 并查看其作用。你可以做到的;-) 这里最好做一步插值,让表格函数在输出和概念累积概率方面更直观... 错过了,非常真实。谢谢费利佩

以上是关于AnyLogic 如何以一定的概率从总体中选择代理?的主要内容,如果未能解决你的问题,请参考以下文章

Anylogic:如何根据路线成本和代理选择创建每小时到达率计划?

在 Anylogic 中,如何从项目列表中随机选择

AnyLogic——如何随机选择处于特定状态的代理

AnyLogic 的到达率是泊松分布吗?

Anylogic:从模拟菜单访问变量

(Anylogic)如何从另一个代理引用 Main