Als Manuskript gedruckt
Technische Universität Dresden
Herausgeber: Der Rektor
Packing non-convex polytopes into a
parallelepiped
Y. G. Stoyan, N.I. Gil’, A. Pankratov, G. Scheithauer
MATH-NM-06-2004
June 2004
Contents
1 Introduction
3
2 Mathematical model
5
3 Characteristics of the mathematical model
9
4 Solution strategy
11
5 Approximate representation of polytopes
12
6 Starting point generation
13
7 Constructing convex sets and searching for a local minimum
15
8 Global optimization
17
9 Examples and numerical results
20
10 Conclusions
25
2
Packing non-convex polytopes into a parallelepiped
Y. G. Stoyan, N.I. Gil, A. Pankratov, G. Scheithauer
Abstract
The paper considers the problem of packing non-convex polytopes of arbitrary
spatial shapes into a parallelepiped of minimal height. The polytopes are oriented,
rotation is not permitted.
A mathematical model of the problem is developed and some of its peculiarities
are analyzed. Due to these peculiarities a solution method is proposed which is
based on a meta-heuristic to find some approximation of a global minimum solution.
Within the solution process a sequence of local minima is computed. Some examples
and computational results are also given.
Key words: mathematical modelling, optimization, packing, non-convex polytope
AMS classification: 90C30, 90C26, 90B06, 90C59
1
Introduction
Let non-convex polytopes
Pi ⊂ IR3 ,
i ∈ I = {1, . . . , n},
and a (sufficient large) parallelepiped
P (h) = {(x, y, z, ) ∈ IR3 : 0 ≤ x ≤ L, 0 ≤ y ≤ W, 0 ≤ z ≤ h}
be given. The length L and the width W of P (h) are considered to be constants, while
the height h is variable. The aim is to find a minimal height h so that all polytopes can
be packed within P (h).
More precisely, within this paper the polytopes Pi , i ∈ I, have fixed orientation, i. e. they
are not allowed to be rotated, only translations are considered. As usual, the translation
of polytope Pi by a vector ui ∈ IR3 yields
Pi (ui ) = {w ∈ IR3 : w = v + ui , v ∈ Pi } (i ∈ I).
The translation vector ui is also called the placement parameter vector of Pi . Moreover, it
is assumed that the eigen coordinate system of any polytope coincide with the coordinate
system of P (h).
Hence, the objective is to find placement parameter vectors ui for all i ∈ I and height h so
that all (translated) polytopes Pi (ui ) are contained completely within parallelepiped P (h)
without mutual overlap and so that height h of P (h) attains the minimal value.
3
Placement (optimization) problems concerning the packing of 3D geometric objects which
can be formulated similar to above, arise in various branches of industry. For instance,
applications arise in powder metallurgy, or in laser 3D cutting, or during the arranging and
loading of containers for aviation, cosmic shipment, sea shipment, railroad transportation,
or when cutting different natural and artificial crystals, during the layout of computers,
buildings, ships, plants, etc. Some times rotations of the objects are allowed in application
but this is not considered here.
Investigations concerning 3D problems are devoted basically to packing various parallelepipeds (boxes) into containers (see, for example, [1, 2, 3, 5, 6, 11, 12, 13, 28, 40, 42]).
Significantly fewer research is concerned with problems of placing polytopes into a given
3D domain. We point out some of them.
In [16, 17, 18] a genetic algorithm based approach is presented which uses three types of
information to get improved solutions: the direction of object movement, the orientation
of each object and points of each object where it is in contact with another. Objects can
be rotated by an angle divisible by 45◦ with respect to each coordinate axis. The objective
in these investigations is either the number of objects placed into a container, or is the
sum of distances between the centers of minimal parallelepipeds which circumscribe the
objects and a center axis of the container.
Various methods to solve 3D problems are considered in [4, 19, 33] which are based on a
simulated annealing approach. These methods are applied in order to pack parallelepipeds
and cylinders. In addition, the objects can be rotated by an angle divisible by 90◦ . In
[4] the same approach is applied to packing arbitrarily shaped objects. Especially the
problem to pack 16 flywheels (cog-wheels) into a cubic container is considered. Solutions
were accepted after 13-14 minutes using a PC Silicon Graphics R10 000, 195 MHz Indigo.
In [4, 20] the objects are placed sequentially without restrictions on rotation of objects. A
simulated annealing algorithm is applied.
A class of engineering systems of circuit design is defined in [31, 32]. For the related
arrangement problem a mathematical model is developed taking into account the peculiarities arising in early stages of the design process. The problem analysis and a solution
method for the layout design problems are presented, and a CAD-programming system is
described which allows the automation of layout synthesis for engineering systems with
modular structure in early stages of design.
In [39] a survey of approaches to and applications of 3D free-form cutting and packing
problems is given. The approaches include simulated annealing and genetic algorithms,
applications lay in 3D product layout and rapid prototyping, which is a new technology
for quickly creating 3D products with CAD systems.
In [22] an efficient optimization-based animation algorithm is presented which can simulate
scenes with many convex three-dimensional bodies. This algorithm ’simulates Newtonian
(second order) physics and Coulomb friction’, and it uses quadratic programming to calculate new positions.
Summarizing, in our knowledge, at present all investigations (besides [30]) devoted to 3D
placement problems do not construct mathematical models of the optimization problems
and offer mostly only heuristic solution methods to handle them.
4
The aim of our investigations is the construction of a mathematical model for the packing
problem stated and to develop an appropriate solution method to get a near-optimal solution, which is not a global minimum solution in general, but a proved local minimum. The
model is an extension of the mathematical model described in [30] where the optimal packing of convex polytopes is investigated. Characteristic peculiarities of the mathematical
model are analysed, a method to search for local minima and an over-lying meta-heuristic
approach to find a near-optimal global solution. Moreover, a simple approach is presented
to construct a starting point for the local search.
The proposed approach can also be used to compute a proved local minimum starting
from any feasible solutions, e. g. produced by some heuristic.
The paper is organized as follows: In the second section, a mathematical model of the problem is constructed and a general solution strategy is proposed. Characteristic peculiarities
of the model are investigated and conclusions are drawn in the third section. Section 4
is devoted to the development of the solution strategy. An approximate representation
of polytopes as a union of elementary parallelepipeds is presented in Section 5 which is
used in the next section to construct efficiently a starting point (first feasible placement)
to compute a local minimum iteratively. In Section 7 it is described how a local minimum
is computed by investigating convex subsets of the feasible region. A meta-heuristic-like
procedure, the decremental neighbourhood search method, is used in order to obtain an
appropriate approximation of a global minimum (Section 8). Some numerical experience
is given in Section 9. Conclusions are made in Section 10.
2
Mathematical model
In order to formulate a suitable mathematical model of the packing problem, each polytope
Pi , i ∈ I, is represented as a union of convex polytopes Pij , j ∈ Ji = {1, . . . , ni }, i. e. we
have
Pi =
[
Pij ,
i ∈ I.
(1)
j∈Ji
Each convex polytope Pij is given with respect to the eigen coordinate system of Pi by
coordinates of its extreme points
vrij ,
r ∈ Rij = {1, . . . , nij },
j ∈ Ji ,
i ∈ I.
It is well-known that any convex polytope is entirely determined by its extreme points
([14, 15, 25]), i. e.
Pij = conv{vrij : r ∈ Rij } = {p ∈ IR3 : p =
X
r∈Rij
λr vrij ,
X
λr = 1, λr ≥ 0, r ∈ Rij }.
r∈Rij
Pij can also be represented as intersection of a minimal number of half-spaces gsij (p) ≤ 0,
s ∈ Sij , which are determined by its facets, i. e.
Pij = {p ∈ IR3 : gsij (p) ≤ 0, s ∈ Sij }.
5
Thus, because of formula (1), the translation of Pi by vector ui implies the translation of
all convex polytopes Pij , j ∈ Ji , by vector ui which is represented by Pij (ui ).
In order to construct a mathematical model of the problem under consideration it is
necessary to formulate all conditions of mutual overlap of any pair of polytopes Pi , i ∈
I, and all conditions of containment within the parallelepiped P (h) in an appropriate
analytical form. Such analytical description can be realized on the basis of the concept of
Φ-functions (cf. [26, 29]).
A Φ-function Φik : IR6 → IR of a pair of objects Pi and Pk (i, k ∈ I) is an everywhere
defined continuous function and has a negative value if the interior of the (translated)
objects intersect each other, i. e. if int Pi (ui ) ∩ Pk (uk ) 6= ∅ (int S denotes the interior of set
S). Its value is zero if the two objects are in contact, i. e. if int Pi (ui ) ∩ Pk (uk ) = ∅ but
Pi (ui ) ∩ Pk (uk ) 6= ∅, and it is strictly positive if the two objects have no common points,
i. e. if Pi (ui ) ∩ Pk (uk ) = ∅.
Note that, if Pi and Pk are convex polytopes, the set
Sik = {(ui , uk ) : Φik (ui , uk ) ≤ 0} ⊂ IR6
implies the set
Mik = {uk − ui ∈ IR3 : Φik (ui , uk ) ≤ 0} = {u ∈ IR3 : Φik (0, u) ≤ 0}
which is also known as Minkowski-sum (or no-fit-polygon) of Pi and Pk . i. e. it also holds
Mik = Pi + (−1)Pk = {p ∈ IR3 : p = v − w, v ∈ Pi , w ∈ Pk }.
This relation between Minkowski-sum and Φ-functions is a source to construct Φ-functions
(e. g. a representation or Mik as intersection of half-spaces can immediately be used to
define a Φ-function) but Φ-functions can involve more information with respect to the
interaction of the objects than the Minkowski-sum provides (e. g. the distance between
the objects).
As it is shown in [29], a Φ-function of two convex polytopes Pij ⊆ Pi (i. e. j ∈ Ji ) and
Pkl ⊆ Pj (i. e. l ∈ Jk ) can be represented in the form
Φijkl (ui , uk ) = max{ϕijkl
s (uk − ui ) : s = 1, . . . , νijkl },
(2)
where the number νijkl of affine linear functions ϕs depends on the number of extreme
points and facets of the convex polytopes Pij and Pkl . (A rough upper bound for νijkl is
the product of the number of extreme points of Pij and Pkl .) The ’max’ in formula (2)
reflects the fact that two convex objects do not overlap if there exists at least one separating
hyper-plane. The construction of corresponding Φ-functions Φijkl (ui , uk ) is described in
[29] in detail.
6
Representation (2) means that condition Φijkl (ui , uk ) ≥ 0 can also be described by the
following disjunctive system of linear inequalities:
hAijkl u + Cijkl ≥ 0i :
*
ϕijkl
1 (u) ≥ 0 +
ϕijkl
2 (u) ≥ 0
...
ijkl
ϕνijkl (u) ≥ 0
(3)
where u = uk − ui , Aijkl ∈ IRνijkl ×3 , Cijkl ∈ IRνijkl ×1 . Consequently, the two convex
polytopes do not overlap, i. e. int Pij ∩ Pkl = ∅ holds true if at least one of the inequalities
is fulfilled in the disjunctive system of linear inequalities (3). This is denoted by symbols
h i for short.
According to [35], a Φ-function of two (composed) polytopes Pi and Pk can be represented
(because of (1) and (2)) by the following function:
Φik (ui , uk ) = min{Φijkl (ui , uk ) : j ∈ Ji , l ∈ Jk }.
(4)
In order to guarantee that two non-convex objects Pi and Pk do not overlap, for any pair
Pij and Pkl of convex subsets the non-overlapping must be ensured which is realized by
the ’min’ in formula (4). In other words, the condition Φik (ui , uk ) ≥ 0 which ensures the
non-overlapping of Pi and Pk can also be represented by the following linear inequality
system:
Φijkl (ui , uk ) ≥ 0,
j ∈ Ji , l ∈ Jk ,
(5)
i. e. int Pi ∩ Pk = ∅ if Φijkl (ui , uk ) ≥ 0 for all j ∈ Ji and l ∈ Jk .
Notice, if two polytopes Pi and Pk have big holes, then there can exist translation vectors
ui and uk such that int Pi ∩ Pk = ∅ (since Φik (ui , uk ) ≥ 0) but the two polytopes may be
linked in such a way that they cannot be separated which may be infeasible in practice
(’two rings form a chain’). Nevertheless, the approach proposed ensures that if it starts
with a feasible packing then it computes only feasible packings (s. below).
In order to model the containment of a polytope Pi within the parallelepiped P (h), the
equivalent condition that Pi and the complementary set
P0 (h) = IR3 \ (int P (h))
are non-intersecting is used. Since set P0 (h) is considered to be immovable, the condition
of non-intersection of Pi and P0 (h) can be described by an inequality
Φi (ui , h) ≥ 0,
(6)
−
where Φi : IR4 → IR has similar properties like a Φ-function. Let x+
i and xi denote the
maximal and minimal x-coordinates of Pi , i. e.
x+
i = max{x : (x, y, z) ∈ Pi },
x−
i = min{x : (x, y, z) ∈ Pi },
7
and let yi+ , yi− and zi+ , zi− denote the maximal and minimal y- and z-coordinates of Pi ,
respectively. Then Φi : IR4 → IR has the form
o
n
+
−
+
−
+
,(7)
Φi (x, y, z, h) = min x − x−
i , L − x − xi , y − yi , W − y − yi , z − zi , h − z − zi
ı. e. Φi (x, y, z, h) gives the minimum distance of Pi translated by vector (x, y, z) to the
boundary of P0 (h). Thus, inequality (6) is in fact the following linear inequality system
where ui = (xi , yi , zi ):
Ai ui + Ci =
xi − x−
i
L − xi − x+
i
yi − yi−
W − yi − yi+
zi − zi−
h − zi − zi+
≥
≥
≥
≥
≥
≥
0
0
0
.
0
0
0
(8)
For the sake of shortness let
u = (x1 , y1 , z1 , . . . , xn , yn , zn )T ∈ IR3n
denote the vector containing all the translation vectors and let
X = (u, h) = (x1 , y1 , z1 , . . . , xn , yn , zn , h)T ∈ IR3n+1
represent all the problem specific variables.
Now the placement problem under consideration can be modelled as follows:
F (X) = F (u, h) = h → min
s. t. X ∈ Ω
(9)
where
Ω = {X ∈ IR3n+1 : Φik (ui , uk ) ≥ 0, 1 ≤ i < k ≤ n, Φi (ui , h) ≥ 0, i = 1, . . . , n}. (10)
Taking into account formulas (2) – (8), the inequality system which defines Ω can also be
written as follows:
hAijkl (uk − ui ) + Cijkl ≥ 0i ,
∀ j ∈ Ji , l ∈ Jk , i < k ∈ I,
Ai ui + Ci ≥ 0, i ∈ I.
(11)
Note that for any quadruple (i, j, k, l) only one of the νijkl inequalities in hAijkl (ui − uk ) + Cijkl ≥ 0i
must be fulfilled to guarantee the non-overlapping of Pi and Pk . On the other hand, all
six inequalities in Ai ui + Ci ≥ 0 must hold true to ensure the containment of Pi within
P (h).
8
3
Characteristics of the mathematical model
The mathematical model possesses a number of peculiarities which are similar to that
already considered in [30] where the restricted problem of packing convex polytopes within
a parallelepiped with minimal height is addressed. So, only those peculiarities are pointed
out here which are of interest for the proposed approach.
1. int Pi ∩ Pk 6= ∅ is valid if at least one pair (j, l) exists with j ∈ Ji and l ∈ Jk with
int Pij ∩ Pkl 6= ∅, or, equivalently, if
ϕijkl
s (ui − uk ) < 0 ∀s = 1, . . . , νijkl .
2. The feasible region Ω is determined by a system consisting of
m = n1
n
X
k=2
nk + n2
n
X
nk + . . . + nn−1 nn =
n−1
X
n
X
ni nk
(12)
i=1 k=i+1
k=3
disjunctive systems of linear inequalities of the kind (3) (for every pair Pij and Pkl
of convex polytopes a disjunctive system is needed, j = 1, ..., ni , l = 1, . . . , nk ,
i < k ∈ I), and n inequality systems of the kind (8). Since the disjunctive system of
linear inequalities hAijkl u + Cijkl ≥ 0i consists of νijkl inequalities (cf. (3)), in total
ν=
n−1
X
nk
ni X
n
X
X
νijkl + 6n
i=1 k=i+1 j=1 l=1
linear inequalities are needed for a complete description of Ω.
Since νijkl ≥ 4 for any pair of convex polytopes, this total number is not smaller
than 2n(n − 1) + 6n (if ni = 1 for all i ∈ I).
Note that, in a solution approach which is based on Minkowski-sums (or no-fitpolygons), m Minkowski-sums have to be considered. The amount to construct a
Φ-function is less than that of computing a Minkowski-sum (for details cf. [30]).
3. The feasible region Ω ⊂ IR3n+1 is in general a disconnected polyhedral set. Hence,
it can be represented in the form
Ω=
η
[
Ωi
with Ωi ∩ Ωk = ∅, i 6= k,
i=1
where Ωi denotes a maximal, closed and connected component of Ω and η its number.
Disconnectedness can appear e. g. if two large objects are to pack (as considered in
[29]) or if the following situation is present. Let the polytopes P1 and P2 be such
that P2 fits partly or entirely within P1 and that P2 can not be moved out of P1
without overlapping it.
4. Because of items 1 and 2, each connected component Ωi of Ω is in general a nonconvex polyhedral set in IR3n+1 .
9
5. Since the total number ν of all inequalities in the representation is finite, each connected component Ωi can be covered by a finite number of convex polyhedral subsets
of Ω denoted by
Ωij ,
j = 1, . . . , ηi ,
i = 1, . . . , η.
Since any convex polyhedral set can be represented as intersection of a finite number
of half-spaces, it follows that
Ωi =
ηi
[
j=1
Ωij =
ηij
ηi \
[
Hkij
(13)
j=1 k=1
where Hkij is a half-space that is specified by one of the inequalities involved in (3)
or (8).
6. Each convex subset Ωij can be described by a linear inequality system
Bij X + Dij ≥ 0
with Bij ∈ IR(m+6n)×(3n+1) , Dij ∈ IRm+6n ,
since each system has to consists of all the 6n inequalities in system (8) and m
inequalities, exactly one of each disjunctive system of linear inequalities (3).
According to formula (11), the point X = (u, h) ∈ IR3n+1 belongs to Ω if and only if
at least one of the following linear inequality systems is fulfilled:
*
B1 X + D1 ≥ 0,
+
B2 X + D2 ≥ 0,
.
..
.
(14)
Bσ X + Dσ ≥ 0
Hence, the number σ of such inequality systems equals
σ=
n−1
Y
nk
ni Y
n
Y
Y
νijkl .
i=1 k=i+1 j=1 l=1
Clearly, not all of them contain feasible points, and a practicable approach must
not consider a large part of them. On the other hand, this representation allows
(theoretically) the construction of exact solution algorithms.
7. The number σ is significantly larger than n!. Since νijkl ≥ 4 for any convex polytope,
it follows that σ ≥ 4r with r = 12 n(n − 1). Applying Stirling’s formula ln n! ≈
√
(n + 21 ) ln n − n + ln 2π, the statement follows since 12 n(n − 1) ln 4 > ln n! for
sufficiently large n.
The following conclusions can be drawn.
10
1. Since the feasible region Ω is disconnected (item 4) and each of its connected components can be non-convex, the problem under consideration is in general multiply
extremal. Since the two-dimensional strip packing problem (of rectangles) is a special case which is known to be NP-hard, the problem under consideration is also
NP-hard (cf. [10] or [24]).
2. Since the objective function F (X) = h is linear and the feasible region Ω is polyhedral, local minima can be achieved at extreme points of Ω.
3. Some of the convex subregions Ωij , j ∈ {1, ...ηi }, may have common points. If an
extreme point X0 of Ωij0 is a local minimum (with respect to Ωij0 ) then it is necessary
to investigate all other subregions Ωij with X0 ∈ Ωij , j ∈ {1, ...ηi }, to prove that X0
is a local minimum with respect to Ωi , and hence, a local minimum of problem (9).
4. Representation (14) of Ω allows to solve problem (3) by a sequence of linear programming problems. Theoretically, all σ LP problems corresponding to the disjunctive
system of linear inequalities (14) can be solved and a (proved) global minimum
solution can be obtained in this way.
5. Since σ is too large for problems of practical interest, only nearly optimal solutions
can be found in general, but local optimality can be reached. Since no suitable lower
bound for the minimal height h, needed to pack all polytopes, is known only an
enumeration scheme can be applied to verify global optimality.
4
Solution strategy
Due to conclusion 4 of previous section, a proved global minimum solution of the packing
problem can (theoretically) be obtained by solving a sequence of σ problems of the form
F (X) → min
s. t. Bi X + Di ≥ 0,
(15)
i = 1, . . . , σ. This can be done by constructing a branching (or search) tree whose terminal
nodes represent all the σ inequality systems Bi X + Di ≥ 0, i = 1, ..., σ. For each system,
for which appropriate fathoming tests fail, a linear programming problem of the form (15)
has to be solved. However, the fathoming tests applied in our computational experiments,
do not permit to obtain a proved global minimum if n and/or m get larger and hence, the
number of local extreme points becomes huge.
Furthermore, the problem under consideration possesses such peculiarities (non-connectedness,
non-convexity) which do not allow the efficient use of exact modern methods of operational
research without special adaptation.
Moreover, no other exact solution methods are known for the general case. Thus, it is
advisable to use both approximate and exact optimization methods to obtain near-optimal
solutions. The following strategy is proposed to (approximately) solve the problem under
consideration:
General solution strategy
11
1. In order to construct fast a first feasible solution, every polytope Pi is approximated
by a axes-parallel polytope Pi∗ , i ∈ I, with a given accuracy where Pi∗ is a union of
elementary parallelepipeds whose facets are parallel to the facets of P (h).
2. Polytopes Pi∗ , i ∈ I, are packed into P (h) sequentially according to some (random)
sequence. Such a sequence is formed by a probabilistic procedure that converges
under certain conditions (see below). As a result, some interior or boundary point
X0 ∈ Ω is obtained.
3. A convex subset Ω0 of Ω that contains point X0 is constructed next. Let κ denote
the counter of the iteration to compute a proved local minimum, κ = 0.
4. Then, a local minimum Xκ∗ of the corresponding problem of kind (15) with respect
to set Ωκ is calculated.
5. If there exists another convex set Ωκ+1 ⊂ Ω (i. e. Ωκ+1 6= Ωi for i ≤ κ ) with
Xκ∗ ∈ Ωκ+1 , then set κ = κ + 1 and return to step 4.
This process terminates if no improved solution is found, i. e. F (Ωκ+1 ) = F (Ωκ ), and
all convex subsets containing Xκ∗ are investigated. Then a local minimum of problem
(3) is found.
6. Depending on the search strategy, if there is a new sequence of objects, then repeat
steps 2 to 5 until some termination criterion is met.
7. The best local minimum X ∗ obtained is some approximation to the global minimum
(non-trivial performance bounds are not known).
5
Approximate representation of polytopes
In order to reduce the computational amount needed to construct a first feasible packing,
each polytope Pi , i ∈ I, is approximated (covered) with some accuracy by the polytope
Pi∗ which is a union of some elementary parallelepipeds whose edges are parallel to axes
of the eigen coordinate system of Pi . The sizes of these elementary parallelepipeds along
y- and z-axis are assumed to be identical for all i ∈ I and are denoted by ∆y and ∆z,
respectively. The size along the x-axis is assumed to be divisible by ∆x. Thus, such an
elementary parallelepiped Λpq ⊂ IR3 can be characterized entirely by a quadruple [α, β, p, q]
of integers according to
[α, β, p, q] = Λpq =
{(x, y, z) ∈ IR3 : α∆x ≤ x ≤ β∆x, p∆y ≤ y ≤ (p + 1)∆y, q∆z ≤ z ≤ (q + 1)∆z}.
As usual, length L, width W , and height h = H of P (H is chosen such that the placement
of Pi , i ∈ I, within P (h) is guaranteed) are assumed to be a multiple of ∆x, ∆y, and ∆z,
respectively, or in other words,
L = (lmax + 1)∆x,
W = (pmax + 1)∆y,
12
H = (qmax + 1)∆z,
(lmax , pmax , qmax ∈ IN ). For p = 0, . . . , pmax , q = 0, . . . , qmax , let
Γpq = {(x, y, z) ∈ IR3 : 0 ≤ x ≤ L, p∆y ≤ y ≤ (p + 1)∆y, q∆z ≤ z ≤ (q + 1)∆z}.
i
Pij , for every convex polytope Pij the
In order to construct set Pi∗ for polytope Pi = ∪nj=1
uniquely determined minimal elementary parallelepipeds
Λpq
ij
⊇
pq
−
−
Pij (−a−
i , −bi , −ci ) ∩ Γ
pq
- and minimal βijpq -values are to compute. Note,
have to be calculated, i. e. maximal αij
−
−
vector (−a−
i , −bi , −ci ) translates Pi entirely into the bottom-left-front justified position.
Then,
Pkl∗ =
p[
max qmax
[
Λpq
ij =
p=0 q=0
p[
max qmax
[
pq
, βijpq , p, q] ⊇ Pij
[αij
p=0 q=0
is a minimal covering of Pij with elementary parallelepipeds and given lattice size ∆x.
pq
and βijpq can be easily obtained by inspecting the
Note that the length-parameters αij
−
−
pq
extreme points of Pij (−a−
i , −bi , −ci ) ∩ Γ .
Since Pi is in general a union of some convex polytopes Pij (if ni > 1), we have:
Pi∗ =
ni p[
max qmax
[
[
Λpq
ij =
j=1 p=0 q=0
ni p[
max qmax
[
[
pq
, βijpq , p, q].
[αij
(16)
j=1 p=0 q=0
In order to reduce computational effort, the representation of Pi∗ should be minimal in the
pq
, βijpq , p, q] are
following sense. Since, in general, some of the elementary parallelepipeds [αij
pq
pq
pq
pq
pq
0
, βijpq , p, q] ∩ [αij
empty, and also [αij
0 , βij 0 , p, q] 6= ∅ for j 6= j may occur (if αij ≤ βij 0 and
pq
pq
∗
αij 0 ≤ βij ), another representation of Pi is used:
Pi∗ =
pq
p[
max qmax
i
[ r[
p=0 q=0 r=1
Λpq
ir =
pq
p[
max qmax
i
[ r[
pq
pq
, p, q].
, βir
[αir
(17)
p=0 q=0 r=1
ripq ≥ 0 is the number of disjunctive elementary parallelepipeds needed in the minimal
axes-parallel covering.
6
Starting point generation
As it is shown in [30], in order to obtain a starting point X0 ∈ Ω to compute iteratively
a local minimum, all polytopes Pi , i ∈ I, are packed sequentially one-by-one into P (h)
in accordance with some given sequence Pi1 , . . . , Pin . For simplicity in the description, it
is supposed that the polytopes are packed in their natural sequence, i. e. polytope P1∗ is
packed first, then P2∗ , and so on.
13
Since the computational effort increases rapidly with the total number of convex polytopes,
the usage of polytopes Pi∗ (instead of polytopes Pi ) is proposed to obtain fast a starting
point X0 . If X0 represents a feasible packing of all Pi∗ , i ∈ I, then it ensures a feasible
placement of all polytopes Pi , i ∈ I, within P (h).
According to a bottom-left-front-strategy the placement of the Pi∗ is as follows: Let height
h of P (h) be equal to H, where H is sufficiently large such that all Pi∗ , i ∈ I, can be
placed into parallelepiped P (h).
For p = 0, . . . , pmax , q = 0, . . . , qmax , let
Πpq = Γpq = {(x, y, z) : 0 ≤ x ≤ L, p∆y ≤ y ≤ (p + 1)∆y, q∆z ≤ z ≤ (q + 1)∆z}
denote the elementary parallelepipeds contained in the empty container P (H) which has
height H = (qmax + 1)∆z. Hence,
P =
p[
max qmax
[
Πpq .
p=0 q=0
−
−
In order to pack P1∗ into P (H), u1 = (−a−
1 , −b1 , −c1 ) is used to obtain the bottom-leftfront position for P1 .
Because of construction, every elementary parallelepiped Λpq
ir occurring in representation
(17) of Pi∗ is a subset of the corresponding elementary parallelepiped Πpq of P (H) for
every p and q.
After allocating P1∗ (u1 ) within P (H), the set P (H) \ (int P1∗ ) remains free for packing of
the other polytopes. In order to use a similar representation for P \ (int P1∗ ), now several
pq
elementary parallelepipeds Πpq
s , s = 1, . . . , s , may occur:
P\
(int P1∗ )
=
pq
p[
max qmax
[ s[
Πpq
s .
p=0 q=0 s=1
In order to find a suitable translation vector u2 for P2∗ such that
int P2∗ (u2 ) ∩ int P1∗ (u1 ) = ∅
and P2∗ (u2 ) ⊆ P
with the lowest z-coordinate, the following approach is used. Since the process of placing
the polytopes within P (h) is repeated several times (according to different sequences), the
a priori computation of Φ-functions Φik for any pair Pi∗ and Pk∗ and of Φi for any polytope
Pi∗ and P0 (H) = IR3 \ (int P (H)) can save a lot of computational amount. But, because of
the axes-parallel approximation, one can calculate directly the translation vector u2 with
the smallest z-coordinate by inspecting the local shape of P (H) \ (int P1∗ ). That means,
only local information of the 0-level surface of the corresponding Φ-functions is exploited
(or, equivalently, on the boundary of the Minkowski-sum).
14
After calculating the lowest position of P2∗ (reached by translation vector u2 ), the representation of the remaining empty space within P \ int (P1∗ (u1 ) ∪ P2∗ (u2 )) has to be updated,
but the same structure maintains, i. e. a representation of the form
P\
int (P1∗ (u1 )
∪
P2∗ (u2 ))
=
pq
p[
max qmax
[ s[
Πpq
s .
p=0 q=0 s=1
pq
results with changed Πpq
s and s -values.
Next, a translation vector u3 of P3∗ with the smallest z-coordinate has to be found such
that
int P3∗ (u3 ) ∩ (P1∗ (u1 ) ∪ P2∗ (u2 )) = ∅
and
P3∗ (u3 ) ⊆ P (H).
This process is continued until all polytopes are placed within P (H).
As a final result of this placement heuristic, translation vectors u1 , . . ., un are obtained
which leads to a feasible point X0 ∈ Ω. Since these translation vectors ui are used as
starting points, in the following iterations they are renamed as u0i , i = 1, . . . , n.
Note that the proposed approach to generate a starting point involves possibilities to avoid
linking of two polytopes which have big hole, e. g. if simply the convex hulls instead of the
polytopes having a hole are used for constructing starting points. This guarantees that
the packed polytopes do not form a chain.
7
Constructing convex sets and searching for a local
minimum
Because of construction of polytopes Pi∗ , i ∈ I, polytopes Pi (u0i ), i ∈ I, fit within P (H)
and do not overlap each other, i. e.
int Pi (u0i ) ∩ int Pk (u0k ) = ∅
for
1 ≤ i < k ≤ n.
This means, point X0 = (u01 , ..., u0n , h0 ) is in Ω where h0 is the occupied height in P (H).
It is evident, point X0 belongs to some connected component Ωi0 of Ω but in general to
several of the convex subregions Ωi0 j of Ωi0 . Each convex subregion Ωi0 j is specified by an
inequality system of the form
Bj X + Dj ≥ 0,
where j ∈ {1, ..., σ} (cf. items 4 and 6 of characteristics, Section 3).
In order to compute a proved local minimum, one of the convex subregions (containing X0 )
is constructed (say Ωi0 ,1 ) and a minimum solution X1 with respect to Ωi0 ,1 is calculated.
If there exists another convex sub-region of Ωi0 (say Ωi0 ,2 ) with X1 ∈ Ωi0 ,2 for which X1 is
15
not a minimum point, again a problem of the kind (15) has to be solved, now with respect
to Ωi0 ,2 . Let X2 be the new solution obtained. Then the height
h2 = F (X2 ) = min{F (X) : X ∈ Ωi0 2 }
is strictly smaller than height h1 = F (X1 ). This process is repeated until the last iterate
Xk is a minimum for all convex subregions containing Xk . Xk is then a proved local
minimum of (9).
In more detail, in order to construct Ωi0 ,1 , to the systems Ai ui + Ci ≥ 0, i = 1, ..., n, of the
form (8) inequalities have to be added which specify conditions of mutual non-overlapping
of the polytopes Pi , i ∈ I. Let the inequalities form the system B01 X + D01 ≥ 0.
Due to (2) and (3) the system B01 X + D01 ≥ 0 is composed as follows. For all j = 1, .., ni ,
of the disjunctive system of linear
l = 1, ..., nk , 1 ≤ i < k ≤ n, such a function ϕijkl
r
inequalities (3) is selected with r ∈ {1, . . . , νijkl }, for which
0
0
Φijkl (u0i , u0k ) = ϕijkl
r (uk − ui )
is fulfilled. Hence, the number of such functions is m (defined in formula (12)). For the
sake of simplicity we rename these functions by ϕr , r = 1, . . . , m. Then, this selection of
conditions leads to the following LP problem of the kind (15):
min{F (X) : X ∈ Ωi0 1 }
where
Ωi0 1 = {(u1 , ..., un , h) ∈ IR3n+1 : Ai ui +Ci ≥ 0, i ∈ I, ϕr (uk − ui ) ≥ 0, r = 1, . . . , m}.
Let X1 denote a solution of this problem, then in general the point X1 is not a local
minimum of problem (9), except for that case when point X1 is a minimum solution of all
sub-problems of the form
min{F (X) : X ∈ Ωi0 j }
where Ωi0 j is a convex sub-region (according to (13)) which contains X1 . Instead, X1 can
be an internal point, a boundary point or an extreme point of the feasible region Ω (cf.
Fig. 1).
If X1 cannot be proved to be a local optimum then at least one convex sub-region Ωi0 ,2
exists which contains X1 but has a better solution.
This process terminates with a local minimum X ∗ with respect to Ω.
Hence, X ∗ is a result of a descent procedure which starts at a point X0 ∈ Ωi0 ⊆ Ω.
Within the descent process a simultaneous (and successive) search and construction of
new sub-regions is realized together with the solution of the corresponding LP problems.
The procedure that realizes the search for a local minimum is described in [30] in more
detail. It is evident, the point X ∗ is a local minimum of problem (9) if it is a local minimum
for all subregions which contain X ∗ .
16
`
`````
```
```
`
•
X
Ω
0
i0 1
`
```
`
.
```
.
`
.
.
.
.
.
.
.
```
........
............
•
a
aa
X1
Ωi0 2
aa
PP
PP
!
.....
!!
.....
!
!
. . . . . . . . HH
!
!
H
. .•.
Ω
!
i
3
HH
0
!
X
XXX
X2
H
XX . .
H
..
@ ..........
@
......
. . . . . . @
.•.X
XX
Ωi0 4
@
X
X3 XX
@
@
@
X
3
@
@•
Figure 1: Non-convex component of Ω
8
Global optimization
In order to find an appropriate solution of a problem with many local minima, the decremental neighborhood search method (DNS, cf. [27, 34, 41]) is applied. The DNS approach
works like a meta-heuristic and has been applied successfully to several multi-extremal
packing problems, e. g. in [37] and [38].
The method is based on the following assumptions and properties of the mathematical
model of the problem under consideration. Let Vi denote the volume (or another suitable
parameter) of polytope Pi , i ∈ I, such that polytopes of the same type have the same V value, and polytopes of different types have different V -values. Without loss of generality,
we assume that
V1 ≥ V2 ≥ . . . ≥ Vn > 0
holds true. Moreover, at least two different types are assumed.
These V -values are used to define a metric (distance) ρ on the set
Π = Π(V1 , V2 , . . . , Vn ),
of permutations of V1 , . . . , Vn . For πi = (Vi1 , Vi2 . . . , Vin ) ∈ Π and πj = (Vj1 , Vj2 . . . , Vjn ) ∈
Π,
ρ(πi , πj ) =
q
(Vj1 − Vi1 )2 + . . . + (Vjn − Vin )2
17
is defined to be the distance between these two permutations. It is well known, that the
diameter dmax (maximal distance between two permutations of the set Π(V1 , V2 , . . . , Vn ))
equals
dmax =
q
(V1 − Vn )2 + (V2 − Vn−1 )2 + . . . + (Vn − V1 )2 .
Note that permutations with zero-distance are considered to be identical since the starting
point heuristic ends with the same result. Moreover, the minimal distance between two
non-identical permutations is
dmin =
√
2 min{Vi − Vi+1 : Vi − Vi+1 > 0, i = 1, . . . , n − 1}
which can be used in termination criteria in DNS.
Thus, a system of neighbourhoods on set Π(V1 , V2 , . . . , Vn ) can be defined. Since for each
permutation πi ∈ Π there corresponds a starting point Xi ∈ Ω, and to each starting point
Xi there corresponds a local minimum Xi∗ , then to each permutation πi ∈ Π the value
F (Xi∗ ) can be assigned. Thus, if we assume that πi is chosen randomly then the value
F (Xi∗ ) is a random quantity as well whose probability distribution depends on the kind
of F (X) and the feasible region Ω. Then the mathematical model possesses the following
”probability” properties:
1.By means of statistics theory it can be shown that the probability distribution of F (Xi∗ ),
i ∈ I, is the left-sided truncation of the normal distribution Φ(z).
In order to insure that the probability distribution becomes a normal one it is necessary
to realize at least a minimal number λ of random tests. Our investigations have shown
that λ must be at least 50.
2. The metric introduced and the probability properties of the mathematical model insure
the fulfillment of the demand
m1 σ2 − m2 σ1
<b
σ2 − σ1
where mi is the expectation and σi the dispersion of distribution Φi (z), i = 1, 2, b <
m1 − m2 . This is a condition to obtain better values of the objective when passing from
one random sample to other random sample provided that they have the same volume.
3. If two neighbourhoods Ni , i = 1, 2, of center F (X 0 ) (i. e. they have the same center
F (X 0 )) have different radii ρi , i = 1, 2, such that ρ1 > ρ2 then m2 < m1 where mi is the
expectation of the distribution obtained on the neighbourhood Ni , i = 1, 2.
The properties enable to reduce the search of an approximation of global minimum to the
following k steps. Firstly, random search is realized on the feasible region Ω. All following
steps are analogously but differ by the decreasing radius ρk of neighbourhood Nk . The
following theorem [36] holds true.
18
Theorem For any ε > 0 and δ > 0 there exists a number M (ε, δ) such that if the number
m of tests is larger than M in each random sample of the sequence of neighbourhoods Ni ,
i = 1, 2, ..., k, then the inequality
P inf F (X)− inf F (X) < ε < δ
Nk
Ω
holds true where P denotes the probability, and Nk is the neighbourhood obtained after
k steps of search.
Due to the theoretical results, the DNS yields results at least as good as the Monte-Carlo
method but with significantly fewer amount..
In more detail, the DNS works as follows. The DNS starts with a given permutation π0 ∈ Π(V1 , V2 , . . . , Vn ). Then, in a neighbourhood of π0 , new permutations π1 ∈
Π(V1 , V2 , . . . , Vn ) have to be found to calculate new (possibly better) local solutions of the
placement problem. Then the new best solution defines a new neighbourhood with decreased radius. The search process is repeated, and so on, until some termination criterion
is reached.
In more detail, the over-laying searching process is as follows: (k is now used as an iteration
counter in the DNS method.)
Starting with k = 1, a neighbourhood Bk of radius ρk = dmax is considered, and a sample
Mk ⊆ Bk of randomly chosen permutations πjk , j = 1, . . . , λk (according to a uniform
distribution) is drawn where λk is an input parameter, i.e. the Monte-Carlo method is
used on the first step.
For any πjk ∈ Mk , the above described process of generating a starting point (say Xkj ,
∗
) is performed. Then
Section 6) and computing a corresponding local minimum (called Xkj
∗
k
∗
is selected, i. e.
the permutation πk = πj0 corresponding to the best solution Xk = Xkj
0
∗
∗
) : j = 1, . . . , λk },
F (Xkj
) = min{F (Xkj
0
defines the centre of the next neighbourhood Bk+1 which gets the radius
ρk+1 = ρk · µ = dmax · µk−1 .
Then, a sample Mk+1 ⊆ Bk+1 of randomly chosen permutations πjk+1 , j = 1, . . . , λk+1 ,
(according to a uniform distribution) is drawn, and the process is repeated until some
termination criterion is fulfilled.
The input parameter µ ∈ (0, 1) has to be chosen carefully since a too large µ leads to a
high computational amount (because of slowly decreasing neighbourhood size). On the
other hand, a too small µ-value leads in general to a decrease of the solution quality since
the search space is reduced too fast.
Moreover, the input parameters λk are also crucial for the solution process since a too
large λk leads to a high computational amount. On the other hand, a too small λk results
in a decrease of solution quality because of a too small sample in the neighbourhood of πk
19
It is very important to generate starting points so that every local minimum of the given
neighbourhood can be obtained. Thus notice, although the iteration starts with a neighbourhood of maximal radius dmax there is no guarantee to find a global minimum of the
placement problem (9). It is well-known that bottom-left-like approaches (in 2D) do not
yield optimal solutions in general, and the proposed method to construct convex subregions is not proved to generate such regions which contain a global minimum. Only an
exhaustive enumeration of all convex subsets can guarantee to find a global minimum but
this is not possible in practice.
Obviously, the iteration terminates when the radius ρk becomes smaller than dmin . But,
more favourable, if the cardinality of Bk becomes smaller than the threshold λ, exhaustive
search can be applied, and if no improvement is reached, the process is stopped.
9
Examples and numerical results
In this section we present some examples and corresponding numerical results. All computations are done on an PC with AMD Duron processor with 900 MHz. Overall, as
computational experiments showed, the best results could be obtained using
50 ≤ λ1 = λ2 = ... = λκ ≤ 100,
where κ is the index of the last iteration. In the tests below we took λ1 = ... = λκ = 100
and µ = 0.9. (This choice leads to the best results with respect to a compromise between
runtime and result, corresponding numerical investigations are not reported here.)
The solution process of each problem is terminated if one of the following criteria is fulfilled:
µk < 0.001 or if the number of identical points in the sample Mk of neighbourhood Bk of
radius ρk is greater than 16. (This number is also found by experiments.
Since in all examples below several identical polytopes (5 to 20 items) have to be packed,
identical points can be obtained within a sample. Hence, the smaller ρk , the larger the
probability to get identical points.
Example 1: Packing convex polytopes
In this example only convex polytopes have to be packed. Altogether, there are given 80
convex polytopes Pi (i = 1, 2, ..., 80) of 5 types (cf. Fig. 2) whose data are summarized
in the Appendix in Table 1. Parallelepiped P (h) has given length and width equal to 45.
Among the 80 polytopes Pi there are 20 polytopes of types 1, 2 and 4 in each case, and 10
polytopes of types 3 and 5. For constructing starting points, ∆y = ∆z = 0, 5 are taken.
The objective value of the first local minimum X0∗ is h0 = 60.0. The corresponding packing
is shown in Fig. 3. The height at the final local minimum X ∗ = (u∗ , h∗ ) obtained by the
DNS method is h∗ = 56.01 which is a reduction by about 7.1 percent. The corresponding
packing is shown in Fig. 3. The related translation vectors u∗ as well as the data of the
following examples can be obtained from [email protected].
20
Figure 2: Example 1: Packing convex polytopes
The computation time to construct a single starting solution and to compute the corresponding local minimum needs in average 3.09 seconds. The total runtime for the DNS
approach (about 1120 iterations) is 3388 sec.
The percentage of improvement of the proposed approach against simple random search
when utilizing the same amount of time is 0.16% (h∗ = 56.09).
Examples 2-6: Packing non-convex polytopes
In these examples a set consisting of ten types (cf. Fig. 4) of non-convex polytopes is
considered.
Their corresponding data are summarized in Table 2 in the Appendix. Additionally, the
36 convex polytopes covering the non-convex ones are given. In order to get a better
starting point, ∆y = ∆z = 0, 25 is used in the following.
Example 2
Parallelepiped P (h) has length 35 and width 30. In Example 2, altogether 20 non-convex
polytopes Pi , i = 1, 2, ..., 20, of the above 10 types have to be packed into P (h). Among
the 20 polytopes Pi , there are exactly two of each type.
The height h0 of the first local minimum X0∗ is h0 = 43.717. The value at the final local
minimum X ∗ = (u∗ , h∗ ) obtained by the DNS method is h∗ = 32 which is a reduction of
about 36.6 percent. The corresponding packing is shown in Fig. 5.
The calculation of one local minimum takes in average 0.57 sec. The total runtime for the
DNS approach was 791.12 sec.
The percentage of improvement of the proposed approach against simple random search
when utilizing the same amount of time is 10.14% (h∗ = 35.61).
21
Figure 3: Example 1: The first (left) and the final solution (right)
Example 3
In Example 3 is similar to Example 2, but altogether 30 non-convex polytopes Pi , i =
1, 2, ..., 30, of the above 10 types have to be packed into P (h) which has again length 35
and width 30. Among the 30 polytopes Pi , there are exactly three of each type.
The height h∗0 at the first local minimum obtained is h∗0 = 58.95. The objective value of
the final local minimum X ∗ = (u∗ , h∗ ) obtained by the DNS method is h∗ = 49.00 which
is an improvement of about 20.3 percent. The corresponding packing is shown in Fig. 6.
The calculation of one local minimum takes in average 1.24 sec. The total runtime for the
DNS approach was 1979.16 sec.
For this example, a simple random search with the same amount of time yielded the same
solution.
Example 4
Example 4 differs from Example 3 only in that now four polytopes of each type have to
be packed into P (h), i. e. in total 40 non-convex polytopes.
The height h∗0 at the first local minimum obtained is h∗0 = 81.37. The value of the objective
at the final result X ∗ = (u∗ , h∗ ) obtained by the DNS approach is h∗ = 63.21 which is an
improvement of about 28.7 percent. The corresponding packing is shown in Fig. 7.
The calculation of one local minimum takes in average 2.9 sec. The total runtime for the
DNS approach was 5300 sec.
The percentage of improvement of the proposed approach against simple random search
when utilizing the same amount of time is 4.64% (h∗ = 66.28).
22
Figure 4: Example 2: Packing non-convex polytopes
Figure 5: Example 2: n = 20, the first and the final solution
Example 5
In Example 5 now five polytopes of each type have to be packed, i. e. 50 in total.
The height h∗0 at the first local minimum obtained is h∗0 = 94.56. The value of the
objective at the final result X ∗ = (u∗ , h∗ ) obtained by the DNS is h∗ = 78.70 which is an
improvement of about 28.7 percent. The corresponding packing is shown in Fig. 8.
The calculation of one local minimum takes in average 4.26 sec. The total runtime for the
DNS approach was 7406.64 sec.
The percentage of improvement of the proposed approach against simple random search
when utilizing the same amount of time is 3% (h∗ = 81.17).
In addition, after about 60% of total runtime an essential improvement of solution quality
is obtained, whereas after about 75% of total runtime the best solution is found in average.
The number of constructed subregions in the examples varies from one to 24.
23
Figure 6: Example 2: n = 30, the first and the final solution
Figure 7: Example 2: n = 40, the first and the final solution
Performance analysis
The dependence of runtime on the number of convex polytopes being packed is shown
in Fig. 9. The runtime (in sec.) is the average value obtained for a random sample to
compute 100 different local minima. Here ε = ∆y = ∆z = 0.25 was used. The lower curve
of the diagram shows the runtime needed to construct starting points, and the upper curve
shows the time of receipt of local minima.
The dependence of runtime on the number of non-convex polytopes being packed is shown
in Fig. 10.
The runtime is computed similar to above, but here ε = ∆y = ∆z = 0.5 are used.
Again, the lower curve of the diagram shows the average runtime needed to construct 100
starting points, and the upper curve shows the average time to obtain 100 local minima
from the starting points. As can be seen, the time to construct starting points increases
practically linear, and the time of receipt of local minima increases faster, but also nearly
linear.
24
Figure 8: Example 2: n = 50, the first and the final solution
It should be noted that the values of ∆y and ∆z influence essentially both the speed of
algorithm and the quality of the results. The diagram in Figure 11 shows the variation of
runtime and solution quality in dependence on ε = ∆y = ∆z.
The lower curve of the diagram is the runtime of construction starting points, the middle
curve is the time to obtain a local minima and the upper curve is minimal height obtained.
10
Conclusions
The approaches suggested in this paper are sufficiently effective if the number of convex
polytopes (bearing in mind that non-convex polytopes are represented by means of convex
polytopes) is less than 250 and if the polytopes are sufficiently different.
Moreover, the calculation of proved local optima can also be applied in combination with
other heuristics or meta-heuristic approaches.
The proposed approach allows easily parallelization which makes possible to handle larger
packing problems.
As it follows from the previous section it is reasonable to start with large ∆y and ∆z, and
then to increase the accuracy of approximation together with a decrease of factor µ.
It is obvious, results can be improved if some rotations (at least multiples of π2 per axis)
would be permitted. To this end, a special modification of the construction of starting
points is needed. Then the chosen orientation of objects can be maintained, or even
changed, during the descent process. The first strategy would not require an essential
modification of our approach.
However, if many polytopes are identical then the proposed approach is not so effective
because of a large number of identical starting points being generated. In such cases, it is
necessary to develop an appropriate approaches to generate different starting points which
belong to attraction zones of different local minima.
25
Figure 9: Time dependence on number of convex polytopes
References
[1] G. Abdou and M. Yang, A systematic approach for the three-dimensional palletization problem.
International Journal Production Research, Vol.32, pp. 2381-2394 (1994).
[2] G. Abdou and J. Arghavani, Interactive ILP Procedures for stacking optimization for the 3D palletization problem. International Journal of Production Research, Vol.35, No.5, pp. 1287-1304 (1997).
[3] E.E. Bischoff, F. Janets and M.S.W. Ratcliff, Loading pallets with non-identical items. European
Journal of Operational Research, Vol.84, pp. 681-692 (1995).
[4] J. Cagan, D. Degentesh and S. Yin, A simulated annealing-based algorithm using hierarchical models
for general three-dimensional component layout. Computer-Aided Design, Vol.30, No.10, pp. 781-791
(1998).
[5] D.L. De Sha, Area deficient and volume deficient algorithms for loading cargo. Master’s thesis
(unpublished), United States Navy, post-graduate school (1970).
[6] W.B. Dowsland, Three-dimensional packing-solution approaches and heuristic development. Intertational Journal Production Research, Vol.29, pp. 1673-1685 (1991).
[7] H. Dyckhoff, G. Scheithauer and J. Terno. Cutting and packing. In: M. Dell’Amico, F. Maffioli, and
S. Martello (Eds.) Annotated Bibliographies in Combinatorial Optimization, John Wiley & Sons,
Chichester, 1997, pp. 393–412.
[8] J. Edmonds. A combinatorial representation for polyhedral surfaces. Amer. Math. Soc. Notices, 7,
1960. 1–10.
26
Figure 10: Time dependence on number of non-convex polytopes
[9] A.G. Fomenko and D.B. Fuks, Course of homotopic topology. Nauka, Moscow, 1989 (in Russian).
[10] M.R. Garey and D.S. Johnson. Computers and Intractability: A Guide to the Theory of NPcompleteness, San-Francisco, W.H. Freeman and Company, 1979.
[11] P. Gehring and A. Bortfeld, A genetic algorithm for solving the container loading problem. International Transaction in Operational Research, Vol.4, No.5/6, pp.401-418 (1997).
[12] H. Gehring, K. Menschner and M. Meyer, A computer-based heuristic for packing pooled shipment
containers. European Journal of Operational Research, Vol.44, pp. 277-288 (1990).
[13] J.A. George and D.B. Robinson, A heuristic for packing boxes into a container. Computers and
Operations Research, Vol.7, pp. 147-156 (1980).
[14] B. Grubaum. Convex Polytopes. Interscience Publisher, London, 1967.
[15] A. Hartwig. Algebraic 3D Modelling. A.K.Peters,, Wellesley, Massachusetts, 1996.
[16] I. Ikonen, W.D. Biles, et al., Concept for a genetic algorithm for packing three-dimensional objects
of complex shape. Proceedings of the First Online Workshop of Soft Computing (1996).
[17] I. Ikonen, W.D. Biles, et al., A genetic algorithm for packing three-dimensional non-convex objects
having cavities and holes. Proceedings of the 7th International Conference on Genetic Algorithm,
Michigan State Univ., East Lansing, MI (1997).
[18] I. Ikonen, W.D. Biles, A genetic algorithm for optimal object packing in a selective laser rapid
prototyping machine. Proceeding of the 7th International FAIM (Flexible Automation and Intelligent
Manufacturing) Conference, University of Thosido, Middlesbrough, England (1997).
27
Figure 11: Dependence on discretization unit
[19] S. Kirkpatrick, C.D. Gelatt, Jr. and M.P. Vecchi, Optimization by simulated annealing. Science,
Vol.220, No.4598, pp. 671-679 (1983).
[20] A. Kolli, J. Cagan and R. Rutenban, Packing of generic, three-dimensional components based on
multi-resolution modeling. Proceedings of the 1996 ASME Design Engineering Technical Conferences
and Computers in Engineering Conference: Design Automation Conference, 96-DDTC/DAC - 1479,
Irvine, GA (1996).
[21] R. Krowell and R. Fox. Introduction to the theory of knots. Mir, Moscow 1967 (in Russion).
[22] V.J. Milenkovic and H. Schnidt, Optimization-based simulation, Proc. of the ACM SIGGRAPH
Conf. on Computer Graphs 2001, pp. 37-46.
[23] B. Myrtaf, The modern linear programming, Moscow, Mir, 1984 (in Russian).
[24] C.H. Papadimitrov and K. Steiglitz. Combinatorial Optimization: Algorithms and Complexity.
Prentice-Hall, Inc. Englewood Cliffs, New Jersey, 1982.
[25] J.W. Roach, L.S. Health and P.K. Paripati. Representing polyhedra: Faces are better than vertices.
In: Computational Geometry: Theory and Applications. 1993.
[26] Y.G. Stoyan. On one generalization of the dense allocation function. Reports of the Ukrainian SSR
Academy of Science, Ser. A, No. 8, 1979.
[27] Y.G. Stoyan. Mathematical methods for geometric design. In: T.M.R. Ellis and O.J. Semenkoc (eds),
Advances in CAD/CAM, Proceedings of PROLAMAT 82, Leningrad, pp. 67–86. Amsterdam, 1983.
28
[28] Y.G. Stoyan and A.Y. Galata. On dense packing parallelepipeds of arbitrary sizes into a parallelepiped of minimal volume. Cybirnetics, No. 2, pp. 81–86. Kiev, 1972 (in Russian).
[29] Y.G. Stoyan, M. Gil, T. Romanova, J. Terno and G. Scheithauer. Construction of a Φ-function for
two convex polytopes. Applicationes Mathematicae 29.2 (2002) 199 - 218.
[30] Y.G. Stoyan, N. Gill, G. Sheithauer, A. Pankratov and I. Magdalina. Packing of convex polytopes
into a parallelepiped. Optimization Vol. 54, No. 2, pp.215..235 (2005).
[31] Y.G. Stoyan and F. Loyko, Automation of Arragement Design of engineering Systems of Block
Design, Mathematical modelling and Engineering simulation, Vol.15, pp. 815-825 (1998).
[32] Y.G. Stoyan and F. Loyko, Automation of Layout Design of Modular Engineering Systems. CADPacking Program System for Computer-Aided Layout Design, Mathematical modelling and Engineering simulation, Vol.16, pp. 101-109 (1998).
[33] S. Szykman and J. Cagan, A simulated annealing-based approach to three-dimensional component
packing. ASME Journal of Mechanical Design, Vol.117, No.2(A), pp. 308-314 (1995).
[34] Y. G. Stoyan and V. Z. Sokolovsky. The minimization method for some permutation functionals.
Information processing letters. Vol. 8, no. 2. pp.110-111 (1979).
[35] Y.G. Stoyan, G. Scheithauer, M. Gil and T. Romanova. Φ-functions for complex 2D objects. 4OR,
Vol. 2 (2004) 69–84.
[36] Y.G. Stoyan and S.V. Yakovlev. Mathematical Models and Optimization Methods of Geometric
Design, Naukova Dumka, Kiev, Ukraine, 1986 (in Russian).
[37] Y.G. Stoyan and Y. Yaskov, A mathematical model and a solution method for the problem of placing
various-sized circles into a strip. European Journal of Operational Research, 156 (2004) 590-600.
[38] Y.G. Stoyan, Y. Yaskov and G. Scheithauer, Packing of various radii solid spheres into a parallelepiped, Central European Journal of Operational Research, Vol. 11, No. 4, pp. 389–407 (2003).
[39] O. Takayuki, Approaches to 3D Free-Form Cutting and Packing Problems and Their Applications:
a Survey, IBM Research, Tokio Research Laboratory, IBM Japan Ltd.1998.
[40] C. Tinarelli and M. Addonizio, Problema di caricamento di containers. Proc. AIRO congress (1978).
285–289.
[41] J. Terno, R. Lindemann and G. Scheithauer, Zuschnittprobleme und ihre praktische Lösung, Fachbuchverlag Leipzig und Verlag Harry Deutsch Thun und Frankfurt/Main 1987.
[42] J. Terno, G. Scheithauer, U. Sommerweiß and J. Riehme, An efficient approach for the Multi-Pallet
Loading Problem, European Journal of Operational Research, 123/2 (2000) 372–381.
Appendix
29
Table 1: Example 1
Vertex coordinates (x, y, z) of polytope P1 :
(4, 2, 0), (2, 7, 0), (0, 3, 3), (-11, 8, -18), (1, 5, -8), (3, 0, -8), (-1, 1, -5), (-14, 10, -10), (-4, 3, 3), (-2, 7,
0), (-10, 6, -10), (0, -1, 3), (-10, 10, -10), (4, -2, 0)
Vertex coordinates (x, y, z) of polytope P2 :
(3, -4, 8), (3, -4, 0), (3, 6, 0), (3, 6, 8), (-1, 6, 0), (-1, 6, 8), (-1, -4, 8), (-5, -1, -1), (-5, -1, 7), (-5, 5, 7),
(-5, 5, -1), (-1, -4, 0), (2, -2, -8), (-2, -2, -8), (-2, 4, -8), (2, 4, -8)
Vertex coordinates (x, y, z) of polytope P3 :
(8, 0, 10), (8, 0, 3), (6, 5, 0), (4, 10, 0), (4, 10, 13), (6, 5, 13), (2, 5, 13), (2, 5, 0), (0, 0, 3), (0, 0, 10)
Vertex coordinates (x, y, z) of polytope P4 :
(7, 0, 8), (7, 8, 8), (7, 4, 12), (7, 0, 12), (0, 8, 8), (0, 8, 12), (4, 8, 12), (0, 4, 8), (0, 4, 12), (4, 0, 12), (6,
2, 0), (3, 2, 0), (3, 6, 0), (6, 6, 0), (4, 0, 8)
Vertex coordinates (x, y, z) of polytope P5 :
(2, -4, 0), (2, 4, 0), (1, 2, 4), (1, -2, 4), (-1, -2, -8), (1, 2, -8), (1, -2, -8), (0, -4, 0), (-4, 0, 0), (-3, 2, 4), (-2,
4, 0)
Table 2: Example 2
Vertex coordinates of non-convex polytope 1
N
x
y
z
1
0
0
0
2
8
0
0
3
8
0
20
4
0
0
20
5
0
1
0
6
0
1
20
7
8
1
20
8
8
1
0
9
8
18
0
10
8
18
20
11
7
18
0
12
7
18
20
13
7
0
20
14
8
17
0
15
0
17
0
16
0
17
20
17
8
17
20
18
1
18
20
19
0
18
20
20
1
0
20
21
1
0
0
Vertex numbers of the 5 corresponding convex polytopes
1
2
3
4
5
3
9
18
1
1
10
10
20
2
2
9
19
21
3
9
2
23
22
4
23
13
14
1
5
24
12
15
23
6
25
11
16
19
7
26
28
17
4
8
27
Vertex coordinates of non-convex polytope 2
N
x
y
z
1
0
0
0
2
4
0
0
3
4
8
0
4
0
8
0
5
4
0
8
6
4
8
8
7
0
8
8
8
0
0
8
9
2
-8
4
10
2
4
-10
11
2
18
4
12
2
4
19
Vertex numbers of the 5 corresponding convex polytopes
1
2
3
4
5
1
5
3
4
1
2
6
4
3
2
5
7
6
2
3
8
8
7
1
4
9
12
11
10
5 6 7 8
Vertex coordinates of non-convex polytope 3
N
x
y
z
1
0
0
0
2
4
0
0
3
4
15
0
4
0
15
0
5
4
0
5
6
4
15
5
7
0
15
5
8
0
0
5
9
3
4
0
10
1
4
0
11
1
10
0
12
3
10
0
13
2
7
-6
14
4
4
5
15
0
4
5
16
2
2
16
17
4
6
5
18
0
6
5
Vertex numbers of the 4 corresponding convex polytopes
1
2
3
4
1
5
17
9
2
8
18
10
3
15
19
11
4
14
20
12
5 6 7 8
16
21
13
30
19
0
12
5
20
4
12
5
21
2
9
12
22
1
18
0
23
0
18
0
24
0
18
1
25
0
0
1
26
8
0
1
27
8
18
1
28
7
0
0
Vertex coordinates of non-convex polytope 4
N
x
y
z
1
2
-3
0
2
-2
-3
0
3
-2
3
0
4
2
3
0
5
0
0
9
6
0
0
4
7
2
-5
14
8
2
5
14
9
-2
5
14
10
-2
-5
14
Vertex numbers of the 2 corresponding convex polytopes
1 1 2 3 4 5
2 6 7 8 9 10
Vertex coordinates of non-convex polytope 5
N
x
y
z
1
0
0
0
2
3
0
0
3
3
-4
0
4
3
-4
5
5
0
0
5
6
3
0
5
7
3
0
3
8
0
4
3
9
0
4
9
10
3
0
9
11
0
0
9
12
0
0
3
Vertex numbers of the 2 corresponding convex polytopes
1 1 2 3 4 5 6
2 7 8 9 10 11 12
Vertex coordinates of non-convex polytope 6
N
x
y
z
1
0
0
0
2
4
0
0
3
4
0
16
4
0
0
16
5
0
1
0
6
4
1
0
7
4
1
16
8
0
1
16
9
0
18
16
10
4
18
16
11
4
18
0
12
0
18
0
13
0
17
16
14
4
17
16
15
4
17
0
16
0
17
0
17
4
0
2
18
4
18
2
19
0
18
2
20
0
0
2
21
4
0
14
22
4
18
14
Vertex numbers of the 4 corresponding convex polytopes
1
2
3
4
1
9
17
21
2
10
18
22
3
11
19
23
4
12
20
24
5
13
1
3
6
14
2
4
7
15
11
9
8
16
12
10
Vertex coordinates of non-convex polytope 7
N
x
y
z
1
3
0
0
2
3
4
0
3
0
4
0
4
3
0
10
5
3
4
10
6
0
4
10
7
5
0
8
8
5
4
8
9
5
4
4
10
5
0
4
11
3
0
8
12
3
4
8
13
3
4
4
14
3
0
4
15
2
4
6
16
2
4
10
17
1
9
8
18
0
4
6
Vertex numbers of the 4 corresponding convex polytopes
1
2
3
4
1
7
15
19
2
8
16
20
3
9
17
21
4
10
18
22
5 6
11 12 13 14
6
3
Vertex coordinates of non-convex polytope 8
N
x
y
z
1
0
0
0
2
12
0
8
3
-8
8
8
4
-8
-8
8
5
0
-4
12
6
0
4
12
7
-4
0
12
Vertex numbers of the 4 corresponding convex polytopes
1
2
3
4
1
1
1
1
5
4
2
3
6
5
5
6
7
7
6
7
31
19
2
4
4
20
0
4
4
21
2
4
0
22
1
8
2
23
0
18
14
24
0
0
14
Vertex coordinates of non-convex polytope 9
N
x
y
z
1
0
0
0
2
12
0
-8
3
-8
8
-8
4
-8
-8
-8
5
0
-4
-12
6
0
4
-12
7
-4
0
-12
Vertex numbers of the 4 corresponding convex polytopes
1
2
3
4
1
1
1
1
5
4
2
3
6
5
5
6
7
7
6
7
Vertex coordinates of non-convex polytope 10
N
x
y
z
1
0
0
0
2
0
-4
4
3
0
4
4
4
16
0
16
5
-16
0
16
Vertex numbers of the 2 corresponding convex polytopes
1 1 2 3 4
2 1 2 3 5
32
© Copyright 2026 Paperzz