【发布时间】:2019-03-13 15:00:55
【问题描述】:
我对 Netlogo 比较陌生,只完成了几个模型。目前正在为我的论文研究一个,我需要根据特定概率随机分布代理的属性,一些在模拟开始时,其他属性要在整个分布。对于那些熟悉它的人来说,这与信任游戏的扩展有关。我和一个不使用 Netlogo 的同事一起完成了概念模型,所以我现在有点卡住了。
我认为 rnd 扩展可能很有用,但我不太清楚如何使用它。如果这对你们中的任何人来说似乎是多余的,我深表歉意,但我真的希望在这里得到一些帮助。
extensions [ rnd]
;; divides agents into two types
breed [ sexworkers sexworker ]
breed [ officers officer ]
;; determines attributes of agents
sexworkers-own
[ assault? ;; is assaulted
trust? ;; probability to trust police to report assault
protection? ;; probability of good experience with police during report
prob-trust ] ;; probability to trust overall
officers-own
[ behavior ] ;; probability of treating sex workers well/badly during report
这是模型的开始,然后我想根据特定的概率分配属性。老实说,我还没有找到一种方法可以按我的意愿工作。 我想要的是开始,对于每个性工作者来说,被攻击的概率为 0.01(概率攻击;攻击?=真)。之后,每滴答一次,性工作者被殴打的几率又是 0.01。
之后,在攻击?=true 的子集中,有报告攻击的概率(概率报告,0.5。这由 trust?=true/false 表示。在报告的子集中,有那么与警察有好/坏经历的最终概率是(概率保护),这里是保护?=真/假。
这三个属性应该是按照概率随机分布的,进而产生一个未来信任警察的组合概率,prob-trust。 (概率信任 = 概率攻击 + 概率报告 + 概率保护)。
我做了什么(到目前为止没有 rnd 扩展是这样的:
;; determines sex workers' behavior
ask sexworkers [ move ]
ask sexworkers [ victimize ]
ask sexworkers [ file ]
to victimize
ask sexworkers [
ifelse random-float 1 <= 0.0001
[ set assault? 1 ]
[ set assault? 0 ]
]
end
to file
ask sexworkers with [ assault? = 1 ] [
ifelse random-float 1 <= 0.5
[ cooperate ]
[ avoid ]
]
end
to cooperate
ask sexworkers [ set trust? 1 ]
end
to avoid
ask sexworkers [ set trust? 0 ]
end
目前发生的情况是属性没有变化,所有性工作者似乎都没有攻击和信任/不信任同时变化。我不确定发生了什么。
【问题讨论】:
标签: random attributes netlogo probability agent-based-modeling