我在netlogo中实现了一组要点,并且代理正在从一个要点移动到另一个要点。每个点都有权重(数字大约在0到9之间,这不是概率)。我想做的是一个简单的规则。 我想通过权重的值来给出所有点的访问概率。 因此,座席将要访问的下一个点应通过基于点权重和紧密度点的概率来计算(越接近点,概率越大),但是紧密度并不像点权重那么大。例如,我想在公式中设置紧密度是点权重的两倍。
我研究了rnd扩展,但是我不确定如何将概率附加到我有很多点(大约250点)上。
答案 0 :(得分:3)
您在rnd
扩展名的右边。从该扩展名开始,您需要weighted-one-of
原语,然后将公式放入报告程序块中。
我认为这就像您想要的。这是一个完整的模型,因此您可以运行它并查看其功能。报告块使用概率中的权重和距离。由于您希望概率更大一点,所以我使用了距离的倒数,但是您可以简单地从模型中的最大距离之类的东西中减去该距离。您还需要一个适当的缩放因子(在我的示例中替换为10),以使权重值等于贴近度平均值的两倍。
extensions [rnd]
turtles-own [weight]
to testme
clear-all
create-turtles 10
[ setxy random-xcor random-ycor
set weight 1 + random 3
set size weight
set color blue
]
ask one-of turtles
[ set color red
let target rnd:weighted-one-of other turtles [ 2 * weight + 10 / distance myself ]
ask target [ set color yellow ]
]
end