0

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


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

.
.
.

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

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

提前致谢!

埃里克。

4

1 回答 1

1

有两个问题:首先,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]
]

请记住,因为这是针对每个单独的海龟运行的,所以您将获得线性度分布。如果这就是你的意图,那就太好了!但它可能不是。(编辑:实际上考虑到这一点,如果您希望所有海龟都通过一个定向链接连接,那么您不可能不这样做,所以没关系。)

于 2017-08-08T00:38:56.360 回答