Проблемно-ориентированный язык для моделирования сообществ

 
Код статьиS207751800030750-4-1
DOI10.18254/S207751800030750-4
Тип публикации Статья
Статус публикации Одобрена к публикации
Авторы
Аффилиация: Центральный экономико-математический институт РАН
Адрес: Российская Федерация, Москва
Аннотация

При многоагентном моделировании ключевым моментом является реализация модели в виде компьютерной программы. Реализацию модели можно сделать удобнее, если использовать проблемно-ориентированный язык (domain-specific language, DSL). 

В ходе данной работы была разработана библиотека на языке программирования C#, представляющая собой проблемно-ориентированный язык, позволяющий формулировать задачу моделирования на высоком уровне в терминах, близких предметной области. Были предложены структуры данных и иерархия классов. В частности, была предложена реализация агента, состав атрибутов которого может изменяться в процессе моделирования. Библиотека также включает в себя методы для моделирования жизни сообщества: рождаемости и смертности, имеет средства для моделирования брачного поведения.

В ходе тестирования было показано, что расход памяти в пике и вычислительная сложность в целом соответствует теоретическим оценкам, структура моделируемого сообщества соответствует демографическим данным. Была построена модель населения Российской Федерации по демографическим данным 2019 года и выполнен прогноз изменения численности населения к 2036 году. Получен результат, близкий к полученному для этих данных и интервала времени Росстатом, способом, отличным от многоагентного моделирования.

Ключевые словапроблемно-ориентированный язык, экономическая модель, прогнозирование, агент-ориентированные модели, социодемографические модели, агенты
Получено08.05.2024
Кол-во символов30559
Скачать pdf Для скачивания PDF необходимо авторизоваться
100 руб.
При оформлении подписки на статью или выпуск пользователь получает возможность скачать PDF, оценить публикацию и связаться с автором. Для оформления подписки требуется авторизация.

Оператором распространения коммерческих препринтов является ООО «Интеграция: ОН»

1

Введение

При многоагентном моделировании ключевым моментом является реализация модели в виде компьютерной программы. Такую реализацию модели можно сделать удобнее, если использовать проблемно-ориентированный язык (domain-specific language, DSL). Такой язык позволит формулировать задачу моделирования в терминах, близких предметной области. Тогда появляется возможность сокращать затраты времени на написание программ, а разработкой моделей смогут заниматься специалисты в предметной области, знакомые с программированием, но не являющиеся профессиональными программистами [13]. Технические вопросы эффективного использования памяти и производительности вычислений в этом случае решаются в коде библиотеки, то есть уровнем ниже, чем выполняется построение модели на уровне популяции и связей в ней. Некоторые популярные средства агент-ориентированного моделирования, которые позволяют создавать большие модели, были подробно рассмотрены в [1], уделяя особое внимание вышеупомянутым проблемам эффективного использования памяти и ресурсов центрального процессора.

2 Многоагентная модель хорошо ложится на объектно-ориентированную парадигму: агента можно представить как объект, включающий в себя атрибуты, отражающие признаки члена в сообществе, и методы, изменяющие эти атрибуты (применительно к демографии — изменяющие гражданское состояние члена сообщества). Отсюда, можно представить тип «агент» как класс, поля-переменные которого будут соответствовать признакам персоны в сообществе [1].
3 Современные языки программирования со строгой статической типизацией, как правило, предусматривают фиксированный набор свойств в классе. Вместе с тем атрибуты агента могут присутствовать и отсутствовать, появляться и исчезать в процессе моделирования. Проблему динамически создаваемых атрибутов можно было бы решить используя заранее составленный статический список, но это приводит к увеличению требований к памяти (необходимо предусмотреть все атрибуты, и нужно хранить не только сам атрибут, но и признак его активности), и зачастую делает код менее читаемым. С другой стороны, проверка типов компилятором позволяет избежать некоторых ошибок при составлении программы, но такая проверка, как правило, требует явного перечисления атрибутов и их типов. Таким образом, в отношении атрибутов существует потребность в нахождении некоторого компромиссного решения, предусматривающего проверку типа атрибута, но не ограничивающая гибкости, то есть возможности динамического определения атрибутов, и не принуждающая программиста к многочисленным правкам кода при небольших изменениях модели.
4 Многие параметры сообщества известны не на уровне отдельных агентов, а для сообщества в целом, и существует задача присваивания значений признаков отдельных агентов, входящих в состав сообщества в соответствии с показателями сообщества. Так, например, применительно к демографии доступны данные о половозрастной пирамиде — распределении популяции по возрасту и полу. При подготовке модели распределение должно быть трансформировано в количественные соотношения между экземплярами агентов с определенными параметрами. Такие действия являются типовыми, и, следовательно, их целесообразно оформить в виде повторно используемых процедур в составе библиотеки.

1. Брагин А.В., Бахтизин А.Р. Особенности реализации больших экономических моделей // ?-Economy. 2023, 16 (3), 107–122. DOI: https://doi.org/10.18721/JE.16307

2. Браки и разводы // Федеральная Служба Государственной Статистики URL: https://34.rosstat.gov.ru/storage/mediabank/Браки%20и%20разводы.html

3. В краевом перинатальном центре за первый месяц 2023 года родилось 288 малышей // Министерство Здравоохранения Красноярского края URL: https://kraszdrav.ru/news/11100

4. Демографический ежегодник России 2019. // Федеральная Служба Государственной Статистики URL: https://rosstat.gov.ru/storage/mediabank/Dem_ejegod-2019.pdf

5. Итоги выборочного наблюдения репродуктивных планов населения в 2012 году // Федеральная служба государственной статистики URL: https://rosstat.gov.ru/itog_inspect

6. Макаров В.Л., Бахтизин А.Р., Сушко Е.Д., Агеева А.Ф. Искусственное общество и реальные демографические процессы // Экономика и математические методы. 2017, T. 53, № 1

7. Макаров В.Л., Бахтизин А.Р., Сушко Е.Д. Имитация особенностей репродуктивного поведения населения в агент-ориентированной модели региона. // Экономика региона. 2015, № 3 С. 312-322

8. Методика демографического прогноза // Федеральная служба государственной статистики URL: https://64.rosstat.gov.ru/storage/mediabank/Методика%20демографического%20прогноза.pdf

9. Росстат представил уточненный демографический прогноз до 2036 года // URL: https://rosstat.gov.ru/folder/313/document/72529

10. Численность населения Российской Федерации по полу и возрасту // Федеральная Служба Государственной Статистики URL: https://rosstat.gov.ru/compendium/document/13284

11. Agresti A. (2007). An Introduction to Categorical Data Analysis, 2nd ed. New York: John Wiley & Sons. Page 38.

12. Cosenza B. et al. OpenABL: a domain-specific language for parallel and distributed agent-based simulations // Euro-Par 2018: Parallel Processing: 24th International Conference on Parallel and Distributed Computing, Turin, Italy, August 27-31, 2018, Proceedings 24. – Springer International Publishing, 2018. – С. 505-518. https://doi.org/10.1007/978-3-319-96983-1_36

13. Franchi E. A domain specific language approach for agent-based social network modeling //2012 IEEE/ACM International Conference on Advances in Social Networks Analysis and Mining. IEEE, 2012. p. 607-612.

14. Messerli R. C# Coding Guidelines. Messerli Informatik AG. 2020. // URL: https://messerli-informatik-ag.github.io/code-style/algebraic-datatypes.html

15. Microsoft Learn // F# guide URL: https://learn.microsoft.com/en-us/dotnet/fsharp/language-reference/discriminated-unions

16. R Core Team (2018). R: A language and environment for statistical computing. R Foundation for Statistical Computing, Vienna, Austria. URL: https://www.R-project.org/

Система Orphus

Загрузка...
Вверх