Материалы тренинга по AnyLogic. Решение на уровне модели мир без риска мир без риска реальный мир Мир моделей Реальный мир Решение Проблема
Скачать 12.33 Mb.
|
VenSim AnyLogic Накопитель Тип: Накопитель Имя: Stock d(Stock)/dt = : InFlow – OutFlow1 – OutFlow2 Тип Накопитель Имя: Stock d(Stock)/dt = : InFlow – OutFlow1 – OutFlow2 Поток ( ) ( ) Тип: Поток Имя: Flow Тип: Поток Имя: Flow + Имя: Flow Flow = : Aux1 / Имя Flow Flow = : Aux1 / Aux2 Тип: Вспомогательная переменная Тип: Вспомогательная переменная - Вспомогат. переменная + + Тип: Вспомогательная переменная Имя: Aux1 Flow = : Aux1 + Тип Вспомогательная переменная Имя: Aux1 Flow = : Aux1 + Table1(Constant) Константа - Тип: Параметр Имя: Начальное значение Тип Параметр Имя: Начальное значение 011 Табличная функция Начальное значение: 0.011 Начальное значение: 0.011 Тип: Табличная функция Имя: Table1 Тип: Табличная функция Имя: Table1 F © 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru 460 Данные: … Данные: … Новые инструменты (Новые инструменты (Инструмент задания потоков Инструмент задания потоков Упрощает рисование потока между переменными Автоматически добавляет уравнения в накопители Автоматически добавляет уравнения в накопители Двойной щелчок Щелчок Stock Rate Двойной щелчок Щелчок Двойной щелчок Щелчок Двойной щелчок Щелчок • Редактирование дуг зависимостей р у редактируйте вид стрелки перетаскиванием 2002-2011 ООО Экс Джей Текнолоджис», Новые инструменты (Новые инструменты (Создание копий переменных Создание копий переменных p Total Advertising Effectiveness Adoption from Advertising Adoption from Word of Mouth Population Ad ti Adoption Fraction Contact Rate Rate © 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru 462 Анимация потоковой диаграммы Анимация потоковой диаграммы • Просмотр значений и графиков переменных с Просмотр значений и графиков переменных с помощью окна инспекта © 2002-2011 ООО Экс Джей Текнолоджис», Инструменты для редактирования диаграмм ру д р д р д р • Подстановка кода • Стрелки зависимостей Подстановка кода Стрелки зависимостей Нажмите пробел при вводе выражения Потоки Влияния Дуги зависимостей можно редактировать С р др Список содержит локальные переменные, параметры и наиболее часто употребляемые функции 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru 464 Встроенные функции Встроенные функции • Часто используемые математические функции Часто используемые математические функции См. класс java.lang.Math в Справочнике классов Java: abs(x) acos(x) asin(x) atan(x) atan2(y,x) ceil(x) cos(x) exp(x) floor(x) limit(min x max) limitMax(x max) limitMin(min x) log(x) max(a b) min(a b) limit(min,x,max) limitMax(x,max) limitMin(min,x) log(x) max(a,b) min(a,b) pow(x) rint(x) round(x) sin(x) sqrt(x) tan(x) toDegrees(x) toRadians(x) xidz(a,b,x) Вы можете использовать любую Java функцию или константу, например Math.PI, Math.toDegrees(angrad)…. С ф d Специальная функция Две формы функции delay( x, shift ) , delay( x, shift, initial ) X delay( X, T, a ) время время a © 2002-2011 ООО Экс Джей Текнолоджис», время время T Табличные функции Табличные функции • Позволяет импортировать внешние табличные данные в р р д модель и использовать их как функцию MyTable( x Поддерживает различные типы интерполяций и аппроксимаций Без интерполяции Шаговая Линейная Кубические сплайны 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru 466 Математические функции Математические функции • Возможность один раз задать часто используемое выражение и затем многократно использовать его в модели Функция может работать со скалярами: Имя: normalized Имя: normalized F Тип функции: real Аргументы: real Выражение / (A + B + Тип функции: real Аргументы: real Выражение / (A + B + C) ( ) ( ) © 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru 467 Массивы Массивы • Некоторые задачи содержат данные с размерностями Некоторые задачи содержат данные с размерностями inmigration dt population inmigration outmigration g gender population inmigration outmigration regions p p Особенности массивов AnyLogic – Массив может иметь произвольное количество размерностей Поддерживаются все арифметические операции и большинство функций функций Все операции поэлементны , в отличие от линейной алгебры 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru 468 Объектно‐ориентированное СД моделирование р р Д д р • Традиционные СД пакеты Позволяют построение только одной большой плоской диаграммы потоков и накопителей Такие диаграммы часто становятся слишком трудны для понимания и й внесения изменений Предполагает создание хорошо структурированных моделей Предполагает создание хорошо структурированных моделей Позволяет создавать иерархические модели Позволяет создавать повторно используемые компоненты СД моделей моделей Иконка Instance на верхнем уровнена верхнем уровне, внешняя © 2002-2011 ООО Экс Джей Текнолоджис», Дискретные события в СД моделях Дискретные события в СД моделях С б Д й • События – Порождают периодические б • Диаграммы состояний Логика состояний и событий или единичные события событий Действие при входе production_rate = 10; Таймаут: 15 x operating on service Таймаут: 30 Таймаут: 1 Таймаут: Действие x += 2; x on Действие при входе production_rate = 0; d ti t t 15 30 45 10 production_rate t 31 62 30 61 © 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru 470 Стохастика в СД моделях Стохастика в СД моделях Таймаут: 15 d(x)/dt = uniform( 5, 10 ) 1. Таймаут: Действие x += uniform( -2, 2 ); • Неправильно: использовать случайные функции в правой части функции в правой части уравнений Результат будет зависеть, например от шага Таймаут: exponential(15) например, от шага интеграции • Правильно: связать 2. Таймаут: Действие x++; стохастику с дискретными событиями Случайные изменения переменных (1) – Случайные интервалы между событиями (2) © 2002-2011 ООО Экс Джей Текнолоджис», Анимация СД моделей. Апплеты Анимация СД моделей. Апплеты • Вы можете создавать достаточно сложные внешние д д интерфейсы для Ваших СД моделей Интерактивные диаграммы бизнес‐графики (в т.ч. нестандартные Возможность переключения между несколькими видами Возможность переключения между несколькими видами Элементы управления (бегунки, кнопки, флажки, и т.д.), с помощью которых можно инициализировать, запускать, приостанавливать и перезапускать модель перезапускать модель • Полнофункциональные модели могут запускаться как апплеты апплеты – Это позволяет напрямую доставлять модели даже удаленным клиентам! удаленным клиентам! Э A L Это не AnyLogic, а MS Internet Explorer! © 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru 472 Модель диффузии по Бассу по Бассу Эта презентация является частью стандартной программы обучения 2002-2011 ООО Экс Джей Текнолоджис», Диффузия по Бассу. Фаза Диффузия по Бассу. Фаза Классическая модель Рекламная кампания идёт д распространения нового продукта или инновации д всё время, и каждую единицу времени она превращает часть • Все люди ведут себя одинаково и могут быть либо потенциальными превращает часть Effectiveness потенциальных клиентов в либо потенциальными клиентами Adopters , либо клиентами ц клиентов • Начальные условия: Adopters • Потенциальные клиенты Adopters = 10000 Adopters = 0 П становятся клиентами с темпом продаж Adoption Rate который зависит от • Параметры: Advertising Effectiveness = 0.011 Rate , который зависит от рекламы 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru 474 Диффузия по Бассу. Фаза 1. Шаг Диффузия по Бассу. Фаза 1. Шаг Создайте новую модель и назовите ее Bass Diffusion д у д • Перейдите на палитру Системная динамика • Добавьте на диаграмму два Накопителя • Добавьте на диаграмму два Накопителя • Назовите накопители PotentialAdopters и Adopters 1. Перетащите Накопитель на диаграмму. Поместите метки с именами над значками накопителей 2002-2011 ООО Экс Джей Текнолоджис», Диффузия по Бассу. Фаза 1. Шаг Диффузия по Бассу. Фаза 1. Шаг Создайте переменную-поток Создайте переменную поток. Щелкните на переменной Adopters 1. Сделайте двойной щелчок по 3. Появится переменная ‐ поток. Получившиеся зависимости будут отображены стрелками. переменной PotentialAdopters 5. Перетащите метку имени наверх. Выберите переменную щелчком мыши. Вы увидите, что метка имени переменной закрашена стрелкой зависимости 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru 476 Диффузия по Бассу. Фаза 1. Шаг Диффузия по Бассу. Фаза 1. Шаг Назовите поток p 1 Введите здесь AdoptionRate и 2. Диалоговое окно предложит переименовать в формулах накопителей flowAuxVar на AdoptionRate 1. Введите здесь AdoptionRate и сразу после этого нажмите Ctrl+Enter 3. Оставьте установки по умолчанию и нажмите Формулы накопителей автоматически станут Ad ti R Проверьте формулы накопителей ссылаться на AdoptionRate © 2002-2011 ООО Экс Джей Текнолоджис», Диффузия по Бассу. Фаза 1. Шаг Диффузия по Бассу. Фаза 1. Шаг Создайте параметры и AdEffectiveness © 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru 478 Диффузия по Бассу. Фаза 1. Шаг Диффузия по Бассу. Фаза 1. Шаг Задайте начальное значение накопителя накопителя PotentialAdopters и формулу потока Вы увидите стрелки, показывающие зависимости показывающие зависимости переменных. Внешний вид стрелок можно редактировать перетаскиванием 2002-2011 ООО Экс Джей Текнолоджис», Диффузия по Бассу. Фаза 1. Шаг Диффузия по Бассу. Фаза 1. Шаг Запустите модель и проследите за динамикой процесса у д р д др ц с помощью окон инспекта переменных Щелкните попеременной чтобы Переключите окно в Щелкните попеременной, чтобы открыть ее окно инспекта Переключите окно в режим графика 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru 480 Диффузия по Бассу. Фаза 1. Вопросы Диффузия по Бассу. Фаза 1. Вопросы Сколько состояний есть у человека в этой. Сколько состояний есть у человека в этой модели (1) 1 (2) 2 (3) 3 2. Сколько людей приобретают продукт в день?* день? 3. Какова численность потребителей продукта по прошествии восьми лет Под единицей модельного времени в этой р модели понимается год 2002-2011 ООО Экс Джей Текнолоджис», Диффузия по Бассу. Фаза Диффузия по Бассу. Фаза Теперь добавим эффект • Так что у нас новое Теперь добавим эффект устной рекламы” • Предположим все Так что у нас новое слагаемое в темпе продаж Adoption Rate : Предположим, все контактируют со всеми • Количество контактов From Word of Mouth = Adopters * C t t R t Количество контактов человека в единицу времени ‐ Contact Rate Contact Rate * Adoption Fraction * [Potential Adopters / Co tact Если клиент контактировал с потенциальным клиентом Adopters + Adopters)] – (Почему так?) потенциальным клиентом, последний становится клиентом с вероятностью • Новые параметры Rate = 100 Adoption Fraction 0 р Fraction Adoption Fraction = 0.015 © 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru 482 Диффузия по Бассу. Фаза 2. Шаг Диффузия по Бассу. Фаза 2. Шаг Создайте параметры и AdoptionFraction © 2002-2011 ООО Экс Джей Текнолоджис», Диффузия по Бассу. Фаза 2. Шаг Диффузия по Бассу. Фаза 2. Шаг 2 • Создайте • Создайте вспомогательные переменные Добавьте на диаграмму две Динамические переменные и AdoptionFromWOM Можете скопировать эту строку из формулы переменной AdoptionRate © 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru 484 Диффузия по Бассу. Фаза 2. Шаг Диффузия по Бассу. Фаза 2. Шаг Измените формулу потока AdoptionRate AdoptionRate © 2002-2011 ООО Экс Джей Текнолоджис», Диффузия по Бассу. Фаза 2. Шаг Диффузия по Бассу. Фаза 2. Шаг 4 1. Добавьте на диаграмму Временной график. Добавьте на график переменные и Adopters 3. Задайте Временной PotentialAdopters и Adopters 4. Задайте частоту обновления графика диапазон 8 © 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru 486 Диффузия по Бассу. Фаза 2. Шаг Диффузия по Бассу. Фаза 2. Шаг 5 1. перетащите график, чтобы создать его копию. Добавьте на график переменные и AdoptionFromWOM © 2002-2011 ООО Экс Джей Текнолоджис», Диффузия по Бассу. Фаза 2. Шаг Диффузия по Бассу. Фаза 2. Шаг 6 1. Добавьте на диаграмму Кнопку. Измените метку кнопки на Turn Advertisement off 3. Задайте действие AdEffectiveness = 0; © 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru 488 Диффузия по Бассу. Фаза 2. Шаг Диффузия по Бассу. Фаза 2. Шаг Задайте время останова модели 1. Выберите эксперимент. Выберите эксперимент. Щелкните по закладке Модельное время. Введите здесь 8 © 2002-2011 ООО Экс Джей Текнолоджис», Диффузия по Бассу. Фаза 2. Шаг Диффузия по Бассу. Фаза 2. Шаг Запустите модель и проследите за динамикой с помощью графиков у р р ф • Прекратите рекламу и проследите, как это отразится на процессе Классические S‐кривые Колоколообразная кривая. Нажмите на кнопку. Нажмите на кнопку. Вы увидите, что рекламирование было прекращено, но динамика процесса существенно не изменится 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru 490 Диффузия по Бассу. Фаза 2. Вопросы Диффузия по Бассу. Фаза 2. Вопросы. Объясните разницу между Системной. Объясните разницу между Системной динамикой и Динамическими системами Н ф й. Напишите формулу для переменной количество контактов в год. Напишите формулу для переменной количество контактов потребителей с количество контактов потребителей с потенциальными потребителями Н ф й. Напишите формулу для переменной количество контактов в год, приводящих к новым покупкам 2002-2011 ООО Экс Джей Текнолоджис», Диффузия по Бассу. Фаза Диффузия по Бассу. Фаза Теперь мы хотим изучить, как процесс р у , р ц распространения продукта зависит от частоты общения владельцев продукта • Мы воспользуемся экспериментом варьирования параметров • Этот эксперимент производит несколько повторных запусков модели с последовательно меняющимися у д д щ значениями одного или нескольких параметров модели 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru 492 Диффузия по Бассу. Фаза 3. Шаг Диффузия по Бассу. Фаза 3. Шаг Создайте эксперимент варьирования параметров • Создайте эксперимент варьирования параметров Введите имя эксперимента. Выберите пункт меню Файл|Создать|Эксперимент 3. Введите имя эксперимента. Выберите Варьирование параметров. Щелкните по кнопке Готово © 2002-2011 ООО Экс Джей Текнолоджис», Диффузия по Бассу. Фаза 3. Шаг Диффузия по Бассу. Фаза 3. Шаг Задайте настройки • Задайте настройки эксперимента Пусть эксперимент варьирует параметр в диапазоне от 0 до. В результате будут созданы элементы управления с шагом управления. Создайте стандартный интерфейс для эксперимента, рф др щелкнув по этой кнопке. Для параметра ContactRate, задайте Тип Д 100 10 © 2002-2011 ООО Экс Джей Текнолоджис», Диапазон, макс. значение 100 и шаг Диффузия по Бассу. Фаза 3. Шаг Диффузия по Бассу. Фаза 3. Шаг Поместите временной график на диаграмму эксперимента. Перетащите эту границу вверх. Перетащите эту границу вверх, чтобы расширить область легенды графика. Задайте диапазон по оси X: 8 3. Выберите Не обновлять автоматически 2002-2011 ООО Экс Джей Текнолоджис», Диффузия по Бассу. Фаза 3. Шаг Диффузия по Бассу. Фаза 3. Шаг Создайте набор данных для хранения истории хранения истории переменных 1. Щелкните правой кнопкой мыши попеременной и выберите Создать набор и выберите Создать набор данных из контекстного меню. Будет создан набор данных 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru 496 Диффузия по Бассу. Фаза 3. Шаг Диффузия по Бассу. Фаза 3. Шаг Добавьте Набор • Добавьте Набор данных на диаграмму эксперимента ContactRateVariation • Добавьте График для отображения зависимости числа. Добавьте набор данных зависимости числа клиентов на момент окончания 2. Добавьте график моделирования от интенсивности контактов контактов. Измените свойства графика 2002-2011 ООО Экс Джей Текнолоджис», Диффузия по Бассу. Фаза 3. Шаг Диффузия по Бассу. Фаза 3. Шаг Измените свойства эксперимента, чтобы в конце каждого прогона модели на график добавлялись новые значения. Откройте диаграмму эксперимента. Перейдите на вкладку Дополнительные 3. Введите код в поле Действие после прогона модели: Дополнительные 3. Введите код в поле Действие после прогона модели ds = root.AdoptersDS; plot.addDataSet(ds, "CR="+ root.ContactRate); dataset.add(root.ContactRate, root.Adopters); © 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru 498 Диффузия по Бассу. Фаза 3. Шаг Диффузия по Бассу. Фаза 3. Шаг 7 |