Ошибка с числом в SEIR-модели Netlogo - PullRequest
0 голосов
/ 09 мая 2020

Я пытался внедрить социальное дистанцирование в свой код для NetLo go, и я продолжаю получать ошибку, когда запускаю код с n-of: «Запрошено 500 случайных агентов из набора, состоящего всего из 0 агентов. Error while Наблюдатель, выполняющий N-OF, вызываемый процедурой SETUP, вызываемой кнопкой 'setup' "

Я добавил ползунок под названием« social-distancing »и в настоящее время установил его на 0,5

Вот мои настройки:

globals [susceptible-code exposed-code infectious-code recovered-code distancing-yes-code distancing-no-code population total-dead]
turtles-own [epi-state distancing] ;; each turtle has an epidemiological state


;; Creating the  the initial configuration of the model
to setup
  clear-all
  set susceptible-code "susceptible"
  set infectious-code "infectious"
  set exposed-code "exposed"
  set recovered-code "recovered"
  set distancing-yes-code "distancing"
  set distancing-no-code "not-distancing"

  create-turtles 1000 [
    set epi-state susceptible-code ;; setting the turtle state as susceptible
    set color blue
    set size 0.4
    set shape "circle"
    set xcor random-xcor
    set ycor random-ycor
    set distancing-no-code "not-distancing"
  ]

  ;; makeing one turtle infectious

  let initial-no-of-sd count turtles * social-distancing

  ask one-of turtles [
    set epi-state infectious-code
    set color red ;; we color infectious turtles in red
  ]

  ask n-of initial-no-of-sd turtles with [distancing = distancing-yes-code] [
    set distancing distancing-yes-code
    set color yellow
  ]

  set population count turtles
  reset-ticks
end

1 Ответ

2 голосов
/ 09 мая 2020

Сообщение об ошибке сообщает вам, что вы попросили 500 черепах из набора сделать что-то, но в этом наборе нет черепах. Я предполагаю, что это такая строка:

ask n-of initial-no-of-sd turtles with [distancing = distancing-yes-code]

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

 let initial-no-of-sd count turtles * social-distancing
 ask n-of initial-no-of-sd turtles [
    set distancing distancing-yes-code
    set color yellow
  ]

Обратите внимание, что я также переместил оператор let, поэтому вам не нужно создавать переменную и использовать ее, разделенную символом код о другом (в данном случае о создании заразной черепахи). Это хорошая практика, упрощающая отладку по мере усложнения модели.

...