Netlogo:根据多个条件选择代理
Netlogo: Selecting an agent based on multiple conditions
我有 2 个代理,hub 和 individual。
每个人都有自己的变量,叫做value。
我想写一个方法,让集线器select拥有最高价值的个体,并且还没有与集线器建立link,为了与它建立link。
到目前为止,我使用的是 max-one-of,它在第一轮给了我最高的 value-d 个人,但在第二轮中,同一个人仍然是 selected 尽管 link 已经与集线器建立。
我想问大家,如何获得尚未link与集线器编辑的个人,具有最高价值?
非常感谢!
您需要使用 with
and link-neighbor?
过滤您的个人:
breed [ hubs hub ]
breed [ individuals individual ]
individuals-own [ value ]
to setup
clear-all
create-hubs 1
create-individuals 10 [
set value random 100
forward 5
]
reset-ticks
end
to go
ask hubs [
let candidates individuals with [ not link-neighbor? myself ]
if any? candidates [
create-link-with max-one-of candidates [ value ]
]
]
tick
end
我有 2 个代理,hub 和 individual。
每个人都有自己的变量,叫做value。
我想写一个方法,让集线器select拥有最高价值的个体,并且还没有与集线器建立link,为了与它建立link。
到目前为止,我使用的是 max-one-of,它在第一轮给了我最高的 value-d 个人,但在第二轮中,同一个人仍然是 selected 尽管 link 已经与集线器建立。
我想问大家,如何获得尚未link与集线器编辑的个人,具有最高价值?
非常感谢!
您需要使用 with
and link-neighbor?
过滤您的个人:
breed [ hubs hub ]
breed [ individuals individual ]
individuals-own [ value ]
to setup
clear-all
create-hubs 1
create-individuals 10 [
set value random 100
forward 5
]
reset-ticks
end
to go
ask hubs [
let candidates individuals with [ not link-neighbor? myself ]
if any? candidates [
create-link-with max-one-of candidates [ value ]
]
]
tick
end