我有一个创建网络的模型,并在setup
中选择种子节点,然后在go
中运行传染过程。对于多次运行,我想避免重新生成网络。如果我创建了两个程序full-setup
和part-setup
,是否有办法让BehaviorSpace第一次full-setup
和part-setup
进行所有其他运行?
我正在考虑ifelse
behaviorspace-run-number
上的 myGraphics.beginLinearGradientFill(["#000","#FFF"], [0, 1], 0, 20, 0, 120).drawRect(20, 20, 120, 120);
,但我不认为我可以保证1号跑是第一个击中处理器的。
答案 0 :(得分:0)
如果将同步运行设置为1将确保1是第一个命中处理器。
另一种仍然使用同步运行的方法是手动运行一次,使用nw扩展名(或者只是export-world和import-world)保存你的集合,并为剩余的运行加载它。
答案 1 :(得分:0)
如下设置命令如何:
ifelse count turtles = 0
[ setup-full ]
[ setup-partial ]
如果需要,用适合您模型的条件替换count turtles = 0
。
我永远不会记住从BehaviorSpace运行中重用世界状态的确切语义,当它运行或不运行时。无论如何,这是一个值得怀疑的功能,可能会在未来的NetLogo版本中消失;见https://github.com/NetLogo/NetLogo/issues/105。