Netlogo — динамическое изменение времени выполнения для каждого эксперимента с использованием пространства поведения

#netlogo

#netlogo

Вопрос:

Я запускаю модель несколько раз из пространства поведения. Каждый раз продолжительность выполнения должна отличаться в зависимости от данных, импортированных из внешнего источника данных (например, время окончания последней смены производства в течение обычного дня). Как это сделать в пространстве поведения?

Комментарии:

1. Как это сделать, может зависеть от структуры ваших данных, способа их загрузки и т.д. Можете ли вы предоставить больше информации (в идеале, MCVE и набор данных для игрушек)?

Ответ №1:

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

 globals [ ticks-to-run ]

to setup
  reset-ticks
  set ticks-to-run random 150 ; replace `random 150` by the data you load from your external source
end

to go 
  tick
end
  

Это предполагает, что вы выполняете setup в своих командах установки и go в своих командах Go. Затем в вашем условии остановки добавьте ticks > ticks-to-run , и ваша модель остановится, как только она пройдет мимо вашей ticks-to-run . Также убедитесь, что в этом случае ваше ограничение по времени равно 0 , поскольку любое значение там остановит запуск модели до вашего пользовательского ticks-to-run ограничения.