保存模型的结果 运行 用作未来运行的起点

Saving the oucomes of a model run to use as starting point for future runs

OBJECTIVE:我的计划是 运行 我的模型约 60 个刻度,并使用 运行 的结果(即对补丁的更改)作为起点对于所有未来的 运行。这背后的想法是,前 60 个刻度模拟了从过去到今天的景观(没有任何政策干预)。然后,从今天开始,我想探索一系列政策情景,所有这些情景都从相同的基础条件开始。

问题:您是否知道是否有一种聪明的方法来评估/保存 运行 的结果,以便我可以将它们用作未来 运行 的起点,或者我是否需要在 60 个滴答后手动评估条件,然后构建一个替代设置按钮来复制这些条件?

我同意 Charles 的观点,export-world 和 import-world 应该可以工作。 另一种方法(参见下面的代码)是在前 60 个刻度中使用固定的随机种子作为替代设置,然后更改为 运行 特定的随机种子,这也适用于基于网络的 运行。 (我怀疑 export-world 在网络上不起作用。)

这是一个在飞行途中更改随机种子的示例。在定义新的随机种子之前,一定要保存随机种子,否则一切都会一样! 加载此代码并多次点击设置和运行按钮,您可以确认它正在运行。

globals [ variable-random-seed   fixed-ticks]
to setup
  clear-all
  set variable-random-seed random 999999999  ;; nine nines works
  random-seed 123456789 ;;  any fixed number to use for low ticks
  set fixed-ticks 10     ;;  or 60 in your case
  print " ----------- fixed ------------- ===== -------- varies by run ----------- "
  reset-ticks
end
to go
  if ticks > 20 [ print "\n" stop ]
  write random 100
  if  ticks = fixed-ticks  [ write "=====" random-seed variable-random-seed ]
  tick
end
 
 Sample output of three runs

----------- fixed ------------- ===== -------- varies by run


66 68 42 59 14 1 34 20 3 15 86 “=====”1 80 87 54 85 51 37 53 94 69

----------- fixed ------------- ===== -------- varies by run


66 68 42 59 14 1 34 20 3 15 86 “=====”94 72 60 26 18 90 65 50 65 18

----------- fixed ------------- ===== -------- varies by run


66 68 42 59 14 1 34 20 3 15 86 “=====”23 93 75 68 17 44 17 30 99 94