我试图建立一个简单的市场模型,例如下面的内容。
breed [ firms firm ]
breed [ consumers consumer ]
firms-own [ price ]
hogus-own [ money stock ]
globals [ m0 ]
还有100个客户和10个公司。公司的价格从0到10随机设定,每个消费者的初始资本为100。
to setup
set m0 [ 0 ]
set m0 lput p0 m0
end
to go
tick
buy
sell
set m0 fput p0 m0
end
to-report p0
report [ price ] of one-of firms
end
to-report recent
report item ticks m0
end
to-report past
report item ( ticks - 1 ) m0
end
我已经列出了一份清单,以便比较公司当前和过去的价格,但是我遇到了问题。我希望每个代理商选择一个随机的5家公司,然后比较过去和现在的价格。然后,如果价格上涨,消费者应该购买它(即增加库存)。我试着这样做
to buy
if (recent > past and capital > 0) [
set capital capital - recent0
set stock stock + 1 ]
end
但是我遇到了一个问题。每个代理人都应该选择自己的随机公司。但是,因为每个代理都受相同代码的约束,所以它们总是从同一个公司购买。我怎么能解决这个问题?