# Ipopt::QualityFunctionMuOracle Class Reference

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

`#include <IpQualityFunctionMuOracle.hpp>`

Inheritance diagram for Ipopt::QualityFunctionMuOracle:
[legend]

List of all members.

## 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
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).
Constructors/Destructors
| QualityFunctionMuOracle (const SmartPtr< PDSystemSolver > &pd_solver)
| Constructor.
virtual | ~QualityFunctionMuOracle ()
| Default destructor.
## 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.
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.
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.
| QualityFunctionMuOracle (const QualityFunctionMuOracle &)
| Copy Constructor.
void | operator= (const QualityFunctionMuOracle &)
| Overloaded Equals Operator.
## Private Attributes
SmartPtr< PDSystemSolver > | pd_solver_
| Pointer to the object that should be used to solve the primal-dual system.
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.
Number | sigma_min_
| Lower bound on centering parameter sigma.
NormEnum | quality_function_norm_
| Norm to be used for the quality function.
CentralityEnum | quality_function_centrality_
| Flag indicating how centrality should be involved in the quality function.
BalancingTermEnum | quality_function_balancing_term_
| Flag indicating whether we use a balancing term in the quality function.
Number | quality_function_section_sigma_tol_
| Relative tolerance for golden bi-section algorithm in sigma space.
Number | quality_function_section_qf_tol_
| Relative tolerance for golden bi-section algorithm in function value space.
Index | quality_function_max_section_steps_
| Maximal number of bi-section steps in the golden section search for sigma.
Temporary work space vectors. We use those to avoid
repeated reallocation in CalculateQualityFunction.
SmartPtr< Vector > | tmp_step_x_L_
SmartPtr< Vector > | tmp_step_x_U_
SmartPtr< Vector > | tmp_step_s_L_
SmartPtr< Vector > | tmp_step_s_U_
SmartPtr< Vector > | tmp_step_z_L_
SmartPtr< Vector > | tmp_step_z_U_
SmartPtr< Vector > | tmp_step_v_L_
SmartPtr< Vector > | tmp_step_v_U_
SmartPtr< Vector > | tmp_slack_x_L_
SmartPtr< Vector > | tmp_slack_x_U_
SmartPtr< Vector > | tmp_slack_s_L_
SmartPtr< Vector > | tmp_slack_s_U_
SmartPtr< Vector > | tmp_z_L_
SmartPtr< Vector > | tmp_z_U_
SmartPtr< Vector > | tmp_v_L_
SmartPtr< Vector > | tmp_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 Vector > | curr_slack_x_L_
SmartPtr< const Vector > | curr_slack_x_U_
SmartPtr< const Vector > | curr_slack_s_L_
SmartPtr< const Vector > | curr_slack_s_U_
SmartPtr< const Vector > | curr_z_L_
SmartPtr< const Vector > | curr_z_U_
SmartPtr< const Vector > | curr_v_L_
SmartPtr< const Vector > | curr_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_
static void | RegisterOptions (SmartPtr< RegisteredOptions > roptions)
| Methods for IpoptType.
Number | ScaleSigma (Number sigma)
| Auxilliary functions for scaling the sigma axis in the golden section procedure.
Number | UnscaleSigma (Number scaled_sigma)

## Detailed Description

Implementation of the probing strategy for computing the barrier parameter.

Definition at line 22 of file IpQualityFunctionMuOracle.hpp.

## Member Enumeration Documentation

enum Ipopt::QualityFunctionMuOracle::NormEnum

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 Ipopt::QualityFunctionMuOracle::CentralityEnum

enum for centrality type

Enumerator:

  CEN_NONE |
  CEN_LOG |
  CEN_RECIPROCAL |
  CEN_CUBED_RECIPROCAL |

Definition at line 59 of file IpQualityFunctionMuOracle.hpp.

enum Ipopt::QualityFunctionMuOracle::BalancingTermEnum

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.

Reimplemented from Ipopt::MuOracle.

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:

- src/Algorithm/IpQualityFunctionMuOracle.hpp

All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines