## Constraint solving system and extensions

### The CHOCO library

In 1999, the OCRE project was initiated by people from École des Mines of Nantes, from ONERA in Toulouse, from Montpellier University, from INRA in Toulouse and from the private laboratory e-lab of the Bouygues group. The goal of this project is to provide to the constraint programming community an experimental platform involving tools, algorithms, examples and testbeds.

CHOCO is initially the kernel of the OCRE platform: a Java library provides the basic foundations of a constraint system such as variables and their domains, constraints, propagation and tree search.

CHOCO is distributed under the BSD licence scheme allowing both an academic as well as a commercial use.

### The IBEX/QUIMPER library

IBEX is a software designed for the engineers/scientists that
want to resort to *set-membership* methods to get
reliable solutions of problems expressed with numerical constraints
(global optimization, systems of equations, model inversion, etc.). *Reliability*
means that any form of uncertainty can be taken into account, would it
come from floating-point representation of numbers, round-off errors,
linearization truncatures, model uncertainties, measurements noises,
etc. The answer supplied by the solver must be compatible with all
these aspects of uncertainty.

IBEX is a free C++ library under the GPL licence. The main
feature is its ability to build solver/paver strategies declaratively
through the *contractor programming* paradigm.
The high-level QUIMPER language is an implementation of this paradigm.
Hence, IBEX comes with a compiler of the QUIMPER language as well as
several graphical tools dedicated to end users which take QUIMPER files
as input (executables named qPave, qTraj, qSolve).

Algorithms in IBEX combine constraint propagation and interval methods. This combination is known to be very efficient for performing reliable numerics in a error-bounded context.

IBEX/Quimper has today around thirty regular academic users from different French universities and institutes (I3S at Nice, UTC at Compiègne, ENSIETA at Brest, LIRMM at Montpellier or IMS at Bordeaux,...).

### global constraints library

We develop and integrate new global constraints in CHOCO:
classical constraints from the research community that show up in a lot
of applications (`alldifferent, global cardinality, regular,`
etc.), as well as constraints from our research activities (`tree,
geost, multi-cost regular,` etc.).

### VISEXP: a visualisation library for explanations

In the context of the RNTL OADYMPPAC project the Contraintes team developed a tool to visualize explanations. This tool takes as input the generic trace produced by the execution of a constraint program. VISEXP uses the functionalities of VISADJ which is a tool to visualize a matrix developed within Ecole des Mines of Nantes by the Modeling and Interactive Design team.

### Constraints learning

In the context of the constraint learning platform of LIRMM
laboratory from Montpellier, we developed within CHOCO (in
collaboration with Christian Bessière and Remi Coletta) a
learning algorithm that, from a set of ground instances, learn implied
global constraints. While being completely generic, the prototype is
focussed on learning `global_cardinality`-like
constraints.