Ipopt 3.11.9
Loading...
Searching...
No Matches
IpQualityFunctionMuOracle.hpp
Go to the documentation of this file.
1// Copyright (C) 2004, 2006 International Business Machines and others.
2// All Rights Reserved.
3// This code is published under the Eclipse Public License.
4//
5// $Id: IpQualityFunctionMuOracle.hpp 1861 2010-12-21 21:34:47Z andreasw $
6//
7// Authors: Andreas Waechter IBM 2004-11-12
8
9#ifndef __IPQUALITYFUNCTIONMUORACLE_HPP__
10#define __IPQUALITYFUNCTIONMUORACLE_HPP__
11
12#include "IpMuOracle.hpp"
13#include "IpPDSystemSolver.hpp"
15
16namespace Ipopt
17{
18
23 {
24 public:
32
34 virtual bool InitializeImpl(const OptionsList& options,
35 const std::string& prefix);
36
40 virtual bool CalculateMu(Number mu_min, Number mu_max, Number& new_mu);
41
46
73
74 private:
83
88
92
97
101 // ToDo Replace pointers by references
103 const Vector& step_aff_x_L,
104 const Vector& step_aff_x_U,
105 const Vector& step_aff_s_L,
106 const Vector& step_aff_s_U,
107 const Vector& step_aff_y_c,
108 const Vector& step_aff_y_d,
109 const Vector& step_aff_z_L,
110 const Vector& step_aff_z_U,
111 const Vector& step_aff_v_L,
112 const Vector& step_aff_v_U,
113 const Vector& step_cen_x_L,
114 const Vector& step_cen_x_U,
115 const Vector& step_cen_s_L,
116 const Vector& step_cen_s_U,
117 const Vector& step_cen_y_c,
118 const Vector& step_cen_y_d,
119 const Vector& step_cen_z_L,
120 const Vector& step_cen_z_U,
121 const Vector& step_cen_v_L,
122 const Vector& step_cen_v_U);
123
126 Number q_up,
127 Number sigma_lo,
128 Number q_lo,
129 Number sigma_tol,
130 Number qf_tol,
131 const Vector& step_aff_x_L,
132 const Vector& step_aff_x_U,
133 const Vector& step_aff_s_L,
134 const Vector& step_aff_s_U,
135 const Vector& step_aff_y_c,
136 const Vector& step_aff_y_d,
137 const Vector& step_aff_z_L,
138 const Vector& step_aff_z_U,
139 const Vector& step_aff_v_L,
140 const Vector& step_aff_v_U,
141 const Vector& step_cen_x_L,
142 const Vector& step_cen_x_U,
143 const Vector& step_cen_s_L,
144 const Vector& step_cen_s_U,
145 const Vector& step_cen_y_c,
146 const Vector& step_cen_y_d,
147 const Vector& step_cen_z_L,
148 const Vector& step_cen_z_U,
149 const Vector& step_cen_v_L,
150 const Vector& step_cen_v_U);
151
158
161 /* This doesn't seem to work well, so I took it out for now (AW)
162 Number PerformGoldenSectionLog(Number sigma_up,
163 Number sigma_lo,
164 Number tol,
165 const Vector& step_aff_x_L,
166 const Vector& step_aff_x_U,
167 const Vector& step_aff_s_L,
168 const Vector& step_aff_s_U,
169 const Vector& step_aff_y_c,
170 const Vector& step_aff_y_d,
171 const Vector& step_aff_z_L,
172 const Vector& step_aff_z_U,
173 const Vector& step_aff_v_L,
174 const Vector& step_aff_v_U,
175 const Vector& step_cen_x_L,
176 const Vector& step_cen_x_U,
177 const Vector& step_cen_s_L,
178 const Vector& step_cen_s_U,
179 const Vector& step_cen_y_c,
180 const Vector& step_cen_y_d,
181 const Vector& step_cen_z_L,
182 const Vector& step_cen_z_U,
183 const Vector& step_cen_v_L,
184 const Vector& step_cen_v_U);
185 */
186
212
224
234
235 /* Counter for the qualify function evaluations */
237
247
252
257
262
267
273 };
274
275} // namespace Ipopt
276
277#endif
Abstract Base Class for classes that are able to compute a suggested value of the barrier parameter t...
This class stores a list of user set options.
Implementation of the probing strategy for computing the barrier parameter.
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 (...
BalancingTermEnum quality_function_balancing_term_
Flag indicating whether we use a balancing term in the quality function.
CentralityEnum quality_function_centrality_
Flag indicating how centrality should be involved in the quality function.
Number sigma_min_
Lower bound on centering parameter sigma.
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
Methods for IpoptType.
Number sigma_max_
Upper bound on centering parameter sigma.
QualityFunctionMuOracle(const QualityFunctionMuOracle &)
Copy Constructor.
Number ScaleSigma(Number sigma)
Auxilliary functions for scaling the sigma axis in the golden section procedure.
NormEnum quality_function_norm_
Norm to be used for the quality function.
QualityFunctionMuOracle(const SmartPtr< PDSystemSolver > &pd_solver)
Constructor.
void operator=(const QualityFunctionMuOracle &)
Overloaded Equals Operator.
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.
Number quality_function_section_sigma_tol_
Relative tolerance for golden bi-section algorithm in sigma space.
Number UnscaleSigma(Number scaled_sigma)
virtual ~QualityFunctionMuOracle()
Default destructor.
Number quality_function_section_qf_tol_
Relative tolerance for golden bi-section algorithm in function value space.
virtual bool InitializeImpl(const OptionsList &options, const std::string &prefix)
overloaded from AlgorithmStrategyObject
QualityFunctionMuOracle()
Default Constructor.
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.
BalancingTermEnum
enum for the quality function balancing term type
Index quality_function_max_section_steps_
Maximal number of bi-section steps in the golden section search for sigma.
SmartPtr< PDSystemSolver > pd_solver_
Pointer to the object that should be used to solve the primal-dual system.
Template class for Smart Pointers.
Vector Base Class.
Definition IpVector.hpp:48
int Index
Type of all indices of vectors, matrices etc.
Definition IpTypes.hpp:19
double Number
Type of all numbers.
Definition IpTypes.hpp:17