Материалы тренинга по AnyLogic
.pdfРынок. Фаза1. Шаг1
Создайтеновую модель
Назовите |
|
модель Market AB |
|
Использовать шаблон модели
Выберите Агентное
моделирование
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
381 |
|
|
Мысоздадим модель рынка в отдельномпроекте. На |
|
этотраз давайте воспользуемсяпомощьюмастера |
|
создания моделей. Если раньше Вам приходилось |
|
всегда начинать создание модели "с чистоголиста", |
|
зачастуювыполняяодни и те же типовые действия |
|
длякаждо ново |
создаваемо модели, тотеперь |
Выможете перепоручить выполнение первых, |
|
, |
. |
Откройтемастер создания моделей, выбрав
.
Назовите модель Market AB.
Выберите опцию Использовать шаблон модели.
ВыберитеинтересующийВасметодмоделирования,
аименно Агентное моделирование, и перейдите к следующим страницам мастера.
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
382 |
Рынок. Фаза1. Шаг2
агентаConsumer
Задайте Начальное количествоагентов: 5000
Введите 400 в полях
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
383 |
|
|
можете продолжить конфигурироватьсоздаваемую модель, выбираяту функциональность, которую Вы хотите иметь в Вашей модели.
Каждыйагентбудетпредставленвмоделиэкземпляром
классаактивного объекта, который будет объявлен классом агента. Здесь Вы можете задатьимя этого класса. Назовитеего Consumer.
Задайтеколичествоагентоввмодели: 5000. AnyLogic
создаст5000 экземпляров класса Consumer, каждый из которых моделирует конкретного агента потребителя.
Задайте размерностипространства среды, в которой будут обитать агенты: введите в полях Высота и Ширина 400. Теперь агенты будут отображатьсяна презентации в прямоугольном пространстве400*400 пикселей.
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
384 |
Рынок. Фаза1. Шаг3
Установите этот флажок
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
385 |
|
|
Закончите конфигурирование модели на последних двух
страницахмастерасоздания моделей.
Установите флажок Добавить простое поведение. Тем |
|||
|
самыммы зададимпростейшее поведение у агентов с |
||
|
помощью диаграммысостояния. |
|
|
|
итоге мастер создастагентную модель, которая |
удет |
|
включать в себя двакласса: Main иConsumer. |
|
||
|
возможностирасстановкиагентов в пространстве, их |
||
|
взаимодействия друг с другом и т.д.) В этом классе также |
||
|
его поведение. |
|
, |
|
|
|
|
• |
Вклассе Main естьобъект Среда иреплицированный |
||
|
объект people (классаConsumer), моделирующий |
||
|
агентов. Объект Среда , |
отвечает за расположение |
|
|
их взаимодействиедруг с другом. |
|
|
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
386 |
||
|
|
|
|
Рынок. Фаза1. Шаг4
Откройте диаграммуConsumer
AdEffectiveness умолчанию: 0.01/day()
|
|
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
387 |
характеристикпотребителя.
Откройтедиаграмму класса Consumer. Выувидите диаграмму состояний, состоящуюиз двух состояний. на ылаавтоматически созданамастером создания моделей.
Добавьтепараметр AdEffectiveness. Он будетзадавать подверженностьчеловека рекламе, определяя то, какойв среднем за день процент потенциальных потребителейпримет решение о приобретении продукта. Мыпредполагаем, чтов среднем за день к такомурешению приходит1% потенциальных потребителей, поэтомуи задаем в качестве значения параметра 0.01/day().
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
388 |
Рынок. Фаза1. Шаг5
Переименуйте состояние
Измените Цвет
заливкисостояния на серебряный(silver)
Измените
е ствиепри входе
Измените свойства нижнегосостояния
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
389 |
|
|
Мызададим поведениепотребителя как последовательностьдвух
PotentialUser потребитель, находящийся в этом состоянии, пока только потенциально заинтересован в покупке продукта
User – потребительужеприобрелпродукт
Изменитедиаграмму состояния, созданнуюмастером создания моделей:
Назовите верхнее состояниеPotentialUser.
Измените цвет состояния. Чтобывыбрать нестандартныйцвет, щелкните поссылке ругие цвета извыпадающего списка вет заливки и выберите нужныйВам цвет издиалога Цвета.
Замените Действие при входе состоянияна person.setFillColor(silver);
Таким образом мы изменяемцвет презентации(фигурки человечка) на серебряный(silver) для того, чтобыотразить изменениеего состоянияна презентации. десь erson это фигуры презентациипотребителя, созданноймастером создания моделей.
Аналогичноизменитесвойстванижнегосостояния:
Имя: User
Действие при входе: person.setFillColor(limeGreen);
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
390 |
Рынок. Фаза1. Шаг6
Измените свойстваперехода
Удалите переход
|
|
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
391 |
Переход, ведущий из состояния PotentialUser в состояние
User, будет моделировать покупку продукта под влиянием рекламы. Назовите его Ad. Сделайте этот переход сра атывающимс интенсивностью AdEffectiveness. Такой тип перехода являетсяничем иным,
какпереходом, срабатывающимпоистечении
стохастического таймаута. Значение таймаутавычисляется согласноэкспоненциальному распределению отдельно для каждого агента в момент перехода диаграммыв состояниеPotentialUser. Поэтому каждому потребителю
потребуетсясвоевремянапринятиерешенияопокупке,
но при этом в среднем задень продукт будет приобретать 1% потенциальных потребителей.
Удалите переход, ведущи из нижнего в верхнее состояние, поскольку на данном этапе мы полагаем срок
службыпродуктабесконечным, ипоэтомуоднажды
купивший продукт человек остаетсяего пользователем навсегда.
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
392 |
Рынок. Фаза1. Шаг7
Выделите объект people ипереименуйте его в consumers
ЗадайтеИмя и Условие
статистическойфункции
Откройте страницу |
Задайте еще одну функцию |
|
|
Щелкните по кнопке |
|
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
393 |
|
|
Откройте диаграмму класса Main и переименуйте реплицированный объект, моделирующий потребителей, в consumers.
Мы хотим в каждый момент времени знать, сколько человек уже приобрели продукт. Для этого мы зададим функции, которые будут вычислять количество потребителей и потенциальных потребителей продукта.
Вначале задайте функцию для подсчета потенциальных потребителей. Для этого перейдите на страницу свойств Статистика реплицированного объектаи щелкните по кнопке Добавить ф юсбора статистики.
Мы хотим итерироваться по всем агентам для того, чтобы узнать, сколько |
|
изнихнаходятсявсостоянии PotentialUser. Функциятипа Кол во делает |
|
именно это: она итерируется по агентам и подсчитывает, для скольких |
|
агентов выполняется заданное условие. Назовите эту функцию NPotential. |
|
Введите item.statechart.isStateActive(Consumer.PotentialUser); в качестве |
|
. |
, |
диаграммы состояний, isStateActive() – метод, возвращающий текущее состояниедиаграммы, а PotentialUser – имя состояния, заданного в классе агента, поэтому мы и добавляем префикс из имени этого класса Consumer.
Задайте еще одну функцию сбора статистики. Назовите ее NUser и сделайте так, чтобы она подсчитывала агентов, удовлетворяющих Условию item.statechart.isStateActive(Consumer.User);
(мы рекомендуем скопировать готовую строку из элемента NPotential и немного ее подправить).
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
394 |
Рынок. Фаза1. Шаг8
Передвиньте фигурку |
|
человечкасюда |
|
|
диаграммус накоплением
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
395 |
|
|
На диаграмме Main передвиньтефигурку человечка
(тоесть, презентацию вложенногообъектаconsumers) в
точку(300,200).
Добавьтевременную диаграммус накоплением для
визуализациидинамикиизменениячисленностей
владельцев и потенциальныхвладельцев продукта.
• Добавьтедваэлементаданныхдляотображенияна
диаграмме: consumers.NUser() с заголовкомUsers и цветомlimeGreen и consumers.NPotential() с заголовком
Potential users и цветомsilver. Здесь мы вызываем статистические функцииNUser и NPotential, созданные нами на прошломшаге.
•Сконфигурируйтемасштаб и частотуобновления диаграммы, как показанона слайде выше.
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
396 |
Рынок. Фаза1. Шаг9
Щелкните по
Выберите дни
Перейдитена |
|
вкладкуМодельное |
|
время |
|
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
397 |
|
|
Откройтесвойстваэксперимента Simulation:Main.
На странице свойствМодельное время смените
полеОстановить Нет.
а странице сво ств сновные вы ерите луча ное начальное число (уникальные «прогоны»).
Посколькунаша модель стохастическая источником случайногоповедения является переходAd в
,
с заданной интенсивностью), торезультаты моделирования будутзависеть отначальногочисла генератора случайных чисел. ВыбравСлучайное начальное число мы говоримAnylogic, чтобыдля каждогопрогонаиспользовалисьразличные последовательностислучайных чисел.
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
398 |
Рынок. Фаза1. Шаг10
Запустите модель
Увеличьте скорость выполнениямодели
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
399 |
|
|
.
Выувидите, чточисленность людей, приобретших изучаемый нами продукт(они отображаютсяна презентации зеленым цветом), постояннорастет – такимобразомсказывается эффект рекламы продукта.
Вконцеконцоввселюдиприобретутнашпродукт.
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
400 |