pub struct Branch<BranchFilter, DualStore>where
BranchFilter: IBranchFilter,
DualStore: UserDualStore,{
pub id: u32,
pub parent: u32,
pub depth: u32,
pub old_obj_bound: f64,
pub old_obj_heuristic: bool,
pub old_obj_dual_center: Option<(f64, DualStore)>,
pub filters: Vec<BranchFilter>,
pub allow_heuristic_pricing: bool,
pub special: Option<SpecialType<BranchFilter>>,
}
Expand description
Primary struct for branch in branching tree Holds all information about its state
Fields§
§id: u32
§parent: u32
§depth: u32
§old_obj_bound: f64
§old_obj_heuristic: bool
§old_obj_dual_center: Option<(f64, DualStore)>
§filters: Vec<BranchFilter>
§allow_heuristic_pricing: bool
§special: Option<SpecialType<BranchFilter>>
Implementations§
Source§impl<BranchFilter, DualStore> Branch<BranchFilter, DualStore>where
BranchFilter: IBranchFilter,
DualStore: UserDualStore,
impl<BranchFilter, DualStore> Branch<BranchFilter, DualStore>where
BranchFilter: IBranchFilter,
DualStore: UserDualStore,
Sourcepub fn create_lds_root() -> Self
pub fn create_lds_root() -> Self
Returns a root node for limited discrepancy search
Sourcepub fn create_integer(&self, local: bool) -> Self
pub fn create_integer(&self, local: bool) -> Self
transforms the current node into a copy that will be solved as integer linear program. Can be used to get better primal bounds
local
setting influences whether existing branches should apply
or (local=false) all branching constraints are removed
Sourcepub fn upgrade_to_non_heuristic_pricing(&self) -> Self
pub fn upgrade_to_non_heuristic_pricing(&self) -> Self
Takes a heuristic pricing branching node and returns a normal branching node
Sourcepub fn create_lds_zero_child(
&self,
parent_obj: f64,
filters_of_one_child: &[BranchFilter],
parent_partial: bool,
parent_dual_center: Option<(f64, DualStore)>,
) -> Self
pub fn create_lds_zero_child( &self, parent_obj: f64, filters_of_one_child: &[BranchFilter], parent_partial: bool, parent_dual_center: Option<(f64, DualStore)>, ) -> Self
Given a current lds branching node, create the zero branch that expands the taboo list
Trait Implementations§
Source§impl<BranchingFilter: IBranchFilter, DualStorage: UserDualStore> Compare<Branch<BranchingFilter, DualStorage>> for BranchComparator<BranchingFilter, DualStorage>
impl<BranchingFilter: IBranchFilter, DualStorage: UserDualStore> Compare<Branch<BranchingFilter, DualStorage>> for BranchComparator<BranchingFilter, DualStorage>
Source§fn compare(
&self,
l: &Branch<BranchingFilter, DualStorage>,
r: &Branch<BranchingFilter, DualStorage>,
) -> Ordering
fn compare( &self, l: &Branch<BranchingFilter, DualStorage>, r: &Branch<BranchingFilter, DualStorage>, ) -> 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
Auto Trait Implementations§
impl<BranchFilter, DualStore> Freeze for Branch<BranchFilter, DualStore>where
DualStore: Freeze,
impl<BranchFilter, DualStore> RefUnwindSafe for Branch<BranchFilter, DualStore>where
DualStore: RefUnwindSafe,
BranchFilter: RefUnwindSafe,
impl<BranchFilter, DualStore> Send for Branch<BranchFilter, DualStore>
impl<BranchFilter, DualStore> Sync for Branch<BranchFilter, DualStore>
impl<BranchFilter, DualStore> Unpin for Branch<BranchFilter, DualStore>
impl<BranchFilter, DualStore> UnwindSafe for Branch<BranchFilter, DualStore>where
DualStore: UnwindSafe,
BranchFilter: UnwindSafe,
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