Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Материалы тренинга по AnyLogic

.pdf
Скачиваний:
218
Добавлен:
28.03.2015
Размер:
12.93 Mб
Скачать

Рынок. Фаза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