Netlogo: вакцинация разных пород

Моя модель представляет распространение гриппа среди взрослых и детей двух разных пород.

Я хотел бы добавить отдельные вакцинации для взрослых и детей, что позволило бы мне указать два значения вакцинации из интерфейса, что дает возможность вакцинировать черепах двух соответствующих пород.

Мой текущий код приведен ниже. Я хочу, чтобы у меня была возможность использовать значение интерфейса для взрослых-вакцинация для вакцинации определенного процента черепах этой породы.

ask turtles with [ adult? = true ]
   [
   if (adult-vaccination = 1) 
   [
    reset-node
    set exposed? false
    set susceptible? false
    set temp-infected? false
    show-turtle
    set color pink
    ]
    ]

person Mike Sheehy    schedule 03.03.2014    source источник


Ответы (1)


Если adult-vaccination - это вероятность от 0 до 1, вы можете вероятностно вакцинировать взрослых следующим образом:

ask turtles with [ adult? ] [
  if random-float 1 < adult-vaccination [
    ... ; vaccination code here
  ]
]

Если вы хотите adult-vaccination фактически определить долю вакцинированного населения, вы можете сделать это следующим образом:

let adults turtles with [ adult? ]
ask n-of round (adult-vaccination * count adults) adults [
  ...; vaccination code here
]

Еще несколько интересных моментов:

  • variable = true будет таким же, как variable, если variable всегда true или false.
  • Похоже, это прекрасная возможность для использования пород. У вас будет adults порода и children порода. Затем вы можете делать такие вещи, как ask adults [ do stuff ], и давать взрослым и детям разные переменные и т. Д.
person Bryan Head    schedule 04.03.2014
comment
Спасибо за ваш ответ. Я разделила показатели вакцинации для моих пород между детьми и взрослыми, однако Netlogo выдает мне ожидаемую постоянную ошибку, когда я пытаюсь выполнить приведенный ниже код. Можете дать еще один указатель? спросите n-of (детский-процент вакцинации * подсчитайте черепах с [взрослыми?]) [set turtle_status 5 комплектов вакцинированных? настоящая шоу-черепаха цвет белый]] - person Mike Sheehy; 07.03.2014
comment
Без проблем! Я ошибся в коде в своем ответе. Я сейчас поправил. Извини за это! Если у вас сейчас adults порода, вам не нужна строка let в новом коде. - person Bryan Head; 07.03.2014
comment
Я изменил свой код, но теперь получаю эту ошибку. Это происходит, когда у меня есть начальный набор из 10 взрослых агентов и я пытаюсь заразить 10% из них. Запрошено 100 случайных агентов из набора всего 10 агентов. ошибка при запуске наблюдателя N-OF - person Mike Sheehy; 07.03.2014
comment
Я понял, что мне нужно изменить процент вакцинации на 0,10 и т. Д. - person Mike Sheehy; 07.03.2014