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 如何以一定的概率从总体中选择代理?的主要内容,如果未能解决你的问题,请参考以下文章