获取NetLogo中有效连接乌龟的所有链接

时间:2014-08-15 19:30:07

标签: graph-theory netlogo

给定一个turtle-set nodes,我想找到nodes中具有两端的所有链接。我到目前为止所提出的最好的是:

link-set [ my-links with [ member? other-end nodes ] ] of nodes

这正是我想要的。但是,由于member?以非线性集的线性时间运行,因此O(n*n*d)(其中d是节点的最大度数,n是节点数)。我可以使用哈希集来改进它,但这需要滥用table扩展名,找到第三方扩展名,或者创建自己的扩展名。我还可以创建节点的who个数量的排序列表,然后对其执行二进制搜索以降低O(n * log(n) * d),但我希望得到更简单的答案。有什么想法吗?

1 个答案:

答案 0 :(得分:6)

这是一个古怪的想法:

links-own [ i ]

to-report links-between [ nodes ]
  ask links [ set i 0 ]
  ask nodes [ ask my-links [ set i i + 1 ] ]
  report links with [ i = 2 ]
end

它不是世界上最优雅的东西,但它很简单,而且我相信只有O( n * d )。