如何使用BehaviorSpace运行一次和两个过程100次

时间:2014-04-07 20:49:37

标签: netlogo

我希望BehaviorSpace能够运行我的模型100次。在我的模型中,我创建了三个按钮:

  • 第一个按钮创建一个风景(过程"创建风景")
  • 第二个按钮初始化海龟(程序"设置模拟"在下图中)
  • 并且第3个按钮运行模型(程序"开始模拟"在下图中)

我希望在第一次模拟过程中使用第一个按钮,以便在100次模拟过程中保持相同的风景(程序"设置 - 模拟"和#34;开始模拟&#34 ;运行100次)。我怎样才能从"实验" (见下图)?

非常感谢你的帮助。

enter image description here

1 个答案:

答案 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