Section: Scientific Foundations

Constraint Solving Techniques

Constraint propagation algorithms use constraints actively during search for filtering the domains of variables and reducing the search space. These domain reductions are the only way constraints communicate between each other. Our research involves different constraint domains, namely:

  • booleans: binary decision diagrams and SAT solvers;

  • finite domains (bounded natural numbers): membership, arithmetic, reified [20] , higher order and global constraints;

  • reals: polyhedral libraries for linear constraints and interval methods;

  • terms: subtyping constraints;

  • graphs: subgraph epimorphism (SEPI) and isomorphism constraints; acyclicity constraint;

  • Petri nets: P/T-invariants [5] , siphons and traps [10] ;

  • Kripke structures: temporal logic constraints (first-order Computation Tree Logic constraints over the reals).

We develop new constraints and domain filtering algorithms by using already existing constraint solving algorithms and implementations. For instance, we use the Parma Polyhedra Library PPL with its interface with Prolog for solving temporal logic constraints over the reals. Similarly, we use standard finite domain constraints for developing solvers for the new SEPI graph constraint.