Имитационная модель логистического центра

в 7:18, , рубрики: data mining, Анализ и проектирование систем, визуализация данных, имитационное моделирование, моделирование предметной области, метки: ,

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

Постановка задачи (описание процесса)

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

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

Комплектовщики при помощи погрузочного оборудования (электрический погрузчик) комплектуют в зоне отгрузки поставку в розничную точку продаж. Комплектация проводится при достижении остатка товара в розничной точке продаж точки восполнения запаса (точки перезаказа).

После комплектации стандартной партии отгрузки товар передается в точку розничных продаж для реализации.
Необходимо разработать модель представленного процесса для дальнейшего проведения оптимизационных экспериментов (например, определения точки перезаказа при условии отсутствия нулевого остатка в розничной точке продаж).

Исходные данные

Ресурсы логистического центра

Ресурс Количество ЕИ Сменность
1 Кладовщик 2 чел. 3 смены по 8 часов
2 Электрический погрузчик 5 шт. 3 смены по 8 часов
3 Контроллер 3 чел. 3 смены по 8 часов
4 Ячейки стеллажей участка хранения 120 ячеек

Длительность операций
Операция Длительность, мин.
1 Разгрузка машины От 15 до 30, в среднем 21
2 Входной контроль От 4 до 11, в среднем 11

Параметры функционирования розничной точки продаж

Параметр Значение ЕИ Примечание
1 Текущий спрос 40 шт. 1 раз в час
2 Точка перезаказа 500 шт.
3 Количество товаров поступающих в 1 упаковке 8 шт.

Реализация
В качестве инструмента для разработки выбран программный продукт AnyLogic (v.7.0.2).

Описание классов активного объекта

Класс Описание
1 Warehouse Основной активный класс модели, содержащий в себе
остальные классы;
Отражает диаграмму поведения и презентацию модели склада;
2 LogisticsMap Вложенный активный класс модели, содержащий в себе
диаграмму поведения
взаимодействия слада и розничной точки, а так же
поведение розничной точки продаж;
3 Box Тип заявки товара;
Содержит в себе презентацию заявки Box;
4 Track Тип заявки машины поставляющей товар;
Содержит в себе презентацию заявки Track;
5 Lorry Тип заявки машины доставляющей товар в розничную
точку продаж, а так же осуществляющей возврат не
прошедшего контроль товара поставщику;
Содержит в себе презентацию заявки Lorry;
6 Storekeeper Тип агента;
Содержит в себе презентацию ресурса «storekeeper»;
7 Loader Тип агента;
Содержит в себе презентацию ресурса «loader»;
8 Controller Тип агента;
Содержит в себе презентацию ресурса «controller»;
9 Shop_1 Тип агента;
Содержит в себе презентацию ресурса «shop_1»
имитирующего в модели розничную точку продаж;

При помощи диаграммы дискретно-событийного моделирования разработана модель функционирования логистического центра
Имитационная модель логистического центра - 1

Описание основных блоков модели
Блок Описание
1 SourceBox Перед каждым шагом модели подсчитывает кол-во свободных ячеек
в зоне хранения;
На каждом шаге модели генерирует заявки класса Box;
2 selectFreeCell Переключатель. Анализирует рассчитанные свободные ячейки
и при отсутствии свободных отправляет заявки на уничтожение в блок
«cancellationRequests»
3 batchTruck/
unbatchBox
Компонует/раскомпановывает указанное в календаре поставки
количество заявок типа «Box» в одну заявку типа «Track» для отражения
на презентации прибытия машины
4 seizeStorekeeper/
releaseStorekeeper
Захватывает/отпускает ресурс типа «storekeeper» отражая на
презентации взаимодействие кладовщика с машиной (встреча, сопровождение,
разгрузка);
После отпуска ресурс возвращается в базовый узел при условии отсутствия
других работ;
5 serviceUnload Захватывает ресурс типа «loader» и перемещает его к заявке;
Проводит задержку, символизирующую разгрузку машины и проверку товара.
Задержка проводится посредством метода треугольного распределения
(triangular( 15, 21, 30 ));
Отпускает ресурс типа «loader»;
Отпущенный ресурс возвращается в базовый узел при условии отсутствия
других работ;
6 splitTruck Создает копию заявки типа «Track» для дальнейшего отражения
выбытия машины в зону выхода на презентации. Потребность в этом
вызвана тем что при обратной раскомпановке заявки типа «Track» в заявки
типа «Box» заявка «Track» уничтожается;
7 seizeController/
releaseController,
releaseController1
Захватывает/отпускает ресурс типа «controller» для отражения на
презентации перемещения контролера к заявке и возврата в базовый
узел при условии отсутствия других работ;
8 controll Проводит задержку, символизирующую проведение входного контроля.
Задержка проводится посредством метода треугольного распределения
(triangular(4, 7, 11));
9 admittance Переключатель;
Определяет вероятность прохождения заявкой типа «Box» процесса
входного контроля;
Вероятность задана напрямую (0.107)
10 batchLorry Компонует заданное количество заявок типа «Box» в заявку типа
«Lorry», символизируя комплектацию не прошедшего контроль товара
в машину для возврата поставщику;
11 queuePallete Задерживает прошедшие входной контроль заявки типа «Box»
до появления свободного ресурса типа «loader» для перемещения
товара в ячейки зоны хранения;
12 palleteSystem Объединяет стеллажи отраженные на презентации в единую систему хранения;
13 palleteStore Захватывает любой свободный ресурс типа «loader» и присоединяет его к заявке;
Размещает заявку типа «Box» в свободной ячейке зоны «palleteSystem»
Отпускает ресурс типа «loader». Отпущенный ресурс возвращается в базовый узел
при условии отсутствия других работ;
14 hold Блокирует дальнейшую передачу заявок типа «Box», если текущий остаток в
розничной точке продаж больше точки перезаказа. Достигается это путем вызова
методов «block()» и «unblock()» при входе заявки;

код

if (LogisticsMap.currentStock < LogisticsMap.reorder) {
	hold.unblock();
} else {
	hold.block();
}

15 seizeLoaderPall/
releaseLoaderPall
Захватывает/отпускает ресурс типа «loader» для отражения на презентации
перемещения контролера к заявке и возврата в базовый узел при условии
отсутствия других работ;
16 palletePick Извлекает заявку типа «Box» из зоны «palleteSystem» и перемещает ее
в зону отгрузки в розничную точку продаж;
17 batchLorry1 Компонует заданное количество заявок типа «Box» в заявку типа «Lorry»,
символизируя погрузку машины для отгрузки в розничную точку продаж;
18 sink Уничтожает заявку типа «Box»;
При входе запускает генерацию одной заявки типа «Agent» объектом
«sourceLorry» в активном классе «LogisticsMap» для отражения доставки
товара в розничную точку продаж;
Достигается это путем вызова метода «ручной» генерации заявок

код

logisticsMap.sourceLorry.inject(1)

Входной поток «SourceBox» управляется расписанием, формируемым из внешнего источника:

Имитационная модель логистического центра - 2

Аналогичным способом при помощи расписания «downtime» задается расписание перерывов работы ресурсов. Визуальное представления формируется при помощи инструмента разметки пространства:

Имитационная модель логистического центра - 3

Описание областей разметки

Описание
1 Точка прибытия машин (заявок типа «Track»)
2 Базовый узел расположения кладовщиков (заявок типа «Storekeeper»)
3 Базовый узел расположения электрических погрузчиков (заявок типа «loader»)
4 Точка выбытия машин (заявок типа «Track», в случаях возврата товара не прошедшего входной контроль поставщику — «Lorry»)
5 Узел выгрузки товара и прохождения входного контроля
6 Базовый узел расположения контролеров (заявок типа «Controller»)
7 Узел комплектации товаров не прошедших входной контроль
8 Узел ожидания погрузчика для размещения товара на стеллажах хранения
9 Зона хранения товара
10 Узел комплектации для отгрузки в точку розничных продаж
11 Узел выбытия товаров

После прохождения объекта «sink» заявкой типа «Box» заявка уничтожается, а в активном классе «LogisticsMap» объектом «sourceLorry» генерируется заявка типа «Agent». Заявка перемещается по скрытым линиям разметки пространства к единственному ресурсу «Shop_1» (рис. 4) отражающему точку розничных продаж.

Имитационная модель логистического центра - 4

При достижении ресурса, заявка типа «Agent» уничтожается объектом «sink», а текущий остаток точки розничных продаж увеличивается на заданное количество.

На презентации присутствует диаграмма, отражающая текущий остаток товара в розничной точке продаж.

При достижении нулевого остатка продажи в розничной точке приостанавливаются до следующей поставки. Функционал обеспечивает событие «sale» запускаемое с периодичностью 1 час.

Событие передает управление диаграмме действия:

Имитационная модель логистического центра - 5

Диаграмма, при наступлении события, анализирует текущий остаток (переменная «currentStock») относительно точки перезаказа (параметр «recorderPoint»). В случае превышения текущего остатка над точкой перезаказа, переменной, хранящей уровень текущего спроса (переменная «currentStock»), присваивается значение >0 и проводится реализация товара посредством уменьшения текущего остатка на уровень текущего спроса (currentStock- currentStock). В противном случае диаграмма переходит в следующий блок решения, в котором сопоставляется текущий остаток и уровень текущего спроса. В случае превышения текущего остатка над уровнем текущего спроса, переменной, хранящей уровень текущего спроса присваивается значение >0 и проводится реализация товара посредством уменьшения текущего остатка на уровень текущего спроса. В ином случае переменной, хранящей уровень текущего спроса присваивается значение 0, таким образом продажи приостанавливаются до восполнения потребности.

В качестве заключения

На текущем этапе построения модель достаточно общая, но вполне отражает процесс прохождения товара: от прибытия товара и размещения его на стеллажах участка хранения до передачи его в розничную точку продаж с последующей реализацией. Уже на данном этапе разработки модели можно выполнять эксперименты, оптимизируя точку перезаказа в целях стабилизации цепочки поставок.

Автор: OPrikazchikov

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js