УДК 004.08
A.A. Гиля-Зетинов1, К. К. Панкратов2, А. В. Хельвас3
1 Московский физико-технический институт (национальный исследовательский университет)
2Symbotic LLC 3000 «Лаборатория моделирования систем»
Разработка алгоритма укладки паллет на полностью автоматизированном складе
Решается задача трехмерной укладки коробок в паллету, относящаяся к классу NP-полных задач. Предложено несколько эвристических подходов к ее решению: на основе эвристик слоев и на основе генетического алгоритма. Предложен подход к оценке качества укладки на основе коэффициента перколяции и коэффициента устойчивости. Показана слабая зависимость качества укладки от точности задания размеров коробок.
Ключевые слова: укладка паллет, генетический алгоритм
A.A. Gilya-Zetinov1, K. K. Pankratov2, A. V. Khelvas3
1 Moscow Institute of Physycs and Technology 2Symbotic LLC 3Systems Simulation Laboratory LLC
Development of the palletization algorithm for a fully automated logistics warehouse
The problem of three-dimensional packing of boxes into a pallet, belonging to the class of NP-complete problems is studied. Several heuristic approaches to its solution are proposed, viz. the modification of the genetic algorithm and an approach based on the layering heuristics. An approach to assessing the quality of stacking based on the percolation coefficient and the stability factor is proposed. A weak dependence of the stacking quality on the accuracy of setting the dimensions of the boxes is shown.
Key words: box packing, genetic algorithm
1. Введение
Одним из основных трендов современной логистики является появление полностью автоматизированных складских систем, что порождает новый всплеск внимания к задаче трехмерной упаковки разногабаритных коробок в заданный объём или их размещения на паллете с заданными размерами.
На рис. 1 приведен пример хорошо уложенной паллеты.
Эта задача достаточно хорошо известна и исследована в математике (см., например, [10]) и является МР-полной задачей, не имеющей точных алгоритмов ее решения за полиномиальное время. Приведено описание разработанного алгоритма и проанализирован результат его применения для тестовой выборки из 500 реальных наборов, соответствующих отгрузке продовольственных товаров с оптового склада.
@ Гиля-Зетинов А. А., Панкратов К. К., Хельвас А. В., 2019
(с) Федеральное государственное автономное образовательное учреждение высшего образования
«Московский физико-технический институт (национальный исследовательский университет)», 2019
Рис. 1. Пример хорошо уложенной паллеты
В качестве показателя качества предложено использовать плотность укладки паллеты, определяемую как отношение суммарного объёма коробок, уложенных в паллету, к объёму параллелепипеда, основание которого совпадает с площадью паллеты, а высота равна максимальной высоте верхней храни коробки, уложенной в паллету.
Первое требование заключается в обязательности «перевязки» слоев. Палетта не должна рассыпаться, что достигается минимизацией количества «совпадающих» щелей в двух соседних слоях.
Качество перевязки мы описываем функцией
G — X (LsumPer ¿Sum) i
где Kint - весовой коэффициент; LgumPer ~ суммарный периметр оснований всех коробок; Lsum, ~ суммарная длина совпадающих кусков периметров коробок, стоящих друг на друге.
Второе требование относится к расположению центра тяжести уложенной паллеты. Мы полагаем, что паллета имеет достаточную устойчивость, если центр масс уложенной паллеты находится не выше некоторого заданного расстояния от уровня земли Н.
Ограничения, рассмотренные в данной работе, обусловлены требованиями к упаковке паллет от Symbolic LLC, также предоставивших тестовые выборки наборов параметров коробок. Помимо данных требований, также существуют и другие условия, возникающие для каждой конкретной задачи, например, связанные с ориентированностью коробок, плотностью, прочностью, максимальным возможным весом коробок, размещенных на паллете, способом автоматической погрузки. Более подробно эти и другие ограничения рассмотрены в работе [3].
В заключение проведен численный эксперимент на реальной выборке наборов коробок и вычислены некоторые статистические закономерности для разработанных алгоритмов.
Решения рассматриваемой задачи предлагались различными авторами в ряде работ. Например, в [6] рассматривалась двумерная задача упаковки в контейнеры, и были предложены и сравнены два полиномиальных алгоритма, известных как SIM и FFD. В частности, в работе было показано, что выбор оптимального алгоритма зависит от распределения размеров массива коробок.
В работах [5, 7] описаны несколько вариантов применения генетических алгоритмов для решения задачи трехмерной укладки.
2. Формализованная постановка задачи
Дана паллета с известным размером ширины и длины W х L и табор S, включающий К коробок с заданными размерами:
s = (si, S2, ...SK} = {(wi,li,hi), (W2,12, h2),...(WK, Ik, hK)}•
В качестве дополнительных параметров коробок d реальных данных присутствуют масса коробок т^ и «цвет» сь, но нами в представленной работе они не используются. Исходный массив имеет вид
{SKU,Quant it у,Length, Width,Не ight,We ight,Strength, Aisle,Caustic}
Здесь:
• SKU - код позиции товара,
• Quantity - количество коробок данного типа,
• Length - длина коробки в мм,
• Width - ширина коробки в мм,
• Height - высота коробки в мм,
• Weight - вес коробки в мм,
• Strength - прочность коробки (в рамках текущей работы не используется),
• Aisle - тип содержимого (в рамках текущей работы не используется),
• Caustic - «цвет» (в рамках текущей работы не используется).
Необходимо выполнить укладку коробок на паллету с выполнением ряда требований. Каждый упакованный блок характеризуется двумя координатами: Mi = (xi,yi,Zi) и М2 = (х2,У2, Z2), где первыми записаны координаты нижнего левого угла (наиболее близкого к началу координат (0, 0, 0)), а вторыми - координаты противолежащего угла с наибольшими значениями.
Таким образом, решение задачи имеет вид
5 = (x\,y\,zi ,х2,у2 ,Z2 },i = 1,2,..., к. Результат описывается в виде массива данных:
H_total Percolation W_total
SKU_i x_l~i y_l~i z_l~i x_2~i y_2~i z_2~i Aisle Weight
Здесь:
• Hfotai ~ полная высота паллеты с коробками,
• Percolation - плотность упаковки (принимает значение от 0 до 1),
• Wtotai - полный вес паллеты,
• SKUi - код коробки во входном массиве,
• x\,y\,zi координаты угла с минимальными значениями координат,
• хг2,уг2,z2 координаты угла с максимальными значениями координат.
Percolation = V^ wA / (W х L х H).
Порядок следования записей должен соответствовать последовательности укладки коробок в паллету.
Пример входного и выходного файла Приведем пример простого входного и выходно i'o файла. Входной файл, приведенный ниже, содержит описание множества из 11 коробок двух разных типов:
SKU,Quantity,Length,Width,Height,Weight,Strength,Aisle,Caustic 900001,6,600,400,200,12000,4,1,0, 900002,5,200,400,200,5000,4,2,0,
Для этого набора коробок существует плотная упаковка без пустот: 400 1.00 97000
SKU_i,x_l~i,y_l~i,z_l~i,x_2~i,y_2~i,z_2~i,Aisle,Weight
900001,0,0,0,600,400,200,1,12000,
900001,800,0,0,1200,600,200,1,12000,
900002,600,0,0,800,400,200,2,5000,
900002,0,400,0,200,800,200,2,5000,
900002,200,400,0,400,800,200,2,5000,
900002,400,400,0,600,800,200,2,5000,
900002,800,600,0,1200,800,200,2,5000,
900001,0,0,200,600,400,400,1,12000,
900001,600,0,200,1200,400,400,1,12000,
900001,0,400,200,600,800,400,1,12000,
900001,600,400,200,1200,800,400,1,12000,
3. Описание решения на основе эвристик построения слоёв
Одной из базовых известных эвристик для решения задачи паллетизации является построение слоев. Упаковка производится следующим образом: коробки поочередно укладываются на нол паллеты, образуя базовый слой. После заполнения базового слоя производят укладку нового слоя поверх предыдущего. Эти действия повторяют, пока не уложены все коробки или пока не достигнута максимальная высота паллеты.
Некоторые авторы под слоем подразумевают «стену», которую выстраивают в вертикальной плоскости (рис. 3). При этом выбор базовых осей слоя обусловлен типом оборудования, используемого для автоматической укладки.
Рис. 3. Создание нового слоя
Данный способ укладки, описанный в [1], наиболее удобен для соблюдения ограничений на несущую способность коробок. В работе [2] также производят сортировку коробок по высоте, а затем по площади основания, что позволяет избежать потерь объема из-за расстояний между слоями, а также увеличить устойчивость конечной упаковки.
При заполнении каждого отдельного слоя необходимо решить задачу двумерной укладки. Предлагается воспользоваться модифицированным методом FCNR (Floor Ceiling No Rotation) с разрешением на поворот коробки при заполнении «потолка». Подробнее другие методы двумерной укладки были рассмотрены в [6].
Предлагается использовать алгоритм со следующими параметрами и условиями:
• производится первичная сортировка по невозрастанию длины,
• самая длинная коробка устанавливается в левый нижний угол,
• последовательно заполняется первый уровень коробок с длиной не больше, чем длина первой установленной коробки,
• затем происходит заполнение оставшегося места коробками, отсортированными по площади основания, начиная с правого верхнего угла первого слоя («потолка»),
• последующие уровни заполняются аналогично первому, пока не будет достигнута граница паллеты.
Рис. 4. FCNR для двух различных наборов коробок
Как видно из рис. 4, демонстрирующего упаковку при помощи ЕС^К, и исследования [6], данный метод достаточно удачно упаковывает различные типы наборов коробок с различным соотношением сторон.
Описанные выше эвристики предлагается улучшать выбором типа двумерной укладки для каждого слоя в зависимости от соотношений сторон основания для каждого отдельного слоя. Возможные подходы к решению задачи двумерной укладки, такие как FFDH (First Fit Decreasing Height), BFDH (Best Fit Decreasing Height), FCNR (Floor Ceiling No Rotation) и другие, описаны в работе [6].
Необходимо также отметить, что данный метод упаковки на неоднородной выборке коробок показывает худшие результаты по сравнению с полученными далее в этой работе.
В ходе исследования для сравнения эффективности различных подходов был использован набор данных, предоставленных Symbolic LLC.
Существующий алгоритм проверялся с применением следующих параметров и условий:
• Производится предварительная сортировка набора по высоте и площади основания.
• Производится послойная укладка в горизонтальной плоскости с использованием FCNR.
• Далее производится заполнение междуслойного пространства с использованием FCNR.
• Укладка паллеты производится без ограничений на устойчивость конечной упаковки.
• Укладка паллеты производится без ограничений на несущую способность коробок.
• Укладка паллеты производится без огрубления (округления) размеров коробок.
Для тестового набора в 500 паллет получено среднее значение плотности укладки Кр = 0.6452, что свидетельствует о низкой однородности тестовой выборки и неприменимости данного подхода для решения практических задач укладки паллет на полностью автоматизированном складе.
4. Описание решения на основе генетического алгоритма
В качестве подхода к разработке алгоритма, обеспечивающего более высокую, чем в приведенном примере, плотность укладки, предложено использовать частный случай так называемых генетических алгоритмов.
Генетическими алгоритмами называют эвристические алгоритмы поиска с использованием механизмов, аналогичных естественному отбору в природе. Ключевым условием применимости таких алгоритмов, отличающим их от других стохастических методов оптимизации, таких как имитация отжига, является необходимость введения особой функции над пространством возможных решений (укладок) - функции скрещивания.
Результатом применения данной функции к паре решений должно являться новое возможное решение, сочетающее признаки исходных в некоторой пропорции. Также при разработке генетического алгоритма необходимо определить операцию мутации, незначительно изменяющую заданную укладку случайным образом.
Введение операций скрещивания и мутаций над задачей в исходном представлении (в нашем случае с определением укладки через явные координаты ящиков) вызывает, как правило, определенные трудности. Поэтому пространство решений сначала кодируют через последовательности значений фиксированной длины, называемые хромосомами. Тогда операция скрещивания заключается в создании новой хромосомы путем случайного комбинирования значений из двух исходных, а мутации - случайного изменения либо перестановки части значений одной хромосомы.
Правильный выбор способа кодирования решения в виде хромосомы и определяет эффективность применения генетического алгоритма для конкретной задачи.
Общие подходы к применению генетических алгоритмов в задачах упаковки приведены в [9]. Нами был разработан новый вариант применения генетического алгоритма к задаче укладки паллеты. Блок-схема предлагаемого алгоритма приведена на рис. 5.
Рис. 5. Генетический алгоритм укладки паллеты
В качестве хромосомы предлагается использовать последовательность структур, каждая из которых однозначно задает местоположение и ориентацию одной коробки в укладке. Длина хромосомы совпадает с числом коробок N. Структуры содержат следующие значения :
1) Bi - номер коробки в исходном файле для укладки на г-м шаге, число от 0 до N — 1.
2) Oi - ориентация коробки, целое число от -1 до 5. Число соответствует жадному выбору ориентации на этапе декодирования, с целью минимизации коэффициента перколяции.
3) Fi - логическое значение, определяющее угол, ближе к которому следует поместить коробку.
Координаты коробок восстанавливаются из значений хромосомы по шагам, начиная с первой структуры в хромосоме. На шаге г коробка с индексом Bi укладывается таким образом, чтобы коэффициент перколяции после г-го шага был максимальным, учитывая требования к стабильности коробок и отсутствию их наложения. Если Oi = —1, то при этом также перебираются все возможные ориентации коробок, в противном случае проверяется только одна ориентация. При наличии нескольких возможных позиций для коробки с одинаковым коэффициентом перколяции используется позиция, наименее удаленная от точки (0, 0, 0), при Fi = False, либо точки (W, Н, 0) в случае True.
Изначально популяция состоит из хромосом со значениями Oi = —1, Fi = False, & Bi образуют случайную перестановку чисел от 0 до N — 1.
Помимо данного подхода, в котором первым приоритетом являлась максимизация коэффициента перколяции, а вторым минимизация расстояния до угла паллеты (определяемого параметром Fi), также был опробован другой вариант, где решающую роль для
определения положения коробки имело расстояние до угла паллеты. Сравнение полученных результатов приведено в разделе 5.
Работа генетического алгоритма состоит в чередовании этапов скрещивания и мутации. На каждом этапе происходит запоминание хромосомы с наибольшим значением функции приспособленности, определяющей степень приближенности решения к идеальному. В ее качестве предлагается использовать коэффициент перколяции полученной укладки, за вычетом числа коробок, которые уложить при декодировании хромосомы не удалось. Выбор хромосом для скрещивания или мутации проводится случайным образом. На каждом этапе сортируются хромосомы по значению функции приспособленности и удаляются все хромосомы, за исключением некоторого числа хромосом с наибольшим значением функции приспособленности.
Процесс останавливается в случае отсутствия улучшения результата на протяжении некоторого числа поколений Жост. Данный параметр непосредственно влияет на общее время работы алгоритма, а также определяет эффективность укладки.
Также для практических применений может быть полезно дополнительное ограничение на общее время работы.
Несомненным плюсом генетического алгоритма, по сравнению с нестохастическими алгоритмами укладки, является простота доработки при наложении дополнительных ограничений на взаимное расположение коробок, таких как учет содержимого, прочности, строгой ориентированности, требований по повышению устойчивости укладки и прочих.
Для этого необходимо лишь соответствующим образом подкорректировать определение функции приспособленности.
5. Результаты численных экспериментов
Для анализа эффективности предложенных алгоритмов проведено их тестирование на выборке из 500 наборов, соответствующих реальным складским отгрузкам продовольственных товаров и любезно предоставленных компанией Symbolic LLC.
Исследовалась зависимость времени укладки одной паллеты Т и средней величины перколяции Кр от параметра N0CT для двух вариантов ГА - с декодером, использующим эвристику нижнего угла, и с декодером, максимизирующим перколяцию на каждом этапе укладки.
Результаты приведены на рис. 6. Можно заметить, что зависимость времени укладки от N0CT в рассматриваемых пределах носит линейный характер.
Достигнутое значение среднего коэффициента перколяции на тестовом наборе составило К — р — 0.776 ± 0.003 (стандартное отклонение среднего) при среднем времени укладки одной паллеты порядка 8 минут на 1 ядре процессора Intel Core i5-7300HQ 2.5 GHz.
В табл. 1 приведен результат применения ГА для нескольких вариантов округления размеров коробок, входящих в набор, при различных N0CT.
Таблица 1
Сравнение результатов применения разработанных алгоритмов на примере одного набора
Использованное округление размеров Жост — 50 W0CT — 200
1 1 мм 0.761 0.772
2 2 мм 0.763 0.772
3 5 мм 0.7625 0.774
4 10 мм 0.767 0.778
Мы видим, что результат хотя и зависит от выбранного огрубления размеров коробок, но существенного влияния на результат такое огрубление не оказывает.
Для визуализации полученного результата разработан программный компонент для анимации укладки паллеты.
Заключение
Таким образом, нами разработан новый подход к задаче трехмерной укладки коробок в паллету на основе применения генетического алгоритма.
В том числе:
1) Формализована задача и предложен ряд формальных ограничений на допустимые варианты укладки, связанные с устойчивостью получаемой конструкции при практическом применении предложенных алгоритмов в складской практике.
2) Предложен алгоритм ортогональной трехмерной укладки на основе генетического алгоритма с использованием специфичных для задачи эвристик. Для контрольной выборки получено значение плотности укладки выше 0.77 для 300 поколений генетического алгоритма.
3) Разработано приложение для визуализации паллет.
4) Изучено влияние точности округления коробок на эффективность предложенных алгоритмов укладки и показано, что использование округлений для размеров коробок не приводит к существенным изменениям параметров модели.
Результаты позволяют говорить, что сформирован подход, позволяющий решить задачу автоматической укладки паллет на полностью автоматизированных складах с качеством, достаточным для практического использования.
Результаты были обсуждены на научно-техническом семинаре ООО «Лаборатория моделирования систем». Авторы выражают благодарность участникам семинара, не вошедшим в состав авторского коллектива, но принявшим активное участие в обсуждении.
Литература
1. Ratcliff M.S. W, Bischoff E.E. Allowing for weight considerations in container loading // OR Spektrum. 1998. V. 20.
2. Loh Т.Н., Nee A.Y.C. A packing algorithm for hexahedral boxes // Proceedings of the Conference of Industrial Automation, Singapore, 1992.
3. Bortfeldt A., Wascher G. Constraints in container loading: a state-of-the-art review // European Journal of Operational Research. 2013. V. 229.
4. Pisinger D. Algorithms for Knapsack Problems. Department of Computer Science. University of Copenhagen, 1995.
5. Lutsan M.V., Nuzhnov E.V., Kureichik V.V. Self-learning of the Containers Service Coordinator Agent in Multi-agent Automation Environment of Transit Cargo Terminal — Artificial Intelligence Perspectives and Applications Proceedings of the 4th Computer Science on-line Conference 2015 (CSOC2015), V. 1 : Artificial Intelligence Perspectives and Applications, 2015.
6. Ntene N. An Algorithmic Approach to the 2D Oriented Strip Packing Problem. Dept. of Logistics, University of Stellenbosch, 2007.
7. Курейчик B.M. Алгоритмы одномерной упаковки элементов // Известия ЮФУ. Технические науки. 2013.
8. Чеканин В.А., Чеканин А.В. Модель управления свободными пространствами контейнеров в задаче ортогональной упаковки объектов // Вестник МГТУ «СТАНКИН», 2012.
9. Кпыш Д. С., Курейчик В.М. Генетические алгоритмы трассировки коммутационных блоков // Гибридные генетические алгоритмы в задачах автоматизации проектирования. 2011.
10. Garey R.M., Johnson S.D. Computers and Intractability: A Guide to the Theory of NP-Completeness, 1979.
11. Pankratov K.K., Ehrenberg D., Sweet L.M. Pallet building system. U.S. Patent Application N 14/628,978. 2015.
References
1. Ratcliff M.S. W, Bischoff E.E. Allowing for weight considerations in container loading. OR Spektrum. 1998. V. 20.
2. Loh Т.Н., Nee A.Y.C. A packing algorithm for hexahedral boxes. Proceedings of the Conference of Industrial Automation, Singapore, 1992.
3. Bortfeldt A., Wascher G. Constraints in container loading: a state-of-the-art review. European Journal of Operational Research. 2013. V. 229.
4. Pisinger D. Algorithms for Knapsack Problems. Department of Computer Science. University of Copenhagen, 1995.
5. Lutsan M. V., Nuzhnov E. V., Kureichik V. V. Self-learning of the Containers Service Coordinator Agent in Multi-agent Automation Environment of Transit Cargo Terminal — Artificial Intelligence Perspectives and Applications Proceedings of the 4th Computer Science on-line Conference 2015 (CSOC2015), V. 1 : Artificial Intelligence Perspectives and Applications, 2015.
6. Ntene N. An Algorithmic Approach to the 2D Oriented Strip Packing Problem. Dept. of Logistics, University of Stellenbosch, 2007.
7. Kureychik V.M. Algorithms of 1-D elements packing. Izvestiva SFedU. Engineering Sciences. 2013.
8. Chekanin V.A., Chekanin A.V. A model of managing free spaces of containers for the orthogonal packing problem. SPb. : Izd-vo Politekhn. un-ta, 2013.
9. Knysh D.S., Kureychik V.M. Getetic algorithms for commutational blocks tracing. Hybrid genetics algorithms in the automated design problems, 2011.
10. Garey R.M., Johnson S.D. Computers and Intractability: A Guide to the Theory of NP-Completeness, 1979.
11. Pankratov K.K., Ehrenberg D., Sweet L.M. Pallet building system. U.S. Patent Application N 14/628,978. 2015.
Поступим в редакцию 25.02.2019