Simulation model of the Russian society: storage of model data, processing and presentation of results

 
PIIS265838870015583-4-1
DOI10.33276/S265838870015583-4
Publication type Article
Status Published
Authors
Occupation: Head of local networks laboratory
Affiliation: CEMI RAS
Address: 47, Nakhimovsky Prospect, Moscow, 117418, Russian Federation
Occupation: Deputy Director for Research
Affiliation: CEMI RAS
Address: 47, Nakhimovsky Prospect, Moscow, 117418, Russian Federation
Occupation: Junior Researcher, Laboratory of Computer Modeling of Socio-Economic Processes
Affiliation: CEMI RAS
Address: 47, Nakhimovsky Prospect, Moscow, 117418, Russian Federation
Journal nameVestnik CEMI
Edition
Abstract

Agent-based modeling of socio-economic processes often needs a large amount of statistical data. Simulation results also contain a huge amount of information (characteristics of individual agents in each period of modeling). In this regard there is a need for data storing and processing. This article discusses methods of storing and analyzing a large amount of data (representing the characteristics of individual agents) and also describes ways of their visualization.

Keywordsagent-based model, data storage and processing methods, visualization methods
AcknowledgmentThe reported study was funded by RFBR, project number 20-010-00339
Received23.06.2021
Publication date01.07.2021
Number of characters13407
Cite   Download pdf To download PDF you should sign in
1

Введение

2 При создании агент-ориентированных моделей (АОМ) с большим количеством агентов важным этапом является определение структуры данных модели, в частности, свойств или атрибутов объектов – агентов, действующих в рамках модели. Создаваемая АОМ российского общества [1-2] характеризуется, в том числе, очень большим количеством агентов – людей. В предельном случае – порядка 145 млн, точное количество зависит от выбранного периода моделирования. В этой ситуации даже небольшое изменение в структуре свойств агента влияет на требуемые ресурсы в процессе вычислений – в первую очередь используемую оперативную память и загрузку процессоров.
3 Также очевидно, что процесс создания, внесения изменений, отладки модели – итерационный, требующий большого количество запусков и анализа полученных результатов. Учитывая это, а также доступные вычислительные ресурсы, было принято решение ввести в модель дополнительный параметр – масштаб модели. Это позволяет значительно уменьшить вычислительную сложность модели. В результате в пределах одной (каждой) итерации по внесению изменений в модель выполнялись два этапа:
  1. внесение изменений и тестирование на относительно небольших масштабах (1/200, 1/150, 1/100). На этом этапе выявлялись и исправлялись основные ошибки, возможно, принималось решение, и корректировались вносимые изменения. С технической точки зрения, запуски преимущественно выполнялись в среде разработки Visual Studio, сборка выполнялась в конфигурации Debug.
  2. запуски в масштабах 1/30, 1/15, 1/10 и анализ полученных результатов на устойчивость и адекватность. В этом случае сборка выполнялась в конфигурации Release, запуски – на многопроцессорном сервере.
По мере развития и усложнения модели, добавления значений свойств объектов, объемы анализируемых результатов значительно возрастают. И это требует соответствующих подходов к обработке и визуализации результатов.
4

Структура данных модели

5

Основная часть АОМ реализована на C# [3] и представлена следующими основными содержательными классами [4]:

   I. Класс Person – агент-человек (рис. 1).

На этапе начального формирования популяции создается необходимое количество агентов – экземпляров класса Person, их количество зависит от заданного масштаба модели (mScale). Для каждого агента задаются соответствующие значения свойств. Этот набор объектов/агентов и их свойств является первичным, на основе которого могут быть рассчитаны все макропараметры популяции и регионов.

6
image1

Рис. 1. Описание класса Person.

7

   II. Класс Family – семья (рис. 2).

При формировании каждой модельной семьи создается экземпляр класса Family, который включает в себя идентификаторы двух родителей p1ID и p2ID, и список идентификаторов детей List children (если в семье есть дети). Идентификатор семьи FamilyID записывается в соответствующее поле каждого члена этой семьи. Также в данном классе при расчете или последующем изменении доходов родителей обновляется соответствующе поле familyIncome.

views: 290

Readers community rating: votes 0

1. Хачатрян, Н. К. Имитационная модель российского общества. Создание и анализ виртуальной популяции / Н. К. Хачатрян, А. А. Акиншин, О. И. Кузнецова // Искусственные общества. – 2020. – T. 15, Выпуск 4. – URL : https://arxiv.gaugn.ru/s207751800012620-1-1/ (Дата публикации: 06 декабря 2020 г.).

2. Хачатрян, Н. К. Компьютерное моделирование вариантов пространственного развития научно-технологической сферы в Российской Федерации / Н. К. Хачатрян, О. И. Кузнецова // Экономика и математические методы. – 2020. – Т. 56, №3. – С. 45-55.

3. Working with C# // Visual Studio Code. – Microsoft, 2021. – URL: https://code.visualstudio.com/docs/languages/csharp (дата обращения: 10.04.2021).

4. Объектно-ориентированное программирование // Microsoft, 2021. – URL: https://docs.microsoft.com/ru-ru/dotnet/csharp/fundamentals/object-oriented (дата обращения: 10.04.2021).

5. Use PivotTables and other business intelligence tools to analyze your datahttps // Microsoft, 2021. – URL: https://support.microsoft.com/en-us/office/use-pivottables-and-other-business-intelligence-tools-to-analyze-your-data-da1b3e85-d3c0-4f15-8cd9-bef446762ec3?ui=en-US&rs=en-US&ad=US (дата обращения: 10.04.2021).

6. Использование операторов PIVOT и UNPIVOT - SQL Server // Microsoft, 2021. – URL: https://docs.microsoft.com/ru-ru/sql/t-sql/queries/from-using-pivot-and-unpivot?view=sql-server-ver15 (дата обращения: 10.04.2021).

7. GROUP BY CUBE (Transact-SQL) - SQL Server // Microsoft, 2021. – URL: https://docs.microsoft.com/ru-ru/sql/t-sql/queries/from-using-pivot-and-unpivot?view=sql-server-ver15 (дата обращения: 10.04.2021).

Система Orphus

Loading...
Up