问:如何计算'hub integration'/你的link-邻居中有多少人也是我的link-邻居?

Q: How to calculate 'hub integration' / how many of your link-neighbors are also my link-neighbors?

在我正在构建的模型中,我需要让海龟计算它们的 link 邻居的 'hub integration'。 'hub integration'(HI) 我的意思是:HI = number-of-shared-neighbors/n-of-your-neighbors

HI 是 'turtle x' 分配给与她共享 link 的所有其他海龟的值(我们将每只 linked 海龟称为 'turtle y') .因此,HI 的值是 linked 到海龟 x 和 y 的节点数与 linked 到海龟 y 的节点数的分数。

我正在使用 Netlogo 词典和 Wilensky 和 ​​Rand 的书 'An Introduction to Agent-Based Modeling' 作为参考。尽管如此,如果没有这个社区的帮助,我真的很难学习更高级的程序,如果不是不可能的话。

编辑 3 ---

非常感谢收到的所有帮助。我终于有了一个 运行 程序。

作为记录,我的 'hub integration procedure' 最终代码如下:

to find-hi
  ask turtles [
  foreach  sort link-neighbors [
  ask ? [
  if count [my-links] of self > 1 and count [my-links] of myself > 1 [
  let hi ( calc-HI self myself  )
  run-procedure  ] ] ] ]
end


to-report calc-HI [ XX YY ]
  let sizeX count [my-links] of XX
  let sizeY count [my-links] of YY
  let sizeXY count (turtle-set [link-neighbors] of XX [link-neighbors] of YY)
  report (sizeX + sizeY - sizeXY) / sizeY
end

您在记者中使用打印,请尝试使用 report

例如:

to-report who-of-neighbors
  report [who] of link-neighbors
end

有关 to-report right here 的更多信息。

我想你想统计邻居的数量,而不是全部列出来。

计算共同数量的一种方法是计算X的邻居数,计算Y的邻居数,然后计算X或Y的邻居数。既是X又是Y的邻居的乌龟在构造的代理集中仍然只会出现一次,所以交集的大小是个体计数的总和然后减去并集的大小。

此代码期望您指定两只海龟,并从海龟 XX 的角度报告海龟 YY 的 HI(请注意,没有检查两只海龟之间是否有 link)。我不确定我是否理解你想要的计算,但你可以根据需要修改。

to-report calc-HI [ XX YY ]
  let sizeX count [my-links] of XX
  let sizeY count [my-links] of YY
  let sizeXY count (turtle-set [link-neighbors] of XX [link-neighbors] of YY)
  report (sizeX + sizeY - sizeXY) / sizeY
end