1

我有一个 netlogo 模型,运行大约需要 15 分钟,但会经历很多滴答声。这是因为每次滴答声都不会发生太多事情。我想在行为空间的实验中进行多次运行。输出(仅表输出)将是每个刻度的所有输出和输入变量。但是,并非所有这些数据都是相关的:它每天只相关一次(一天是可变的,一次运行持续 1095 天)。

结果是模型通过行为空间获得了如此缓慢的运行实验。只有 1095 行的输出数据不仅会更好,而且可能还会导致实验大大减慢。

如何解决这个问题?

4

1 回答 1

3

可以在 BehaviorSpace 实验中编写自己的输出文件。对代码进行编程以创建并打开一个仅包含所需结果的输出文件。

问题是阻止 BehaviorSpace 尝试从在不同处理器上运行的不同模型打开相同的输出文件,这会导致运行时错误。我尝试了两种解决方案。

  1. 告诉 BehaviorSpace 只使用一个处理器进行实验。然后,您可以对所有模型运​​行使用相同的输出文件。如果您希望输出行包含运行它的模型,请使用原始的 behaviorspace-run-number。

  2. 让每个模型运行创建其自己的具有唯一名称的输出文件。使用以下内容打开文件:file-open (word "Output-for-run-" behaviorspace-run-number ".csv") 因此输出文件将命名为 Output-for-run-1.csv 等。

(如果您不熟悉它,CSV 扩展名对于编写输出文件非常有用。您可以将要输出的所有内容放在一个大列表中,然后在模型完成后将列表写入一个 CSV 文件:csv: to-file (word "Output-for-run-" behaviorspace-run-number ".csv") the-big-list )

于 2020-01-24T15:43:53.863 回答