Мова програмування та програмні засоби опису агентних моделей розповсюдження інфекційних захворювань
dc.contributor.advisor | Баклан, Ігор Всеволодович | |
dc.contributor.author | Сарнацький, Владислав Віталійович | |
dc.date.accessioned | 2024-04-12T13:45:42Z | |
dc.date.available | 2024-04-12T13:45:42Z | |
dc.date.issued | 2023 | |
dc.description.abstract | Сарнацький В.В. Мова програмування та програмні засоби опису агентних моделей розповсюдження інфекційних захворювань. – Кваліфікаційна наукова праця на правах рукопису. Дисертація на здобуття наукового ступеня доктора філософії за спеціальністю 121 – Інженерія програмного забезпечення та 12 – Інформаційні технології. – Національний Технічний Університет України «Київський Політехнічний Інститут імені Ігоря Сікорського», Київ, 2023. Дисертаційна робота присвячена розробці інструментального забезпечення для ефективного моделювання процесів розповсюдження інфекційних захворювань. Висвітлено основні напрями та тенденції розвитку сфери епідеміологічного моделювання у цілому та зокрема процесу розробки агентних епідеміологічних моделей. Були виявлені переваги та недоліки запропонованих дослідницькою спільнотою рішень та, зокрема, обсяг, гнучкість та швидкодія програмних засобів моделювання. Серед програмних засобів моделювання не було помічено представників, що поєднують у собі доступний інтерфейс з високою швидкодією та гнучкістю опису моделей. Був зроблений висновок, що розробка предметно-орієнтованої мови програмування для опису агентних моделей та графічного середовища розробки та аналізу нададуть доступний інтерфейс опису моделі у поєднанні зі значною гнучкістю та швидкодією. Виконана побудова загального математичного апарату епідеміологічної моделі агентного типу. У рамках математичної моделі була сформульована основна складність агентного епідеміологічного моделювання, а саме урахування контактів під час обчислення розподілу майбутнього стану захворювання. Запропоновано три алгоритми обчислення цього розподілу, проаналізована їх алгоритмічна складність. Також, для одного з них – алгоритму з групуванням було виконане дослідження оптимальної його імплементації. З огляду на розроблену математичну модель було дано визначення формальної граматики предметно-орієнтованої мови опису агентної епідеміологічної моделі CTrace. Мова надає вбудований високорівневий інтерфейс для задання основних сутностей заданої загальної епідеміологічної моделі, а також відношень між ними. Мова підтримує задання ймовірнісних розподілів різного типу та основні операції між ними що значно спрощує задання соціодемографічної параметризації моделей. Виконана побудова транслятора розробленої формальної мови опису агентної епідеміологічної моделі. Розроблений транслятор є компілятором із конфігурованою проміжною мовою. Такою мовою може бути Python, який своєю чергою транслюється у мову машинних інструкцій під час процесу JIT-компіляції, або будь-яка мова загального призначення, що має інтерфейс до побудови Pythonмодулів. Такою мовою була обрана мова Rust. Основним аспектом алгоритму трансляції є мінімізація кількості виділень пам’яті у процесі виконання результівної програми. Для цього, компілятор обраховує загальний обсяг пам’яті, необхідний для роботи моделі, і використовує буфер відповідного розміру для організації усіх обчислень. Розроблене середовище розробки та аналізу агентних епідеміологічних моделей з використанням мови CTrace – CTraceEnv. Розроблене середовище надає базовий функціонал необхідний для підтримки процесу опису моделей мовою CTrace, що включає підсвітку синтаксису вихідного коду, вбудований транслятор тощо. Серед функціоналу аналізу представлені елементи керування роботою моделі, значень її глобальних параметрів, інтерфейс перегляду динаміки розповсюдження досліджуваного інфекційного захворювання, а також функціонал експорту результатів для подальшого аналізу сторонніми спеціалізованими інструментами. Проведений аналіз розробленої мови опису агентних епідеміологічних моделей з боку доцільності її використання, обсягу сценаріїв, що можуть бути змодельовані, ефективності розробки та використання Виконана практична апробація розробленого інструментарію для ефективного моделювання розповсюдження інфекційних захворювань. У її рамках, було дано визначення агентної епідеміологічної моделі розповсюдження коронавірусу SARS-CoV-2 серед населення Польщі у період з початку вересня 2020 року до кінця листопада 2020 року, що була відкалібрована з використанням публічно доступних епідеміологічних даних. Результівна модель описує динаміку зміни кількості інфікованих людей з коефіцієнтом детермінації рівним 0.9319, що свідчить про здатність розробленого підходу описувати процеси розповсюдження інфекційних захворювань. Проведений аналіз впливу соціодемографічної гетерогенності середовища моделювання на якість карантинних стратегій побудованих на його основі. Відповідний експеримент полягав у реалізації алгоритму пошуку карантинних стратегій для заданої агентної епідеміологічної моделі країни Європейського Союзу. Соціодемографічна параметризація моделі побудована з використанням статистичного моделювання на основі відкритих історичних даних, з відкритої бази статистичних даних Eurostat. Знайдені алгоритмом стратегії були порівняні із тривіальними, що показало більшу їх ефективність та використані у процесі перехресного порівняння. Для цього, стратегія, отримана з моделі країни тестування була порівняна з іншими. В обох випадках критерієм порівняння виступала сумарна винагорода за дії агента, що використовує відповідну стратегію у середовищі моделювання, сформульованим як Марківський процес вирішення. Аналіз показав, що для покращення їх якості соціодемографічні показники мають бути ураховані, що, своєю чергою, показує необхідність наявності їх задання у будь-якому інструменті епідеміологічного моделювання. Це свідчить про доцільність тої уваги, що була приділена процесу їх задання при розробці мови CTrace. Окремо був проведений якісний аналіз спектра сценаріїв, що можуть бути змодельовані з використанням мови CTrace. Показано моделювання таких аспектів агентного епідеміологічного моделювання як: динамічні параметри моделі та її сутностей, географія середовища, погодні умови, векторні захворювання. Аналіз ефективності розробки епідеміологічних моделей мовою CTrace показав значне скорочення обсягу вихідного коду програми у порівнянні з моделями імплементованими мовами програмування загального призначення. В якості цих моделей, був використаний лістинг програмного коду проміжною мовою, що генерується транслятором. Скорочення обсягу програмного коду становило від 14 до 34 разів для мови Python та від 16 до 45 разів для мови Rust. Це скорочення може свідчити про зменшення кількості людино-годин необхідних для їх розробки, а також збільшену швидкість ітерування. Окрім цього, зменшення обсягу вихідного коду призводить до зменшення кількості помилок, що, своєю чергою, зменшує час опису моделей. Дано визначення метрики функціональності інструменту епідеміологічного моделювання, що дозволяє оцінити обсяг сценаріїв та функцій доступних користувачу. Дано визначення метрики ефективності моделі, що дозволяє виконувати порівняння різних моделей та інструментів моделювання з точки зору їх обчислювальної ефективності. Ця метрика є інваріантною до кількості агентів, тривалості симуляції, її гранульованості та кількості одночасно залучених до обчислення моделі ядер центрального процесору. Аналіз швидкодії результівних моделей, заданих мовою CTrace, ставив дві мети: обґрунтувати доцільність використання мови Python як проміжної мови трансляції, а також порівняти їх швидкодію з наявними моделями. Показано, що використання мови Python з бібліотекою для JIT-компіляції Numba дозволяє отримати швидкодію моделей, порівняну з отриманою у разі використання мови Rust, ефективність якої порівняна з C/C++. При цьому, гнучкість мови Python дозволяє відносно просто вносити корективи у процес трансляції. Експерименти з використанням різних тестових середовищ показали, що існуючі епідеміологічні моделі не виграють у швидкодії у розроблених мовою CTrace еквівалентів. З результатів порівняння розробленого середовища CTraceEnv з аналогами за визначеними метриками ефективності та функціональності можна зробити висновок що обсяг функцій агентного епідеміологічного моделювання наданий CTraceEnv є значно більшим за аналоги й приблизно відповідає середовищу NetLogo, надаючи при цьому ефективність результівних моделей, що не програє аналогам. | |
dc.description.abstractother | Sarnatskyi V.V. Programming Language and Software Tools for Description of Agent-Based Models of the Spread of Infectious Diseases. – Qualified scientific work on the rights of the manuscript. Dissertation for the degree of Doctor of Philosophy in the specialty 121 - Software Engineering and 12 - Information Technology. - National Technical University of Ukraine ”Igor Sikorsky Kyiv Polytechnic Institute Kyiv, 2023. The dissertation is devoted to the development of tools for effective modeling of infectious disease spread. The main directions and trends in the development of epidemiological modeling in general and the process of developing agent-based epidemiological models in particular are highlighted. The advantages and disadvantages of the solutions proposed by the research community and, in particular, the scope, flexibility and speed of modeling software were identified. Among the modeling software tools, no representa-tives were found that combine an accessible interface with high performance and flexibility of model description. It was concluded that the development of a domain-specific programming language for describing agentbased models and a graphical development and analysis environment will provide an accessible interface for describing the model in combination with significant flexibility and performance. The general mathematical apparatus of an agent-based epidemiological model was developed. Within the framework of the mathematical model, the main difficulty of agent-based epidemiological modeling was formulated, namely, taking into account contacts when calculating the distribution of the future state of the disease. Three algorithms for calculating this distribution were proposed, and their algorithmic complexity was analyzed. Also, for one of them, the algorithm with grouping, a study of its optimal implementation was performed. Given the developed mathematical model, the formal grammar of the domain-specific language for describing the CTrace agent-based epidemiological model was defined. The language provides a built-in high-level interface for specifying the main entities of a given general epidemiological model, as well as the relationships between them. The language supports the definition of probability distributions of various types and basic operations between them, which greatly simplifies the sociodemographic parameterization of models. The translator of the developed formal language for describing the agent-based epidemiological model was built. The developed translator is a compiler with a configurable intermediate language. Such a language can be Python, which in turn is translated into a machine instruction language during the JIT compilation process, or any general-purpose language that has an interface to building Python modules. Rust was chosen as such a language. The main aspect of the translation algorithm is to minimize the number of memory allocations during the execution of the resulting program. To do this, the compiler calculates the total amount of memory required for the model and uses a buffer of the appropriate size to organize all calculations. An environment for the development and analysis of agent-based epidemiological models using the CTrace language – CTraceEnv – was developed. The developed environment provides the basic functionality necessary to support the process of describing models in CTrace, including source code syntax highlighting, a builtin translator, etc. The analysis functionality includes controls for model operation, values of its global parameters, an interface for viewing the dynamics of the spread of the studied infectious disease, as well as the functionality of exporting results for further analysis by third-party specialized tools. The developed language for describing agent-based epidemiological models was analyzed in terms of the feasibility of its use, the scope of scenarios that can be modeled, and the efficiency of its development and use. The developed tools for effective modeling of the spread of infectious diseases were practically tested. Within its framework, an agent-based epidemiological model of the spread of the SARS-CoV-2 coronavirus among the population of Poland in the period from early September 2020 to the end of November 2020 was defined, which was calibrated using publicly available epidemiological data. The resulting model describes the dynamics of changes in the number of infected people with a coefficient of determination of 0.9319, which indicates the ability of the developed approach to describe the processes of spreading infectious diseases. The impact of sociodemographic heterogeneity of the modeling environment on the quality of quarantine strategies based on it was analyzed. The corresponding experiment consisted of implementing an algorithm for searching for quarantine strategies for a given agent-based epidemiological model of a European Union country. The sociodemographic parameterization of the model was built using statistical modeling based on open historical data from the open database of Eurostat. The strategies found by the algorithm were compared with the trivial ones, which showed their greater efficiency and were used in the crosscomparison process. For this purpose, the strategy obtained from the model of the test country was compared with the others. In both cases, the comparison criterion was the total reward for the actions of the agent using the corresponding strategy in the modeling environment, formulated as a Markov decision process. The analysis showed that to improve their quality, sociodemographic indicators should be taken into account, which, in turn, shows the need for their setting in any epidemiological modeling tool. This demonstrates the appropriateness of the attention paid to the process of their specification in the development of the CTrace language. Separately, a qualitative analysis of the range of scenarios that can be modeled using the CTrace language was conducted. It was shown how to model such aspects of agent-based epidemiological modeling as: dynamic parameters of the model and its entities, geography of the environment, weather conditions, vector-borne diseases. The analysis of the efficiency of developing epidemiological models in CTrace showed a significant reduction in the amount of program source code compared to models implemented in general-purpose programming languages. As these models, the program code listing in an intermediate language generated by the translator was used. The reduction in program code size ranged from 14 to 34 times for Python and from 16 to 45 times for Rust. This reduction may indicate a decrease in the number of man-hours required for their development, as well as an increased iteration rate. A definition of the functionality metric of an epidemiological modeling tool was given. The model efficiency metric was defined, which allows comparing different models and modeling tools in terms of their computational efficiency. This metric is invariant to the number of agents, the duration of the simulation, its granularity, and the number of CPU cores simultaneously involved in the model calculation. The analysis of the performance of the resultant models defined in CTrace had two goals: to justify the feasibility of using Python as an intermediate translation language, and to compare their performance with existing models. It has been shown that using Python with the Numba JIT compilation library allows to obtain model performance comparable to that obtained by using Rust, whose efficiency is comparable to C/C++. At the same time, the flexibility of Python makes it relatively easy to make adjustments to the translation process. Experiments using various test environments have shown that existing epidemiological models do not outperform the equivalents developed in CTrace. Based on the results of comparing the developed CTraceEnv environment with analogues by certain efficiency and functionality metrics, it can be concluded that the scope of agent-based epidemiological modeling functions provided by CTraceEnv is much larger than analogues and approximately corresponds to the NetLogo environment, while providing the efficiency of the resulting models that does not lose to analogues. | |
dc.format.extent | 173 с. | |
dc.identifier.citation | Сарнацький, В. В. Мова програмування та програмні засоби опису агентних моделей розповсюдження інфекційних захворювань : дис. … д-ра філософії : 121 Інженерія програмного забезпечення / Сарнацький Владислав Віталійович. – Київ, 2023. – 173 с. | |
dc.identifier.uri | https://ela.kpi.ua/handle/123456789/66156 | |
dc.language.iso | uk | |
dc.publisher | КПІ ім. Ігоря Сікорського | |
dc.publisher.place | Київ | |
dc.subject | моделювання | |
dc.subject | моделювання поведінки | |
dc.subject | індуктивне моделювання | |
dc.subject | лінгвістичне моделювання | |
dc.subject | симулювання | |
dc.subject | нейронна мережа | |
dc.subject | епідеміологія | |
dc.subject | математична модель | |
dc.subject | агентна модель | |
dc.subject | мультиагентна система | |
dc.subject | формальна мова | |
dc.subject | мова програмування | |
dc.subject | мова опису моделі | |
dc.subject | алгоритм | |
dc.subject | ітеративний алгоритм | |
dc.subject | середовище моделювання | |
dc.subject | організація обчислювальних ресурсів | |
dc.subject | аналіз ефективності | |
dc.subject | оптимізація | |
dc.subject | програмне забезпечення | |
dc.subject | архітектура програмного забезпечення | |
dc.subject | CTrace | |
dc.subject | CTraceEnv | |
dc.subject | modeling | |
dc.subject | behavioral modeling | |
dc.subject | inductive modeling | |
dc.subject | linguistic modeling | |
dc.subject | simulation | |
dc.subject | neural network | |
dc.subject | epidemiology | |
dc.subject | mathematical model | |
dc.subject | agent-based model | |
dc.subject | multi-agent system | |
dc.subject | formal language | |
dc.subject | programming language | |
dc.subject | model description language | |
dc.subject | algorithm | |
dc.subject | iterative algorithm | |
dc.subject | simulation environment | |
dc.subject | computational resource management | |
dc.subject | performance analysis | |
dc.subject | optimization | |
dc.subject | software | |
dc.subject | software architecture | |
dc.subject.udc | 004.434, 004.942 | |
dc.title | Мова програмування та програмні засоби опису агентних моделей розповсюдження інфекційних захворювань | |
dc.type | Thesis Doctoral |
Файли
Контейнер файлів
1 - 1 з 1
Вантажиться...
- Назва:
- Sarnatskyi_dys.pdf
- Розмір:
- 7.66 MB
- Формат:
- Adobe Portable Document Format
Ліцензійна угода
1 - 1 з 1
Ескіз недоступний
- Назва:
- license.txt
- Розмір:
- 8.98 KB
- Формат:
- Item-specific license agreed upon to submission
- Опис: