Ipopt  3.12.9
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
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 
16 namespace Ipopt
17 {
18 
23  {
24  public:
30  virtual ~QualityFunctionMuOracle();
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 
44  static void RegisterOptions(SmartPtr<RegisteredOptions> roptions);
46 
51  enum NormEnum
52  {
57  };
60  {
65  };
68  {
71  };
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 
155  Number ScaleSigma(Number sigma);
156  Number UnscaleSigma(Number scaled_sigma);
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
Index quality_function_max_section_steps_
Maximal number of bi-section steps in the golden section search for sigma.
Implementation of the probing strategy for computing the barrier parameter.
CentralityEnum quality_function_centrality_
Flag indicating how centrality should be involved in the quality function.
double Number
Type of all numbers.
Definition: IpTypes.hpp:17
Vector Base Class.
Definition: IpVector.hpp:47
Number sigma_max_
Upper bound on centering parameter sigma.
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.
Abstract Base Class for classes that are able to compute a suggested value of the barrier parameter t...
Definition: IpMuOracle.hpp:21
Number sigma_min_
Lower bound on centering parameter sigma.
Number ScaleSigma(Number sigma)
Auxilliary functions for scaling the sigma axis in the golden section procedure.
Template class for Smart Pointers.
Definition: IpSmartPtr.hpp:172
This class stores a list of user set options.
QualityFunctionMuOracle()
Default Constructor.
NormEnum quality_function_norm_
Norm to be used for the quality function.
virtual bool InitializeImpl(const OptionsList &options, const std::string &prefix)
overloaded from AlgorithmStrategyObject
int Index
Type of all indices of vectors, matrices etc.
Definition: IpTypes.hpp:19
Number quality_function_section_qf_tol_
Relative tolerance for golden bi-section algorithm in function value space.
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
Methods for IpoptType.
BalancingTermEnum
enum for the quality function balancing term type
BalancingTermEnum quality_function_balancing_term_
Flag indicating whether we use a balancing term in the quality function.
Number UnscaleSigma(Number scaled_sigma)
virtual ~QualityFunctionMuOracle()
Default destructor.
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 (...
void operator=(const QualityFunctionMuOracle &)
Overloaded Equals Operator.
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...
SmartPtr< PDSystemSolver > pd_solver_
Pointer to the object that should be used to solve the primal-dual system.