pub struct MasterProblem<ProblemInstance: Clone, Solver: UserPricingSolver<ProblemInstance, BranchFilter, ColumnType, DualStore>, ModelMeta: UserModelMeta<Constr, Var, Env, Model>, ColumnType: PartialEq + 'static, DualStore: UserDualStore, BranchFilter: IBranchFilter, BranchGroupType: Clone + Debug, UMasterProblem: UserMasterProblem<ProblemInstance, Solver, ColumnType, DualStore, ModelMeta, BranchFilter, BranchGroupType, Constr, Env, Model, Var>, C: Compare<Branch<BranchFilter, DualStore>> + Clone, Constr: Clone, Env: LPEnv, Model: LPModel<Constr, Var, Env>, Var: Clone>where
ColumnPool<ColumnType, BranchFilter>: ColumnPoolFilter<ColumnType, BranchFilter>,{ /* private fields */ }
Expand description
Primary struct holding all problem information
Implementations§
Source§impl<ProblemInstance: Clone, Solver: UserPricingSolver<ProblemInstance, BranchFilter, ColumnType, DualStore>, ModelMeta: UserModelMeta<Constr, Var, Env, Model>, ColumnType: PartialEq, DualStore: UserDualStore, BranchFilter, BranchGroupType, UMasterProblem: UserMasterProblem<ProblemInstance, Solver, ColumnType, DualStore, ModelMeta, BranchFilter, BranchGroupType, Constr, Env, Model, Var>, C: Compare<Branch<BranchFilter, DualStore>> + Clone, Constr: Clone, Env: LPEnv, Model: LPModel<Constr, Var, Env>, Var: Clone> MasterProblem<ProblemInstance, Solver, ModelMeta, ColumnType, DualStore, BranchFilter, BranchGroupType, UMasterProblem, C, Constr, Env, Model, Var>where
BranchGroupType: Clone + Debug + Clone,
BranchFilter: IBranchFilter + Clone,
ColumnPool<ColumnType, BranchFilter>: ColumnPoolFilter<ColumnType, BranchFilter>,
impl<ProblemInstance: Clone, Solver: UserPricingSolver<ProblemInstance, BranchFilter, ColumnType, DualStore>, ModelMeta: UserModelMeta<Constr, Var, Env, Model>, ColumnType: PartialEq, DualStore: UserDualStore, BranchFilter, BranchGroupType, UMasterProblem: UserMasterProblem<ProblemInstance, Solver, ColumnType, DualStore, ModelMeta, BranchFilter, BranchGroupType, Constr, Env, Model, Var>, C: Compare<Branch<BranchFilter, DualStore>> + Clone, Constr: Clone, Env: LPEnv, Model: LPModel<Constr, Var, Env>, Var: Clone> MasterProblem<ProblemInstance, Solver, ModelMeta, ColumnType, DualStore, BranchFilter, BranchGroupType, UMasterProblem, C, Constr, Env, Model, Var>where
BranchGroupType: Clone + Debug + Clone,
BranchFilter: IBranchFilter + Clone,
ColumnPool<ColumnType, BranchFilter>: ColumnPoolFilter<ColumnType, BranchFilter>,
pub fn new( shared: Arc<SharedState<ColumnType, BranchFilter, C, DualStore>>, master_problem: UMasterProblem, pricing_solver: Solver, ) -> Self
Sourcepub fn run_worker(
&mut self,
real_bound_from: f64,
consider_infeasible_over: f64,
seed: i32,
)
pub fn run_worker( &mut self, real_bound_from: f64, consider_infeasible_over: f64, seed: i32, )
Launch the worker’s loop
Worker will pop open branches and process them
Auto Trait Implementations§
impl<ProblemInstance, Solver, ModelMeta, ColumnType, DualStore, BranchFilter, BranchGroupType, UMasterProblem, C, Constr, Env, Model, Var> Freeze for MasterProblem<ProblemInstance, Solver, ModelMeta, ColumnType, DualStore, BranchFilter, BranchGroupType, UMasterProblem, C, Constr, Env, Model, Var>
impl<ProblemInstance, Solver, ModelMeta, ColumnType, DualStore, BranchFilter, BranchGroupType, UMasterProblem, C, Constr, Env, Model, Var> RefUnwindSafe for MasterProblem<ProblemInstance, Solver, ModelMeta, ColumnType, DualStore, BranchFilter, BranchGroupType, UMasterProblem, C, Constr, Env, Model, Var>where
UMasterProblem: RefUnwindSafe,
Solver: RefUnwindSafe,
BranchGroupType: RefUnwindSafe,
ModelMeta: RefUnwindSafe,
DualStore: RefUnwindSafe,
Constr: RefUnwindSafe,
Env: RefUnwindSafe,
Model: RefUnwindSafe,
Var: RefUnwindSafe,
ProblemInstance: RefUnwindSafe,
C: RefUnwindSafe,
impl<ProblemInstance, Solver, ModelMeta, ColumnType, DualStore, BranchFilter, BranchGroupType, UMasterProblem, C, Constr, Env, Model, Var> Send for MasterProblem<ProblemInstance, Solver, ModelMeta, ColumnType, DualStore, BranchFilter, BranchGroupType, UMasterProblem, C, Constr, Env, Model, Var>
impl<ProblemInstance, Solver, ModelMeta, ColumnType, DualStore, BranchFilter, BranchGroupType, UMasterProblem, C, Constr, Env, Model, Var> Sync for MasterProblem<ProblemInstance, Solver, ModelMeta, ColumnType, DualStore, BranchFilter, BranchGroupType, UMasterProblem, C, Constr, Env, Model, Var>
impl<ProblemInstance, Solver, ModelMeta, ColumnType, DualStore, BranchFilter, BranchGroupType, UMasterProblem, C, Constr, Env, Model, Var> Unpin for MasterProblem<ProblemInstance, Solver, ModelMeta, ColumnType, DualStore, BranchFilter, BranchGroupType, UMasterProblem, C, Constr, Env, Model, Var>
impl<ProblemInstance, Solver, ModelMeta, ColumnType, DualStore, BranchFilter, BranchGroupType, UMasterProblem, C, Constr, Env, Model, Var> UnwindSafe for MasterProblem<ProblemInstance, Solver, ModelMeta, ColumnType, DualStore, BranchFilter, BranchGroupType, UMasterProblem, C, Constr, Env, Model, Var>where
UMasterProblem: UnwindSafe,
Solver: UnwindSafe,
BranchGroupType: UnwindSafe,
ModelMeta: UnwindSafe,
DualStore: UnwindSafe,
Constr: UnwindSafe,
Env: UnwindSafe,
Model: UnwindSafe,
Var: UnwindSafe,
ProblemInstance: UnwindSafe,
C: 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