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

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

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


В логистический центр по согласованному с поставщиком календарю поставок прибывает известное количество товаров одного типа. При переполнении склада заявка на поставку товаров заведомо отменяется. Товар поступает, хранится и передается в розничную точку продаж в упаковках по 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).

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


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

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


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




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



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



Описание областей разметки
Описание
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) отражающему точку розничных продаж.



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

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

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

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



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

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


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