使用with-min时遇到麻烦

时间:2015-06-15 03:08:20

标签: netlogo

一个简单的问题,但我完全失败了。

我有一群需要找到最近邻居的海龟,因为我希望在它们之间建立一个链接。我已经尝试了以下代码,但我一直回来一个空集[找不到任何人]:

ask turtles [create-links-with one-of other turtles with-min [distance myself]]

有人可以指出我正确的方向。

此致

西蒙

1 个答案:

答案 0 :(得分:1)

这里有两个问题。

一个是create-links-with错误,因为one-of返回单个代理,而不是代理集。您需要create-link-with

但主要问题在于这部分:

 other turtles with-min [...]

NetLogo将此理解为other (turtles with-min [...])。这会报告一个空的代理集,因为乌龟本身赢得了with-min竞争,因为它的距离是零,然后other消除了那只乌龟,留下了空的代理集。

相反,你必须写:

(other turtles) with-min [...]

因此,将两个修复程序放在一起,我们得到:

ask turtles [
  create-link-with one-of (other turtles) with-min [distance myself]
]

如果您愿意,可以使用min-one-of代替with-min进一步缩短,如下所示:

ask turtles [
  create-link-with min-one-of other turtles [distance myself]
]

我制作了一些海龟并在NetLogo的指挥中心试了一下,我得到了:

preview