我尝试在 Netlogo 中生成有向图。两个节点之间应该只有一个链接。我使用以下代码片段:
breed [nodes node]
directed-link-breed [edges edge]
.
.
.
ask nodes
[
create-edges-to ((other nodes) with [not edge-neighbor? self])
]
它不断在节点之间创建两个链接(从和到)。我的错误是什么?
提前致谢!
埃里克。
有两个问题:首先,self
在您使用它的上下文中使用它来检查节点是否连接到自身。你想myself
在这里。
其次,因为您使用的是有向链接,如果 A 连接到B,则 B 被认为是 A 的链接邻居,但反之则不然(因为它是有向的。)可以想象link-neighbor
,“有没有办法从乌龟 A 到海龟 B”。
NetLogo 提供in-link-neighbor?和外链邻居?来解决这个问题。所以你可以这样做:
ask nodes [
create-edges-to other turtles with [not out-edge-neighbor? myself]
]
请记住,因为这是针对每个单独的海龟运行的,所以您将获得线性度分布。如果这就是你的意图,那就太好了!但它可能不是。(编辑:实际上考虑到这一点,如果您希望所有海龟都通过一个定向链接连接,那么您不可能不这样做,所以没关系。)