NetLogo两个agentsets操作

Mik*_*ail 9 intersection netlogo

我有两个代理集.有找到的功能:

  1. 两个(交叉点)中存在的代理的代理集
  2. 代理的代理集,存在于一个而不是另一个中

我发现手动实现这一点非常困难,特别是在需要三重内部时 ask

理想的用法类似于with语法:

let cross set1 and-in set2
let uniq set1 with [color = red] not-in set2
Run Code Online (Sandbox Code Playgroud)

简单的事情,例如"代理集X中的代理A?" 是有问题的

Jos*_*dal 13

对于第一个,您使用turtle-set原语.对于第二个,您需要member?原语,它也适用于代理集.因此:

to setup
  ca
  create-turtles 10 [set color red]
  create-turtles 10 [set color blue]
  let red-ones turtles with [color = red]
  let blue-ones turtles with [color = blue]

  ;join 2 agent sets
  let joinset (turtle-set red-ones blue-ones)
  show joinset

  let even-ones (turtles with [who mod 2 = 0])
  ;subtract even-ones from red-ones
  let subtractset red-ones with [not member? self even-ones]
  show subtractset
end
Run Code Online (Sandbox Code Playgroud)