我正在构建一个模型来研究某些网络结构的意见动态。在模型中,有一个假设的“独裁者”可以将资源(或“贿赂”)分发给网络中的某些节点。目前,独裁者有三种策略:1)以最积极的意见向网络中的节点发放贿赂。 2)用最多的链接向网络中的节点发放贿赂。 3)向一组随机的N个节点发放贿赂。
我让策略1和2正常工作,但不能让3工作。目前,程序看起来像这样
to go
handout-bribes
include-lpr
update-motivation
update-participation
ask nodes [update-look-of-nodes]
tick
end
;;; Bribes are handed out either to the top N nodes with the most positive motivation, the top N nodes with the most ties, or randomly
to handout-bribes
if strategy-of-dictator = "targeted-opinion" [
ask max-n-of (num-nodes * percentage-receiving-bribes) nodes [( - total-motivation) ] [set bribes (bribes + height-of-bribes)]]
if strategy-of-dictator = "targeted-ties" [
ask max-n-of (num-nodes * percentage-receiving-bribes) nodes [count my-links] [set bribes (bribes + height-of-bribes)]]
if strategy-of-dictator = "random" [
ask n-of (num-nodes * percentage-receiving-bribes) nodes [set bribes (bribes + height-of-bribes)]]
end
使用此代码,每个tick都会选择一个新的随机节点来接收贿赂。然而,我想要的是,选择一组N个节点的程序的开始,谁将在每次打勾后收到贿赂。我该怎么编码呢?我正在考虑在安装时创建一个节点子集,并在过程中调用这些节点。但我不知道如何做到这一点。
谢谢!