The ic solver library implements two kinds of constraints
finite domain constraints
interval constraints
Each constraint is handled separately and individually, and the only
communication between them is via the bounds on their shared
variables.
The benefits of the ic solvers are
the repeated tightening of guaranteed upper and lower bounds on the
variables
the application of tailored algorithms to standard subproblems
(encapsulated as global constraints)
the implementation of a very wide class of constraints
The eplex solver library implements two kinds of constraints
linear numeric constraints
integrality constraints
The linear constraints are handled by a very powerful solver that
enforces global consistency on all the constraints.
The integrality constraints are handled via a built-in search
mechanism.
The benefits of the eplex solvers are
the enforcement of global consistency for linear constraints
the production of an optimal solution satisfying the linear constraints
For some years researchers have sought to characterise the classes of
problems for which the different solvers are best suited.
Problems involving only linear constraints are very well handled by
eplex.
Problems involving disjunctions of constraints are often best
handled by ic.
Often set covering problems are best handled by eplex and
scheduling problems by ic.
However in general there is no method to recognise for a new problem
which solver is best.
Luckily in ECLiPSe there is no need to choose a specific solver for each
problem, since it is possible to apply both solvers. Moreover the
solvers communicate with each other, thus further speeding up constraint
solving.
The ic solver communicates new tightened bounds to the
eplex solver. These tightened bounds have typically been deduced
from non-linear constraints and thus the linear solver benefits from
information which would not otherwise have been available to it.
On the other hand the eplex solver often detects inconsistencies
which would not have been detected by the ic solvers. Moreover
it returns a bound on the optimisation function which can be used by
the ic constraints.
Finally the optimal solution returned by eplex to the
“relaxed” problem
comprising just the linear constraints, can be used as a
search heuristic that can focus the ic solver on the most
promising parts of the search space.
There are two main reasons for combining eplex and ic in
a hybrid algorithm
ic handles a wider class of constraints than eplex
The solvers extract
different kinds of information from the constraints