Сдам Сам

ПОСТРОЕНИЕ СИСТЕМНО-ДИНАМИЧЕСКОЙ МОДЕЛИ В ANYLOGIC



(ЛАБОРАТОРНАЯ РАБОТА № 2)

Цель работы

Изучить интерфейс и возможности пакета AnyLogic для построения мо- делей системной динамики.

Порядок выполнения работы

В ходе лабораторной работы необходимо создать и изучить типичную системно-динамическую модель, представляющую интерес в экономике. Это модель распространения среди населения инноваций и новых продуктов, разра- ботанная Франком Бассом (Frank Bass, 1969). Среди бизнес-аналитиков она ляется одной из самых популярных моделей исследования рынка новых про- дуктов.

В работе дано подробное описание этой модели, инструкции по созданию модели в пакете AnyLogic и предложены некоторые ее расширения. При воз- никновении трудностей при создании модели используйте учебное пособие по системной динамике пакета AnyLogic (находится в меню Справка).

Модель жизненного цикла продукта

Модель представляет собой динамику процесса превращения потенци- альных покупателей нового продукта (Potential_Adopters) во владельцев про- дукта (Adopters). Изначально продукт никому не известен, и для того, чтобы люди начали его приобретать, он рекламируется. В итоге люди покупают про- дукт либо под воздействием рекламы, либо узнав о нем от знакомых, по «сара- фанному радио». Эффективность рекламы пропорциональна числу людей, на которых она действует, т.е. числу потенциальных покупателей. В свою очередь, эффективность «сарафанного радио» зависит от числа людей, уже купивших продукт. Иными словами, в данной модели должна быть отражена структура взаимных зависимостей характеристик и параметров системы.

Для описания модели в терминах системной динамики необходимо опре-


делить ключевые переменные модели и их влияние друг на друга, а затем соз- дать потоковую диаграмму модели. При создании потоковой диаграммы нужно учесть, какие переменные должны быть представлены накопителями, какие по- токами, а какие – вспомогательными переменными.

Накопители (также называемые уровнями или фондами) представляют собой такие объекты реального мира, в которых сосредотачиваются некоторые ресурсы; их значения изменяются непрерывно.

Потоки – это активные компоненты системы, они изменяют значения на- копителей. В свою очередь, накопители системы определяют значения потоков. Вспомогательные переменные помогают преобразовывать одни число-

вые значения в другие; они могут произвольно изменять свои значения или быть константами.

При создании потоковой диаграммы выявляются переменные, которые накапливают значения с течением времени. В данной модели численности по- требителей и потенциальных потребителей продукта являются накопителями, а процесс приобретения продукта – потоком.

Системно-динамическое представление данной модели показано на рис. 17. Накопители обозначаются прямоугольниками, поток – вентилем, а вспомогательные переменные – кружками. Стрелки обозначают причинно- следственные зависимости в модели.



Рис. 17


Задание к лабораторной работе

В AnyLogic потоковая диаграмма создается с помощью структурной диа- граммы. На диаграмме графически задаются накопители, потоки и вспомога- тельные переменные.

1. Создайте новый проект для будущей модели и сохраните его в своей папке. Откройте структурную диаграмму двойным щелчком мыши по элементу дерева Мain в окне Проект.

2. Создайте два накопителя для того, чтобы смоделировать численности потребителей и потенциальных потребителей продукта. Для этого перетащите элемент Накопительиз палитры Системная динамикана диаграмму класса активного объекта. На диаграмме появится маленький голубой прямоугольник, обозначающий переменную-накопитель (что соответствует классической нота- ции системной динамики).

Измените имя накопителя – окно Свойства,вкладка Основные, введите

PotentialAdopters в поле редактирования Имя.

Таким же образом создайте еще один накопитель, назовите его Adopters

(рис. 18).

 
 

Рис. 18

3. Создайте поток приобретения продукта, увеличивающий число потре- бителей продукта и уменьшающий численность потенциальных потребителей.

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


со значением этого потока.

Чтобы создать поток, сделайте двойной щелчок мыши по накопителю PotentialAdopters, а потом щелкните по накопителю Adopters. AnyLogic создаст новую переменную-поток и сделает ее исходящим потоком для накопителя PotentialAdopters и входящим – для Adopters. На диаграмме появятся стрелки, которые будут обозначать образовавшиеся зависимости между потоком и эти- ми накопителями (рис. 19). Выделите созданную переменную в графическом редакторе и измените имя этого потока на AdoptionRate.

Рис. 19

4. Посмотрите свойства накопителей. Формулы накопителей должны вы- глядеть следующим образом (рис. 20).

       
   
 

 

Рис. 20

 

Эти формулы были автоматически заданы инструментом задания потоков.

5. Создайте константы модели. Перетащите элемент Параметр из па- литры Системная динамикана диаграмму класса активного объекта.

1) Создайте константу, задающую общую численность населения. Для


этого создайте новый параметр и измените его свойства. В поле Имявведите TotalPopulation. В поле По умолчаниювведите 100000. Можно задать также краткое описание константы в поле Описание;

2) в нашей модели интенсивность рекламы и вероятность того, что про- дукт будет приобретен под ее влиянием, полагаются постоянными. Создайте константу, задающую эффективность рекламы. Назовите ее AdEffectiveness. За- дайте значение по умолчанию 0.011;

3) частота, с которой потенциальные потребители общаются с потребите- лями, принимается как постоянная величина. Поэтому задайте частоту контак- тов константой. Назовите константу ContactRate. Предположим, что каждый потенциальный потребитель в среднем встречается со 100 постоянными потре- бителями в год. Задайте значение по умолчанию 100;

4) задайте константой силу убеждения владельцев продукта, определяю- щую ту долю контактов, которая приводит к продажам продукта. Назовите константу AdoptionFraction. Задайте значение 0.015.

6. Задайте начальные значения накопителей.

Начальное число потребителей нашего продукта равно нулю, поэтому в окне свойств накопителя Adopters введите 0 в поле редактирования Начальное значение.

Начальное количество потенциальных потребителей будет равно общей численности населения. В окне свойств накопителя PotentialAdopters введите TotalPopulation в поле редактирования Начальное значение.Вы можете сде- лать это с помощью Мастера (Ctrl+ пробел).

7. Создайте две вспомогательные переменные, которые будут соответст- вовать двум составляющим потока приобретения продукта – приобретениям, совершенным под влиянием рекламы и под влиянием потребителей продукта соответственно.

1) Перетащите элемент Вспомогательная переменная из палит- ры Системная динамикана диаграмму класса активного объекта и назовите ее AdoptionFromAd. В поле AdoptionFromAd =введите


AdEffectiveness * PotentialAdopters.

Влияние рекламы моделируется следущим образом: некий постоянный процент потенциальных клиентов AdEffectiveness всё время переходит в разряд клиентов. Их доля в AdoptionRate равна PotentialAdopters * AdEffectiveness;

2) создайте еще одну переменную и назовите ее AdoptionFromWOM. За- дайте формулу интенсивности продаж продукта под влиянием устного общения потребителей продукта с теми, кто данный продукт еще не приобрел: ContactRate * AdoptionFraction * PotentialAdopters * Adopters / TotalPopulation.

Проанализируйте данную формулу.

8. Задайте формулу для потока приобретения продукта. Значение потока определяется суммой двух его независимых составляющих – продаж в резуль- тате рекламного влияния и продаж под влиянием общения с потребителями продукта. В окне свойств переменной AdoptionRate на вкладке Основныевве- дите формулу, по которой будет вычисляться значение потока, в поле AdoptionRate=: AdoptionFromAd + AdoptionFromWOM

Создание модели завершено. Диаграмма накопителей и потоков должна

выглядеть, как показано на рис. 21.

 
 

Рис. 21

9. Просмотрите причинно-следственные зависимости между накопителя- ми, потоками и вспомогательными переменными в модели.


Зависимости будут показаны стрелками, как в общепринятой системно- динамической нотации. Стрелка, направленная от потока к накопителю, озна- чает, что этот поток является входящим потоком для данного накопителя. Стрелка, направленная от накопителя к потоку, означает, что поток является исходящим. Тонкая стрелка, направленная от переменной A к переменной B, означает, что изменение значения переменной A вызовет изменение значения переменной B.

Можно увидеть, что модель содержит два цикла с обратной связью: ком- пенсирующий и усиливающий. Компенсирующий цикл с обратной связью воз- действует на поток приобретения продукта, вызванный рекламой. Поток приобретения продукта сокращает число потенциальных потребителей, что приводит к снижению интенсивности приобретения продукта. Усиливающий цикл с обратной связью воздействует на поток приобретения продукта, вызван- ный общением с потребителями продукта. Поток приобретения продукта увеличивает численность потребителей продукта, что приводит к росту интен- сивности приобретения продукта под влиянием общения с потребителями продукта и, следовательно, к росту интенсивности приобретения продукта.

10.Просмотрите код модели. Для этого постройте модель (клавиша F7), а потом на панели Проектвыберите Модель,нажмите правую кнопку мыши и из ниспадающего меню выберите Открыть в…и затем – в Java редакторе.

11. Сконфигурируйте выполнение модели, для этого необходимо настро- ить текущий эксперимент модели.

Если сейчас запустить модель, то она будет работать бесконечно. По- скольку мы хотим наблюдать поведение модели только тогда, когда происходит процесс распространения продукта, постольку нам нужно остановить модель, когда система придет в точку равновесия. Процесс распространения продукта в этой модели длится примерно 8 лет. Поэтому задайте останов модели после 8 единиц модельного времени.

Для этого в окне свойств эксперимента Simulation:Main перейдите на вкладку Модельное время,выберите В заданное времяиз выпадающего спи-


ска Остановить. В расположенном ниже поле введите 8. Модель остановится после того, как истекут 8 единиц модельного времени.

Задайте выполнение модели в режиме реального времени (вкладка Пре- зентацияокна свойств эксперимента). Задайте скорость выполнения – 2.

Вы можете сменить метод, используемый для решения системы диффе- ренциальных уравнений. Если вы не укажете никакого конкретного метода, т. е. оставите выбранный по умолчанию метод Automatic, то во время работы моде- ли AnyLogic будет автоматически выбирать численный метод в соответствии с поведением системы. На вкладке Дополнительныеокна свойств эксперимента выберите метод RK4 из выпадающего списка Дифф. уравнения.

11. Проверьте ошибки и запустите модель. Для проверки ошибок постройте проект с помощью кнопки панели инструментов Построить(или клавиша F7). В окне Ошибкипоявится список всех ошибок, обнаруженных в проекте, если таковые имеются. Двойным щелчком мыши по ошибке в этом списке вы можете перейти к предполагаемому месту ошибки, чтобы исправить ее. После построения проекта запустите модель.

12. Просмотрите значения переменных в окне работающей модели.

13. Исследуйте динамику обеих составляющих потока продаж. Для этого откройте окно инспекта для переменной AdoptionFromAd в окне презентации. Вы можете переключить окно инспекта в режим графика – оно будет отобра- жать временной график изменений значения переменной в модельном времени. Текущее значение переменной будет отображаться рядом с началом координат графика. Окно инспекта автоматически масштабируется таким образом, чтобы полностью вместить кривые графиков от начала до конца периода модели- рования.

Откройте окно инспекта переменной AdoptionFromWOM и переключите его в режим графика (рис. 22).

Можно увидеть, что при внедрении нового продукта на рынок, когда число потребителей равно нулю, реклама будет являться единственным источ- ником продаж. Наибольший рекламный эффект отмечается в начале процесса


распространения продукта; он неуклонно падает по мере уменьшения числен- ности потенциальных потребителей.

Рис. 22

 

14. Изучите динамику изменения численностей потребителей и потенци- альных потребителей продукта с помощью диаграмм. Для этого создайте диа- грамму для отображения переменных Adopters и PotentialAdopters.

Перетащите элемент Временной график из палитры Статистикана диаграмму класса Main и измените размер графика, как показано на рис. 23.

Рис. 23

 

Перейдите на вкладку Основныепанели Свойства. В поле Временной диапазонзадайте диапазон временной оси диаграммы – 8. Диаграмма будет отображать график только для заданного временного ин- тервала.


Добавьте элементы данных, историю изменения значений которых вы хо- тите отображать на временном графике: щелкните мышью по кнопке Добавить элемент данных. Введите в поле Выражениеимя соответствующего накопи- теля – PotentialAdopters. В поле Заголовоквведите Potential adopters. Данная строка будет отображаться в легенде диаграммы для этого элемента данных. Выберите первую опцию из выпадающего списка Стиль маркера, чтобы нано- симые на кривую графика точки не отображались дополнительными точками – маркерами.

Добавьте на график еще один элемент данных, который будет отображать значение накопителя Adopters.

15. Добавьте график, отображающий изменение интенсивности продаж. Для этого добавьте на диаграмму еще один временной график, поместите его под добавленным ранее графиком. Измените свойства графика. В качестве Вы- ражениядолжно быть задано имя потока AdoptionRate.

16. Запустите модель. Первая диаграмма показывает, как изменяются пе- ременные PotentialAdopters и Adopters во время «прогона» модели. Они пред- ставляют собой классические S-образные кривые (рис. 24).

Рис. 24

 

На втором графике (рис. 25) вы увидите классическую колоколообразную кривую.


 

Рис. 25

 

17. Проанализируйте характеристики модели для своего варианта. Помес- тите графики и диаграммы в отчет. Сделайте выводы.

Вариант Эффективность рекламы Сила убеждения Длительность процесса
0,010 0,01
0,010 0,02
0,010 0,03
0,005 0,04
0,005 0,05
0,005 0,01
0,015 0,02
0,015 0,03
0,015 0,04
0,010 0,05
0,010 0,01
0,010 0,02
0,005 0,03
0,005 0,04
0,005 0,05
0,015 0,01
0,015 0,02
0,015 0,03
0,020 0,04
0,020 0,05

 









Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2017 zdamsam.ru Размещенные материалы защищены законодательством РФ.