Improved Pseudo-Polynomial-Time Approximation for Strip
Packing∗†

arXiv:1801.07541v1 [cs.DS] 23 Jan 2018

Waldo Gálvez* , Fabrizio Grandoni* , Salvatore Ingala* , and Arindam Khan**
*
**

IDSIA, USI-SUPSI, Switzerland, [waldo,fabrizio,salvatore]@idsia.ch
Department of Computer Science, Technical University of Munich, Garching, Germany,
arindam.khan@in.tum.de

Abstract
We study the strip packing problem, a classical packing problem which generalizes both bin packing
and makespan minimization. Here we are given a set of axis-parallel rectangles in the two-dimensional
plane and the goal is to pack them in a vertical strip of fixed width such that the height of the obtained
packing is minimized. The packing must be non-overlapping and the rectangles cannot be rotated.
A reduction from the partition problem shows that no approximation better than 3/2 is possible
for strip packing in polynomial time (assuming P6=NP). Nadiradze and Wiese [SODA16] overcame
this barrier by presenting a ( 57 + ǫ)-approximation algorithm in pseudo-polynomial-time (PPT). As the
problem is strongly NP-hard, it does not admit an exact PPT algorithm.
In this paper we make further progress on the PPT approximability of strip packing, by presenting a
( 43 + ǫ)-approximation algorithm. Our result is based on a non-trivial repacking of some rectangles in the
empty space left by the construction by Nadiradze and Wiese, and in some sense pushes their approach
to its limit.
Our PPT algorithm can be adapted to the case where we are allowed to rotate the rectangles by 90◦ ,
achieving the same approximation factor and breaking the polynomial-time approximation barrier of 3/2
for the case with rotations as well.

1 Introduction
In this paper, we consider the strip packing problem, a well-studied classical two-dimensional packing
problem [6, 15, 32]. Here we are given a collection of rectangles, and an infinite vertical strip of width W
in the two dimensional (2-D) plane. We need to find an axis-parallel embedding of the rectangles without
rotations inside the strip so that no two rectangles overlap (feasible packing). Our goal is to minimize the
total height of this packing.
More formally, we are given a parameter W ∈ N and a set R = {R1 , . . . , Rn } of rectangles, each one
characterized by a width wi ∈ N, wi ≤ W , and a height hi ∈ N. A packing of R is a pair (xi , yi ) ∈ N × N
∗

A preliminary version of this paper appeared in the Proceedings of the 36th IARCS Annual Conference on Foundations of
Software Technology and Theoretical Computer Science (FSTTCS 2016).
†
The authors from IDSIA are partially supported by ERC Starting Grant NEWNET 279352 and SNSF Grant APXNET
200021_ 159697/1. Arindam Khan is supported in part by the European Research Council, Grant Agreement No. 691672, the
work was primarily done when the author was at IDSIA.

1

for each Ri , with 0 ≤ xi ≤ W − wi , meaning that the left-bottom corner of Ri is placed in position (xi , yi )
and its right-top corner in position (xi +wi , yi +hi ). This packing is feasible if the interiors of the rectangles
are pairwise disjoint in this embedding (or equivalently rectangles are allowed to overlap on their boundary
only). Our goal is to find a feasible packing of minimum height maxi {yi + hi }.
Strip packing is a natural generalization of one-dimensional bin packing [14] (when all the rectangles
have the same height) and makespan minimization [13] (when all the rectangles have the same width). The
problem has lots of applications in industrial engineering and computer science, specially in cutting stock,
logistics and scheduling [32, 21]. Recently, there have been a lot of applications of strip packing in electricity
allocation and peak demand reduction in smart-grids [40, 31, 36].
A simple reduction from the partition problem shows that the problem cannot be approximated within a
factor 32 − ε for any ε > 0 in polynomial-time unless P=NP. This reduction relies on exponentially large (in
n) rectangle widths.
Let OP T = OP T (R) denote the optimal height for the considered strip packing instance (R, W ),
and hmax = hmax (R) (resp. wmax = wmax (R)) be the largest height (resp. width) of any rectangle in
R. Observe that trivially OP T ≥ hmax . W.l.o.g. we can assume that W ≤ nwmax . The first non-trivial
approximation algorithm for strip packing, with approximation ratio 3, was given by Baker, Coffman and
Rivest [6]. The First-Fit-Decreasing-Height algorithm (FFDH) by Coffman et al. [15] gives a 2.7 approximation. Sleator [38] gave an algorithm that generates packing of height 2OP T + hmax
2 , hence achieving a
2.5 approximation. Afterwards, Steinberg [39] and Schiermeyer [37] independently improved the approximation ratio to 2. Harren and van Stee [22] first broke the barrier of 2 with their 1.9396 approximation. The
present best ( 53 + ε)-approximation is due to Harren et al. [21].
Recently algorithms running in pseudo-polynomial time (PPT) for this problem have been developed.
More specifically, the running time of a PPT algorithm for Strip Packing is O((N n)O(1) ), where N =
max{wmax , hmax }1 . First, Jansen and Thöle [28] showed a PPT (3/2 + ε)-approximation algorithm, and
later Nadiradze and Wiese [35] overcame the 23 -inapproximability barrier by presenting a PPT ( 75 + ǫ)approximation algorithm. As strip packing is strongly NP-hard [19], it does not admit an exact PPT algorithm.

1.1 Our contribution and techniques
In this paper, we make progress on the PPT approximability of strip packing, by presenting an improved
( 34 +ε) approximation. Our approach refines the technique of Nadiradze and Wiese [35], that modulo several
technical details works as follows: let α ∈ [1/3, 1/2) be a proper constant parameter, and define a rectangle
Ri to be tall if hi > α · OP T . They prove that the optimal packing can be structured into a constant number
of axis-aligned rectangular regions (boxes), that occupy a total height of OP T ′ ≤ (1 + ε)OP T inside the
vertical strip. Some rectangles are not fully contained into one box (they are cut by some box). Among
them, tall rectangles remain in their original position. All the other cut rectangles are repacked on top of the
boxes: part of them in a horizontal box of size W × O(ε)OP T , and the remaining ones in a vertical box of
size O(εW ) × α OP T (that we next imagine as placed on the top-left of the packing under construction).
Some of these boxes contain only relatively high rectangles (including tall ones) of relatively small
width. The next step is a rearrangement of the rectangles inside one such vertical box B (see Figure 3a),
say of size w × h: they first slice non-tall rectangles into unit width rectangles (this slicing can be finally
avoided with standard techniques). Then they shift tall rectangles to the top/bottom of B, shifting sliced
rectangles consequently (see Figure 3b). Now they discard all the (sliced) rectangles completely contained
1

For the case without rotations, the polynomial dependence on hmax can indeed be removed with standard techniques.

2

0.5 · W
Bdisc,top

Bdisc

BS
BH,cut
BH,round
BM,hor

OP T ′
OP T

0

(1 + ε − 2α) · OP T ′

BM,ver
BV,cut
BV,round

Bdisc,bot

BS
BH,cut
BH,round
BM,hor

OP T ′
OP T

(1 − γ) · W

γ ·W

O(ε) · OP T ′ α · OP T ′

2(1 + ε − 2α) · OP T ′

BM,ver
BV,cut
BV,round

O(ε) · OP T ′

α · OP T ′

O(ε) · W

0

0

0

W

(a) Final packing obtained by
Nadiradze & Wiese [35].

W

(b) Final packing obtained in this work.
Here γ is a small constant depending on ε.

Figure 1: Comparison of final solutions.
in a central horizontal region of size w × (1 + ε − 2α)h, and they nicely rearrange the remaining rectangles
into a constant number of sub-boxes (excluding possibly a few more non-tall rectangles, that can be placed
in the additional vertical box).
These discarded rectangles can be packed into 2 extra boxes of size w2 × (1 + ε − 2α)h (see Figure
′
3d). In turn, the latter boxes can be packed into two discarded boxes of size W
2 × (1 + ε − 2α)OP T , that
we can imagine as placed, one on top of the other, on the top-right of the packing. See Figure 1a for an
illustration of the final packing. This leads to a total height of (1 + max{α, 2(1 − 2α)} + O(ε)) · OP T ,
which is minimized by choosing α = 25 .
Our main technical contribution is a repacking lemma that allows one to repack a small fraction of the
discarded rectangles of a given box inside the free space left by the corresponding sub-boxes (while still
having Oε (1) many sub-boxes in total). This is illustrated in Figure 3e. This way we can pack all the
discarded rectangles into a single discarded box of size (1 − γ)W × (1 + ε − 2α)OP T ′ , where γ is a small
constant depending on ε, that we can place on the top-right of the packing. The vertical box where the
remaining rectangles are packed still fits to the top-left of the packing, next to the discarded box. See Figure
1b for an illustration. Choosing α = 1/3 gives the claimed approximation factor.
We remark that the basic approach by Nadiradze and Wiese strictly requires that at most 2 tall rectangles
can be packed one on top of the other in the optimal packing, hence imposing α ≥ 1/3. Thus in some sense
this work pushes their approach to its limit.
3

The algorithm by Nadiradze and Wiese [35] is not directly applicable to the case when 90◦ rotations
are allowed. In particular, they use a linear program to pack some rectangles. When rotations are allowed,
it is unclear how to decide which rectangles are packed by the linear program. We use a combinatorial
container-based approach to circumvent this limitation, which allows us to pack all the rectangles using
dynamic programming. This way we achieve a PPT (4/3+ε)-approximation for strip packing with rotations,
breaking the polynomial-time approximation barrier of 3/2 for that variant as well.

1.2 Related work
For packing problems, many pathological lower bound instances occur when OP T is small. Thus it is
often insightful to consider the asymptotic approximation ratio. Coffman et al. [15] described two leveloriented algorithms, Next-Fit-Decreasing-Height (NFDH) and First-Fit-Decreasing-Height (FFDH), that
achieve asymptotic approximations of 2 and 1.7, respectively. After a sequence of improvements [20, 5], the
seminal work of Kenyon and Rémila [32]
 provided an asymptotic polynomial-time approximation scheme
hmax
(APTAS) with an additive term O ε2 . The latter additive term was subsequently improved to hmax by
Jansen and Solis-Oba [27].
In the variant of strip packing with rotations, we are allowed to rotate the input rectangles by 90◦ (in
other terms, we are free to swap the width and height of an input rectangle). The case with rotations is much
less studied in the literature. It seems that most of the techniques that work for the case without rotations can
be extended to the case with rotations, however this is not always a trivial task. In particular, it is not hard
to achieve a 2 + ε approximation, and the 3/2 hardness of approximation extends to this case as well [27].
In terms of asymptotic approximation, Miyazawa and Wakabayashi [34] gave an algorithm with asymptotic
performance ratio of 1.613. Later, Epstein and van Stee [16] gave a 23 asymptotic approximation. Finally,
Jansen and van Stee [29] achieved an APTAS for the case with rotations.
Strip packing has also been well studied for higher dimensions. The present best asymptotic approximation for 3-D strip packing is due to Jansen and Prädel [24] who presented a 1.5-approximation extending
techniques from 2-D bin packing.
There are many other related geometric packing problems. For example, in the independent set of
rectangles problem we are given a collection of axis-parallel rectangles embedded in the plane, and we
need to find a maximum cardinality/weight subset of non-overlapping rectangles [2, 10, 11]. Interesting
connections between this problem and the unsplittable flow on a path problem were recently discovered
[4, 7, 9]. In the geometric knapsack problem we wish to pack a maximum cardinality/profit subset of the
rectangles in a given square knapsack [3, 17, 30]. One can also consider a natural geometric version of bin
packing, where the goal is to pack a given set of rectangles in the smallest possible number of square bins
[8]. We refer the readers to [12, 33] for surveys on geometric packing problems.
Subsequent Progress: Since the publication of our extended abstract [18], new results have appeared.
Adamaszek et al. [1] proved that there is no PPT ( 12
11 − ε)-approximation algorithm for Strip Packing unless
polylog(n)
N P ⊆ DT IM E(2
). On the other hand, Jansen and Rau [26] independently showed a PPT (4/3 +
O(21/ε )

for the case without rotations. Very recently,
ε)-approximation algorithm with running time (nW )1/ε
new results have been announced [23, 25] claiming to give a tight (5/4 + ε)-approximation algorithm.

1.3 Organization of the paper
First, we discuss some preliminaries and notations in Section 2. Section 3 contains our main technical
contribution, the repacking lemma. Then, in Section 4, we discuss a refined structural result leading to a
packing into Oε (1) many containers. In Section 5, we describe our algorithm to pack the rectangles and in
4

OP T

Tall

Large

Tall

αOP T

Box B
Vertical Medium

Large

Medium Medium

Medium

δh OP T

µh OP T
Small

Medium

Horizontal

0
0

µw W

δw W

W

(a) Each rectangle is represented
as a point on the plane with x
(resp., y) coordinate indicating
its width (resp., height).

(b) Example of vertical
(c) Gray rectangles are nicely cut by B,
container. Every vertical line
dashed ones are cut but not nicely cut by
intersects at most one rectangle.
B, and light gray one is not cut by B.

Figure 2: Illustration of some of the definitions used in this work.
Section 6 we extend our algorithm to the case with rotations. Finally, in Section 7, we conclude with some
observations.

2 Preliminaries and notations
Throughout the present work, we will follow the notation from [35], which will be explained as it is needed.
Recall that OP T ∈ N denotes the height of the optimal packing for instance R. By trying all the
pseudo-polynomially many possibilities, we can assume that OP T is known to the algorithm.
P Given a set
M ⊆ R of rectangles, a(M) will denote the total area of rectangles in M, i.e., a(M) = Ri ∈M hi · wi ,
and hmax (M) (resp. wmax (M)) denotes the maximum height (resp. width) of rectangles in M. Throughout
this work, a box of size a × b means an axis-aligned rectangular region of width a and height b.
In order to lighten the notation, we sometimes interpret a rectangle/box as the corresponding region
inside the strip according to some given embedding. The latter embedding will not be specified when clear
from the context. Similarly, we sometimes describe an embedding of some rectangles inside a box, and then
embed the box inside the strip: the embedding of the considered rectangles is shifted consequently in that
case.
A vertical (resp. horizontal) container is an axis-aligned rectangular region where we implicitly assume
that rectangles are packed one next to the other from left to right (resp., bottom to top), i.e., any vertical
(resp. horizontal) line intersects only one packed rectangle (see Figure 2b). Container-like packings will
turn out to be particularly useful since they naturally induce a (one-dimensional) knapsack instance.

2.1 Classification of rectangles
Let 0 < ε < α, and assume for simplicity that 1ε ∈ N. We first classify the input rectangles into six groups
according to parameters δh , δw , µh , µw satisfying ε ≥ δh > µh > 0 and ε ≥ δw > µw > 0, whose values
will be chosen later (see also Figure 2a). A rectangle Ri is

5

• Large if hi ≥ δh OP T and wi ≥ δw W .
• Tall if hi > αOP T and wi < δw W .
• Vertical if hi ∈ [δh OP T, αOP T ] and wi ≤ µw W ,
• Horizontal if hi ≤ µh OP T and wi ≥ δw W ,
• Small if hi ≤ µh OP T and wi ≤ µw W ;
• Medium in all the remaining cases, i.e., if hi ∈ (µh OP T, δh OP T ), or wi ∈ (µw W, δw W ) and
hi ≤ αOP T .
We use L, T , V , H, S, and M to denote large, tall, vertical, horizontal, small, and medium rectangles,
respectively. We remark that, differently from [35], we need to allow δh 6= δw and µh 6= µw due to some
additional constraints in our construction (see Section 5).
Notice that according to this classification, every vertical line across the optimal packing intersects at
most two tall rectangles. The following lemma allows us to choose δh , δw , µh and µw in such a way that δh
and µh (δw and µw , respectively) differ by a large factor, and medium rectangles have small total area.
Lemma 1. Given a polynomial-time computable function f : (0, 1) → (0, 1), with f (x) < x, any constant
ε ∈ (0, 1), and any positive integer k, we can compute in polynomial time a set ∆ of T = 2( 1ε )k many
positive real numbers upper bounded by ε, such that there is at least one number δh ∈ ∆ so that a(M ) ≤
εδh
h
εk · OP T · W by choosing µh = f (δh ), µw = εµ
12 , and δw = 12 .
εy

Proof. Let T = 2( 1ε )k . Let y1 = ε, and, for each j ∈ {1, . . . , T }, define yj+1 = f (yj ). Let xj = 12j .
For each j ≤ T , let Wj = {Ri ∈ R : wi ∈ [xi+1 , xi )} and similarly Hj = {Ri ∈ R : hi ∈ [yi+1 , yi )}.
′
′′
′ is disjoint from Wj ′′ (resp. Hj ′ is disjoint from Hj ′′ ) for every j 6= j , and the total area
Observe that WjS
S
of rectangles in Wi ( Hi respectively) is at most W · OP T . Thus, there exists a value j such that the
2OP T · W
= εk ·OP T ·W . Choosing δh = yj , µh = yj+1 ,
total area of the elements in Wj ∪Hj is at most
T
δw = xj , µw = xj+1 verifies all the conditions of the lemma.
Function f and constant k will be chosen later. From now on, assume that δh , δw , µh and µw are chosen
according to Lemma 1.

2.2 Next-Fit-Decreasing-Height (NFDH)
One of the most common algorithms to pack rectangles into a box of size w × h is Next-Fit-DecreasingHeight (NFDH). In this algorithm, the first step is to sort rectangles non-increasingly by height, say h1 ≥
h2 ≥ . . . ≥ hn . Then, the first rectangle is packed in the bottom-left corner, and a shelf is defined of height
h1 and width w. The next rectangles are put in this shelf, next to each other and touching each other and the
bottom of the shelf, until one does not fit, say the i-th one. At this point we define a new shelf above the first
one, with height hi . This process continues until all the rectangles are packed or the height of the next shelf
does not fit inside the box.
This algorithm was studied by Coffman et al. [15] in the context of strip packing, in order to bound the
obtained height when all the rectangles are packed into a strip. The result obtained can be summarized in
the following lemma.

6

Lemma 2 (Coffman et al. [15]). Given a strip packing instance (R, W ), algorithm NFDH gives a packing
of height at most hmax (R) + 2a(R)
W .
One important observation is that each horizontal shelf can be thought of as a vertical container. Another
important property of the algorithm is that, if a given set of rectangles needs to be packed into a given bin,
and all of them are relatively small compared to the dimensions of the bin, then NFDH is very efficient even
in terms of area. This result is summarized in the following lemma.
Lemma 3 (Coffman et al. [15]). Given a set of rectangles with width at most w and height at most h, if
NFDH is used to pack these rectangles in a bin of width a and height b, then the total used area in that bin
is at least (a − w)(b − h) (provided that there are enough rectangles so that NFDH never runs out of them).

2.3 Overview of the algorithm
We next overview some of the basic results in [35] that are required for our result. We define the constant
γ := εδ2h , and w.l.o.g. assume γ · OP T ∈ N.
Let us forget for a moment small rectangles S. We will pack all the remaining rectangles L ∪ H ∪ T ∪
V ∪ M into a sufficiently small number of boxes embedded into the strip. By standard techniques, as in
[35], it is then possible to pack S (essentially using NFDH in a proper grid defined by the above boxes)
while increasing the total height at most by O(ε)OP T . See Section 5.1 for more details on how to pack
small rectangles.
The following lemma from [35] allows one to round the heights and positions of rectangles of large
enough height, without increasing much the height of the packing.
Lemma 4. [35] There exists a feasible packing of height OP T ′ ≤ (1+ε)OP T where: (1) the height of each
rectangle in L ∪ T ∪ V is rounded up to the closest integer multiple of γ · OP T and (2) their x-coordinates
are as in the optimal solution and their y-coordinates are integer multiples of γ · OP T .
We next focus on rounded rectangle heights (i.e., implicitly replace L ∪ T ∪ V by their rounded version)
and on this slightly suboptimal solution of height OP T ′ .
The following lemma helps us to pack rectangles in M .
Lemma 5. If k in Lemma 1 is chosen sufficiently large, all the rectangles in M can be packed in polynomial
time into a box BM,hor of size W × O(ε)OP T and a box BM,ver of size ( γ3 W ) × (αOP T ). Furthermore,
there is one such packing using µ3εh vertical containers in BM,hor and 3µγw horizontal containers in BM,ver .
Proof. We first pack rectangles in A := {Ri ∈ M : hi ∈ (µh OP T, δh OP T )} using NFDH into a strip
of width W . From Lemma 2 we know that the height of the packing is at most hmax (A) + 2·a(A)
W . Since
hmax (A) ≤ δh OP T < εOP T and a(A) ≤ a(M ) ≤ εk · OP T · W ≤ ε · OP T · W , because of Lemma 1,
the resulting packing fits into a box BM,hor of size W × (3ε · OP T ). As hi ≥ µh OP T , the number of
shelves used by NFDH is at most µ3εh , and this also bounds the number of vertical containers needed.
We next pack A′ := M \ A into a box BM,ver of size ( γ3 W ) × (αOP T ). Recall that γ := εδ2h . Note
that, for each Ri ∈ A′ , we have wi ∈ (µw W, δw W ) and hi ≤ αOP T . By ideally rotating the box and the
rectangles by 90◦ , we can apply the NFDH algorithm. Lemma 2 implies that we can pack all the rectangles
2a(A′ )
if the width of the box is at least wmax (A′ ) + αOP
T . Now observe that
wmax (A′ ) ≤ δw W =
7

γ
εδh
W = W
12
6

and also, since α ≥ 1/3,

2a(A′ )
6a(A′ )
γ
≤
≤ 6εk W ≤ W,
αOP T
OP T
6
where the last inequality is true for any k ≥ log1/ε (36/γ). Similarly to the previous case, the number of
shelves is at most 3µγw . Thus all the rectangles can be packed into at most 3µγw horizontal containers.
We say that a rectangle Ri is cut by a box B if both Ri \ B and B \ Ri are non-empty (considering both
Ri and B as open regions with an implicit embedding on the plane). We say that a rectangle Ri ∈ H (resp.
Ri ∈ T ∪ V ) is nicely cut by a box B if Ri is cut by B and their intersection is a rectangular region of width
wi (resp. height hi ). Intuitively, this means that an edge of B cuts Ri along its longest side (see Figure 2c).
Now it remains to pack L ∪ H ∪ T ∪ V : The following lemma, taken from [35] modulo minor technical
adaptations, describes an almost optimal packing of those rectangles.
w
Lemma 6. There is an integer KB = ( 1ε )( δ1w )O(1) such that, assuming µh ≤ εδ
KB , there is a partition of the
region BOP T ′ := [0, W ] × [0, OP T ′ ] into a set B of at most KB boxes and a packing of the rectangles in
L ∪ T ∪ V ∪ H such that:

• each box has size equal to the size of some Ri ∈ L (large box), or has height at most δh OP T ′
(horizontal box), or has width at most δw W (vertical box);
• each Ri ∈ L is contained into a large box of the same size;
• each Ri ∈ H is contained into a horizontal box or is cut by some box. Furthermore, the total area of
horizontal cut rectangles is at most W · O(ε)OP T ′ ;
• each Ri ∈ T ∪ V is contained into a vertical box or is nicely cut by some vertical box.
Proof. We apply Lemma 3.2 in [35], where we set the parameter δ to δw . Recall that δw < δh ; by requiring
that µh < δw , and since rectangles with height in [δw , δh ) are in M , we have that {Ri ∈ R \ M : wi ≥
δh W and hi ≥ δh OP T } = {Ri ∈ R \ M : wi ≥ δw W and hi ≥ δh OP T }.
Let Hcut ⊆ H be the set of horizontal rectangles that are nicely cut by a box. Since rectangles in Hcut
satisfy wi ≥ δw W , at most δ2w of them are nicely cut by a box, and there are at most KB boxes. Hence,
their total area is at most µh OP Tδw·W ·2KB , which is at most 2ε · OP T · W , provided that µh ≤ ε · KδwB . Since
Lemma 3.2 in [35] implies that the area of the cut horizontal rectangles that are not nicely cut is at most
εOP T ′ · W , the total area of horizontal cut rectangles is at most 3εOP T ′ · W .
We denote the sets of vertical, horizontal, and large boxes by BV , BH and BL , respectively. Observe that
B can be guessed in PPT. We next use Tcut ⊆ T and Vcut ⊆ V to denote tall and vertical cut rectangles in
the above lemma, respectively. Let us also define Tbox = T \ Tcut and Vbox = V \ Vcut .
Using standard techniques (see e.g. [35]), we can pack all the rectangles excluding the ones contained
in vertical boxes in a convenient manner. This is summarized in the following lemma.
Lemma 7. Given B as in Lemma 6 and assuming µw ≤
such that:

γδh
6KB (1+ε) ,

there exists a packing of L ∪ H ∪ T ∪ V

1. all the rectangles in L are packed in BL ;
2. all the rectangles in H are packed in BH plus an additional box BH,cut of size W × O(ε)OP T ;
3. all the rectangles in Tcut ∪ Tbox ∪ Vbox are packed as in Lemma 6;
8

4. all the rectangles in Vcut are packed in an additional vertical box BV,cut of size ( γ3 W ) × (αOP T ).
Proof. Note that there are at most 1/(δw δh ) rectangles in L and at most 4KB rectangles in Tcut , since at
most 2 tall rectangles can be nicely cut by the left (resp. right) side of each box; this is enough to prove
points (1) and (3).
Thanks to Lemma 6, the total area of horizontal cut rectangles is at most O(εOP T ′ · W ). By Lemma 2,
we can remove them from the packing and pack them in the additional box BH,cut using NFDH algorithm,
proving point (2).
At most 2(1+ε)
rectangles in V can be nicely cut by a box; thus, in total there are at most 2KBδ(1+ε)
nicely
δh
h
cut vertical rectangles. Since the width of each vertical rectangle is at most µw W , they can be removed from
the packing and placed in BV,cut , piled side by side, as long as 2KBδ(1+ε)
· µw W ≤ γ3 W , which is equivalent
h
to µw ≤

γδh
6KB (1+ε) .

This proves point (4).

We will pack all the rectangles (essentially) as in [35], with the exception of Tbox ∪ Vbox where we
exploit a refined approach. This is the technical heart of this paper, and it is discussed in the next section.

3 A repacking lemma
We next describe how to pack rectangles in Tbox ∪ Vbox . In order to highlight our contribution, we first
describe how the approach by Nadiradze and Wiese [35] works.
It is convenient to assume that all the rectangles in Vbox are sliced vertically into sub-rectangles of width
1 each2 . Let Vsliced be such sliced rectangles. We will show how to pack all the rectangles in Tbox ∪ Vsliced
into a constant number of sub-boxes. Using standard techniques it is then possible to pack Vbox into the
space occupied by Vsliced plus an additional box BV,round of size ( γ3 W ) × αOP T . See Lemma 11 for more
details.
We next focus on a specific vertical box B, say of size w × h (see Figure 3a). Let T cut be the tall
rectangles cut by B. Observe that there are at most 4 such rectangles (2 on the left/right side of B). The
rectangles in T cut are packed as in Lemma 7. Let also T and V be the tall rectangles and sliced vertical
rectangles, respectively, originally packed completely inside B.
They show that it is possible to pack T ∪ V into a constant size set S of sub-boxes contained inside
B − T cut , plus an additional box D of size w × (1 + ε − 2α)h. Here B − T cut denotes the region inside
B not contained in T cut . In more detail, they start by considering each rectangle Ri ∈ T . Since α ≥ 31 by
assumption, one of the regions above or below Ri cannot contain another tall rectangle in T , say the first
case applies (the other one being symmetric). Then Ri is moved up so that its top side overlaps with the top
boundary of B. The sliced rectangles in V that are covered this way are shifted right below R (note that
there is enough free space by construction). At the end of the process all the rectangles in T touch at least
one of the top and bottom side of B (see Figure 3b). Note that no rectangle is discarded up to this point.
Next, we partition the space inside B − (T ∪ T cut ) into maximal height unit-width vertical stripes. We
call each such stripe a free rectangle if both its top and bottom side overlap with the top or bottom side
of some rectangle in T ∪ T cut , and otherwise a pseudo rectangle (see Figure 3c). We define the i-th free
rectangle to be the free rectangle contained in stripe [i − 1, i] × [0, h].
Note that all the free rectangles are contained in a rectangular region of width w and height at most
T′
2α
h − 2αOP T ≤ h − 2α OP
1+ε ≤ h(1 − 1+ε ) ≤ h(1 + ε − 2α) contained in the central part of B. Let V disc be
the set of (sliced vertical) rectangles contained in the free rectangles. Rectangles in V disc can be obviously
2

For technical reasons, slices have width 1/2 in [35]. For our algorithm, slices of width 1 suffice.

9

packed inside D. For each corner Q of the box B, we consider the maximal rectangular region that has
Q as a corner and only contains pseudo rectangles whose top/bottom side overlaps with the bottom/top
side of a rectangle in T cut ; there are at most 4 such non-empty regions, and for each of them we define a
corner sub-box, and we call the set of such sub-boxes B corn (see Figure 3c). The final step of the algorithm
is to rearrange horizontally the pseudo/tall rectangles so that pseudo/tall rectangles of the same height are
grouped together as much as possible (modulo some technical details). The rectangles in B corn are not
moved. The sub-boxes are induced by maximal consecutive subsets of pseudo/tall rectangles of the same
height touching the top (resp., bottom) side of B (see Figure 3d). We crucially remark that, by construction,
the height of each sub-box (and of B) is a multiple of γOP T .
By splitting each discarded box D into two halves B disc,top and B disc,bot , and replicating the packing
of boxes inside BOP T ′ , it is possible to pack all the discarded boxes into two boxes Bdisc,top and Bdisc,bot ,
′
both of size W
2 × (1 + ε − 2α)OP T .
A feasible packing of boxes (and hence of the associated rectangles) of height (1+max{α, 2(1−2α)}+
O(ε))OP T is then obtained as follows. We first pack BOP T ′ at the base of the strip, and then on top of it
we pack BM,hor , two additional boxes BH,round and BH,cut (which will be used to repack the horizontal
items; see Section 7 for details), and a box BS (which will be used to pack some of the small items). The
latter 4 boxes all have width W and height O(εOP T ′ ). On the top right of this packing we place Bdisc,top
and Bdisc,bot , one on top of the other. Finally, we pack BM,ver , BV,cut and BV,round on the top left, one next
to the other. See Figure 1a for an illustration. The height is minimized for α = 25 , leading to a 7/5 + O(ε)
approximation.
The main technical contribution of this paper is to show how it is possible to repack a subset of V disc
into the free space inside B cut := B − T cut not occupied by sub-boxes, so that the residual sliced rectangles
can be packed into a single discarded box B disc of size (1 − γ)w × (1 + ε − 2α)h (repacking lemma). See
Figure 3e. This apparently minor saving is indeed crucial: with the same approach as above all the discarded
sub-boxes B disc can be packed into a single discarded box Bdisc of size (1 − γ)W × (1 + ε − 2α)OP T ′ .
Therefore, we can pack all the previous boxes as before, and Bdisc on the top right. Indeed, the total width
of BM,ver , BV,cut and BV,round is at most γW for a proper choice of the parameters. See Figure 1b for
an illustration. Altogether the resulting packing has height (1 + max{α, 1 − 2α} + O(ε))OP T . This is
minimized for α = 13 , leading to the claimed 4/3 + O(ε) approximation.
It remains to prove our repacking lemma.
Lemma 8 (Repacking Lemma). Consider a partition of D into w unit-width vertical stripes. There is
a subset of at least γw such stripes so that the corresponding sliced vertical rectangles V repack can be
repacked inside B cut = B − T cut in the space not occupied by sub-boxes.
Proof. Let f (i) denote the height of the i-th free rectangle, where for notational convenience we introduce a
degenerate free rectangle of height f (i) = 0 whenever the stripe [i − 1, i] × [0, h] inside B does not contain
any free rectangle. This way we have precisely w free rectangles. We remark that free rectangles are defined
before the horizontal rearrangement of tall/pseudo rectangles, and the consequent definition of sub-boxes.
Recall that sub-boxes contain tall and pseudo rectangles. Now consider the area in B cut not occupied
2α
). Partition this area
by sub-boxes. Note that this area is contained in the central region of height h(1 − 1+ε
into maximal-height unit-width vertical stripes as before (newly free rectangles). Let g(i) be the height of
the i-th newly free rectangle, where again we let g(i) = 0 if the stripe [i − 1, i] × [0, h] does not contain any
(positive area) free region. Note that, since tall and pseudo rectangles are only shifted horizontally in the

10

h

(1 −

α
1+ǫ )h

α
1+ε h

0

(1 + ε − 2α) h

B disc,bot

B disc

(1 + ε − 2α)h

B disc,top

(1 + ε − 2α)h

(c) Classification in B − (T ∪ T cut ).
(a) Original packing in a vertical box (b) Rectangles in T are shifted
Crosshatched stripes correspond to
B after removing Vcut . Gray
vertically so that
pseudo rectangles, empty stripes to free
rectangles correspond to T , dark gray
they touch either the top
ones to T cut and light gray ones to or the bottom of box B, shifting also rectangles, and dashed regions to corner
sub-boxes.
V.
slices in V accordingly.

≤ (1 − γ)w

1
2w

≥ γw
good indexes

(d) Rearrangement of pseudo and tall rectangles to get
Oε (1) sub-boxes, and additional packing of V disc as in (e) Our refined repacking of V disc according to Lemma 8:
[35].
some vertical slices are repacked in the free space.

Figure 3: Creation of pseudo rectangles, how to get constant number of sub-boxes and repacking of vertical
slices in a vertical box B.

11

rearrangement, it must be the case that:
w
X

f (i) =

i=1

w
X

g(i).

i=1

Let G be the (good) indexes where g(i) ≥ f (i), and G = {1, . . . , w} \ G be the bad indexes with g(i) <
f (i). Observe that for each i ∈ G, it is possible to pack the i-th free rectangle inside the i-th newly free
rectangle, therefore freeing a unit-width vertical strip inside D. Thus it is sufficient to show that |G| ≥ γw.
h
: indeed, both f (i) and g(i) must be multiples of
Observe that, for i ∈ G, f (i) − g(i) ≥ γOP T ≥ γ 1+ε
γOP T since they correspond to the height of B minus the height of one or two tall/pseudo rectangles. On
2α
)h, by the definition of g. Altogether
the other hand, for any index i, g(i) − f (i) ≤ g(i) ≤ (1 − 1+ε
(1 −

X
X
2α
γh
γh
(g(i) − f (i)) =
(f (i) − g(i)) ≥
)h · |G| ≥
· |G| =
· (w − |G|)
1+ε
1+ε
1+ε
i∈G

We conclude that |G| ≥

γ
1+ε−2α+γ w.

i∈G

The claim follows since by assumption α > ε ≥ γ.

4 A refined structural lemma
The original algorithm in [35] uses standard LP-based techniques, as in [32], to pack the horizontal rectangles. We can avoid that via a refined structural lemma: here boxes and sub-boxes are further partitioned into
vertical (resp., horizontal) containers. Rectangles are then packed into such containers as mentioned earlier:
one next to the other from left to right (resp., bottom to top). Containers define a multiple knapsack instance,
that can be solved optimally in PPT via dynamic programming. This approach has two main advantages:
• It leads to a simpler algorithm.
• It can be easily adapted to the case with rotations, as discussed in Section 6.
The goal of this section is to prove the following lemma that summarizes the aforementioned properties.
 O(1/(δw ε))
such that, assuming µh ≤ KεF
Lemma 9. By choosing α = 1/3, there is an integer KF ≤ εδ1w

and µw ≤ 3Kγ F , there is a packing of R \ S in the region [0, W ] × [0, (4/3 + O(ε))OP T ′ ] with the following
properties:
• All the rectangles in R \ S are contained in KT OT AL = Oε (1) horizontal or vertical containers, such
that each of these containers is either contained in or disjoint from BOP T ′ ;
• At most KF containers are contained in BOP T ′ , and their total area is at most a(R \ S).
P
P
Given a set M ⊆ R of rectangles, we define h(M) := Ri ∈M hi and w(M) := Ri ∈M wi . We start
with two preliminary lemmas.
Lemma 10. Let q and d be two positive integers. If a box B of height h contains only vertical rectangles of
width 1 that have height at least h/d, at most q different heights, then there is a packing of all the rectangles
in at most d(q + 1)d vertical containers packed in B, and the total area of the containers equals the total
area of the vertical rectangles in B; a symmetrical statement holds for boxes containing only horizontal
rectangles of height 1.
12

Proof. W.l.o.g., we only prove the lemma for the case of vertical rectangles. Consider each slice of width
1 of B. In each slice, sort the rectangles by decreasing height, and move them down so that the bottom of
each rectangle is touching either the bottom of the box, or the top of another rectangle. Call the type of a
slice as the set of different heights of rectangles that it contains. It is not difficult to see that there are at most
(q + 1)d different types of slices. Sort the slices so that all the slices of the same type appear next to each
other. It is easy to see that all the rectangles in the slices of a fixed type can be packed in at most d vertical
containers, where each container has the same height as the contained rectangles. By repeating this process
for all the slices, we obtain a repacking of all the rectangles in at most d(q + 1)d containers.
Lemma 11. Given a set {R1 , R2 , . . . , Rm } of horizontal (resp. vertical) rectangles and a set {C1 , C2 , . . . , Ct }
of horizontal (resp. vertical) containers such that the rectangles can be packed into the containers allowing
horizontal (resp. vertical) slicing of height (resp. width) one, then there is a feasible packing of all but at
most t rectangles into the same containers.
Proof. Let us prove the lemma only for the horizontal case (the vertical case is analogous). W.l.o.g. assume
that w(R1 ) ≥ w(R2 ) ≥ · · · ≥ w(Rm ) and also w(C1 ) ≥ · · · ≥ w(Ct ).
Start assigning the rectangles iteratively to the first container and stop as soon as the total height of
assigned rectangles becomes strictly larger than h(C1 ). By discarding the last assigned rectangle, this gives
a feasible packing (without slicing) of all the other assigned rectangles in the first container. Then we
proceed similarly with the remaining rectangles and following containers.
Now we show that the above procedure outputs a feasible packing of all but at most t rectangles (the
discarded ones) into the containers.
DueP
to feasibility of the packing of the sliced rectangles into the conPm
tainers, we already have i=1 h(Ri ) ≤ ti=1 h(Ci ). Note that the non-empty containers (except possibly
the last one) are overfilled if we include the discarded rectangles. Thus, the above process assigns all the
rectangles.
To finish the proof, we need to show that if Rj is assigned to container Ck by the above procedure, then
w(Rj ) ≤ w(Ck ). Now as containers C1 , . . . , Ck−1 are overfilled including the so far discarded rectangles,
we have that
j
k−1
X
X
h(Ci ).
h(Ri ) >
i=1

i=1

Now for the sake of contradiction, let us assume w(Rj ) > w(Ck ). Then w(Rp ) > w(Cq ) for all p ≤ j
and q ≥ k. Thus in every feasible packing, even allowing slicing, rectangles R1 , . . . , Rj must be assigned
to containers C1 , . . . , Ck−1 . This contradicts the above inequality.
Consider the packing obtained by applying Lemma 7. We will refine this packing to obtain the structural
properties claimed in Lemma 9.

4.1 Horizontal rectangles
The following lemma allows us to pack horizontal rectangles into a constant number of containers efficiently
in terms of area while using negligible extra height.
 O(1/(δw ε))
Lemma 12. There is a constant KH ≤ εδ1w
such that, assuming µh ≤ KεH , it is possible to
 O(1/(δw ε))
pack all the rectangles in H in KH ≤ εδ1w
horizontal containers, so that each container is
packed in a box B ∈ BH ∪ {BH,cut }, plus an additional container BH,round of size W × O(ε)OP T ′ , and
the total area of the containers packed in a box of BH is at most a(H).
13

Proof. Observe that OP T · W ≥ h(H)δw W . Thus, if OP T ≤ 1ε , the statement is immediately proved by
defining a container for each rectangle in H (and leaving BH,round empty); since |H| ≤ h(H) (being the
heights positive integers), this introduces at most εδ1w containers. Thus, without loss of generality, we can
assume that OP T > 1ε . If h(H) ≤ ⌈εOP T ⌉, then we can pile all the rectangles in H in BH,round , whose
height will clearly be at most h(H) = O(ε)OP T . Assume now h(H) > ⌈εOP T ⌉.
We use the standard technique of linear grouping [32]. Let j be the smallest positive integer such
that the set Hlong consisting of the j horizontal rectangles of maximum width (breaking ties arbitrarily)
has height h(Hlong ) ≥ ⌈εOP T ⌉. Clearly, h(Hlong ) ≤ ⌈εOP T ⌉ + µh OP T ≤ 3εOP T . We remove the
rectangles in Hlong from the packing. Suppose now that the remaining rectangles are sorted in order of nonincreasing width, and that they are sliced in rectangles of unit height. We can form groups H1 , H2 , . . . , Ht
of total height exactly ⌈εOP T ⌉ (possibly except for the last group, that can have smaller total height). Since
h(H) ≤ OP T /δw , it follows that t ≤ εδ1w . With the convention that H0 := Hlong , then for each positive
integer i ≤ t we have that the width of any (possibly sliced) rectangle in Ht is smaller than the width of any
rectangle in Ht−1 ; round up
S the widths of each rectangle in Hi to wmax (Hi ), and let H i be the obtained
set of rectangles; let H = ti=1 H i . By the above observation, for each i > 0 it is possible to pack all the
rectangles in H i in the space that was occupied in the original packing by the rectangles in Hi−1 ; moreover,
a(H) ≤ a(H).
Consider each box B ∈ BH ∪ {BH,cut } and the packing of the elements of H obtained by the above
process. By applying Lemma 10 on each box, there is a packing of all the rectangles of H in at most
1/δw
 3/δw

≤ εδ1w
horizontal containers for each box, such that the total area of these
(1/δw ) 1 + εδ1w
containers is at most a(H) ≤ a(H).
By putting back the slices of the original width, we obtain a packing of all the slices of the rectangles in
H1 , H2 , . . . , Ht . By Lemma 11, there exists a packing of all the rectangles in H, except for a set of at most
 3/δw
horizontal rectangles. Provided that µh ≤ KεH , those remaining rectangles can be
KH := KB εδ1w
piled in BH,round , together with rectangles in Hlong , by defining its height as 4εOP T .

4.2 Vertical and tall rectangles
The main goal of this section is to prove the following lemma:
 O(1/(δw ε))
Lemma 13. There is a constant KV ≤ εδ1w
such that, assuming µw ≤ 3Kγ V , it is possible
to pack all the rectangles in T ∪ V in at most KV vertical containers, so that each container is packed
completely either:
• in one of the boxes in BV ;
• in the original position of a nicely cut rectangle from Lemma 6 and containing only the corresponding
nicely cut rectangle;
• in a box Bdisc of size (1 − γ)W × (1 + ε − 2α)OP T ′ ;
• in one of two boxes BV,cut and BV,round , each of size γ3 W × αOP T , which are in fact containers.
Moreover, the area of the vertical containers packed in BOP T ′ is at most a(T ∪ V ).

14

Consider a specific vertical box B of size w × h; as described in Section 3, the rectangles are repacked
so that each rectangle in T touches either the top or the bottom edge of B, and then the set P of pseudo
rectangles plus the (up to four) corner sub-boxes B corn are defined, each one of them containing only slices
of rectangles in V . Let B rem := B − T cut . We now get a rearrangement of this packing applying the
following lemma from [35]:
Lemma 14 (follows from the proof of Lemma 3.6 and Section 4 in [35]). There is packing of T ∪ P ∪ B corn
(1+ε)/γ + 4 sub-boxes inside B
into at most KR := 2 1+ε
rem , such that:
γ ·6
• each sub-box contains only tall rectangles or only pseudo rectangles, that are all of the same height
as the sub-box;
• each sub-box is completely occupied by the contained pseudo/tall rectangles, and the y-coordinate of
such rectangles is the same as before the rearrangement;
• the corner sub-boxes in B corn and the rectangle slices inside them are packed in the same position as
before the rearrangement.
Proof. We give a brief outline of the proof, the details can be found in Section 4 in [35].
First, similar to Lemma 4.6 in [35], we can combine rectangles in B corn with T cut to form new unmovable
′
′
items, which we denote by T cut . This way we can assume that the boundary of each item in T cut intersects
a corner of B.
Recall that items in T ∪ P touch either the top or the bottom boundary of B.
Now the following result can be proven by induction, as shown in Section 4.1 of [35]:
Given a packing into a box B such that:
• each item touches the top or the bottom boundary of B;
• the height of each item equals one out of at most Γ many values;
• the heights of the items touching the bottom boundary have at most k distinct values;
• the items touching the four corners are called unmovable items, all other items are movable items;
then there exists another packing that does not change the positions of the unmovable items and allows a
nice partition into 6k · Γ sub-boxes for the movable items.
In this nice partition, the sub-boxes are induced by maximal consecutive subsets of movable items of the
same height touching the top (resp., bottom) side of B. In our case, from Lemma 4, we get k = 1+ε
γ and Γ =
1+ε
γ . Now each sub-box can be divided into two sub-boxes by rearranging tall/pseudo rectangles inside: one
sub-box contains only tall rectangles while the other one contains only pseudo-rectangles. By considering
also the corner sub-boxes B corn we get the desired value of KR . Furthermore, each sub-box contains only
tall rectangles or only pseudo rectangles that are all of the same height as the sub-box (notice that this holds
for corner sub-boxes in B corn as well since each one of them contains only pseudo-rectangles of the same
height). On the other hand, in this procedure every rectangle is moved only horizontally, implying that the
y-coordinate of each pseudo/tall rectangle in B remains unchanged after the rearrangement.
Consider the packing obtained by the above lemma; partition all the free space in B rem which is not
occupied by the above defined boxes into at most 2KR + 1 empty sub-boxes by considering the maximal
rectangular regions that are not intersected by the vertical lines passing through the edges of the sub-boxes.
15

By Lemma 8, the fraction of the rectangles contained in slices of D of total width at least γw can be repacked
inside the empty sub-boxes.
Among the at most 3KR + 1 sub-boxes that we defined, some only contain tall rectangles, while the
others contain pseudo rectangles. The ones that only contain tall rectangles are already containers and
box BV,cut defined in the proof of Lemma 7 is already a vertical container as well. For each sub-box B ′
that contains pseudo rectangles, we now consider the sliced vertical rectangles that are packed in it. By
Lemma 10, there is a packing of all the (sliced) rectangles in B ′ into at most δ1h (1 + 1/γ)1/δh containers,
and their total area is equal to the total area of the slices of the rectangles they contain. There are also at most
4KB containers to pack the tall rectangles that are nicely cut; each of them is packed in his original position
in a vertical container of exactly the same size. In total we defined at most κ := (3KR +1) δ1h (1 + 1/γ)1/δh +
4KB + 1 containers (where the additional term 1 is added to take BV,cut into account). We remark that all
the tall rectangles are integrally packed, while vertical rectangles are sliced and packed into containers with
only slices of vertical rectangles. The total area of all the vertical containers packed in BOP T ′ is at most the
sum of the total area of tall items and the total area of the sliced vertical rectangles, i.e., at most a(T ∪ V ).
Finally, by Lemma 11, all but κ vertical rectangles can be packed in the containers. With the condition
γ
that µw ≤ 3κ
, these remaining vertical rectangles can be packed in a vertical container BV,round of size
γW
3 × αOP T . This concludes the proof of Lemma 13 with KV := κ + 1.

4.3 Concluding the proof
There are at most KL := δh1δw many large rectangles. Each such large rectangle is assigned to one container
of the same size.
Rectangles in M are packed as described in the proof of Lemma 5, using at most KM := 3µγw + µ3εh
containers, which are placed in the boxes BM,hor and BM,ver .
Horizontal and vertical rectangles are packed as explained in Lemma 12 and Lemma 13, respectively.
The total number of containers KT OT AL = KL + KM + KH + KV , is clearly Oε (1), and each of these
containers is either contained in or disjoint from BOP T ′ . Among them, at most KF := KL + KH + KV
containers lie inside BOP T ′ . The total area of these KF containers is at most a(H) + a(T ∪ V ) + a(L) ≤
a(R \ S).
By packing the boxes and containers we defined as in Figure 1b, we obtain a packing in a strip of width
W and height OP T ′ ·(max{1+α, 1+(1−2α)}+O(ε)), which is at most (4/3+O(ε))OP T ′ for α = 1/3.
This concludes the proof of Lemma 9.

5 The final algorithm
First of all, we find µh , δh , µw , δw as required by Lemma 1; this way, we can find the set S of small rectangles. Consider the packing of Lemma 9: all the non-small rectangles are packed into KT OT AL = Oε (1)
containers, and only KF of them are contained in BOP T ′ . Since their position (x, y) and their size (w, h)
are w.l.o.g. contained in {0, . . . , W } × {0, . . . , nhmax }, we can enumerate in PPT over all the possible
feasible such packings of k ≤ KT OT AL containers, and one of those will coincide with the packing defined
by Lemma 9.
Containers naturally induce a multiple knapsack problem: for each horizontal container Cj of size
wCj × hCj , we create a (one-dimensional) knapsack j of size hCj . Furthermore, we define the size b(i, j) of
rectangle Ri w.r.t. knapsack j as hi if hi ≤ hCj and wi ≤ wCj . Otherwise b(i, j) = +∞ (meaning that Ri

16

does not fit in Cj ). The construction for vertical containers is symmetric. This multiple knapsack problem
can be easily solved optimally (hence packing all the rectangles) in PPT via dynamic programming.
Note that unlike [35], we do not use linear programming to pack horizontal rectangles, which will be
crucial when we extend our approach to the case with rotations.

5.1 Packing the small rectangles
It remains to pack the small rectangles S. We will pack them in the free space left by containers inside
[0, W ] × [0, OP T ′ ] plus an additional box BS of small height as the following lemma states. By placing box
BS on top of the remaining packed rectangles, the final height of the solution increases only by ε · OP T ′ .
Lemma 15. Assuming µh ≤
area [0, W ] ×

[0, OP T ′ ]

1
2
31KF

, it is possible to pack in polynomial time all the rectangles in S into the

not occupied by containers plus an additional box BS of size W × εOP T ′ .

Proof. We first extend the sides of the containers inside [0, W ] × [0, OP T ′ ] in order to define a grid. This
procedure partitions the free space in [0, W ] × [0, OP T ′ ] into a constant number of rectangular regions (at
most (2KF + 1)2 ≤ 5KF2 many) whose total area is at least a(S) thanks to Lemma 9. Let Bsmall be the set
of such rectangular regions with width at least µw W and height at least µh OP T (notice that the total area of
rectangular regions not in Bsmall is at most 5KF2 µw µh · W · OP T ). We now use NFDH to pack a subset of
S into the regions in Bsmall . Thanks to Lemma 3, since each region in Bsmall has size at most W × OP T ′
and each item in S has width at most µw W and height

 at most µh OP T , the total area of the unpacked
2
rectangles from S can be bounded above by 5KF · µw µh W OP T + µh OP T · W + µw W · OP T ′ ≤
15KF2 µh · OP T ′ · W . Therefore, thanks to Lemma 2, we can pack the latter small rectangles with NFDH
in an additional box BS of width W and height µh OP T + 30KF2 µh OP T ′ ≤ ε · OP T ′ provided that
1
µh ≤ 31K
2 .
F

We next summarize the constraints that arise from the analysis:
εδh
h
• µw = εµ
12 and δw = 12 (Lemma 1),
• γ = εδ2h (Lemma 4),
• 6εk ≤ γ6 (Lemma 5)
w
• µh ≤ εδ
KB (Lemma 6),

h
• µw ≤ γ 6KBδ(1+ε)
(Lemma 7),
γ
• µw ≤ 3KF (Lemma 9),
• µh ≤ KεF (Lemma 9),
1
• µh ≤ 31K
2 (Lemma 15)
F

It is not difficult to see that
constraints are satisfied by choosing f (x) = (εx)C/(εx) for a large

 all the
γ
. Finally we achieve the claimed result.
enough constant C and k = logε 36
Theorem 16. There is a PPT ( 43 + ε)-approximation algorithm for strip packing.

6 Extension to the case with rotations
In this section, we briefly explain the changes needed in the above algorithm to handle the case with rotations.
We first observe that, by considering the rotation of rectangles as in the optimum solution, Lemma 9
still applies (for a proper choice of the parameters, that can be guessed). Therefore we can define a multiple
knapsack instance, where knapsack sizes are defined as before. Some extra care is needed to define the size
b(i, j) of rectangle Ri into a container Cj of size wCj × hCj . Assume Cj is horizontal, the other case being
17

symmetric. If rectangle Ri fits in Cj both rotated and non-rotated, then we set b(i, j) = min{wi , hi } (this
dominates the size occupied in the knapsack by the optimal rotation of Ri ). If Ri fits in Cj only non-rotated
(resp., rotated), we set b(i, j) = hi (resp., b(i, j) = wi ). Otherwise we set b(i, j) = +∞.
There is a final difficulty that we need to address: we can not say a priori whether a rectangle is small (and
therefore should be packed in the final stage). To circumvent this difficulty, we define one extra knapsack k′
whose size is the total area in BOP T ′ not occupied by the containers. The size b(i, k′ ) of Ri in this knapsack
is the area a(Ri ) = wi · hi of Ri provided that Ri or its rotation by 90◦ is small w.r.t. the current choice of
the parameters (δh , µh , δw , µw ). Otherwise b(i, k ′ ) = +∞.
By construction, the above multiple knapsack instance admits a feasible solution that packs all the
rectangles. This immediately implies a packing of all the rectangles, excluding the (small) ones in the extra
knapsack. Those rectangles can be packed using NFDH as in the proof of Lemma 15 (here however we
must choose a rotation such that the considered rectangle is small). Altogether we achieve:
Theorem 17. There is a PPT ( 43 + ε)-approximation algorithm for strip packing with rotations.

7 Conclusions
In this paper we obtained a PPT (4/3 + ε)-approximation for strip packing (with and without rotations). Our
approach refines and, in some sense, pushes to its limit the basic approach in the previous work by Nadiradze
and Wiese [35]. Indeed, the rearrangement of rectangles inside a box crucially exploits the fact that there
are at most 2 tall rectangles packed on top of each other in the optimal packing, hence requiring α ≥ 1/3. It
will be interesting to settle the complexity of the problem by providing matching (PPT) approximation ratio
and hardness of approximation.

References
[1] Anna Adamaszek, Tomasz Kociumaka, Marcin Pilipczuk, and MichałPilipczuk. Hardness of approximation for strip packing. ACM Trans. Comput. Theory, 9(3):14:1–14:7, 2017.
[2] Anna Adamaszek and Andreas Wiese. Approximation schemes for maximum weight independent set
of rectangles. In FOCS, pages 400–409, 2013.
[3] Anna Adamaszek and Andreas Wiese. A quasi-PTAS for the two-dimensional geometric knapsack
problem. In SODA, pages 1491–1505, 2015.
[4] Aris Anagnostopoulos, Fabrizio Grandoni, Stefano Leonardi, and Andreas Wiese. A mazing 2+ε
approximation for unsplittable flow on a path. In SODA, pages 26–41, 2014.
[5] Brenda S. Baker, Donna J. Brown, and Howard P. Katseff. A 5/4 algorithm for two-dimensional
packing. J. Algorithm, 2(4):348–368, 1981.
[6] Brenda S. Baker, Edward G. Coffman Jr., and Ronald L. Rivest. Orthogonal packings in two dimensions. SIAM J. Comput., 9(4):846–855, 1980.
[7] Nikhil Bansal, Amit Chakrabarti, Amir Epstein, and Baruch Schieber. A quasi-PTAS for unsplittable
flow on line graphs. In STOC, pages 721–729, 2006.

18

[8] Nikhil Bansal and Arindam Khan. Improved approximation algorithm for two-dimensional bin packing. In SODA, pages 13–25, 2014.
[9] Paul S. Bonsma, Jens Schulz, and Andreas Wiese. A constant-factor approximation algorithm for
unsplittable flow on paths. SIAM J. Comput., 43(2):767–799, 2014.
[10] Parinya Chalermsook and Julia Chuzhoy. Maximum independent set of rectangles. In SODA, pages
892–901, 2009.
[11] Timothy M. Chan and Sariel Har-Peled. Approximation algorithms for maximum independent set of
pseudo-disks. Discrete & Computational Geometry, 48(2):373–392, 2012.
[12] Henrik I. Christensen, Arindam Khan, Sebastian Pokutta, and Prasad Tetali. Approximation and online
algorithms for multidimensional bin packing: A survey. Computer Science Review, 24:63–79, 2017.
[13] Edward G. Coffman Jr. and John L. Bruno. Computer and job-shop scheduling theory. John Wiley &
Sons, 1976.
[14] Edward G. Coffman Jr., János Csirik, Gábor Galambos, Silvano Martello, and Daniele Vigo. Bin packing approximation algorithms: survey and classification. In Handbook of Combinatorial Optimization,
pages 455–531. Springer, 2013.
[15] Edward G. Coffman Jr., Michael R. Garey, David S. Johnson, and Robert E. Tarjan. Performance
bounds for level-oriented two-dimensional packing algorithms. SIAM J. Comput., 9(4):808–826, 1980.
[16] Leah Epstein and Rob van Stee. This side up! ACM Transactions on Algorithms (TALG), 2(2):228–
243, 2006.
[17] Waldo Gálvez, Fabrizio Grandoni, Sandy Heydrich, Salvatore Ingala, Arindam Khan, and Andreas
Wiese. Approximating geometric knapsack via L-packings. In FOCS, pages 260–271, 2017.
[18] Waldo Gálvez, Fabrizio Grandoni, Salvatore Ingala, and Arindam Khan. Improved pseudopolynomial-time approximation for strip packing. In FSTTCS, pages 9:1–9:14, 2016.
[19] Michael R. Garey and David S. Johnson. “Strong” NP-completeness results: Motivation, examples,
and implications. JACM, 25(3):499–508, 1978.
[20] Igal Golan. Performance bounds for orthogonal oriented two-dimensional packing algorithms. SIAM
J. Comput., 10(3):571–582, 1981.
[21] Rolf Harren, Klaus Jansen, Lars Prädel, and Rob van Stee. A (5/3+ ε)-approximation for strip packing.
Computational Geometry, 47(2):248–267, 2014.
[22] Rolf Harren and Rob van Stee. Improved absolute approximation ratios for two-dimensional packing
problems. In APPROX-RANDOM, pages 177–189. Springer, 2009.
[23] Sören Henning, Klaus Jansen, Malin Rau, and Lars Schmarje. Complexity and inapproximability
results for parallel task scheduling and strip packing. CoRR, abs/1705.04587, 2017.
[24] Klaus Jansen and Lars Prädel. A new asymptotic approximation algorithm for 3-dimensional strip
packing. In SOFSEM, pages 327–338, 2014.
19

[25] Klaus Jansen and Malin Rau.
abs/1712.04922, 2017.

Closing the gap for pseudo-polynomial strip packing.

CoRR,

[26] Klaus Jansen and Malin Rau. Improved approximation for two dimensional strip packing with polynomial bounded width. In WALCOM, pages 409–420, 2017.
[27] Klaus Jansen and Roberto Solis-Oba. Rectangle packing with one-dimensional resource augmentation.
Discrete Optimization, 6(3):310–323, 2009.
[28] Klaus Jansen and Ralf Thöle. Approximation algorithms for scheduling parallel jobs. SIAM J. Comput.,
39(8):3571–3615, 2010.
[29] Klaus Jansen and Rob van Stee. On strip packing with rotations. In STOC, pages 755–761, 2005.
[30] Klaus Jansen and Guochuan Zhang. Maximizing the total profit of rectangles packed into a rectangle.
Algorithmica, 47(3):323–342, 2007.
[31] Mohammad M. Karbasioun, Gennady Shaikhet, Evangelos Kranakis, and Ioannis Lambadaris. Power
strip packing of malleable demands in smart grid. In IEEE International Conference on Communications, pages 4261–4265, 2013.
[32] Claire Kenyon and Eric Rémila. A near-optimal solution to a two-dimensional cutting stock problem.
Math. Oper. Res., 25(4):645–656, 2000.
[33] Arindam Khan. Approximation Algorithms for Multidimensional Bin Packing. PhD thesis, Georgia
Institute of Technology, USA, 2015.
[34] Flavio Keidi Miyazawa and Yoshiko Wakabayashi. Packing problems with orthogonal rotations. In
LATIN, pages 359–368. Springer, 2004.
[35] Giorgi Nadiradze and Andreas Wiese. On approximating strip packing better than 3/2. In SODA, pages
1491–1510, 2016.
[36] Anshu Ranjan, Pramod Khargonekar, and Sartaj Sahni. Offline first fit scheduling in smart grids. In
IEEE SCC, pages 758–763, 2015.
[37] Ingo Schiermeyer. Reverse-fit: A 2-optimal algorithm for packing rectangles. In ESA, pages 290–299.
Springer, 1994.
[38] Daniel Sleator. A 2.5 times optimal algorithm for packing in two dimensions. Information Processing
Letters, 10(1):37–40, 1980.
[39] A. Steinberg. A strip-packing algorithm with absolute performance bound 2. SIAM J. Comput,
26(2):401–409, 1997.
[40] Shaojie Tang, Qiuyuan Huang, Xiang-Yang Li, and Dapeng Wu. Smoothing the energy consumption:
Peak demand reduction in smart grid. In INFOCOM, pages 1133–1141. IEEE, 2013.

20

