Пользовательский интерфейс AnyLogic 


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



ЗНАЕТЕ ЛИ ВЫ?

Пользовательский интерфейс AnyLogic



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

В правой части рабочей области отображается панель Свойства. Панель Свойства используется для просмотра и изменения свойств выбранного в данный момент элемента (или элементов) модели.

В центре рабочей области AnyLogic Вы увидите графический редактор диаграммы типа агентов Main.

Задание 2. Создание накопителей

Давайте начнем создание диаграммы накопителей и потоков. И начнем мы с создания накопителей. В нашей модели их два – они моделируют численности потребителей и потенциальных потребителей продукта. Накопитель в AnyLogic задается с помощью одноименной переменной.

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

1. Вначале откройте палитру Системная динамика в панели Палитра. Чтобы открыть какую-либо палитру, нужно щелкнуть мышью по соответствующей иконке на вертикальной панели слева от палитры. Пока Вы привыкаете к иконкам палитры, Вы можете навести указатель мыши на панель и подождать, пока появится всплывающее окно, в котором Вы увидите названия палитр.

2. Перетащите элемент Накопитель  из палитры Системная динамика на диаграмму типа агентов.

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

4. Когда Вы добавите элемент на диаграмму, он будет выделен, и его свойства будут отображены в панели Свойства. Здесь Вы можете изменить свойства элемента в соответствии с Вашими требованиями. Обратите внимание, что панель Свойства является контекстно-зависимой - она отображает свойства выделенного в текущий момент элемента. Поэтому позднее для изменения свойств элемента нужно будет предварительно щелчком мыши выделить его в графическом редакторе или в панели Проекты.

Чтобы у Вас всегда была уверенность в том, что в текущий момент в рабочем пространстве выбран именно нужный Вам элемент, и именно его свойства Вы редактируете в панели Свойства, обращайте внимание на первую строку, показываемую в панели Свойства - в ней отображается имя выбранного в текущий момент времени элемента и его тип - в приведенном на рисунке примере это stock и Накопитель соответственно

Панель Свойства. На данном рисунке в панели отображаются свойства выделенного накопителя.

5. В поле Имя введите новое имя накопителя: PotentialAdopters.

6. Немного увеличьте размер значка накопителя. Для этого выделите его щелчком мыши в графическом редакторе и перетащите в сторону появившийся в нижнем правом углу значка маркер.

 Создайте накопитель для моделирования численности потребителей

1. Аналогично создайте еще один накопитель.

Чтобы создать накопитель такого же размера, проще всего склонировать существующий накопитель, перетащив его мышью с нажатой клавишей Ctrl (Mac OS: Cmd) (при этом свойства нового элемента будут теми же, что и у склонированного, но в данном случае это не важно, поскольку мы изменили только одно свойство накопителя - его имя).

2. Поместите новый накопитель справа от накопителя PotentialAdopters, как показано на приведенном ниже рисунке.

3. Назовите его Adopters.

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

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

Задание 3. Добавление потока продаж продукта

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

В AnyLogic поток задается переменной поток. Значение потока вычисляется в соответствии с заданной формулой.

 Добавьте поток, ведущий из накопителя PotentialAdopters в накопитель Adopters

1. Сделайте двойной щелчок мышью по накопителю, из которого поток вытекает (PotentialAdopters), а затем щелкните по тому накопителю, в который он втекает (Adopters).

2. AnyLogic создаст новый поток и сделает его исходящим потоком для накопителя PotentialAdopters и входящим - для Adopters. Поток отображается в виде стрелки со значком вентиля посередине. Стрелка показывает направление потока - в данном случае поток будет уменьшать значение накопителя PotentialAdopters и увеличивать значение Adopters.

3. Выделите стрелку созданного потока в графическом редакторе и измените имя потока на AdoptionRate.

В результате диаграмма потоков и накопителей должна будет выглядеть следующим образом:

Можете теперь взглянуть на свойства накопителей. Формулы накопителей должны выглядеть следующим образом:

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

Формулу, согласно которой будет вычисляться значение потока, мы зададим чуть позднее.

Задание 4. Задание констант

Теперь мы зададим константы нашей модели с помощью параметров.

 Создайте константу, задающую общую численность населения

1. Перетащите элемент Параметр  из палитры Системная динамика на диаграмму типа агентов.

2. В панели Свойства задайте свойства этого параметра.

3. Измените имя параметра. Введите TotalPopulation в поле Имя.

4. В поле Значение по умолчанию введите 100000. Пусть общая численность населения в нашей модели будет именно такой.

Вы можете задать краткое описание параметра в секции свойств Описание. Введите текст, который поможет объяснить смысл константы тем, кто в дальнейшем будет работать с этой моделью.

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

 Создайте константу ContactRate

1. Аналогично создайте еще одну константу. Задайте Имя ContactRate.

2. Предположим, что каждый человек в среднем встречается со 100 людьми в год. Введите в поле Значение по умолчанию 100.

В этой модели интенсивность рекламы и вероятность того, что продукт будет приобретен под ее влиянием, полагаются постоянными. Поэтому мы зададим эффективность рекламы константой. Эффективность рекламы определяет, какая доля людей купит продукт вследствие ее влияния.

Создайте константу AdEffectiveness, задающую эффективность рекламы

1. Создайте еще одну константу и назовите ее AdEffectiveness.

2. Задайте значение по умолчанию 0.011.

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

 Создайте константу AdoptionFraction

1. Создайте еще одну константу и назовите ее AdoptionFraction.

2. Задайте значение по умолчанию 0.015.

Задание 5. Задание начальных значений накопителей

Теперь мы можем задать начальные значения накопителей.

Мы хотим задать общую численность людей в нашей модели (заданную параметром TotalPopulation) в качестве начального значения накопителя PotentialAdopters.

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

 Чтобы задать связь

1. Сделайте двойной щелчок по элементу Связь палитры Системная динамика. Значок элемента при этом должен измениться на следующий: .

2. Сразу после этого, щелкните в графическом редакторе по элементу, который упоминается в выражении начального значения (TotalPopulation).

3. Затем щелкните по накопителю PotentialAdopters, к которому должна следовать создаваемая связь зависимости.

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

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

 Задайте начальное количество потенциальных потребителей продукта

1. В графическом редакторе или в панели Проекты выделите накопитель PotentialAdopters щелчком мыши.

2. В панели Свойста введите TotalPopulation в поле Начальное значение. Чтобы не печатать полностью имена функций и переменных в формулах, можете воспользоваться Мастером подстановки кода. Чтобы открыть Мастер, щелкните мышью в том месте поля (в нашем случае – поля Начальное значение, куда Вы хотите поместить имя, а затем нажмите Ctrl+пробел (Mac OS: Alt+пробел).

3. Появится окно Мастера подстановки кода, перечисляющего переменные модели и функции, доступные в текущем контексте. Прокрутите список к имени, которое Вы хотите вставить, или введите первые буквы имени, пока оно не будет выделено в списке. Двойным щелчком мыши по имени добавьте его в поле формулы.

4. В результате в поле Начальное значение должно быть добавлено имя параметра TotalPopulation, значение которого и будет определять начальное значение этого накопителя (начальную численность потенциальных покупателей продукта).

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

Теперь мы закончили задание накопителей. Нам осталось добавить на диаграмму потоков и накопителей динамические переменные - и модель будет готова.

Задание 6. Создание динамических переменных

Нам нужно создать две динамические переменные, которые будут соответствовать двум составляющим потока приобретения продукта:

1. Приобретениям, совершенным под влиянием рекламы.

2. Приобретениям, совершенным под влиянием общения потребителей продукта с потенциальными потребителями.

 Создайте динамическую переменную AdoptionFromAd

1. Перетащите элемент Динамическая переменная  из палитры Системная динамика на диаграмму типа агентов.

2. В панели Свойства введите новое Имя переменной: AdoptionFromAd.

Теперь мы хотим задать формулу для этой динамической переменной. Влияние рекламы моделируется следующим образом: некий постоянный процент потенциальных клиентов AdEffectiveness всё время становятся клиентами. Их доля в AdoptionRate равна, соответственно, PotentialAdopters*AdEffectiveness.

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

 Добавьте связи от двух переменных к зависимой от них AdoptionFromAd

1. Добавьте связи, ведущие от AdEffectiveness и PotentialAdopters к AdoptionFromAd.

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

Вы могли заметить, что эта связь выглядит немного иначе, чем та, что ведет от TotalPopulation к PotentialAdopters. Связи с переменными, упоминающимися в начальных значениях накопителей, рисуются пунктирными линиями, в то время как все остальные - сплошными.

3. Добавьте еще одну связь, ведущую от AdEffectiveness к AdoptionFromAd.

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

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

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

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

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

Теперь нужно учесть тот факт, что в результате общения не все те, кто еще не купил этот продукт, сразу побегут его покупать - если кого-то доводы своего знакомого, успешно пользующегося изучаемым нами продуктом, могут убедить, то кто-то может остаться к ним равнодушным, и своего решения не покупать продукт не изменить. Поэтому мы добавим в нашу формулу еще один сомножитель AdoptionFraction, задающий силу убеждения владельцев продукта, определяющую ту долю контактов, которая приводит к продажам продукта. Таким образом, наша формула приобретает вид Adopters*ContactRate*AdoptionFraction.

И наконец, нам нужно учесть, что на данный момент наша формула не учитывает того, что владельцы продукта будут общаться как с потенциальными потребителями, так и с теми, кто уже владеет продуктом. И общение с последними ни к каким новым продажам продукта не приведет. Поэтому нам нужно учесть в нашей формуле и вероятность того, что тот, с кем общался потребитель, ещё не владеет интересующим нас продуктом. Эта вероятность задается так: PotentialAdopters/TotalPopulation.

В итоге наша формула будет выглядеть следующим образом: Adopters*ContactRate*AdoptionFraction*PotentialAdopters/TotalPopulation

Именно столько потенциальных потребителей будут приобретать продукт в единицу модельного времени под воздействием общения с владельцами этого продукта.

 Создайте динамическую переменную AdoptionFromWOM

1. Аналогично создайте еще одну динамическую переменную.

2. Назовите ее AdoptionFromWOM.

3. Задайте для этой переменной следующую формулу:

ContactRate * AdoptionFraction * PotentialAdopters * Adopters / TotalPopulation

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

5. Щелкните мышью по индикатору. Вы увидите контекстное меню, состоящее из пунктов Добавить отсутствующую связь для:.... Поочередно щелкнув по всем этим пунктам, Вы добавите на диаграмму все недостающие связи.

В итоге у Вас должна будет получиться диаграмма следующего вида:

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

Задайте формулу потока

1. Выделите поток AdoptionRate щелчком мыши.

2. Перейдите в панель Свойства.

3. Введите правую часть формулы, по которой будет вычисляться значение потока, в поле AdoptionRate=: AdoptionFromAd + AdoptionFromWOM

4. Добавьте соответствующие связи от этих переменных к потоку AdoptionRate.

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

Связи имеют полярность, положительную или отрицательную:

· Положительная связь означает, что два элемента системной динамики изменяют свои значения в одном направлении, т.e. если значение элемента, из которого направлена связь, уменьшается, значение другого элемента уменьшается тоже. Аналогично, если увеличивается значение одного элемента, то и значение зависимого от него элемента увеличивается тоже.

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

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

 Проставьте полярности у связей

1. Чтобы отобразить у связи значок полярности, выделите связь и выберите нужный символ (+ или -) из группы кнопок Полярность в панели свойств связи:

2. Здесь же при желании можно изменить и цвет линии связи, а также ее толщину.

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

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

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

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

 Добавьте идентификатор цикла, вызывающего насыщение рынка

1. Перетащите элемент Цикл  из палитры Системная динамика на графическую диаграмму, как показано на рисунке ниже:

2. Перейдите в панель Свойства, чтобы изменить свойства цикла.

3. Задайте Направление цикла - этот цикл направлен Против часовой стрелки.

4. В поле Текст введите краткое описание этого цикла, объясняющее его смысл: Market Saturation (или Насыщение рынка). Этот текст будет показан на презентации.

5. Из группы кнопок Тип выберите символ, который будет отображаться для данного цикла. Выберите символ B (обозначающий Balancing, то есть компенсирующий цикл).

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

Цикл является:

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

· уравновешивающим или компенсирующим, если результат противоречит начальному предположению.

 Добавьте идентификатор для цикла, задающего общение людей друг с другом

1. Добавьте еще один идентификатор цикла, как показано на рисунке ниже:

2. Этот цикл соответствует общению людей друг с другом. Он является усиливающим, поэтому выберите для него символ R (обозначающий усиливающий, Reinforcing цикл)

3. Задайте Word of Mouth (или Устное общение) в качестве текста.

4. Задайте Направление цикла - этот цикл направлен По часовой стрелке.

В итоге Ваша диаграмма должна выглядеть следующим образом:

Задание 7. Настройка запуска модели

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

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

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

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

 Задайте остановку модели по прошествии 8 единиц модельного времени

1. В панели Проекты, выделите эксперимент Simulation:Main щелчком мыши.

2. В секции Модельное время панели Свойства, выберите В заданное время из выпадающего списка Остановить. В расположенном ниже поле введите 8. Модель остановится после того, как истекут 8 единиц модельного времени.

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

В режиме виртуального времени модель выполняется без привязки к физическому времени – она просто выполняется настолько быстро, насколько это возможно. Этот режим лучше всего подходит в том случае, когда требуется моделировать работу системы в течение достаточно длительного периода времени.

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

 Задайте выполнение модели в режиме реального времени

1. В панели Проекты, выделите эксперимент Simulation:Main щелчком мыши.

2. Перейдите в секцию Модельное время и выберите опцию Реальное время со скоростью.

3. Задайте скорость выполнения модели, т.e., сколько единиц модельного времени будет соответствовать одной секунде реального времени. Выберите в выпадающем списке справа, скажем, 2.

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

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

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

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

 Увеличьте частоту сбора данных для динамических переменных

1. В панели Проекты, сделайте двойной щелчок по элементу Main.

2. Перейдите в секцию Специфические панели Свойства и введите0.1 в поле Период.

Задание 8. Запуск модели

Постройте Вашу модель с помощью кнопки панели инструментов Построить модель (при этом в рабочей области AnyLogic должен быть выбран какой-то элемент именно этой модели). Если в модели есть какие-нибудь ошибки, то построение не будет завершено, и в панель Ошибки будет выведена информация об ошибках, обнаруженных в модели. Двойным щелчком мыши по ошибке в этом списке Вы можете перейти к предполагаемому месту ошибки, чтобы исправить ее.

Панель Ошибки

После того, как Вы исправите все ошибки и успешно построите Вашу модель, Вы можете ее запустить.

 Запустите модель

1. Щелкните мышью по кнопке панели инструментов Запустить и выберите из открывшегося списка эксперимент, который Вы хотите запустить. Эксперимент этой модели будет называться Bass Diffusion/Simulation.

В дальнейшем по нажатию на кнопку Запустить (или по нажатию F5) будет запускаться тот эксперимент, который запускался Вами в последний раз. Чтобы выбрать какой-то другой эксперимент, Вам будет нужно щелкнуть мышью по стрелке, находящейся в правой части кнопки Запустить и выбрать нужный Вам эксперимент из открывшегося списка (или щелкнуть правой кнопкой мыши по этому эксперименту в панели Проекты и выбрать Запустить из контекстного меню).

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

Щелкните по этой кнопке. Вы увидите диаграмму потоков и накопителей. Рядом с каждым элементом будет отображаться его текущее значение.

При желании Вы можете изменить скорость выполнения модели с помощью кнопок панели управления окна презентации Замедлить и Ускорить .

AnyLogic поддерживает различные инструменты для сбора, отображения и анализа данных во время выполнения модели. Простейшим способом просмотра текущего значения и истории изменения значений переменной или параметра во время выполнения модели является использование окна инспекта.

 Исследуйте динамику обеих составляющих потока продаж

1. Щелкните мышью по переменной AdoptionFromAd в окне презентации. Появится желтое окошко - окно «инспекта». При желании Вы можете передвинуть это окно, перетащив его мышью за заголовок. Изменить размер можно перетащив мышью нижний правый угол окна.

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

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

3. Аналогичным образом откройте окно инспекта переменной AdoptionFromWOM и переключите его в режим графика.

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

Задание 9. Добавление диаграмм

Как мы уже отмечали ранее, AnyLogic поддерживает различные инструменты для сбора, отображения и анализа данных во время выполнения модели. Простейшим способом просмотра истории изменения значений переменной во время выполнения модели является использование окна инспекта. Для более тщательной визуализации и анализа данных используются диаграммы и объекты сбора данных, расположенные на палитре Статистика.

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

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

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

1. Перетащите элемент Временной график  из палитры Статистика на диаграмму типа агента Main и измените, размер графика, как показано на приведенном ниже рисунке:

2. Перейдите в панель Свойства.

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

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

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

6. В поле Заголовок введите Potential adopters. Эта строка будет отображаться в легенде диаграммы для этого элемента данных.

7. Аналогично добавьте на график еще один элемент данных, который будет отображать значение накопителя Adopters (если у Вас возникнут вопросы, то Вы можете свериться с расположенным ниже рисунком):

8. В поле Временной диапазон секции свойств Масштаб задайте диапазон временной оси диаграммы (количество единиц модельного времени (N), для которого будут отображаться значения переменной): 8. Диаграмма будет отображать график только для заданного временного интервала (равного в нашем случае длительности периода моделирования).

9. Измените частоту обновления графика новыми данными в секции свойств Обновление данных. Введите 0.1 в поле Период для опции Обновлять автоматически.

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

1. Добавьте на диаграмму еще один временной график. Поместите его под добавленным ранее графиком:

2. Добавьте на график новый элемент данных (в качестве Значения в этом случае должно быть задано имя потока AdoptionRate) и измените, свойства графика, как показано на приведенном рисунке:

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



Поделиться:


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

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