У меня есть две популяции Pop1 из агентов N1 и Pop2 из агентов N2. Динамика SIR Infection происходит в Pop1 и Pop2. Теперь на каждом временном шаге случайно выбранный агент удаляется из Pop1 и добавляется в Pop2 и наоборот. Удаленный агент может находиться в состоянии S или I или R и сохраняет свое состояние при добавлении в другой Pop. Код длинный, поэтому я вставлял его в pastebin http://pastebin.com/PdmJTUhs.Передача аргументов в методе класса Python
В моем коде 'oAgent' - случайно выбранный агент, который удаляется из Pop1 или Pop2. Теперь состояние (S = 0 или = 1, или R = 2) oAgent возвращается методом класса set_state (сам, oAgent)
def set_state(self, oAgent):
if SW_SIR.oAgent in self.sAgent:
return (0)
if SW_SIR.oAgent in self.iAgent:
return (1)
if SW_SIR.oAgent in self.rAgent:
return (2)
В моем коде класса Pop1_SW и Pop2_SW являются объектами класса для POP1 и POP2 соответственно. Состояние объекта Pop1 - это состояние агента, которое добавляется в Pop2, и наоборот. Теперь Pop1_SW должен получить state2 (который является состоянием oAgent of Pop1) в качестве входного параметра, а Pop2_SW должен получить state1 (который является состоянием oAgent из Pop2).
Итак, мой вопрос в том, как правильно назначить состояние для удаленных и добавленных агентов? Проблема в том, где внутри класса должен быть определен аагент и как вне класса его состояние должно быть входом для другого объекта класса?
Мой код отлично подходит для динамики SIR для одного населения. Я добавил три метода set_state(), removeAgents() и addAgents для двух групп населения, которые являются причиной ошибки.
Ваш вопрос будет получить большее внимание включить минимальный пример с изображением, где у вас возникли проблемы – shx2
Вы должны будете объяснить гораздо более подробно именно то, что случилось с ваш код: что произойдет, что ожидается, какое поведение вы хотите, которого у вас нет в настоящее время. –
Чтобы отбросить вещи, отпечаток неправильный в вашей пастообразной пасте. У вас есть необходимый аргумент 'm' для вашего конструктора классов, который вы не используете, и ваш случайный выбор' oAgent' должен находиться в пределах любой длины вашей популяции. –