Список, содержащий НИКТО как одну из его сущностей

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

OF expected input to be a turtle agentset or turtle but got NOBODY instead.
error while patch 0 30 running OF
  called by procedure UPDATE-SUPPORT
  called by procedure GO
  called by Button 'Go'

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

Ниже приведен код, на основе которого назначаются самые близкие и самые дальние черепахи на каждом тике.

to update-support    
  ask patches [ 
    let old-total sum [my-old-size] of parties
    set f-party []
    set h-party []

    set party-list (sort parties)
    set voteshare-list n-values length(party-list) [ (([my-old-size] of party ? ) + 1 ) / ( old-total + 1 ) ] 
    set party-citizen-dist n-values length(party-list) [ ( distance party ? ) ^ 2 ]    
    set f-list n-values length(party-list) [ ( ( 1 / ( item ? voteshare-list ) ) * ( item ? party-citizen-dist ) ) ] 
    set f-index position (min f-list) f-list    
    set h-list n-values length(party-list) [ ( ( item ? voteshare-list ) * ( item ? party-citizen-dist ) ) ]
    set h-index position (max h-list) h-list

    set f ((-1) * (min f-list))
    set h max h-list

    set f-party lput item f-index party-list f-party 
    set h-party lput item h-index party-list h-party
    set closest-party first f-party
    set farthest-party first h-party
    ]

После того, как черепаха умирает, когда я осмотрел патч, который выдавал ошибку, я нашел слово nobody как элемент в списке. Ошибка выделена, чтобы быть в Party ? раздел при создании списка голосования в приведенном выше коде

Когда я проверил патч, выдающий ошибку, Party-list, который является списком со всеми отсортированными текущими партиями, показывал это:

Party-list: [(party 0) nobody (party 2)]

и мой список f-party только что [(nobody)]

Кто-нибудь сталкивался с такой ситуацией.?

Ниже death & рутина рождения:

to party-death
   ask parties [if (fitness < survival-threshold and count parties > 2)
       [  die
       ] update-support
]

to party-birth
  ifelse (endogenous-birth? = true)
    [ ask one-of patches with [distancexy 0 0 < 30]
      [ if (random-float 1 < (kpi * 1000)) [sprout-parties 1 [initialize-party] ]]
    [ create-parties 1 [set heading random-float 360 jump random-float 30 initialize-party] ]
        update-support

end

0 ответов

Другие вопросы по тегам