Constraint Programming

Constraint programming is a programming paradigm that differs from both the problem to be addressed, formalized as a set of variables used in a domain and a set of constraints, and also the method of resolution which propagates the constraints on variables during the exploration of space of candidates, in order to reduce areas associated with variables.

This method allows to solve large combinatorial problems. It is particularly well adapted to the planning and scheduling problems. Depending on the problem, the goal may be:

Application to air traffic management

The ATM domain has many planning or scheduling problems.

Here are some examples:

Work in MAIAA

Our research on constraint programming focuses on the modeling of air traffic problems, and the definition of effective heuristics adapted to these problems.

FaCiLe: a PPC library in Ocaml

We have developed a library of constraint programming for whole areas of finite dimension. This library provides all the usual opportunities to create and manipulate finite domain variables, arithmetic and espressions of constraints, including non-linear.

Programmed with the functional language Ocaml, FaCiLe allows the user to easily specify the variables, domains, constraints and objectives, through high-level primitives.

The code is available as Debian package(libfacile-ocaml-dev). By default, the installation is in the directory /usr/lib/ocaml/facile/).

See the online documentation