问题描述
试图解释来自BehaviorSpace(Netlogo)的错误消息,我不确定从哪里开始。
从GUI运行时,模拟工作正常。但是,当我尝试运行几次 在BehaviorSpace上,我得到以下信息: “由于语法错误,实验被中止:此处应使用右括号。”
很明显,某些地方出现了某些代码错误,BehaviorSpace接了起来。 但是,如果没有太多的信息,人们会从哪里开始寻找问题的根源 从BehaviorSpace对话框中? “这里”指的是什么? (一行 代码在我假设的某个地方,但是在哪里?...)还是在BehaviorSpace对话框中出现?有什么建议吗?
解决方法
您可以尝试一些方法。
您需要做的第一件事是再现性。修改代码以在每次运行(随机生成)中显式使用random-seed
并输出该种子。另外,还要确保输出的是每个步骤,而不仅仅是在运行结束时输出,以便从失败的运行中获取一些信息。这个想法是找到一个失败的运行,并使用该种子查看它在正常操作中是否失败(也使用运行的任何全局变量值)。
是否总是在相同的输入参数组合上失败?这些输入可能导致很少使用的代码分支。
切换BehaviorSpace以仅使用一个处理器就可以顺序运行仿真。失败之前的运行是否有异常之处?例如,它由于停止多个滴答声而不是自然而结束。如果是这样,您可能没有在设置中为失败的运行将一些变量值恢复为适当的初始值。