Інститут комп'ютерних наук і технологій
Факультет інтелектуальних систем та програмування
Кафедра Програмна інженерія
ім. Л. П. Фельдмана
Спеціальність Програмна інженерія
Розробка моделі і симуляція поширення епідемії вірусу з використанням ігрового рушія 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). Концепція Kermack-McKendrick – це гіпотеза про поширення інфекційних захворювань серед населення. У 1927 роцi вони розмістили свою теорію у статті [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, але відображатиметься буде безпосередньо в самому движку.
У зв'язку зі специфікацією обраного інструменту розробки проект буде складатися з декількох сцен різного призначення: стартове меню з початковими параметрами, сцена процесу симуляції та регулювання параметрів моделі, сцена з вихідними даними та графіками. Аналітик може задавати певні умови, після чого переходити до процесу симуляції, у будь-який момент прискорюючи чи зупиняючи її, для перегляду поточних даних у цифровому чи графічному варіанті.
При розгляді існуючих методів, технологій та засобів для розробки моделі та симуляції поширення епідемії вірусу було виявлено їх переваги та недоліки, проаналізовано основні принципи та методики математичного та комп'ютерного моделювання, а також було виконано загальну постановку задачі, поставлено мету та складено перелік завдань для її реалізації.
Поставлено основні завдання для реалізації проекту симуляції поширення епідемії вірусу, обґрунтовано та обрано базові засоби його розробки, визначено основні робочі частини для реалізації логіки роботи програми.