基于乌龟拥有的变量进行链接

问题描述

在此示例中,我尝试基于乌龟拥有的Value创建两个定向链接繁殖链接。条件如下,要求乌龟链接到其他值比我小的乌龟。

directed-link-breed [active-links active-link]
turtles-own [ Value ] 

to setup

crt 100 [setxy random-xcor random-ycor set value random 500]
ask turtles [ create-active-links-to min-n-of 2 other turtles [Value < myself] ][set links to have xxxxx ]
end

当我执行以下操作时:

  ask turtles [ create-active-links-to  min-n-of 2 other turtles with [value  < [ value ] of myself ] [set links to have xxxxx ]

我遇到以下错误

Requested 3 random agents from a set of only 2 agents.
error while turtles 8 running N-OF
  called by procedure GO
  called by Button 'go'

解决方法

该消息告诉您(对于特定的生菜),只有两个满足条件,但是您希望与其中三个条件关联。看着您的问题,您希望乌龟将链接发送给特定变量值较低的乌龟。您想要该变量的最低值的乌龟做什么?显然,它没有链接到价值较低的海龟,因为没有。

我也不清楚您为什么使用min-n-of。您是要链接到价值最低的海龟(在这种情况下,每个海龟都将链接发送到相同的几只海龟),还是要链接到随机选择的具有较低值的海龟(在这种情况下,具有较高价值的海龟会有更多选择) )?

整理好逻辑后,有几种方法可以处理此问题。如果您确实想要最低的值,请先使用min-n-of查找候选对象,然后链接到比问价的乌龟低的值。如果要从可能更大的组中随机选择,请使用up-to-n-of而不是n-of。或者,您可以在尝试链接以确保有足够数量之前先计算找到的数字。