我正在尝试在代理之间建立连接。我创建了3个代理品种:公司,官员和公民(每个品种有10个代理商),我需要创建成对。每对涉及:一个公司,一个公民和一个官员(代理人随机选择)。我还需要所有代理都会创建对。
breed [ firms firm]
breed [ officers officer]
breed [ citizens citizen]
;;那么我需要创造一对,如果这对中的一个代理人是坚定的那么,公司可以自行贿赂或不贿赂,如果不是,公司挣30,官员挣0,公民挣10:
to go
if ticks mod 3 = 0
[
ask turtles
[
if breed = firms
[
if bribe? = false
[
set budget budget + 30
output-print (word " firms " budget)
ask other turtles
[
if breed = officers [ set budget budget + 0
output-print (word " officers " budget)]
if breed = citizens [ set budget budget + 10
output-print (word " citizens" budget)]
]
stop
]
]
]
]
;;然后去其他蜱,公民和官员决定接受贿赂或惩罚贿赂.......
答案 0 :(得分:0)
你说“每对涉及:一个公司,一个公民和一个官员”。我称之为三元组,或者仅仅是组合而不是一对组合; “对”总是意味着两个,而不是三个。
这里有一些示例代码,它们构成了所有可能的三元组,然后做了一些近似于您的描述:
ask officers [
let this-officer self
ask citizens [
let this-citizen self
ask firms [
if bribe? [
set budget budget + 30
ask this-citizen [
set budget budget + 10
]
]
]
]
]
我无法理解你所说的关于你正在做什么的一切。但希望上面的代码很接近,并说明嵌套ask
的原则,以便形成所有可能的组合。