我试图模拟NetLogo中的容量限制和优先级(5.3.1,在Mac Sierra上).它归结为要求有限数量的海龟(比方说n)做某些事情,并选择那些海龟,以便(1)它们满足某些条件,(2)它们是n具有最大变量值的海龟my-variable.
我试图这样做:
let subset-of-turtles turtles with [ condition-variable = some-value ]
ask max-n-of n subset-of-turtles [ my-variable ] [< do something >]
Run Code Online (Sandbox Code Playgroud)
但它有多个问题.
首先,如果没有乌龟满足条件[ condition-variable = some-value ],NetLogo会抛出错误
从一组仅0个代理请求n个随机代理.
我尝试通过在ask命令之前插入一行来解决:
let subset-of-turtles turtles with [ condition-variable = some-value ]
if subset-of-turtles != nobody [
ask max-n-of n subset-of-turtles [ my-variable ] [< do something >]
]
Run Code Online (Sandbox Code Playgroud)
但它不起作用:
observer> show turtles with [ condition-variable = some-value ]
observer: (agentset, 0 …Run Code Online (Sandbox Code Playgroud)