[Сложная сеть] Модель распространения эпидемии - SI, SIS, SIR (включая примеры) [python]
[Сложная сеть] Модель распространения эпидемии - SI, SIS, SIR (включая примеры) [python]
[Комплексная сеть] Модель распространения эпидемии — SI, SIS, SIR [python]
1. Концепция распространения эпидемии
Восприимчивый (S): Лица, которые еще не были инфицированы этой болезнью;
Инфицированные (I): Лица, инфицированные этим заболеванием и способные заразить;
Выздоровевшие (R): Лица, которые приобрели постоянный иммунитет после излечения или умерли из-за болезни.
2. Модель распространения эпидемии
2.1 Набор данных модели
2.1.1 Набор данных
Набор данных представляет собой граф связей, состоящий из 200 узлов, который можно понимать как сообщество из 200 человек. Каждый человек имеет свою собственную взаимосвязь (называемую соседними узлами).
2.1.2 Импорт и рисование данных
Код 👇
2.1.3 Сетевая диаграмма набора данных
2.2 Модель СИ
Как только узел переходит из состояния S в состояние I, он всегда будет в состоянии I. Используется для описания болезней, которые невозможно вылечить после заражения, или эпидемий, при которых отсутствует эффективный контроль над внезапными вспышками.
2.2.1 Идеи реализации
Создать словарь S, I (используется для хранения обычных узлов + зараженных узлов)
Инициализируйте случайные начальные числа и сохраните список случайных начальных чисел в файлеseed_list как зараженный набор.
Получить соседей зараженного человека [соседние узлы будут заражены с определенной вероятностью]
Добавить новых зараженных людей, выбранных случайным образом, в словарь I [Зараженные лица]
Уменьшить количество новых зараженных людей, выбранных случайным образом в словаре S [нормальные люди]
Обновить новых нормальных людей и зараженных людей [рассчитать выживаемость]
Пока нормальный не равен 0, программа завершается
2.2.2 Код
Расчет выживаемости👇
2.2.3 Результаты
SI👇
Улучшения рисования СИ 👇
Потому что 0,00 на рисунке выше означает, что в цикле while для рисования изображения будет возвращен только S_dic, когда все заражены, поэтому независимо от того, сколько раз цикл повторяется, в качестве конечного результата будет возвращено 0,00. изменилось на новое изображение следующим образом
2.3 Модель SIS
После того, как узел в состоянии S контактирует с узлом в состоянии I, он перейдет в состояние I с вероятностью λ. В то же время узел в состоянии I также вернется в состояние S с вероятностью . γ.
2.3.1 Идеи реализации
Об идее внедрения SIМодель База,Добавьте параметр rekov_rate [вероятность восстановления_rate заключается в том, что зараженный человек вернется к нормальному состоянию],Реализуйте преобразование из I в S
Обновить новых нормальных людей и зараженных людей [рассчитать выживаемость]
2.3.2 Код
Просто измените его в соответствии с 2.2.
2.3.3 Результаты
2.4 Модель СИР
После того, как узел в состоянии S контактирует с узлом в состоянии I, он перейдет в состояние I с вероятностью λ, а узел в состоянии I перейдет в состояние R с вероятностью γ.
2.4.1 Идеи реализации
Об идее внедрения SIМодель База,Добавьте параметр Recov_rate [Вероятность восстановления_скорости здесь означает, что зараженный человек перейдет в состояние выздоровления],Реализуйте преобразование I в R
Обновление новых нормальных людей, инфицированных и выздоровевших людей [рассчитать выживаемость]