我希望BehaviorSpace能够运行我的模型100次。在我的模型中,我创建了三个按钮:
我希望在第一次模拟过程中使用第一个按钮,以便在100次模拟过程中保持相同的风景(程序"设置 - 模拟"和#34;开始模拟&#34 ;运行100次)。我怎样才能从"实验" (见下图)?
非常感谢你的帮助。
答案 0 :(得分:2)
我认为您之所以这样说的原因是您的景观生成中涉及随机性,因此每次运行create-landscape
时都会获得不同的格局。
如果您希望每次都获得相同的格局,则可以使用固定的random-seed
进行格局生成。
例如:
random-seed 0
create-landscape
...总会产生相同的景观。
但是,由于您希望模拟的其余部分在不同的运行中表现不同,因此您不能仅使用固定的随机种子进行整个操作。
获取景观的固定种子和模拟其余部分的变化种子的一种方法是使用with-local-randomness
进行景观生成。
想象一下,您有一个random-seed-for-landscape
全局变量的输入窗口小部件。您可以通过setup-simulation
程序创建景观,如下所示:
to setup-simulation
with-local-randomness [
random-seed random-seed-for-landscape
create-landscape
]
; rest of your setup procedure...
end
然后,即使您要求BehaviorSpace重复100次,您也将始终获得相同的格局。
如果你想尝试不同的风景,你可以把:
["random-seed-for-landscape" 0 1 2]
在" Vary变量如下"您的BehaviorSpace对话框的一部分,并为这三个格局中的每一个运行100次重复。
为了更好地理解NetLogo一般处理随机性的方式,我建议阅读Random numbers topic in the programming guide。