Netlogo:当X的刻度数量为全局时,停止模型

时间:2017-06-11 15:47:44

标签: netlogo

目前,我正在构建一个关于意见动态的模型,并希望模型在某个全局变量global-participation-rate保持不变的情况下自动停止。我可能应该包含类似

的内容
if stop-ticking? [stop]

在我的go程序中。报告看起来像这样:

to-report stop-ticking?    
 ifelse (??) = ??     [report true] [report false]
end

我应该使用什么代码检查全局是否在一定数量的滴答声中保持不变?

2 个答案:

答案 0 :(得分:2)

最简单的方法是添加一个新的全局来保持计数。例如,(缩写names = map(lambda x: x[0] if (x[1] == sl) else None, students) global-participation-rate):

gpr

答案 1 :(得分:1)

您需要参与率或总转化率或其他值的全局变量。然后,在扩散过程之后,您执行let new-adopters <calculation>if-else new-adopters = total-adopters [stop] [set total-adopters new-adopters]

之类的操作

如果您需要多个时间点比较,那么您需要创建一个列表而不是一个简单的值,并将新值添加到列表的末尾,并检查列表的末尾是否都是相同的数字。< / p>