Ipopt  3.12.12
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Member Functions | Private Member Functions | Private Attributes | List of all members
Ipopt::QualityFunctionMuOracle Class Reference

Implementation of the probing strategy for computing the barrier parameter. More...

#include <IpQualityFunctionMuOracle.hpp>

+ Inheritance diagram for Ipopt::QualityFunctionMuOracle:

Public Types

Public enums. Some of those are also used for the

quality function

enum  NormEnum { NM_NORM_1 =0, NM_NORM_2_SQUARED, NM_NORM_MAX, NM_NORM_2 }
 enum for norm type More...
 
enum  CentralityEnum { CEN_NONE =0, CEN_LOG, CEN_RECIPROCAL, CEN_CUBED_RECIPROCAL }
 enum for centrality type More...
 
enum  BalancingTermEnum { BT_NONE =0, BT_CUBIC }
 enum for the quality function balancing term type More...
 

Public Member Functions

virtual bool InitializeImpl (const OptionsList &options, const std::string &prefix)
 overloaded from AlgorithmStrategyObject More...
 
virtual bool CalculateMu (Number mu_min, Number mu_max, Number &new_mu)
 Method for computing the value of the barrier parameter that could be used in the current iteration (using the LOQO formula). More...
 
Constructors/Destructors
 QualityFunctionMuOracle (const SmartPtr< PDSystemSolver > &pd_solver)
 Constructor. More...
 
virtual ~QualityFunctionMuOracle ()
 Default destructor. More...
 
- Public Member Functions inherited from Ipopt::MuOracle
 MuOracle ()
 Default Constructor. More...
 
virtual ~MuOracle ()
 Default destructor. More...
 
- 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. More...
 
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. More...
 
 AlgorithmStrategyObject ()
 Default Constructor. More...
 
virtual ~AlgorithmStrategyObject ()
 Default Destructor. More...
 
- 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. More...
 

Private Member Functions

Number CalculateQualityFunction (Number sigma, const Vector &step_aff_x_L, const Vector &step_aff_x_U, const Vector &step_aff_s_L, const Vector &step_aff_s_U, const Vector &step_aff_y_c, const Vector &step_aff_y_d, const Vector &step_aff_z_L, const Vector &step_aff_z_U, const Vector &step_aff_v_L, const Vector &step_aff_v_U, const Vector &step_cen_x_L, const Vector &step_cen_x_U, const Vector &step_cen_s_L, const Vector &step_cen_s_U, const Vector &step_cen_y_c, const Vector &step_cen_y_d, const Vector &step_cen_z_L, const Vector &step_cen_z_U, const Vector &step_cen_v_L, const Vector &step_cen_v_U)
 Auxilliary function for computing the average complementarity at a point, given step sizes and step. More...
 
Number PerformGoldenSection (Number sigma_up, Number q_up, Number sigma_lo, Number q_lo, Number sigma_tol, Number qf_tol, const Vector &step_aff_x_L, const Vector &step_aff_x_U, const Vector &step_aff_s_L, const Vector &step_aff_s_U, const Vector &step_aff_y_c, const Vector &step_aff_y_d, const Vector &step_aff_z_L, const Vector &step_aff_z_U, const Vector &step_aff_v_L, const Vector &step_aff_v_U, const Vector &step_cen_x_L, const Vector &step_cen_x_U, const Vector &step_cen_s_L, const Vector &step_cen_s_U, const Vector &step_cen_y_c, const Vector &step_cen_y_d, const Vector &step_cen_z_L, const Vector &step_cen_z_U, const Vector &step_cen_v_L, const Vector &step_cen_v_U)
 Auxilliary function performing the golden section. More...
 
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.

 QualityFunctionMuOracle ()
 Default Constructor. More...
 
 QualityFunctionMuOracle (const QualityFunctionMuOracle &)
 Copy Constructor. More...
 
void operator= (const QualityFunctionMuOracle &)
 Overloaded Equals Operator. More...
 
Number ScaleSigma (Number sigma)
 Auxilliary functions for scaling the sigma axis in the golden section procedure. More...
 
Number UnscaleSigma (Number scaled_sigma)
 

Private Attributes

SmartPtr< PDSystemSolverpd_solver_
 Pointer to the object that should be used to solve the primal-dual system. More...
 
Index count_qf_evals_
 
Algorithmic parameters

Auxilliary function performing the golden section in the logarithmic scale

Number sigma_max_
 Upper bound on centering parameter sigma. More...
 
Number sigma_min_
 Lower bound on centering parameter sigma. More...
 
NormEnum quality_function_norm_
 Norm to be used for the quality function. More...
 
CentralityEnum quality_function_centrality_
 Flag indicating how centrality should be involved in the quality function. More...
 
BalancingTermEnum quality_function_balancing_term_
 Flag indicating whether we use a balancing term in the quality function. More...
 
Number quality_function_section_sigma_tol_
 Relative tolerance for golden bi-section algorithm in sigma space. More...
 
Number quality_function_section_qf_tol_
 Relative tolerance for golden bi-section algorithm in function value space. More...
 
Index quality_function_max_section_steps_
 Maximal number of bi-section steps in the golden section search for sigma. More...
 
Temporary work space vectors. We use those to avoid

repeated reallocation in CalculateQualityFunction.

SmartPtr< Vectortmp_step_x_L_
 
SmartPtr< Vectortmp_step_x_U_
 
SmartPtr< Vectortmp_step_s_L_
 
SmartPtr< Vectortmp_step_s_U_
 
SmartPtr< Vectortmp_step_z_L_
 
SmartPtr< Vectortmp_step_z_U_
 
SmartPtr< Vectortmp_step_v_L_
 
SmartPtr< Vectortmp_step_v_U_
 
SmartPtr< Vectortmp_slack_x_L_
 
SmartPtr< Vectortmp_slack_x_U_
 
SmartPtr< Vectortmp_slack_s_L_
 
SmartPtr< Vectortmp_slack_s_U_
 
SmartPtr< Vectortmp_z_L_
 
SmartPtr< Vectortmp_z_U_
 
SmartPtr< Vectortmp_v_L_
 
SmartPtr< Vectortmp_v_U_
 
Quantities used many times in CalculateQualityFunction,

which we store here instead of retrieving them from cache every time.

I (AW) don't know if that really makes a difference, but some of those things showed up in gprof.

bool initialized_
 
Index n_dual_
 
Index n_pri_
 
Index n_comp_
 
SmartPtr< const Vectorcurr_slack_x_L_
 
SmartPtr< const Vectorcurr_slack_x_U_
 
SmartPtr< const Vectorcurr_slack_s_L_
 
SmartPtr< const Vectorcurr_slack_s_U_
 
SmartPtr< const Vectorcurr_z_L_
 
SmartPtr< const Vectorcurr_z_U_
 
SmartPtr< const Vectorcurr_v_L_
 
SmartPtr< const Vectorcurr_v_U_
 
Number curr_grad_lag_x_asum_
 
Number curr_grad_lag_s_asum_
 
Number curr_c_asum_
 
Number curr_d_minus_s_asum_
 
Number curr_grad_lag_x_nrm2_
 
Number curr_grad_lag_s_nrm2_
 
Number curr_c_nrm2_
 
Number curr_d_minus_s_nrm2_
 
Number curr_grad_lag_x_amax_
 
Number curr_grad_lag_s_amax_
 
Number curr_c_amax_
 
Number curr_d_minus_s_amax_
 

Additional Inherited Members

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

Detailed Description

Implementation of the probing strategy for computing the barrier parameter.

Definition at line 22 of file IpQualityFunctionMuOracle.hpp.

Member Enumeration Documentation

enum for norm type

Enumerator
NM_NORM_1 
NM_NORM_2_SQUARED 
NM_NORM_MAX 
NM_NORM_2 

Definition at line 51 of file IpQualityFunctionMuOracle.hpp.

enum for centrality type

Enumerator
CEN_NONE 
CEN_LOG 
CEN_RECIPROCAL 
CEN_CUBED_RECIPROCAL 

Definition at line 59 of file IpQualityFunctionMuOracle.hpp.

enum for the quality function balancing term type

Enumerator
BT_NONE 
BT_CUBIC 

Definition at line 67 of file IpQualityFunctionMuOracle.hpp.

Constructor & Destructor Documentation

Ipopt::QualityFunctionMuOracle::QualityFunctionMuOracle ( const SmartPtr< PDSystemSolver > &  pd_solver)

Constructor.

virtual Ipopt::QualityFunctionMuOracle::~QualityFunctionMuOracle ( )
virtual

Default destructor.

Ipopt::QualityFunctionMuOracle::QualityFunctionMuOracle ( )
private

Default Constructor.

Ipopt::QualityFunctionMuOracle::QualityFunctionMuOracle ( const QualityFunctionMuOracle )
private

Copy Constructor.

Member Function Documentation

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

overloaded from AlgorithmStrategyObject

Implements Ipopt::MuOracle.

virtual bool Ipopt::QualityFunctionMuOracle::CalculateMu ( Number  mu_min,
Number  mu_max,
Number new_mu 
)
virtual

Method for computing the value of the barrier parameter that could be used in the current iteration (using the LOQO formula).

Implements Ipopt::MuOracle.

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

Methods for IpoptType.

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

Overloaded Equals Operator.

Number Ipopt::QualityFunctionMuOracle::CalculateQualityFunction ( Number  sigma,
const Vector step_aff_x_L,
const Vector step_aff_x_U,
const Vector step_aff_s_L,
const Vector step_aff_s_U,
const Vector step_aff_y_c,
const Vector step_aff_y_d,
const Vector step_aff_z_L,
const Vector step_aff_z_U,
const Vector step_aff_v_L,
const Vector step_aff_v_U,
const Vector step_cen_x_L,
const Vector step_cen_x_U,
const Vector step_cen_s_L,
const Vector step_cen_s_U,
const Vector step_cen_y_c,
const Vector step_cen_y_d,
const Vector step_cen_z_L,
const Vector step_cen_z_U,
const Vector step_cen_v_L,
const Vector step_cen_v_U 
)
private

Auxilliary function for computing the average complementarity at a point, given step sizes and step.

Number Ipopt::QualityFunctionMuOracle::PerformGoldenSection ( Number  sigma_up,
Number  q_up,
Number  sigma_lo,
Number  q_lo,
Number  sigma_tol,
Number  qf_tol,
const Vector step_aff_x_L,
const Vector step_aff_x_U,
const Vector step_aff_s_L,
const Vector step_aff_s_U,
const Vector step_aff_y_c,
const Vector step_aff_y_d,
const Vector step_aff_z_L,
const Vector step_aff_z_U,
const Vector step_aff_v_L,
const Vector step_aff_v_U,
const Vector step_cen_x_L,
const Vector step_cen_x_U,
const Vector step_cen_s_L,
const Vector step_cen_s_U,
const Vector step_cen_y_c,
const Vector step_cen_y_d,
const Vector step_cen_z_L,
const Vector step_cen_z_U,
const Vector step_cen_v_L,
const Vector step_cen_v_U 
)
private

Auxilliary function performing the golden section.

Number Ipopt::QualityFunctionMuOracle::ScaleSigma ( Number  sigma)
private

Auxilliary functions for scaling the sigma axis in the golden section procedure.

Number Ipopt::QualityFunctionMuOracle::UnscaleSigma ( Number  scaled_sigma)
private

Member Data Documentation

SmartPtr<PDSystemSolver> Ipopt::QualityFunctionMuOracle::pd_solver_
private

Pointer to the object that should be used to solve the primal-dual system.

Definition at line 96 of file IpQualityFunctionMuOracle.hpp.

Number Ipopt::QualityFunctionMuOracle::sigma_max_
private

Upper bound on centering parameter sigma.

Definition at line 190 of file IpQualityFunctionMuOracle.hpp.

Number Ipopt::QualityFunctionMuOracle::sigma_min_
private

Lower bound on centering parameter sigma.

Definition at line 192 of file IpQualityFunctionMuOracle.hpp.

NormEnum Ipopt::QualityFunctionMuOracle::quality_function_norm_
private

Norm to be used for the quality function.

Definition at line 194 of file IpQualityFunctionMuOracle.hpp.

CentralityEnum Ipopt::QualityFunctionMuOracle::quality_function_centrality_
private

Flag indicating how centrality should be involved in the quality function.

Definition at line 197 of file IpQualityFunctionMuOracle.hpp.

BalancingTermEnum Ipopt::QualityFunctionMuOracle::quality_function_balancing_term_
private

Flag indicating whether we use a balancing term in the quality function.

Definition at line 201 of file IpQualityFunctionMuOracle.hpp.

Number Ipopt::QualityFunctionMuOracle::quality_function_section_sigma_tol_
private

Relative tolerance for golden bi-section algorithm in sigma space.

Definition at line 204 of file IpQualityFunctionMuOracle.hpp.

Number Ipopt::QualityFunctionMuOracle::quality_function_section_qf_tol_
private

Relative tolerance for golden bi-section algorithm in function value space.

Definition at line 207 of file IpQualityFunctionMuOracle.hpp.

Index Ipopt::QualityFunctionMuOracle::quality_function_max_section_steps_
private

Maximal number of bi-section steps in the golden section search for sigma.

Definition at line 210 of file IpQualityFunctionMuOracle.hpp.

SmartPtr<Vector> Ipopt::QualityFunctionMuOracle::tmp_step_x_L_
private

Definition at line 216 of file IpQualityFunctionMuOracle.hpp.

SmartPtr<Vector> Ipopt::QualityFunctionMuOracle::tmp_step_x_U_
private

Definition at line 217 of file IpQualityFunctionMuOracle.hpp.

SmartPtr<Vector> Ipopt::QualityFunctionMuOracle::tmp_step_s_L_
private

Definition at line 218 of file IpQualityFunctionMuOracle.hpp.

SmartPtr<Vector> Ipopt::QualityFunctionMuOracle::tmp_step_s_U_
private

Definition at line 219 of file IpQualityFunctionMuOracle.hpp.

SmartPtr<Vector> Ipopt::QualityFunctionMuOracle::tmp_step_z_L_
private

Definition at line 220 of file IpQualityFunctionMuOracle.hpp.

SmartPtr<Vector> Ipopt::QualityFunctionMuOracle::tmp_step_z_U_
private

Definition at line 221 of file IpQualityFunctionMuOracle.hpp.

SmartPtr<Vector> Ipopt::QualityFunctionMuOracle::tmp_step_v_L_
private

Definition at line 222 of file IpQualityFunctionMuOracle.hpp.

SmartPtr<Vector> Ipopt::QualityFunctionMuOracle::tmp_step_v_U_
private

Definition at line 223 of file IpQualityFunctionMuOracle.hpp.

SmartPtr<Vector> Ipopt::QualityFunctionMuOracle::tmp_slack_x_L_
private

Definition at line 225 of file IpQualityFunctionMuOracle.hpp.

SmartPtr<Vector> Ipopt::QualityFunctionMuOracle::tmp_slack_x_U_
private

Definition at line 226 of file IpQualityFunctionMuOracle.hpp.

SmartPtr<Vector> Ipopt::QualityFunctionMuOracle::tmp_slack_s_L_
private

Definition at line 227 of file IpQualityFunctionMuOracle.hpp.

SmartPtr<Vector> Ipopt::QualityFunctionMuOracle::tmp_slack_s_U_
private

Definition at line 228 of file IpQualityFunctionMuOracle.hpp.

SmartPtr<Vector> Ipopt::QualityFunctionMuOracle::tmp_z_L_
private

Definition at line 229 of file IpQualityFunctionMuOracle.hpp.

SmartPtr<Vector> Ipopt::QualityFunctionMuOracle::tmp_z_U_
private

Definition at line 230 of file IpQualityFunctionMuOracle.hpp.

SmartPtr<Vector> Ipopt::QualityFunctionMuOracle::tmp_v_L_
private

Definition at line 231 of file IpQualityFunctionMuOracle.hpp.

SmartPtr<Vector> Ipopt::QualityFunctionMuOracle::tmp_v_U_
private

Definition at line 232 of file IpQualityFunctionMuOracle.hpp.

Index Ipopt::QualityFunctionMuOracle::count_qf_evals_
private

Definition at line 236 of file IpQualityFunctionMuOracle.hpp.

bool Ipopt::QualityFunctionMuOracle::initialized_
private

Definition at line 243 of file IpQualityFunctionMuOracle.hpp.

Index Ipopt::QualityFunctionMuOracle::n_dual_
private

Definition at line 244 of file IpQualityFunctionMuOracle.hpp.

Index Ipopt::QualityFunctionMuOracle::n_pri_
private

Definition at line 245 of file IpQualityFunctionMuOracle.hpp.

Index Ipopt::QualityFunctionMuOracle::n_comp_
private

Definition at line 246 of file IpQualityFunctionMuOracle.hpp.

SmartPtr<const Vector> Ipopt::QualityFunctionMuOracle::curr_slack_x_L_
private

Definition at line 248 of file IpQualityFunctionMuOracle.hpp.

SmartPtr<const Vector> Ipopt::QualityFunctionMuOracle::curr_slack_x_U_
private

Definition at line 249 of file IpQualityFunctionMuOracle.hpp.

SmartPtr<const Vector> Ipopt::QualityFunctionMuOracle::curr_slack_s_L_
private

Definition at line 250 of file IpQualityFunctionMuOracle.hpp.

SmartPtr<const Vector> Ipopt::QualityFunctionMuOracle::curr_slack_s_U_
private

Definition at line 251 of file IpQualityFunctionMuOracle.hpp.

SmartPtr<const Vector> Ipopt::QualityFunctionMuOracle::curr_z_L_
private

Definition at line 253 of file IpQualityFunctionMuOracle.hpp.

SmartPtr<const Vector> Ipopt::QualityFunctionMuOracle::curr_z_U_
private

Definition at line 254 of file IpQualityFunctionMuOracle.hpp.

SmartPtr<const Vector> Ipopt::QualityFunctionMuOracle::curr_v_L_
private

Definition at line 255 of file IpQualityFunctionMuOracle.hpp.

SmartPtr<const Vector> Ipopt::QualityFunctionMuOracle::curr_v_U_
private

Definition at line 256 of file IpQualityFunctionMuOracle.hpp.

Number Ipopt::QualityFunctionMuOracle::curr_grad_lag_x_asum_
private

Definition at line 258 of file IpQualityFunctionMuOracle.hpp.

Number Ipopt::QualityFunctionMuOracle::curr_grad_lag_s_asum_
private

Definition at line 259 of file IpQualityFunctionMuOracle.hpp.

Number Ipopt::QualityFunctionMuOracle::curr_c_asum_
private

Definition at line 260 of file IpQualityFunctionMuOracle.hpp.

Number Ipopt::QualityFunctionMuOracle::curr_d_minus_s_asum_
private

Definition at line 261 of file IpQualityFunctionMuOracle.hpp.

Number Ipopt::QualityFunctionMuOracle::curr_grad_lag_x_nrm2_
private

Definition at line 263 of file IpQualityFunctionMuOracle.hpp.

Number Ipopt::QualityFunctionMuOracle::curr_grad_lag_s_nrm2_
private

Definition at line 264 of file IpQualityFunctionMuOracle.hpp.

Number Ipopt::QualityFunctionMuOracle::curr_c_nrm2_
private

Definition at line 265 of file IpQualityFunctionMuOracle.hpp.

Number Ipopt::QualityFunctionMuOracle::curr_d_minus_s_nrm2_
private

Definition at line 266 of file IpQualityFunctionMuOracle.hpp.

Number Ipopt::QualityFunctionMuOracle::curr_grad_lag_x_amax_
private

Definition at line 268 of file IpQualityFunctionMuOracle.hpp.

Number Ipopt::QualityFunctionMuOracle::curr_grad_lag_s_amax_
private

Definition at line 269 of file IpQualityFunctionMuOracle.hpp.

Number Ipopt::QualityFunctionMuOracle::curr_c_amax_
private

Definition at line 270 of file IpQualityFunctionMuOracle.hpp.

Number Ipopt::QualityFunctionMuOracle::curr_d_minus_s_amax_
private

Definition at line 271 of file IpQualityFunctionMuOracle.hpp.


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