也在 netlogo 的其他代理集中使用海龟创建代理集

问题描述 投票:0回答:0

全部!

我正在研究一个组织行为问题,我有一个工作组/实践社区,我试图从每个地区的代理人中创建出来。如下所示,我使用 GIS 扩展加载区域 shapefile,然后根据界面中的滑块随机分布代理。设置代理属性,其中两个属性在 0-1 之间随机生成(EJknowledge 和 EJtranslation)。然后代码将代理分配到它们生成的区域。

我卡住的地方是我需要在每个代理集(区域)中选择具有最高 EJknowledge 的代理,并为所有这些代理创建一个新的代理集,这样我就可以让他们每月“开会”一次,参加他们的工作组/社区的实践会议。所有特工的所有属性都相同,所以我认为拥有一个单独的品种不会给我带来任何优势。

我有两个问题:

1.) 可以同时将一个代理分配给多个代理集吗? 2.) 如何通过相同的属性识别每个代理集(区域)中的代理并将它们放在同一代理集中?

在我尝试使用 max-one-of 识别区域中最高 EJknowledge 代理并将其设置为另一个代理集的代码中,我设置了它。目前的写作对我不起作用,因为我只知道如何为一个代理集编写它,还没有弄清楚如何为多个代理集运行它然后分配给“警察”代理集。我确信这只是我语法知识的一个缺点,但我还没有找到其他问题可以满足我的问题。

globals [region1 region2 cop]
turtles-own [region EJknowledge]
patches-own [ID]

to go
;; create turtles and assign attributes
create 25 turtles
ask turtles [
set shape "person"
set color blue
set EJknowledge random-normal 0.5 0.1
set region [ID] patch-here
]

;; assign agents to regions
ask turtles [            
set region1 turtles with [region = 1]
set region2 turtles with [region = 2]
]

;;
ask turtles [
set cop max-one-of region1 [ EJknowledge ]
]

end
netlogo assign agent agentset
© www.soinside.com 2019 - 2024. All rights reserved.