AnyLogi c Как выбрать агента из населения с определенной вероятностью? - PullRequest
1 голос
/ 17 января 2020

У меня есть группа агентов, называемых «направлениями», состоящая из 14 пунктов назначения, и каждый пункт назначения имеет свою вероятность выбора. В данный момент я выбираю пункт назначения случайным образом, применяя:

Destination destination = randomFrom (destinations);

Как я могу учитывать вероятность вместо того, чтобы делать это случайно?

1 Ответ

0 голосов
/ 17 января 2020

В одну сторону: создайте табличную функцию с кумулятивными вероятностями, как показано ниже (при условии 5 пунктов назначения 0-4, а не 14): enter image description here

Затем вернется destinations.get(tableFunction.get(uniform(0, 1))) я агент из населения с правильной вероятностью. Так что в моем примере есть шанс 20% получить пункт назначения с индексом 0, но шанс 40% получить пункт назначения с индексом 2 ...

...