Главная страница
Навигация по странице:

  • NetworkExit

  • Параметры или переменные что использовать

  • Добавление блоков в диаграмму действий

  • Ритейлер. Фаза 3. Шаг 5 Ритейлер. Фаза 3. Шаг 5

  • Как выполнить алгоритм, заданный диаграммой действий

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


    Скачать 12.33 Mb.
    НазваниеРешение на уровне модели мир без риска мир без риска реальный мир Мир моделей Реальный мир Решение Проблема
    АнкорМатериалы тренинга по AnyLogic.pdf
    Дата31.01.2018
    Размер12.33 Mb.
    Формат файлаpdf
    Имя файлаМатериалы тренинга по AnyLogic.pdf
    ТипРешение
    #15050
    страница8 из 16
    1   ...   4   5   6   7   8   9   10   11   ...   16
    Время задержки minute() Максимальная вместимость:
    Максимальная вместимость:
    Максимальная вместимость или
    NetworkStorageZone: Узел назначения Узел аза е s ape c Перемещать с помощью ресурсов Список ресурсов {pool1, … }: {forkLiftTrucks}
    © 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru
    219
     Объект
    Delay
    задерживает заявки на заданное время. Этим объектом мы хотим промоделировать хранение товаров на складе. р
    д р
    р р
    д

    Задайте время хранения в поле Время задержки uniform(20, 45)* Установите флажок Максимальная вместимость, чтобы разрешить б
    объекту задерживать неограниченное количество заявок одновременно Объект
    NetworkStoragePick
    извлекает заявку из ячейки хранения и б
    б б
    перемещает ее в указанное место сети. Мы добавляем этот объект, чтобы промоделировать то, как погрузчик извлекает коробку с товаром из ячейки склада и перемещает ее к зоне выдачи товара. В поле NetworkStorage или NetworkStorageZone задайте имя объекта

    В поле NetworkStorage или NetworkStorageZone задайте имя объекта, задающего область хранения Задайте Узел назначения, в который будет перемещена заявка после ее извлечения из ячейки Установите флажок Перемещать с помощью ресурсов, поскольку мы хотим, чтобы товары перемещались к зоне выдачи ритейлера с помощью погрузчиков.
    {
    }

    В поле Список ресурсов {pool1, …} напишите список имен объектов, задающих ресурсы, которые должны использоваться для транспортировки товаров. Этот объект
    Delay
    моделирует время, необходимое для того, чтобы забрать товар.

    Задайте Время задержки для этого объекта minute().
    У
    ф
    М
    © 2002-2011 ООО Экс Джей Текнолоджис», Установите флажок Максимальная вместимость

    Ритейлер. Фаза 1. Шаг 12
    Ритейлер. Фаза 1. Шаг Выделите
    Si
    l эксперимент Выберите Retailer
    © 2002-2011 ООО Экс Джей Текнолоджис», Измените главный (корневой) класс активного объекта
    Измените главный (корневой) класс активного объекта эксперимента Главный (корневой) активный объект

    • Модель AnyLogic обычно представляет собой дерево активных объектов, др д др вложенных друг в друга. Объект, являющийся корнем этого дерева, называется корневым объектом модели. Корневой объект представляет самый верхний уровень абстракции модели. Выбирая корневой объект модели, Выговорите, с какого объекта начать построение модели. Изменяя корневой объект эксперимента, Вы можете очень легко изменить структуру запускаемой модели. ру уру у
    д
    © 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru
    222

    Ритейлер. Фаза 1. Шаг 13
    Ритейлер. Фаза 1. Шаг Запустите модель 2002-2011 ООО Экс Джей Текнолоджис», Запустите модель
    Запустите модель.
    Вы увидите как коробки с товаром появляются в зоне разгрузки, затем помещаются на хранение в ячейки склада и по прошествии определенного времени забираются со склада для продажи 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru
    224

    Ритейлер. Фаза 1. Вопросы
    Ритейлер. Фаза 1. Вопросы. Как отделяет обычные фигуры. Как
    AnyLogic отделяет обычные фигуры презентации от фигур сети?
    Как сеть узнает о том, какая именно группа фигур задает том, какая именно группа фигур задает топологию этой сети Ой б. Опишите ситуацию, в которой может быть крайне полезна блокировка фигур.
    3. Как Вы можете задать скорость движения сетевого ресурса?
    сетевого ресурса. Какие объекты Вы использовали для того, б
    б
    /
    чтобы добавить/извлечь заявку из зоны хранения 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru
    225
    Ритейлер. Фаза 2
    Ритейлер. Фаза Давайте немного усовершенствуем нашу модель.
    Давайте немного усовершенствуем нашу модель. Предположим, что наш товар доставляется на склад р зо а
    а й з о ор ере озарю з грузовиками, каждый из которых перевозит партию из
    10 стиральных машин.
    • По прибытии грузовик разгружается. Время разгрузки распределено по треугольному закону с параметрами, 2, 3 минуты.
    • Полученные машины также, как это было и раньше, у
    ,
    р
    ,
    помещаются в свободные ячейки склада с помощью погрузчиков.
    ру
    © 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru
    226

    Ритейлер. Фаза 2. Шаг 1
    Ритейлер. Фаза 2. Шаг Добавьте картинку Грузовик

    Добавьте картинку Грузовик Уменьшите картинку 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru
    227
    © 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru
    228

    Ритейлер. Фаза 2. Шаг 2
    Ритейлер. Фаза 2. Шаг Постоянная партия
    Ф
    l

    NetworkEnter
    Сеть: Фигура анимации партии Разрешить вращение
    :
    Узел входа Скорость 2*meter/second()
    © 2002-2011 ООО Экс Джей Текнолоджис», Добавьте в диаграмму процесса новые объекты:
    Добавьте в диаграмму процесса новые объекты Этот объект
    Batch
    будет моделировать создание партии товара, отправляемой на склад ритейлера. Сбросьте флажок Постоянная партия, чтобы разрешить последующую разборку партии на отдельные заявки
    (моделирующие коробки со стиральными машинами д ру щ р
    р внутри).

    Задайте нашу картинку lorry в качестве фигуры, которой будут отображаться заявки‐партии (в нашем случае они будут отображаться заявки‐партии (в нашем случае они будут моделировать грузовики).

    Разрешите вращение фигур анимации движущихся грузовиков согласно направлению их движения.
     Этот объект
    NetworkEnter
    добавляет грузовики в нашу сеть.

    Укажите сеть в которую будут добавлены грузовики

    Укажите сеть, в которую будут добавлены грузовики.

    Укажите узел сети, в который попадут грузовики
    shapeUnloadEntry.
    З
    й й

    Задайте скорость движения грузовиков равной двум метрам в секунду 2*meter/second().
    © 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru
    230

    Ритейлер. Фаза 2. Шаг 3
    Ритейлер. Фаза 2. Шаг У Узел Действие при выходе
    entity.setOffsets( 0, 0, PI/2)

    Delay
    В
    Время задержки (1, 2, 3)*minute() Максимальная вместимость 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru
    231
     Объект
    NetworkMoveTo
    перемещает заявку в указанное место Объект
    NetworkMoveTo
    перемещает заявку в указанное место сети. С помощью этого объекта мы перемещаем грузовики от въезда на склад к зоне разгрузки.

    Укажите место назначения заявки в поле Узел Введите entity.setOffsets(0, 0, PI/2) в поле Действие при выходе. Таким способом мы поворачиваем фигурку грузовика, чтобы р
    ф ур у ру
    ,
    она не перемещалась задом наперед Объект
    Delay
    моделирует задержку, требуемую на разгрузку коробок со стиральными машинами коробок со стиральными машинами. Задайте Время задержки triangular(1, 2, Сделайте вместимость объекта максимально возможной для того чтобы разрешить одновременную разгрузку нескольких того, чтобы разрешить одновременную разгрузку нескольких грузовиков.
     Этот объект
    NetworkExit
    будет удалять из сети те грузовики, которые успешно доставят свой товар ритейлеру.

    Объект
    Unbatch
    выполняет разборку заявки‐партии на отдельные заявки представляющие собой коробки со стиральными заявки, представляющие собой коробки со стиральными машинами.
    © 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru
    232

    Ритейлер. Фаза 2. Шаг 4
    Ритейлер. Фаза 2. Шаг Запустите модель 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru
    233
    Ритейлер. Фаза 2. Вопросы
    Ритейлер. Фаза 2. Вопросы. Допустимо ли завершать поток заявок с. Допустимо ли завершать поток заявок с помощью объекта
    NetworkExit?
    2. Как Вы можете нарисовать соединитель такой. Как Вы можете нарисовать соединитель такой формы ?
    3. Заявка проходит по соединителю за
    :
    р д
    д
    (a) нулевое время
    (b) 1 единицу модельного времени) 1 единицу модельного времени) время зависит от формы соединителя 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru
    234

    Ритейлер. Фаза 3
    Ритейлер. Фаза Теперь мы хотим реализовать политику
    Теперь мы хотим реализовать политику пополнения товарных запасов ритейлера. Давайте остановимся на широко применяемой
    Давайте остановимся на широко применяемой политике (s, S), заключающейся в следующем:
    • Заданы две границы уровня товарных запасов:
    Заданы две границы уровня товарных запасов нижняя (s) и верхняя (В том случае, если ритейлер испытывает дефициту р р
    д ф ц товара, то есть количество товара, хранящегося на складе ритейлера, а также направляющегося к нему на грузовиках, падает до нижнего уровня s или ниже, отсылается заказ настолько единиц товара, сколько необходимо для пополнения товарных запасов до необходимо для пополнения товарных запасов до верхнего уровня S.
    © 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru
    235
    © 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru
    236

    Ритейлер. Фаза 3. Шаг 1
    Ритейлер. Фаза 3. Шаг 1

    Добавьте

    Добавьте простую переменную и два параметра др р 2002-2011 ООО Экс Джей Текнолоджис», Переменная будет хранить текущее значение уровня товарных запасов ритейлера.
    С
    й й (
    i t)
    б

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


    Сделайте этот параметр целочисленным, задайте его Значение по умолчанию равным числу ячеек хранения на складе (60) и введите
    applyInventoryPolicy(); в его Действии при изменении. Этот код будет пересчитывать текущее значение уровня запасов ритейлера путем вызова функции, которую мы зададим позднее.
    Параметр
    s будет задавать нижнюю границу уровня товарных запасов

    Создайте этот параметр путем клонирования ранее созданного параметра
    S. Переименуйте его в s и задайте его Значение по умолчанию равным Как Вы можете увидеть, здесь для задания на первый взгляд одинаковых сущностей используются различные элементы ‐ переменная и параметр В чем причина такого используются различные элементы переменная и параметр. В чем причина такого решения?
    Параметры или переменные что использовать?
    Параметры обычно используются для задания статических характеристик объекта. Значение параметра обычно остается неизменным вовремя "прогона" модели и изменяется пользователем только в определенные моменты времени (обычно между "прогонами" модели) при желании изменить характеристики модели.
    Переменные обычно используются для хранения результатов моделирования, а также для задания меняющихся походу моделирования данных и характеристик.
    © 2002-2011 ООО Экс Джей Текнолоджис», д д
    щ ду др др р

    Ритейлер. Фаза 3. Шаг 2
    Ритейлер. Фаза 3. Шаг Перетащите элемент

    Перетащите элемент
    Диаграмма действий с одноименной палитры

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

    Ритейлер. Фаза 3. Шаг 3
    Ритейлер. Фаза 3. Шаг Перетащите блок Решение (If .. в ветвь диаграммы действий

    Измените свойства блока й
    Комментарий станет виден внутри блока в графическом редакторе 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru
    241
     Мы хотим, чтобы наш алгоритм проверял определенное условие и выполнял то или другое действие в зависимости от результата этой
    Д
    б
    Р
    (If El проверки. Для этого мы воспользуемся блоком Решение (If .. Else).
     Задайте Условие блока inventory < s. Здесь мы проверяем, не ниже ли текущий уровень товарных запасов минимально допустимого уровня s.
    ущ ур р
    д у
    ур
    Блок Решение (If Блок Решение (If Else) позволяет осуществлять ветвление алгоритма У блока
    • Блок Решение (If .. Else) позволяет осуществлять ветвление алгоритма. У блока есть две исходящие ветви ‐ true и false. С помощью других блоков Вы можете задать последовательность действий для каждой из этих ветвей. Когда управление дойдет доданного блока будет приниматься решение о том по какой ветви дойдет доданного блока, будет приниматься решение о том, по какой ветви управление пойдет дальше. Если заданное для блока условие будет выполнено, то будет выбрана ветвь true. В противном случае будет выбрана ветвь Добавление блоков в диаграмму действий

    Добавление блоков в диаграмму действий
    • Перетаскивая блок над областью графического редактора, Вы увидите, что определенные точки на ветвях диаграммы действий будут выделяться с помощью маленьких кружков. Чтобы вставить блок в одну из этих точек, отпустите кнопку мыши, когда курсор будет над нужной Вам точкой 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru
    242

    Ритейлер. Фаза 3. Шаг 4
    Ритейлер. Фаза 3. Шаг Локальная

    переменная
    переменная

    д

    Код
    © 2002-2011 ООО Экс Джей Текнолоджис», Поместите два блока в ветвь true блока Решение для того, чтобы реализовать заказ товаров в случае низкого уровня товарных запасов реализовать заказ товаров в случае низкого уровня товарных запасов ритейлера.
     Локальная переменная quantity будет подсчитывать количество единиц товара, которое должно быть заказано (путем вычисления разницы между верхним уровнем товарных запасов и текущим уровнем S ‐
    inventory)
    y
     Блок code будет выполнять следующий код += Первая строка создает в объекте source заданное число заявок (равное
    quantity). Вторая увеличивает текущее значение уровня запасов на это р у
    ущ ур значение. При желании Вы можете добавить для блока комментарий. Он будет б
    б б
    б
    Локальная переменная
    отображаться внутри блока и объяснять смысл блока другим пользователям..
    • Блок Локальная переменная используется для задания переменной внутри диаграммы действий. Такая переменная видна только не во всей диаграмме действий, а только в той ее части, которая следует заточкой объявления переменной.
    Код
    • Блок Код позволяет добавлять в Вашу диаграмму действий фрагменты кода,
    В
    й
    © 2002-2011 ООО Экс Джей Текнолоджис», выполняющие нужные Вам действия.

    Ритейлер. Фаза 3. Шаг 5
    Ритейлер. Фаза 3. Шаг 5

    Выделите
    Retailer

    Введите Введите в поле Действие при запуске 2002-2011 ООО Экс Джей Текнолоджис», Мы хотим проверять уровень товарных запасов при запуске модели и при продаже каждой единицы товара модели и при продаже каждой единицы товара ‐  Первым делом мы хотим реализовать проверку при запуске модели. Чтобы выполнить алгоритм при запуске, мы запуске модели. Чтобы выполнить алгоритм при запуске, мы помещаем вызов диаграммы действий в Действие при запуске класса Retailer. Действие при запуске

    Действие при запуске выполняется на финальной стадии инициализации
    Действие при запуске выполняется на финальной стадии инициализации модели, после того, как все объекты модели будут созданы, соединены и проинициализированы, но до выполнения каких‐либо активностей модели. Здесь Вы можете, например, запустить какие‐либо события этого объекта.
    д
    ,
    р р,
    у
    Как выполнить алгоритм, заданный диаграммой действий?
    • Диаграммы действий выполняются также как и функции Вы помещаете в
    • Диаграммы действий выполняются также, как и функции – Вы помещаете в код вызов диаграммы действий (имя диаграммы, за которыми следуют скобки):
    applyInventoryPolicy();
    Е
    й й
    В
    • Если у диаграммы действий есть аргументы, то Вы должны указать значения этих параметров внутри скобок, разделив их запятыми, например, 20);

    © 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru
    246

    Ритейлер. Фаза 3. Шаг 6
    Ритейлер. Фаза 3. Шаг Заявки прибывают согласно Вызовам метода Действие при выходе
    inventory‐‐;
    applyInventoryPolicy();
    © 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru
    247
     Измените режим генерации заявок объекта source
     Измените режим генерации заявок объекта source. Пусть он создает заявки несогласно заданной интенсивности, а по вызовам метода inject() как Вы д) помните, мы поместили вызов этого метода в блок кода code диаграммы действий applyInventoryPolicy).
     Задайте действия, которые должны выполняться при продаже товара со склада Первая строка кода уменьшает текущее значение
    Первая строка кода уменьшает текущее значение уровня товарных запасов на единицу. Вторая выполняет диаграмму действий которая проверяет выполняет диаграмму действий, которая проверяет новый уровень товарных запасов, ив случае его недостаточности заказывает производство и доставку новых товаров.
    © 2002-2011 ООО Экс Джей Текнолоджис», www.xjtek.ru
    1   ...   4   5   6   7   8   9   10   11   ...   16


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