2016-08-18 4 views
1

Я работаю с довольно большим количеством прогонов, и большинство из них будут прерваны. Могу ли я написать Final Command, которая удаляет прерванные прогоны, чтобы ускорить процесс и/или уменьшить мои файлы csv?Netlogo BehaviorSpace Optmization - Удалить отмененные прогоны - Заключительная команда

ответ

1

Нет ничего, что позволило бы вам сделать это прямолинейно. И все равно это не сильно ускорит ситуацию.

Если размер ваших файлов 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, соответственно, слайдер и Chooser виджет. Если вы хотите изменить глобальные переменные, вы должны быть осторожны, чтобы не переопределять их при вызове clear-all в настройках.

Как вы можете видеть, все это далеко не идеально и, вероятно, подвержено ошибкам.

 Смежные вопросы

  • Нет связанных вопросов^_^