NetLogo 实验设置

Die*_*sel 9 netlogo

我正在 Netlogo 中处理模型,但在理解如何设置“实验”时遇到问题。在我的模型中,我有一个矩阵,其中包含我感兴趣的所有值(总共 6 个),并且只要满足条件(每次杀死 X 只海龟时)都会更新矩阵,基本上捕获了那个时候的模型。矩阵中先前的值被清除,因此矩阵是 1x6,而不是 10000x6 矩阵,每个快照只更新一行。

我想做的是设置一个实验来运行我的模型数百次,每次收集这个矩阵以获得第一个 X 数量的快照或直到发生 Y 个刻度。但是我在实验设置中看不到这样做的方法?

这是可能的,还是我必须创建 100x6(100 个快照),然后以某种方式将该矩阵导出到 CSV?

我从未在 Netlogo 中设置过实验,因此这可能非常容易或完全不可能。

Jen*_*enB 3

如果我正确理解您的问题,那么您希望在运行期间在特定刻度处报告 6 个值。这些刻度是通过满足条件而不是一定数量的刻度来选择的。NetLogo 有一个名为BehaviorSpace 的实验管理工具。设置数百次运行非常简单(滑块等上的任何输入可能具有不同的值)。仅在某些蜱虫上输出并不那么简单。

“行为空间”对话框的每个勾号或仅在末尾都有一个复选标记。如果您将其设置为每个刻度,那么您可以在每个刻度自动导出六个号码。就您而言,这样做可能比尝试仅偶尔输出更容易。您可以添加第七个报告器,该报告器是真/假,用于判断矩阵是否正在重置。然后,您在后处理中所要做的就是选择第七个记者为真的行。

如果您想针对 N 个快照运行模型,那么您还需要设置一个全局变量,该变量在每个快照点都会递增。然后,您的行为空间设置将使用该计数器作为停止条件。