Как стать автором
Обновить

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

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

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


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



Аналогичным способом при помощи расписания «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, таким образом продажи приостанавливаются до восполнения потребности.

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


На текущем этапе построения модель достаточно общая, но вполне отражает процесс прохождения товара: от прибытия товара и размещения его на стеллажах участка хранения до передачи его в розничную точку продаж с последующей реализацией. Уже на данном этапе разработки модели можно выполнять эксперименты, оптимизируя точку перезаказа в целях стабилизации цепочки поставок.
Теги:
Хабы:
Всего голосов 14: ↑13 и ↓1+12
Комментарии0

Публикации

Работа

Data Scientist
42 вакансии

Ближайшие события