Ipopt Documentation  
 
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// Authors: Andreas Waechter IBM 2004-11-12
6
7#ifndef __IPQUALITYFUNCTIONMUORACLE_HPP__
8#define __IPQUALITYFUNCTIONMUORACLE_HPP__
9
10#include "IpMuOracle.hpp"
11#include "IpPDSystemSolver.hpp"
13
14namespace Ipopt
15{
16
21{
22public:
25
27 const SmartPtr<PDSystemSolver>& pd_solver
28 );
29
32
34
35 virtual bool InitializeImpl(
36 const OptionsList& options,
37 const std::string& prefix
38 );
39
43 virtual bool CalculateMu(
44 Number mu_min,
45 Number mu_max,
46 Number& new_mu
47 );
48
49 static void RegisterOptions(
51 );
52
57
65
74
82
83private:
94
96
100 );
101
105 );
107
112
117 Number sigma,
118 const Vector& step_aff_x_L,
119 const Vector& step_aff_x_U,
120 const Vector& step_aff_s_L,
121 const Vector& step_aff_s_U,
122 const Vector& step_aff_y_c,
123 const Vector& step_aff_y_d,
124 const Vector& step_aff_z_L,
125 const Vector& step_aff_z_U,
126 const Vector& step_aff_v_L,
127 const Vector& step_aff_v_U,
128 const Vector& step_cen_x_L,
129 const Vector& step_cen_x_U,
130 const Vector& step_cen_s_L,
131 const Vector& step_cen_s_U,
132 const Vector& step_cen_y_c,
133 const Vector& step_cen_y_d,
134 const Vector& step_cen_z_L,
135 const Vector& step_cen_z_U,
136 const Vector& step_cen_v_L,
137 const Vector& step_cen_v_U
138 );
139
142 Number sigma_up,
143 Number q_up,
144 Number sigma_lo,
145 Number q_lo,
146 Number sigma_tol,
147 Number qf_tol,
148 const Vector& step_aff_x_L,
149 const Vector& step_aff_x_U,
150 const Vector& step_aff_s_L,
151 const Vector& step_aff_s_U,
152 const Vector& step_aff_y_c,
153 const Vector& step_aff_y_d,
154 const Vector& step_aff_z_L,
155 const Vector& step_aff_z_U,
156 const Vector& step_aff_v_L,
157 const Vector& step_aff_v_U,
158 const Vector& step_cen_x_L,
159 const Vector& step_cen_x_U,
160 const Vector& step_cen_s_L,
161 const Vector& step_cen_s_U,
162 const Vector& step_cen_y_c,
163 const Vector& step_cen_y_d,
164 const Vector& step_cen_z_L,
165 const Vector& step_cen_z_U,
166 const Vector& step_cen_v_L,
167 const Vector& step_cen_v_U
168 );
169
175 Number sigma
176 );
177
179 Number scaled_sigma
180 );
182
186 /* This doesn't seem to work well, so I took it out for now (AW)
187 Number PerformGoldenSectionLog(Number sigma_up,
188 Number sigma_lo,
189 Number tol,
190 const Vector& step_aff_x_L,
191 const Vector& step_aff_x_U,
192 const Vector& step_aff_s_L,
193 const Vector& step_aff_s_U,
194 const Vector& step_aff_y_c,
195 const Vector& step_aff_y_d,
196 const Vector& step_aff_z_L,
197 const Vector& step_aff_z_U,
198 const Vector& step_aff_v_L,
199 const Vector& step_aff_v_U,
200 const Vector& step_cen_x_L,
201 const Vector& step_cen_x_U,
202 const Vector& step_cen_s_L,
203 const Vector& step_cen_s_U,
204 const Vector& step_cen_y_c,
205 const Vector& step_cen_y_d,
206 const Vector& step_cen_z_L,
207 const Vector& step_cen_z_U,
208 const Vector& step_cen_v_L,
209 const Vector& step_cen_v_U);
210 */
211
214
216
219
222
227
232
237
242
248
262
272
273 /* Counter for the qualify function evaluations */
275
287
292
297
302
307
313};
314
315} // namespace Ipopt
316
317#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)
Number sigma_max_
Upper bound on centering parameter sigma.
QualityFunctionMuOracle(const QualityFunctionMuOracle &)
Copy Constructor.
Number ScaleSigma(Number sigma)
Auxiliary 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 &)
Default Assignment 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)
Auxiliary 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()
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)
Implementation of the initialization method that has to be overloaded by for each derived class.
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)
Auxiliary 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
This file contains a base class for all exceptions and a set of macros to help with exceptions.
ipindex Index
Type of all indices of vectors, matrices etc.
Definition IpTypes.hpp:20
ipnumber Number
Type of all numbers.
Definition IpTypes.hpp:17