Ipopt Documentation  
 
Loading...
Searching...
No Matches
Ipopt::AdaptiveMuUpdate Class Reference

Non-monotone mu update. More...

#include <IpAdaptiveMuUpdate.hpp>

+ Inheritance diagram for Ipopt::AdaptiveMuUpdate:

Public Member Functions

virtual bool InitializeImpl (const OptionsList &options, const std::string &prefix)
 Initialize method - overloaded from AlgorithmStrategyObject.
 
virtual bool UpdateBarrierParameter ()
 Method for determining the barrier parameter for the next iteration.
 
Constructors/Destructors
 AdaptiveMuUpdate (const SmartPtr< LineSearch > &linesearch, const SmartPtr< MuOracle > &free_mu_oracle, const SmartPtr< MuOracle > &fix_mu_oracle=NULL)
 Constructor.
 
virtual ~AdaptiveMuUpdate ()
 Destructor.
 
- Public Member Functions inherited from Ipopt::MuUpdate
 MuUpdate ()
 Default Constructor.
 
virtual ~MuUpdate ()
 Destructor.
 
- Public Member Functions inherited from Ipopt::AlgorithmStrategyObject
bool Initialize (const Journalist &jnlst, IpoptNLP &ip_nlp, IpoptData &ip_data, IpoptCalculatedQuantities &ip_cq, const OptionsList &options, const std::string &prefix)
 This method is called every time the algorithm starts again - it is used to reset any internal state.
 
bool ReducedInitialize (const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
 Reduced version of the Initialize method, which does not require special Ipopt information.
 
 AlgorithmStrategyObject ()
 Default Constructor.
 
virtual ~AlgorithmStrategyObject ()
 Destructor.
 
- Public Member Functions inherited from Ipopt::ReferencedObject
 ReferencedObject ()
 
virtual ~ReferencedObject ()
 
Index ReferenceCount () const
 
void AddRef (const Referencer *referencer) const
 
void ReleaseRef (const Referencer *referencer) const
 

Static Public Member Functions

static void RegisterOptions (SmartPtr< RegisteredOptions > roptions)
 Methods for IpoptType.
 

Private Member Functions

Default Compiler Generated Methods

(Hidden to avoid implicit creation/calling).

These methods are not implemented and we do not want the compiler to implement them for us, so we declare them private and do not define them. This ensures that they will not be implicitly created/called.

 AdaptiveMuUpdate ()
 Default Constructor.
 
 AdaptiveMuUpdate (const AdaptiveMuUpdate &)
 Copy Constructor.
 
void operator= (const AdaptiveMuUpdate &)
 Default Assignment Operator.
 

Private Attributes

Number init_dual_inf_
 Dual infeasibility at initial point.
 
Number init_primal_inf_
 Primal infeasibility at initial point.
 
bool no_bounds_
 Flag indicating whether the problem has any inequality constraints.
 
bool check_if_no_bounds_
 Flag indicating whether no_bounds_ has been initialized.
 
Strategy objects
SmartPtr< LineSearchlinesearch_
 Line search object of the Ipopt algorithm.
 
SmartPtr< MuOraclefree_mu_oracle_
 Pointer to strategy object that is to be used for computing a suggested value of the barrier parameter in the free mu mode.
 
SmartPtr< MuOraclefix_mu_oracle_
 Pointer to strategy object that is to be used for computing a suggested value for the fixed mu mode.
 
Most recent accepted point in free mode, from which

fixed mode should be started.

SmartPtr< const IteratesVectoraccepted_point_
 

Algorithmic parameters

enum  AdaptiveMuGlobalizationEnum { KKT_ERROR = 0 , FILTER_OBJ_CONSTR , NEVER_MONOTONE_MODE }
 enumeration for adaptive globalization More...
 
Number mu_max_fact_
 
Number mu_max_
 
Number mu_min_
 
Number mu_target_
 
bool mu_min_default_
 
Number tau_min_
 
Number adaptive_mu_safeguard_factor_
 
Number adaptive_mu_monotone_init_factor_
 
Number barrier_tol_factor_
 
Number mu_linear_decrease_factor_
 
Number mu_superlinear_decrease_power_
 
QualityFunctionMuOracle::NormEnum adaptive_mu_kkt_norm_
 
QualityFunctionMuOracle::CentralityEnum adaptive_mu_kkt_centrality_
 
QualityFunctionMuOracle::BalancingTermEnum adaptive_mu_kkt_balancing_term_
 
AdaptiveMuGlobalizationEnum adaptive_mu_globalization_
 Flag indicating which globalization strategy should be used.
 
Number filter_max_margin_
 Maximal margin in filter.
 
Number filter_margin_fact_
 Factor for filter margin.
 
Number compl_inf_tol_
 Unscaled tolerance for complementarity.
 

Methods and data defining the outer globalization

strategy (might be a strategy object later).

Index num_refs_max_
 Maximal number of reference values (algorithmic parameter)
 
std::list< Numberrefs_vals_
 Values of the currently stored reference values (norm of pd equations)
 
Number refs_red_fact_
 Factor requested to reduce the reference values.
 
Filter filter_
 Alternatively, we might also want to use a filter.
 
bool restore_accepted_iterate_
 Flag indicating whether the most recent accepted step should be restored, when switching to the fixed mode.
 
void InitializeFixedMuGlobalization ()
 
bool CheckSufficientProgress ()
 Check whether the point in the "current" fields offers sufficient reduction in order to remain in or switch to the free mu mode.
 
void RememberCurrentPointAsAccepted ()
 Include the current point in internal memory to as accepted point.
 
Number NewFixedMu ()
 Compute the value of the fixed mu that should be used in a new fixed mu phase.
 
Number Compute_tau_monotone (Number mu)
 Compute value for the fraction-to-the-boundary parameter given mu in the monotone phase.
 
Number quality_function_pd_system ()
 Method for computing the norm of the primal dual system at the current point.
 
Number lower_mu_safeguard ()
 Method for computing a lower safeguard bound for the barrier parameter.
 
Number max_ref_val ()
 Computer the currently largest reference value.
 
Number min_ref_val ()
 Computer the currently smallest reference value.
 

Additional Inherited Members

- Protected Member Functions inherited from Ipopt::AlgorithmStrategyObject
const JournalistJnlst () const
 
IpoptNLPIpNLP () const
 
IpoptDataIpData () const
 
IpoptCalculatedQuantitiesIpCq () const
 
bool HaveIpData () const
 

Detailed Description

Non-monotone mu update.

Definition at line 20 of file IpAdaptiveMuUpdate.hpp.

Member Enumeration Documentation

◆ AdaptiveMuGlobalizationEnum

enumeration for adaptive globalization

Enumerator
KKT_ERROR 
FILTER_OBJ_CONSTR 
NEVER_MONOTONE_MODE 

Definition at line 98 of file IpAdaptiveMuUpdate.hpp.

Constructor & Destructor Documentation

◆ AdaptiveMuUpdate() [1/3]

Ipopt::AdaptiveMuUpdate::AdaptiveMuUpdate ( const SmartPtr< LineSearch > &  linesearch,
const SmartPtr< MuOracle > &  free_mu_oracle,
const SmartPtr< MuOracle > &  fix_mu_oracle = NULL 
)

Constructor.

◆ ~AdaptiveMuUpdate()

virtual Ipopt::AdaptiveMuUpdate::~AdaptiveMuUpdate ( )
virtual

Destructor.

◆ AdaptiveMuUpdate() [2/3]

Ipopt::AdaptiveMuUpdate::AdaptiveMuUpdate ( )
private

Default Constructor.

◆ AdaptiveMuUpdate() [3/3]

Ipopt::AdaptiveMuUpdate::AdaptiveMuUpdate ( const AdaptiveMuUpdate )
private

Copy Constructor.

Member Function Documentation

◆ InitializeImpl()

virtual bool Ipopt::AdaptiveMuUpdate::InitializeImpl ( const OptionsList options,
const std::string &  prefix 
)
virtual

Initialize method - overloaded from AlgorithmStrategyObject.

Implements Ipopt::MuUpdate.

◆ UpdateBarrierParameter()

virtual bool Ipopt::AdaptiveMuUpdate::UpdateBarrierParameter ( )
virtual

Method for determining the barrier parameter for the next iteration.

When the optimality error for the current barrier parameter is less than a tolerance, the barrier parameter is reduced, and the Reset method of the LineSearch object linesearch is called.

Implements Ipopt::MuUpdate.

◆ RegisterOptions()

static void Ipopt::AdaptiveMuUpdate::RegisterOptions ( SmartPtr< RegisteredOptions roptions)
static

Methods for IpoptType.

◆ operator=()

void Ipopt::AdaptiveMuUpdate::operator= ( const AdaptiveMuUpdate )
private

Default Assignment Operator.

◆ InitializeFixedMuGlobalization()

void Ipopt::AdaptiveMuUpdate::InitializeFixedMuGlobalization ( )
private

◆ CheckSufficientProgress()

bool Ipopt::AdaptiveMuUpdate::CheckSufficientProgress ( )
private

Check whether the point in the "current" fields offers sufficient reduction in order to remain in or switch to the free mu mode.

◆ RememberCurrentPointAsAccepted()

void Ipopt::AdaptiveMuUpdate::RememberCurrentPointAsAccepted ( )
private

Include the current point in internal memory to as accepted point.

◆ NewFixedMu()

Number Ipopt::AdaptiveMuUpdate::NewFixedMu ( )
private

Compute the value of the fixed mu that should be used in a new fixed mu phase.

This method is called at the beginning of a new fixed mu phase.

◆ Compute_tau_monotone()

Number Ipopt::AdaptiveMuUpdate::Compute_tau_monotone ( Number  mu)
private

Compute value for the fraction-to-the-boundary parameter given mu in the monotone phase.

◆ quality_function_pd_system()

Number Ipopt::AdaptiveMuUpdate::quality_function_pd_system ( )
private

Method for computing the norm of the primal dual system at the current point.

For consistency, this is computed in the same way as the quality function is computed. This is the quantities used in the nonmonontone KKT reduction globalization.

◆ lower_mu_safeguard()

Number Ipopt::AdaptiveMuUpdate::lower_mu_safeguard ( )
private

Method for computing a lower safeguard bound for the barrier parameter.

For now, this is related to primal and dual infeasibility.

◆ max_ref_val()

Number Ipopt::AdaptiveMuUpdate::max_ref_val ( )
private

Computer the currently largest reference value.

◆ min_ref_val()

Number Ipopt::AdaptiveMuUpdate::min_ref_val ( )
private

Computer the currently smallest reference value.

Member Data Documentation

◆ mu_max_fact_

Number Ipopt::AdaptiveMuUpdate::mu_max_fact_
private

Definition at line 83 of file IpAdaptiveMuUpdate.hpp.

◆ mu_max_

Number Ipopt::AdaptiveMuUpdate::mu_max_
private

Definition at line 84 of file IpAdaptiveMuUpdate.hpp.

◆ mu_min_

Number Ipopt::AdaptiveMuUpdate::mu_min_
private

Definition at line 85 of file IpAdaptiveMuUpdate.hpp.

◆ mu_target_

Number Ipopt::AdaptiveMuUpdate::mu_target_
private

Definition at line 86 of file IpAdaptiveMuUpdate.hpp.

◆ mu_min_default_

bool Ipopt::AdaptiveMuUpdate::mu_min_default_
private

Definition at line 87 of file IpAdaptiveMuUpdate.hpp.

◆ tau_min_

Number Ipopt::AdaptiveMuUpdate::tau_min_
private

Definition at line 88 of file IpAdaptiveMuUpdate.hpp.

◆ adaptive_mu_safeguard_factor_

Number Ipopt::AdaptiveMuUpdate::adaptive_mu_safeguard_factor_
private

Definition at line 89 of file IpAdaptiveMuUpdate.hpp.

◆ adaptive_mu_monotone_init_factor_

Number Ipopt::AdaptiveMuUpdate::adaptive_mu_monotone_init_factor_
private

Definition at line 90 of file IpAdaptiveMuUpdate.hpp.

◆ barrier_tol_factor_

Number Ipopt::AdaptiveMuUpdate::barrier_tol_factor_
private

Definition at line 91 of file IpAdaptiveMuUpdate.hpp.

◆ mu_linear_decrease_factor_

Number Ipopt::AdaptiveMuUpdate::mu_linear_decrease_factor_
private

Definition at line 92 of file IpAdaptiveMuUpdate.hpp.

◆ mu_superlinear_decrease_power_

Number Ipopt::AdaptiveMuUpdate::mu_superlinear_decrease_power_
private

Definition at line 93 of file IpAdaptiveMuUpdate.hpp.

◆ adaptive_mu_kkt_norm_

QualityFunctionMuOracle::NormEnum Ipopt::AdaptiveMuUpdate::adaptive_mu_kkt_norm_
private

Definition at line 94 of file IpAdaptiveMuUpdate.hpp.

◆ adaptive_mu_kkt_centrality_

QualityFunctionMuOracle::CentralityEnum Ipopt::AdaptiveMuUpdate::adaptive_mu_kkt_centrality_
private

Definition at line 95 of file IpAdaptiveMuUpdate.hpp.

◆ adaptive_mu_kkt_balancing_term_

QualityFunctionMuOracle::BalancingTermEnum Ipopt::AdaptiveMuUpdate::adaptive_mu_kkt_balancing_term_
private

Definition at line 96 of file IpAdaptiveMuUpdate.hpp.

◆ adaptive_mu_globalization_

AdaptiveMuGlobalizationEnum Ipopt::AdaptiveMuUpdate::adaptive_mu_globalization_
private

Flag indicating which globalization strategy should be used.

Definition at line 105 of file IpAdaptiveMuUpdate.hpp.

◆ filter_max_margin_

Number Ipopt::AdaptiveMuUpdate::filter_max_margin_
private

Maximal margin in filter.

Definition at line 107 of file IpAdaptiveMuUpdate.hpp.

◆ filter_margin_fact_

Number Ipopt::AdaptiveMuUpdate::filter_margin_fact_
private

Factor for filter margin.

Definition at line 109 of file IpAdaptiveMuUpdate.hpp.

◆ compl_inf_tol_

Number Ipopt::AdaptiveMuUpdate::compl_inf_tol_
private

Unscaled tolerance for complementarity.

Definition at line 111 of file IpAdaptiveMuUpdate.hpp.

◆ linesearch_

SmartPtr<LineSearch> Ipopt::AdaptiveMuUpdate::linesearch_
private

Line search object of the Ipopt algorithm.


Definition at line 117 of file IpAdaptiveMuUpdate.hpp.

◆ free_mu_oracle_

SmartPtr<MuOracle> Ipopt::AdaptiveMuUpdate::free_mu_oracle_
private

Pointer to strategy object that is to be used for computing a suggested value of the barrier parameter in the free mu mode.

Definition at line 121 of file IpAdaptiveMuUpdate.hpp.

◆ fix_mu_oracle_

SmartPtr<MuOracle> Ipopt::AdaptiveMuUpdate::fix_mu_oracle_
private

Pointer to strategy object that is to be used for computing a suggested value for the fixed mu mode.

If NULL, the current average complementarity is used.

Definition at line 127 of file IpAdaptiveMuUpdate.hpp.

◆ init_dual_inf_

Number Ipopt::AdaptiveMuUpdate::init_dual_inf_
private

Dual infeasibility at initial point.

A negative value means that this quantity has not yet been initialized.

Definition at line 135 of file IpAdaptiveMuUpdate.hpp.

◆ init_primal_inf_

Number Ipopt::AdaptiveMuUpdate::init_primal_inf_
private

Primal infeasibility at initial point.

A negative value means that this quantity has not yet been initialized.

Definition at line 141 of file IpAdaptiveMuUpdate.hpp.

◆ num_refs_max_

Index Ipopt::AdaptiveMuUpdate::num_refs_max_
private

Maximal number of reference values (algorithmic parameter)

Definition at line 192 of file IpAdaptiveMuUpdate.hpp.

◆ refs_vals_

std::list<Number> Ipopt::AdaptiveMuUpdate::refs_vals_
private

Values of the currently stored reference values (norm of pd equations)

Definition at line 194 of file IpAdaptiveMuUpdate.hpp.

◆ refs_red_fact_

Number Ipopt::AdaptiveMuUpdate::refs_red_fact_
private

Factor requested to reduce the reference values.

Definition at line 196 of file IpAdaptiveMuUpdate.hpp.

◆ filter_

Filter Ipopt::AdaptiveMuUpdate::filter_
private

Alternatively, we might also want to use a filter.

Definition at line 199 of file IpAdaptiveMuUpdate.hpp.

◆ restore_accepted_iterate_

bool Ipopt::AdaptiveMuUpdate::restore_accepted_iterate_
private

Flag indicating whether the most recent accepted step should be restored, when switching to the fixed mode.

Definition at line 203 of file IpAdaptiveMuUpdate.hpp.

◆ no_bounds_

bool Ipopt::AdaptiveMuUpdate::no_bounds_
private

Flag indicating whether the problem has any inequality constraints.

Definition at line 207 of file IpAdaptiveMuUpdate.hpp.

◆ check_if_no_bounds_

bool Ipopt::AdaptiveMuUpdate::check_if_no_bounds_
private

Flag indicating whether no_bounds_ has been initialized.

Definition at line 209 of file IpAdaptiveMuUpdate.hpp.

◆ accepted_point_

SmartPtr<const IteratesVector> Ipopt::AdaptiveMuUpdate::accepted_point_
private

Definition at line 215 of file IpAdaptiveMuUpdate.hpp.


The documentation for this class was generated from the following file: