Struct MasterProblem

Source
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>,

Source

pub fn new( shared: Arc<SharedState<ColumnType, BranchFilter, C, DualStore>>, master_problem: UMasterProblem, pricing_solver: Solver, ) -> Self

Source

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>
where UMasterProblem: Freeze, Solver: Freeze,

§

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>
where UMasterProblem: Send, Solver: Send, BranchGroupType: Send, ModelMeta: Send, DualStore: Send, Constr: Send, Env: Send, Model: Send, Var: Send, ProblemInstance: Send, C: Sync + Send, BranchFilter: Send + Sync, ColumnType: Send + Sync,

§

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>
where UMasterProblem: Sync, Solver: Sync, BranchGroupType: Sync, ModelMeta: Sync, DualStore: Sync + Send, Constr: Sync, Env: Sync, Model: Sync, Var: Sync, ProblemInstance: Sync, C: Sync + Send, BranchFilter: Send + Sync, ColumnType: Send + Sync,

§

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>
where UMasterProblem: Unpin, Solver: Unpin, BranchGroupType: Unpin, ModelMeta: Unpin, DualStore: Unpin, Constr: Unpin, Env: Unpin, Model: Unpin, Var: Unpin, ProblemInstance: Unpin,

§

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> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V