2016-03-16 36 views
1

.nlogo fileenter image description here的NetLogo复位蜱错误信息

我得到这个错误,而使用行为空间

The tick counter has not been started yet. Use RESET-TICKS. 
error while observer running TICKS 
called by procedure __EVALUATOR 

运行迭代我不知道为什么会这样。我在“设置”例程中包含了重置标记。

此外,在行为空间对话框向导中,我还包括重置蜱作为要执行的最终命令。然而,我收到这个错误。

下面是我的设置和运行的代码:

to setup 
    clear-all 
    setup-citizens 
    setup-parties 
    update-support 
    reset-ticks 

end 

to go 
    ask parties [ adapt set my-old-size my-size ] 
    update-support 
    election 
    plot-voter-turnout 
    plot-volatility 
    if (Turnout-100%? = false) [plot-citizen-comparison] 

    tick 

end 
+0

你会发布行为空间配置的屏幕截图吗? –

+0

@BryanHead:我用截图编辑了问题。 – Yuvaraj

+0

我将'reset-ticks'看作最终的命令。 (不需要)。你确定它在你的'setup'中,*在任何调用'tick'之前?如果你在命令行运行'ca setup',会发生什么? – Alan

回答

2

您正在使用ticks您BehaviorSpace实验的“停止条件”,所以我认为这是几乎可以肯定这就是“误差而观察者运行滴答”误差必须来自,因为堆栈跟踪没有引用过程名称。

这里是在这里发生了什么对我最好的猜测:在某些情况下,你的setup过程失败,因此从未到达的setup结束调用reset-ticks。然后行为空间试图运行您的停止条件,导致您看到的错误。

这个猜测有一些问题:

  • 为什么BehaviorSpace只会显示你的最终蜱错误,且不会导致setup失败的错误,我不知道。

  • 我不知道为什么你的setup程序将失败。

尽管如此,这是最好的,我可以提供给你没有做更深入的调查。

+0

非常感谢您的帮助和时间。我不确定它为什么会停止,但在您回复之后,我从停止状态中删除了蜱状况,尽管我收到了其他错误,但至少重置蜱的错误已经停止。 – Yuvaraj

0

不久前我还面临同样的问题。我很确定这个问题可以追溯到Netlogo如何在线程中共享全局变量/状态。我怀疑有一个线程启动了go过程,而另一个线程尚未调用reset-ticks

如果在go程序开始时尚未调用reset-ticks,则临时修复此问题。

carefully [let t ticks][reset-ticks]