2026 г.

Алгоритм для многомерной упаковки в контейнеры и его вероятностный анализ

DOI: 10.15514/ISPRAS-2026-38(2)-3

1,2 Д.О. Лазарев, ORCID: 0000-0002-6253-6447 <lazarev@ispras.ru>

1 А.В. Шокуров, ORCID: 0000-0002-6801-7728 <shok@ispras.ru>

1 Институт системного программирования им. В.П. Иванникова РАН,

Россия, 109004, г. Москва, ул. А. Солженицына, д. 25.

2 НИУ Московский физико-технический институт,

Россия, 141701, Московская область, г. Долгопрудный, Институтский переулок, д.9.

Аннотация. Проводится анализ в среднем задачи упаковки d-мерных прямоугольных параллелепипедов в контейнеры. Для решения задачи, предложен алгоритм увеличения размерности, позволяющий эффективно строить алгоритм упаковки в (d+1)-мерные контейнеры, используя алгоритм упаковки в d-мерные контейнеры. При упаковке, стремимся минимизировать ожидаемый объем незаполненного пространства использованных контейнеров. Ранее известные результаты верхней оценки числа упаковываемых параллелепипедов улучшены. Уменьшение объема незаполненного пространства подтверждают проведенные вычислительные эксперименты. При анализе алгоритмов в среднем, может возникать переобучение. Связано оно с тем, что минимальный ожидаемый объем незаполненного пространства может достигаться для одного конкретного распределения, или для семейства распределений входных параметров алгоритма, в решаемой задаче входные параметры – длины сторон параллелепипедов. Для борьбы с данным нежелательным эффектом, предложенный алгоритм увеличения размерности был обобщен на случай произвольного заранее известного распределения длин сторон параллелепипедов. Эффективность обобщенного алгоритма подтверждена вычислительными экспериментами.

Ключевые слова: упаковка в контейнеры; многомерная задача упаковки в контейнеры; вероятностный анализ; переобучение; алгоритм увеличения размерности.

Для цитирования: Лазарев Д.О., Шокуров А.В. Алгоритм для многомерной упаковки в контейнеры и его вероятностный анализ. Труды ИСП РАН, том 38, вып. 2, 2026 г., стр. 35–52. DOI: 10.15514/ISPRAS-2026-38(2)-3.

Благодарности: Исследования поддержаны фондом отдела теоретической информатики Института системного программирования им. В.П. Иванникова РАН. Результаты получены с использованием услуг Центра коллективного пользования Института системного программирования им. В.П. Иванникова РАН – ЦКП ИСП РАН.

1. Введение

Задача упаковки многомерных объектов в контейнеры имеет многочисленные практические приложения. Так, одномерная задача упаковки в контейнеры, в англоязычной литературе известная как “bin packing problem”, возникла в силу потребности решения задач форматирования таблиц или аллокации файлов [1]. Также, одномерная задача упаковки в контейнеры, позволяет оптимизировать погрузку грузовых автомобилей с заданным ограничением веса [2]. Двумерная задача упаковки в контейнеры, моделирует проблему раскроя и перевозки материалов, задачу оптимизации размещения объектов на плоскости, а также проблему пакетной обработки вычислительных задач [3]. Трехмерная задача упаковки учитывает еще одно измерение и позволяет моделировать многие промышленные приложения: оптимизацию размещения трехмерных объектов на складах, в вагонах и самолетах [4].

В настоящее время, в силу быстрого роста популярности распределенных вычислений, широкого распространения вычислительных кластеров, грид-технологий, а также облачных вычислений, интерес к задачам упаковки возрастает в связи с новыми приложениями: задачами управления ресурсами распределенных вычислительных систем и развитием техники облачных вычислений [5-7].

1.1 История исследования задачи упаковки в контейнеры и классические результаты

Задача упаковки в контейнеры является одной из первых известных NP-трудных в сильном смысле задач [8]. Для ее решения было предложено множество приближенных алгоритмов и получены оценки их качества в наихудшем и в среднем случаях. В настоящей работе рассматриваются алгоритмы, работающие в режиме онлайн, для которых размер и положение очередного упаковываемого объекта неизвестны в момент упаковки предыдущего.

Опишем два важных алгоритма упаковки объектов в одномерные контейнеры:

  • First fit (FF). При упаковке алгоритмом first fit, каждый следующий объект размещается в последний созданный подходящий контейнер. Если же для него не подходит ни один из существующих контейнеров, то для его размещения создается новый контейнер.
  • Best fit (BF). Каждый следующий объект размещается в наиболее плотно заполненный подходящий контейнер. Если для него не подходит ни один из существующих контейнеров, то для его упаковки создается новый.

Оба приведенных выше алгоритма принадлежат классу алгоритмов any fit, в который входят все алгоритмы, работающие в режиме онлайн и размещающие очередной объект в один из уже созданных контейнеров в том случае, если имеется хотя бы один подходящий из созданных контейнеров.

Приведем лучшие известные результаты для задачи упаковки в контейнеры при анализе в среднем и в худшем случаях. При исследовании алгоритма A упаковки в худшем случае, исследуем асимптотическую точность R, или минимальное по всем существующим наборам упаковываемых объектов отношение числа контейнеров, необходимых для упаковки с использованием алгоритма A к числу контейнеров, в которые оптимальный алгоритм может упаковать эти же наборы параллелепипедов при стремлении к бесконечности числа упаковываемых объектов. При анализе в среднем случае, исследуется математическое ожидание W объема незаполненного пространства контейнеров после упаковки в случае, когда длины сторон упаковываемых параллелепипедов принадлежат известному распределению или семейству распределений.

При анализе в худшем случае одномерной задачи, было показано [1], что асимптотическая точность работающего в режиме онлайн алгоритма first fit составляет 1.7, и что асимптотическая точность любого алгоритма из any fit не превосходит асимптотической точности алгоритма first fit. Для алгоритмов не из класса any fit, алгоритм с лучшей из известных верхних оценок асимптотической точности R1.541 был предложен в работе [9]. Наилучшая известная нижняя оценка была получена в [10]. Было доказано, что для любого алгоритма, работающего в режиме онлайн, R1.536.

При анализе худшего случая алгоритмов, работающих в режиме онлайн, для многомерной задачи упаковки в контейнеры, лучшие известные нижние оценки [11] для асимптотической точности, полученные в случае двумерной задачи, равны 1.802, а в случае трехмерной задачи составляют 1.974. Лучший из известных алгоритм [12] для двумерной задачи имеет асимптотическую точность 2.554, для случая d-мерной задачи в [13] был предложен алгоритм с Rd=Πd, где Π1.691.

При анализе в среднем случае алгоритмов, работающих в режиме онлайн, для задачи упаковки в контейнеры выделяют постановки с незаданным завершением (англ. open-end), когда точное число объектов неизвестно до выпадения символа останова после упаковки последнего объекта, и постановку с известным завершением (англ. closed-end), когда число объектов известно до начала упаковки объектов в контейнеры (подробнее – в разделе “Постановка задачи упаковки в контейнеры”).

В [14] был предложен алгоритм для одномерной задачи c известным завершением с ожидаемым объемом незаполненного пространства контейнеров WN(N)=Θ(N), сначала упаковывающий первые N2 объектов в отдельный контейнер каждый, а затем – упаковывающий оставшиеся объекты с использованием алгоритма BF. (Здесь WN(N) – математическое ожидание объема контейнеров, незаполненного объектами после упаковки N объектов). Для алгоритмов с незаданным завершением, также имеется алгоритм [15], достигающий нижней оценки [14], равной Ω(NlnN). Отметим также, что алгоритм BF упаковки с незаданным завершением, согласно [16], имеет качество WN(N)=Θ(Nln34N), близкое к оптимальному.

При анализе в среднем, для d-мерной задачи упаковки в контейнеры, был предложен алгоритм [17] с незаданным завершением с Wd,N(N)=Θ(Nd+1d+2). Данный результат улучшен в настоящей работе до Wd,N(N)=O(Ndd+1ln32(d+1)N).

2. Постановка задачи упаковки в контейнеры

Приведем необходимые определения. Определим, следуя работе [13], многомерную задачу упаковки в контейнеры (англ. multi-dimensional bin packing problem) в постановке упаковки в гиперкубы (англ. box packing). Дан набор, состоящий из N d-мерных открытых прямоугольных параллелепипедов, которые в дальнейшем для краткости будем называть параллелепипедами. Требуется упаковать параллелепипеды без вращений и попарных пересечений в как можно меньшее число контейнеров. Контейнер – это d-мерный гиперкуб со стороной единица. Стороны параллелепипедов и контейнеров параллельны осям прямоугольной декартовой системы координат.

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

Проводится вероятностный анализ алгоритмов упаковки в предположении, что длины сторон, расположенных по i-ой координате каждого из параллелепипедов, независимы в совокупности между собой и с другими длинами сторон и имеют равномерное на [0,1] распределение i{1,...,d}. Также приведено естественное обобщение предложенного алгоритма на случай общего распределения длин сторон параллелепипедов.

Рассматриваются онлайновые алгоритмы с незаданным завершением. В работе [14] приведено следующее описание работы алгоритма с незаданным завершением:

  1. Выберем случайно равновероятно k из набора {1,...,N}.
  2. Подадим на вход алгоритму последовательность из k случайных параллелепипедов, которые алгоритм должен упаковать в режиме онлайн.
  3. Подадим алгоритму на вход символ останова.

Здесь N – натуральное число, известное алгоритму до начала работы.

Обозначим через Ad,N алгоритм упаковки в d-мерные контейнеры, упаковки с заранее известным максимальным количеством N параллелепипедов, поступающих на вход. Для алгоритма Ad,N за Wd,N(k) обозначим объем незаполненного параллелепипедами пространства частично заполненных контейнеров после упаковки kN параллелепипедов с использованием алгоритма Ad,N. Плотность заполнения d-мерных контейнеров в работе [14] исследуется с использованием целевой функции Vd,N:

Vd,N=k=1NEWd,N(k)N,

где математическое ожидание вычисляется по распределению длин сторон параллелепипедов.

Онлайновые алгоритмы, работающие по данному принципу и имеющие данную целевую функцию, будем называть алгоритмами с незаданным завершением с целевой функцией типа 1. В настоящей работе, будем также использовать следующую целевую функцию для оценки плотности заполнения контейнеров:

Wd,N=max1kNEWd,N(k)

Данную целевую функцию будем называть целевой функцией типа 2. Оценка плотности заполнения контейнеров по целевой функции типа 1 никогда не превышает оценку по целевой функции типа 2. Таким образом, наиболее строгая оценка получается с использованием целевой функции типа 2.

В работе [17] был предложен алгоритм упаковки параллелепипедов в контейнеры с оценкой целевой функции типа 1:

Vd,N=Θ(Nd+1d+2)

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

Wd,N=O(Ndd+1ln32(d+1)N),

что асимптотически улучшает оценку из работы [17].

3. Алгоритм увеличения размерности и верхние оценки Wd,N

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

3.1 Алгоритм увеличения размерности

Пусть для d-мерной задачи упаковки параллелепипедов в контейнеры, имеется множество алгоритмов Ad,MMN, работающих в режиме онлайн с незаданным завершением с оценкой целевой функции типа 2:

Wd,M(Ad,M)=max1kMEWd,M(k)=O(Mdd+1lnmM),m0

Построим для каждого NN алгоритм Ad+1,N, также работающий в режиме онлайн, с незаданным завершением с

Wd+1,N=O(Nd+1d+2lnm(d+1)d+2N)

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

Число типов областей составляет 2s+1, эти области расположены в контейнерах одного из s+1 типов. Внутри области параллелепипеды размещаются с использованием алгоритма упаковки Ad,Nd(N) меньшей размерности, где параметр Nd(N), равный верхней оценке числа упаковываемых параллелепипедов размерности d, будет введен в дальнейшем.

Аналог алгоритма из [17] можно построить также по индукции. Большее асимптотическое значение объема Wd,N незаполненного пространства для d-мерной задачи упаковки в контейнеры с использованием алгоритма из [17], по сравнению с предложенным в настоящей работе алгоритмом, возникает из-за более высокой асимптотики незаполненного пространства контейнеров для одномерной задачи упаковки в контейнеры: W1,N=Θ(N23) для алгоритма hash packing из [17], тогда как для алгоритма BF, W1,N=Θ(Nln34N).

Алгоритм увеличения размерности Ad+1,N=Ad+1,N(Ad,Nd(N)):

  1. Зафиксируем s=N1d+2ln-m(d+1)d+2N.
  2. Если выпал параллелепипед R, длина b1(R) которого по первой координате принадлежит полуинтервалу (i-12s+1,i2s+1], то говорим, что параллелепипед R – типа i.
  3. Размещение параллелепипеда по первой координате.
  • Если тип i параллелепипеда R не превосходит s, то по первой координате, сторону параллелепипеда длиной b1(R) размещаем на интервале (0,b1(R)) в контейнере i-го типа. Областью i-го типа назовем подмножество контейнеров i-го типа, значение первой координаты которых принадлежит отрезку [0,i2s+1].
  • Если тип i параллелепипеда R принадлежит множеству {s+1,...,2s}, то по 1-ой координате, сторону параллелепипеда R длиной b1(R) размещаем на интервале (1-2s-i2s+1,1-2s-i2s+1+b1(R)) в контейнере (2s+1-i)-го типа. Областью i-го типа назовем подмножество контейнеров (2s+1-i)-го типа, значение первой координаты которых принадлежит полуинтервалу (2s-i2s+1,1].
  • Если i=2s+1, то по 1-ой координате, сторону параллелепипеда R длиной b1(R) размещаем на интервале (0,b1(R)) в контейнере s+1-го типа. Областью (2s+1)-го типа назовем множество контейнеров (s+1)-го типа.

Таким образом, для всехi{1,...,2s+1}, ширина i-ой области составляет i2s+1.

  1. Размещение параллелепипеда по последним d координатам.

Проекцию параллелепипеда типа i на последние d координат, где i{1,...,2s}, размещаем в контейнер типа min{i,2s+1-i}, а параллелепипед типа 2s+1 – в контейнер типа s+1, используя при этом алгоритм Ad,Nd(N) упаковки d-мерных параллелепипедов, которому известно, что нужно упаковать не более, чем Nd(N)=(1+4N-d2(d+2)lnN)N2s+1 параллелепипедов.

Параллелепипеды различных типов упаковываем в попарно непересекающиеся области. Если алгоритм Ad,Nd(N) для размещения проекции параллелепипеда R типа i,i2s на последние d координат b2(R),...,bd+1(R), требует создания нового d-мерного контейнера, и при этом существует d+1-мерный контейнер B типа min{i,2s+1-i} в который упакованы лишь параллелепипеды (2s+1-i)-го типа, то для размещения R используется контейнер B.

На рис. 1 приведен пример построения алгоритма двумерной упаковки в контейнеры-квадраты с помощью одномерного алгоритма упаковки в контейнеры в виде отрезков с использованием алгоритма увеличения размерности.

Рис. 1. Пример построения алгоритма A2,N двумерной упаковки в контейнеры на основе алгоритма A1,N1N для одномерной упаковки.

Рис. 1. Пример построения алгоритма A2,N двумерной упаковки в контейнеры на основе алгоритма A1,N1(N) для одномерной упаковки.

3.2 Оценка ожидаемого объема Wd,N незаполненного пространства для алгоритма увеличения размерности

В приложении 1, доказана следующая теорема, позволяющая связать плотность заполнения при упаковке с помощью алгоритма Ad+1,N с плотностью заполнения с помощью алгоритма Ad,Nd(N) упаковки прямоугольников в контейнеры меньшей размерности:

Теорема 1. Пусть Ad,MMN – семейство алгоритмов с незаданным завершением для d-мерной задачи упаковки в контейнеры с оценкой целевой функции типа 2, равной

Wd,M(Ad,m)=O(Mdd+1lnmM)MN,m0.

Тогда алгоритм Ad+1,N=Ad+1,N(Ad,Nd(N)) для d+1-мерной задачи, полученный в результате применения алгоритма увеличения размерности к алгоритму Ad,Nd(N), работает в режиме с незаданным завершением и имеет оценку целевой функции типа 2, равную

Wd+1,N(Ad+1,N)=O(Nd+1d+2lnm(d+1)d+2N).

Как следствие, применяя последовательно d-1 раз алгоритм увеличения размерности Ad,N(Ad-1,Nd-1(N)(Ad-2,Nd-2(Nd-1(N))(...))) к алгоритму A1 для одномерной задачи упаковки в контейнеры, получаем следующую теорему:

Теорема 2. Пусть для одномерной задачи упаковки в контейнеры, существует алгоритм A1,N с незаданным завершением, целевая функция типа 2 для которого равна W1,N(A1,N)=O(NlnmN),m0 при упаковке не более N объектов случайного размера, имеющего равномерное на (0,1] распределение.

Тогда для каждого натурального d1, существует алгоритм Ad,N с незаданным завершением для d-мерной задачи упаковки в контейнеры, полученный в результате применения алгоритма увеличения размерности d-1 раза к алгоритму A1, со следующей асимптотической оценкой целевой функцией типа 2:

Wd,N=O(Ndd+1ln2md+1N)

Как показано в работе [16], для стандартной онлайновой эвристики с незаданным завершением BF упаковки в одномерные контейнеры, верна оценка для целевой функции второго типа:

W1BF=W1,NBF=O(Nln34N)N,

причем верхняя оценка числа упаковываемых объектов N алгоритму BF неизвестна. Следовательно, по теореме 2, на основе одномерного алгоритма BF, можно построить алгоритм с незаданным завершением d-мерной упаковки Ad,N(Ad-1,Nd-1(N)(...(BF)...)) с оценкой целевой функции типа 2:

Wd,N=O(Ndd+1ln32(d+1)N)

Такие алгоритмы будем называть алгоритмами увеличения размерности от BF (алгоритмами увеличения размерности (BF), или а.у.р.(BF)) размерности d.

3.3 Обобщение алгоритма увеличения размерности

Основным недостатком анализа алгоритмов упаковки в среднем случае является ограниченная практическая применимость, возникающая вследствие предположения о фиксированном распределении, или семействе распределений длин сторон параллелепипедов. Данное предположение может не выполняться на практике.

Алгоритм увеличения размерности может легко быть обобщен на случай любого заранее известного распределения длин сторон d-мерных параллелепипедов в том случае, когда длины сторон параллелепипедов независимы в совокупности. Для этого, аналогично случаю равномерного распределения длин сторон параллелепипедов, сначала выберем количество областей для упаковки параллелепипедов по первой координате, равное 2s+1 в зависимости от верхней оценки N числа упаковываемых параллелепипедов. Ширина i-ой области изменится с i2s+1 до значения i-ого 2s+1-квантиля распределения 1-ой стороны параллелепипедов (т.е. такого значения, которое первая координата параллелепипеда не превосходит с вероятностью i2s+1) при изменении этого распределения с равномерного на общий случай распределения. Заметим также, что i2s+1 является i-ым 2s+1-квантилем равномерного на (0,1] распределения. Данные квантили упакуем в режиме оффлайн в как можно меньшее количество контейнеров единичного размера. После чего, аналогично алгоритму увеличения размерности в случае равномерного распределения длин сторон параллелепипедов, в каждую из получившихся областей упаковываем параллелепипеды по оставшимся d-1 сторонам, используя алгоритм для упаковки объектов меньшей на 1 размерности.

В следующем разделе приведены результаты вычислительных экспериментов, позволяющие сравнить алгоритмы увеличения размерности от BF с алгоритмом из работы [17] для многомерной задачи упаковки в контейнеры. Также, на примере двумерной задачи, покажем, что предложенный алгоритм увеличения размерности позволяет эффективно упаковывать в контейнеры объекты параллелепипеды с неравномерным распределением длин сторон.

4. Результаты вычислительных экспериментов

В приложении 1 при доказательстве теоремы 1, были выделены 3 типа незаполненного пространства контейнеров. При росте числа упаковываемых параллелепипедов n{1,...,N}, математическое ожидание объема незаполненного пространства контейнеров каждого из 3 типов не убывает. Поэтому, при численном моделировании, достаточно вместо Wd,N=max1nNEWd,N(n), вычислять EWd,N(N).

Проведем численные эксперименты.

Вычислим математическое ожидание W2,N(N) для алгоритма двумерной упаковки A2,N=A2,N(BF) и для алгоритма трехмерной упаковки A3,N=A3,N(A2,N2(N)(BF)), полученных применением алгоритма увеличения размерности к алгоритму BF для одномерной упаковки, и сравним результаты с EWd,N(N) для алгоритмов hash packing из [17] соответствующей размерности d{2,3}. Также сравним адаптивную версию алгоритма увеличения размерности с алгоритмом hash packing при упаковке двумерных параллелепипедов, имеющих гауссовское распределение длин сторон.

4.1 Анализ алгоритма увеличения размерности для двумерной задачи

Проведем численный анализ алгоритма а.у.р.(BF), полученного в результате однократного применения алгоритма увеличения размерности к алгоритму BF для одномерной задачи упаковки в контейнеры. Сравним плотность заполнения контейнеров после применения алгоритма увеличения размерности от BF и после применения алгоритма hash packing.

Из теоретических результатов следует, что асимптотика EW2,NHP(N) алгоритма hash packing для двумерной задачи составляет EW2,NHP(N)=Θ(N34), а асимптотика алгоритма увеличения размерности от BF составляет EW2,Nа.у.р.(BF)(N)=O(N23lnN). Таким образом, EW2,NHP(N)/EW2,Nа.у.р.(BF)(N)=Ω(N112lnN), причем N112lnN=0.85 при N=106.

В результате вычислительных экспериментов установлено (рис. 2), что при числе параллелепипедов N из отрезка [50,106], величина EW2,NHP(N)EW2,Nа.у.р.(BF)(N) изменяется от 1.60 при N=50 до 1.95 при N=106, причем при N=104, данная величина составляет 1.69. Для всех N, а.у.р.(BF) позволяет получить меньшее математическое ожидание объема незаполненного пространства, чем алгоритм hash packing.

4.2 Анализ алгоритма увеличения размерности для трехмерной задачи

Сравним алгоритм увеличения размерности от BF и алгоритм hash packing для упаковки параллелепипедов в трехмерные контейнеры.

Из теоретических результатов следует, что асимптотика EW3,NHP(N) алгоритма hash packing для трехмерной задачи составляет EW3,NHP(N)=Θ(N45), а асимптотика алгоритма увеличения размерности от BF составляет EW3,Nа.у.р.(BF)(N)=O(N34ln38N). Таким образом, EW3,NHP(N)/EW3,Nа.у.р.(BF)(N)=Ω(N120ln-38N), причем N1/20ln-3/8N=0.75 при N=106.

В результате вычислительных экспериментов установлено (рис. 3), что при числе параллелепипедов N из отрезка [50,106], величина EW3,NHP(N)EW3,Nа.у.р.(BF)(N) изменяется от 2.81 при N=50 до 2.55 при N=106, причем при N=104, данная величина составляет 2.47.

Рис. 2. Сравнение а.у.р.(BF) и hash packing для двумерной задачи упаковки в контейнеры.

Рис. 2. Сравнение а.у.р.(BF) и hash packing для двумерной задачи упаковки в контейнеры.

Рис. 3. Сравнение а.у.р.(BF) и hash packing для трехмерной задачи упаковки в контейнеры.

Рис. 3. Сравнение а.у.р.(BF) и hash packing для трехмерной задачи упаковки в контейнеры.

4.3 Анализ алгоритма увеличения размерности в случае неравномерного распределения длин сторон параллелепипедов

При анализе алгоритмов упаковки в среднем случае, делается предположение о том, что входные данные имеют равномерное распределение. Это может вызывать “переобучение” алгоритма, когда малый объем незаполненного пространства достигается лишь в случае фиксированного распределения, или семейства распределений длин сторон параллелепипедов. Это, в свою очередь, может ограничивать практическое применение алгоритмов упаковки, показывающих высокую плотность упаковки при анализе в среднем.

Проведем численные эксперименты для двумерной задачи упаковки в контейнеры, в которых параллелепипеды имеют гауссовское распределение длин сторон. Сравним алгоритм увеличения размерности и hash packing в этом случае.

В результате вычислительных экспериментов установлено (рис. 4), что при числе параллелепипедов N из отрезка [50,106], величина EW2,NHP(N)EW2,Nа.у.р.(BF)(N) изменяется от 2.56 при N=50 до 21.5 при N=106, причем при N=104, данная величина составляет 11.8. Это показывает, что а.у.р.(BF) был эффективно обобщен на случай неравномерного распределения длин сторон параллелепипедов, и в этом случае а.у.р.(BF) на порядок превосходит алгоритм hash packing по плотности упаковки.

Рис. 4. Сравнение а.у.р.(BF) и hash packing в случае неравномерного распределения длин сторон параллелепипедов.

Рис. 4. Сравнение а.у.р.(BF) и hash packing в случае неравномерного распределения длин сторон параллелепипедов.

5. Заключение

Была рассмотрена задача многомерной упаковки параллелепипедов в контейнеры. Лучшая из известных асимптотических оценок математического ожидания d-мерного объема не заполненной параллелепипедами части частично заполненных контейнеров при анализе в среднем для алгоритмов, работающих в режиме онлайн с незаданным завершением для d-мерной задачи, улучшена с Θ(Nd+1d+2) до O(Ndd+1ln32(d+1)N).

Численные эксперименты подтверждают теоретический результат. Показано, что предложенный алгоритм, названный алгоритмом увеличения от алгоритма BF размерности d, имеет меньшее математическое ожидание незаполненного объема контейнеров, чем лучший ранее известный алгоритм hash packing для размерностей 2 и 3 при числе испытаний от 50 до 106. Также показано, что предложенный алгоритм увеличения размерности может быть эффективно обобщен со случая равномерного распределения длин сторон параллелепипедов на случай общего распределения, позволяя получить меньшее математическое ожидание объема незаполненного пространства, чем алгоритм hash packing.

Список литературы

  1. Johnson, David S., et al. Worst-case performance bounds for simple one-dimensional packing algorithms. SIAM Journal on computing 3.4, 1974, pp. 299-325. DOI: 10.1137/0203025. ↩1 ↩2
  2. Coffman Jr, Edward G., Michael R. Garey, and David S. Johnson. Approximation algorithms for bin-packing—an updated survey. Algorithm design for computer system design. Springer Vienna, 1984, pp. 49-106. DOI: 10.1007/978-3-7091-4338-4.
  3. Li, Xueping, and Kaike Zhang. Single batch processing machine scheduling with two-dimensional bin packing constraints. International Journal of Production Economics 196, 2018, pp. 113-121. DOI: 10.1016/j.ijpe.2017.11.015.
  4. Paquay, Célia, Michael Schyns, and Sabine Limbourg. A mixed integer programming formulation for the three‐dimensional bin packing problem deriving from an air cargo application. International Transactions in Operational Research 23.1-2, 2016, pp. 187-213. DOI: 10.1111/itor.12111.
  5. Tchernykh, Andrei, et al. On-line hierarchical job scheduling on grids with admissible allocation. Journal of Scheduling 13.5, 2010, pp. 545-552. DOI: 10.1007/s10951-010-0169-x.
  6. Tchernykh, Andrei, et al. Two level job-scheduling strategies for a computational grid. International Conference on Parallel Processing and Applied Mathematics. Berlin, Heidelberg: Springer Berlin Heidelberg, 2005, pp. 774-781. DOI: 10.1007/11752578_93.
  7. Gohil, Bhavesh, et al. A comparative analysis of virtual machine placement techniques in the cloud environment. International Journal of Computer Applications 156.14, 2016, pp. 12-18. DOI: 0.5120/ijca2016912530.
  8. Garey, Michael R., and David S. Johnson. Computers and intractability. Vol. 29. New York: wh freeman, 2002. 338 pp.
  9. Brown, Donna J. A Lower Bound for On-Line One-Dimensional Bin Packing Algorithms. No. ACT19. 1979, pp. 1-21. DOI: 10.1016/S0020-0190(80)90077-0.
  10. van Vliet, André. An improved lower bound for on-line bin packing algorithms. Information processing letters 43.5, 1992, pp. 277-284. DOI: 10.1016/0020-0190(92)90223-I.
  11. Galambos, Gabor, and André van Vliet. Lower bounds for 1-, 2-and 3-dimensional on-line bin packing algorithms. Computing 52.3, 1994, pp. 281-297. DOI: 10.1007/BF02246509.
  12. Han, Xin, et al. A new upper bound 2.5545 on 2d online bin packing. ACM Transactions on Algorithms (TALG) 7.4, 2011, pp. 1-18. DOI: 10.1145/2000807.2000818.
  13. Csirik, János, and André Van Vliet. An on-line algorithm for multidimensional bin packing. Operations Research Letters 13.3, 1993, pp. 149-158. DOI: 10.1016/0167-6377(93)90004-Z. ↩1 ↩2
  14. Shor, Peter W. The average-case analysis of some on-line algorithms for bin packing. Combinatorica 6.2, 1986, pp. 179-200. DOI: 10.1007/BF02579171. ↩1 ↩2 ↩3 ↩4
  15. Shor, Peter W. How to pack better than best fit: tight bounds for average-case online bin packing. Proceedings 32nd Annual Symposium of Foundations of Computer Science, IEEE Computer Society, 1991, pp. 752-759, DOI: 10.1109/SFCS.1991.185444.
  16. Leighton, Frank Thomson, and Peter Shor. Tight bounds for minimax grid matching, with applications to the average case analysis of algorithms. Proceedings of the eighteenth Annual ACM symposium on theory of computing, 1986, pp. 91-103, DOI: 10.1145/12130.12140. ↩1 ↩2
  17. Chang, Ee-Chien, Weiguo Wang, and Mohan S. Kankanhalli. Multidimensional on-line bin-packing: An algorithm and its average-case analysis. Information Processing Letters 48.3, 1993, pp. 121-125. DOI: 10.1016/0020-0190(93)90253-6. ↩1 ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8
  18. Chung, Fan, and Linyuan Lu. Connected components in random graphs with given expected degree sequences. Annals of combinatorics 6.2, 2002, pp. 125-145. DOI: 10.1007/PL00012580.

Приложение 1. Доказательство теоремы 1

Докажем теорему 1. Для этого, приведем и докажем несколько лемм.

В работе [18] было доказано следующее ограничение сверху отклонения суммы биномиальных случайных величин от ее математического ожидания:

Лемма 1 (Chung, Lu, 2002). Пусть X1,...,Xn – независимые в совокупности случайные величины, имеющие распределение Бернулли. Принимаемые значения принадлежат множеству {0, 1}, Pr(Xi=1)=pi, а Pr(Xi=0)=1-pi. Выберем значения αi0i{1,2,...,n}. Определим значения X=i=1nαiXi и ν=i=1nαi2pi. Тогда для каждого λ0, выполняется следующее неравенство:

Pr(XEX+λ)exp{-λ22(ν+λmaxiai3)}

Для доказательства теоремы 1, требуется следующее следствие леммы 1:

Следствие 1. Для каждого ε[0,1], для случайной биномиально распределенной величины Bin(n,p), выполняется

Pr{Bin(n,p)(1+ε)np}exp{-ε2np3}

Доказательство. Биномиальная случайная величина Bin(n,p) представима в виде суммы n независимых в совокупности случайных величин, имеющих распределение Бернулли: Bin(n,p)=i=1nXi, где Pr(Xi=1)=p, Pr(Xi=0)=1-p для всех i{1,...,n}.

Используя лемму 1 при значениях параметров αi=1,pi=pi{1,...,n}, и при значении X=Bin(n,p),EX=np,λ=εnp,ν=np, получим

Pr{Bin(n,p)(1+ε)np}exp{-(εnp)22(np+εnp3)}exp{-ε2np3}

Лемма 2. Пусть X – случайная величина, EX – ее математическое ожидание и Var(X) – ее дисперсия. Тогда

E2|X-EX|Var(X)

Доказательство. Var(|X-EX|)=E(X-EX)2-E2|X-EX|0.

Следовательно, E2|X-EX|E(X-EX)2=Var(X)

Лемма 3. Обозначим за Vi(k) сумму d-мерных объемов проекций d+1-мерных параллелепипедов на подпространство, образованное последними d координатами тех из k случайных параллелепипедов, которые имеют тип i для фиксированного типа i{1,...,2s+1} (см. алгоритм увеличения размерности). Тогда верно следующее неравенство:

Var(Vi(k))2pk,

где p=12s+1 – вероятность того, что случайный параллелепипед имеет тип i.

Доказательство. Vi(1)=Bin(1,p)i=1dξi=Bin(1,p)Ud, где Bin(n,p) – случайная величина, имеющая биномиальное распределение с параметрами n и p, равными числу экспериментов и вероятности успешности каждого эксперимента соответственно, ξi – случайная величина, имеющая равномерное на [0,1] распределение, Ud=i=1dξi – случайная величина, равная объему d-мерного параллелепипеда.

Так как EBin(1,p)=p, 0Ud1, и длины сторон параллелепипедов – независимые в совокупности случайные величины, то

EVi(1)=EBin(1,p)EUdp

Используя формулу для дисперсии произведения двух независимых случайных величин, Var(XY)=Var(X)Var(Y)+Var(X)E2Y+Var(Y)E2X, и соотношения Var(Bin(1,p))=p(1-p),EBin(1,p)=p и Var(Ud)1,0EUd1, получим

Var(Vi(1))=Var(Bin(1,p)Ud)=Var(Bin(1,p))Var(Ud)+Var(Bin(1,p))E2Ud
+Var(Ud)E2(Bin(1,p))p(1-p)+p(1-p)+p22p

В силу независимости в совокупности длин сторон параллелепипедов, получим требуемое неравенство:

Var(Vi(k))=kVar(Vi(1))2pk

Теорема 1. Пусть Ad,M,MN – семейство алгоритмов с незаданным завершением для d-мерной задачи с оценкой целевой функции типа 2, равной

Wd,M(Ad,M)=O(Mdd+1lnmM),m0

Тогда алгоритм Ad+1,N=Ad+1,N(Ad,Nd(N)) для d+1-мерной задачи, полученный в результате применения алгоритма увеличения размерности к алгоритму Ad,Nd(N), где Nd(N) – параметр, введенный в разделе 3.1. настоящей работы в алгоритме увеличения размерности. Алгоритм Ad+1,N работает в режиме с незаданным завершением и имеет оценку целевой функции типа 2

Wd+1,N(Ad+1,N)=O(Nd+1d+2lnm(d+1)d+2N).

Введем обозначения в предположении, что выпало kN параллелепипедов:

  • wi=wi(k)d-мерный объем незаполненного пространства контейнеров при упаковке параллелепипедов типа i алгоритмом Ad,Nd(N) в d-мерные контейнеры,
  • ni=ni(k) – число d-мерных контейнеров, заполненных проекциями параллелепипедов типа i на последние d координат при размещении проекций с помощью алгоритма Ad,Nd(N),
  • mi=mi(k) – число выпавших параллелепипедов типа i,
  • Wd+1,N(k)d+1-мерный объем незаполненной части контейнеров после упаковки k параллелепипедов алгоритмом Ad+1,N,
  • Kk – количество d+1-мерных контейнеров, использованных алгоритмом Ad+1,N для упаковки k параллелепипедов,
  • Vi(k) – сумма d-мерных объемов проекций на подпространство, образованное последними d координатами тех из k случайных параллелепипедов, которые имеют тип i для некоторого фиксированного типа i{1,...,2s+1}.

Доказательство.

Wd+1,N(k)2Kk2s+1+i=12s+1wi(k)+i=1s|ni(k)-n2s+1-i(k)|(1)

В формуле (1), первое слагаемое 2Kk2s+1 (потери типа 1), ограничивает сверху объем незаполненной части частично заполненных d+1-мерных контейнеров, связанный с тем, что у d+1-мерного параллелепипеда R типа i, длина b1(R) первой стороны принадлежит полуинтервалу (i-12s+1,i2s+1] длиной 12s+1.

Также из определения Kk, следует следующее неравенство:

Kkk(2)

Множитель 2 в первом слагаемом формулы (1) возникает, т.к. каждый контейнер разбит не более, чем на 2 области (см. рис. 1).

Слагаемоеi=12s+1wi (потери типа 2) – ограничивает сверху суммарный объем незаполненного пространства контейнеров, заполненных параллелепипедами типа i без учета потерь типа 1.

Слагаемое i=1s|ni-n2s+1-i| (потери типа 3) – ограничивает сверху объем частей контейнеров, заполненных параллелепипедами типа i, но не заполненных параллелепипедами типа 2s+1-i, i{1,...,s}.

i=1s|ni-n2s+1-i|=i=1s|(Vi(k)+wi)-(V2s+1-i(k)+w2s+1-i)|
i=1s|Vi(k)-V2s+1-i(k)|+i=1s|wi-w2s+1-i|
i=1s|Vi(k)-V2s+1-i(k)|+i=1s(wi+w2s+1-i)=i=1s|Vi(k)-V2s+1-i(k)|+i=12swi(3)

Примеры различных типов потерь для пары соседних областей в 2-мерном случае изображены на рис. 5.

Рис.5. Пример различных типов незаполненного пространства контейнеров.

Рис.5. Пример различных типов незаполненного пространства контейнеров.

Из формулы (1) с применением формул (2) и (3), получаем:

Wd+1,N(k)2Kk2s+1+2i=12s+1wi+i=1s|Vi-V2s+1-i|

Следовательно,

EWd+1,N(k)2Kk2s+1+2E(i=12s+1wi)+E(i=1s|Vi-V2s+1-i|)(4)
  1. Оценим первое слагаемое формулы 4, учитывая, что s=N1/(d+2)ln-m(d+1)/(d+2)N:
2Kk2s+12k2s+12N2s+1=O(Nd+1d+2lnm(d+1)d+2N)
  1. Оценим второе слагаемое: При достаточно больших N, 4lnNN-d/2(d+2)1. Таким образом, согласно следствию 1 леммы 1,
Pr(Bin(k,12s+1)(1+4lnNN-d2(d+2))N2s+1)
Pr(Bin(N,12s+1)(1+4lnNN-d2(d+2))N2s+1)
exp{-163N-dd+2N2s+1lnN}N-5

для достаточно больших N. Следовательно, вклад в мат. ожидание EWd,N(k) тех случаев, когда хотя бы одного типа i, число выпавших параллелепипедов mi этого типа больше, чем (1+4lnNN-d2(d+2))N2s+1, равен o(1). При достаточно больших N, выполняется 4lnNN-d/2(d+2)1. Таким образом,

E(i=12s+1wi)(2s+1)max1k2N2s+1Ewi(k)+o(1)=
(2s+1)O((2N2s+1)dd+1lnmN)+o(1)=O(Nd+1d+2lnm(d+1)d+2N)

в предположении, что для алгоритма Ad,Nd(N), количество упаковываемых параллелепипедов Nd(N)=(1+4lnNN-d2(d+2))N2s+1, не превышает 2N/(2s+1).

  1. Оценим третье слагаемое формулы (4). Так как i{1,...,2s+1}, EVi(k)=k2s+1,
E|Vi(k)-V2s+1-i(k)|=E|(Vi(k)-EVi(k))-(V2s+1-i(k)-EV2s+1-i(k))|
E|Vi(k)-EVi(k)|+E|V2s+1-i(k)-EV2s+1-i(k)|

Таким образом,

E(i=1s|Vi(k)-V2s+1-i(k)|)i=12sE|Vi(k)-EVi(k)|(полемме2)
2sVarVi(k)(полемме3)2sks2sNs=O(Nd+1d+2)

Значит, каждое слагаемое имеет асимптотическую оценку O(Nd+1d+2lnm(d+1)d+2N). Следовательно, выполняется искомое соотношение

max1kNWd+1,N(k)=O(Nd+1d+2lnm(d+1)d+2N)

Информация об авторах

Денис Олегович ЛАЗАРЕВ является специалистом отдела теоретической информатики Института системного программирования им. В.П. Иванникова РАН. Научные интересы включают машинное обучение, вероятностный метод и алгоритмы упаковки.

Александр Владимирович ШОКУРОВ – кандидат физико-математических наук, доцент, заведующий отделом теоретической информатики Института системного программирования им. В.П. Иванникова РАН с 2019 года. Сфера научных интересов: алгебраические структуры в полях Галуа, базисы Гребнера, модулярная арифметика, нейрокомпьютерные технологии, цифровая обработка сигналов, криптографические методы защиты информации.

Связь с редакцией