toulbar2
Preprocessing techniques

Depending on toulbar2 options, the sequence of preprocessing techniques applied before the search is:

  1. i-bounded variable elimination with user-defined i bound
  2. pairwise decomposition of cost functions (binary cost functions are implicitly decomposed by soft AC and empty cost function removals)
  3. MinSumDiffusion propagation (see VAC)
  4. projects&substracts n-ary cost functions in extension on all the binary cost functions inside their scope (3 < n < max, see toulbar2 options)
  5. functional variable elimination (see Variable elimination)
  6. projects&substracts ternary cost functions in extension on their three binary cost functions inside their scope (before that, extends the existing binary cost functions to the ternary cost function and applies pairwise decomposition)
  7. creates new ternary cost functions for all triangles (ie occurences of three binary cost functions xy, yz, zx)
  8. removes empty cost functions while repeating #1 and #2 until no new cost functions can be removed
Note
the propagation loop is called after each preprocessing technique (see WCSP::propagate)