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

Bry*_*ead 6 graph-theory netlogo

给定一个乌龟集nodes,我想找到所有具有两端的链接nodes.到目前为止我提出的最好的是:

link-set [ my-links with [ member? other-end nodes ] ] of nodes
Run Code Online (Sandbox Code Playgroud)

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

Nic*_*tte 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
Run Code Online (Sandbox Code Playgroud)

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