1
我正在運行相當多的運行,其中大部分將被中止。我可以寫一個最終命令刪除中止運行,以加快進程和/或使我的csv文件更小?Netlogo行爲空間優化 - 刪除中止運行 - 最終命令
我正在運行相當多的運行,其中大部分將被中止。我可以寫一個最終命令刪除中止運行,以加快進程和/或使我的csv文件更小?Netlogo行爲空間優化 - 刪除中止運行 - 最終命令
沒有什麼能讓你以直接的方式做到這一點。無論如何它並不會真的加快速度。
除非您的csv文件的大小確實是個問題,否則最簡單的事情就是過濾掉您使用的任何數據分析程序中的中止運行。
我能想到的唯一選擇是編寫自己的實驗代碼。假設你有一個stop-condition?
記者,你set aborted? true
當運行被中止,你可以做線沿線的東西:
extensions [ csv ]
globals [ aborted? ]
to experiment
let run-number 1
let file-name "experiment.csv"
if file-exists? file-name [ file-delete file-name ]
file-open file-name
foreach [ 1 2 3 ] [ ; vary x
set x ?
foreach [ "a" "b" "c" ] [ ; vary y
set y ?
set run-number run-number + 1
setup
while [ not stop-condition? ] [ go ]
if not aborted? [
file-print csv:to-row (list
run-number
x
y
(count turtles)
; whatever else you want to measure...
)
]
if run-number mod 10 = 0 [ file-flush ]
]
]
file-close-all
end
這假定x
和y
分別是,滑塊和選擇器部件。如果你想改變全局變量,你必須小心,不要在安裝過程中調用clear-all
來覆蓋它們。如你所見,所有這些都遠非理想,並且可能容易出錯。