Задача упаковки прямоугольников: точный алгоритм на базе матричного представления

Уфа: УГАТУ, 2GG7

Вестник уГА(Ту • Управление, ВТиИ T 9 №4(22) C iG4-iiG

МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ, ЧИСЛЕННЫЕ МЕТОДЫ

УДК 004.3

В. М. КАРТАК

ЗАДАЧА УПАКОВКИ ПРЯМОУГОЛЬНИКОВ:

ТОЧНЫЙ АЛГОРИТМ НА БАЗЕ МАТРИЧНОГО ПРЕДСТАВЛЕНИЯ

Рассматривается NP-трудная задача упаковки прямоугольников в полубеско-нечную полосу, которая имеет широкое применение в промышленности. Рассматривается матричное представление прямоугольной упаковки и ее различные свойства, которые позволяют создать эффективный алгоритм. Алгоритм трансформируется на задачу упаковки п-мерных параллелепипедов. Метод ветвей и границ; раскрой-упаковка

ВВЕДЕНИЕ

Задача упаковки прямоугольников в полу-бесконечную полосу (также двумерная задача раскроя-упаковки, two-dimensional strip packing problem, 2DSPP) состоит в следующем: требуется разместить заданные прямоугольники в полубесконечной полосе так, чтобы длина занятой части полосы достигла минимума. Согласно Дикхоффовой (Dyckhoff’s) типологии раскроя и упаковки [1] двумерная задача раскроя-упаковки имеет тип 2/N/O. Задача 2DSPP возникла в середине ХХ века и с тех пор не теряет актуальности, поскольку к ее решению сводятся прикладные задачи распределения двумерного ресурса, такие как: задачи планирования занятости и составления расписаний; задачи распределения памяти ЭВМ; собственно проблемы упаковки и раскроя. Вместе с тем большинство работ в указанной области посвящены приближенным методам решения данной задачи. Это обусловлено тем, что 2DSPP является NP-трудной задачей. На данный момент в мире существует лишь несколько подходов, позволяющих решать двумерную задачу раскроя-упаковки точно [2].

Большинство точных методов решения 2DSPP сводится к перебору всего множества допустимых решений и нахождения среди них оптимума. Такой перебор может быть доведен до эффективных алгоритмов [2] разного вида улучшениями. Значительная группа методов улучшенного перебора известна под названием «метода ветвей и границ» (MBB). S. Martello и D. Vigo применили MBB для решения 2DSPP [3].

Точный метод решения 2DSPP, ориентированный на небольшое количество прямоугольников, был так же разработан А. И. Ли-

повецким (УрО АН СССР). В работе [4] он ввел понятие «зоны» таким образом, что решение двумерной задачи раскроя-упаковки стало сводиться к перебору допустимых зон, а также показал, что задача упаковки прямоугольников в полубесконечную полосу имеет сложность 0(т!2), где т — число прямоугольников. Использование ряда правил отсечения бесперспективных ветвей позволило сократить перебор. Метод исследован и реализован В. В. Бухваловой [5].

S.P.Fekete, J.Schepers [6] предложили представлять упаковки в виде набора интервальных графов. Разработанный ими алгоритм осуществляет перебор указанных графов. В работе показано, что одному интервальному графу соответствует некоторое семейство упаковок. Они использовали этот подход для решения рюкзачной задачи.

Другой подход к решению 2Э8РР был предложен Ю. Г. Стояном [7] и М. В. Новожиловой [8], которые предлагают использовать методы поиска глобального минимума функции цели для задачи 2Э8РР. Условия размещения прямоугольников описываются системой из линейных

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

В данной статье описан новый подход к нахождению оптимальной упаковки, базирующийся на ее матричном представлении. Использование свойств данной модели позволя-

ет создавать высокоэффективные алгоритмы решения рассматриваемой задачи.

Первоначально упаковка разбивается на вертикальные и горизонтальные полосы. Вертикальное разбиение впервые было предложено Э. А. Мухачевой и позже применено для эвристического поиска

А. С. Мухачевой [9]. Далее каждому разбиению сопоставляется бинарная матрица с элементами = 1, если г-й прямоугольник пересекается с -м полосой, в противном случае . Алгоритм сводится к построению

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

1. ПОСТАНОВКА ЗАДАЧИ

Имеется полубесконечная полоса фиксированной ширины IV и множество прямоугольников К = {//,. / = 1 ,т} с размерами (/*,«;*), где ^ — длина, — ширина г-го прямоугольника, — количество прямоугольников. Обозначим исходные данные как (И7, т, К). Требуется разместить прямоугольники в полосе так, чтобы длина занятой части полосы достигла минимума.

Допустимой упаковкой прямоугольников

в полубесконечную полосу называется размещение прямоугольников внутри полосы

5, удовлетворяющее следующим условиям: стороны прямоугольников из параллельны сторонам полосы 5;

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

Введем прямоугольную систему координат, в которой оси совпадают с нижней

и левой сторонами полосы, и обозначим допустимую упаковку через Р = {Р\, Р2, Рт}, где — координаты левого ниж-

него угла *-го прямоугольника. Тогда координаты прямоугольников в допустимой упаковке должны удовлетворять следующим условиям:

Xi^O, yi^O^i+Wi^W, i = l,m. (1) [x.j + lj Xj) V (Xj + lj x.j) V

'j = '•///• i /

Допустимая упаковка , для которой длина занятой части полосы L = max (x.j + lj) до-

i=l,m

стигает минимума, называется оптимальной.

2. МАТРИЧНОЕ ПРЕДСТАВЛЕНИЕ УПАКОВКИ

Как уже говорилось во введении, 2Э8РР принадлежит к классу МР-трудных задач. В работе [11] было показано, что каждой упаковке можно сопоставить бинарные матрицы специального вида.

2.1. Вертикальное и горизонтальное разбиение упаковки

Пусть для некоторой задачи из-

вестна упаковка . Выполним мысленно вертикальные «резы», проходящие через правые стороны прямоугольников . Таким образом, вся упаковка делится на вертикальные полосы. Обозначим — число вертикальных полос. Аналогично выполним мысленно горизонтальные резы, проходящие через верхние стороны прямоугольников, ^ — число горизонтальных полос.

Пример 1. Для задачи 2Э8РР с исходными данными (И7, т, К), где Ш = 55, т = 6, ,,, ,,, известна упаковка ,

= (0,0), Р3 = (20,45), А = (30,0), Р5 = (52,0), Рб = (78,0)}, изображенная на рис. 1.

Рис. 1. Разбиение упаковки: а — вертикальная, б — горизонтальная

2.2. Матричное представление упаковки

Вертикальному разбиению упаковки на полосы сопоставим следующую пару:

1) Матрицу Ах размерности т х кх по правилу:

если -й прямоугольник пересекает -й вертикальной полосой

0, в противном случае.

2) Вектор гх = (гх, •••^ ), элементами которого являются значения длин вертикальных полос.

Аналогично горизонтальному разбиению сопоставим матрицу размерности и вектор гу = {г\, ---Щ, ). Для упаковки Р,

представленной в примере 1, имеем:

( 1 о о о о о \

1 1 0 0 0 0

0 11110 0 0 1 0 0 0

0 0 0 1 0 0

V о о о о і і /

=

/ 0 0 1 1 \

110 0 Ау = 0 0 0 1

1110 \ і о о о /

гу =

Полученные указанным способом матрицы Ах и Ау будем называть матрицами упаковки, а векторы гх и гу — векторами упаковки.

2.3. Свойства матриц и векторов упаковки

В силу специфики своего построения, матрицы , и вектора и обладают следующими свойствами:

Свойство 1. Ограниченность. Количество столбцов в матрицах и не превосходит число прямоугольников в .

Свойство 2. Продолженность единиц.

Для каждой строки матрицы

Ах найдутся такие столбцы ^Ьфп и что

ах _ если ЗЬедт ^ 3 ^ Зепй'. (4) в противном случае.

Свойство 3. Положительность. Все координаты векторов упаковки гх и гу — неотрицательные.

Свойство 4. Связь между компонентами векторов гж, ^ и элементами матриц Ах, Ау с размерами прямоугольников устанавливается следующим соотношением:

кх

к и

^2 ах^х = Ц, ^ = %ю5, з = 1,т

г=1 г=1

Свойство 5. Пусть Ш — ширина полосы 5, тогда связь между компонентами векторов , и границами выражается формулой:

ку

г=1

Свойство 6. Не перекрытие прямоугольников. Если в некотором столбце &о матрицы имеются строки и такие, что и , то для любого столбца

матрицы верно: (т. е. и

аУ2к одновременно не могут быть равны 1).

Утверждение 1. Координаты (жьэд) прямоугольников вычисляются по формулам

к,-1

Х{ = У где к{ = тт(Цах^ = 1), г = 1,т

к=і

к;-1

где к> = т1п(.Я4 = !); * = 1'.т

к=1

В работе [11] была доказана следующая теорема.

Теорема. Упаковка Р, полученная по формулам (7) и (8) из матриц Ах, Ау и векторов гх и гу, удовлетворяющих свойствам 1 -6, является допустимой.

Утверждение 2. Для нахождения оптимальной упаковки достаточно найти допустимые пары (Ах, гх) и(№, гу), такие, что

кх

^2 тт.

г=1

3. ОБЩИЙ МАТРИЧНЫЙ АЛГОРИТМ ПОИСКА ОПТИМАЛЬНОГО РЕШЕНИЯ 2DSPP

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

Шаг1. Нижняя граница Lciowll = —.

В качестве верхней границы берется Lup = оо.

Шаг2. Строится пара (А^,^), удовлетворяющая свойствам 1-5 и условию

кх

Щ < Lup. Если пара существует, то к Ша-

г= 1

гу 3, иначе к Шагу 4.

Шаг 3. Строится допустимая пара (A\zy), удовлетворяющая свойствам 1-6 и

kv ^

zf ^ W. Если пара существует, то к Ша-

г=1

гу 4, иначе к Шагу 2.

кх

Ш-аг 4. LUp = . Если LUp = LdoWn, то

г=1

переход к Шагу 5, иначе переход к Шагу 2. Шаг 5. Lup — оптимум.

4. МЕТОД ПОСТРОЕНИЯ ДОПУСТИМЫХ МАТРИЦ УПАКОВКИ

Разберем более детально метод построения допустимых пар (Ax,zx) и (№,zy). Поскольку эта задача аналогична задаче линейного раскроя, то для ее решения можно использовать модифицированный алгоритм ветвей и границ, применяемый для поиска оптимального решения 1DCSP [9].

Так как процедуры построения допустимых пар (Аж, zx) и (4^, zy) совпадают, ограничим иллюстрацию идеи перебора только парой (4Ж, zx).

Особенности построения пары (Ау, zy) отметим ниже.

4.1. Построение допустимой вертикальной матрицы упаковки

Введем следующие обозначения:

PR - множество неразмещенных прямоугольников;

М = {М{ 1), М(2), ..М(кх)} — где М(*) — множество прямоугольников начинающихся в *-м блоке;

B(kt) = , b(kt)} — вектор уче-

та «остаточной длины» прямоугольников, по-

сле заполнения столбцов

к,

;

J=l

т

суммарный оста-

г=1

ток после заполнения первых столбцов.

Выполнение следующих правил позволяет отсекать неперспективные варианты.

Учет допустимого остатка. Так как геометрический смысл матрицы Ах в том, что она задает расположение прямоугольников

кх

по оси Ох, условие ^ г? < Ьир эквивалентно

г=1

тому, что суммарный остаток упаковки мень-

т

ше, чем . Следовательно,

г=1

кх

для выполнения , необходимо, что

г=1

кх

бы было выполнено неравенство .

.7=1

Доминантность. Это отсечение основано на свойстве доминантности, определенного для ШС8Р в работе [11]. Говорят, что одна задача ШС8Р доминирует над другой, если каждой заготовке из первой задачи можно сопоставить заготовку из второй задачи так, чтобы длины заготовок из первой задачи были не длиннее длин заготовок из второй. Доказано, что решение второй (доминируемой) задачи не может быть лучше, чем решение первой.

В процессе перебора допустимых матриц после заполнения столбца формируется текущее значение вектора учета «остаточной длины» прямоугольников В^к(\ Опреде-

к/) п • ”

лим щ = и, если *-й прямоугольник полностью расположен в первых вертикальных

гХ к/)  »

полосах; Ь\ = если *-й прямоугольник

еще не был размещен; 0 < ь\к^ < Ю{, если *-й прямоугольник пересекается с вертикальной полосой и он должен присутствовать также и в ^ 1) полосе.

(Ь ) ^

Определим число Их = ^2 — дли-

.7=1

ну первых кг блоков. Будем запоминать значения и при шаге назад, т. е. при переходе от столбца с номером (&*+1) к столбцу с номером . Пусть далее на шаге вперед мы получили новое значение и .

Скажем, что доминирует над В (к(\ если и для всех выпол-

нено одно из условий

t = ь?

Очевидно, что если доминирует над

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

как он содержит большее число не размещенных элементов.

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

ВхоЭ: (W,m, R),(AX, zx),Lup.

Шаг 1. Рассчитывается резерв: Л = LupW—

т

S h'^i;

i=l

Шаг 2. Ищется такая, что 0(кх — 1) <

;

Шаг 3. b\kx^ = li — ^ ciijZj, i = l..m j=i

Шаг 4. Ищется новое заполнение столбца

, которое бы отвечало условию и

условию доминантности. Если удалось найти такое разбиение, то переход к Шагу 7, иначе — Шаг 5.

Шаг 5. Шаг назад: кх = кх — 1.

Шаг 6. Если кх = 0, то Стоп — (матрицы не существует), иначе переход к Шагу 3.

Шаг 7.кх = кх + 1 (шаг вперед) и заполняется столбец.

Шаг 8. Если Вкх ф 0, то переход к Шагу 4.

Шаг 9. Найдено новое значение (Аж, zx).

4.2. Особенности построения горизонтальной матрицы упаковки

После построения допустимой пары (Ax,zx), т. е. расположения прямоугольников по оси , необходимо найти любые допустимые (Ay,zy) с учетом свойств 1-6

kv

и Z) Z1 ^ W. Процесс построения

i=l

аналогичен тому, что был предложен для конструирования (Ax,zx). При этом для

выполнения свойства 6 необходимо ввести дополнительный список запрещенных пар. Обозначим этот список = РР(1),РР(2),... ,^Д(ш), где ^Д(*) =

— множество номеров прямоугольников, с которыми прямоугольник не может присутствовать в одном горизонтальном блоке (иначе эти прямоугольники перекроются).

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

столбце присутствовать. Данное ограничение существенно сокращает число допустимых (.

4.3. Пример выполнения алгоритма

Возьмем исходные данные из примера 2. После выполнения процедуры начального заполнения и нахождения ( найдена соответствующая пара ( :

/ 1 0 0 0 0 \

1 0 0 0 0

0 110 0 0 1 0 0 0 ’

0 1110 \ 0 0 1 1 1 /

= (28,21,4,2,19),

( 1 1 0 0 0 0

0 0 1 1 1 0

1 0 0 0 0 0

0 1 1 0 0 0

0 0 0 0 1 1

Vo 1 1 1 0 0 )

у = (20,9,7,1,12,4).

Соответствующая упаковка, полученная по формулам (7)-(8) имеет вид: Р = ,,,

, , ,

.

Следующими парами (Ах,гх) и (Ау,гу),

кх

где будут:

г=1

/ 1 1 0 0 0 0 \

0 0 1 1 1 0

і 0 0 0 0 0

0 1 1 0 0 0

0 1 1 1 0 0

V 0 0 0 1 1 1 /

= (25,3, 18 ,6, 4,15),

/ 1 1 0 0 0 0 \

1 0 0 0 0 0

0 0 1 1 1 0

0 0 1 1 0 0

0 0 0 0 1 1

V 0 1 1 0 0 0 /

гу = (20,9,8,8,4,12).

Полученным (Ах,гх) и (№,гу) сопоставляется упаковка

= (28,0), Л, = (0,29),Р4 = (25,29)>5 =

.

Ьир = 71 — новое значение верхней границы, и т. д.

Оптимальному решению будет соответствовать упаковка со значением Ь = 55, так как оно совпадает с нижней границей.

/ 1 1 1 0 0 \

0 0 1 1 1

0 0 0 1 0

1 0 0 0 0

1 1 0 0 0

V 0 0 0 1 0

*£, = (21,6,1,25,2),

(1 1 0 0 0 О

0 0 0 1 1 0

1 0 0 0 0 0

0 0 1 1 0 0

0 0 0 0 1 1

1 1 0 0 0)

zyp = (20,9,8,8,12,4).

Соответствующая упаковка

= (0,0), Р-2 = (27,37), Рз = (28,0),Р4 =

изображена на рис. 2.

Рис. 2. Оптимальная упаковка для примера 2

7. ЧИСЛЕННЫЙ ЭКСПЕРИМЕНТ

Было проведено сравнение приведенного алгоритма с «методом зон» (реализация

В. В. Бухваловой) Эксперимент проводился на компьютере P-IV 2000 GHz, l Gb на случайных тестовых задачах с параметром .

Для каждой группы было сгенерировано по З0 задач, время счета было ограничено l0 мин. В качестве показателя эффективности алгоритма выбран коэффициент раскроя (Cutting Coefficient, CC), равный отношению суммарной площади прямоугольников к площади занятой части полосы.

Как видно из табл. l, матричный алгоритм за существующее временное ограничение находил лучшие упаковки (даже в случаях, когда оптимальность упаковки не удалось доказать), нежели «метод зон».

Т аблицаl Сравнение с «методом зон»

Матричный алгоритм «Метод зон»

т Число Средн. Число Средн.

задач, где коэф. задач, где коэф.

был рас- был рас-

получен доказуемый оптимум кроя получен доказуемый оптимум кроя

12 30 0,85 30 0,85

14 30 0,92 3 0,92

16 24 0,88 3 0,76

18 12 0,89 0 0,73

7. ЗАКЛЮЧЕНИЕ

Приведенный в статье матричный подход к решению 2БЭРР имеет существенные отличия от известных ранее методов решения этой задачи.

Во-первых, алгоритм «работает» с бинарными матрицами определенного типа, а не с конкретными геометрическими объектами (прямоугольниками, «зонами», блок-структурами и т.д.), что является немаловажным фактом при реализации алгоритма, а также свидетельствует о его универсальности в смысле возможности применения модификации алгоритма для решения задач упаковки более сложных геометрических объектов.

Во-вторых, алгоритм сводится к решению двух модифицированных задач линейного раскроя, трудоемкость решения которых существенно меньше трудоемкости решения 2БЭРР. Базируясь на приведенном матричном построении упаковки, используя методы математического программирования, можно строить более точные нижние границы, а также использовать новые виды отсечений недопустимых вариантов.

В-третьих, данный подход обобщается на случаи, когда мерность рассматриваемых объектов больше двух. Количество матриц и векторов упаковки будет равна мерности рассматриваемых прямоугольников. Например, в трехмерном случае их будет три (А^,.^), (4^,2^), (Аг^г); в четырехмерном — четыре и т.д. При этом свойства 1-5 остаются неизменными, а свойство 6 модифицируется в зависимости от рассматриваемой мерности.

СПИСОК ЛИТЕРАТУРЫ

1. Dyckhoff, H. A Typology of cutting and packing problems / H. Dyckoff // European J. of Operational Research. 1990. Vol. 44. P. 145-159.

2. Wascher, G. An improved typology of cutting and packing problems / G. Wascher, H. Haussner, H. Schumann // Working Paper at Faculty of Economics and Management. Magdeburg : Otto von Guericke University, 2005. № 24.

3. Beasley, J. E. An exact two-dimensional nonguillotine cutting tree search procedure /

J. E. Beasley // Operational Research. 1985. Vol. 33. P. 49-64.

4. Martello, S. Exact solution of two-dimensional finite bin packing problem / S. Martello , D. Vigo // Managment Science. 1997. Vol. 35. P. 64-68.

5. Липовецкий, А. И. К оптимизации свободного размещения прямоугольников / А. И. Липовецкий // Автоматическое проектирование в машиностроении. Минск : ИТК АН БССР, 1985. С. 80-87.

6. Бухвалова, В. В. Задача прямоугольного раскроя: метод зон и другие алгоритмы / В. В. Бухвалова. СПб.: СПбГУ, 2001.

7. Fekete, S. A Combinatorial characterization of higher dimensional orthogonal packing /

S. Fekete, J. Schepers // Mathematics of Operations Research. 2004. Vol. 29. P. 353-368.

8. Стоян, Ю. Г. Математические модели и оптимизационные методы геометрического проектирования / Ю. Г. Стоян, С. В. Яковлев. Киев : Наук. думка. 1986.

9. Новожилова, М. В. Решение задачи поиска глобального экстремума линейной функции цели на структуре линейных неравенств : препринт / М. В. Новожилова. Харьков : ИП АН УССР, 1988.

10. Мухачева, Э. А. Генетический алгоритм блочной структуры в задачах двухмерной упаковки / Э. А. Мухачева,А. С. Мухачева, А. В. Чиглинцев // Информационные технологии. 1999. № 11. С. 13-18.

11. Картак, В. М. Решение задачи упаковки прямоугольников в полубесконечную полосу /

B. М. Картак // Региональная шк.-конф. : сб. тр. Уфа, 2001. Т. 1.С. 110-121.

12. Картак, В. М. Модифицированный метод ветвей и границ: алгоритм и численный эксперимент для задачи одномерного раскроя / В. М. Картак, Э. А. Мухачева // Информационные технологии. 2000. № 9.

C. 15-22.

ОБ АВТОРЕ

Картак Вадим Михайлович,

доц. каф. выч. математики и кибернетики. Дипл. инж.-программист (УГАТУ, 1995). Канд. физ.-мат. наук по мат. моделированию (БГУ, 1999). Иссл. в обл. задач раскроя-упаковки.