Задание к лабораторной работе. 1. Создайте новую модель (кнопка панели инструментов Создать )

1. Создайте новую модель (кнопка панели инструментов Создать ). Назовите ее Bass Diffusion.

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

Таким же образом создайте еще один накопитель, назовите его Adopters (см. рис. 2). Накопители будут моделировать численности потребителей и потенциальных потребителей продукта.

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

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

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

Рис. 2

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

5. Создайте константы модели:

1) Перетащите элемент Параметр из палитры Системная динамика на диаграмму класса активного объекта. В свойствах параметра в поле Имя введите, в поле По умолчанию введите 100000. Константа будет задавать общую численность населения.

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

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

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

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

В окне свойств накопителя Adopters введите 0 в поле Начальное значение (начальное число потребителей нашего продукта равно нулю). В окне свойств накопителя PotentialAdopters введите TotalPopulation в поле Начальное значение (начальное количество потенциальных потребителей будет равно общей численности населения).

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  

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: