Классическая модель SIR строится на трех группах людей. Это восприимчивые к болезни (Susceptible), зараженные (Infected) и выздоровевшие либо умершие с иммунитетом (Recovered). В дифференциальных уравнениях популяция предполагается идеально перемешанной, где каждый может заразить каждого с равной вероятностью. В клеточном автомате контакты строго локализованы на сетке, поэтому фактор плотности и локальной изоляции проявляется наглядно.
Математический аппарат и правила клеточного автомата
Начни с описания дискретной двумерной решетки. Каждая клетка может быть пустой либо содержать агента в одном из трех состояний SIR. Для моделирования контактов выбери окрестность Мура из восьми соседей или окрестность фон Неймана из четырех соседей. Задай базовые вероятности: шанс передачи вируса при контакте восприимчивого с инфицированным за один такт времени (beta) и вероятность выздоровления инфицированного за такт (gamma). Отношение beta к gamma определяет базовое репродуктивное число R0 в классической теории.
Моделирование неоднородной плотности и перемещения агентов
Сгенерируй сетку с разным заполнением агентами. Для этого создай участки с высокой концентрацией занятых клеток (городские кварталы) и участки с разреженным заполнением (пригород или сельская местность). На каждом шаге алгоритм должен либо перемещать свободных агентов на соседние незанятые клетки по закону случайного блуждания, либо вычислять передачу инфекции в статичной сетке, где плотность задается долей изначально занятых клеток от общего размера поля. Обязательно опиши процедуру граничных условий: тороидальная сетка, свернутая в бублик, либо непроницаемые края.
Введение карантинных мер и ограничений подвижности
Карантин задается двумя путями. Первый путь — обнаружение инфицированного агента с заданной задержкой и временное обнуление вероятности передачи инфекции его соседям, словно агент изолирован в боксе. Второй путь — ограничение подвижности популяции, когда после превышения определенного порога заболевших вероятность перемещения агентов по сетке снижается на 50, 70 или 90 процентов. Сравни динамику распространения при раннем и позднем введении карантинных ограничений.
Что конкретно оценивает преподаватель
- Корректность программной реализации переходов между состояниями S, I и R без появления недопустимых инверсий, когда агент из R внезапно снова становится S без учета заложенной мутации
- Методику усреднения результатов симуляций: клеточный автомат стохастичен, поэтому для каждого набора параметров плотности требуется прогон от 30 до 50 итераций с усреднением графиков
- Наличие сопоставительных графиков динамики во времени для разных уровней плотности от 10 до 90 процентов заполнения поля
- Оценку вычислительной сложности алгоритма обновления сетки размером N на M клеток на каждом временном шаге
Где брать данные и библиотеки
Тебе не нужны засекреченные медицинские архивы, так как работа сосредоточена на алгоритмической симуляции. Теоретическую базу бери из классических статей Уильяма Кермака и Андерсона Маккендрика 1927 года по основам SIR, а также из руководств по клеточным автоматам Стивена Вольфрама. Для программной реализации на Python подходят библиотеки NumPy для быстрых матричных вычислений масок состояний, Numba для ускорения циклов обновления сетки и Matplotlib или Pygame для визуализации распространения волны заражения. Эмпирические диапазоны вероятности заражения и длительности болезни можно взять из открытых отчетов ВОЗ по гриппу или кори, чтобы модель опиралась на правдоподобные временные рамки выздоровления в 7-14 шагов симуляции.
Частые вопросы
Какой язык программирования лучше выбрать для курсовой?
Проще всего писать на Python, если использовать векторизацию массивов в NumPy. Если сетка превышает размер 500 на 500 клеток или симуляция включает миллион шагов, лучше реализовать ядро клеточного автомата на C++ или использовать C-расширения через Cython.
Нужно ли вводить летальные исходы в модель?
В базовой SIR состояние R объединяет выздоровевших с иммунитетом и погибших, поскольку обе категории исключаются из цепочки дальнейшей передачи. Добавлять отдельное состояние Deceased имеет смысл только при исследовании влияния смертности на социальную изоляцию соседей.
Как наглядно показать результаты в тексте работы?
Помести в практическую главу тепловые карты решетки в моменты времени t=10, t=50, t=100 шагов, а рядом приведи графики зависимости числа зараженных от времени для трех сценариев плотности: низкая (20%), средняя (50%) и высокая (80%).