pub struct LineSearchOptions {Show 20 fields
pub watchdog_shortened_iter_trigger: Index,
pub watchdog_trial_iter_max: Index,
pub soft_resto_pderror_reduction_factor: Number,
pub max_soft_resto_iters: Index,
pub accept_every_trial_step: bool,
pub alpha_for_y: AlphaForY,
pub eta_phi: Number,
pub theta_min_fact: Number,
pub theta_max_fact: Number,
pub gamma_phi: Number,
pub gamma_theta: Number,
pub s_phi: Number,
pub s_theta: Number,
pub alpha_min_frac: Number,
pub obj_max_inc: Number,
pub max_filter_resets: Index,
pub filter_reset_trigger: Index,
pub max_soc: Index,
pub kappa_soc: Number,
pub soc_method: Index,
}Expand description
Knobs baked into the assembled BacktrackingLineSearch. Defaults
mirror IpBacktrackingLineSearch.cpp:RegisterOptions.
Fields§
§watchdog_shortened_iter_trigger: Index§watchdog_trial_iter_max: Index§soft_resto_pderror_reduction_factor: Numbersoft_resto_pderror_reduction_factor — required relative
reduction in the primal-dual error for a soft-resto step.
0 disables the soft restoration phase.
max_soft_resto_iters: Indexmax_soft_resto_iters — cap on consecutive soft-resto
iterations before full restoration is forced.
accept_every_trial_step: boolaccept_every_trial_step — short-circuits the filter / alpha
loop and accepts the full fraction-to-the-boundary step every
outer iteration. Mirrors upstream’s
IpBacktrackingLineSearch::accept_every_trial_step_. Drops
global convergence guarantees; only safe for problems where the
Newton step is already a descent step (LPs, convex QPs). The
Mehrotra cascade in application.rs flips this on.
alpha_for_y: AlphaForYalpha_for_y — policy for the equality-multiplier (y_c / y_d)
step length. Upstream default is Primal; the Mehrotra cascade
switches to BoundMult.
eta_phi: Numbereta_phi — relaxation factor in the Armijo condition (Eqn. (20)).
theta_min_fact: Numbertheta_min_fact — constraint-violation threshold factor in the
switching rule.
theta_max_fact: Numbertheta_max_fact — upper-bound factor for constraint violation in
the filter (Eqn. (21)).
gamma_phi: Numbergamma_phi — filter margin factor for the barrier function
(Eqn. (18a)).
gamma_theta: Numbergamma_theta — filter margin factor for the constraint violation
(Eqn. (18b)).
s_phi: Numbers_phi — exponent for the linear barrier model in the switching
rule (Eqn. (19)).
s_theta: Numbers_theta — exponent for the current constraint violation in the
switching rule (Eqn. (19)).
alpha_min_frac: Numberalpha_min_frac — safety factor for the minimal step size before
switching to restoration (gamma_alpha, Eqn. (23)).
obj_max_inc: Numberobj_max_inc — max acceptable increase (orders of magnitude) of
the barrier objective for a trial point.
max_filter_resets: Indexmax_filter_resets — maximum number of filter resets allowed
(0 disables the reset heuristic).
filter_reset_trigger: Indexfilter_reset_trigger — successive filter-rejected iterations that
trigger a filter reset.
max_soc: Indexmax_soc — max second-order-correction trial steps per iteration;
0 disables SOC.
kappa_soc: Numberkappa_soc — sufficient-reduction factor for a SOC step to be
continued.
soc_method: Indexsoc_method — 0 (paper method) or 1 (alpha-on-rhs variant).
Trait Implementations§
Source§impl Clone for LineSearchOptions
impl Clone for LineSearchOptions
Source§fn clone(&self) -> LineSearchOptions
fn clone(&self) -> LineSearchOptions
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for LineSearchOptions
impl Debug for LineSearchOptions
Auto Trait Implementations§
impl Freeze for LineSearchOptions
impl RefUnwindSafe for LineSearchOptions
impl Send for LineSearchOptions
impl Sync for LineSearchOptions
impl Unpin for LineSearchOptions
impl UnsafeUnpin for LineSearchOptions
impl UnwindSafe for LineSearchOptions
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