pub struct MipConfig {
pub gap_tol: f64,
pub integer_feas_tol: f64,
pub max_nodes: usize,
pub max_depth: usize,
pub branching: MipBranching,
pub cuts: bool,
pub max_cut_rounds: usize,
}Expand description
MILP/MIQP branch-and-bound config.
Passed to solve_milp / solve_miqp.
Rules:
gap_tol >= 0: 0 means exact optimality (node explosion risk).integer_feas_tol > 0max_nodes >= 1,max_depth >= 1
Fields§
§gap_tol: f64§integer_feas_tol: f64§max_nodes: usize§max_depth: usize§branching: MipBranching§cuts: boolGenerate Gomory Mixed-Integer cuts at the root before branch-and-bound.
Cuts tighten the LP relaxation without removing any integer-feasible point,
so the optimum is unchanged; they reduce the search tree. Default OFF
(see DEFAULT_MIP_CUTS).
max_cut_rounds: usizeMaximum root cut-generation rounds. 0 ⇒ DEFAULT_MAX_CUT_ROUNDS.
Each round re-solves the LP and adds GMI cuts from the fractional basic
integer variables; rounds stop early when no fractional source remains or
the LP bound stops improving.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for MipConfig
impl RefUnwindSafe for MipConfig
impl Send for MipConfig
impl Sync for MipConfig
impl Unpin for MipConfig
impl UnsafeUnpin for MipConfig
impl UnwindSafe for MipConfig
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> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T, U> Imply<T> for U
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 more