Netlogo BehaviorSpace Optmization - 删除中止的运行 - 最终命令

时间:2016-08-18 07:49:04

标签: netlogo

我正在进行大量的运行,其中大部分将被中止。我可以写一个删除中止运行的最终命令,以加快进程和/或缩小我的csv文件吗?

1 个答案:

答案 0 :(得分:2)

没有什么可以让你以直截了当的方式做到这一点。而且无论如何它都不会真正加快速度。

除非csv文件的大小确实存在问题,否则最简单的方法就是在您使用的任何数据分析程序中过滤掉中止的运行。

我能想到的唯一选择就是编写自己的实验代码。假设你有一个Range的记者,而你stop-condition?当一个游戏被中止时,你可以做一些事情:

set aborted? true

这假定extensions [ csv ] globals [ aborted? ] to experiment let run-number 1 let file-name "experiment.csv" if file-exists? file-name [ file-delete file-name ] file-open file-name foreach [ 1 2 3 ] [ ; vary x set x ? foreach [ "a" "b" "c" ] [ ; vary y set y ? set run-number run-number + 1 setup while [ not stop-condition? ] [ go ] if not aborted? [ file-print csv:to-row (list run-number x y (count turtles) ; whatever else you want to measure... ) ] if run-number mod 10 = 0 [ file-flush ] ] ] file-close-all end x分别是滑块和选择器小部件。如果您想改变全局变量,则必须注意不要在设置中调用y来覆盖它们。

正如您所看到的,所有这些都远非理想,可能容易出错。