NetLogo:比较邻居的价值

时间:2016-01-07 13:06:38

标签: social-networking netlogo agent-based-modeling

在我的模型建立创新扩散期间,NetLogo中出现了另一个小编程问题。我想模仿人们更可能向他们相似的人学习。因此,模型会考虑分配给每个代理的能力值:

[set ability random 20 ] 

在go程序中,我希望他们将自己的能力值与其相关邻居的值进行比较。 例如:turtle1 = 5的能力,neighbor1 = 10的能力,neighbor2 = 4的能力。因此(absoulute)差异为[5,1]。因此,他将从neighbor2获得更多信息,而不是来自neighbor1。

但我不知道如何处理问每个邻居的差异问题。作为第一个想法,我想通过像[difference1,...,difference(n)]这样的列表变量来做这件事。

到目前为止,我只使用平均值得到了一个汇总方法,但这与最近的社会学习理论并不完全一致,并且可能会覆盖代理人有许多不同邻居但与他非常相似的人:

ask turtles
  [
    set ability random 20   
    set ability-of-neighbor (sum [ability] of link-neighbors / count link-neighbors) 
    set neighbor-coefficient (abs (ability - ability-of-neighbor))
;;the smaller the coefficient the more similar are the neighbors and the more the turtle learns from his neighbor(s)

]

再次感谢您的帮助和建议,我非常感谢您的评论。

亲切的问候,

Moritz的

1 个答案:

答案 0 :(得分:3)

我有点时间了解你想要的东西,但这是一种排名链接邻居的方法。

Unable to create the selected preference page.
An error occurred while automatically activating bundle com.android.ide.eclipse.adt (479).

它按能力差异的升序生成一个链接邻居列表。

如果您只想使用最近邻居

let link-neighbor-rank sort-on [abs (ability - [ability] of myself)] link-neighbors 

我希望这会有所帮助。