pub type DefaultBrancher = AutonomousSearch<IndependentVariableValueBrancher<DomainId, RandomSelector, RandomSplitter>>;Expand description
A brancher which makes use of VSIDS [1] and solution-based phase saving (both adapted for CP).
If VSIDS does not contain any (unfixed) predicates then it will default to the
IndependentVariableValueBrancher using RandomSelector for variable selection
(over the variables in the order in which they were defined) and RandomSplitter for
value selection.
§Bibliography
[1] M. W. Moskewicz, C. F. Madigan, Y. Zhao, L. Zhang, and S. Malik, ‘Chaff: Engineering an efficient SAT solver’, in Proceedings of the 38th annual Design Automation Conference, 2001.
[2] E. Demirović, G. Chu, and P. J. Stuckey, ‘Solution-based phase saving for CP: A value-selection heuristic to simulate local search behavior in complete solvers’, in the proceedings of the Principles and Practice of Constraint Programming (CP 2018).
Aliased Type§
pub struct DefaultBrancher { /* private fields */ }Implementations§
Source§impl DefaultBrancher
impl DefaultBrancher
Sourcepub fn default_over_all_variables(assignments: &Assignments) -> DefaultBrancher
pub fn default_over_all_variables(assignments: &Assignments) -> DefaultBrancher
Creates a new instance with default values for
the parameters (1.0 for the increment, 1e100 for the max threshold,
0.95 for the decay factor and 0.0 for the initial VSIDS value).
If there are no more predicates left to select, this Brancher switches to
RandomSelector with RandomSplitter.