Назначение и возможности инструментальной среды AnyLogic введение имитационное моделирование



бет48/52
Дата07.02.2022
өлшемі1,01 Mb.
#89408
1   ...   44   45   46   47   48   49   50   51   52
Байланысты:
Эни-Лоджик

Учет влияния общения людей
В текущей модели люди приобретают продукт только под влиянием рек- ламы. На самом деле рекламный эффект играет значительную роль только в момент выпуска продукта на рынок. В дальнейшем все большую роль будет иг- рать общение людей со своими знакомыми, которые этот продукт уже приобре- ли. В основном люди приобретают новые продукты именно под влиянием убе- ждения своих знакомых; данный процесс чем-то схож с распространением эпи- демии.
Чтобы учесть влияние общения людей, внесем в нашу модель небольшие изменения.
Откройте диаграмму класса Person и создайте два новых параметра:
1) параметр ContactRate – среднегодовое количество встреч человека. Значение по умолчанию – 100. Тип – int. Предположим, что человек в среднем встречается со 100 людьми в год;
2) параметр AdoptionFraction – сила убеждения человека, влияющая на то, сколько людей он сможет убедить в необходимости купить продукт. Значение по умолчанию – 0.015. Тип – double.

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


Рис. 50
3) задайте интенсивность, по которому происходит переход, –ContactRate.
Данный переход будет моделировать покупку продукта знакомым этого человека. От того, насколько быстро владелец продукта сумеет убедить своего знакомого в необходимости покупки, будет зависеть от силы убеждения этого человека и от того, сколько знакомых он встречает за год;
4) задайте Действиеперехода:
send("Buy!", RANDOM);
Такой переход посылает сообщение случайно выбранному человеку. Ме- тод send() отсылает сообщение другому агенту. Первый аргумент зада- ет сообщение, которое будет послано, а второй задает агента, которому сообщение будет адресовано. В нашем случае мы посылаем сообщение какому- то случайно выбранному агенту, поэтому в качестве значения аргумента мы используем специальную константу RANDOM (рис. 51).

Рис. 51
Данный переход генерирует сигнал для стейтчарта какого-то знакомого.

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


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

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


Рис. 53
Измените свойства агента.
Откройте свойства класса Person (рис. 54). В поле Действие при получе- ниисообщения введите statechart.receiveMessage(msg);
Рис. 54
Запустите модель. Изучите динамику изменения числа потребителей и потенциальных потребителей продукта. Графики переменных должны пред- ставлять собой S-образные кривые.




Достарыңызбен бөлісу:
1   ...   44   45   46   47   48   49   50   51   52




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет