Ошибка при изменении «я» с восприимчивого на зараженного в процедуре передачи вируса в Netlogo

#netlogo #virus #agent-based-modeling

Вопрос:

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

Мой предыдущий код выглядит так:

 to transmit; procedure for transmitting the desease to nearby people, inspired by epiDEM
  let caller self ; adress the susceptible turtle by the name caller
  if susceptible? = TRUE
  [
  let nearby-infected turtles-here with [infected? = TRUE] ;replaced turtles in-radius with turtles-here to make the radius as small as possible
  if nearby-infected != nobody
    [ ask nearby-infected [set c-count c-count   1 set p-count p-count   [age-susceptibility] of caller]
      let transmission-risk 0.1 * age-susceptibility ;would benefit from inclusion of protective-measures, right now 0.1 times ag-susc as the radius might be too big resulting ín too fast spread
    if random-float 1 < transmission-risk [
      set infected? TRUE set susceptible? FALSE
        set nb-infected (nb-infected   1)]
    ]
  ]
end
 

и мой текущий код выглядит так:

 to transmit
if infected? = true
  [
let caller self ; adress infectious turtle by name caller
    let nearby-susceptible turtles-here with [susceptible? = TRUE] ;replaced turtles in-radius with turtles-here to make the radius as small as possible
    if nearby-susceptible != nobody
    [
      set c-count c-count   count nearby-susceptible
      set p-count p-count   sum [age-susceptibility] of nearby-susceptible
      
      ask nearby-susceptible
      [
       let transmission-risk 0.1 * age-susceptibility ;would benefit from inclusion of protective-measures, right now 0.1 times ag-susc as the radius might be too big resulting ín too fast spread
        if random-float 1 < transmission-risk [
          set infected? TRUE set susceptible? FALSE 
          ask caller [set nb-infected (nb-infected   1)]
      ]]
  ]]
end
 

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

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

Число c, число p и особенно число nb-инфицированных также намного выше, когда модель запускается с моим предыдущим кодом (число nb-инфицированных более чем в 20 раз выше на одном шаге с предыдущим кодом).

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

Буду признателен за любую помощь!