2.4. Legal placement methods The Nesting Problem
constitutes 115000 lines of code (see Section 2.6).
In 1998 Dowsland et al. [23] introduce a new idea, jostling for position. They use a standard
bottom left placement algorithm with hole filling for their first placement. Then they sort the
stencils in decreasing order using their right-most x-coordinates in the placement. A new
placement is then made using a right-sided variant of the placement algorithm. This process is
repeated for a fixed number of iterations (this is the jostling). In addition to NFPs, all polygons
are split into x-convex subparts to speed up calculations. Any horizontal line through an x-
convex polygon crosses at most two edges. Dowsland et al. emphasize that their algorithm is
intended for situations where computation time is strictly limited, but exceeds the time needed
for a single pass placement. A test instance with 43 stencils takes around 30 seconds for 19
jostles on a Pentium 166 MHz.
Time is not the main consideration in an algorithm described by Oliveira et al. [51] (2000).
Their placement algorithm TOPOS (a Portuguese acronym) is actually 126 different algo-
rithms. The basic algorithm is a leftmost placement without hole filling. The sequence of
stencils is either based on some initial sorting scheme (length, area, convexity, ...) or is deter-
mined iteratively by which stencil would result in the best partial solution in the placement
according to some measure of best fit. Five test instances are used in the experiments on a
Pentium Pro 200 MHz. Only the best results are presented, but average execution times are
also given. The test instance from the jostle algorithm is also tested (it was actually created
by Oliveira et al.). The length is about 4% worse and it has taken 34.6 seconds to find. But
this is not quite true since this is only the time used by 1 out of 126 algorithms. Using the
average execution times the real amount of time used is more like 45 minutes. Even though
Oliveira et al. has done a lot of work to be able to evaluate the efficiency of different strategies,
the small amount of test instances limit the conclusions to be made. In their own words: “the
geometric properties of the pieces to place [...] have a crucial influence on the results obtained
by different variants of the algorithm”.
Recently Gomes and Oliveira [34] continued their work. Now the focus is on changing the
order in the sequence of stencils used for the placement algorithm. The placement algorithm
is a greedy bottom-left heuristic with hole filling. The sequence of stencils is changed by
2-exchanges i.e. by swapping two stencils in the sequence used for the placement algorithm.
Different neighborhoods are defined that limit the number of possible 2-exchanges and different
search strategies are also defined (first better, best and random better). They are all local search
variants and include no hill climbing. Again all combinations are attempted on 5 test instances
and they obtain most of the best published solutions, but the computation times are now even
worse than before. The above mentioned data instance takes more than 10 minutes for the best
solution produced (Pentium III 450 MHz). Other instances take hours for the best solution
and days if all search variants (63) are included in the computation time.
The above article is one of the few addressing the problem of limited freedom of rotation
when using NFPs, but they simply claim: “Fortunately, in real cases the admissible orientations
are limited to a few possibilities due to technological constraints (drawing patterns, material
resistance, etc.)”. This is obviously not true for a lot of real world problems e.g. in metal sheet
cutting (although rotation can be limited in this industry as well). Even the textile industry
allows a small (but continuous) amount of rotation as already noted by Art back in 1966.
In the same journal issue a much faster algorithm is presented by Dowsland et al. [24]. This
is also a bottom-left placement heuristic with hole filling using NFPs. Experiments are done
on a 200 MHz Pentium and solutions are on average found in about 1 minute depending on
various criteria. The quality of the solutions can be quite good, but they cannot compete with
16