pub struct DomainId { /* private fields */ }Expand description
A structure which represents the most basic IntegerVariable; it is simply the id which links
to a domain (hence the name).
Implementations§
Trait Implementations§
Source§impl IntegerVariable for DomainId
impl IntegerVariable for DomainId
type AffineView = AffineView<DomainId>
Source§fn lower_bound(&self, assignment: &Assignments) -> i32
fn lower_bound(&self, assignment: &Assignments) -> i32
Get the lower bound of the variable.
Source§fn lower_bound_at_trail_position(
&self,
assignment: &Assignments,
trail_position: usize,
) -> i32
fn lower_bound_at_trail_position( &self, assignment: &Assignments, trail_position: usize, ) -> i32
Get the lower bound of the variable at the given trail position.
Source§fn upper_bound(&self, assignment: &Assignments) -> i32
fn upper_bound(&self, assignment: &Assignments) -> i32
Get the upper bound of the variable.
Source§fn upper_bound_at_trail_position(
&self,
assignment: &Assignments,
trail_position: usize,
) -> i32
fn upper_bound_at_trail_position( &self, assignment: &Assignments, trail_position: usize, ) -> i32
Get the upper bound of the variable at the given trail position.
Source§fn contains(&self, assignment: &Assignments, value: i32) -> bool
fn contains(&self, assignment: &Assignments, value: i32) -> bool
Determine whether the value is in the domain of this variable.
Source§fn contains_at_trail_position(
&self,
assignment: &Assignments,
value: i32,
trail_position: usize,
) -> bool
fn contains_at_trail_position( &self, assignment: &Assignments, value: i32, trail_position: usize, ) -> bool
Determine whether the value is in the domain of this variable at the given trail position.
Source§fn iterate_domain(&self, assignment: &Assignments) -> impl Iterator<Item = i32>
fn iterate_domain(&self, assignment: &Assignments) -> impl Iterator<Item = i32>
Iterate over the values of the domain.
Source§fn watch_all(&self, watchers: &mut Watchers<'_>, events: EnumSet<DomainEvent>)
fn watch_all(&self, watchers: &mut Watchers<'_>, events: EnumSet<DomainEvent>)
Register a watch for this variable on the given domain events.
fn watch_all_backtrack( &self, watchers: &mut Watchers<'_>, events: EnumSet<DomainEvent>, )
Source§fn unpack_event(&self, event: OpaqueDomainEvent) -> DomainEvent
fn unpack_event(&self, event: OpaqueDomainEvent) -> DomainEvent
Decode a domain event for this variable.
Source§fn get_holes_on_current_decision_level(
&self,
assignments: &Assignments,
) -> impl Iterator<Item = i32>
fn get_holes_on_current_decision_level( &self, assignments: &Assignments, ) -> impl Iterator<Item = i32>
Returns all of the holes in the domain which were created at the current decision level
Source§impl PredicateConstructor for DomainId
impl PredicateConstructor for DomainId
Source§fn equality_predicate(
&self,
bound: <DomainId as PredicateConstructor>::Value,
) -> Predicate
fn equality_predicate( &self, bound: <DomainId as PredicateConstructor>::Value, ) -> Predicate
Creates an equality predicate (e.g.
[x == v]).Source§fn lower_bound_predicate(
&self,
bound: <DomainId as PredicateConstructor>::Value,
) -> Predicate
fn lower_bound_predicate( &self, bound: <DomainId as PredicateConstructor>::Value, ) -> Predicate
Creates a lower-bound predicate (e.g.
[x >= v]).Source§fn upper_bound_predicate(
&self,
bound: <DomainId as PredicateConstructor>::Value,
) -> Predicate
fn upper_bound_predicate( &self, bound: <DomainId as PredicateConstructor>::Value, ) -> Predicate
Creates an upper-bound predicate (e.g.
[x <= v]).Source§fn disequality_predicate(
&self,
bound: <DomainId as PredicateConstructor>::Value,
) -> Predicate
fn disequality_predicate( &self, bound: <DomainId as PredicateConstructor>::Value, ) -> Predicate
Creates a disequality predicate (e.g.
[x != v]).Source§impl StorageKey for DomainId
impl StorageKey for DomainId
Source§impl TransformableVariable<AffineView<DomainId>> for DomainId
impl TransformableVariable<AffineView<DomainId>> for DomainId
Source§impl ValueSelector<DomainId> for InDomainInterval
impl ValueSelector<DomainId> for InDomainInterval
Source§fn select_value(
&mut self,
context: &mut SelectionContext<'_>,
decision_variable: DomainId,
) -> Predicate
fn select_value( &mut self, context: &mut SelectionContext<'_>, decision_variable: DomainId, ) -> Predicate
Determines which value in the domain of
decision_variable to branch next on.
The domain of the decision_variable variable should have at least 2 values in it (as it
otherwise should not have been selected as decision_variable). Returns a
Predicate specifying the required change in the domain.Source§fn subscribe_to_events(&self) -> Vec<BrancherEvent>
fn subscribe_to_events(&self) -> Vec<BrancherEvent>
Source§fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
A function which is called after a
DomainId is unassigned during backtracking (i.e. when
it was fixed but is no longer), specifically, it provides variable which is the
DomainId which has been reset and value which is the value to which the variable was
previously fixed. This method could thus be called multiple times in a single
backtracking operation by the solver. Read moreSource§fn on_solution(&mut self, _solution: SolutionReference<'_>)
fn on_solution(&mut self, _solution: SolutionReference<'_>)
This method is called when a solution is found; either when iterating over all solutions in
the case of a satisfiable problem or on solutions of increasing quality when solving an
optimisation problem. Read more
Source§fn is_restart_pointless(&mut self) -> bool
fn is_restart_pointless(&mut self) -> bool
This method returns whether a restart is currently pointless for the
ValueSelector. Read moreSource§impl ValueSelector<DomainId> for InDomainRandom
impl ValueSelector<DomainId> for InDomainRandom
Source§fn select_value(
&mut self,
context: &mut SelectionContext<'_>,
decision_variable: DomainId,
) -> Predicate
fn select_value( &mut self, context: &mut SelectionContext<'_>, decision_variable: DomainId, ) -> Predicate
Determines which value in the domain of
decision_variable to branch next on.
The domain of the decision_variable variable should have at least 2 values in it (as it
otherwise should not have been selected as decision_variable). Returns a
Predicate specifying the required change in the domain.Source§fn is_restart_pointless(&mut self) -> bool
fn is_restart_pointless(&mut self) -> bool
This method returns whether a restart is currently pointless for the
ValueSelector. Read moreSource§fn subscribe_to_events(&self) -> Vec<BrancherEvent>
fn subscribe_to_events(&self) -> Vec<BrancherEvent>
Source§fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
A function which is called after a
DomainId is unassigned during backtracking (i.e. when
it was fixed but is no longer), specifically, it provides variable which is the
DomainId which has been reset and value which is the value to which the variable was
previously fixed. This method could thus be called multiple times in a single
backtracking operation by the solver. Read moreSource§fn on_solution(&mut self, _solution: SolutionReference<'_>)
fn on_solution(&mut self, _solution: SolutionReference<'_>)
This method is called when a solution is found; either when iterating over all solutions in
the case of a satisfiable problem or on solutions of increasing quality when solving an
optimisation problem. Read more
Source§impl ValueSelector<DomainId> for InDomainSplitRandom
impl ValueSelector<DomainId> for InDomainSplitRandom
Source§fn select_value(
&mut self,
context: &mut SelectionContext<'_>,
decision_variable: DomainId,
) -> Predicate
fn select_value( &mut self, context: &mut SelectionContext<'_>, decision_variable: DomainId, ) -> Predicate
Determines which value in the domain of
decision_variable to branch next on.
The domain of the decision_variable variable should have at least 2 values in it (as it
otherwise should not have been selected as decision_variable). Returns a
Predicate specifying the required change in the domain.Source§fn is_restart_pointless(&mut self) -> bool
fn is_restart_pointless(&mut self) -> bool
This method returns whether a restart is currently pointless for the
ValueSelector. Read moreSource§fn subscribe_to_events(&self) -> Vec<BrancherEvent>
fn subscribe_to_events(&self) -> Vec<BrancherEvent>
Source§fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
A function which is called after a
DomainId is unassigned during backtracking (i.e. when
it was fixed but is no longer), specifically, it provides variable which is the
DomainId which has been reset and value which is the value to which the variable was
previously fixed. This method could thus be called multiple times in a single
backtracking operation by the solver. Read moreSource§fn on_solution(&mut self, _solution: SolutionReference<'_>)
fn on_solution(&mut self, _solution: SolutionReference<'_>)
This method is called when a solution is found; either when iterating over all solutions in
the case of a satisfiable problem or on solutions of increasing quality when solving an
optimisation problem. Read more
Source§impl ValueSelector<DomainId> for OutDomainMax
impl ValueSelector<DomainId> for OutDomainMax
Source§fn select_value(
&mut self,
context: &mut SelectionContext<'_>,
decision_variable: DomainId,
) -> Predicate
fn select_value( &mut self, context: &mut SelectionContext<'_>, decision_variable: DomainId, ) -> Predicate
Determines which value in the domain of
decision_variable to branch next on.
The domain of the decision_variable variable should have at least 2 values in it (as it
otherwise should not have been selected as decision_variable). Returns a
Predicate specifying the required change in the domain.Source§fn subscribe_to_events(&self) -> Vec<BrancherEvent>
fn subscribe_to_events(&self) -> Vec<BrancherEvent>
Source§fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
A function which is called after a
DomainId is unassigned during backtracking (i.e. when
it was fixed but is no longer), specifically, it provides variable which is the
DomainId which has been reset and value which is the value to which the variable was
previously fixed. This method could thus be called multiple times in a single
backtracking operation by the solver. Read moreSource§fn on_solution(&mut self, _solution: SolutionReference<'_>)
fn on_solution(&mut self, _solution: SolutionReference<'_>)
This method is called when a solution is found; either when iterating over all solutions in
the case of a satisfiable problem or on solutions of increasing quality when solving an
optimisation problem. Read more
Source§fn is_restart_pointless(&mut self) -> bool
fn is_restart_pointless(&mut self) -> bool
This method returns whether a restart is currently pointless for the
ValueSelector. Read moreSource§impl ValueSelector<DomainId> for OutDomainMedian
impl ValueSelector<DomainId> for OutDomainMedian
Source§fn select_value(
&mut self,
context: &mut SelectionContext<'_>,
decision_variable: DomainId,
) -> Predicate
fn select_value( &mut self, context: &mut SelectionContext<'_>, decision_variable: DomainId, ) -> Predicate
Determines which value in the domain of
decision_variable to branch next on.
The domain of the decision_variable variable should have at least 2 values in it (as it
otherwise should not have been selected as decision_variable). Returns a
Predicate specifying the required change in the domain.Source§fn subscribe_to_events(&self) -> Vec<BrancherEvent>
fn subscribe_to_events(&self) -> Vec<BrancherEvent>
Source§fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
A function which is called after a
DomainId is unassigned during backtracking (i.e. when
it was fixed but is no longer), specifically, it provides variable which is the
DomainId which has been reset and value which is the value to which the variable was
previously fixed. This method could thus be called multiple times in a single
backtracking operation by the solver. Read moreSource§fn on_solution(&mut self, _solution: SolutionReference<'_>)
fn on_solution(&mut self, _solution: SolutionReference<'_>)
This method is called when a solution is found; either when iterating over all solutions in
the case of a satisfiable problem or on solutions of increasing quality when solving an
optimisation problem. Read more
Source§fn is_restart_pointless(&mut self) -> bool
fn is_restart_pointless(&mut self) -> bool
This method returns whether a restart is currently pointless for the
ValueSelector. Read moreSource§impl ValueSelector<DomainId> for OutDomainMin
impl ValueSelector<DomainId> for OutDomainMin
Source§fn select_value(
&mut self,
context: &mut SelectionContext<'_>,
decision_variable: DomainId,
) -> Predicate
fn select_value( &mut self, context: &mut SelectionContext<'_>, decision_variable: DomainId, ) -> Predicate
Determines which value in the domain of
decision_variable to branch next on.
The domain of the decision_variable variable should have at least 2 values in it (as it
otherwise should not have been selected as decision_variable). Returns a
Predicate specifying the required change in the domain.Source§fn subscribe_to_events(&self) -> Vec<BrancherEvent>
fn subscribe_to_events(&self) -> Vec<BrancherEvent>
Source§fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
A function which is called after a
DomainId is unassigned during backtracking (i.e. when
it was fixed but is no longer), specifically, it provides variable which is the
DomainId which has been reset and value which is the value to which the variable was
previously fixed. This method could thus be called multiple times in a single
backtracking operation by the solver. Read moreSource§fn on_solution(&mut self, _solution: SolutionReference<'_>)
fn on_solution(&mut self, _solution: SolutionReference<'_>)
This method is called when a solution is found; either when iterating over all solutions in
the case of a satisfiable problem or on solutions of increasing quality when solving an
optimisation problem. Read more
Source§fn is_restart_pointless(&mut self) -> bool
fn is_restart_pointless(&mut self) -> bool
This method returns whether a restart is currently pointless for the
ValueSelector. Read moreSource§impl ValueSelector<DomainId> for OutDomainRandom
impl ValueSelector<DomainId> for OutDomainRandom
Source§fn select_value(
&mut self,
context: &mut SelectionContext<'_>,
decision_variable: DomainId,
) -> Predicate
fn select_value( &mut self, context: &mut SelectionContext<'_>, decision_variable: DomainId, ) -> Predicate
Determines which value in the domain of
decision_variable to branch next on.
The domain of the decision_variable variable should have at least 2 values in it (as it
otherwise should not have been selected as decision_variable). Returns a
Predicate specifying the required change in the domain.Source§fn is_restart_pointless(&mut self) -> bool
fn is_restart_pointless(&mut self) -> bool
This method returns whether a restart is currently pointless for the
ValueSelector. Read moreSource§fn subscribe_to_events(&self) -> Vec<BrancherEvent>
fn subscribe_to_events(&self) -> Vec<BrancherEvent>
Source§fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
A function which is called after a
DomainId is unassigned during backtracking (i.e. when
it was fixed but is no longer), specifically, it provides variable which is the
DomainId which has been reset and value which is the value to which the variable was
previously fixed. This method could thus be called multiple times in a single
backtracking operation by the solver. Read moreSource§fn on_solution(&mut self, _solution: SolutionReference<'_>)
fn on_solution(&mut self, _solution: SolutionReference<'_>)
This method is called when a solution is found; either when iterating over all solutions in
the case of a satisfiable problem or on solutions of increasing quality when solving an
optimisation problem. Read more
Source§impl ValueSelector<DomainId> for RandomSplitter
impl ValueSelector<DomainId> for RandomSplitter
Source§fn select_value(
&mut self,
context: &mut SelectionContext<'_>,
decision_variable: DomainId,
) -> Predicate
fn select_value( &mut self, context: &mut SelectionContext<'_>, decision_variable: DomainId, ) -> Predicate
Determines which value in the domain of
decision_variable to branch next on.
The domain of the decision_variable variable should have at least 2 values in it (as it
otherwise should not have been selected as decision_variable). Returns a
Predicate specifying the required change in the domain.Source§fn is_restart_pointless(&mut self) -> bool
fn is_restart_pointless(&mut self) -> bool
This method returns whether a restart is currently pointless for the
ValueSelector. Read moreSource§fn subscribe_to_events(&self) -> Vec<BrancherEvent>
fn subscribe_to_events(&self) -> Vec<BrancherEvent>
Source§fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
A function which is called after a
DomainId is unassigned during backtracking (i.e. when
it was fixed but is no longer), specifically, it provides variable which is the
DomainId which has been reset and value which is the value to which the variable was
previously fixed. This method could thus be called multiple times in a single
backtracking operation by the solver. Read moreSource§fn on_solution(&mut self, _solution: SolutionReference<'_>)
fn on_solution(&mut self, _solution: SolutionReference<'_>)
This method is called when a solution is found; either when iterating over all solutions in
the case of a satisfiable problem or on solutions of increasing quality when solving an
optimisation problem. Read more
Source§impl<TieBreaking> VariableSelector<DomainId> for AntiFirstFail<DomainId, TieBreaking>
impl<TieBreaking> VariableSelector<DomainId> for AntiFirstFail<DomainId, TieBreaking>
Source§fn select_variable(
&mut self,
context: &mut SelectionContext<'_>,
) -> Option<DomainId>
fn select_variable( &mut self, context: &mut SelectionContext<'_>, ) -> Option<DomainId>
Determines which variable to select next if there are any left to branch on.
Should only return
None when all variables which have been passed to the
VariableSelector have been assigned. Otherwise it should return the variable to
branch on next.Source§fn subscribe_to_events(&self) -> Vec<BrancherEvent>
fn subscribe_to_events(&self) -> Vec<BrancherEvent>
Source§fn on_conflict(&mut self)
fn on_conflict(&mut self)
A function which is called after a conflict has been found and processed but (currently)
does not provide any additional information. Read more
Source§fn on_backtrack(&mut self)
fn on_backtrack(&mut self)
A function which is called whenever a backtrack occurs in the solver. Read more
Source§fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
A function which is called after a
DomainId is unassigned during backtracking (i.e. when
it was fixed but is no longer), specifically, it provides variable which is the
DomainId which has been reset. This method could thus be called multiple times in a
single backtracking operation by the solver. Read moreSource§fn on_appearance_in_conflict_predicate(&mut self, _predicate: Predicate)
fn on_appearance_in_conflict_predicate(&mut self, _predicate: Predicate)
Source§fn is_restart_pointless(&mut self) -> bool
fn is_restart_pointless(&mut self) -> bool
This method returns whether a restart is currently pointless for the
VariableSelector. Read moreSource§impl<TieBreaking> VariableSelector<DomainId> for FirstFail<DomainId, TieBreaking>
impl<TieBreaking> VariableSelector<DomainId> for FirstFail<DomainId, TieBreaking>
Source§fn select_variable(
&mut self,
context: &mut SelectionContext<'_>,
) -> Option<DomainId>
fn select_variable( &mut self, context: &mut SelectionContext<'_>, ) -> Option<DomainId>
Determines which variable to select next if there are any left to branch on.
Should only return
None when all variables which have been passed to the
VariableSelector have been assigned. Otherwise it should return the variable to
branch on next.Source§fn subscribe_to_events(&self) -> Vec<BrancherEvent>
fn subscribe_to_events(&self) -> Vec<BrancherEvent>
Source§fn on_conflict(&mut self)
fn on_conflict(&mut self)
A function which is called after a conflict has been found and processed but (currently)
does not provide any additional information. Read more
Source§fn on_backtrack(&mut self)
fn on_backtrack(&mut self)
A function which is called whenever a backtrack occurs in the solver. Read more
Source§fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
A function which is called after a
DomainId is unassigned during backtracking (i.e. when
it was fixed but is no longer), specifically, it provides variable which is the
DomainId which has been reset. This method could thus be called multiple times in a
single backtracking operation by the solver. Read moreSource§fn on_appearance_in_conflict_predicate(&mut self, _predicate: Predicate)
fn on_appearance_in_conflict_predicate(&mut self, _predicate: Predicate)
Source§fn is_restart_pointless(&mut self) -> bool
fn is_restart_pointless(&mut self) -> bool
This method returns whether a restart is currently pointless for the
VariableSelector. Read moreSource§impl VariableSelector<DomainId> for InputOrder<DomainId>
impl VariableSelector<DomainId> for InputOrder<DomainId>
Source§fn select_variable(
&mut self,
context: &mut SelectionContext<'_>,
) -> Option<DomainId>
fn select_variable( &mut self, context: &mut SelectionContext<'_>, ) -> Option<DomainId>
Determines which variable to select next if there are any left to branch on.
Should only return
None when all variables which have been passed to the
VariableSelector have been assigned. Otherwise it should return the variable to
branch on next.Source§fn subscribe_to_events(&self) -> Vec<BrancherEvent>
fn subscribe_to_events(&self) -> Vec<BrancherEvent>
Source§fn on_conflict(&mut self)
fn on_conflict(&mut self)
A function which is called after a conflict has been found and processed but (currently)
does not provide any additional information. Read more
Source§fn on_backtrack(&mut self)
fn on_backtrack(&mut self)
A function which is called whenever a backtrack occurs in the solver. Read more
Source§fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
A function which is called after a
DomainId is unassigned during backtracking (i.e. when
it was fixed but is no longer), specifically, it provides variable which is the
DomainId which has been reset. This method could thus be called multiple times in a
single backtracking operation by the solver. Read moreSource§fn on_appearance_in_conflict_predicate(&mut self, _predicate: Predicate)
fn on_appearance_in_conflict_predicate(&mut self, _predicate: Predicate)
Source§fn is_restart_pointless(&mut self) -> bool
fn is_restart_pointless(&mut self) -> bool
This method returns whether a restart is currently pointless for the
VariableSelector. Read moreSource§impl<TieBreaking> VariableSelector<DomainId> for Largest<DomainId, TieBreaking>
impl<TieBreaking> VariableSelector<DomainId> for Largest<DomainId, TieBreaking>
Source§fn select_variable(
&mut self,
context: &mut SelectionContext<'_>,
) -> Option<DomainId>
fn select_variable( &mut self, context: &mut SelectionContext<'_>, ) -> Option<DomainId>
Determines which variable to select next if there are any left to branch on.
Should only return
None when all variables which have been passed to the
VariableSelector have been assigned. Otherwise it should return the variable to
branch on next.Source§fn subscribe_to_events(&self) -> Vec<BrancherEvent>
fn subscribe_to_events(&self) -> Vec<BrancherEvent>
Source§fn on_conflict(&mut self)
fn on_conflict(&mut self)
A function which is called after a conflict has been found and processed but (currently)
does not provide any additional information. Read more
Source§fn on_backtrack(&mut self)
fn on_backtrack(&mut self)
A function which is called whenever a backtrack occurs in the solver. Read more
Source§fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
A function which is called after a
DomainId is unassigned during backtracking (i.e. when
it was fixed but is no longer), specifically, it provides variable which is the
DomainId which has been reset. This method could thus be called multiple times in a
single backtracking operation by the solver. Read moreSource§fn on_appearance_in_conflict_predicate(&mut self, _predicate: Predicate)
fn on_appearance_in_conflict_predicate(&mut self, _predicate: Predicate)
Source§fn is_restart_pointless(&mut self) -> bool
fn is_restart_pointless(&mut self) -> bool
This method returns whether a restart is currently pointless for the
VariableSelector. Read moreSource§impl<TieBreaking> VariableSelector<DomainId> for MaxRegret<DomainId, TieBreaking>
impl<TieBreaking> VariableSelector<DomainId> for MaxRegret<DomainId, TieBreaking>
Source§fn select_variable(
&mut self,
context: &mut SelectionContext<'_>,
) -> Option<DomainId>
fn select_variable( &mut self, context: &mut SelectionContext<'_>, ) -> Option<DomainId>
Determines which variable to select next if there are any left to branch on.
Should only return
None when all variables which have been passed to the
VariableSelector have been assigned. Otherwise it should return the variable to
branch on next.Source§fn subscribe_to_events(&self) -> Vec<BrancherEvent>
fn subscribe_to_events(&self) -> Vec<BrancherEvent>
Source§fn on_conflict(&mut self)
fn on_conflict(&mut self)
A function which is called after a conflict has been found and processed but (currently)
does not provide any additional information. Read more
Source§fn on_backtrack(&mut self)
fn on_backtrack(&mut self)
A function which is called whenever a backtrack occurs in the solver. Read more
Source§fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
A function which is called after a
DomainId is unassigned during backtracking (i.e. when
it was fixed but is no longer), specifically, it provides variable which is the
DomainId which has been reset. This method could thus be called multiple times in a
single backtracking operation by the solver. Read moreSource§fn on_appearance_in_conflict_predicate(&mut self, _predicate: Predicate)
fn on_appearance_in_conflict_predicate(&mut self, _predicate: Predicate)
Source§fn is_restart_pointless(&mut self) -> bool
fn is_restart_pointless(&mut self) -> bool
This method returns whether a restart is currently pointless for the
VariableSelector. Read moreSource§impl<TieBreaking> VariableSelector<DomainId> for MostConstrained<DomainId, TieBreaking>where
TieBreaking: TieBreaker<DomainId, MostConstrainedValue>,
impl<TieBreaking> VariableSelector<DomainId> for MostConstrained<DomainId, TieBreaking>where
TieBreaking: TieBreaker<DomainId, MostConstrainedValue>,
Source§fn select_variable(
&mut self,
context: &mut SelectionContext<'_>,
) -> Option<DomainId>
fn select_variable( &mut self, context: &mut SelectionContext<'_>, ) -> Option<DomainId>
Determines which variable to select next if there are any left to branch on.
Should only return
None when all variables which have been passed to the
VariableSelector have been assigned. Otherwise it should return the variable to
branch on next.Source§fn subscribe_to_events(&self) -> Vec<BrancherEvent>
fn subscribe_to_events(&self) -> Vec<BrancherEvent>
Source§fn on_conflict(&mut self)
fn on_conflict(&mut self)
A function which is called after a conflict has been found and processed but (currently)
does not provide any additional information. Read more
Source§fn on_backtrack(&mut self)
fn on_backtrack(&mut self)
A function which is called whenever a backtrack occurs in the solver. Read more
Source§fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
A function which is called after a
DomainId is unassigned during backtracking (i.e. when
it was fixed but is no longer), specifically, it provides variable which is the
DomainId which has been reset. This method could thus be called multiple times in a
single backtracking operation by the solver. Read moreSource§fn on_appearance_in_conflict_predicate(&mut self, _predicate: Predicate)
fn on_appearance_in_conflict_predicate(&mut self, _predicate: Predicate)
Source§fn is_restart_pointless(&mut self) -> bool
fn is_restart_pointless(&mut self) -> bool
This method returns whether a restart is currently pointless for the
VariableSelector. Read moreSource§impl<TieBreaking> VariableSelector<DomainId> for Occurrence<DomainId, TieBreaking>
impl<TieBreaking> VariableSelector<DomainId> for Occurrence<DomainId, TieBreaking>
Source§fn select_variable(
&mut self,
context: &mut SelectionContext<'_>,
) -> Option<DomainId>
fn select_variable( &mut self, context: &mut SelectionContext<'_>, ) -> Option<DomainId>
Determines which variable to select next if there are any left to branch on.
Should only return
None when all variables which have been passed to the
VariableSelector have been assigned. Otherwise it should return the variable to
branch on next.Source§fn subscribe_to_events(&self) -> Vec<BrancherEvent>
fn subscribe_to_events(&self) -> Vec<BrancherEvent>
Source§fn on_conflict(&mut self)
fn on_conflict(&mut self)
A function which is called after a conflict has been found and processed but (currently)
does not provide any additional information. Read more
Source§fn on_backtrack(&mut self)
fn on_backtrack(&mut self)
A function which is called whenever a backtrack occurs in the solver. Read more
Source§fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
A function which is called after a
DomainId is unassigned during backtracking (i.e. when
it was fixed but is no longer), specifically, it provides variable which is the
DomainId which has been reset. This method could thus be called multiple times in a
single backtracking operation by the solver. Read moreSource§fn on_appearance_in_conflict_predicate(&mut self, _predicate: Predicate)
fn on_appearance_in_conflict_predicate(&mut self, _predicate: Predicate)
Source§fn is_restart_pointless(&mut self) -> bool
fn is_restart_pointless(&mut self) -> bool
This method returns whether a restart is currently pointless for the
VariableSelector. Read moreSource§impl VariableSelector<DomainId> for ProportionalDomainSize
impl VariableSelector<DomainId> for ProportionalDomainSize
Source§fn select_variable(
&mut self,
context: &mut SelectionContext<'_>,
) -> Option<DomainId>
fn select_variable( &mut self, context: &mut SelectionContext<'_>, ) -> Option<DomainId>
Determines which variable to select next if there are any left to branch on.
Should only return
None when all variables which have been passed to the
VariableSelector have been assigned. Otherwise it should return the variable to
branch on next.Source§fn on_backtrack(&mut self)
fn on_backtrack(&mut self)
A function which is called whenever a backtrack occurs in the solver. Read more
Source§fn subscribe_to_events(&self) -> Vec<BrancherEvent>
fn subscribe_to_events(&self) -> Vec<BrancherEvent>
Source§fn on_conflict(&mut self)
fn on_conflict(&mut self)
A function which is called after a conflict has been found and processed but (currently)
does not provide any additional information. Read more
Source§fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
A function which is called after a
DomainId is unassigned during backtracking (i.e. when
it was fixed but is no longer), specifically, it provides variable which is the
DomainId which has been reset. This method could thus be called multiple times in a
single backtracking operation by the solver. Read moreSource§fn on_appearance_in_conflict_predicate(&mut self, _predicate: Predicate)
fn on_appearance_in_conflict_predicate(&mut self, _predicate: Predicate)
Source§fn is_restart_pointless(&mut self) -> bool
fn is_restart_pointless(&mut self) -> bool
This method returns whether a restart is currently pointless for the
VariableSelector. Read moreSource§impl VariableSelector<DomainId> for RandomSelector
impl VariableSelector<DomainId> for RandomSelector
Source§fn select_variable(
&mut self,
context: &mut SelectionContext<'_>,
) -> Option<DomainId>
fn select_variable( &mut self, context: &mut SelectionContext<'_>, ) -> Option<DomainId>
Determines which variable to select next if there are any left to branch on.
Should only return
None when all variables which have been passed to the
VariableSelector have been assigned. Otherwise it should return the variable to
branch on next.Source§fn on_unassign_integer(&mut self, variable: DomainId, _value: i32)
fn on_unassign_integer(&mut self, variable: DomainId, _value: i32)
A function which is called after a
DomainId is unassigned during backtracking (i.e. when
it was fixed but is no longer), specifically, it provides variable which is the
DomainId which has been reset. This method could thus be called multiple times in a
single backtracking operation by the solver. Read moreSource§fn is_restart_pointless(&mut self) -> bool
fn is_restart_pointless(&mut self) -> bool
This method returns whether a restart is currently pointless for the
VariableSelector. Read moreSource§fn subscribe_to_events(&self) -> Vec<BrancherEvent>
fn subscribe_to_events(&self) -> Vec<BrancherEvent>
Source§fn on_conflict(&mut self)
fn on_conflict(&mut self)
A function which is called after a conflict has been found and processed but (currently)
does not provide any additional information. Read more
Source§fn on_backtrack(&mut self)
fn on_backtrack(&mut self)
A function which is called whenever a backtrack occurs in the solver. Read more
Source§impl<TieBreaking> VariableSelector<DomainId> for Smallest<DomainId, TieBreaking>
impl<TieBreaking> VariableSelector<DomainId> for Smallest<DomainId, TieBreaking>
Source§fn select_variable(
&mut self,
context: &mut SelectionContext<'_>,
) -> Option<DomainId>
fn select_variable( &mut self, context: &mut SelectionContext<'_>, ) -> Option<DomainId>
Determines which variable to select next if there are any left to branch on.
Should only return
None when all variables which have been passed to the
VariableSelector have been assigned. Otherwise it should return the variable to
branch on next.Source§fn subscribe_to_events(&self) -> Vec<BrancherEvent>
fn subscribe_to_events(&self) -> Vec<BrancherEvent>
Source§fn on_conflict(&mut self)
fn on_conflict(&mut self)
A function which is called after a conflict has been found and processed but (currently)
does not provide any additional information. Read more
Source§fn on_backtrack(&mut self)
fn on_backtrack(&mut self)
A function which is called whenever a backtrack occurs in the solver. Read more
Source§fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
A function which is called after a
DomainId is unassigned during backtracking (i.e. when
it was fixed but is no longer), specifically, it provides variable which is the
DomainId which has been reset. This method could thus be called multiple times in a
single backtracking operation by the solver. Read moreSource§fn on_appearance_in_conflict_predicate(&mut self, _predicate: Predicate)
fn on_appearance_in_conflict_predicate(&mut self, _predicate: Predicate)
Source§fn is_restart_pointless(&mut self) -> bool
fn is_restart_pointless(&mut self) -> bool
This method returns whether a restart is currently pointless for the
VariableSelector. Read moreimpl Copy for DomainId
impl Eq for DomainId
impl StructuralPartialEq for DomainId
Auto Trait Implementations§
impl Freeze for DomainId
impl RefUnwindSafe for DomainId
impl Send for DomainId
impl Sync for DomainId
impl Unpin for DomainId
impl UnwindSafe for DomainId
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<'p, T> Seq<'p, T> for Twhere
T: Clone,
impl<'p, T> Seq<'p, T> for Twhere
T: Clone,
Source§impl<Value> Statistic for Valuewhere
Value: Display,
impl<Value> Statistic for Valuewhere
Value: Display,
Source§fn log(&self, statistic_logger: StatisticLogger)
fn log(&self, statistic_logger: StatisticLogger)
Logs the
Statistic using the provided StatisticLogger.