Материалы тренинга по AnyLogic. Решение на уровне модели мир без риска мир без риска реальный мир Мир моделей Реальный мир Решение Проблема
Скачать 12.33 Mb.
|
287 Реплицированные объекты Реплицированные объекты • Реплицированный объект Реплицированный объект представляется массивом переменного раз ера Э ее асс ва ею размера. Элементы массива имеют индексы от 0 до Получение размера массива: people.size() Получение го элемента массива i Добавление нового объекта: add_people(); Удаление объекта person ); © 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru 288 Встроенные функции Встроенные функции • Системные функции Системные функции getOwner() , pause() , traceln(), isStateActive() , и т.д. • Функции для работы со временем Функции для работы со временем time() , date() , getHourOfDay() , minute() , и т.д. • Математические функции • Математические функции Базовые sqrt(), sin(), cos(), exp(), log(), round() , и т.д. • Специальные функции • Специальные функции Случайные числа uniform(), exponential(), bernoulli() , и т.д. – Системная динамика) delay3() smooth() и т д Системная динамика delay(), delay3(), smooth(), trend() , и т.д. • И другие См классы Presentable ActiveObject ив См. классы Utilities, Presentable, ActiveObject ив справочнике классов AnyLogic © 2002-2011 ООО Экс Джей Текнолоджис», Вероятностные распределения Вероятностные распределения min, max Ой й Описывает случайную величину, для которой вероятность попадания в любой интервал между min и max прямо пропорциональна длине этого интервала max exponential( lambda ) lambda И lambda Используется для моделирования временных интервалов между случайными событиями. Важное свойство отсутствие последействия min, mode, max ) min mode Обычно используется в условиях недостатка данных о длительности какого-либо процесса a © 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru 290 Основные конструкции языка Основные конструкции языка • Присваивание или вызов метода: Присваивание или вызов метода = f(x1,x2) + 5*z; event.restart( uniform( 10, 20 ) Ветвление по условию ( f i d R ti > tt kC t t ) if ( friendsRatio > attackConstant ) attack(); else else escape(); • Цикл: Цикл: double total = 0; for ( Person p : people ) total += p.income; for( int i=0; i<100; i++ ) send( msg RANDOM ); © 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru 291 send( msg, RANDOM ); Коллекции Коллекции • Коллекции – это предопределенные классы, реализующие ц р др др у щ базовые структуры данных • Одна и та же операция для разных классов занимает разное ArrayList Vector LinkedList HashSet HashMap SortedSet SortedMap время Vector HashMap Получение размера Д б SortedMap Const Const Const Const C t C t C t L Добавление элемента Удаление элемента У Const Const Const Log Linear Li Li Const Log Linear Удаление по индексу Поиск элемента Получение по индексу Linear Linear Const - - Linear - - Linear Linear Const Log Поиск элемента Linear Linear Const Log Поиск мин/макс Linear Linear Linear Const © 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru 292 Источники информации Источники информации Справочник классов Справочник классов Раздел API Reference справочной системы Спецификация Java Одна из лучших книг по Java: B E k l Thi ki i J Bruce Eckel. Thinking in Доступна по адресу http://www uic rsu ru/doc/programming/java/TIJ2e ru/Contents html http://www.uic.rsu.ru/doc/programming/java/TIJ2e.ru/Contents.html © 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru 293 © 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru 294 Модель цепочки поставок поставок Эта презентация является частью стандартной программы обучения 2002-2011 ООО Экс Джей Текнолоджис», Модель цепочки поставок Модель цепочки поставок Теперь мы построим модель простой цепочки поставок. Эта модель б б б будет включать в себя разработанные ранее модели завода и оптового магазина ‐ ритейлера. Они будут играть роль компонентов этой модели. Цепочка поставок будет работать следующим образом Давайте предположим, что и ритейлер и завод принадлежат одной компании Эта компания занимается распространением одного компании. Эта компания занимается распространением одного типа товара (стиральной машины) посредством имеющегося у нее оптового магазина. На складе ритейлера всегда имеется определенное количество товара. Когда оно достигает заданного нижнего уровня, ритейлер посылает запрос на завод на производство и доставку новой партии товара. По получении запроса, завод начинает выпуск требуемого количества стиральных машин. Каждые 10 машин образуют собой количества стиральных машин. Каждые 10 машин образуют собой партию товара, которая грузится на грузовики отправляется ритейлеру. © 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru 296 Цепочка поставок. Фаза Цепочка поставок. Фаза Первая фаза этой модели будет играть роль Первая фаза этой модели будет играть роль подготовительной. Мы создадим еще один класс активного объекта и поместим в Мы создадим еще один класс активного объекта и поместим в него экземпляры обоих ранее созданных классов активных объектов (Factory и Таким образом, в нашей модели будут одновременно (и пока что независимо друг от друга) работать оба участника нашей о езав со дру одру арабо а ь оба у аса а е цепочки поставок. Позднее мы усовершенствуем эту модель сделав так что Позднее мы усовершенствуем эту модель, сделав так, что товары будут производиться на заводе в соответствии с посылаемыми ритейлером запросами на производство. р р р р 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru 297 © 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru 298 Цепочка поставок. Фаза 1. Шаг Цепочка поставок. Фаза 1. Шаг П t R t il M Перетащите Factory и Retailer на диаграмму Создайте класс активного объекта объекта Расположите анимации классов, как показано здесь 2002-2011 ООО Экс Джей Текнолоджис», Создайте класс активного объекта и поместите в него созданные ранее активные объекты Factory и Retailer. Создайте еще один класс активного объекта и назовите его i M i б. Main будет играть роль верхнего уровня иерархии в нашей модели. Здесь мы зададим взаимодействие между ритейлером и заводом. ритейлером и заводом. Добавьте экземпляры классов активных объектов Retailer и на диаграмму класса Main. др уbВложенные объекты • Разрабатывая модель Вы создаете классы активных объектов Классы • Разрабатывая модель, Вы создаете классы активных объектов. Классы активных объектов могут включать в себя другие активные объекты. Вложенные в класс экземпляры других классов активных объектов называю ся в оженны и об екта и Вы увидите значки вложенных объектов и презентации б называются вложенными объектами. обоих классов на презентации класса Main. Разместите их так, как показано на слайде выше – чтобы план завода располагался под планом ритейлера. © 2002-2011 ООО Экс Джей Текнолоджис», располагался под планом ритейлера. Цепочка поставок. Фаза 1. Шаг Цепочка поставок. Фаза 1. Шаг Добавьте Область просмотра на диаграмму диаграмму Измените имя области просмотра и ее заголовок 2002-2011 ООО Экс Джей Текнолоджис», Откройте диаграмму класса Factory и добавьте область просмотра П Об Перетащите элемент Область просмотра из палитры Презентация в верхний левый угол диаграммы. Назовите область просмотра viewFactory и измените ее Заголовок р р y на Factory заголовок позднее будет отображаться в контекстном меню инструментов навигации, см. ниже.) Области просмотра • С помощью областей просмотра Вы можете выделить на диаграмме активного объекта некоторые области содержащие логически обособленные группы объекта некоторые области, содержащие логически обособленные группы элементов или участки диаграммы (например, презентацию, графики, диаграмму процесса и т.д.). Задав такие области, Вы сможете легко переключаться между ними с помощью специальных средств навигации как в режиме редактирования, таки вовремя выполнения модели. Режим редактирования модели Режим запуска модели Щелкните по пустому Щелкните по пустому месту диаграммы 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru 302 Цепочка поставок. Фаза 1. Шаг Цепочка поставок. Фаза 1. Шаг Задайте область просмотра на диаграмме класса Измените свойства области Измените свойства области 2002-2011 ООО Экс Джей Текнолоджис», Подобным образом задайте еще одну область просмотра Подобным образом задайте еще одну область просмотра (теперь уже в классе Retailer). Поместите значок области просмотра в левом верхнем углу диаграммы, рядом с началом координат диаграммы. Измените свойства области просмотра: • Назовите область просмотра Измените заголовок области на Retail Обратите особое внимание на свойство области Выравнивать по. Здесь задается расположение р д др области относительно ее якоря. Поскольку выбрана опция Верхн. левому углу, то этот якорь задает расположение верхнего левого угла области просмотра 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru 304 Цепочка поставок. Фаза 1. Шаг Цепочка поставок. Фаза 1. Шаг Добавьте сюда Текст Добавьте сюда Текст З й Д й Задайте Действие по щелчку 2002-2011 ООО Экс Джей Текнолоджис», Навигация между областями просмотра различных объектов Навигация между областями просмотра различных объектов • Области просмотра могут использоваться не только для навигации по презентации одного активного объекта, но и для переключения между б диаграммами разных объектов. Для этого Вам будет нужно добавить фигуру и задать переход к определенной области просмотра в качестве реакции на щелчок мышью по этой фигуре. Создайте текстовую метку, которая будет играть роль ссылки на область просмотра, заданную в классе на область просмотра, заданную в классе Factory. Добавьте текстовую метку на диаграмму класса Main. Измените текст этой метки на Factory, при желании ф измените также цвет текста и размер шрифта Перейдите на страницу Динамических свойств текстовой метки и введите viewFactory в поле метки и введите factory.viewFactory.navigateTo(); в поле Действие по щелчку. factory здесь – имя вложенного объекта класса Factory, а viewFactory – имя области й М i t T (просмотра, заданной в этом классе. Метод показывает область презентации, попавшую в заданную область просмотра. © 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru 306 Цепочка поставок. Фаза 1. Шаг Цепочка поставок. Фаза 1. Шаг Создайте еще одну метку, перетащив метку Factory с перетащив метку Factory с нажатой клавишей Измените динамические свойства метки 2002-2011 ООО Экс Джей Текнолоджис», Создайте еще одну метку которая будет играть роль Создайте еще одну метку, которая будет играть роль ссылки на презентацию объекта retailer. Создайте эту метку путем копирования ранее созданной метки. Таким способом Вы избежите повторного задания уже заданных однажды визуальных свойств этой метки. Измените текст метки на Retailer и введите в поле динамического свойства Действие по щелчку. © 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru 308 Цепочка поставок. Фаза 1. Шаг Цепочка поставок. Фаза 1. Шаг Щелкните по элементу Выберите Выберите Main © 2002-2011 ООО Экс Джей Текнолоджис», Выберите Main в качестве корневого активного объекта Выберите Main в качестве корневого активного объекта эксперимента Simulation. Иерархия модели • Модель AnyLogic обычно представляет собой иерархическое дерево активных б К В объектов, вложенных друг в друга. Когда Вы запускаете эксперимент, создается экземпляр корневого класса активного объекта этого эксперимента. Он играет роль корня иерархического дерева модели. Если в корневой класс активного объекта вложены какие‐то другие активные объекты, тов корневом объекте создаются экземпляры классов этих объектов итак далее. Сейчас мы хотим, чтобы роль корневого активного б i Э объекта модели исполнял класс Main. Этот класс содержит два вложенных объекта – factory и retailer. © 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru 310 Цепочка поставок. Фаза 1. Шаг Цепочка поставок. Фаза 1. Шаг Запустите модель Запустите модель 2002-2011 ООО Экс Джей Текнолоджис», Запустите модель Запустите модель. Вы увидите, что теперь водной модели одновременно работают и заводи оптовый магазин. Нона данном этапе они работают независимо друг от друга. Вы можете наблюдать за их работой с помощью вложенных презентаций этих объектов, вложенных презентаций этих объектов, отображаемых на презентации активного объекта 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru 312 Цепочка поставок. Фаза 1. Шаг Цепочка поставок. Фаза 1. Шаг 8 В Вернитесь на диаграмму класса Main с помощью кнопки Показать корневой объект Щелкните Будет показана Щелкните мышью по нашей ссылке на область просмотра объекта уд диаграмма класса просмотра объекта 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru 313 Если Вы хотите изучить состояние некоторых Если Вы хотите изучить состояние некоторых объектов более тщательно, скажем, понаблюдать за диаграммой состояний робота или за графиком на диаграммой состояний робота или за графиком на презентации объекта, моделирующего завод, то Вы можете легко переключиться на диаграмму объекта можете легко переключиться на диаграмму объекта, щелкнув мышью по соответствующей текстовой ссылке. текстовой ссылке. Таким же образом Вы можете переключиться и на диаграмму объекта др уЧтобы вернуться на диаграмму корневого объекта эксперимента (в нашем случае Main) щелкните по эксперимента (в нашем случае ‐ Main), щелкните по кнопке панели инструментов Показать корневой объект объект. © 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru 314 Цепочка поставок. Фаза 1. Вопросы Цепочка поставок. Фаза 1. Вопросы. Какие режимы масштабирования есть у областей р р у просмотра? 2. Области просмотра могут использоваться для навигации) в режиме запуска модели (b) в режиме разработки) в обоих режимах) в обоих режимах. Какой механизм используется в AnyLogic для переключения между областями просмотра? р дур р) кнопка на панели инструментов (b) контекстное меню) и то, и другое 4 Д б F R il 4. Для чего в модель добавлены метки Factory и Э. Эксперимент запускает) Retailer (b) Main (c) заданный пользователем класс 2002-2011 ООО Экс Джей Текнолоджис», Цепочка поставок. Фаза Цепочка поставок. Фаза На данный момент ритейлер и завод функционируют На данный момент ритейлер и завод функционируют независимо друг от друга Завод производит стиральные машины. Готовые и упакованные машины увозятся с завода. • Оптовый магазин – ритейлер – занимается распространением товара Когда появляется необходимость в пополнении товара. Когда появляется необходимость в пополнении имеющихся в его распоряжении запасов товара, он немедленно получает товары извне. Теперь же мы хотим сделать так, чтобы и заводи ритейлер работали в связке, образуя простейшую цепочку поставок. р , р у р у ц у • Продукты, производимые на заводе, будут доставляться на грузовиках в оптовый магазин. • Грузовики будут проводить в пути определенное время (скажем, один день 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru 316 Цепочка поставок. Фаза 2. Шаг Цепочка поставок. Фаза 2. Шаг 1 Н Немножко увеличьте картинку У Добавьте картинку завода Установите флажок Значок 2002-2011 ООО Экс Джей Текнолоджис», Теперь мы хотим нарисовать картинку для нашего объекта Теперь мы хотим нарисовать картинку для нашего объекта‐ завода Factory. Н Не тратьте время на рисование картинки, а просто возьмите готовую картинку Завод из палитры Картинки. Установите у картинки флажок Значок для того, чтобы эта фигура стала частью значка активного объекта. Значок активного объекта • Вы можете нарисовать для каждого класса активного объекта свой значок. р д д Тогда все вложенные объекты – экземпляры этого класса – будут отображаться на структурной диаграмме этим значком. • Значок активного объекта рисуется на диаграмме класса активного объекта с Значок активного объекта рисуется на диаграмме класса активного объекта с помощью обычных фигур презентации (овалы, прямоугольники, линии и т.д.). • Вы должны явно указать, какие фигуры будут являться частью значка объекта, а не частью его презентации установив флажок Значок на странице основных а не частью его презентации, установив флажок Значок на странице основных свойств каждой такой фигуры 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru 318 Цепочка поставок. Фаза 2. Шаг Цепочка поставок. Фаза 2. Шаг Добавьте на диаграмму класса картинку склада и сделайте ее значком Вы увидите на диаграмме класса Main Вы увидите на диаграмме класса картинки завода и склада, обозначающие соответствующие вложенные объекты 2002-2011 ООО Экс Джей Текнолоджис», Подобным образом нарисуйте значок и для класса Подобным образом нарисуйте значок и для класса активного объекта Retailer. Используйте картинку Склад из набора стандартных картинок AnyLogic. Поместите ее на диаграмме класса Retailer и немножко увеличьте ее, как показано на слайде выше Откройте диаграмму класса Main. Вы увидите, что на презентации класса появились значки активных объектов Factory и Retailer вместо использовавшихся по умолчанию значков ). © 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru |