Netlogo:创建到新邻居的链接

Netlogo: Creating links to new neighbors

我尝试在 Netlogo 中生成有向图。两个节点之间应该只有一个link。我使用以下代码片段:


breed [nodes node]
directed-link-breed [edges edge]

.
.
.

ask nodes
 [
    create-edges-to ((other nodes) with [not edge-neighbor? self])
 ]

它不断在节点之间创建两个 links(从和到)。我的错误是什么?

提前致谢!

埃里克

有两个问题:首先,在您使用它的上下文中使用 self 检查节点是否连接到自身。你要 myself 这里。

其次,因为你使用的是定向links,如果A连接 B,B被认为是A的link邻居,但是反之亦然(因为它是定向的。)将 link-neighbor 视为 "is there a way to get from turtle A to turtle B".

NetLogo 提供在-link-邻居?和出-link-邻居?解决这个问题。所以你可以这样做:

ask nodes [
    create-edges-to other turtles with [not out-edge-neighbor? myself]
]

请记住,因为这是 运行 每只海龟的度数分布,所以度数分布是线性的。如果这就是您的意图,那就太好了!但它可能不是。 (编辑:实际上仔细想想,如果你想让所有的海龟都由一个有向连接 link,你不可能不这样做,所以没关系。)