Struct ddo::SubProblem
source · pub struct SubProblem<T> {
pub state: Arc<T>,
pub value: isize,
pub path: Vec<Decision>,
pub ub: isize,
pub depth: usize,
}
Expand description
A subproblem is a residual problem that must be solved in order to complete the resolution of the original problem which had been defined.
§Note:
Sub-problems are automatically instantiated from nodes in the exact cut-sets of relaxed decision diagrams. If you are only discovering the API, rest assured.. you don’t need to implement any subproblem yourself.
Fields§
§state: Arc<T>
The root state of this sub problem
value: isize
The root value of this sub problem
path: Vec<Decision>
The path to traverse to reach this subproblem from the root of the original problem
ub: isize
An upper bound on the objective reachable in this subproblem
depth: usize
The depth of the subproblem with respect to the root problem
Trait Implementations§
source§impl<T: Clone> Clone for SubProblem<T>
impl<T: Clone> Clone for SubProblem<T>
source§fn clone(&self) -> SubProblem<T>
fn clone(&self) -> SubProblem<T>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl<X: SubProblemRanking> Compare<SubProblem<<X as SubProblemRanking>::State>> for CompareSubProblem<X>
impl<X: SubProblemRanking> Compare<SubProblem<<X as SubProblemRanking>::State>> for CompareSubProblem<X>
source§fn compare(
&self,
l: &SubProblem<X::State>,
r: &SubProblem<X::State>
) -> Ordering
fn compare( &self, l: &SubProblem<X::State>, r: &SubProblem<X::State> ) -> Ordering
Compares two values, returning
Less
, Equal
, or Greater
if l
is less
than, equal to, or greater than r
, respectively.source§fn borrowing(self) -> Borrowing<Self, L, R>where
Self: Sized,
fn borrowing(self) -> Borrowing<Self, L, R>where
Self: Sized,
Borrows the comparator’s parameters before comparing them. Read more
source§fn rev(self) -> Rev<Self>where
Self: Sized,
fn rev(self) -> Rev<Self>where
Self: Sized,
Reverses the ordering of the comparator. Read more
source§impl<T: Debug> Debug for SubProblem<T>
impl<T: Debug> Debug for SubProblem<T>
source§impl<T: PartialEq> PartialEq for SubProblem<T>
impl<T: PartialEq> PartialEq for SubProblem<T>
source§fn eq(&self, other: &SubProblem<T>) -> bool
fn eq(&self, other: &SubProblem<T>) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.impl<T: Eq> Eq for SubProblem<T>
impl<T> StructuralPartialEq for SubProblem<T>
Auto Trait Implementations§
impl<T> RefUnwindSafe for SubProblem<T>where
T: RefUnwindSafe,
impl<T> Send for SubProblem<T>
impl<T> Sync for SubProblem<T>
impl<T> Unpin for SubProblem<T>
impl<T> UnwindSafe for SubProblem<T>where
T: RefUnwindSafe,
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
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more