УДК 004.942
Программная симуляция распространения эпидемии вируса
Бездетный Н. А., магистрант Донецкого национального технического университета, nekooolay@mail.ru
Зори С. А., д.т.н., зав. кафедрой программной инженерии ДонНТУ, sa.zori1968@gmail.com
Аннотация
Описана программная модель симуляции распространения эпидемии вируса в виртуальном городе. В основе лежит SIR-модель, расширенная за счёт трёхмерной визуализации, имитации поведения жителей с использованием искусственного интеллекта и настройки параметров заражения. Симуляция реализована на игровом движке Unity и позволяет проводить эксперименты с различными сценариями (например, разной долей населения, использующей маски) и анализировать влияние ограничительных мер на динамику эпидемии.
Ключевые слова: вирус, эпидемия, прогнозирование, моделирование, компьютерная симуляция, SIR-модель, Unity, C#.
Актуальность и постановка задачи
Проблема вирусной заболеваемости и возникновения эпидемий требует оперативных решений и активно исследуется с использованием математического моделирования. Компьютерные модели позволяют прогнозировать динамику передачи заболеваний, оценивать эффективность профилактических мер и анализировать возможные последствия эпидемии.
За основу симуляции выбрана классическая SIR-модель, в которой население делится на три группы: восприимчивые (S), инфицированные (I) и невосприимчивые/выздоровевшие (R). Улучшение базовой модели заключается во внедрении трёхмерной визуализации, реалистичного поведения агентов и регулируемых параметров, влияющих на процесс заражения.
Виртуальное окружение и визуальная составляющая
В качестве основной локации выбран фрагмент города, содержащий жилые дома, офисы, магазины и другую инфраструктуру. Это позволяет приблизить симуляцию к реальным условиям.
Город населяют персонажи с простым искусственным интеллектом. Для них используются низкополигональные модели и набор базовых анимаций (покой, ходьба, бег), зависящих от скорости передвижения. При создании нового жителя модель выбирается случайно из пула доступных.
Реализация механики поиска пути (NavMesh)
Передвижение агентов реализовано с помощью встроенной системы навигации Unity — NavMesh. Навигационная сетка строится по геометрии сцены и задаёт области, доступные для перемещения. Слои NavMesh и «стоимость прохода» позволяют смоделировать, например, невозможность перехода дороги в неположенном месте или запрет на вход в определённые зоны.
Такая реализация обеспечивает построение оптимальных маршрутов и обход препятствий в режиме реального времени.
Система поведения агентов
Поведение жителей моделируется с использованием шаблона проектирования «Состояние». Деятельность агента разделена на три категории: «дом», «работа», «прочая активность». Для каждой категории в городе определены соответствующие здания и точки интереса.
В зависимости от текущего состояния агент перемещается между домом, местом работы и зонами активностей, меняя своё поведение, что создаёт более реалистичную картину городской жизни.
Механика распространения вируса
Каждый персонаж имеет статус здоровья, основанный на SIR-модели. Инфекционный агент периодически «распространяет» вирус в своей зоне действия, описываемой сферическим коллайдером. Одновременно у каждого персонажа есть зона восприятия окружающей среды.
При нахождении здорового человека в зоне распространения инфекционного индивида происходит попытка заражения. Базовый шанс заражения модифицируется внешними факторами, например наличием или отсутствием защитной маски у одного или обоих участников контакта.
Пользовательский интерфейс
Для управления симуляцией используется панель в левом верхнем углу экрана. Она содержит:
- кнопку системных настроек (шестерёнка);
- кнопку открытия окна с регулируемыми параметрами модели (слайдеры);
- кнопку отображения графиков и диаграмм, отражающих статистику распространения вируса.
Параметры можно изменять в процессе работы модели, наблюдая влияние на ход эпидемии.
Экспериментальное исследование
Параметры модели делятся на фиксированные (длительность виртуальных суток, время пребывания дома/на работе, количество жителей и т.п.) и изменяемые — в частности, долю населения, использующего маски. В симуляции около 400 человек, один из которых изначально инфицирован.
Для моделирования влияния масочного режима проведены три эксперимента с различной долей «защищённого» населения: 25 %, 50 % и 75 %. При этом базовые шансы заражения корректируются с учётом наличия масок у здорового и/или больного человека.
При сравнении с классической SIR-моделью кривые из симуляции показывают схожую форму, что подтверждает релевантность реализованной модели. Увеличение доли людей в масках приводит к снижению пикового числа заболевших и растягиванию процесса заражения во времени.
Выводы
Разработана программная модель симуляции распространения эпидемии вируса, выполненная на игровом движке Unity и использующая SIR-подход в сочетании с агентно-ориентированным моделированием. Модель прошла сравнение с классической SIR-моделью и показала адекватное поведение.
Проведённые эксперименты демонстрируют, что введение масочного режима позволяет уменьшить общее количество инфицированных и «сгладить» эпидемическую кривую. Модель может использоваться для дальнейших сценарных исследований и обучения.
Литература
- SIR и разновидности [Электронный ресурс]. Режим доступа: https://www.anylogic.ru/blog/sir-i-raznovidnosti-modeli-covid-epidemii-v-rossii/.
- Реализация поиска путей для ИИ-агентов с помощью NavMesh [Электронный ресурс]. Режим доступа: https://habr.com/ru/post/414453/.
- Реализация шаблона «Состояние» в Unity [Электронный ресурс]. Режим доступа: https://habr.com/ru/post/484176/.
- Compartmental models [Электронный ресурс]. Режим доступа: https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology.
- Пользовательский интерфейс [Электронный ресурс]. Режим доступа: https://wowwiki.fandom.com/ru/wiki/Пользовательский_интерфейс.
Annotation
Bezdetniy N.A., Zori S.A. Software simulation of the spread of a virus epidemic. The paper describes a software model for simulating the spread of a virus in a virtual city using an extended SIR approach and agent-based modeling. The model is implemented in the Unity game engine, provides 3D visualization and configurable parameters of infection processes and allows one to study the impact of various measures (such as mask usage) on the epidemic dynamics.
Key words: virus, epidemic, forecasting, modeling, computer simulation, SIR models, game engine, Unity, C#.