有没有办法像以前一样重新运行Netlogo模型?(即再次有效地按下 Go 并让运行与上一次完全相同。
据我了解,您只需要找出上次运行中使用的随机种子 - 可以做到这一点吗?然后,您需要做的就是在设置中包含代码"随机种子 xxx"。
这个功能将非常有用,所以如果不能完成,也许它可以在未来的版本中实现。
谢谢。
我假设在这里你仍然希望模型的每次运行都是不同的(每次都更改随机种子(。 根据NetLogo编程指南:
如果您自己未设置随机种子,NetLogo 会根据当前日期和时间将其设置为值。无法找出它选择了哪个随机种子,因此如果您希望模型运行可重现,则必须提前自己设置随机种子。
所以我们可以做到这一点,我们只需要自己处理"记住"随机种子。 假设您有一个必须在模型运行之前执行的标准setup
过程:
globals [ run-seed ]
to setup
set run-seed new-seed ; get a random seed to use for our run
random-seed run-seed
; do the rest of our normal setup
end
现在,模型运行完成后,您可以在命令中心show run-seed
,或在代码中打印出来以记录它。 然后,您可以使用该种子而不是setup
过程中的new-seed
来重现将来运行的模型。