close

Вход

Забыли?

вход по аккаунту

Селютина Наталия Николаевна. Агентная модель динамики потребительского поведения, накоплений и сбережений населения

код для вставки
АННОТАЦИЯ
ВКР 62 c., 21 рис., 17 источников, 1 прил.
АГЕНТНАЯ
МОДЕЛЬ,
АГЕНТ,
ДОМОХОЗЯЙСТВО,
ПОТРЕБИТЕЛЬСКОЕ ПОВЕДЕНИЕ, ДОХОД, РАСХОД, КРЕДИТ, ДЕПОЗИТ,
БЮДЖЕТ, СБЕРЕЖЕНИЯ.
Выпускная квалификационная работа посвящена разработке агентной
модели динамики потребительского поведения, накоплений и сбережений
населения.
В первой главе происходит анализ и описание процессов предметной
области, обзор основного прототипа, на основании которого происходит
построение модели, формулирование требований к разрабатываемой модели и
постановка задачи.
Во второй главе описывается этап проектирования логики диалога с
пользователем,
разработка
алгоритмов,
отражающих
основные
процессы,
протекающие в модели, также описывается формула для подсчета процентов по
кредиту и депозиту, и последовательность действий, происходящих в модели.
В третьей главе осуществляется обзор средств разработки агентных систем
с последующим выбором необходимого, а также происходит описание готовой
модели и демонстрация примеров ее работы.
4
СОДЕРЖАНИЕ
ВВЕДЕНИЕ
5
1 ОПИСАНИЕ И АНАЛИЗ ДИНАМИКИ ПОТРЕБИТЕЛЬСКОГО ПОВЕДЕНИЯ,
НАКОПЛЕНИЙ И СБЕРЕЖЕНИЙ НАСЕЛЕНИЯ
8
1.1Описание предметной области
8
1.2 Постановка задачи
11
1.3Описание прототипа разрабатываемой системы
15
1.4 Формулирование требований
17
2
ПРОЕКТИРОВАНИЕ
СИСТЕМЫ
ДИНАМИКИ
ПОТРЕБИТЕЛЬСКОГО
ПОВЕДЕНИЯ, НАКОПЛЕНИЙ И СБЕРЕЖЕНИЙ НАСЕЛЕНИЯ
20
2.1 Моделирование процессов предметной области
20
2.2 Проектирование логики диалога с пользователем
23
2.3 Последовательность действий
25
2.4 Расчет кредита и депозита
27
2.5 Алгоритмическая реализация
28
3
РЕАЛИЗАЦИЯ
СИСТЕМЫ
ДИНАМИКИ
ПОТРЕБИТЕЛЬСКОГО
ПОВЕДЕНИЯ, НАКОПЛЕНИЙ И СБЕРЕЖЕНИЙ НАСЕЛЕНИЯ
35
3.1 Обзор программных средств для реализации
35
3.2 Описание работы информационной системы
43
ЗАКЛЮЧЕНИЕ
56
СПИСОК ЛИТЕРАТУРЫ
57
ПРИЛОЖЕНИЕ А (ОБЯЗАТЕЛЬНОЕ)
59
УДОСТОВЕРЯЮЩИЙ ЛИСТ № 140205/П
60
ИНФОРМАЦИОННО-ПОИСКОВАЯ ХАРАКТЕРИСТИКА ДОКУМЕНТА НА
ЭЛЕКТРОННОМ НОСИТЕЛЕ
61
5
ВВЕДЕНИЕ
Агентное моделирование – это метод имитационного моделирования,
исследующий поведение агентов и то, как такое поведение определяет динамику
всей системы в целом. Агентное моделирование применяется во многих отраслях
науки, имея цель изучить поведение сложной системы, состоящей из множества
взаимодействующих элементов.
Домашнее хозяйство - основная структурная единица, функционирующая в
потребительской сфере экономики. Она может состоять из одного и более человек.
В рамках домашнего хозяйства потребляются конечные продукты сферы
материального производства и сферы услуг. Домашние хозяйства являются
собственниками и поставщиками факторов производства в рыночной экономике. В
экономически
развитых
странах
совокупность
домохозяйств
является
принципиально важной частью национальной экономической системы, одним из
основных субъектов экономики, который представляет интересы всего населения,
учитывается во всех процессах макрорегулирования и отражается в статистической
отчетности. Домохозяйство - поставщик экономических ресурсов и основная
потребительская единица.
Изучение и ведение домашнего хозяйства – государственная задача,
особенно актуальная в современных экономических реалиях. Интерес к
домохозяйству обусловлен сложной демографической ситуацией в стране,
многочисленными проблемами сельских территорий. В нашей стране много
пустующих земель, которые и пытаются осваивать потенциальные фермеры.
Важно отметить, что в рыночной экономике домашние хозяйства
выступают как объективно необходимый хозяйствующий субъект и объект
рыночной экономики.
Целью данной выпускной квалификационной работы является разработка
агентной
модели
динамики
потребительского
поведения,
сбережений
и
накоплений населения.
Актуальность данной работы заключается в создании новых методов и
6
инструментальных средств для
прогнозирования
социально-экономических
процессов конечного потребления домохозяйств. Особенную значимость для
России данная проблема приобретает последние десять лет, так как регулируются
вопросы формирования взвешенной социально-экономической политики, которая
сможет обеспечить устойчивое развитие социума за счет консолидации в нем
домашних хозяйств. Сейчас домохозяйство является одним из наименее изученных
субъектов рынка, несмотря на то, что специалисты в области социологии и
экономики стремятся систематически анализировать экономическое поведение
домашнего хозяйства и агентов, то есть членов домохозяйств.
Для достижения поставленной цели необходимо решить следующие задачи:
1. Описать и проанализировать предметную область.
2. Осуществить обзор прототипов разрабатываемой информационной
системы.
3. Сформулировать постановку задачи.
4. Сформулировать требования к разрабатываемой информационной
системе.
5. Описать структуру данных и исходные данные.
6. Смоделировать процессы предметной области и логики диалога с
пользователем.
7. Разработать алгоритмы работы информационной системы.
8. Создать пользовательский интерфейс информационной системы.
9. Совершить обзор средств разработки агентных систем и выбрать
необходимые программные средства для реализации информационной системы.
10.Описать
реализованную
информационную
систему,
продемонстрировать примеры работы.
Теоретическим
и
методологическим
основанием
выпускной
квалификационной работы являются труды отечественных и зарубежных ученых.
В работе использовались статистические материалы Федеральной службы
государственной статистики РФ, постановление Правительства Российской
7
Федерации,
материалы
социологических
исследований,
публикаций
периодической печати.
Выпускная квалификационная работа состоит из введения, трех глав,
которые содержат десять подглав, заключения, списка литературы, который
насчитывает семнадцать источников и приложения.
8
1 ОПИСАНИЕ И АНАЛИЗ ДИНАМИКИ ПОТРЕБИТЕЛЬСКОГО
ПОВЕДЕНИЯ, НАКОПЛЕНИЙ И СБЕРЕЖЕНИЙ НАСЕЛЕНИЯ
1.1 Описание предметной области
Рассмотрим домашние хозяйства. Они бывают нескольких типов:
1. Одиночные женские.
2. Одиночные мужские.
3. Супружеская пара без детей.
4. Супружеская пара с детьми.
5. Одиночные с детьми.
6. Составные (супружеская пара с родителями и с детьми).
У каждого домохозяйства есть бюджет. Бюджет домашнего хозяйства —
совокупность всех доходов и расходов, для обеспечения жизнедеятельности всех
членов домашнего хозяйства.
Доходы домашних хозяйств могут быть в денежной и не денежной
(натуральной) форме. К последним можно отнести полученные в личном
подсобном хозяйстве продукты питания, а также натуроплату за работу на
предприятиях [1].
Денежные доходы домашних хозяйств подразделяются по следующим
источникам поступления:
1. Заработная плата.
2. Пенсии, пособия, стипендии и другие социальные выплаты.
3. Доходы от предпринимательской деятельности.
4. Доходы от недвижимости и операций с денежными средствами на
финансовом рынке.
Доходы домохозяйств можно рассматривать относительно прожиточного
минимума.
Прожиточный минимум — это минимальный уровень дохода, который
считается необходимым для обеспечения определённого уровня жизни в России.
9
Это стоимость условной потребительской корзины. В России в годовую
потребительскую корзину трудоспособного человека входят 100 кг картофеля,
126,5 кг хлеба, макарон и крупы, 60 кг фруктов, 58 кг мяса, 210 яиц и т. д. Кроме
еды, в корзину входят еще и непродовольственные товары, которые оцениваются в
половину суммы, потраченной на продукты. Коммунальные платежи и прочие
услуги — также берутся как 50% стоимости продуктовой корзины. При этом,
прожиточный минимум рассчитывается отдельно по каждому региону. А также для
трех групп населения — дети, пенсионеры и трудоспособные. Считается, что
меньше всего денег нужно пенсионерам. Прожиточный минимум это условная
величина, нужная для статистического учета [2].
Постановление
Правительства
РФ
«О
прожиточном
минимуме
в
Российской Федерации» приведено в приложении А.
Доходы домохозяйств можно разделить по величине прожиточного
минимума на следующие категории:
1. Доход меньше прожиточного минимума на человека.
2. Доход от одного до двух прожиточных минимумов на человека.
3. Доход более двух прожиточных минимумов, но менее десяти
прожиточных минимумов на человека.
4. Доход более десяти прожиточных минимумов на человека.
Расходы домашних хозяйств можно разделить на расходы, связанные с
потреблением и накоплением.
Расходы на потребление:
1. Налоги и обязательные сборы с физических лиц.
2. Коммунальные и другие ежемесячные платежи населения.
3. Текущие расходы на потребление, т.е. расходы на товары, используемые
в течение относительно непродолжительного периода времени (расходы на
продукты питания, на одежду и обувь, на периодически потребляемые услуги).
4. Капитальные расходы на потребление непродовольственных товаров,
используемых в течение достаточно длительного промежутка времени.
10
5. Капитальные расходы, связанные с вложением денег для получения
(увеличения) дохода домашнего хозяйства в будущем.
Значение денежных накоплений и сбережений важно не только для
домашнего хозяйства. Сбережения домашних хозяйств – важный ресурс для
развития экономики.
Целевое назначение денежных накоплений может быть различным:
1. Создание страхового резерва.
2. Накопление
денежных
средств
для
приобретения
предметов
длительного пользования.
3. Долгосрочное накопительное страхование жизни.
4. Создание
денежного
фонда
для
инвестирования
в
различные
финансовые активы.
Банки могут выдавать кредиты членам домохозяйств. По данным Фонда
общественного мнения, у 29% граждан России имеется кредит в банке. 71%
опрошенных считают, что сейчас не самое подходящее время для оформления
новых займов. Чаще всего (20%), россияне оформляют кредиты наличными прямо
в магазинах (на бытовую технику и проч. товары) [3].
Портрет
среднестатистического
заемщика,
по
данным
фонда
«Общественное мнение», такой – это работающий гражданин крупных городов,
численностью населения от 250 тыс. до 1 млн. Как правило, заемщики - люди с
высшим образованием (34%), доходом от 30 000 рублей и более. 45% заемщиков
имеют возраст от 31 до 45 лет [3].
Кредит есть у 27% россиян, у большинства этот кредит – единственный. С
сентября 2013 г. заметно выросла средняя сумма выплат по кредитам. Также сильно
выросла доля тех, кто допускает высокую вероятность не вернуть долг.
Одновременно несколько увеличилось и число заемщиков, полностью уверенных
в свой платежеспособности. Большинство россиян убеждены, что не возвращать
кредит недопустимо ни при каких обстоятельствах. Но среди тех, кто не уверен,
что сможет вернуть кредит, таких значительно меньше [4].
11
Около 20% россиян имеют только один кредит, 6% опрошенных ответили,
что имеют два займа. Самый популярный вид займов - потребительский кредит в
магазине (13%), на втором месте - кредиты на неотложные нужды: медицина,
ремонт, свадьба и т.д. (10%). Ипотека имеется у 3% опрошенных россиян [4].
Так же домохозяйства могут оформить депозитный счет. Он позволяет
организованно хранить денежные средства. При этом он открывается на
фиксированный
период
времени
и
предназначается
для
извлечения
дополнительной прибыли.
Депозитный счет подразумевает начисление определенных процентов.
Здесь кроется выгода для клиента. Процент, выплачиваемый по депозитным
счетам, зависит от текущей ставки процента и срока заблаговременного
уведомления банка о намерении изъять деньги, однако он всегда выше процента,
выплачиваемого по текущему счету.
1.2 Постановка задачи
Для
исследования
динамики
потребительского
поведения
членов
домохозяйств, их накоплений и сбережений следует использовать именно агентное
моделирование.
Модуль, разрабатываемый в рамках исследования поведения агентовдомохозяйств,
в
будущем
будет
интегрирован
в
большую
модель
экспериментальной экономики. Пользователями данного модуля, как и всей
модели в целом, будут научные работники, которые специализируются в этой
области, студенты-экономисты, преподаватели, которые связаны с исследованием
вопросов экономического развития.
Модель
экспериментальной
междисциплинарного
исследования,
экономики
она
не
является
только
сочетает
результатом
различные
направления имитационного моделирования, но также использует элементы
искусственного интеллекта, когнитивной психологии, различных направлений
экономики и социологии.
12
Разработанная
модель
включает
ряд
взаимосвязанных
модулей,
отражающих различные стороны функционирования искусственного общества:
«Демография»,
«Образование»,
«Трудоустройство»,
«Производство»,
«Потребление», «Финансовая система» и «Государственное управление». Каждому
модулю соответствует набор информационных объектов и событий, изменяющих
их состояние. Действующими субъектами в модели, которые могут принимать
решения и изменять свое поведение, являются агенты, домашние хозяйства,
юридические лица и государство. Действующие субъекты могут выступать в
разных ролях и иметь взаимосвязи с объектами различных модулей [5].
Модуль, разрабатываемый для данной модели, входит в модуль
«Потребление», который выделен на рисунке 1.
Рисунок 1 – Модульная структура модели экспериментальной экономики
В данном модуле домохозяйство играет роль потребителя. Именно во время
потребления происходит анализ спроса, что и даст выяснить динамику
потребительского поведения.
Агент каждого вида должен принимать некоторые решения в процессе
функционирования модели. Для индивидуальных агентов и домашних хозяйств это
вопросы выбора стратегии накопления и потребления.
13
Результатом работы модели будут являться графики. Например, в модели
будут формироваться графики доходов и расходов домохозяйств.
Моделирование является неотъемлемой частью больших проектов по
разработке программного обеспечения, и полезным средством к использованию
даже небольшими проектами. Используя моделирование можно гарантировать
проекту успех. Можно быть уверенными, что функционал в полной и правильной
мере отвечает потребности пользователя, отвечает требованиям надежности,
безопасности и остальным характеристикам.
Опросы показывают, что у многих проектов огромная вероятность провала
– это, главным образом, показывает то, большинство разработчиков программного
обеспечения не может выявить и реализовать все требования. Для этого было
создан UML (Unified Modeling Language) – это язык графического описания для
объектного моделирования в области разработки программного обеспечения,
моделирования бизнес-процессов, системного проектирования и отображения
организационных структур [6].
В UML используется набор графических нотаций – диаграмм. Одной из них
является диаграмма прецедентов. Она отражает отношения между актерами и
прецедентами и является составной частью модели прецедентов, позволяющей
описать систему на концептуальном уровне. Актер обозначает набор ролей
пользователя (понимается в широком смысле: человек, внешняя сущность, класс,
другая система). Прецедент - это последовательность выполняемых системой
действия (могут включать возможные варианты), приводящих к наблюдаемым
актерами результатам. В диаграмме прецедентов для системы динамики
потребительского поведения выделим двух фигурантов – «Пользователь» и
«Система». Для «Пользователя» доступны такие варианты использования как
инициализация параметров модели, запуск и остановка модели, построение
графиков. Фигурант «Система» представлен для того, чтобы отобразить базовые
возможности модели: инициализация модели, запуск и останова модели,
управление средой моделирования, управление графиками. Диаграмма вариантов
использования модели представлена на рисунке 2.
14
14
Рисунок 2 – Диаграмма прецедент
15
1.3 Описание прототипа разрабатываемой системы
Основным рассматриваемым прототипом является агентная модель
экспериментальной экономики (АМЭЭ).
На основании данной модели
разрабатывается отдельный модуль, который используется для исследования
динамики потребительского поведения, сбережений и накоплений. Рассмотрим
подробнее прототип.
Агентная
модель
экспериментальной
междисциплинарного исследования,
экономики
–
это
который сочетает в себе
результат
различные
направления имитационного моделирования, использует элементы различных
направлений социологии и экономики, искусственного интеллекта, а также
когнитивной психологии [7].
Основой является концепция накопителей и потоков системной динамики,
где накопители - это бюджеты государства, юридических лиц и домашних
хозяйств. Динамика накопителей отражается в соответствии с принятой в России
системе бухгалтерского учета. Идея дискретного времени и событий используются
для изменения состояния системы. Главной подразумевается идея агента, и причем,
агентами являются не только отдельные индивиды и домашние хозяйства, но и
юридические
лица.
Агенты используют материалы
в области создания
интеллектуальных агентов и когнитивной психологии, для того, чтобы отразить
процедуры принятия решений. Эта комбинация позволяет получить простую
вычислимую архитектуру агента, ориентированную на решение социальноэкономических задач, в то время как мульти-агентные системы искусственного
интеллекта сосредоточены на инженерно-технических задачах [8].
Теория принятия решений привносит большой вклад в исследование. Чтобы
прогноз представлялся значительно естественным, в модели изображаются близкие
к действительности решения экономических агентов, вместо идеальных.
Отражение пола, возраста и классовой структуры населения производится при
помощи использования данных социологических исследований. В качестве основы
модели выступают экономические структуры. Для их формализации применяются
16
сведения из области бухгалтерского учета и финансов, отраслевой экономики. На
рисунке 3 представлена структура модели.
Рисунок 3 – Структура модели
На нижней ступени расположены агенты и домохозяйства, в составе
которых они находятся. Домашнее хозяйство выступает потребителем конечной
продукции и услуг, так как за счет его работоспособных агентов обеспечиваются
все остальные члены домохозяйства. Таким образом, заработная плата и трансферы
переводятся в бюджет домашних хозяйств, и они оплачивают товары и услуги для
всех членов домашних хозяйств. Домашнее хозяйство также чаще всего является
заемщиком, особенно в случае долгосрочных ипотечных кредитов. В том случае,
если они оформлены на одного человека, то он должен иметь поручителей, а оплата
кредита осуществляется из общего бюджета домашнего хозяйства [5].
Финансовый сектор рассматривается как процесс привлечения денежных
средств, выпущенных государством, депозитов физических и юридических лиц и
размещения их в виде кредитов. Основными финансовыми потоками будут:
1. Кредитно-депозитные потоки между финансовым сектором, реальным
сектором и домашними хозяйствами.
17
2. Зарплата и прибыль от организаций индивидам и обратный поток
оплаты товаров и услуг.
3. Оплата межотраслевых поставок организаций, закупки импортной
продукции и получение оплаты за экспортируемую.
Государство является, с одной стороны, сборщиком налогов и эмитентом
денежной массы, с другой – предоставляет трансферы населению и субсидии как
реальному, так и финансовому сектору, а также наряду с юридическими лицами
участвует в международном обмене капиталом [9].
Поскольку модель является достаточно сложной, ее реализации была
осуществлена как модульная структура.
1.4 Формулирование требований
Для
более
полного
понимания
моделируемой
системы
следует
сформулировать требования.
К пользовательским требованиям можно отнести то, что пользователи
программного обеспечения должны владеть базовыми навыками работы с любой
из версий операционной системы Microsoft Windows (Windows XP, Vista, Windows
7, Windows 8/8.1, Windows 10). Техническое обслуживание и администрирование
оборудования программного обеспечения должно выполняться специалистами,
имеющими соответствующую квалификацию и навыки выполнения работ.
Пользователями программного обеспечения могут быть: научные работники,
которые специализируются в этой области, студенты - экономисты, преподаватели,
которые связаны с исследованием вопросов финансового рынка. Пользователь
программного обеспечения может выполнять следующие операции:
1. Создавать модель.
2. Изменять параметры моделирования системы.
3. Просматривать информацию о домохозяйствах.
4. Проверять данные об агентах.
5. Отслеживать информацию о доходах и расходах домашнего хозяйства.
6. Узнавать данные о взятых кредитах и открытых депозитных счетах.
18
7. Выводить информацию на графике, показывающем соотношение
доходов и расходов домохозяйств.
8. Завершить работу.
К функциональным требованиям к системе следует отнести:
1. Генерация агентов. Система должна генерировать агентов различного
пола, возраста, социальной группы, имеющие разные доходы и расходы.
2. Формирование
домохозяйств.
Система
должна
генерировать
из
созданных агентов домашние хозяйства, которые могут иметь различный состав. А
также система должна формировать бюджет домохозяйства в зависимости от всех
доходов и расходов ее членов.
3. Выдача информации о домохозяйствах. Система должна после
формирования всех домохозяйств выдавать информацию о составе домохозяйства.
4. Управление процессом потребления. Система должна генерировать
процесс потребления домашних хозяйств, то есть система формирует группы
потребления, на которые расходуют свои финансы агенты домашних хозяйств.
5. Выдача
информации
о
кредитах.
Система
должна
содержать
информацию о кредите, которое берет домашнее хозяйство.
6. Выдача информации о депозитах. Система должна хранить информацию
об открытых депозитных счетах.
7. Формирование графика доходов и расходов. Система должна строить
график доходов и расходов по каждому из регионов и по всем домохозяйствам в
целом.
8. Формирование графика спроса. Система должна строить график спроса
каждого отдельного домашнего хозяйства.
К нефункциональным требованиям к системе можно отнести нижестоящие
требования:
1. Удобство. Способность продукта быть понимаемым, изучаемым,
используемым и привлекательным для пользователя в заданных условиях, то
есть система должна быть проста в использовании, понятна и привлекательна
для пользователя, чтобы он мог достигать с ее помощью поставленных целей.
19
2. Надежность.
Способность
системы
сохранять
значения
всех
параметров, которые характеризуют умение осуществлять требуемые функции
в поставленных условиях. Это означает, что система должна быть устойчива к
возможным ошибкам, то есть она должна быть работоспособной на протяжение
всего промежутка времени, в котором работает система.
3. Защищенность.
Способность
системы
выдерживать
и
противодействовать неразрешенному доступу к закрытой информации, ее
изменению или удалению. Система должна исключать разрушение работы,
влекущее нарушение целостности системы лицами, не имеющими права на
использование данной системы.
4. Поддерживаемость.
После
старта
эксплуатации
системы,
разработчики должны поддерживать и сопровождать эту систему, а также
производить ее улучшение, оптимизация. В случае возникновения каких-то
неполадок, нарушений в работе системы они должны быть устранены
разработчиками.
5. Мобильность. Система должна иметь возможность функционировать
на различных устройствах.
20
2 ПРОЕКТИРОВАНИЕ СИСТЕМЫ ДИНАМИКИ
ПОТРЕБИТЕЛЬСКОГО ПОВЕДЕНИЯ, НАКОПЛЕНИЙ И
СБЕРЕЖЕНИЙ НАСЕЛЕНИЯ
2.1 Моделирование процессов предметной области
В
качестве
основных
объектов
моделируемой
среды
выделяются
следующие: домохозяйство, агент, регион, торговый агент, покупка, банк, кредит,
депозит, группа потребления, потребление.
Приступим к подробному рассмотрению каждого объекта.
Домохозяйство - совокупность агентов, живущих вместе, в одном регионе,
которые приносят доход в бюджет домохозяйства, а также расходующих этот
бюджет. Параметрами домохозяйства являются:
1. Идентификатор.
2. Количество членов.
3. Доход.
4. Идентификатор
региона
–
показывает
связь
домохозяйства
с
определенным регионом.
Агент представляется как человек, то есть член домохозяйства. К
параметрам агента относятся:
1. Идентификатор.
2. Пол.
3. Возраст.
4. Идентификатор домохозяйства связывает агента с домохозяйством.
Для представления объектов и зависимостей между ними была выбрана
диаграмма классов, представленная на рисунке 4.
21
21
Рисунок 4 – Диаграмма классов
22
Регион будет определять местоположение домохозяйства. Главными
регионами выбираются Москва и Санкт-Петербург. Параметры:
1. Идентификатор.
2. Название.
Банк – кредитное учреждение, осуществляющее банковские операции для
домохозяйств. Банковскими операциями будут являться взятие ипотечного
кредита, взятие потребительского кредита и открытие депозитного счета.
Параметры банка:
1. Идентификатор.
2. Название.
Кредит – это общественные отношения, устанавливаемые между кредитной
организацией и заемщиком по поводу передачи денежных средств от кредитора
заемщику в виде ссуды на определенных условиях. Параметры:
1. Идентификатор.
2. Вид.
3. Цена.
4. Идентификатор домохозяйства, показывающий какой кредит берет
домохозяйство и какую сумму выплачивает на погашение кредита ежемесячно.
5. Идентификатор банка – показывает в каком банке был взят кредит.
Депозит
–
это
некоторая
денежная
сумма,
которая
помещается
домохозяйством в банк на некоторый срок. А банк, в свою очередь, выпускает
данные средства в оборот, а вкладчику выплачивает проценты. Параметрами
являются:
1. Идентификатор.
2. Сумма.
3. Идентификатор домохозяйства – показывает то, какой депозитный счет
был открыт домохозяйством и с каким процентом.
4. Идентификатор банка – показывает в каком банке был открыт
депозитный счет.
23
Торговый агент – это посредник между производителем и потребителем
продукции, не являющийся владельцем товара и продающий товары одного или
несколько предприятий по договору. Параметры следующие:
Идентификатор.
Покупка – это приобретение домохозяйством некоторых товаров.
Параметры:
1. Идентификатор.
2. Количество покупаемого товара.
3. Идентификатор агента – связь с тем, кто совершает покупку, являясь
членом домохозяйства.
4. Идентификатор торгового агента показывает того, кто продает товар.
Группа потребления – это товары общего потребления. В данной модели
будем рассматривать основные группы: продукты питания, одежда, коммунальные
услуги. Параметры:
1. Идентификатор.
2. Название.
3. Цена.
Потребление – это показатель, дающий понять какое домохозяйство
сколько потребляет, причем указывающий на отдельные группы товаров.
Параметры:
1. Идентификатор.
2. Расход.
3. Идентификатор
домашнего
хозяйства
–
показывает
то,
какое
домохозяйство сколько потребляет.
4. Идентификатор групп потребления указывает на связь потребления с
группами, которых потребляют домохозяйства.
2.2 Проектирование логики диалога с пользователем
Для удобства использования системы необходимо разработать логику
диалога с пользователем.
24
Для того, чтобы начать работу с системой необходимо создать модель.
Далее необходимо нажать кнопку «Следующий месяц» для того, чтобы
смоделировать новый месяц. Эту операцию можно проделать множество раз. Из
каждого состояния можно выйти из системы. Логика диалога с пользователем в
момент начала работы системы изображена на рисунке 5.
Рисунок 5 – Логика диалога с пользователем в начале работы с системой
После осуществления моделирования нужного количества
месяцев
возможно построить график зависимости доходов и расходов домохозяйств. Для
этого необходимо нажать на кнопку «График доход/расход» и в этот момент
система построит график, и выведет его на экран. Нажав на кнопку «Скрыть
график» график будет скрыт. Находясь в любом состоянии можно выйти из
системы. Логика диалога с пользователем при построении графика зависимости
доходов и расходов домохозяйств изображена на рисунке 6.
Рисунок 6 – Логика диалога с пользователем при построении графика
доход/расход
25
2.3 Последовательность действий
Разрабатываемая модель реализует дискретно-событийный подход.
В дискретно-событийном моделировании функционирование системы
представляется как хронологическая последовательность событий. Событие
происходит в определенный момент времени и знаменует собой изменение
состояния системы.
Модельное время максимально приближено к реальным условиям – в
качестве временных единиц выделены месяц, год. Месяц соответствует 30 тактам
модельного времени.
Рассмотрим подробно все имеющиеся операции:
1. Объект «Домохозяйство» является основным объектом всей модели, так
как домохозяйство получает доходы, открывает депозиты, берет кредиты, покупает
товары и оплачивает ЖКХ.
2. Объект «Банк» – это коммерческая организация, которая может
предоставить
денежные
средства
в
виде
кредита
ипотечного
либо
потребительского домохозяйству, а также хранит депозиты домашних хозяйств.
3. Объект «Государство» обозначается как налоговый сборщик, а также
этот объект предоставляет жилищно-коммунальные услуги в пользование
домашними хозяйствами.
4. Объект «Торговый агент» представляется как продавец каких-либо
товаров, которые он сбывает во время сделки купли/продажи с домохозяйством, а
точнее с агентами (членами) домохозяйства.
На рисунке 7 изображена диаграмма последовательности всех операций.
26
26
Рисунок 7 – Диаграмма последовательности
27
2.4 Расчет кредита и депозита
Рассмотрим, как рассчитывается кредит, который берет домохозяйство.
Каждый кредит имеет тело и процентную ставку. Телом кредита является та
сумма, которую домохозяйство берет в кредит у банка. Процентная ставка
определяется в зависимости от конкретных условий использования ссудных
капиталов, а также является объектом кредитного и денежного регулирования со
стороны Центробанка.
Кроме того, существует несколько способов погашения кредитов. Первый
способ – классический, который предусматривает выплату части тела кредита, а
также процентной ставки и комиссии. Второй способ – выплата кредита равными
частями, то есть устанавливается сумма минимального платежа, которая является
фиксируемой.
Для расчета выплаты кредита можно использовать формулу 1:
 =  ∙ (1 +
где S –
 ∙
),

(1)
итоговая сумма, руб;
α–
начальная стоимость кредита, руб;
t–
срок кредита, дней;
p–
годовая процентная ставка, %;
m–
количество дней в году.
В случае открытия депозита нужно выбрать какой именно будет депозит: до
востребования либо срочный. Депозит до востребования не имеет временных
рамок и домохозяйство имеет право закрыть депозит в любое время. Ставка же
является самой минимальной, какая может быть. В случае срочных депозитов
сумма депонирования вносится на определенный период, который выберет
домохозяйство: краткосрочный (от одного месяца до одного года), среднесрочный
(от одного года до трех лет) либо долгосрочный (больше трех лет). Процент
является более высоким, нежели в депозите до востребования и в случае закрытия
депозита до окончания срока проценты не сохраняются.
Для расчета процента по депозиту следует пользоваться формулой 2:
28
=
где P –
∙∙
,
 ∙ 100
(2)
процент, %;
S–
первоначальная сумма вклада, руб;
i–
процентная ставка, %;
n–
срок вклада в днях;
m–
количество дней в году.
2.5 Алгоритмическая реализация
Теперь следует рассмотреть подробнее алгоритмы работы системы:
1. Генерация агентов.
Данный алгоритм генерирует агентов. Происходит автоматическая
генерация агентов разного пола, возраста, а также доходов и расходов на каждого
человека. Здесь предусматривается, что дети до восемнадцати лет не имеют
собственного дохода. А люди старше шестидесяти пяти лет являются
пенсионерами и получают пенсию. Данный алгоритм представлен ниже.
Объявляем переменные, обозначающие пол, возраст, доходы и расходы
агента:
public int sex; // 1-man, 0-woman
public int adge;//возраст
public double income;//доход
public double spending;//расход на человека
Генерируем агента:
Random rnd = new Random();
this.sex = s;
this.adge = ad;
Осуществляем проверку возраста. Если возраст меньше восемнадцати лет,
то агент является ребенком, следовательно, доход будет равен нулю:
if (ad < 18) //если ребенок
{
29
this.income = 0;
this.spending = rnd.Next(2, 10);
}
Далее
проходит
проверка
для
определения
агента,
являющегося
пенсионером. Таким будет агент, возраст которого превышает значение 65,
следовательно, агент-пенсионер будет получать в качестве дохода пенсию:
if (ad > 65) //пенсионер
{
this.income = rnd.Next(4, 18);
this.spending = rnd.Next(1, 6);
}
В любых других случаях расходы и доходы будут генерироваться случайно
в выделенных пределах:
this.income = 5 + rnd.Next(4, 120);
this.spending = rnd.Next(2, 10).
2. Генерация домохозяйств.
Данный алгоритм производит генерацию домашних хозяйств. Выделенные
в предметной области домашние хозяйства будут сгенерированы по количеству
членов в домашнем хозяйстве, а также составу.
В случае одиночного домохозяйства, член которой женщина, алгоритм
генерации будет выглядеть следующим образом:
family[0] = new human(0, rnd.Next(18, 80));
this.sum_inc += family[0].income;
this.sum_spending += family[0].spending;
break;
Для генерации одиночного мужского домашнего хозяйства получится
следующий алгоритм:
family[0] = new human(1, rnd.Next(18, 70));
this.sum_inc += family[0].income;
this.sum_spending += family[0].spending;
30
break;
В случае женатой пары без детей, а также одиноких пар с одним ребенком
алгоритм будет выглядеть таким образом:
Array.Resize(ref family, 2);
family[0] = new human(0, rnd.Next(18, 70));
family[1] = new human(1, rnd.Next(18, 70));
this.sum_inc += family[0].income;
this.sum_spending += family[0].spending;
this.sum_inc += family[1].income;
this.sum_spending += family[1].spending;
break;
Для иных случае, то есть для семейной пары с детьми и расширенной семьи,
включающей родителя или родителей одного из супругов семейной пары либо
родителей обоих супругов, алгоритм будет преобразован таким образом:
int col_child = rnd.Next(1, 5);
int col_old = rnd.Next(0,2);
Array.Resize(ref family, 2 + col_child+col_old);
family[0] = new human(0, rnd.Next(18, 55));
family[1] = new human(1, rnd.Next(18, 65));
this.sum_inc += family[0].income;
this.sum_spending += family[0].spending;
this.sum_inc += family[1].income;
this.sum_spending += family[1].spending;
for (int i = 2; i < 2+col_child; i++)
{
family[i] = new human(rnd.Next(0, 1), rnd.Next(1, 18));
this.sum_inc += family[i].income;
this.sum_spending += family[i].spending;
}
for (int i = 2 + col_child; i < 2 + col_child+col_old; i++)
31
{
family[i] = new human(rnd.Next(0, 1), rnd.Next(55, 100));
this.sum_inc += family[i].income;
this.sum_spending += family[i].spending;
}
break;
3. Алгоритм выдачи кредитов.
Данный алгоритм показывает, как происходит выдача кредитов домашнему
хозяйству.
Полный алгоритм выглядит следующим образом:
public void get_credit( int c_type)
{
Random rnd = new Random();
if ((this.sum_inc > 30) && (this.credit<=0))
{
if (c_type == 1)
{
this.credit = this.sum_inc * rnd.Next(50, 200) / 100;
this.p_credit = this.credit * 3 / 100;
this.c_cred = 3;
}
else
{
this.credit = this.sum_inc * rnd.Next(100, 800) / 100;
this.p_credit = this.credit/ 100;
this.c_cred = 24;
}
}
}
32
Здесь происходит взаимодействие домашнего хозяйства и банка, которое
можно увидеть на рисунке 8.
Рисунок 8 – Схема алгоритма выдачи кредита
4. Алгоритм открытия и закрытия депозита.
Данный алгоритм показывает, как происходит открытие депозитного счета
домашним хозяйством и его закрытие. Здесь также происходит взаимодействие
домашнего хозяйства и банка, которое можно увидеть на рисунке 9.
33
Рисунок 9 – Схема алгоритма открытия и закрытия депозитного счета
Основная процедура депонирования выглядит следующим образом:
public void pop_deposit()
{
Random rnd = new Random();
if (this.ballance > 0)
34
{
this.deposit = ballance * rnd.Next(20, 80) / 100;
this.c_dep = 6;
this.ballance -= this.deposit;
}
}
35
3 РЕАЛИЗАЦИЯ СИСТЕМЫ ДИНАМИКИ ПОТРЕБИТЕЛЬСКОГО
ПОВЕДЕНИЯ, НАКОПЛЕНИЙ И СБЕРЕЖЕНИЙ НАСЕЛЕНИЯ
3.1 Обзор программных средств для реализации
Для программной реализации мульти-агентных систем в настоящее время
используются специализированные программные системы, содержащие набор
средств как для программного описания деятельности агентов и состояния среды,
так и для контроля и управления процессом их взаимодействия и работы. Такие
системы называются агентными платформами.
Существует множество готовых программных продуктов и реализаций. К
ним,
например,
относят
как
инструменты
для
организации
агентного
моделирования такие как «Swarm», «NetLogo», «RePast», «Mason», «AnyLogic», так
и средства создания мультиагентных систем «Jade», «MACE3J», а также «Microsoft
Visual Studio». Каждая из этих платформ выполнена по-разному: от отдельных сред
разработки до встраиваемых плагинов и подключаемых библиотек. Они могут
использовать как уже существующие языки различных моделей, так и языки,
специально разработанные для построения программных агентов.
Для выбора программного средства для реализации информационной
системы рассмотрим несколько программных продуктов и реализаций.
1. «Swarm» – это универсальный пакет для моделирования параллельно
распределенного искусственного мира. Главная часть «Swarm» – это множество
библиотек, располагающихся в исходной директории.
«Swarm»
является
системой,
которая
позволяет
пользователям
разрабатывать модели, включая множество агентов, взаимодействующих друг с
другом в пределах некоторой среды. Цель «Swarm» состоит в том, чтобы
уменьшить работу исследователя для построения и имитации искусственного мира
и обеспечить стандартизированными
инструментальными средствами для
управления и анализа результатов моделирования. Ядро «Swarm» является
объектно-ориентированным каркасом для определения поведения агентов и других
объектов, которые взаимодействуют в системе [10]. Моделируя процессы, которые
36
происходят через множество параллельно взаимодействующих агентов в «Swarm»,
исследователь, таким образом, моделирует параллельные процессы, которые
происходят в некотором реальном или искусственном мире. Агенты связываются
друг с другом и со средой посредством сообщения. «Swarm» содержит системную
библиотеку, которая управляет динамическим списком объектов и оперирует
сообщениями, проходящими между объектами. Каждый объект содержит
некоторые локальные данные, а также спецификацию для них, чтобы среагировать
на сообщения, которые посланы ему. «Swarm» также обеспечивает интерфейс
пользователя и инструментальные средства анализа. Основное предположение в
пределах данного прототипа «Swarm» понятие времени. Текущая система
использует дискретное время, планируя алгоритм всякий раз, когда каждый объект
принимает сообщение «шаг», направляющие агента выполнить некоторое
действие.
2. «NetLogo» – это программируемая окружающая среда моделирования
для того, чтобы моделировать естественные и социальные явления. Она была
создана Юрием Виленским в 1999 и находится в непрерывном развитии в Центре
Связанного Изучения и Машинного Моделирования [11]. «NetLogo» особенно
хорошо
используют для
того,
чтобы смоделировать сложные
системы,
развивающиеся в течение долгого времени. Разработчики моделей могут дать
инструкции сотням или тысячам "агентов", которые будут действовать независимо
друг от друга. Это позволяет исследовать связь между поведением на микроуровне
людей и примером поведения на макроуровне, которые появляются из
взаимодействия многих людей.
«NetLogo» дает студентам открытые модели и "игры" на их основе, где
можно исследовать поведение этих моделей при различных условиях. Также
«NetLogo» – это моделирующая окружающая среда, которая позволяет студентам,
учителям и разработчикам учебного плана создать свои собственные модели.
«NetLogo» достаточно прост, поэтому студенты и учителя могут легко управлять
моделированием или даже построить свои собственные модели. Эта среда
37
продвинулась достаточно далеко, чтобы стать сильным инструментом для
исследователей во многих областях [11].
У «NetLogo» есть обширная документация и обучающие программы. Она
также идет с Библиотекой Моделей, которая является большой коллекцией
письменных моделей, которые могут использоваться и изменяться. Эти модели
обращаются ко многим довольно нужным областям в естественных науках и
общественных науках, включая биологию и медицину, физику и химию,
математику и информатику, а также экономику и социальную психологию.
Несколько моделей учебных планов, использующих среду «NetLogo» в настоящее
время находятся под развитием.
«NetLogo» также использует инструмент участник-моделирования в
действие «HubNet». С помощью сетевых компьютеров или переносных устройств,
изображающие калькуляторы в виде графика, каждый студент может управлять
агентом в моделировании.
«NetLogo»
использует
следующее
поколение
мультиагентов,
моделирующих языки, которые использовались в «StarLogo». Она, в зависимости
от функциональных возможностей нашего продукта «StarLogoT», строит и
добавляет существенно новые особенности, такие как перепроектированный язык
и пользовательский интерфейс. «NetLogo» написан на Java, таким образом его
можно применять на всех главных платформах (Mac, Windows, Linux, и др.).
«NetLogo» управляют как автономное приложение. Моделями можно управлять
как Java-апплетами в web-браузере [11].
3. «RePast» (Recursive Porous Agent Simulation Toolkit) – это одно из
нескольких
средств.
доступных
Программный
на
сегодняшний
комплекс
«RePast»
день
перенял
инструментальных
много
идей
от
инструментального средства «Swarm» («Swarm» – это инструментальное средство
моделирования на основе агентов). Платформа «RePast» имеет различные
реализации на нескольких языках программирования и содержит встроенные
адаптивные средства, такие как генетические алгоритмы и регрессии [12].
38
Программа «RePast» – это бесплатное инструментальное средство с
открытым исходным кодом. Она поддерживает разработку чрезвычайно гибких
моделей жизни социальных агентов, но не ограничивается только социальными
сущностями.
Всего существует три реализации инструментария «RePast»: для языка Java
(«RePast J»), для платформы Microsoft.NET («Repast.NET») и «RePast» для языка
скриптов Python («RePast Py») [12].
Платформа «RePast» содержит множество различных функций, в том числе
множество шаблонов агентов с примерами. Тем не менее, это инструментальное
средство предоставляет пользователям большую гибкость в определении свойств и
поведения агентов.
«RePast» является полностью объектно-ориентированной. Она также
содержит довольно качественный планировщик дискретных событий, который
поддерживает и последовательные, и параллельные операции с дискретными
событиями.
Платформа «RePast» предлагает встроенные средства записи результатов
симуляции и графические инструментальные средства.
«RePast» содержит базу для автоматического моделирования методов
Монте Карло, может предоставить ряд двумерных сред и визуализаций, позволяет
пользователям динамически просматривать и изменять свойства агентов,
бехевиоральные уравнения агентов и модель свойств в оперативном режиме. Она
содержит библиотеки генетических алгоритмов, нейронных сетей, генерации
случайных чисел и специализированных математических выражений, а еще
встроенные средства моделирования динамики систем.
Платформа «RePast» имеет инструменты для моделирования социальных
сетей,
поддерживает
интеграцию
с
географическими
информационными
системами (ГИС). А также поддерживает работу с операционными системами,
такими как Windows, Mac OS, Linux. Она может работать как на персональных
компьютерах, так и на масштабных научных вычислительных кластерах
39
Появившееся позже инструментальное средство «RePast Symphony»
(«RePast S»), основанное на «RePast», расширяет возможности платформы
«RePast», предоставляя среду разработки моделей и среду исполнения.
4. «MASON» – это мульти-агентная среда моделирования, представленная
в виде набора библиотек на Java (кроссплатформенность) и поддерживающая
дискретно-ориентированную парадигму моделирования (выпущена под лицензией
Academic Free License, version 3.0). «MASON» включает мощные программные
средства визуализации (2D,3D). В то же время, пользователь имеет возможность не
подключать эти средства. Система «MASON» устойчива к взломам. Однако
«MASON» не поддерживает распределенное моделирование (но в настоящее время
ведутся работы по созданию распределенной версии) и требует серьезных знаний
языка Java, т.е. не является удобным для малоопытного пользователя [13].
5. «AnyLogic» – это инструмент имитационного моделирования новейшего
поколения. Он основан на результатах, полученных в теории моделирования и в
информационных технологиях за последнее десятилетие. Это одна из немногих
российских разработок в области имитационного моделирования получивших
признание за рубежом. «AnyLogic» - первый и единственный инструмент
имитационного моделирования, объединивший методы системной динамики,
"процессного" дискретно-событийного и агентного моделирования в одном языке
и одной среде разработки моделей. Гибкость «AnyLogic» позволяет отражать
динамику сложных и разнородных экономических и социальных систем на любом
желаемом уровне абстракции.
«AnyLogic» включает набор примитивов и библиотечных объектов для
эффективного моделирования производства и логистики, бизнес-процессов и
персонала,
финансов,
потребительского
рынка,
а
также
окружающей
инфраструктуры в их естественном взаимодействии. Объектно-ориентированный
подход, предлагаемый «AnyLogic», облегчает итеративное поэтапное построение
больших моделей. В редакторе «AnyLogic» Вы можете разработать анимацию и
интерактивный графический интерфейс модели. Редактор поддерживает большой
40
набор фигур, элементов управления, импорт растровой графики и векторной
графики [14].
В «AnyLogic» включены средства анализа данных и большой набор
элементов бизнес-графики, спроектированных для эффективной обработки и
презентации результатов моделирования: статистики, наборы данных, графики,
диаграммы, гистограммы. «AnyLogic» поддерживает множество разнообразных
типов экспериментов с моделями: простой прогон, сравнение прогонов,
варьирование параметров, Монте-Карло, анализ чувствительности, оптимизация,
калибровка, а также произвольный эксперимент по пользовательскому сценарию.
Новая Java-версия мощного оптимизатора OptQuest™ встроена в «AnyLogic» [14].
Языком для описания структур данных, действий, правил и алгоритмов в
«AnyLogic» является Java. При необходимости Вы можете расширить и
доопределить функциональность любых примитивов «AnyLogic», добавив в них
фрагменты Java-кода. Java делает модели, разработанные на «AnyLogic»,
кроссплатформенными, а также позволяет публиковать их на сайтах в виде
апплетов. При просмотре такого апплета удалённым пользователем модель сама
загрузится к нему на компьютер и будет выполняться там внутри браузера - без
необходимости инсталлировать там какое-либо ПО. Некоторые апплеты Вы
можете посмотреть в разделе Примеры моделей. Открытость моделей на уровне
Java позволяет легко интегрировать их с внешними Java и врожденными
приложениями.
Модели «AnyLogic» работают в составе комплексных систем поддержки
принятия решений (СППР) на многих предприятиях.
6. «JADE» (Java Agent Development Framework) – это программная среда
разработки мультиагентных систем и приложений, поддерживающая FIPAстандарты для интеллектуальных агентов.
Программная среда «JADE» подключается к любому проекту на языке Java.
«JADE» – это программное обеспечение промежуточного слоя, разработанное
компанией
TILAB,
предназначенное
для
создания
распределенных
мультиагентных приложений на основе транспортной архитектуры «точка-точка».
41
И интеллект, и инициатива, и информация, и ресурсы, и контроль могут быть
полностью распределены по мобильным терминалам также, как и по компьютерам
выделенной сети. Среда может динамично взаимодействовать с узлами, которые в
терминологии «JADE» называются агентами. Агенты то появляются, то исчезают
в системе в соответствии с потребностями и требованиями программной среды
[15].
Коммуникации между узлами не зависят от типа сети (проводная,
беспроводная). Они являются полностью симметричными, и каждый узел может,
как инициировать запросы, так и отвечать на них.
7. «MACE3J» – это быстрое гибкое распределенное моделирование
больших, крупнозернистых мультиагентных систем. Научное исследование
мультиагентных систем требует такой инфраструктуры, как разработка тестовых
стендов и инструментов моделирования для повторяемых, контролируемых
экспериментов со структурой и поведением мультиагентных систем. Системы
отладки и моделирования также являются важными для мультиагентных систем
образования и развития.
В настоящее время существует ряд тестовых стендов мультиагентных
систем, но на сегодняшний день ни один из них не отвечает всеобъемлющим
критериям,
изложенным
многими
аналитиками
для
общего,
научного,
экспериментального изучения мультиагентных систем. Кроме того, ни один из них
не масштабируется до очень больших мультиагентных систем или не использует
мощь современных распределенных вычислительных сред, таких как большие
многопроцессорные кластеры и вычислительные сети. Поэтому была создана
система «MACE3J».
«MACE3J» – это Java-моделирование мультиагентных систем, интеграция
и тестирование разработки с поддержкой библиотеки компонентов, примеров и
документации. «MACE3J» в настоящее время работает на однопроцессорных и
многопроцессорных рабочих станциях, а также в больших многопроцессорных
кластерных средах. Конструкция «MACE3J» направляет внимание на создании
очень
большой
системы
агентов.
Он
обладает
значительной
степенью
42
масштабируемости, и эффективно используется в быстром моделировании более
5000 агентов, 10000 задач, и на многопроцессорных конфигурациях до 48
процессоров [16].
8. «Microsoft
Visual Studio» –
это
Данные
продукты позволяют
разрабатывать как консольные приложения, так и приложения с графическим
интерфейсом, в том числе с поддержкой технологии Windows Forms, а также вебсайты, веб-приложения, веб-службы как в родном, так и в управляемом кодах для
всех платформ, поддерживаемых Windows, Windows Mobile, Windows CE, .NET
Framework, Xbox, Windows Phone .NET Compact Framework и Silverlight [17].
«Visual Studio» включает в себя редактор исходного кода с поддержкой
технологии IntelliSense и возможностью простейшего рефакторинга кода.
Встроенный отладчик может работать как отладчик уровня исходного кода, так и
как отладчик машинного уровня. Остальные встраиваемые инструменты включают
в себя редактор форм для упрощения создания графического интерфейса
приложения, веб-редактор, дизайнер классов и дизайнер схемы базы данных.
«Visual Studio» позволяет создавать и подключать сторонние дополнения для
расширения функциональности практически на каждом уровне, включая
добавление поддержки систем контроля версий исходного кода, добавление новых
наборов инструментов или инструментов для прочих аспектов цикла разработки
программного обеспечения.
Помимо специальных средств разработки, естественно, распространено
использование
объектно-ориентированных
языков
программирования.
Их
использование более сложно, т.к. требуют большего внимания при проектировании
модели в целом и особого внимания при использовании доступных структур
данных, т.к. это напрямую влияет на производительность модели. В настоящее
время наиболее популярными языками при программировании мультиагентных
моделей являются Java, C, C++. Сейчас большое распространение получил язык С#.
Он обладает достаточно простым синтаксисом, большим количеством различных
структур, обширным встроенным функционалом, а также открытыми для
использования компиляторами. Кроме того, язык C# включает в себя LINQ
43
(Language-Integrated Query), представляющий собой простой и удобный язык
запросов к источнику данных. LINQ позволяет работать с массивами, списками и
словарями как с таблицами базы данных используя SQL-подобный язык.
Специальные средства разработки не способны в полном объеме
реализовать возможности разрабатываемой модели, поэтому было решено
использовать язык разработки С#.
3.2 Описание работы информационной системы
После запуска системы отображается стартовая форма, изображенная на
рисунке 10. На ней находится меню с кнопкой «Задать параметры», окно с
информацией о составе домохозяйства, информация о количестве произведенных
итераций, кнопка «Моделировать», при нажатии на которую создается модель.
Далее находится пустая таблица с информацией о домохозяйствах. Под таблицей
есть кнопка «Следующая итерация», которая моделирует в системе следующий
месяц, так как одна итерация в системе – это один месяц. Правее от кнопки
находится раскрывающееся меню, в котором можно выбрать критерий построения
графика относительно региона, в котором находятся домохозяйства, а также кнопка
«График доход/расход», которая строит график с выбранным критерием. И в
правом
нижнем
углу
находится
кнопка
«График
спроса
выбранного
домохозяйства». Выбрав нужное домохозяйство и нажав на эту кнопку строится
график того, как потребляет данное домохозяйство.
44
Рисунок 10 – Стартовая форма
При выборе в меню варианта «Задать параметры» появится окно. В нем
находятся несколько строк с параметрами и их значениями. Это можно увидеть на
рисунке 11. В данном окне можно установить количество моделируемых
домохозяйств, процент взятия ипотечного кредита и потребительского кредита.
Также есть возможность изменить средние значения расходов.
45
Рисунок 11 – Параметры модели
После нажатия кнопки «Моделировать» происходит запуск моделирования.
Моделируются домохозяйства разных типов, живущие в разных регионах и
имеющие различные доходы и расходы.
В данной модели за одну итерацию принято считать один месяц. В
результате проведения нескольких итерация можно наблюдать, что все
домохозяйства потребляют по-разному. Кто-то покупает больше, кто-то меньше,
кто-то берет кредит ипотечный, кто-то потребительский, а кто-то вовсе не берет
кредит. Так же различия имеются и в депозите.
На рисунке 12 можно увидеть результаты итерации одного месяца.
46
Рисунок 12 – Первая итерация
При выборе какого-либо домохозяйства в отдельном окне появится
информация о всех членах домохозяйства, где рассказано какой номинальный
доход у каждого члена домохозяйства, какой расход происходит каждым из агентов
за одну итерацию, а также их возраст и пол. Результат этих действий можно увидеть
на рисунке 13.
47
Рисунок 13 – Информация одного домохозяйства
Каждую итерацию бюджет домохозяйства меняется, так как доходы и
расходы каждый месяц не постоянны. На основании этих показателей
подсчитывается остаток, который также разный на каждой итерации и обозначает
бюджет домохозяйства за определенный месяц. Кроме этого изменяются
показатели кредита и депозита. На рисунке 14 можно увидеть состояние модели
после 12 итераций, то есть спустя год.
48
Рисунок 14 – Итерация №12
В модели имеется возможность построения графика зависимости доходов и
расходов по регионам Москва и Санкт-Петербург, либо отдельно по каждому из
регионов. Для этого необходимо из списка выбрать соответствующую команду и
после нажатия на кнопку «График доход/расход» всплывает окно, которое
оповещает, что график строится по всем домохозяйствам. Так происходит в случае,
если мы не выбрали регион. Это можно увидеть на рисунке 15.
49
Рисунок 15 – Всплывающее окно для построения графика по всем
домохозяйствам
Для продолжения построения графика зависимости доходов и расходов по
регионам Москва и Санкт-Петербург необходимо нажать на кнопку «ОК» в
появившемся сообщении. После этого происходит построение графика по
регионам Москва и Санкт-Петербург. Данный график изображен на рисунке 16.
50
Рисунок 16 – График доход/расход на 12 итерации
После построения графика его можно скрыть по нажатию кнопки «Скрыть
график», которая вернет пользователя к таблице домохозяйств.
Если выбрать при построении графика регион «Москва», то система
выводит на экран сообщение, оповещающее, что график будет построен только по
региону Москва. Данное сообщение системы изображено на рисунке 17.
51
Рисунок 17 – Всплывающее окно для построения графика по региону Москва
Для продолжения построения графика зависимости доходов и расходов по
региону Москва необходимо нажать на кнопку «ОК» в появившемся сообщении.
График, построенный по региону Москва на 12 итерации изображен на рисунке 18.
52
Рисунок 18 – График доход/расход на 12 итерации по региону Москва
После построения графика его можно скрыть по нажатию кнопки «Скрыть
график», которая вернет пользователя к таблице домохозяйств.
Таким же образом можно построить график по региону «Питер». На рисунке
19 можно увидеть всплывающее окно, которое говорит, что график будет построен
по региону Санкт-Петербург.
53
Рисунок 19 – Всплывающее окно для построения графика по региону «Питер»
Для продолжения построения графика зависимости доходов и расходов по
региону Санкт-Петербург необходимо нажать на кнопку «ОК» в появившемся
сообщении. На рисунке 20 изображен график доход/расход по данному региону.
54
Рисунок 20 – График доход/расход на 12 итерации по региону «Питер»
После построения графика его можно скрыть по нажатию кнопки «Скрыть
график», которая вернет пользователя к таблице домохозяйств.
Исходя из результатов построения графиков можно сказать, что в данной
модели с экспериментальными данными, расход постоянно колеблется, то есть на
каждой итерации он меняется и график является сильно скачущим. Что же касается
дохода, то доход в большинстве случаев он находится в одном диапазоне и не имеет
резких скачков и провалов.
Если сравнивать графики по разным регионам, то можно увидеть, что спустя
месяц моделирования на графике «Москва» расходы не превысили доходы, а на
55
графике «Питер», начиная с середины девятого месяца и до середины десятого
месяца, расход превышает доходы домохозяйств.
Также можно построить график спроса выбранного домохозяйства. Для
этого можно выбрать любое домохозяйство и нажать на кнопку «График спроса
выбранного домохозяйства». После этого будет построен график по выбранному
домохозяйству.
На
рисунке
21
изображен
график
спроса
по
первому
домохозяйству, в котором состоят семь членов.
Рисунок 21 – График спроса первого домохозяйства на 12 итерации
56
ЗАКЛЮЧЕНИЕ
В результате выполнения данной выпускной квалификационной работы
была разработана и проанализирована система динамики потребительского
поведения, сбережений и накоплений. Для этого была описана предметная область,
а именно были рассмотрены основные виды домохозяйств, имеющие разное
социальное положение относительно доходов, рассматриваемых с точки зрения
прожиточного минимума. А также была затронута тема кредитования и
депонирования. В итоге было получено заключение, основанное на графических
результатах: график расходов более скачкообразна и агрессивна, нежели график
доходов, который является плавным, без различных скачков.
Таким образом, можно утверждать, что были выполнены следующие
задачи:
1. Описаны и проанализированы процессы предметной области.
2. Совершен обзор прототипов разрабатываемой модели.
3. Сформулирована постановка задачи.
4. Установлены требования к информационной системе.
5. Описана структура данных и исходные данные.
6. Смоделированы процессы предметной области.
7. Разработана логика диалога с пользователем.
8. Разработаны алгоритмы работы с данными и пользовательский
интерфейс программной системы.
9. Совершен обзор средств разработки агентных систем и выбрано более
подходящее средство для реализации.
10.Описана реализованная программная система и приведены примеры ее
работы.
57
СПИСОК ЛИТЕРАТУРЫ
1. Геронин Н.Н. Финансы домашних хозяйств в развитии инвестиционного
процесса в России: автореф. дисс. канд. экон. наук / Н.Н. Геронин. - М., 2008. – 30
с.
2. Правительство Российской Федерации: [Электронный ресурс]. URL:
http://government.ru (дата обращения: 03.07.2017).
3. Фонд Общественное Мнение: [Электронный ресурс]. М., 2003-2018.
URL: http://fom.ru/Ekonomika/11444 (дата обращения: 13.04.2018).
4. Федеральная служба Государственной статистики: [Электронный
ресурс]. М., 1999-2017. URL: http://www.gks.ru/ (дата обращения: 2.04.2018).
5. Машкова
макроэкономических
А.Л.
систем
Прогнозирование
на
базе
долгосрочного
развития
агент-ориентированных
моделей.
Государственное управление. Электронный вестник. 2016. №4(57). -18 с.
6. Unified Modeling Language: [Электронный ресурс]. Object Management
Group, Inc., 1997-2018. URL: http://www.uml.org/what-is-uml.htm (дата обращения:
13.04.2018).
7. Ogibayashi S., Takashima K. Influence of government expenditure policies
and tax rate on GDP in an agent-based artificial economic system. Murata T, Terano T,
Takahashi S (eds) Agent-based approaches in economic and social complex systems, vol
VII. Springer, Tokyo, 2013 pp 147–161
8. Бахтизин А.Р., Бахтизина Н.В. Опыт построения гибридной агенториентированной модели с нейронными сетями // Журнал «Нейрокомпьютеры:
разработка, применение», №8, 2010 г. – 21 с.
9. Министерство
экономического
развития
Российской
Федерации:
[Электронный ресурс]. М., 1999-2017. URL: http://economy.gov.ru/minec/main (дата
обращения: 07.07.2017).
10.Ю.В. Фролова Мульти-агентное моделирование социальных процессов
в Swarm // МСиМ. 2000. №1 (5). URL: https://cyberleninka.ru/article/n/multi-agentnoemodelirovanie-sotsialnyh-protsessov-v-swarm (дата обращения: 11.05.2018).
58
11.NetLogo Home Page: [Электронный ресурс]. Uri Wilensky, 1999-2016.
URL: http://ccl.northwestern.edu/netlogo/ (дата обращения: 11.05.2018).
12.RePast
Suite
NATIONAL
Documentation:
ресурс].
[Электронный
LABORATORY,
ARGONNE
2017.
URL:
https://repast.github.io/repast_simphony.html (дата обращения: 14.05.2018).
13.Система моделирования "MASON": [Электронный ресурс]. George
Mason University, 2003-2017.
URL: http://cs.gmu.edu/~eclab/projects/mason (дата
обращения: 14.05.2018).
14.AnyLogic: [Электронный ресурс]. The AnyLogic Company, 2000-2018.
URL: https://www.anylogic.ru/ (дата обращения: 14.05.2018).
15.JADE: [Электронный ресурс]. Jade Site, 2018. URL: http://jade.tilab.com
(дата обращения: 15.05.2018).
16.MACE3J: [Электронный ресурс]. L. Gasser; K. Kakugawa, 2010. URL:
http://www.swmath.org/software/7178 (дата обращения: 15.05.2018).
17.Microsoft Visual Studio [Электронный ресурс]: Материал из Википедии
— свободной энциклопедии: Версия 91517671, сохранённая в 21:51 UTC 14 марта
2018 / Авторы Википедии // Википедия, свободная энциклопедия. — Электрон. дан.
—
Сан-Франциско:
Фонд
Викимедиа,
2018.
—
Режим
http://ru.wikipedia.org/?oldid=91517671 (дата обращения: 15.05.2018).
доступа:
59
ПРИЛОЖЕНИЕ А
(ОБЯЗАТЕЛЬНОЕ)
61
ИНФОРМАЦИОННО-ПОИСКОВАЯ ХАРАКТЕРИСТИКА
ДОКУМЕНТА НА ЭЛЕКТРОННОМ НОСИТЕЛЕ
Наименование
группы атрибутов
Атрибута
1. Описание
Обозначение документа
документа
(идентификатор(ы)
файла(ов))
Наименование документа
2. Даты и время
3. Создатели
4. Внешние
ссылки
5. Защита
6. Характеристики
содержания
Характеристики документа
на электронном носителе
\Плакаты\Селютина Н. Н. 41ПИ.pptx
Демонстрационные плакаты
к выпускной
квалификационной работе
Класс документа
ЕСКД
Вид документа
Оригинал документа на
электронном носителе
Аннотация
Демонстрационный
материал, отображающий
основные этапы выполнения
выпускной
квалификационной работы
Использование документа Операционная система
Windows 10, Microsoft
PowerPoint 2016
Дата и время
18.06.2018
копирования документа
Дата создания документа 04.06.2018
Дата утверждения
06.06.2018
документа
Автор
Селютина Н. Н.
Изготовитель
Селютина Н. Н.
Ссылки на другие
Удостоверяющий лист
документы
№ 140205/п
Санкционирование
ОГУ имени И.С. Тургенева
Классификация защиты
По законодательству РФ
Объем информации
1 048 576 Б
документа
62
7. Структура
документа(ов)
Наименование плаката
(слайда) №1
Наименование плаката
(слайда) №2
Наименование плаката
(слайда) №3
Наименование плаката
(слайда) №4
Наименование плаката
(слайда) №5
Наименование плаката
(слайда) №6
Наименование плаката
(слайда) №7
Наименование плаката
(слайда) №8
Титульный лист
Структура агентной модели
экспериментальной
экономики
Диаграмма классов
Диаграмма прецедентов
Проектирование логики
диалога с пользователем
Алгоритмическая реализация
Результат работы
информационной системы:
спрос домохозяйств
Результат работы
информационной системы:
доходы и расходы
домохозяйств
1/--страниц
Пожаловаться на содержимое документа