NetLo go Настройка эксперимента - PullRequest
9 голосов
/ 05 марта 2020

Я работаю над моделью в Netlo go, и у меня возникают проблемы с пониманием того, как настроить «эксперимент». В моей модели у меня есть матрица, в которой есть все значения, которые меня интересуют (всего 6), и матрица обновляется всякий раз, когда выполняется условие (каждый раз, когда убивают X черепах), в основном снимая снимок модель на тот момент. Предыдущие значения в матрице очищаются, поэтому матрица представляет собой матрицу 1x6, а не 10000x6, причем для каждого снимка обновляется только одна строка.

То, что я хотел бы сделать, - это установить эксперимент, чтобы запустить мою модель несколько сотен раз, собирая эту матрицу каждый раз для первого числа снимков Х или до появления тиков Y. Но я не вижу способа сделать это в настройке эксперимента?

Возможно ли это сделать, или мне нужно создать 100x6 (100 снимков), а затем просто как-то экспортировать эту матрицу в CSV ?

Я никогда не проводил эксперимент в Netlo go, так что это может быть очень легко сделать или просто невозможно.

Ответы [ 2 ]

3 голосов
/ 11 марта 2020

Если я правильно понимаю ваш вопрос, то вы хотите, чтобы во время прогона сообщалось о 6 значениях с указанными c тиками. Эти галочки выбираются по условию, а не по определенному количеству галочек. NetLo go имеет инструмент управления экспериментом под названием BehaviorSpace. Настроить несколько сотен прогонов очень просто (возможно, с разными значениями для любых входов на ползунках и т. Д. c). Не так просто выводить только на определенные тики.

Диалоговое окно BehaviorSpace имеет галочку для каждого тика или только в конце. Если он установлен на каждый тик, то вы можете экспортировать свои шесть чисел каждый тик автоматически. В вашем случае это будет легче сделать, чем пытаться, и выводить только изредка. Вы можете добавить седьмой репортер, который имеет значение true / false для того, будет ли матрица сбрасываться в этом тике. Затем все, что вам нужно сделать в постобработке, это выбрать строки, в которых этот седьмой репортер имеет значение true.

Если вы хотите запустить модель для ровно N снимков, то вам также необходимо установить глобальную переменную это увеличивается каждый момент снимка. Тогда ваши настройки BehaviorSpace будут использовать этот счетчик для условия остановки.

2 голосов
/ 11 марта 2020

Я не уверен, что понимаю ваш вопрос, но обычно у вас есть функция Setup и функция Run, правильно? Поэтому я предполагаю, что приведенная ниже структура кода должна соответствовать тому, что вы ищете. Я давно не использовал netlo go, поэтому точный матричный код вам придется выяснить самостоятельно.

globals your-1by6-matrix your-100by6-matrix

to setup
  ;reset your experiment
end

to run
  ;run your experiment
end

to run100times
  repeat 100[
    setup
    run
    ;save your 1by6matrix into your 100by6matrix
  ]
  ;use your 100by6matrix to plot or export
end
...