Как сделать модель цепочек поставок в Anylogic

Литература/руководства/документация по Anylogic

Ниже содержимое этого документа

Модель цепочки поставок


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

В первой фазе мы добавим в нашу модель агентов –
дистрибьюторов и ритейлеров - и поместим их в пространство, 
заданное картой ГИС.
Мы покажем, как:
̶ Создавать популяции агентов, считывая данные из файла MS Excel
̶ Расставлять агентов на карте ГИС
Создайте новую модель. Назовите ее Supply Chain.
Выберите часы в качестве Единиц модельного времени
Мы хотим создать агентную модель с несколькими типами агентов:
дистрибьюторами, ритейлерами, грузовиками. Агенты будут жить в
геопространственной среде, заданной картой ГИС. Прежде всего мы добавим на
презентацию модели карту ГИС.
 Перетащите элемент ГИС Карта из секции ГИС палитры Разметка пространства.
 Измените размер фигуры, которая отображает карту. Пусть карта, на которой мы
расположим агентов, занимает все окно презентации модели.
Совет: Пожалуйста, обращайте внимание на имя типа агента,
редактируемого в данный момент времени:
ГИС
• Вы можете добавлять в ваши модели карты ГИС (GIS, Geographic Information System).
Таким образом вы можете создавать модели с привязкой к географическим данным.
• Карты ГИС обычно используются в агентных моделях. Вы можете помещать агентов на
ГИС карту, перемещать агентов с заданной скоростью из одной точки в другую, выполнять
действия при достижении цели, рисовать анимацию агентов, устанавливать связи между
агентами в соответствии с их расположением в пространстве и т.д.
• Реализация ГИС в AnyLogic основана на технологии OpenMap GIS
Двойным щелчком мыши по карте, или вызвав контекстное меню правой 
кнопкой мыши (пункт Редактировать карту), войдите в режим 
редактирования карты, чтобы выбрать область для модели в нужном 
масштабе.
Графический редактор за пределами карты будет затемнен, когда карта 
находится в режиме редактирования.
 Мы выбрали Францию в качестве места действия. Чтобы перетаскивать 
отображаемую область, перемещайте указатель, удерживая левую кнопку 
мыши. Чтобы увеличить масштаб карты, прокрутите колесо мыши от себя. 
При этом будет приближена та область карты, на которой находится 
указатель мыши.
Найдите на карте Францию и масштабируйте рабочую область карты для 
удобства использования.
Снова дважды щелкните по карте или просто щелкните в области 
графического редактора, чтобы выйти из этого режима.
ГИС Карта
• ГИС карта в AnyLogic по умолчанию отображает слой тайлов, которые загружаются с 
выбранного сервера. Тайловая карта - это карта, состоящая из незаметно соединенных 
отдельных изображений, количество которых зависит от масштаба карты.
• Наши данные хранятся в 
книге MS Excel. 
• Файл содержит два листа с 
данными по дистрибьюторам 
и ритейлерам.
• Давайте импортируем 
данные во встроенную БД
AnyLogic прежде, чем 
использовать их в модели
Импортируемданные из внешней БД (файл MS Excel) во встроенную БД 
AnyLogic.
Импортируемданные из внешней БД (файл MS Excel) во встроенную БД 
AnyLogic.
Мы начнем с создания популяции агентов, которая будет 
моделировать дистрибьюторов.
Создание популяции агентов
• AnyLogic предоставляет простой способ создания популяций агентов простым 
перетаскиванием элемента Агент из палитры Агент на диаграмму того типа агента, в 
котором вы создаете популяцию.
• Мастер создает:
• Тип агента (Distributor). Здесь вы задаете внутреннюю структуру агента, его 
поведение, рисуете для него анимацию и т.д.
• Популяцию агентов (distributors). Этот объект вложен в тип, в который Вы 
перетащили элемент Агент (Main), и состоит из нескольких (5) экземпляров типа 
агента Distributor, каждый из которых моделирует определенного агентадистрибьютора. Рядом с объектом вы можете увидеть его анимацию.
  18  Расположение агентов в ГИС пространстве
В секции свойств популяции агентов Начальное местоположениевы можете выбрать 
расположение агентов из этой популяции:
• В месте расположения анимации объекта – найдите желтую фигуру склада на вашей карте. 
Это вложенная презентация агента. Если выбрать этот пункт, агент будет расположен именно 
там, куда вы его перетяните на ГИС карте.
Если вы не видите вложенную анимацию агента при создании анимации объекта после того, как 
создадите его популяцию на агенте верхнего уровня Main, нажмите на кнопку Показать 
презентациюв разделе Специфические панели Свойствапопуляции агента (к примеру 
distributors).
• В точке (широта, долгота) –вы указываете координаты агента ниже в полях широта, долгота. 
Если у вас популяция агента, значения координат которого указаны в свойствах latиlon, 
пропишите self.latиself.lonв полях, чтобы расположить агента в пространстве ГИС в соответствии 
с этими координатами.
• В узле –вы создаете места на карте с помощью ГИС точек и указываете имя ГИС точки, в которой 
вы хотите расположить агента. Этим пунктом можно пользоваться, когда у вас один агент, а не 
популяция агентов, состоящая из множества агентов.
• В первом результате ГИС поиска –Используйте этот вариант, когда места указаны в виде текста 
(наш случай): "Paris", "Marseille", и т.д. Эти имена используются ГИС картой, которая ищет места с 
этими именами и выдает первый результат поиска. Если у вашего агента есть параметр, 
содержащий имя места (как у нас, параметр lоcation), пропишитеself.locationв поле ниже, чтобы 
расположить агентов в нужных точках ГИС пространства

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

Фаза 3. Определяем логику
• Сейчас мы смоделируем запрос товаров ритейлерами и
доставку от дистрибьюторов к ритейлерам.
• Для этого нам нужно создать спрос на продукты, присвоить его
грузовикам и заставить их передвигаться от их расположения у
дистрибьюторов к ритейлерами назад

Задайте поведение грузовика с помощью диаграммы состояний. В нашем 
случае, грузовик изначально находится у дистрибьютора (поэтому 
начальным состоянием является состояние AtDistributor). Пока грузовик 
находится там, он может получить заказ и начать движение к ритейлеру, 
пославшему этот заказ. Сейчас мы полагаем, что достигнув ритейлера, 
грузовик немедленно возвращается обратно. Перемещение является 
длительным действием, и мы можем представить его как состояние. 
Таким образом, есть еще два состояния: MovingToRetailer и
MovingToDistributor. Чтобы завершить пребывание грузовика в состоянии 
перемещения, мы используем специальный тип перехода, 
срабатывающий по приходу агента в место назначения. 
Локальные переменные
• Обратите внимание, что в коде действия состояния мы используем переменную msg. msg здесь 
– это локальная переменная, доступная только в текущем контексте. Чтобы посмотреть на 
список всех локальных переменных, щелкните в поле и затем наведите курсор мыши на 
лампочку, которая появится в строке слева от поля:
В AnyLogic Вы не пишете весь код для Java классов от начала до конца. Вместо этого, Вы вводите 
фрагменты кода и выражения в специальных текстовых полях свойств различных элементов. 
Поэтому важно всегда понимать, где именно Вы пишете код в данный момент (какому классу он 
принадлежит), и как получить доступ к другим элементам модели из этого кода.
Элементы модели, принадлежащие тому же типу агента, доступны просто по именам. Скажем, 
Вы пишете код в поле свойства Действие события endOfFY агента Company. Чтобы получить 
доступ к блоку queue, просто напишите queue. Чтобы увеличить значение переменной revenue, 
напишите revenue += amount. Чтобы перезапустить событие endOfFY из кода его собственного 
действия: endOfFY.restart(year()) 
Чтобы получить доступ к полю объекта, Вы должны поставить точку "." после имени объекта и 
затем написать имя этого поля. Например, чтобы получить размер очереди queue, нужно 
написать queue.size(). В случае популяции агентов, Вам нужно указать, какой именно агент из 
этой популяции Вам нужен. Чтобы вызвать функцию performance() у агента под номером 247 из 
популяции employees, напишите: employees.get( 246 ).performance(). 
Если популяция агентов типа Company задана на диаграмме агента Main, то чтобы получить 
доступ к агенту Main из агента Company, Вы должны написать main. Поэтому, чтобы вызвать 
функцию announceSale() типа агента Main, Вам нужно написать main.announceSale(). 
Чтобы получить доступ к агенту другой популяции, живущему в той же среде, нужно вначале 
перейти на уровень выше, а затем спуститься по иерархии модели вниз, к нужному агенту. 
Чтобы получить значение переменной loyalty определенного агента популяции customers из 
типа агента Company, нужно обратиться к типу агента Main, а затем - к агенту Customer (с 
нужным индексом): main.customers.get(i).loyalty

guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

СТАТЬИ БЛОГА ПО РУБРИКЕ И МЕТКАМ

img

Модель A12 Anylogic. Сеть пятого поколения 5g

К сети подключаются разные типы устройств:звонилки,смартфоны,авто,iOT. На первом уровне происходит соединение, как в обычной состовой сети, с базовыми станциями и коммуникаторами. Затем в зависимости от запроса, если нужно, на уровне виртуализации предоставляется доступ к нужной сети для получения требуемой услуги:мобильный интернет, интернет вещей, automotive. Далее создаётся трафик абонент/датацентр…

Требования к программе:

  1. моделируются все три слоя сети
  2. моделируются три потока – звонки, трафик, служебную информацию.
  3. учитывается спецификация сети 5-го поколения
  4. с одного слоя на другой переходят три точки, но разного цвета (три переменные)
  5. производится обмен разными данными между слоями
  6. моделируется регулятор нагрузки сети
  7. в вертикальном плане точки двигаются параллельно, например, выходить из cloud, а потом – подниматься на верхние уровни от базовых станций или о спутниковой тарелки
  8. виртуальных машины в облаке работают с сегментами сети.

Модель A12 Anylogic. Сеть пятого поколения 5g

К сети подключаются разные типы устройств:звонилки,смартфоны,авто,iOT. На первом уровне происходит соединение, как в обычной состовой сети, с базовыми станциями и коммуникаторами. Затем в зависимости от запроса, если нужно, на уровне виртуализации предоставляется доступ к нужной сети для получения требуемой услуги:мобильный интернет, интернет вещей, automotive. Далее создаётся трафик абонент/датацентр...
Требования к программе:
  1. моделируются все три слоя сети
  2. моделируются три потока – звонки, трафик, служебную информацию.
  3. учитывается спецификация сети 5-го поколения
  4. с одного слоя на другой переходят три точки, но разного цвета (три переменные)
  5. производится обмен разными данными между слоями
  6. моделируется регулятор нагрузки сети
  7. в вертикальном плане точки двигаются параллельно, например, выходить из cloud, а потом – подниматься на верхние уровни от базовых станций или о спутниковой тарелки
  8. виртуальных машины в облаке работают с сегментами сети.
img

Как строить графики plot средствами gpss

1. Закомментировать оператор start
2. Зайти в верхнее меню Команды -> Создать Моделирование
3.Зайти в верхнее меню Окно-> Окно Моделирование -> Окно Участка
4. В открывшемся окне заполняем поля разделов
4.1. «Новое выражение»:
а) метка для символьного обозначения;
б) выражение, из которого будет строиться график, например, СЧА ячейки сохраняемой величины. Информация по другим СЧА здесь https://hqline.ru/standartnye-chislovye-atributy-scha-blokov-gpss/;
4.2. «Содержание окна»:
А) метка для символьного обозначения графика,
Б) временной диапазон для фиксации предела прорисовки по гориз.оси,
мин. и макс. значения по вертикальной оси,
4.3 Нажать на кнопки «участок» для добавления выражения в отображении графика, нажать на кнопку «Запомнить» для сохранения всех параметров графика пока запущено моделирование.

Как строить графики plot средствами gpss

1. Закомментировать оператор start
2. Зайти в верхнее меню Команды -> Создать Моделирование
3.Зайти в верхнее меню Окно-> Окно Моделирование -> Окно Участка
4. В открывшемся окне заполняем поля разделов
4.1. «Новое выражение»: а) метка для символьного обозначения;
б) выражение, из которого будет строиться график, например, СЧА ячейки сохраняемой величины. Информация по другим СЧА здесь https://hqline.ru/standartnye-chislovye-atributy-scha-blokov-gpss/;
4.2. «Содержание окна»:
А) метка для символьного обозначения графика,
Б) временной диапазон для фиксации предела прорисовки по гориз.оси, мин. и макс. значения по вертикальной оси,
4.3 Нажать на кнопки «участок» для добавления выражения в отображении графика, нажать на кнопку «Запомнить» для сохранения всех параметров графика пока запущено моделирование.
img

Блоки gpss

Данная статья — памятка по GPSS

(англ. General Purpose Simulation System — система моделирования общего назначения) — язык моделирования, используемый для имитационного моделирования различных систем, в основном систем массового обслуживания.

Система GPSS изучается во многих учебных заведениях в России и за рубежом[источник не указан 3983 дня]. Широко используется для решения практических задач. Динамическим элементом модели является транзакт — абстрактный объект, который перемещается между статическими элементами, воспроизводя различные события реального моделируемого объекта. В процессе работы модели накапливается статистика, автоматически выводимая по завершении процесса моделирования. Статические элементы модели: источники транзактов, устройства, очереди и другие. Их расположение в модели определяется блоками.

Блоки gpss

Данная статья - памятка по GPSS (англ. General Purpose Simulation System — система моделирования общего назначения) — язык моделирования, используемый для имитационного моделирования различных систем, в основном систем массового обслуживания. Система GPSS изучается во многих учебных заведениях в России и за рубежом[источник не указан 3983 дня]. Широко используется для решения практических задач. Динамическим элементом модели является транзакт — абстрактный объект, который перемещается между статическими элементами, воспроизводя различные события реального моделируемого объекта. В процессе работы модели накапливается статистика, автоматически выводимая по завершении процесса моделирования. Статические элементы модели: источники транзактов, устройства, очереди и другие. Их расположение в модели определяется блоками.
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x