Cylindrical algebraic decomposition is a general method that produces
a cylindrical decomposition in the same sense considered in Section
6.3.2 for polygons in
and also the decomposition
in Section 6.3.4 for the line-segment robot. It is also
referred to as Collins decomposition after its original
developer [40,232,233]. The decomposition in Figure
6.19 can even be considered as a cylindrical algebraic
decomposition for a semi-algebraic set in which every geometric
primitive is a linear polynomial. In this section, such a
decomposition is generalized to any semi-algebraic set in
.
The idea is to develop a sequence of projections that drops the
dimension of the semi-algebraic set by one each time. Initially, the
set is defined over
, and after one projection, a
semi-algebraic set is obtained in
. Eventually, the
projection reaches
, and a univariate polynomial is obtained for
which the zeros are at the critical places where cell boundaries need
to be formed. A cell decomposition of
-cells (intervals) and
0-cells is formed by partitioning
. The sequence is then
reversed, and decompositions are formed from
up to
.
Each iteration starts with a cell decomposition in
and lifts
it to obtain a cylinder of cells in
. Figure
6.35 shows how the decomposition looks for the
gingerbread example; since
, it only involves one projection and
one lifting.