首页 > 解决方案 > NetLogo:根据网络上的邻居设置海龟的变量

问题描述

我正在创建一个虚拟社会,其中海龟有一个 3 维的意见向量。我想要的是网络中的每个海龟都有一个与网络中的海龟相关的意见向量,遵循正态分布。

我认为一种可能性是创建具有随机意见的海龟,然后在设置过程结束时将这些意见放在一起。例如,乌龟 0 有意见[0.2 0.8 0.6],乌龟 1 有[0.7 0.5 0.5],乌龟 2 有[0.9 0.4 0.1]。均值为[0.6 0.6 0.1],则每只海龟的意见向量将按照正态分布重新建立[0.6±0.1 0.6±0.1 0.6±0.1]

下面我正在尝试,这不起作用,因为我的(map mean ([opinions] of my-nearby-turtles)位给出了每只乌龟的所有意见维度的平均值,而不是所有海龟的每个意见维度的平均值......

ask turtles [
        set opinions n-values 3 [random-float 1]
        (foreach opinions (map mean ([opinions] of turtles)) [ [a b] -> set a random-normal b 0.1])
      ]
end

标签: netlogoagent-based-modeling

解决方案


我想我可能已经解决了,我等待更多高级 NetLogger 的评论......

ask turtles [
   set opinions n-values 3 [random-float 1]
  (foreach opinions [x ->
    let avg-network map mean ([opinions] of turtles)
    let pp position x opinions
    set opinions replace-item pp opinions random-normal (item pp avg-network) 0.1])
  ]
end

推荐阅读