Netlogo 如何使用BehaviorSpace运行一个过程和两个过程100次
我想让BehaviorSpace运行我的模型100次。在我的模型中,我创建了三个按钮:Netlogo 如何使用BehaviorSpace运行一个过程和两个过程100次,netlogo,Netlogo,我想让BehaviorSpace运行我的模型100次。在我的模型中,我创建了三个按钮: 第一个按钮创建一个景观(过程“创建景观”) 第二个按钮初始化turtles(下图中的“设置模拟”过程) 第三个按钮运行模型(下图中的“启动模拟”程序) 我希望在第一次模拟期间使用第1个按钮一次,以便在100次模拟期间保持相同的景观(程序“设置模拟”和“启动模拟”运行100次)。我如何通过“实验”做到这一点(见下图) 非常感谢你的帮助 我假设您问这个问题的原因是,您的景观生成涉及到随机性,因此每次运行创建景
- 第一个按钮创建一个景观(过程“创建景观”)
- 第二个按钮初始化turtles(下图中的“设置模拟”过程)
- 第三个按钮运行模型(下图中的“启动模拟”程序)
我假设您问这个问题的原因是,您的景观生成涉及到随机性,因此每次运行
创建景观时,您都会得到不同的景观
如果您希望每次都获得相同的景观,则可以使用固定的方法生成景观
例如:
random-seed 0
create-landscape
…总是会产生相同的景观
但是,由于您希望模拟的其余部分在不同的运行中表现出不同的行为,因此不能对整个过程使用固定的随机种子
获得景观的固定种子和模拟其余部分的变化种子的一种方法是用于景观生成
假设您有一个输入小部件,用于全局变量的随机种子。您可以通过设置模拟
过程创建景观,如下所示:
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]
在BehaviorSpace对话框的“Variable variables as follow”部分中,为这三个场景中的每一个重复运行100次
为了更好地理解NetLogo处理随机性的方式,我建议阅读