Алгоритм упаковки прямоугольников в несколько полос и анализ его точности в
среднем1
2Д.О. Лазарев <[email protected]> 1,2 Н.Н. Кузюрин <[email protected]> 1 Институт системного программирования им. В.П. Иванникова РАН, 109004, Россия, г. Москва, ул. А. Солженицына, д. 25 2Московский физико-технический институт, 141700, Московская область, г. Долгопрудный, Институтский пер., 9
Аннотация. В 2012 году М. А. Трушников предложил принципиально новый онлайновый алгоритм упаковки прямоугольников в полосу, а в 2013 году была получена оценка точности алгоритма в среднем, равной математическому ожиданию
3
незаполненной прямоугольниками площади, равная 0(-/Й(1пЫ) 2). Ранее известная 2
оценка 0(№) была существенно улучшена. В настоящей работе данная оценка улучшена до , а также алгоритм Трушникова обобщён на случай упаковки N
прямоугольников в к полос, к < с сохранением оценки О(-^ЫЫЫ).
Ключевые слова: новая эвристика, задача упаковки прямоугольников в полосу, задача упаковки прямоугольников в несколько полос, оценка в среднем.
Б01: 10.15514/ISPRAS-2017-2 9(6)-13
Для цитирования: Лазарев Д.О., Кузюрин Н.Н. Алгоритм упаковки прямоугольников в несколько полос и анализ его точности в среднем. Труды ИСП РАН, том 29, вып. 6, 2017 г., стр. 221-228. DOI: 10.15514/ISPRAS-2017-29(6)-13
1. Введение
Задача упаковки прямоугольников в несколько полос, в англоязычной литеретуре называемая Multiple Strip Packing Problem, заключается в упаковке открытых прямоугольников в некоторое число вертикальных полубесконечных полос единичной ширины. Основания полос — отрезки единичной длины, лежащие на одной горизонтальной прямой с ординатой, равной нулю. Прямоугольники не пересекаются, их стороны параллельны
1 Работа выполнена при финансовой поддержке РФФИ, проект № 17-07-01006 A
сторонам полос, вращения запрещены. Требуется минимизировать высоту h упаковки — ординату самой высокой точки, принадлежащей замыканию одного из прямоугольников.
Практическая важность задачи обуславливается следующей её интерпретацией: каждый прямоугольник представляет собой задачу, вычисляемую на кластере. Каждая задача вычисляется на некотором вычислительном устройстве, то есть каждый прямоугольник кладётся в некую полосу. Высота прямоугольника — время выполнения задачи, а ширина — отношение мощности вычислительных ресурсов, задействованных для решения данной задачи к общей доступной на данном вычислительном устройстве мощности вычислительных ресурсов.
Будем рассматривать онлайновые алгоритмы, размещающие очередной прямоугольник в полосы без знания параметров выпадающих за ним прямоугольников. Предположим, что общее число прямоугольников известно алгоритму до начала работы. Пусть значения длин сторон всех прямоугольников - независимые в совокупности величины, имеющие равномерное распределение на [0,1]. Анализ алгоритма производим в среднем, т.е. минимизируем E(Ssp) — математическое ожидание площади полос, не заполненной прямоугольниками на высоте от 0 до h, где h — высота упаковки. Задача упаковки прямоугольников в одну полосу, называемая в англоязычной литературе Strip Package Problem, хорошо исследована и для неё было построено множество эвристик. Известно, что для оптимальной упаковки в данной задаче E(Ssp) = ß(-^N). В 1993 году в [1] Коффманом и Шором был предложен оффлайновый алгоритм упаковки прямоугольников с E(Ssp) =
0(^N). Там же был предложен онлайновый алгоритм с E(Ssp) = 0(N3). В 2012 году в [2] Трушниковым был предложен принципиально новый онлайновый алгоритм, а в следующем году в [3] было показано, что данный алгоритм работает лучше всех ранее известных алгоритмов: для него E(Ssp) =
0(^N(lnN)l).
Задача упаковки прямоугольников в несколько полос была рассмотрена С.Н. Жуком в работе [4], однако в ней рассматривается оценка точности алгоритма для худшего случая.
В настоящей работе исследовались алгоритмы, работающие по тому же принципу, что и алгоритм Трушникова. Для них улучшена ранее доказанная в работе [3] оценка: E(Ssp) = O(^NlnN).
Также данная оценка обобщена на случай к полос, где к < Jn .
2. Модифицированное доказательство Трушникова
В данном разделе мы изучаем алгоритмы онлайновой упаковки в полубесконечную полосу ширины w (w > 1) N прямоугольников, длины
сторон которых имеют равномерное распределение на отрезке [0,1]. Считаем, что число N изначально известно алгоритму, и пусть параметр й = й(Ы). Предположим, что удалось без остатка свободного пространства разбить
„ N , „ „ I . -—Т
нижнюю часть полосы высотой — на а контейнеров ширинои —,1 = 1, а и
-и N высотой и =-.
Рассмотрим алгоритм типа алгоритма Трушникова: прямоугольник кладём в контейнер минимальной ширины, в который он помещается; если же он не помещается, то назовём его прямоугольником переполнения. Нижнюю горизонтальную сторону такого прямоугольника кладём на самую высокую верхнюю грань предыдущего прямоугольника переполнения. Первый прямоугольник переполнения кладём нижней стороной на верхнюю сторону верхнего контейнера.
Тогда верно следующее утверждение: если ЗМ0:УМ > М0 верно: ЗС>с> 0: с^Ш < й^) < С^Ш, то алгоритм данного типа даёт математическое ожидание незаполненной площади полосы снизу до верхней грани верхнего контейнера, равное Е(Б5р) =
Доказательство во многом повторяет оценку Трушникова Е(5Бр) для его алгоритма в случае ш = 1, полученную в работе [3].
Вначале заметим, что число прямоугольников c шириной > имеет мат. ожидание, равное
В работе [3] Трушниковым была доказана следующая Лемма:
d
Лемма 1. Пусть случайная величина X = ^ X¡, где Х1=%{ц1, где ^
¿=1
принимает значения 1 с вероятностью р и 0 с вероятностью 1 — р, равномерно распределена на отрезке [0,1]. Также все ^ и ^- независимы в совокупности. Тогда V« е (0,1) выполнено неравенство:
5 2
Р{Х > (1 + а)ЕХ] < е~9а БХ Рассмотрим динамический процесс выпадения прямоугольников. Лемма 2. Пусть выпало N — 2М 4
ЯгсШ
прямоугольников. Тогда
Е{мощности переполнения} ^ 0(п ^ да)
Доказательство. Покажем, что Рг{в полосу попало несколько
1
прямоугольников суммарной высотой более и — 1} < Отсюда получим,
что Pr{переполнение имеет место} А значит, Я (переполнения) <
Зафиксируем полосу. Найдём вероятность того, что в неё попало несколько прямоугольников суммарной высотой более чем и — 1. Если это не так, то переполнения в полосе в отсутствии переполнений в других полосах точно нет.
Вычислим а из условия U — 1 = Е(Х)(1 + а). Е(Х) = N .
_ _ „ 2N4^2ClnN
В результате элементарных преобразовании, получим, что а =-§-
2N-2N4^2ClnN
= (1+ o(1))2N-42ClnN.
exp{-5a2E(X)} = exp{-5 *4N~22cln N(- —)(1 + 0(1))} < N~2Л ^ ^ ^ 9 2 d (N)
для достаточно больших N. a
_ , „ .. ...i+b, InlnlON _ , .1
Лемма 3. Пусть упаковали N — [N2 J прямоугольников, ——— < b <-.
Зафиксируем у = 2b — ln(10l™N\ Тогда вероятность того, что каждая из [dN-y\ самых широких полос заполнена до высоты U — 1 равна 0(N-11). Доказательство. Сначала покажем, что вероятность того, что в любые [dN-y\ подряд идущих контеИнеров выпали прямоугольники суммарной высотой > ( U — 1)[dN-yJ равна 0(N-21). Далее заметим, что в каждые подряд идущие группы по [dN-yJ контеИнеров выпали прямоугольники суммарной высотой ( U — 1)[dN-yJ с вероятностью < N-11. Предположим, что s самых широких контейнеров заполнены выше, чем на U — 1, где s > [dN-yJ. Рассмотрим множество М, состоящее из [dN-yJ самых узких из них. Так как высота заполнения (s + 1)-ого по ширине контейнера ниже, чем U — 1,тов М попали прямоугольники суммарной высотой > (U — 1)[dN-yJ. Получили противоречие. Значит, хотя бы один из самых широких [dN-yJ контейнеров заполнен ниже высоты U — 1.
Итак, зафиксируем [dN -yJ контейнеров. Пусть высота X выпавших в них прямоугольников превосходит ( U — 1)[dN-yJ. Оценим вероятность этого события с помощью Леммы 1.
1
N — [N2+bJ
EX =--]-[dN-yJ
2 d
„ „ .. , ... |W2+b|-2d ^ N2+b-2d-1
Найдем а из условия (1 + a)EX = (и — 1) [dN yJ: a =-j— >-j-.
N-[N2+bJ N-N2+b + 1
И из леммы 1) вероятность того, что контейнеры заполнены выше U — 1 не превосходит
1
5N2+b — 2d — 1(N — 2d)[dNyJ 4N2+2b-y 1
ехР(—9(-~ъ-)2-d-) < ехр(—9 N ) < N-21
9 N — N2+b + 1 d 9 n n
3
3
для достаточно больших Ы, что и требовалось доказать. а
Назовём отрезком [Б,Т],Т > 5 множество прямоугольников, выпавших строго после -го и до Т-го прямоугольника включительно.
Мы получим требуемую оценку, если покажем, что мат. ожидание числа
з _
прямоугольников из отрезка ^ — 2И4 попавших в
переполнение равно Это и доказывается в следующей лемме.
Лемма 4. Мат. ожидание числа прямоугольников из отрезка [Ы —
з _____
2М4
ЛсШ.и — ^Ы], попавших в переполнение равно
1 1п1п10И 1
Рассмотрим 1-ый отрезок: [Ы — N2+ ыи — N2]. В него попало не более,
1 1п1п10И
чем N2+ 1пи = ехр(1п1п10И)уЙ = 0(уЙ1пИ) прямоугольников.
1 1п1п10И 1 1п1п10И
Рассмотрим 2-ой отрезок: [Ы — N2+ ыи — N2+ ыи ]. В него попало не
1 1п1п10Ы
более, чем N2+ ыи прямоугольников. Вероятность же для прямоугольника
1п1п10И
не попасть в один из йЫ ~у = йЫ ^ самых широких контейнеров, и, таким образом, попасть в переполнение с вероятностью не более равна
1п1п10И
N 1пи . Таким образом,
Е{числа прямоугольников из данного отрезка в переполнении} =
1 1П1П10Л'
0(Ы2 + м ) = 0(4ы 1П N) 1
Зафиксируем ¡тах = [~1пИ/1п1п10И] + 1.
4
1 ,1п1п10Ы
Рассмотрим -ый отрезок, где (] = 3Лтах): [И — И2+] 1пи ,М —
1 1п1п10И 1 ,1п1п10Ы
И2+(]~ ' 1пи ]. В него попало не более, чем И2+] ыи прямоугольников. Вероятность же для прямоугольника не попасть в один из =
. 1п1п10И
' самых широких контейнеров, и, таким образом, попасть в
переполнение с вероятностью не более —равна N ( 1 ' ым . Таким образом, £{числа прямоугольников из данного отрезка в переполнении} = О (N2) = О(^).
Всего же отрезков — 0(1пМ) ^ вклад данной области
составляет
Рассмотрим последний отрезок: [Ы — 2И4\12С1пИ,И — N4]. В него попало не
более, чем 2\12С1^Ш прямоугольников. Вероятность же для прямоугольника не попасть в один из йЫ ~у < (для достаточно больших Ы) <
з
самых широких контейнеров, и, таким образом, попасть в переполнение
з
с вероятностью не более не более, чем N 8. Таким образом, £{числа
з
з
прямоугольников из данного отрезка в переполнении} = O(N?) = O(-jNlnN). ■
Лемма доказана, а с ней получена требуемая оценка.
3. Упаковка прямоугольников в большое число полос
3.1 Постановка задачи
Пусть дана функция k = k(N). Требуется упаковать N прямоугольников в к полубесконечных полос единичный ширины в онлайновом режиме. Длины сторон прямоугольников — случайные величины, равномерно распределённые на отрезке [0,1]. Число прямоугольников N известно до выпадения первого прямоугольника.
Качество алгоритма упаковки будем оценивать, используя величину E(Ssp)-мат. ожидание площади полос, незаполненной прямоугольниками, в части полос, начинающейся ото дна и заканчивающейся на самой большой высоте верхнего основания прямоугольника, помещённого в полосу.
3.2 Алгоритм A
Пусть k(N)2 < Nдля всех N > N0. Зафиксируем некоторые N > N0 и k(N) = к. За ^обозначим число, равное 2к[Разделим нижнюю область 1-ой
N „ 1 d
полосы высотой — на два контейнера шириной — и —. Над данной
4d d+1 d+1
областью выделим следующую область той же высоты, которую разобьём на 2 „2 d-1 . _ контейнера шириной и Аналогично выделим ещё несколько областей
той же высоты, чтобы всего их число стало и каждую из полос разобьём на 2 контейнера так, чтобы два контейнера, граничащих по вертикальной стороне, дополняли бы друг друга до области и ширина узких контейнеров из
области бы равнялась = 1,
Аналогично разобьём вторую и следующие за ней области до высоты N, причём ширина самых узких контейнеров из области будет равна
d+1 L к J
В эти контейнеры будем укладывать прямоугольники следующим образом:
1) Прямоугольник кладётся в контейнер наименьшей ширины, в который он помещается.
2) Если же он никуда не помещается, так как все контейнеры, ширина которых больше ширины прямоугольника, не могут его вместить, то
назовём прямоугольник прямоугольником переполнения 1-го рода. Суммарную высоту всех таких прямоугольников обозначим за к1.
3) Если же ширина прямоугольника больше, чем то назовём прямоугольник прямоугольником переполнения 2-го рода. Суммарная высота этих прямоугольников равна к2.
4) Начнём последовательно упаковывать прямоугольники по полосам. Высотой полосы назовём величину, равную высоте самой высокой точки, принадлежащей замыканию одного из прямоугольников или контейнеров, лежащих в данной полосе. Предполагая, что разбиение полос на контейнеры выполнено до выпадения первого прямоугольника, очередной прямоугольник переполнения кладётся в одну из полос с минимальной высотой на верхнюю грань самого высокого алгоритма.
3.3 Оценка математического ожидания площади свободного пространства
Докажем, что Е(Б5р) = 0(ШпЮ. Очевидно следующее утверждение и следствие из него:
Утверждение. Если Ъ < а, то ^<Ъ[^]<а.
Следствие. < 2к[—] <
к
Заметим, что алгоритм А1 упаковки в 1 полосу, пакующий прямоугольники в те же контейнеры, что и описанный ранее алгоритм, а прямоугольники переполнения кладущий один поверх другого, является алгоритмом типа алгоритма Трушникова и удовлетворяет требованиям из модифицированного доказательства Трушникова, а значит верно следующее:
1) Е{площади незаполненного прямоугольниками пространства внутри контейнеров}=
2) Е(к1 + к2) = 0(^1пЫ).
Теперь рассмотрим алгоритм А упаковки во много полос. Обозначим за Нразность высот самой высокой точки прямоугольников переполнения и высоты верхней стороны верхнего контейнера, равной Если в
переполнение не попали прямоугольники, то данная величина равна 0. Так как любая полоса, по построению, заполнена не ниже Н — 1, то (Н — 1)к <к1+ Кг. Стало быть, Е(кН) = 0(^Й1пМ).
Для алгоритма А: Е(ББр) <Е{площади незаполненного прямоугольниками пространства внутри контейнеров} + Нк = что и требовалось
доказать.
Список литературы
[1]. Coffman E.G., Jr, Shor P.W. Packing in two dimensions: Asymptotic average-case analysis of algotithms. Algorithmica, vol. 9, No 3, pp. 253-277
[2]. М.А. Трушников. Об одной задаче Коффмана-Шора, связанной с упаковкой прямоугольников в полосу. Труды ИСП РАН, том 22, 2012, стр. 456-462. DOI: 10.15514/ISPRAS-2012-22-24
[3]. М.А. Трушников. Вероятностный анализ нового алгоритма упаковки прямоугольников в полосу. Труды ИСП РАН, том 24, 2013, стр. 457-468, DOI: 10.15514/ISPRAS-2013-24-21
[4]. С.Н. Жук. Анализ некоторых эвристик в задаче упаковки прямоугольников в несколько полос. Труды ИСП РАН, том 6, 2005, стр. 13-26
An algorithm for Multiple Strip Package and its average
case evaluation
2 D.O. Lazarev <[email protected]> 1,2N. N. Kuzyrin <[email protected]> 1 Ivannikov Institute for System Programming of the Russian Academy of Sciences, 25, Alexander Solzhenitsyn st., Moscow, 109004, Russia
2 Moscow Institute of Physics and Technology, Dolgoprudnyj, Institutskij alley, Moscow region, 141700, Russia
Abstract. In 2012 M.A. Trushnikov suggested a new online method for 2DSP Problem. The average case evaluation for a 2DSP algorithm equals the expected value of space of strip not filled with rectangles. In 2013 the average case evaluation for this method was attained and it
3 1
equaled 0(VN(lnN)i). The best known before evaluation 0(N3) was improved. In present article this evaluation was improved to O(VNlnN). Also a new method was constructed for MSP Problem, where N rectangles are packed in к strips, к < VN, with average case evaluation equaling O(VNlnN).
Keywords: new heuristic, Strip Packing problem, Multiple Strip Packing problem, average case evaluation.
DOI: 10.15514/ISPRAS-2017-2 9(6)-13
For citation Lazarev D.O., Kuzyrin N.N. An algorithm for Multiple Strip Package and its average case evaluation. Trudy ISP RAN/Proc. ISP RAS, vol. 29, issue 6, 2017. pp. 221-228 (in Russian). DOI: 10.15514/ISPRAS-2017-29(6)-13
References
[1]. Coffman E.G., Jr, Shor P.W. Packing in two dimensions: Asymptotic average-case analysis of algotithms. Algorithmica, vol. 9, No 3, pp. 253-277
[2]. M. A. Trushnikov. On one problem of Koffman-Shor connected to strip packing problem. Trudy ISP RAN/Proc. ISP RAS, vol. 22, 2012, pp. 456-462 (in Russian). DOI: 10.15514/ISPRAS-2012-22-24
[3]. M. A. Trushnikov. Probabilistic analysis of a new strip packing algorithm. Trudy ISP RAN/Proc. ISP RAS, vol. 24, 2013, pp. 457-468 (in Russian). DOI: 10.15514/ISPRAS-2013-24-21
[4]. S.N. Zhuk. Analysis of some heuristics in Multiple Strip Package Problem. Trudy ISP RAN/Proc. ISP RAS, vol. 6, 2004, pp. 13-26 (in Russian)