Институт компьютерных наук и технологий
Факультет интеллектуальных систем и программирования
Кафедра Программная инженерия
им. Л. П. Фельдмана
Специальность Программная инженерия
Разработка модели и симуляция распространения эпидемии вируса с использованием игрового движка Unity
Научный руководитель: зав. каф., д.т.н., доцент Зори Сергей Анатольевич
Вирусы – это частицы, микропаразиты, функционирующие на границе живых организмов и химических соединений. Имеют способность создания кристаллических структур, что характерно для неживой материи, а с другой стороны, могут размножаться и разносить болезни. Попадая в клетки слизистых оболочек человека, они начинают размножаться и разрушают клетки организма, что приводит к образованию воспалительных процессов и, как следствие, приводят к проблемной симптоматике [1].
Примерами известных вирусных заболеваний человека могут служить простуда, грипп, ветряная оспа и простой герпес. Многие серьёзные болезни, например, лихорадка Эбола, СПИД, птичий грипп и пневмония тоже вызываются вирусами.
Эпидемиология является частью медицинской науки, изучающей передачу и контроль вирусных инфекций среди людей. Она используется, чтобы приостановить распространение инфекции в популяции во время вспышки вирусного заболевания. Предпринимаются контрольные меры, которые основаны на знании того, как распространяется вирус. Если вспышка приводит к высокому числу случаев заболевания в популяции или регионе, то она называется эпидемией. Если вспышки имеют широкое распространение, то говорят о пандемии [2].
Тема данной работы, связанная с разработкой компьютерной симуляции и изучением современных технологий ее реализации, является актуальной, так как проблема вирусной заболеваемости и возникновение эпидемий требует оперативного решения и активно исследуется во всем мире, в том числе – и с использованием математического аппарата и компьютеров.
Математическое компьютерное моделирование используется для исследования механизмов распространения болезни. Такие модели позволяют прогнозировать и оценивать динамики передачи заболеваний. Это позволяет анализировать и контролировать ситуацию, связанную с распространением вируса, а также предугадывать серьёзные последствия и принимать соответствующие меры по их устранению.
За основу базовой модели процесса симуляции выбрана SIR-модель [3]. Усовершенствование этой компьютерной модели направлено на повышение информативности и наглядности процесса симуляции за счет внедрения трехмерной визуальной составляющей симуляции и регулируемых параметров, влияющих на модель, что впоследствии также позволяет гибко получать конечные результаты при помощи варьировании структур, алгоритмов и параметров модели.
В качестве инструментов для разработки симуляции выбраны – мощный кроссплатформенный движок Unity, современный объектно-ориентированный язык программирования C#, а также пакет для создания трехмерной компьютерной графики – Blender.
В плане развития на будущее возможно усовершенствование представленной модели (введение дополнительных параметров, увеличение точности поведения и т.п.).
Моделирование – это процесс представления модели, который включает ее построение и работу. Эта модель похожа на реальную систему, которая помогает аналитику прогнозировать влияние изменений в системе. Другими словами, моделирование создает модель, которая представляет систему, включающую их свойства. Это акт построения модели [4].
Имитация системы – это работа модели с точки зрения времени или пространства, которая помогает анализировать производительность существующей или предлагаемой системы. Другими словами, симуляция – это процесс использования модели для изучения производительности системы. Это акт использования модели для моделирования [4].
Объект – это сущность, существующая в реальном мире для изучения поведения модели. Базовая модель – это гипотетическое объяснение свойств объекта и его поведения, которое действует во всей модели.
Экспериментальный фрейм используется для изучения системы в реальном мире, такой как экспериментальные условия, аспекты, цели и т. д. Базовый экспериментальный фрейм состоит из двух наборов переменных – входных переменных фрейма и выходных переменных фрейма, которые соответствуют системе или модели. Входная переменная Frame отвечает за сопоставление входов, примененных к системе или модели. Выходная переменная Frame отвечает за сопоставление выходных значений с системой или моделью.
Проверка – это процесс сравнения двух или более элементов для обеспечения их точности. Проверка может быть выполнена путем сравнения согласованности программы моделирования и сосредоточенной модели для обеспечения их производительности.
Валидация – это процесс сравнения двух результатов. Проверка выполняется путем сравнения измерений эксперимента с результатами моделирования в контексте экспериментального фрейма. Модель недействительна, если результаты не совпадают.
Визуализация – это любой способ создания изображений, диаграмм или анимаций для коммуникационного сообщения. Визуализация с помощью образов была эффективным способом коммуникационного обмена как абстрактными, так и конкретными идейными сущностями с самого начала истории человечества.
Процесс моделирования включает три элемента:
Первый этап построения модели предполагает наличие некоторых знаний об объекте-оригинале. Познавательные возможности модели обуславливаются тем, что модель отображает (воспроизводит, имитирует) какие-либо существенные черты объекта-оригинала.
Вопрос о необходимой и достаточной мере сходства оригинала и модели требует конкретного анализа. Очевидно, модель утрачивает свой смысл как в случае тождества с оригиналом (тогда она перестаёт быть моделью), так и в случае чрезмерного
во всех существенных отношениях отличия от оригинала. Таким образом, изучение одних сторон моделируемого объекта осуществляется ценой отказа от исследования других сторон. Поэтому любая модель замещает оригинал лишь в строго ограниченном
смысле. Из этого следует, что для одного объекта может быть построено несколько специализированных
моделей, концентрирующих внимание на определённых сторонах исследуемого объекта или же характеризующих объект с разной степенью
детализации.
На втором этапе модель выступает как самостоятельный объект исследования. Одной из форм такого исследования является проведение модельных
экспериментов, при которых сознательно изменяются условия функционирования модели и систематизируются
данные о её поведении
. Конечным результатом этого этапа является множество (совокупность) знаний о модели.
На третьем этапе осуществляется перенос знаний с модели на оригинал – формирование множества знаний. Одновременно происходит переход с языка
модели на язык
оригинала. Процесс переноса знаний проводится по определённым
правилам. Знания о модели должны быть скорректированы с учётом тех свойств объекта-оригинала, которые не нашли отражения или были изменены при построении модели.
Четвёртый этап – практическая проверка получаемых с помощью моделей знаний и их использование для построения обобщающей теории объекта, его преобразования или управления им.
Моделирование – циклический процесс. Это означает, что за первым четырёхэтапным циклом может последовать второй, третий и т. д. При этом знания об исследуемом объекте расширяются и уточняются, а исходная модель постепенно совершенствуется. Недостатки, обнаруженные после первого цикла моделирования, обусловленные малым знанием объекта или ошибками в построении модели, можно исправить в последующих циклах [5].
Сейчас трудно указать область человеческой деятельности, где не применялось бы моделирование. Разработаны, например, модели производства автомобилей, выращивания пшеницы, функционирования отдельных органов человека, последствий атомной войны. В перспективе для каждой системы могут быть созданы свои модели, перед реализацией каждого технического или организационного проекта должно проводиться моделирование.
В силу многозначности понятия модель
в науке и технике не существует единой классификации видов моделирования: классификацию можно проводить по характеру моделей, по характеру моделируемых объектов, по сферам приложения моделирования
(в технике, физических науках, кибернетике и т. д.) [5].
В настоящее время по технологии моделирования и области применения выделяют такие основные виды моделирования:
Математические методы для изучения заболеваний были впервые применены в 1760 году Даниэлем Бернулли. С их помощью, он оценивал эффективность различных способов прививки против оспы. В 1840 году Уильям Фарр описал данные по смертности от
оспы в Великобритании, кривой нормального распределения. Позже, данный метод был развит Джоном Браунли, который опубликовал в 1906 году статью Статистический подход к иммунной защите: теория эпидемий
[6],
где он сравнивал ряды эпидемиологических данных на основе распределения Пирсона. Два других учёных того времени, Хамер и Росс, применив одними из первых математическое описание распространения болезней, смогли решить задачи по выяснению
механизмов регулярного возобновления эпидемии кори и установлению взаимосвязи между численностью комаров и возникновением малярии [7].
Одной из наиболее ценных работ, посвященных моделированию эпидемии, является работа У.Кермака (W.O.Kermack) и А.МакКендрика (A.G.McKendrick) A Contribution to the MathematicalTheory of Epidemics
. Концепция Kermack-McKendrick –
это гипотеза о распространении инфекционных заболеваний среди населения. В 1927 году они разместили свою теорию в статье [8], которая стала источником SIR-модели. В этой модели различают три группы популяции: здоровые
или восприимчивые (от англ. susceptible) индивидуумы, способные заразиться при контакте с инфицированными (от англ. infected), а также выздоровевшие, которые перестали распространять болезнь (от англ. recovered). Эта модель не потеряла
своей актуальности до сих пор и хорошо подходит для моделирования.
В книге Mathematical Models in Biology [9] детально обсуждается модель SIR, а также её дополнения и модификации: SI, SIS, SIRS. Особенность этих моделей заключаются в том, что человек после болезни может повторно войти в группу восприимчивых лиц и быть снова инфицирован. Другая модификация SEIR, показывает модель, где человек может быть заражён, но находится на стадии инкубационного периода.
Herbert W. Hethcote, в своей статье [10], проанализировал множество математических моделей распространения инфекционных заболеваний среди популяции и применил их к конкретным заболеваниям. Отдельное внимание уделяется модели MSEIR, которая учитывает рождаемость и смертность. В ней население разделено на 5 групп: с пассивным иммунитетом, чувствительные, латентные, инфицированные и невосприимчивые.
В 2020 году в Базельском университете команда Ричарда Нейерома модифицировала модель SEIR с учётом специфики новой пандемии коронавируса. Доработанная модель включает концепцию так называемого эпидемического перехода. Другими словами, симуляция ведёт себя совсем по-разному в зависимости от переменной Ro. Каждый инфицированный человек может заразить несколько здоровых. Ro показывает среднее количество людей, которое один инфицированный может заразить в период своей болезни. Если Ro меньше единицы, эпидемия постепенно стихает, а если больше – экспоненциально растёт. Как работает Ro, зависит от конкретного вируса, процента населения, у которого вырабатывается иммунитет к вирусу, а также от мер, которые принимает население для сдерживания эпидемии [11].
В качестве наглядного примера математической модели в непрерывном времени можно привести классическую модель Кермака-Маккендрика. Для начала определяются переменные и параметры модели.
Таблица 1 – Переменные и параметры модели
Символ |
Значение |
S(t) |
численность восприимчивых индивидов в момент времени t |
I(t) |
численность инфицированных индивидов в момент времени t |
R(t) |
численность переболевших индивидов в момент времени t |
B |
коэффициент интенсивности контактов индивидов с последующим инфицированием |
v |
коэффициент интенсивности выздоровления инфицированных индивидов |
Популяция считается фиксированной, т.к. сумма численностей всех групп даёт постоянное значение N. Далее модель может быть выражена обыкновенными дифференциальными уравнениями:
(1)
(2)
(3)
Начальные условия в момент времени t = 0
(4)
Правая часть уравнения (1) описывает уменьшение популяции восприимчивых индивидуумов за счет заражения инфицированными индивидуумами восприимчивых. Первое слагаемое правой части уравнения (2) описывает увеличение популяции инфицированных индивидуумов, за счет заражения восприимчивых; второе слагаемое правой части уравнения (2) описывает уменьшение популяции инфицированных индивидуумов за счет выздоровления или смерти индивидуумов. Правая часть уравнения (3) описывает увеличение популяции невосприимчивых индивидуумом за счет выздоровления или смерти инфицированных [12]. Такой переход можно описать в виде схемы (рис 1.).
Рисунок 1 – Общая схема перехода индивидуума из класса в класс (анимация: 11 кадров, 10 циклов повторения, 89 килобайт)
Стоит отметить, что правые части уравнений (1), (2), (3) в сумме дают ноль, так что общий размер популяции остается неизменным. Это важное свойство данной модели. Для его сохранения, в класс невосприимчивых попадают и выздоровевшие индивидуумы и умершие. Это логичный прием, так как в обоих этих случаях индивидуум не может заразить остальную популяцию [12]. Параметр интенсивности инфицирования восприимчивых, называемый также силой инфекции, имеет следующий вид:
(5)
Касаемо сегодняшней ситуации в мире, то в интернете можно найти различные математические модели, основанные как на вышеупомянутых методах, так и на кардинально новых принципах и методиках. Но зачастую, авторы берут уже существующий метод или модель и начинают развивать её по своему усмотрению. Например, за основу своей модели берут 3 группы людей из SIR-модели и вычисляют ситуацию, не при помощи уравнений и математики, а визуально моделируют и программируют поведение людей и процесс распространения вируса среди них. Такая интерпретация модели в интерактивные системы более проста для восприятия. Они наглядно показывают всю возможную опасность и помогают лучше понимать, что может произойти. А при помощи ввода различных мгновенно регулируемых параметров и факторов описывают как можно влиять и управлять ситуацией. То есть происходит процесс прогнозирования и контроля последствий.
Один из таких примеров – симуляция из статьи [13] журналиста Гарри Стивенса в The Washington Post Почему такие вспышки, как коронавирус, распространяются по нарастающей, и как ослабить их рост
. Основа
данной модели состоит в том, что визуально показывается замкнутое пространство, по которому в случайном направлении могут перемещаться небольшие шарики. То есть представлена абстракция города с населением. Каждый шарик имеет цвет в
зависимости от его текущего состояния – голубой – здоровый, коричневый – больной и розовый – выздоровевший. При этом моделирование заражения происходит как в реальной жизни: при контакте здорового шарика с больным,
первый может заразится, а затем через некоторое время выздороветь (рис. 2).
Рисунок 2 – Визуальное представление модели
При помощи ввода различных факторов и условий, которые меняли поведение шариков или вводили ограничения, автор показал 4 модели, описанные при помощи графиков. В каждом из них описаны варианты возможного распространения вируса в зависимости от предпринятых мер (рис. 3). Следует заметить, что в данной модели отсутствует такой показатель, как смертность, которая может быть результатом заражения.
Рисунок 3 – Варианты возможного развития модели
Другая статья [14] рассказывает о первокурсниках ФКН, которые создали похожую симуляцию распространения коронавируса. В симуляции можно проследить, как соблюдение режима самоизоляции и правил гигиены жителями города
влияет на динамику заболеваемости, отражаемой на графиках. В ней присутствуют 4 регулируемых параметра, которые влияют на поведение людей
, а динамика эпидемии отображается на графиках. Основой модели является минималистическая
карта города, где шарики уже ходят, не в случайном направлении, а по улицам, от одного дома к другому. То есть у них определен заданный маршрут (рис. 4).
Рисунок 4 – Визуальное представление модели, приближенной к реальному поведению
Также стоит отметить, что на карте присутствуют специальные здания. Синим цветом обозначены постройки моделирующие общественные места, где обычно присутствует большое количество людей. По сравнению с прошлой рассматриваемой абстрактной моделью, данная модель уже более приближенна к реальности и симулирует естественное поведение человека.
Главным плюсом, каждой из рассмотренных методик, является то, что независимо от сложности и реализации модели, мы получаем какой-то набор данных, которые впоследствии можно обработать, например, спроецировать на графиках или спрогнозировать поведение ситуации и методов её решения. Отдельно можно выделить визуальные модели, которые по точности не уступают математическим, а по наглядности лучше раскрывают и показывают всю ситуацию.
Однако, как указывалось выше, основным минусом некоторых рассмотренных моделей и методик является отсутствие наглядной реализации, визуальной симуляции реальной жизни
.
Моделирование ситуации при помощи математики (моделей на основе уравнений, формул) может не учитывать большое количество внешних факторов, что иногда приводит к ошибочным результатам и неправильному решению по урегулированию ситуации. Что касается визуального моделирования (симуляции), то здесь существующие модели либо приводятся к абстрактному минимуму (город – замкнутый контур, население города – круги, которые двигаются в разных направлениях и т.п.), либо им не хватает факторов и условий, которые повторяют реальную жизнь.
В качестве решения данной проблемы предлагается выполнить, на основе выбранной и модернизированной с точки зрения ее адекватности модели, наглядную визуальную симуляцию в трёхмерном пространстве с использованием движка Unity и языка программирования C#. Это позволит моделировать и визуально имитировать ситуацию распространения эпидемии вируса с учетом многих изменяемых факторов.
Цель работы – разработка модели распространения эпидемии вируса и ее визуальная симуляция с использованием движка Unity. Для достижения поставленной цели необходимо решить следующие задачи:
В качестве основного средства и инструмента для разработки симуляции будет использован игровой движок Unity. Логика симуляции, реализованная через написание скриптов, будет осуществляться в среде разработки Visual Studio, при помощи современного объектно-ориентированного языка программирования C#. Визуальная составляющая симуляции, различные модели и прочая атрибутика будет разработаны при помощи пакета для создания трехмерной компьютерной графики Blender, но отображаться будет непосредственно в самом движке.
В связи со спецификацией выбранного инструмента разработки, проект будет состоять из нескольких сцен различного назначения: стартовое меню с начальными параметрами, сцена процесса симуляции и регулирования параметров модели, сцена с выходными данными и графиками. Аналитик может задавать определенные условия, после чего переходить к процессу симуляции, в любой момент ускоряя или приостанавливая её, для просмотра текущих данных в цифровом или графическом варианте.
При рассмотрении существующих методов, технологий и средств для разработки модели и симуляции распространения эпидемии вируса были выявлены их достоинства и недостатки, проанализированы основные принципы и методики математического и компьютерного моделирования, а также была выполнена общая постановка задачи, поставлена цель и составлен перечень задач для ее реализации.
Поставлены основные задачи для реализации проекта симуляции распространения эпидемии вируса, обоснованы и выбраны базовые средства его разработки, определены основные рабочие части для реализации логики работы приложения.