Skip to main content

Module branching

Module branching 

Source
Expand description

Contains structures and traits to define the decision making procedure of the Solver.

In general, it provides 3 traits:

A Brancher is expected to be passed to Solver::satisfy, and Solver::optimise:

[1] F. Rossi, P. Van Beek, and T. Walsh, Handbook of constraint programming. Elsevier, 2006.

Modules§

branchers
Provides several implementations of Branchers.
tie_breaking
Contains structures for tie-breaking.
value_selection
Provides the ValueSelector trait which is required for value selectors to implement; the main method in this trait relies on ValueSelector::select_value.
variable_selection
Provides the VariableSelector trait which is required for variable selectors to implement; the main method in this trait relies on VariableSelector::select_variable.

Structs§

SelectionContext
The context provided to the Brancher, it allows the retrieval of domain values of variables and access to methods from a Random generator.

Enums§

BrancherEvent
The events which can occur for a Brancher. Used for returning which events are relevant in Brancher::subscribe_to_events, VariableSelector::subscribe_to_events, and ValueSelector::subscribe_to_events.

Traits§

Brancher
A trait for definining a branching strategy (oftentimes utilising a VariableSelector and a ValueSelector).