问:如何计算'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
在我正在构建的模型中,我需要让海龟计算它们的 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