Implementation of the probing strategy for computing the barrier parameter. More...
#include <IpQualityFunctionMuOracle.hpp>
Public Types | |
Public enums. Some of those are also used for the | |
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 | |
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 | |
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 | |
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, | |
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) |
Methods for IpoptType. |
Implementation of the probing strategy for computing the barrier parameter.
Definition at line 22 of file IpQualityFunctionMuOracle.hpp.
enum for norm type
Definition at line 51 of file IpQualityFunctionMuOracle.hpp.
enum for centrality type
Definition at line 59 of file IpQualityFunctionMuOracle.hpp.
enum for the quality function balancing term type
Definition at line 67 of file IpQualityFunctionMuOracle.hpp.
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.
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.
Auxilliary functions for scaling the sigma axis in the golden section procedure.
Methods for IpoptType.
Pointer to the object that should be used to solve the primal-dual system.
Definition at line 96 of file IpQualityFunctionMuOracle.hpp.
Upper bound on centering parameter sigma.
Definition at line 190 of file IpQualityFunctionMuOracle.hpp.
Lower bound on centering parameter sigma.
Definition at line 192 of file IpQualityFunctionMuOracle.hpp.
Norm to be used for the quality function.
Definition at line 194 of file IpQualityFunctionMuOracle.hpp.
Flag indicating how centrality should be involved in the quality function.
Definition at line 197 of file IpQualityFunctionMuOracle.hpp.
Flag indicating whether we use a balancing term in the quality function.
Definition at line 201 of file IpQualityFunctionMuOracle.hpp.
Relative tolerance for golden bi-section algorithm in sigma space.
Definition at line 204 of file IpQualityFunctionMuOracle.hpp.
Relative tolerance for golden bi-section algorithm in function value space.
Definition at line 207 of file IpQualityFunctionMuOracle.hpp.
Maximal number of bi-section steps in the golden section search for sigma.
Definition at line 210 of file IpQualityFunctionMuOracle.hpp.
Definition at line 216 of file IpQualityFunctionMuOracle.hpp.
Definition at line 217 of file IpQualityFunctionMuOracle.hpp.
Definition at line 218 of file IpQualityFunctionMuOracle.hpp.
Definition at line 219 of file IpQualityFunctionMuOracle.hpp.
Definition at line 220 of file IpQualityFunctionMuOracle.hpp.
Definition at line 221 of file IpQualityFunctionMuOracle.hpp.
Definition at line 222 of file IpQualityFunctionMuOracle.hpp.
Definition at line 223 of file IpQualityFunctionMuOracle.hpp.
Definition at line 225 of file IpQualityFunctionMuOracle.hpp.
Definition at line 226 of file IpQualityFunctionMuOracle.hpp.
Definition at line 227 of file IpQualityFunctionMuOracle.hpp.
Definition at line 228 of file IpQualityFunctionMuOracle.hpp.
Definition at line 229 of file IpQualityFunctionMuOracle.hpp.
Definition at line 230 of file IpQualityFunctionMuOracle.hpp.
Definition at line 231 of file IpQualityFunctionMuOracle.hpp.
Definition at line 232 of file IpQualityFunctionMuOracle.hpp.
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.
Definition at line 258 of file IpQualityFunctionMuOracle.hpp.
Definition at line 259 of file IpQualityFunctionMuOracle.hpp.
Definition at line 260 of file IpQualityFunctionMuOracle.hpp.
Definition at line 261 of file IpQualityFunctionMuOracle.hpp.
Definition at line 263 of file IpQualityFunctionMuOracle.hpp.
Definition at line 264 of file IpQualityFunctionMuOracle.hpp.
Definition at line 265 of file IpQualityFunctionMuOracle.hpp.
Definition at line 266 of file IpQualityFunctionMuOracle.hpp.
Definition at line 268 of file IpQualityFunctionMuOracle.hpp.
Definition at line 269 of file IpQualityFunctionMuOracle.hpp.
Definition at line 270 of file IpQualityFunctionMuOracle.hpp.
Definition at line 271 of file IpQualityFunctionMuOracle.hpp.