Модель розповсюдження продукту по Бассу в AnyLogic

Спочатку ми повинні проаналізувати нашу модель, щоб вирішити, як її можна описати в термінах системної динаміки. Ми повинні визначити ключові змінні моделі і те, як вони впливають один на одного, а потім створити потокову діаграму моделі. При створенні потокової діаграми ми повинні врахувати, які змінні повинні бути представлені накопичувачами, які потоками, а які — динамічними змінними. Накопичувачі (також звані рівнями або фондами) являють собою такі об’єкти реального світу, в яких зосереджуються деякі ресурси; їх значення змінюються безперервно. Потоки -це активні компоненти системи, вони змінюють значення накопичувачів. У свою чергу, накопичувачі системи визначають значення потоків. Динамічні змінні допомагають перетворювати одні числові значення в інші; вони можуть довільно змінювати свої значення або бути константами.

При створенні потокової діаграми виявите змінні, які накопичують значення з плином часу. У нашій моделі чисельності споживачів і потенційних споживачів продукту є накопичувачами, а процес придбання продукту — потоком.

Системно-динамічне представлення нашої моделі показано на малюнку нижче. Накопичувачі позначаються прямокутниками, потік-вентилем, а динамічні змінні- гуртками. Стрілки позначають причинно-наслідкові залежності в моделі.

1

Рис. 1. Системно-динамічне представлення моделі

Давайте почнемо створення діаграми накопичувачів і потоків. І почнемо ми з створення накопичувачів. У нашій моделі їх два — вони моделюють чисельності споживачів і потенційних споживачів продукту. Накопичувач в AnyLogic задається за допомогою однойменної змінної.

2

Рис. 2. Створення моделі

На діаграмі з’явиться маленький блакитний прямокутник, що означає змінну-накопичувач (що відповідає класичній нотації системної динаміки).

3

Рис. 3. Змінна-накопичувач

Щоб у Вас завжди була впевненість в тому, що в поточний момент в робочому просторі обраний саме потрібний Вам елемент, і саме його властивості Ви редагуєте в панелі Властивості, звертайте увагу на перший рядок, які будуть показані в панелі Властивості — в ній відображається ім’я обраного в поточний момент часу елемента і його тип — у наведеному на малюнку прикладі це stock і Накопичувач відповідно.

4

Рис. 4. Властивості накопичувача PotentialAdopters

Трохи збільшіть розмір значка накопичувача. Для цього виділіть його клацанням миші в графічному редакторі і перетягніть в сторону з’явився в нижньому правому куті значка маркер.

5

Рис. 5. Накопичувач PotentialAdopters

Щоб створити накопичувач такого ж розміру, найпростіше склоніровать існуючий накопичувач, перетягнувши його мишею з натиснутою клавішею Ctrl (Mac OS: Cmd) (при цьому властивості нового елемента будуть тими ж, що і у склонірованного, але в даному випадку це не важливо, оскільки ми змінили тільки одна властивість накопичувача — його ім’я).

6

Рис. 6. Властивості накопичувача Adopters

На даний момент завдання накопичувачів ще повністю не закінчено. Пізніше ми задамо початкові значення накопичувачів, а також інтегральні формули, згідно з якими будуть обчислюватися їх значення. Але спочатку нам потрібно створити потік придбання продукту.

ДОДАВАННЯ ПОТОКУ ПРОДАЖІВ ПРОДУКТУ

Ми вже створили в нашій моделі два накопичувача, що моделюють чисельності потенційних споживачів і споживачів продукту. Тепер прийшов час поставити потоки. У нашій найпростішої моделі є тільки один потік — потік продажів продукту, що збільшує число споживачів продукту і зменшує чисельність потенційних споживачів.

У AnyLogic потік задається змінною потік. Значення потоку обчислюється відповідно до заданої формулою.

7

Рис. 7. Зображення зв’язку flow

В результаті діаграма потоків і накопичувачів повинна буде виглядати наступним чином:

8

Рис.8. Потік AdoptionRate

Можете тепер поглянути на властивості накопичувачів. Формули накопичувачів повинні виглядати наступним чином:

9

Рис. 9. властивість накопичувача PotentialADOPTERS

10

Рис. 10. Властивість накопичувача ADOPTERS

Ці формули були автоматично задані при додаванні потоку. Значення вхідних потоків, тобто потоків, які збільшують значення накопичувача, додаються, а значення вихідних потоків, що зменшують значення накопичувача, віднімаються з поточного значення накопичувача.

Формулу, згідно з якою буде обчислюватися значення потоку, ми задамо трохи пізніше.

ЗАВДАННЯ КОНСТАНТ

Тепер ми задамо константи нашої моделі за допомогою параметрів.

11

Рис. 11. Властивість параметру TotalPopelation

Частота, з якою потенційні споживачі спілкуються з споживачами, в нашій моделі буде постійною величиною. Тому ми задамо частоту контактів константою.

12

Рис. 12. Властивість параметру ContactRate

У цій моделі інтенсивність реклами і ймовірність того, що продукт буде придбаний під її впливом, покладаються постійними. Тому ми задамо ефективність реклами константою. Ефективність реклами визначає, яка частка людей купить продукт внаслідок її впливу.

13

Рис. 13. Властивість параметру AdEffectiveness

Задайте константою силу переконання власників продукту, визначальну ту частку контактів, яка призводить до продажів продукту.

14

Рис. 14. Властивість параметру AdoptionFraction

ЗАВДАННЯ ПОЧАТКОВИХ ЗНАЧЕНЬ

НАКОПИЧУВАЧІВ

Тепер ми можемо задати початкові значення накопичувачів. Ми хочемо задати загальну чисельність людей в нашій моделі (задану параметром TotalPopulation) в якості початкового значення накопичувачаPotentialAdopters. Коли Ви вказуєте який-небудь елемент у виразі початкового значення накопичувача, Ви повинні спочатку з’єднати цей елемент з накопичувачем за допомогою зв’язку. Зв’язок дозволяє явно задавати існуючі залежності між елементами діаграми потоків і накопичувачів.

Зверніть увагу, що потрібно завжди малювати зв’язку саме в такому напрямку – від незалежної змінної до залежною.

15

Рис. 15. Задання зв’язку

Тепер, коли ми створили зв’язок, можна задати початкове значення накопичувача, пославшись в ньому на параметр TotalPopulation.

16

Рис. 16. Властивість параметру PotentialAdopters

Початкове значення накопичувача Adopters, що моделює споживачів продукту, задавати не потрібно, оскільки спочатку число споживачів дорівнює нулю, а накопичувач за замовчуванням і так инициализируется нулем.

Тепер ми закінчили завдання накопичувачів. Нам залишилося додати на діаграму потоків і накопичувачів динамічні змінні — і модель буде готова.

СТВОРЕННЯ ДИНАМІЧНИХ ЗМІННИХ

Нам потрібно створити дві динамічні змінні, які будуть відповідати двом складовим потоку придбання продукту:

  1. Придбань, досконалим під впливом реклами.
  2. Придбань, досконалим під впливом спілкування споживачів продукту з потенційними споживачами.

17

Рис. 17. Створення динамічної змінної  AdoptionFromAd

Тепер ми хочемо задати формулу для цієї динамічної змінної. Вплив реклами моделюється наступним чином: якийсь постійний відсоток потенційних клієнтів AdEffectiveness весь час стають клієнтами. Їх частка в AdoptionRate дорівнює, відповідно, PotentialAdopters *AdEffectiveness.

Знову, як і в разі складання виразу початкового значення накопичувача, коли яка-небудь змінна задіяна у формулі динамічної змінної або потоку, між цими змінними повинна існувати зв’язок.

18

Рис. 18. Створення зв’язку з динамічною змінною  AdoptionFromAd

Ви могли помітити, що цей зв’язок виглядає трохи інакше, ніж та, що веде від TotalPopulation до PotentialAdopters. Зв’язки з змінними, що згадуються в початкових значеннях накопичувачів, малюються пунктирними лініями, в той час, як всі інші — суцільними.

19

Рис. 19. Створення зв’язку з динамічною змінною  AdEffectiveness

Задайте формулу, згідно з якою буде обчислюватися значення змінної. У властивостях змінної AdoptionFromAd, в полеAdoptionFromAd = введіть: AdEffectiveness * PotentialAdopters (Ви можете скористатися Майстром підстановки коду).

20

Рис. 20. Властивість  динамічної змінної AdoptionFromAd

Для тих, хто не знайомий з класичною моделлю Дифузії по Бассу, давайте спробуємо самостійно скласти формулу інтенсивності продажів продукту під впливом усного спілкування споживачів продукту з тими, хто даний продукт ще не придбав.

Ми робимо припущення, що в нашій моделі людина може спілкуватися з будь-яким іншим людиною.

Кількість контактів людини в одиницю часу (а під одиницею часу в нашій моделі мається на увазі рік) задається параметром ContactRate. Запишемо ContactRate в якості першого співмножники нашої формули.

Кількість людей, які володіють продуктом, і можуть переконувати інших придбати його, в нашій моделі в кожен момент часу буде визначатися значенням накопичувача Adopters, і оскільки кожен споживач буде спілкуватися в одиницю часу з ContactRate людей, то кількість контактів в одиницю часу у всіх споживачів продукту дорівнюватиме Adopters * ContactRate.

Тепер потрібно врахувати той факт, що в результаті спілкування не всі ті, хто ще не купив цей продукт, відразу побіжать його купувати — якщо когось доводи свого знайомого, успішно користується досліджуваним нами продуктом, можуть переконати, то хтось може залишитися до них байдужим, і свого рішення не купувати продукт не змінити. Тому ми додамо в нашу формулу ще один співмножник AdoptionFraction, що задає силу переконання власників продукту, визначальну ту частку контактів, яка призводить до продажів продукту. Таким чином, наша формула набуває вигляду Adopters * ContactRate * AdoptionFraction.

І нарешті, нам потрібно врахувати, що на даний момент наша формула не враховує того, що власники продукту будуть спілкуватися як з потенційними споживачами, так і з тими, хто вже володіє продуктом. І спілкування з останніми ні до яких новим продажу продукту не приведе. Тому нам потрібно врахувати в нашій формулі і ймовірність того, що той, з ким спілкувався споживач, ще не володіє цікавлять нас продуктом. Ця ймовірність задається так: PotentialAdopters / TotalPopulation.

У підсумку наша формула буде виглядати наступним чином: Adopters * ContactRate * AdoptionFraction * PotentialAdopters / TotalPopulation.

Саме стільки потенційних споживачів будуть купувати продукт в одиницю модельного часу під впливом спілкування з власниками цього продукту.

21

Рис. 21. Властивість  динамічної змінної AdoptionFromWOM

У підсумку у Вас повинна буде вийти діаграма такого вигляду:

22

Рис. 22. Діаграма процесу

Тепер ми можемо задати формулу для потоку придбання продукту. Значення потоку визначається сумою двох його незалежних складових — продажів в результаті рекламного впливу і продажів під впливом спілкування зі споживачами продукту.

23

Рис. 23. Властивість  потоку AdoptionRate

Тепер ми закінчили створення нашої моделі. Діаграма накопичувачів і потоків повинна виглядати як на наведеному нижче малюнку:

24

Рис. 24. Діаграма процесу

Зв’язки мають полярність, позитивну або негативну:

-Позитивний зв’язок означає, що два елементи системної динаміки змінюють свої значення в одному напрямку, т.e. якщо значення елемента, з якого направлена зв’язок, зменшується, значення іншого елемента зменшується теж. Аналогічно, якщо збільшується значення одного елемента, то і значення залежного від нього елемента збільшується теж.

-Негативна зв’язок означає, що два елементи системної динаміки змінюють свої значення в протилежних напрямках, т.e. якщо значення елемента, з якого направлена зв’язок, зменшується, то значення іншого елемента збільшується, і навпаки. Ви можете додати поруч зі зв’язками мітки, які будуть позначати полярність цих зв’язків. Зазвичай полярність позначається за допомогою символів +/- поруч зі стрілкою зв’язку. Таким чином Ви можете показати, як залежна змінна змінює своє значення при зміні значення незалежної змінної.

25

Рис. 25. Властивості зв’язку

У нашій моделі всі зв’язки, за ісключеінем тієї, що веде від TotalPopulation до AdoptionFromWOM, мають позитивну полярність. Можна побачити, що наша модель містить два цикли зі зворотним зв’язком: один компенсуючий і один підсилює.

-Компенсуючий цикл зі зворотним зв’язком впливає на потік придбання продукту, викликаний рекламою. Потік придбання продукту скорочує число потенційних споживачів, що в свою чергу призводить до зниження інтенсивності придбання продукту.

26

Рис. 26. Діаграма процесу

-Підсилює цикл зі зворотним зв’язком впливає на потік придбання продукту, викликаний спілкуванням зі споживачами продукту. Потік придбання продукту збільшує чисельність споживачів продукту, що призводить до зростання інтенсивності придбання продукту під впливом спілкування зі споживачами продукту, і отже до зростання інтенсивності придбання продукту.

Додайте ідентифікатор циклу, що викликає насичення ринку:

27

Рис. 27. Додавання ідентифікатора циклу

Щоб визначити, чи є цикл підсилює, Ви можете почати зприпущення, що, наприклад значення змінної А збільшується, і простежити за зміною значень

входять до цикл змінних.

Цикл є:-підсилює, якщо після проходження по циклу Ви бачите той же результат, що був допущений при початковому припущенні (у нашому випадку — збільшення значення).

— компенсуючим, якщо результат суперечить початковому припущенню.

У підсумку Ваша діаграма повинна виглядати таким чином:

28

Рис. 28. Діаграма процесу

НАЛАШТУВАННЯ ЗАПУСКУ МОДЕЛІ

Ви можете конфігурувати виконання моделі у відповідності з Вашими вимогами. Модель виконується відповідно до набору установок, що задається спеціальним елементом моделі

— експериментом. Ви можете створити декілька експериментів з різними установками і змінювати робочу конфігурацію моделі, просто запускаючи той чи інший експеримент моделі.

В панелі Проекти експерименти відображаються в нижній частині дерева моделі. Один експеримент, названий Simulation, створюється за замовчуванням. Це простий експеримент, що дозволяє запускати модель із заданими значеннями параметрів, що підтримує режими віртуального і реального часу, анімацію і налагодження моделі.

29

Рис. 29. Експеримент Simulation

Існують також і інші типи експериментів (оптимізаційний експеримент, експеримент для оцінки ризиків, експеримент для варіювання параметрів), які використовуються в тих випадках, коли параметри моделі відіграють істотну роль, і потрібно проаналізувати, як вони впливають на поведінку моделі, або коли потрібно знайти оптимальні значення параметрів моделі.

Якщо ми зараз запустимо модель, то вона буде моделюватися нескінченно, поки ми самі не зупинимо її виконання. Оскільки ми хочемо спостерігати поведінку моделі тільки тоді, коли відбувається процес поширення продукту, нам потрібно зупинити модель, коли система прийде в точку рівноваги. Процес поширення продукту в цій моделі триває приблизно 8 років.

30

Рис. 30. Властивості експерименту Simulation

Перед тим, як запустити модель, давайте виберемо режим її виконання. Модель AnyLogic може виконуватися або в режимі віртуального, або в режимі реального часу.

У режимі віртуального часу модель виконується без прив’язки до фізичного часу – вона просто виконується настільки швидко, наскільки це можливо. Цей режим найбільше підходить в тому випадку, коли потрібно моделювати роботу системи протягом досить тривалого періоду часу.

У режимі реального часу задається зв’язок модельного часу з фізичним, тобто задається кількість одиниць модельного часу, виконуються в одну секунду. Це часто потрібно, коли Ви хочете, щоб анімація моделі відображалася з тією ж швидкістю, що і в реальному житті.

І давайте тепер змінимо ще одна властивість, але вже не експерименту, а моделі.

Під час моделювання ми будемо вивчати значення наших змінних і переглядати графіки, що демонструють, як змінювалися їх значення по ходу моделювання.

Для цього нам навіть не знадобиться додавати і конфігурувати діаграми — ми скористаємося спеціальної можливістю AnyLogic — вікнами ІНСПЕКТ.Справа в тому, що AnyLogic автоматично запам’ятовує значення, що приймаються динамічними змінними по ходу моделювання, в спеціально створюваних для цього наборах даних. І значення цих наборів даних можна легко переглянути у вікнах ІНСПЕКТ, які доступні в режимі запуску моделі.

Все, що ми хочемо змінити — це збільшити частоту збору таких даних. За замовчуванням нові значення змінних додаються в набори даних кожну одиницю модельного часу. Ми ж хочемо, щоб дані збиралися, скажімо, в 10 разів частіше.

31

Рис. 31. Властивості агента Main

ЗАПУСК МОДЕЛІ

Побудуйте Вашу модель за допомогою кнопки панелі інструментів Побудувати модель (При цьому в робочій області AnyLogic повинен бути обраний якийсь елемент саме цієї моделі). Якщо в моделі є які-небудь помилки, то побудова не буде завершена, і в панель Помилки буде виведена інформація про помилки, виявлені в моделі. Подвійним клацанням миші помилково в цьому списку Ви можете перейти до передбачуваного місця помилки, щоб виправити її.

Запустивши модель, Ви побачите вікно презентації цієї моделі. У ньому буде відображена презентація запущеного експерименту. AnyLogic автоматично поміщає на презентацію кожного простого експерименту заголовок і кнопку, що дозволяє запустити модель і перейти на презентацію, намальовану Вами для головного типу агентів цього експерименту (Main).

Клацніть по цій кнопці. Ви побачите діаграму потоків і накопичувачів. Поруч з кожним елементом буде відображатися його поточне значення.

32

Рис. 32. Діаграма процесу

AnyLogic підтримує різні інструменти для збору, відображення та аналізу даних під час виконання моделі. Найпростішим способом перегляду поточного значення та історії зміни значень змінної або параметра під час виконання моделі є використання вікна ІНСПЕКТ.

33

Рис. 33. Використання вікна ІНСПЕКТ

Тепер ми можемо побачити, що при впровадженні нового продукту на ринок, коли число споживачів дорівнює нулю, реклама буде єдиним джерелом продажів. Найбільший рекламний ефект відзначається на початку процесу поширення продукту; він неухильно падає в міру зменшення чисельності потенційних споживачів.

ДОДАВАННЯ ДІАГРАМ

Як ми вже зазначали раніше, AnyLogic підтримує різні інструменти для збору,

відображення та аналізу даних під час виконання моделі.Найпростішим способом перегляду історії зміни значень змінної під час виконання моделі є використання вікна ІНСПЕКТ. Для більш ретельної візуалізації та аналізу даних використовуються діаграми і об’єкти збору даних, розташовані на палітрі Статистика.

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

Давайте додамо діаграми, за допомогою яких ми будемо вивчати, як змінюються з часом чисельності споживачів і потенційних споживачів продукту, а також як змінюється інтенсивність продажів продукту.

341

342

343

Рис. 34. Задання властивостей графіку

Додайте графік, що відображає зміну інтенсивності продажів

  1. Додайте на діаграму ще один часовий графік. Помістіть його під доданим раніше графіком:35

Рис. 35. Графіки, що відображають зміну інтенсивності продажів

Додайте на графік новий елемент даних (в якості Значення в цьому випадку має бути задане ім’я потоку AdoptionRate) і змініть властивості графіка, як показано на наведеному малюнку:

361

362

Рис. 36. Задання властивостей графіку

Тепер Ви можете запустити модель і вивчити динаміку зміни чисельності споживачів і потенційних споживачів продукту. Ви побачите класичні для розглянутого прикладу системної динаміки криві S-форми.

За допомогою нижнього графіка Ви можете простежити, як з плином часу буде змінюватися інтенсивність продажів продукту. Якщо модель була створена правильно, то Ви побачитеколоколообразную криву:

37

Рис. 37. Діаграма процесу

Ми закінчили створення найпростішої моделі системної динаміки. Ця модель часто використовується в класичних підручниках з системної динаміці, і саме тому вона і була обрана нами для навчального посібника. На цьому прикладі ми хотіли продемонструвати Вам, як створюються типові моделі системної динаміки в AnyLogic.

Тепер ми можемо кілька удосконалити цю модель, попутно продемонструвавши спеціалізовані можливості AnyLogic, реалізовані в першу чергу саме для прихильників системно-динамічного методу моделювання.

МОДЕЛЮВАННЯ ПОВТОРНИХ ПОКУПОК

Створена модель не враховує того, що з часом продукт може бути витрачений або прийти в непридатність, що викличе необхідність його повторного придбання. Ми змоделюємо повторні покупки, вважаючи, що споживачі продукту знову стають потенційними споживачами, коли продукт, який вони придбали, стає непридатний. Спочатку ми визначимо константу, задану середній час життя продукту.

38

Рис. 38. Задання властивостей параметра

Споживачі продукту знову стають потенційними споживачами тоді, коли продукт, який вони придбали, витрачається і перестає використовуватися. Тому потік припинення використання продукту є нічим іншим, як потоком придбання, затриманим на середній час придатності продукту.

39

Рис. 39. Потік DiscardRate

Назвіть потік DiscardRate. Формули накопичувачів після цього повинні будуть

виглядати наступним чином:

40

Рис. 40. Задання властивостей накопичувача

41

Рис. 41. Задання властивостей накопичувача

Задайте наступну формулу для потоку DiscardRate:

42

Рис. 42. Задання формули для потоку DiscardRate

Функція delay () реалізує тимчасову затримку; вона має наступну нотацію: delay (<затримуваний потік>, <значення затримки>, <початкове значення>)

У нашому випадку функція являє собою AdoptionRate з тимчасовою затримкою ProductLifeTime. Поки не закінчився час використання першого придбаного продукту, потік дорівнює нулю.

Як і у всіх інших аналогічних випадках, написання такої формули потребують додавання посилань від змінних AdoptionRate іProductLifeTime до потоку DiscardRate.

Перевірити роботу функції затримки простіше всього за допомогою діаграми. Для цього ми додамо на графік, що відображає динаміку зміни інтенсивності продажів, і іншу інтенсивність

— інтенсивність відмови від продукту, яка визначається нашим потоком DiscardRate.

43

Рис. 43. Задання властивостей графіку

Тепер ми закінчили моделювання повторних покупок продукту. Ви можете перевірити, як працює функція затримки. Запустіть модель і досліджуйте графіки змінних AdoptionRate і DiscardRate. Ви зможете побачити, що графік потоку припинення використання продукту має саме той вид, який ми і припускали побачити-він є нічим іншим, як потоком придбання продукту, затриманим на 2 роки-час придатності продукту.

44

Рис. 44. Діаграма процесу

За допомогою діаграми простежте динаміку зміни численностей споживачів. Тепер чисельність потенційних споживачів не зменшується до нуля, а постійно поповнюється по мірі того, як споживачі заново купують продукти замість непридатних. Інтенсивність придбання продукту зростає, падає, і в підсумку приймає якесь значення, залежне від середньої життя продукту і параметрів, що визначають інтенсивність цього потоку. Наявність в моделі припинення використання продукту означає, що якась частка населення завжди залишатиметься потенційними споживачами.

МОДЕЛЮВАННЯ ЦИКЛІЧНОСТІ ПОПИТУ

У поточній моделі частка контактів споживачів продукту з потенційними споживачами, яка призводить до продажів продукту, покладається постійною.Насправді вона змінюється, оскільки попит на наш продукт залежить від поточного часу року. Продукт користується найбільшим попитом влітку, в той час як взимку попит на товар різко падає, за винятком невеликого передсвяткового періоду в грудні. Давайте і Промоделюємо тепер сезонну циклічність попиту.

 ДОДАВАННЯ ЕКСПЕРИМЕНТАЛЬНИХ ДАНИХ

Припустимо, що у нас є експериментальні дані того, як змінюється середній попит на продукт протягом року. Ми додамо ці дані в нашу модель за допомогою табличній функції. Таблична функція — це функція, задана в табличній формі, яка може бути зроблена безперервної за допомогою інтерполяції та екстраполяції.

Спочатку давайте зазначимо моделі, що під одиницею модельного часу ми маємо на увазі рік. Завдання кривої попиту за допомогою табличній функції:

45

Рис. 45. Задання властивостей табличної функції

Закінчивши завдання функції, Ви можете подивитися, як вона виглядає, за допомогою графіка в секції попереднього перегляду функції:

46

Рис. 46. Перегляд функції

 МОДЕЛЮВАННЯ ВПЛИВУ МІНЛИВОГО ПОПИТУ НА

ІНТЕНСИВНІСТЬ ПРИДБАННЯ ПРОДУКТУ

Тепер ми хочемо промоделювати то, як попит на продукт впливає на кількість людей, які купують продукт під впливом спілкування з власниками продукту. Для цього ми створимо спеціальну функцію і замінимо параметр AdoptionFraction допоміжної змінної, значення якої буде обчислюватися згідно цієї функції.

Функція getMonth () обчислює номер поточного місяця. Цей номер передається табличній функції demand. Таблична функція повертає значення попиту на продукт для даного місяця. На закінчення, для отримання значення частки людей, що купують продукт під впливом спілкування, значення попиту ділиться на коефіцієнт перетворення.

Ну і нарешті потрібно буде замінити константу допоміжної змінної, значення якої визначається нашою функцією.

Запустіть модель. Ви побачите, що тепер поведінка моделі коливається близько точки рівноваги в силу того, що тепер коливаються значення і потоку придбання, і потоку припинення використання продукту.

47

Рис. 47. Діаграма процесу

 МОДЕЛЮВАННЯ СТРАТЕГІЇ РЕКЛАМНОЇ

КАМПАНІЇ

На даний момент ефективність реклами в нашій моделі покладається постійною. Насправді, вона залежить від поточних витрат компанії на рекламу.Ми хочемо поліпшити нашу модель, щоб мати можливість керувати витратами на рекламну кампанію. Змінюючи місячні витрати на рекламу, ми зможемо вплинути на поточну ефективність реклами.

МОДЕЛЮВАННЯ МІСЯЧНИХ ВИТРАТ

48

Рис. 48. Задання властивостей динамічної змінної

Ми хочемо вести статистику всіх витрат компанії. Це може бути зроблено створенням спеціальної змінної для зберігання інформації про те, скільки грошей було витрачено на рекламу продукту. Кожен місяць ми будемо оновлювати це значення за допомогою спеціального події, додаючи значення запланованих на майбутній місяць витрат на рекламну кампанію продукту.

49

Рис. 49. Задання властивостей події

МОДЕЛЮВАННЯ ПЛАНУ РЕКЛАМНОЇ КАМПАНІЇ

Оскільки реклама відіграє значну роль лише в початковій стадії процесу завоювання ринку, ми хочемо в якийсь момент часу, скажімо, через 3 роки зупинити рекламну кампанію. Цим ми заощадимо деньггі, безцільно витрачаються на рекламу тоді, коли насичення ринку буде визначатися практично виключно покупками продукту, викликаними спілкуванням споживачів з потенційними споживачами.

Тепер ми візуально задамо поведінку системи за допомогою діаграми станів.

501

502

Рис. 50. Задання властивостей переходу

Тепер, коли діаграма станів знаходиться в початковому стані with_advertising, рекламні витрати кампанії визначаються змінноїMonthlyExpenditures. Як тільки діаграма станів покидає цей стан в момент часу SwitchTime, компанія перестає рекламувати продукт.

Запустіть модель і переконайтеся, що рекламна кампанія триває тепер тільки три роки.

ОПТИМІЗАЦІЯ РЕКЛАМНОЇ СТРАТЕГІЇ

Ринкова стратегія в даній моделі гранично проста: в певний момент часу компанія припиняє рекламувати продукт.

Ми ж хочемо знайти оптимальну ринкову стратегію для досягнення необхідної кількості споживачів до певного моменту часу при мінімальних витратах на рекламу.

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

Ми будемо оптимізувати значення параметрів MonthlyExpenditures і SwitchTime. Під час оптимізації, значення параметрів моделі будуть систематично змінюватися, щоб знайти найменше значення змінної TotalExpenditures, обраної в якості цільового функціоналу, при якому досягається насичення ринку до заданого моменту часу.

51

Рис. 51. Задання параметрів

Створіть інтерфейс експерименту

52

Рис. 52. Задання властивостей експерименту

Тим самим ми створимо заданий за замовчуванням інтерфейс для експерименту (див. Малюнок нижче) — набір елементів управління для відображення результатів процесу оптимізації по ходу його виконання.

53

Рис. 53. Діаграма процесу

Зверніть увагу, що створення інтерфейсу видаляє весь вміст діаграми оптимізаційного експерименту, тому ми рекомендуємо спочатку створити пропонований за замовчуванням інтерфейс, а вже потім змінювати його.

 ЗАВДАННЯ ДОДАТКОВОЇ ВИМОГИ (ПЕРЕВІРКА НАСИЧЕННЯ РИНКУ)

Тепер давайте задамо додаткова вимога до результатів оптимізації, яке буде перевірятися після виконання кожного «прогону» моделі. Ми хочемо, щоб через півтора року модельного часу продукт придбали 80000 чоловік.

54

Рис. 54. Задання вимог

Ми закінчили завдання додаткової вимоги до результатів оптимізації. Воно буде перевірятися після кожного «прогону» моделі. Якщо ця вимога не буде виконана, то отриманий в результаті даного «прогону» результат буде відкинутий.

ЗАПУСК ОПТИМІЗАЦІЇ

Тепер модель готова до проведення оптимізації.

55

Рис. 55. Оптимізація моделі

Коли процес оптимізації моделі завершиться, Ви побачите, що Краще значення функціоналу дорівнює чотирьом з гаком тисяч. Експеримент в підсумку видасть оптимальні значення параметрів SwitchTime і MonthlyExpenditures, при яких було досягнуто це значення функціоналу.

Тепер можна оновити модель цими значеннями параметрів SwitchTime і MonthlyExpenditures. Збережіть отримані значення параметрів в експерименті Simulation, щоб використовувати в нашій моделі знайдену оптимальну  стратегію. Запустіть експеримент Simulation. Тепер модель буде запущена з оптимальними значеннями параметрів, при яких в процесі оптимізації було отримано оптимальне значення функціоналу. Можете перевірити, що до заданого часу (1,5 року) досягається необхідна кількість користувачів продукту.

Тепер ми спланували стратегію завоювання ринку таким чином, щоб рекламна кампанія була найбільш раціональною та ефективною.

Виконала

Студентка групи ЕК-41

Ковальчук О. С.

Прокоментуйте першими

Залишити коментар

Ваш e-mail не буде публікуватись.

*