正在尝试解释来自BehaviorSpace (Netlogo)的错误消息,但我不确定从哪里开始。
从GUI运行时,模拟运行得很好。但是,当我尝试在BehaviorSpace上运行它几次时,得到的结果如下:“由于语法错误,实验中止:期望在这里有一个右括号。”
很明显,代码有问题--在某个地方-- BehaviorSpace会把它找出来。但是,当BehaviorSpace对话框中给出的信息不多时,从哪里开始查找问题的根源呢?'here‘指的是什么?(我假设某处有一行代码,但是在哪里?)或者它可能是BehaviorSpace对话框中的某个东西?有什么建议吗?
发布于 2020-09-16 15:08:18
有几件事你可以尝试一下。
你首先需要的是一定的重现性。修改代码,以便在每次运行(随机生成)时显式使用random-seed并输出该种子。还要确保输出每个步骤,而不是仅在运行结束时输出,以便从失败的运行中获得一些信息。我们的想法是找到一个失败的运行,并使用该种子来查看它是否在正常操作中失败(使用运行所使用的任何全局变量值)。
它总是在相同的输入参数组合上失败吗?可能是这些输入导致了一个很少使用的代码分支。
切换您的BehaviorSpace以顺序运行模拟,并且只使用一个处理器。在失败之前的运行有什么不寻常的地方吗?例如,它的结束是由于大量的刻度停止条件而不是自然的。如果是这样,对于失败的运行,您可能没有在设置中将某些变量值返回到适当的初始值。
https://stackoverflow.com/questions/63911582
复制相似问题