Networking NetLogo:邻居和特征向量

Networking NetLogo:邻居和特征向量,networking,netlogo,eigenvector,Networking,Netlogo,Eigenvector,我想计算海龟的邻域和邻域,找到一种计算特征向量中心度的方法。因为我无法获得NW:extensions工作,我的教授也不能。我想自己建立一种方法。因为在第一轮演讲之前我没有那么多时间,所以我尽量数一数海龟的邻居和邻居。 我决定养一只乌龟,计算所有的邻居,然后把所有的邻居和邻居加起来。但是我的脑子被卡住了,不能让它工作。 设置邻居计数(链接邻居) 有人有什么想法吗? 另外,最后一种使特征向量中心性起作用的方法将非常有用。首先,我的主要建议是使NW起作用。我很乐意帮忙 除此之外,下面假设您使用的是无向

我想计算海龟的邻域和邻域,找到一种计算特征向量中心度的方法。因为我无法获得NW:extensions工作,我的教授也不能。我想自己建立一种方法。因为在第一轮演讲之前我没有那么多时间,所以我尽量数一数海龟的邻居和邻居。 我决定养一只乌龟,计算所有的邻居,然后把所有的邻居和邻居加起来。但是我的脑子被卡住了,不能让它工作。 设置邻居计数(链接邻居)

有人有什么想法吗?
另外,最后一种使特征向量中心性起作用的方法将非常有用。

首先,我的主要建议是使NW起作用。我很乐意帮忙

除此之外,下面假设您使用的是无向网络。如果不是演员,请告诉我

您描述的方法的问题是,它会多次计算邻居的一些邻居。相反,您可以获取邻居的代理集,然后只需计算它:

to-report neighbors-of-neighbors
  report turtle-set [ link-neighbors ] of link-neighbors
end
然后,海龟0的
[count neights of neights]将给出海龟0的
邻居的邻居数

现在,有几点:

这将包括海龟本身,因为海龟始终是其链接邻居的链接邻居。如果您不想包含海龟本身,您可以在其中抛出一个
其他
:海龟0的
[计算其他邻居的邻居]

这不包括作为turtle 0的链接邻居但未链接到turtle 0的任何其他邻居的turtle。若要添加IN,您可以考虑这样的过程:

to-report turtles-in-link-radius [ n ]
  let result turtle-set self
  repeat n [
    set result (turtle-set result [ link-neighbors ] of result)
  ]
  report result
end
然后可以使用它,例如:
[count turtle in link radius 2]的turtle 0
来计算距离turtle 0最多2跳的所有turtle。这位记者的行为与之相同,但速度要慢得多

现在,我首先注意到你的想法会数数几次海龟。假设你对特征向量中心感兴趣,也许这就是你想要的。在这种情况下,您可以这样做:
[sum[count link neighbories]of link neighbories]of turtle 0
来获得它,而不必为turtles自己的链接而烦恼。也就是说,如果你使用海龟自己的,你实际上可以计算特征向量中心度本身:

turtles-own [
  ...
  next-ec ;; helper variable for iteratively computing eigenvector-centrality
  eigenvector-centrality
  ...
]

to calculate-eigenvector-centralities
  ask turtles [
    set eigenvector-centrality 1
  ]
  repeat 100 [  ;; the higher this number, the more accurate the value. NW uses 100
    ask turtles [
      set next-ec sum [ eigenvector-centrality ] of link-neighbors
    ]
    let max-ec max [ next-ec ] of turtles
    ask turtles [
      set eigenvector-centrality next-ec / max-ec ;; normalize
    ]
  ]
end

调用
计算特征向量中心
计算所有海龟的特征向量中心。海龟的特征向量中心度将存储在
特征向量中心度中。请注意,此代码不适用于断开连接的网络:每个组件都必须独立进行规范化,这是NW所做的,但在NetLogo中,如果不使用NW,则无法轻松做到这一点。

首先,我的主要建议是让NW正常工作。我很乐意帮忙

除此之外,下面假设您使用的是无向网络。如果不是演员,请告诉我

您描述的方法的问题是,它会多次计算邻居的一些邻居。相反,您可以获取邻居的代理集,然后只需计算它:

to-report neighbors-of-neighbors
  report turtle-set [ link-neighbors ] of link-neighbors
end
然后,海龟0的
[count neights of neights]将给出海龟0的
邻居的邻居数

现在,有几点:

这将包括海龟本身,因为海龟始终是其链接邻居的链接邻居。如果您不想包含海龟本身,您可以在其中抛出一个
其他
:海龟0的
[计算其他邻居的邻居]

这不包括作为turtle 0的链接邻居但未链接到turtle 0的任何其他邻居的turtle。若要添加IN,您可以考虑这样的过程:

to-report turtles-in-link-radius [ n ]
  let result turtle-set self
  repeat n [
    set result (turtle-set result [ link-neighbors ] of result)
  ]
  report result
end
然后可以使用它,例如:
[count turtle in link radius 2]的turtle 0
来计算距离turtle 0最多2跳的所有turtle。这位记者的行为与之相同,但速度要慢得多

现在,我首先注意到你的想法会数数几次海龟。假设你对特征向量中心感兴趣,也许这就是你想要的。在这种情况下,您可以这样做:
[sum[count link neighbories]of link neighbories]of turtle 0
来获得它,而不必为turtles自己的链接而烦恼。也就是说,如果你使用海龟自己的,你实际上可以计算特征向量中心度本身:

turtles-own [
  ...
  next-ec ;; helper variable for iteratively computing eigenvector-centrality
  eigenvector-centrality
  ...
]

to calculate-eigenvector-centralities
  ask turtles [
    set eigenvector-centrality 1
  ]
  repeat 100 [  ;; the higher this number, the more accurate the value. NW uses 100
    ask turtles [
      set next-ec sum [ eigenvector-centrality ] of link-neighbors
    ]
    let max-ec max [ next-ec ] of turtles
    ask turtles [
      set eigenvector-centrality next-ec / max-ec ;; normalize
    ]
  ]
end

调用
计算特征向量中心
计算所有海龟的特征向量中心。海龟的特征向量中心度将存储在
特征向量中心度中。请注意,此代码不适用于断开连接的网络:每个组件都必须独立地进行规范化,这是NW所做的,但在NetLogo中,如果不使用NW,则无法轻松做到这一点。

我是NW扩展的当前维护者。你有什么问题吗
nw:特征向量中心性
过去不适用于断开连接的网络,但在最新版本中应该可以正常工作。你看到的问题是什么?你使用的是什么版本的NetLogo?我是NW扩展的当前维护者。你有什么问题吗
nw:特征向量中心性
过去不适用于断开连接的网络,但在最新版本中应该可以正常工作。你看到的问题是什么?您使用的NetLogo版本是什么?