A nonempty set of points in a Euclidean space is called a (convex) cone if
whenever
and
. A cone
is polyhedral if
A short definition of a polyhedra may be a finitely generated convex cone but in fact we are talking about the geometric representation of a list of constraints provided as a linear system of equations and inequalities.
Hence, a set of vectors in
is called a (convex)
polyhedron if:
For a set of vectors
, if a vector
does not
belong to the cone generated by these vectors, then there exists a
hyperplane separating
from from
. This
result has also been formulated in the Farkas' lemma. A
variant of this result is the following:
In Polylib the decomposition theorem is extensively used (in
its extended form for polyhedra). A polyhedron can be
represented by a set of inequalities (usually, implicit equalities are
represented in a separate matrix):
, this
representation is called implicit. From the Minkovski
characterization, we know that
has a dual representation, called
the parametric representation.
Hence, each point of can be expressed as a sum of:
Although the polyhedra theory cannot be detailed here, we review a set of important concepts that are used when manipulating polyhedra. For a more precise description, please refer to [SCH86,Wil93].
Sometimes the characteristic cone is called the recession
cone of . If
, with
a polytope an
a polyhedral cone,
then
.
A alternative description of a face is the nonempty subset :
The faces of dimension ,
,
and
are called the
vertices, edges, ridges and facets, respectively. The
vertices coincide with the extremal points of the polyhedron, that
are also defined as points which cannot be represented as convex
combinations of two other points in the polyhedron. When an edge
is not bounded, there are two cases: either it is a line or a
half-line starting from a vertex. A half-line edge is called an
extremal ray.
Polylib implements procedures to compute, from one
representation of a polyhedron (implicit of parametric), its
dual representation of
, given the implicit on. The algorithms
was proposed by Chernikova [Che65] which rediscovered
the double description representation introduced by Motzkin.
Important improvements were made in the conversion process between
these representations by Fernandez [FQ88] and Le
Verge [Le 92].
Based on this kernel algorithm, Polylib propose many computational function on polyhedra. More precisely, Polylib manipulates domains which are finite unions of polyhedra 3.1.
Polylib manipulates mixed inhomogeneous system of
equations. The terms inhomogeneous stands for the fact that it
manipulates objects of an affine space (not a linear space). To
transform the inhomogeneous affine space of dimension into an
homogeneous linear space of dimension
, we use the following
mapping:
In the internal representation of Polylib, object manipulated are cones (the Chernikova algorithm works on cones), but this is transparent for the user which naturally manipulates polyhedra (or union of polyhedra). As many Polylib functions refer to domain, we precisely define what a domain is:
![]() |
(3.1) |