|
Features
SCIP has the following features:
- It is a framework for branching, cutting, pricing, and propagation.
- It is highly flexible through many possible user plugins:
- constraint handlers to implement arbitrary constraints,
- variable pricers to dynamically create problem variables,
- domain propagators to apply constraint independent propagations on the variables' domains,
- cut separators to apply cutting planes on the LP relaxation,
- relaxators to provide relaxations and dual bounds in addition to the LP relaxation,
- primal heuristics to search for feasible
solutions with specific support for probing and
diving,
- node selectors to guide the search,
- branching rules to split the problem into subproblems,
- presolvers to simplify the solved problem,
- file readers to parse different input file formats,
- event handlers to be informed on specific
events, e.g., when a node was solved, a specific
variable changed its bounds, or a new primal solution was found,
- display handlers to create additional columns in the solver's output.
- dialog handlers to extend the included command shell.
- Every existing unit is implemented as a plugin,
leading to an interface flexible enough to meet the
needs of most additional user extensions.
- A dynamic cut pool management is included.
- The user may mix preprocessed and active problem
variables in expressions: they are automatically transformed
to corresponding active problem variables.
-
Arbitrarily many children per node can be created, and the
different children can be arbitrarily defined.
- It has an open LP solver support. It currently supports:
- The LP relaxation need not to be solved at every single
node (it can even be turned off completely, mimicing a pure
constraint solver).
-
Additional relaxations (e.g., semidefinite relaxations or
Lagrangian relaxations) can be included, working in parallel
or interleaved.
- Conflict analysis can be applied
to learn from infeasible subproblems.
- Dynamic memory management reduces the number of operation
system calls with automatic memory leakage detection in debug
mode.
|