Netlogo reset-ticks 错误信息
Netlogo reset-ticks error message
我在使用行为 space
进行 运行 次迭代时收到此错误
The tick counter has not been started yet. Use RESET-TICKS.
error while observer running TICKS
called by procedure __EVALUATOR
我不确定为什么会这样。我已将 reset-ticks 包含在 "set" 例程中。
此外,在行为 space 对话框向导中,我还将 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
您在 BehaviorSpace 实验的 "stop condition" 中使用了 ticks
,所以我认为几乎可以肯定这就是 "error while observer running TICKS" 错误的来源,因为堆栈跟踪没有' t 引用过程名称。
这是我对这里发生的事情的最佳猜测:在某些情况下,您的 setup
过程失败,因此永远不会在 setup
结束时到达对 reset-ticks
的调用。然后 BehaviorSpace 尝试 运行 您的停止条件,导致您看到的错误。
这个猜测有一些问题:
为什么 BehaviorSpace 只会向您显示最终的滴答错误,而不是导致 setup
失败的错误,我不知道。
我不知道为什么您的 setup
程序会失败。
尽管如此,这已经是我在不进行更深入调查的情况下所能提供的最好的结果了。
不久前我遇到了同样的问题。我很确定问题可以追溯到 Netlogo 如何在线程之间共享全局 variables/states。我怀疑一个线程启动了 go
过程,而另一个线程还没有调用 reset-ticks
。
如果在 go
过程开始时尚未调用 reset-ticks
,则临时解决此问题。
carefully [let t ticks][reset-ticks]
致那些通过搜索错误“The tick counter has not been started yet. Use RESET-TICKS”发现此问题的人。但实际上并未使用 BehaviorSpace - 该问题(以及因此接受的答案)不适用于您的情况。相反,您几乎肯定忘记了在尝试 运行 之前初始化模型,可能是在没有先点击设置按钮的情况下点击了开始按钮。
reset-ticks
命令启动滴答计数器(使内部时钟可用)以便tick
命令可以提前时钟。按照惯例,名为 setup 的过程具有初始化模型的所有命令,包括 reset-ticks
、创建海龟等。类似地,名为 go[= 的过程22=] 包含实际 运行 模型的所有命令,如移动乌龟,包括 tick
。同样按照惯例,这些过程 运行 分别按下名为 setup 和 go 的按钮。
我在使用行为 space
进行 运行 次迭代时收到此错误The tick counter has not been started yet. Use RESET-TICKS.
error while observer running TICKS
called by procedure __EVALUATOR
我不确定为什么会这样。我已将 reset-ticks 包含在 "set" 例程中。
此外,在行为 space 对话框向导中,我还将 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
您在 BehaviorSpace 实验的 "stop condition" 中使用了 ticks
,所以我认为几乎可以肯定这就是 "error while observer running TICKS" 错误的来源,因为堆栈跟踪没有' t 引用过程名称。
这是我对这里发生的事情的最佳猜测:在某些情况下,您的 setup
过程失败,因此永远不会在 setup
结束时到达对 reset-ticks
的调用。然后 BehaviorSpace 尝试 运行 您的停止条件,导致您看到的错误。
这个猜测有一些问题:
为什么 BehaviorSpace 只会向您显示最终的滴答错误,而不是导致
setup
失败的错误,我不知道。我不知道为什么您的
setup
程序会失败。
尽管如此,这已经是我在不进行更深入调查的情况下所能提供的最好的结果了。
不久前我遇到了同样的问题。我很确定问题可以追溯到 Netlogo 如何在线程之间共享全局 variables/states。我怀疑一个线程启动了 go
过程,而另一个线程还没有调用 reset-ticks
。
如果在 go
过程开始时尚未调用 reset-ticks
,则临时解决此问题。
carefully [let t ticks][reset-ticks]
致那些通过搜索错误“The tick counter has not been started yet. Use RESET-TICKS”发现此问题的人。但实际上并未使用 BehaviorSpace - 该问题(以及因此接受的答案)不适用于您的情况。相反,您几乎肯定忘记了在尝试 运行 之前初始化模型,可能是在没有先点击设置按钮的情况下点击了开始按钮。
reset-ticks
命令启动滴答计数器(使内部时钟可用)以便tick
命令可以提前时钟。按照惯例,名为 setup 的过程具有初始化模型的所有命令,包括 reset-ticks
、创建海龟等。类似地,名为 go[= 的过程22=] 包含实际 运行 模型的所有命令,如移动乌龟,包括 tick
。同样按照惯例,这些过程 运行 分别按下名为 setup 和 go 的按钮。