如何在netlogo中创建与随机代理的链接

时间:2014-07-19 06:00:22

标签: netlogo

我在格子上有一些特工。如果我们考虑代理$ i $,那么我将根据代理$ i $特征为所有剩余代理分配不同的概率。现在我的目标是从具有指定概率的剩余代理中选择一个代理$ j $,并创建从代理$ i $到代理$ j $的链接。这个我要为所有代理格做。 [每次概率根据不同的代理人变化$ i $] 有人可以帮助如何在netlogo上实现这一点。 感谢。

1 个答案:

答案 0 :(得分:1)

如果不进一步限制问题,计算将变得昂贵。假设您有assign-probabilities记者:

,这是基本想法
to form-links ;;turtle proc
  let %others [self] of other turtles ;;list of other turltes
  let %p assign-probabilities %others
  let %idx random-index %p
  create-link-with item %idx %others
end

to-report random-index [#p] ;;input probability dist as list
  let %draw random-float 1
  let %cum-p item 0 #p
  let %ct 0
  while [%draw > %cum-p] [
    set %ct (%ct + 1)
    set %cum-p (%cum-p + item %ct #p)   
  ]
  report %ct
end

以下是一些有助于降低计算成本的事情。如果没有创建或死亡的海龟,您可以在安装过程中仅计算一次其他海龟(并设置为海龟属性)。如果概率不随时间变化,则可以对概率执行相同的操作。在后一种情况下,您可能希望计算累积概率(一次),并使用二分算法生成随机索引。