# Project : coprin

## Section: New Results

### Distance constraints

#### Linearisation and global filtering for numerical constraint systems

Keywords : safe linearisations, constraint programming, interval analysis, numerical robustness, systems solving, constraint satisfaction problems (CSP).

Participants : Yahia Lebbah, Claude Michel, Michel Rueher.

The purpose of our research is to introduce and to study a new branch and
bound algorithm
called `QuadSolver`.
The essential feature of this algorithm is a global constraint (called
`Quad`)
that works
on a tight and safe linear relaxation of the polynomial relations of the
constraint systems.
More precisely, `QuadSolver` is a branch and prune algorithm that
combines `Quad`,
local consistencies and interval methods [42][41][40][24].

`QuadSolver` has been evaluated on a variety of benchmarks from
kinematics,
mechanics and robotics.
On these benchmarks, it outperforms classical interval methods as well as CSP
solvers
and it compares well with state-of-the-art optimization solvers.

The relaxation of nonlinear terms is adapted from the classical the
``Reformulation-Linearisation Technique (RLT)'' linearisation method.
The simplex algorithm is used to narrow the domain of each variable
with respect to the subset of the linear set of constraints generated
by the relaxation process.
The coefficients of these linear constraints are updated with
the new values of the bounds of the domains and the process is restarted until
no more significant reduction can be done.
We have demonstrated that the Quad algorithm yields a more effective pruning
of the domains than local consistency filtering algorithms (e.g.,
2B-consistency or box-consistency).
Indeed, the drawback of classical local consistencies comes from the fact
that the constraints are handled independently and in a blind way.
For example, when dealing with quadratic constraints, classical local
consistencies
do not exploit the semantic of quadratic term; for reducing the domains of the
variables.
Conversely, linear programming techniques do capture most of the semantics of
nonlinear terms (e.g., convex and concave envelopes of these particular
terms).
The extension of `Quad` for handling any polynomial constraint
system requires
to replace non-quadratic terms by new variables and to add the corresponding
identities
to the initial constraint system.
However, a complete quadrification would generate a huge number of linear
constraints.
We have introduced a heuristics based on a good trade-off between a tight
approximation
of the non linear terms and the size of the generated constraint system.

A safe rounding process is a key issue for the `Quad` framework.
The simplex algorithm is used to narrow the domain of each variable
with respect to the subset of the linear set of constraints generated by
the relaxation process but most implementations of the simplex algorithm
are numerically unsafe. Moreover, the coefficients of the generated linear
constraints are computed with floating point numbers.
So, two problems may occur in the `Quad`-filtering process:

the whole linearisation may become incorrect due to rounding errors when computing the coefficients of the generated linear constraints ;

some solutions may be lost when computing the bounds of the domains of the variables with the simplex algorithm.

We propose a safe procedure for computing the coefficients of the generated
linear constraints.
The second problem has recently been addressed by Neumaier and
Shcherbina [44]
which have proposed a simple and cheap procedure to get a rigorous upper bound
of the objective function.
The incorporation of these procedures in the `Quad`-filtering
process allows us
to call the simplex algorithm without worrying about possible lost
solutions due to numerical round-off errors.

#### A global filtering for solving distance constraints

Keywords : distance equations, local constraints, semantic properties.

Participants : Heikel Batnini, Michel Rueher.

Most of the methods for solving constraints on variables with interval domains are based on a branch and prune technique; basically a combination of local consistencies and bisection. We propose a global pruning method and a strategy for splitting the domains of the variables :

In [18], we have introduced a global filtering algorithm for handling
systems of distance relations. This new method, named
`QuadDist` is derived from `Quad`, a global filtering
algorithm for handling systems of quadratic equations and
inequalities.
`Quad` computes a tight linear relaxation of the terms of the
quadratic equations and uses the simplex algorithm to reduce the
domains of the variables.
We propose a new linear approximation for handling distance relations.
The key point of this new method is that the approximations are not
generated for each quadratic terms but for each distance constraint.
Thus, `QuadDist` defines a tighter approximation than `Quad`
without the need to generate any additional variables.
Experimental results are very promising.

In [10], we proposed a strategy, named `SDD` (Semantic
Domain Decomposition), for choosing splitting points in the domains of
the variables.
These choices are defined by the monotonicity and convexity properties
of the distance constraints and by the topology of the local solution
spaces.
Experimental results show that this heuristic improves the
performances of the classical branching algorithm.