pub struct MuOptions {Show 30 fields
pub mu_init: Number,
pub mu_max: Number,
pub mu_max_fact: Number,
pub mu_min: Number,
pub mu_target: Number,
pub mu_linear_decrease_factor: Number,
pub mu_superlinear_decrease_power: Number,
pub mu_allow_fast_monotone_decrease: bool,
pub barrier_tol_factor: Number,
pub tau_min: Number,
pub sigma_max: Number,
pub sigma_min: Number,
pub adaptive_mu_globalization: AdaptiveMuGlobalization,
pub quality_function_norm_type: NormType,
pub quality_function_centrality: CentralityType,
pub quality_function_balancing_term: BalancingTermType,
pub quality_function_max_section_steps: i32,
pub quality_function_section_sigma_tol: Number,
pub quality_function_section_qf_tol: Number,
pub adaptive_mu_safeguard_factor: Number,
pub adaptive_mu_monotone_init_factor: Number,
pub adaptive_mu_restore_previous_iterate: bool,
pub adaptive_mu_max_free_returns: i32,
pub adaptive_mu_budget_pin_fraction: Number,
pub adaptive_mu_kkterror_red_iters: usize,
pub adaptive_mu_kkterror_red_fact: Number,
pub adaptive_mu_kkt_norm_type: AdaptiveMuKktNorm,
pub filter_margin_fact: Number,
pub filter_max_margin: Number,
pub probing_iterate_quality_factor: Number,
}Expand description
Knobs read off OptionsList and baked into the assembled
MonotoneMuUpdate or AdaptiveMuUpdate. Defaults mirror
IpMonotoneMuUpdate.cpp / IpAdaptiveMuUpdate.cpp:RegisterOptions.
mu_max defaults to the sentinel -1; positive values are baked
into both updaters at build time (adaptive interprets -1 as
“lazy-init from mu_max_fact * avrg_compl”).
Fields§
§mu_init: Number§mu_max: Number§mu_max_fact: Number§mu_min: Number§mu_target: Number§mu_linear_decrease_factor: Number§mu_superlinear_decrease_power: Number§mu_allow_fast_monotone_decrease: bool§barrier_tol_factor: Number§tau_min: Numbertau_min — floor on the fraction-to-the-boundary parameter
τ = max(tau_min, 1 − μ). Registered default 0.99, which is what
both MonotoneMuUpdate and AdaptiveMuUpdate already carry as
their struct default, so forwarding it is behaviour-neutral for
a run that does not set the option (#551 / #677). Consumed by
both updaters; the adaptive one also uses it in the monotone
mode and for the post-oracle τ = max(tau_min, 1 − NLP error).
sigma_max: Numbersigma_max / sigma_min — clamp on the centering parameter σ
chosen by QualityFunctionMuOracle. Only consumed when
mu_strategy=adaptive and mu_oracle=quality-function.
Defaults from IpQualityFunctionMuOracle.cpp:RegisterOptions.
sigma_min: Number§adaptive_mu_globalization: AdaptiveMuGlobalizationadaptive_mu_globalization — globalization strategy for the
adaptive μ-selection mode. Mirrors
IpAdaptiveMuUpdate.cpp:RegisterOptions. Default is
ObjConstrFilter; the Mehrotra cascade switches to
NeverMonotoneMode to disable globalization entirely.
quality_function_norm_type: NormTypequality_function_norm_type — norm used inside the quality
function to aggregate the three KKT components. Forwarded to
QualityFunctionMuOracle when mu_oracle=quality-function.
quality_function_centrality: CentralityTypequality_function_centrality — centrality penalty term added
to the quality function.
quality_function_balancing_term: BalancingTermTypequality_function_balancing_term — balancing penalty term in
the quality function (kicks in when complementarity is far
below infeasibilities).
quality_function_max_section_steps: i32quality_function_max_section_steps — cap on golden-section
iterations when picking σ. Default 8.
quality_function_section_sigma_tol: Numberquality_function_section_sigma_tol — width tolerance in
σ-space for golden section. Default 1e-2.
quality_function_section_qf_tol: Numberquality_function_section_qf_tol — relative flatness
tolerance for golden section. Default 0.0.
adaptive_mu_safeguard_factor: Numberadaptive_mu_safeguard_factor — guard for the LOQO fallback
in adaptive mode. Default 0.0.
adaptive_mu_monotone_init_factor: Numberadaptive_mu_monotone_init_factor — multiplier on the
average complementarity when seeding monotone mode after a
free-mode bailout. Default 0.8.
adaptive_mu_restore_previous_iterate: booladaptive_mu_restore_previous_iterate — restore the most
recent free-mode iterate when switching to fixed mode.
Default false.
adaptive_mu_max_free_returns: i32adaptive_mu_max_free_returns (pounce#749, POUNCE
extension). Cap on how many times the adaptive strategy may
leave fixed-mu mode. -1 = unlimited (upstream behavior).
adaptive_mu_budget_pin_fraction: Numberadaptive_mu_budget_pin_fraction (pounce#753, POUNCE
extension). Fraction of an explicitly-set max_cpu_time /
max_wall_time after which the adaptive strategy stops
returning to free-mu mode and finishes monotone. 1.0
disables. Inert unless the caller set a time budget.
adaptive_mu_kkterror_red_iters: usizeadaptive_mu_kkterror_red_iters — window length for the
KKT_ERROR globalization history. Default 4.
adaptive_mu_kkterror_red_fact: Numberadaptive_mu_kkterror_red_fact — required relative reduction
of the KKT error over the window. Default 0.9999.
adaptive_mu_kkt_norm_type: AdaptiveMuKktNormadaptive_mu_kkt_norm_type — norm used to score the iterate
in adaptive globalization decisions.
filter_margin_fact: Numberfilter_margin_fact — width factor of the margin an entry must
clear in the obj-constr-filter adaptive globalization test
(margin = filter_margin_fact * min(filter_max_margin, err)).
Only consumed when mu_strategy=adaptive and
adaptive_mu_globalization=obj-constr-filter (the default).
Default 1e-5, from IpAdaptiveMuUpdate.cpp:RegisterOptions.
filter_max_margin: Numberfilter_max_margin — cap on the margin above. Default 1.0,
from IpAdaptiveMuUpdate.cpp:RegisterOptions.
probing_iterate_quality_factor: Numberprobing_iterate_quality_factor (default 1e4, pounce-specific
— see pounce#58). When the probing (Mehrotra) μ-oracle is
about to read curr_avrg_compl() for its mu_curr input, a
single imbalanced (s_i, z_i) pair can inflate the average
5+ orders above the stored data.curr_mu. The oracle then
returns σ · mu_curr ≫ previous μ, throwing the iterate out
of the convergence neighborhood. This guard short-circuits
that case by signalling restoration when the ratio
curr_avrg_compl / curr_mu exceeds the factor. Set to 0 or
any non-positive value to disable.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for MuOptions
impl RefUnwindSafe for MuOptions
impl Send for MuOptions
impl Sync for MuOptions
impl Unpin for MuOptions
impl UnsafeUnpin for MuOptions
impl UnwindSafe for MuOptions
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T, U> Imply<T> for U
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
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> ⓘ
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> ⓘ
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