Главная страница

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


Скачать 12.33 Mb.
НазваниеРешение на уровне модели мир без риска мир без риска реальный мир Мир моделей Реальный мир Решение Проблема
АнкорМатериалы тренинга по AnyLogic.pdf
Дата31.01.2018
Размер12.33 Mb.
Формат файлаpdf
Имя файлаМатериалы тренинга по AnyLogic.pdf
ТипРешение
#15050
страница11 из 16
1   ...   8   9   10   11   12   13   14   15   16
320
Цепочка поставок. Фаза 2. Шаг Цепочка поставок. Фаза 2. Шаг Удалите объект Поместите сюда Порти назовите его Соедините порт с выходным портом объекта loadOnTruck
© 2002-2011 ООО Экс Джей Текнолоджис», Измените диаграмму процесса, заданную в классе Factory.
 Удалите объект sink, поскольку теперь заявки (моделирующие грузовики с товаром, достигающие конца диаграммы процесса, не должны уничтожаться, а должны пересылаться в диаграмму должны уничтожаться, а должны пересылаться в диаграмму процесса, заданную в активном объекте Retailer.
 Чтобы разрешить заявкам покидать объект factory object, добавьте порт (элемент Порт с палитры Основная) Назовите этот порт порт (элемент Порт с палитры Основная. Назовите этот порт.
Порты
Порты
Порт является интерфейсным элементом, позволяющим отсылать сообщения
(в случае процессных моделей ‐ заявки) за пределы объекта, а также получать их извне. Обмен сообщениями возможен только между портами, соединенными
соединителями. Соединители играют роль путей движения сообщений в Соедините только что созданный порт с выходным портом модели.
р р
последнего блока диаграммы процесса (loadOnTruck). Это позволит направлять заявки‐грузовики из диаграммы процесса в порти далее, по внешним соединениям этого порта.
© 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru
322
Цепочка поставок. Фаза 2. Шаг Цепочка поставок. Фаза 2. Шаг Удалите объекты д и Добавьте порти соедините его и соедините его с объектом truckEnter
© 2002-2011 ООО Экс Джей Текнолоджис», Измените диаграмму процесса заданную в классе
Измените диаграмму процесса, заданную в классе Удалите первые два блока диаграммы процесса Удалите первые два блока диаграммы процесса, которые моделировали появление грузовиков. Мы больше не нуждаемся в этих блоках поскольку больше не нуждаемся в этих блоках, поскольку теперь грузовики будут прибывать сюда с завода Добавьте порт для приема поступающих извне Добавьте порт для приема поступающих извне объекта заявок (грузовиков. Соедините его с входным портом объекта truckEnter, чтобы заявки‐
входным портом объекта truckEnter, чтобы заявки грузовики попадали в диаграмму процесса.
© 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru
324
Цепочка поставок. Фаза 2. Шаг Цепочка поставок. Фаза 2. Шаг Выделите блок Код
диаграммы действий

Удалите строку
source.inject(quantity);
К
из поля Код 2002-2011 ООО Экс Джей Текнолоджис», Измените код выполняемый диаграммой действий
Измените код, выполняемый диаграммой действий.
 Удалите строку кода source.inject(quantity); из кода, выполняемого блоком Код диаграммы действий. Мы делаем это потому, что на этом этапе товары уже не будут появляться на складе ниоткуда, просто по уду д
уд р
отсылке запроса – теперь они будут доставляться на склад с завода с помощью грузовиков (по мере производства товаров на заводе.
© 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru
326
Цепочка поставок. Фаза 2. Шаг Цепочка поставок. Фаза 2. Шаг Заявки прибывают согласно Времени между прибытиями
Время между прибытиями:
р
ду р) * Заявки прибывают согласно Времени между прибытиями

Время между прибытиями:
uniform(20,30) * minute()
© 2002-2011 ООО Экс Джей Текнолоджис», Откройте диаграмму класса Factory и сделайте так чтобы
Откройте диаграмму класса Factory и сделайте так, чтобы оба объекта source поставляли детали стиральной машины по прибытию запроса машины по прибытию запроса Измените режим создания заявок у объекта П. Пусть он создает по заявке в среднем каждые 20‐30 минут.
 Сделайте тоже самое с объектом sourceDoors.
© 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru
328
Цепочка поставок. Фаза 2. Шаг Цепочка поставок. Фаза 2. Шаг Скопируйте элемент

Укажите lorry в качестве

Скопируйте элемент из класса Retailer в класс Фигуры анимации партии

объекта Установите флажок Разрешить вращение 2002-2011 ООО Экс Джей Текнолоджис», Разрешить вращение

Теперь мы хотим сделать так чтобы отъезжающие от
Теперь мы хотим сделать так, чтобы отъезжающие от завода грузовики отображались на анимации той же картинкой что и грузовики приезжающие на склад картинкой, что и грузовики, приезжающие на склад ритейлера. й Скопируйте картинку грузовика lorry из класса
Retailer в класс Factory.
 Задайте эту картинку в качестве фигуры анимации для заявок‐партий (моделирующих грузовики, собираемых объектом loadOnTruck. Разрешите вращение картинки грузовика согласно
 Разрешите вращение картинки грузовика согласно направлению его движения.
© 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru
330
Цепочка поставок. Фаза 2. Шаг Цепочка поставок. Фаза 2. Шаг Нарисуйте ломаную, начиная с этой точки

Назовите ломаную shapeDelivery, начиная с этой точки измените ее цвет и толщину 2002-2011 ООО Экс Джей Текнолоджис», Сейчас мы промоделируем процесс доставки товара с
Сейчас мы промоделируем процесс доставки товара с завода на склад оптового магазина.
В
Вначале мы нарисуем условную дорогу, ведущую от завода к ритейлеру. Затем мы добавим объект, который будет моделировать задержку связанную с доставкой товара моделировать задержку, связанную с доставкой товара Откройте диаграмму класса Main и нарисуйте с помощью ломаной дорогу как показано на слайде выше ломаной дорогу, как показано на слайде выше.
Начните рисовать ломаную от зоны погрузки завода. Направление ломаной имеет значение, поскольку
Направление ломаной имеет значение, поскольку позднее мы зададим ее в качестве фигуры анимации объекта Enterprise Library.
 Назовите ломаную shapeDelivery, смените Цвет линии на бежевый и сделайте линию толще, задав Толщину линии
д щ ,
д
щ
у
равной 26.
© 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru
332
Цепочка поставок. Фаза 2. Шаг Цепочка поставок. Фаза 2. Шаг Добавьте объект
Delay
и соедините его, как показано здесь


Измените свойства объекта 2002-2011 ООО Экс Джей Текнолоджис», Установите взаимодействие между заводом и оптовым магазином. д
ду д Добавьте объект
Delay
и соедините его порты с портами вложенных объектов factory и retailer, как показано на слайде выше Этот объект будет моделировать задержку связанную свыше. Этот объект будет моделировать задержку, связанную с доставкой товара с завода в магазин.
Соединяя порты вложенных объектов, мы устанавливаем й
б взаимодействие между этими объектами. Теперь объекты могут взаимодействовать друг с другом, посылая сообщения через порты. В нашем случае объект factory будет посылать заявки партии представляющие собой грузовики с посылать заявки‐партии, представляющие собой грузовики с заказанным товаром. Эти заявки будут проходить через объекта затем поступать в объект retailer и перенаправляться в диаграмму процесса объект retailer и перенаправляться в диаграмму процесса, заданную в классе Retailer.
 Измените свойства объекта:
• Мы полагаем Время задержки соответствующее времени доставки товара) равным одному дню.
• Установите флажок Максимальная вместимость для того, чтобы разрешить одновременное движение неограниченного числа грузовиков по дороге. Задайте ломаную shapeDelivery в качестве Фигуры анимации.
© 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru
334
Цепочка поставок. Фаза 2. Шаг Цепочка поставок. Фаза 2. Шаг Запустите модель 2002-2011 ООО Экс Джей Текнолоджис», Запустите модель
Запустите модель.
Вы увидите, что теперь заводи оптовый магазин образуют простейшую цепочку поставок – грузовики доставляют произведенные на заводе товары на склад магазина.
© 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru
336
Цепочка поставок. Фаза 2. Вопросы
Цепочка поставок. Фаза 2. Вопросы Как будет работать источник заявок если в. Как будет работать источник заявок, если в качестве времени между прибытиями задать triang lar (1 2 3)
?
triangular (1, 2, 3)
?
2. Каким образом можно вставить. Каким образом можно вставить существующую заявку в диаграмму процесса 2002-2011 ООО Экс Джей Текнолоджис», Цепочка поставок. Фаза Цепочка поставок. Фаза Давайте немного усовершенствуем нашу модель
Давайте немного усовершенствуем нашу модель. Сейчас товар автоматически доставляется ритейлеру по мере его производства на заводе Интенсивность мере его производства на заводе. Интенсивность прибытия грузовиков с товаром по сути зависит от интенсивности производства – очередная партия интенсивности производства очередная партия товара отсылается ритейлеру сразу после того, как очередные 10 единиц товара изготавливаются и погружаются на грузовик. Теперь мы хотим реализовать чуть более сложную (нор р у
у зато более реалистичную) логику – ритейлер будет запрашивать товары с завода только тогда, когда б
б объем имеющегося у него в наличии товара будет снижаться до минимально допустимого уровня 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru
338
Цепочка поставок. Фаза 3. Шаг Цепочка поставок. Фаза 3. Шаг Создайте Java класс

Назовите класс Унаследуйте этот класс от класса класс от класса Добавьте параметр

Добавьте параметр типа int
© 2002-2011 ООО Экс Джей Текнолоджис», В текущей модели ритейлер должен отсылать на завод заказы, которые будут инициировать производство заданного количества единиц товара. Нам нужно
С
й передавать это количество в заказе. Сделать это посредством стандартной заявки нельзя, поэтому мы и создаем Java класс со специальным полем, которое будет хранить нужную информацию. Экземпляры этого класса будут моделировать заказы и передаваться вместо обычных заявок.
моделировать заказы и передаваться вместо обычных заявок Создайте Java класс, щелкнув мышью по стрелке, находящейся в правой части кнопки Создать, и выбрав Java класс из выпадающего меню.
 Н d

 Назовите класс Order. Выберите com.xj.anylogic.libraries.enterprise.Entity в качестве базового класса. Класс заявки Класс Entity является базовым классом для всех заявок, которые принимают участие в процессе описанном Вами с помощью диаграммы из объектов участие в процессе, описанном Вами с помощью диаграммы из объектов библиотеки AnyLogic Enterprise Через блоки Enterprise Library могут проходить только экземпляры класса Entity
(
) Пили его подклассов. Поскольку мы хотим пересылать по диаграмме процесса заявки типа Order, то мы выбираем класс Entity в качестве суперкласса для класса Задайте в только созданном классе поле quantity типа int. Это поле будет использоваться для хранения количества единиц товара, запрашиваемого оптовым магазином 2002-2011 ООО Экс Джей Текнолоджис», запрашиваемого оптовым магазином
Цепочка поставок. Фаза 3. Шаг Цепочка поставок. Фаза 3. Шаг Добавьте порт

Добавьте порт, назовите его и соедините его с объектом объектом Добавьте объект и назовите его 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru
341
 Откройте диаграмму класса Retailer и добавьте объект Откройте диаграмму класса Retailer и добавьте объект, который будет помещать созданные извне заявки (в нашем случае ‐ заказы) в диаграмму у) др у процесса. Назовите объект Этот объект обычно используется либо для добавления в диаграмму процесса у
д д
д р
у р ц заявок, созданных извне диаграммы (например, с помощью диаграммы состояний или события, либо в паре с объектом
Exit
– для сложной маршрутизации заявок. Чтобы добавить заявку в объект
Enter
, Вы должны вызвать метод объекта
take(entity) или переслать заявку в верхний порт этого объекта Добавьте порт. Назовите его ordersOut и соедините с объектом newOrders. Этот порт будет перенаправлять объектом newOrders. Этот порт будет перенаправлять поступающие запросы за пределы объекта – в объект
factory, моделирующий завод 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru
342
Цепочка поставок. Фаза 3. Шаг Цепочка поставок. Фаза 3. Шаг Выделите блок Код
диаграммы действий

Добавьте еще одну строку кода 2002-2011 ООО Экс Джей Текнолоджис», Измените код, выполняемый диаграммой действий
Измените код, выполняемый диаграммой действий.
 Теперь мы хотим, чтобы при достижении нижней границы запасов ритейлер отсылал запрос на производство необходимого количества стиральных машин на завод. Для этого мы добавим следующую д Д
д ду щу строку кода в блок Код нашей диаграммы действий
newOrders.take( new Order(quantity) Этот код посылает запрос (сообщение типа Order, хранящее запрашиваемое количество единиц товара в поле
quantity)
quantity).
Здесь newOrders – это имя нашего объекта. Метод) вставляет заявку, переданную в качестве аргумента метода, в диаграмму процесса, следующую за этим объектом. В нашем случае она будет переслана в порти далее – в объект factory.
, д 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru
344
Цепочка поставок. Фаза 3. Шаг Цепочка поставок. Фаза 3. Шаг Добавьте
Д
порт и назовите его Добавьте объект
Sink
и соедините его спортом Измените свойства объекта 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru
345
 Добавьте порт на диаграмму класса Factory. Назовите его ordersIn.
 Добавьте порт на диаграмму класса Factory. Назовите его ordersIn. В этот порт будут приходить запросы, посылаемые ритейлером.
 Добавьте объект
Sink
и соедините его спортом. Этот объект будет удовлетворять поступающие запросы создавая объект будет удовлетворять поступающие запросы, создавая требуемое количество деталей и уничтожая обслуженные заказы. Укажите Order в качестве Класса заявки. Таким способом мы сообщаем объекту о том, что он будет работать с заявками экземплярами нашего класса Order. Это обеспечит возможность прямого доступа к полям заявки класса Order в динамических б
параметрах этого объекта. Задайте Действие при входе объекта entity.quantity );

sourceDoors.inject( entity.quantity Здесь мы передаем в каждый объект требуемое им
Э
б
i
количество заявок. Это количество берется из поля текущей заявки entity как Вы помните, ранее мы создали это поле в классе Order). Это поле доступно здесь просто как entity.quantity, В d
К
потому что Вы указали Order в качестве Класса заявки этого объекта. Если бы Вы этого не сделали, Вам пришлось бы написать более сложную строку кода ((Order)entity).quantity
© 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru
346
Цепочка поставок. Фаза 3. Шаг Цепочка поставок. Фаза 3. Шаг Заявки прибывают согласно Вызовам метода Заявки прибывают согласно Вызовам метода Вызовам метода inject()
© 2002-2011 ООО Экс Джей Текнолоджис», Измените оба объекта source так чтобы они поставляли
Измените оба объекта source так, чтобы они поставляли детали стиральной машины только по приходу запроса Измените режим создания заявок у объекта. Пусть этот объект создает заявки нес й заданной интенсивностью, а по вызову метода если Вы помните, на предыдущем шаге мы поместили Д й

б
вызов этого метода в Действие при входе объекта.
 Сделайте тоже самое с объектом sourceDoors.
© 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru
348
Цепочка поставок. Фаза 3. Шаг Цепочка поставок. Фаза 3. Шаг Соедините порты вложенных объектов 2002-2011 ООО Экс Джей Текнолоджис», Откройте диаграмму класса Main Вы увидите что рядом
Откройте диаграмму класса Main. Вы увидите, что рядом со значками обоих вложенных объектов автоматически появятся новые порты появятся новые порты Соедините порты ordersIn и ordersOut объектов б и retailer для того, чтобы разрешить пересылку заявок между этими портами.
© 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru
350
Цепочка поставок. Фаза 3. Шаг Цепочка поставок. Фаза 3. Шаг Запустите модель 2002-2011 ООО Экс Джей Текнолоджис», Запустите модель Вы увидите что теперь завод
Запустите модель. Вы увидите, что теперь завод производит стиральные машины только по запросу ритейлера ритейлера.
Мы закончили создание модели простейшей цепочки поставок. Эта модель была создана на базе ранее созданных моделей завода и оптового магазина. С ее помощью мы хотели показать Вам, что в AnyLogic Вы можете создавать сложные модели модульно, последовательно моделируя компонент за компонентом 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru
352
Цепочка поставок. Фаза 3. Вопросы
Цепочка поставок. Фаза 3. Вопросы В чем состоит разница между классом не. В чем состоит разница между классом, не наследующим никакого другого класса, и ассо ею в а ес ве базово о классом, имеющим
Entity в качестве базового класса. Соединитель может передавать заявки) изначальной точки в конечную) изначальной точки в конечную) из конечной в начальную) в обоих направлениях) в обоих направлениях. Назовите ситуации, в которых могут понадобиться объекты Enter и Exit
© 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru
353
© 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru
354

Агентное моделирование в
моделирование в Эта презентация является частью стандартной программы обучения 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru
Агентное моделирование
Агентное моделирование
Индивидуальные правила поведения Децентрализованные
Индивидуальные правила поведения. Децентрализованные
Взаимодействие друг с другом и со средой
Среда
Поведение агента
Ребёнок
Н
Нет семьи
Семья
Семья
Пожилой
© 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru
356
Агентами могут быть:
1   ...   8   9   10   11   12   13   14   15   16


написать администратору сайта