2016-03-16 33 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]