next up previous index
Next: FDPLEX Predicates Up: FDPLEX: A Hybrid Finite Previous: Usage   Index

Functionality

The library redefines minimize/2, min_max/2, indomain/1 and labeling/1 with versions that setup and trigger the simplex solver (on the relaxed floating-point problem) in appropriate places. In more detail:

1.
At the beginning of minimize/2 or min_max/2, the finite-domain constraint store is scanned, an LP-relaxation is extracted, a corresponding LP-solver is set up and the relaxation is solved once.
2.
Then the normal FD branch-and-bound procedure is started, using the user-supplied labeling routine.
3.
The modified version of indomain/1 employs a value-selection strategy based on the solution of the LP-relaxation: The variable is first labeled with the integer which is closest to the floating-point solution. On backtracking, the rest of the domain is tried.
4.
Variable instantiation (or, optionally, interval narrowing) can trigger the LP-solver: When a variable takes a value that is not close enough to the solution of the relaxation (or, optionally, when the narrowed interval excludes the solution of the relaxation), the solver is re-invoked. It computes a new solution, taking into account the current variable values and bounds.

The benefits from solver cooperation are:


next up previous index
Next: FDPLEX Predicates Up: FDPLEX: A Hybrid Finite Previous: Usage   Index

1999-08-06