Подсчет потребителей продукта 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Подсчет потребителей продукта



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

Создадим функции сбора статистики для подсчета потенциальных потребителей продукта.

1. Откройте диаграмму класса Main. Выделите на диаграмме вложенный объект people.

2. Перейдите на вкладку Статистика панели свойств объекта people. Щелкните мышью по кнопке Добавить функцию сбора статистики. Откроется секция свойств для задания свойств новой функции сбора статистики по элементам этого реплицированного объекта (people).

3. Задайте имя функции – potentialAdopters. Оставьте выбранный по умолчанию Тип функции – кол-во.

Задайте Условие:

item.statechart.isStateActive(item.PotentialAdopter)

Эта функция будет вести подсчет количества агентов, для которых выполняется заданное условие, т.e. тех агентов, которые находятся в текущий момент времени в состоянии PotentialAdopter (являются потенциальными потребителями продукта). Здесь item – это агент (элемент реплицированного объекта people).

4. Создайте еще одну функцию сбора статистики (рис. 7). Назовите ее adopters. Тип функции – кол-во. Условие:

item.statechart.isStateActive(item.Adopter)

Данная функция будет вести подсчет количества агентов, которые находятся в состоянии Adopter (т.е. уже приобрели продукт).

Рисунок 7

5. Добавьте временной график, отображающий динамику изменения численностей потребителей и потенциальных потребителей продукта. Расположите его, как показано на рис. 8.

Рисунок 8

Настройте свойства графика (рис. 9).

Рисунок 9

6. Запустите модель. На графике (рис. 10) просмотрите динамику моделируемого процесса.

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

Рисунок 10

Учет влияния общения людей

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

Чтобы учесть влияние общения людей, внесем в нашу модель небольшие изменения.

Откройте диаграмму класса Person и создайте два новых параметра:

1) параметр ContactRate – среднегодовое количество встреч человека. Значение по умолчанию – 100. Тип – int. Предположим, что человек в среднем встречается со 100 людьми в год.

2) параметр AdoptionFraction – сила убеждения человека, влияющая на то, сколько людей он сможет убедить в необходимости купить продукт. Значение по умолчанию – 0.015. Тип – double.

Измените стейтчарт агента:

1) откройте диаграмму стейтчарта adoption.

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

Рисунок 11

3) задайте интенсивность, по которому происходит переход, – ContactRate.

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

4) задайте Действие перехода:

send("Buy!", RANDOM);

Такой переход посылает сообщение случайно выбранному человеку. Метод send() отсылает сообщение другому агенту. Первый аргумент задает сообщение, которое будет послано, а второй задает агента, которому сообщение будет адресовано. В нашем случае мы посылаем сообщение какому-то случайно выбранному агенту, поэтому в качестве значения аргумента мы используем специальную константу RANDOM (рис. 12).

Рисунок 12

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

5) добавьте еще один переход из состояния PotentialAdopter в состояние Adopter (рис. 13). Он будет срабатывать по сигналу, который будет генерироваться внутренним переходом состояния Adopter.

Рисунок 13

6) измените свойства этого перехода.

Вероятность принятия решения о покупке продукта будет зависеть от силы убеждения человека. В нашей модели данная характеристика задается параметром AdoptionFraction.

Введите randomTrue(AdoptionFraction) в поле Доп. условие. В результате введения дополнительного условия продукт будет приобретаться с вероятностью, задаваемой параметром AdoptionFraction.

Переход будет срабатывать, когда диаграмма состояний этого агента получит сообщение "Buy!" («Купи!») от другого агента – своего знакомого. Чтобы этот переход срабатывал при получении сообщения, на странице свойств данного перехода выберите из выпадающего списка Происходит При получении сообщения (рис. 14). Укажите, что переход будет срабатывать только при получении сообщения соответствующего содержания. Для этого выберите из группы Тип сообщения опцию String, далее – опцию Если сообщение равно и введите "Buy!" в расположенном ниже поле.

Рисунок 14

Измените свойства агента.

Откройте свойства класса Person (рис. 15). В поле Действие при получении сообщения введите statechart.receiveMessage(msg);

Рисунок 15

Запустите модель. Изучите динамику изменения числа потребителей и потенциальных потребителей продукта. Графики переменных должны представлять собой S-образные кривые.



Поделиться:


Последнее изменение этой страницы: 2021-05-12; просмотров: 70; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.117.196.217 (0.012 с.)