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:
The ATM domain has many planning or scheduling problems.
Here are some examples:
Our research on constraint programming focuses on the modeling of air traffic problems, and the definition of effective heuristics adapted to these problems.
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