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) |