7.5 Hybridisation Support
7.5.1 Repair and Local Search: repair
The repair library allows a tentative value to be
associated with any variable [28].
This tentative value may violate constraints on the variable, in which
case the constraint is recorded in a list of violated constraints.
The repair library also supports propagation invariants
[18].
Using invariants, if a variable's tentative
value is changed, the consequences of this change can be propagated to
any variables whose tentative values depend on the changed one.
The use of tentative values in search is illustrated in chapter 13.
7.5.2 Hybrid: ic_probing_for_scheduling
For scheduling applications where the cost is dependent on each start
time, a combination of solvers can be very powerful.
For example, we can use finite domain
propagation to reason on
resources and linear constraint solving to reason on cost [7].
The probing_for_scheduling library supports such a combination,
via a similar user interface to the cumulative constraint mentioned
above in section 7.2.3.
For more details see chapter 17.