Netlogo reset-ticks错误消息

时间:2016-03-16 15:28:10

标签: netlogo behaviorspace

.nlogo file enter image description here

我在使用行为空间运行迭代时遇到此错误

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

我不确定为什么会这样。我在" set"中包含了reset-ticks。例程。

此外,在行为空间对话框向导中,我还包括reset-ticks作为要执行的最终命令。但是我收到了这个错误。

以下是我的设置并转到代码:

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

3 个答案:

答案 0 :(得分:2)

您在BehaviorSpace实验"停止条件"中使用ticks,所以我认为几乎可以肯定"观察者运行TICKS"错误必须来自,因为堆栈跟踪没有引用过程名称。

以下是我对此处发生的事情的最佳猜测:在某些情况下,您的setup程序失败,因此在结束时从未接听到reset-ticks的电话。 setup。然后,BehaviorSpace会尝试运行您的停止条件,从而导致您看到的错误。

这个猜测有一些问题:

  • 为什么BehaviorSpace只会向您显示最终的刻度错误,而不是导致setup失败的错误,我不知道。

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

尽管如此,如果不进行更深入的调查,我能为您提供最好的服务。

答案 1 :(得分:0)

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

如果在reset-ticks程序开始时尚未调用go,则可以暂时解决此问题。

carefully [let t ticks][reset-ticks]

答案 2 :(得分:0)

对于那些通过搜索错误“滴答计数器尚未启动。请使用RESET-TICKS”找到此问题的人。但实际上并没有使用BehaviorSpace-问题(以及因此得到的答案)不适用于您的情况。取而代之的是,您几乎肯定忘记了在尝试运行模型之前对其进行初始化的方法,可能是通过单击“执行”按钮而没有首先单击“设置”按钮。

reset-ticks命令启动滴答计数器(使内部时钟可用),以便tick命令可以提前时钟。按照惯例,名为 setup 的过程具有初始化模型的所有命令,包括reset-ticks,创建乌龟等。类似地,名为 go 的过程包含所有实际运行模型的命令,例如四处移动海龟,包括tick。同样,按照惯例,这些过程可以分别按下分别名为 setup go 的按钮来运行。