Ipopt Documentation  
IpEquilibrationScaling.hpp
Go to the documentation of this file.
1 // Copyright (C) 2007 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 2007-05-21
6 
7 #ifndef __IPEQUILIBRATIONSCALING_HPP__
8 #define __IPEQUILIBRATIONSCALING_HPP__
9 
10 #include "IpNLPScaling.hpp"
11 #include "IpNLP.hpp"
12 #include "IpMc19TSymScalingMethod.hpp" // to get IPOPT_DECL_MC19A
13 
14 namespace Ipopt
15 {
21 {
22 public:
26  const SmartPtr<NLP>& nlp,
27  SmartPtr<LibraryLoader> hslloader_
28  ) : StandardScalingBase(),
29  nlp_(nlp),
30  hslloader(hslloader_),
31  mc19a(NULL)
32  { }
33 
36  { }
38 
41 
42  static void RegisterOptions(
43  const SmartPtr<RegisteredOptions>& roptions
44  );
46 
47 protected:
50  const OptionsList& options,
51  const std::string& prefix
52  );
53 
55  const SmartPtr<const VectorSpace> x_space,
56  const SmartPtr<const VectorSpace> c_space,
57  const SmartPtr<const VectorSpace> d_space,
58  const SmartPtr<const MatrixSpace> jac_c_space,
59  const SmartPtr<const MatrixSpace> jac_d_space,
60  const SmartPtr<const SymMatrixSpace> h_space,
61  const Matrix& Px_L,
62  const Vector& x_L,
63  const Matrix& Px_U,
64  const Vector& x_U,
65  Number& df,
66  SmartPtr<Vector>& dx,
67  SmartPtr<Vector>& dc,
69  );
70 
71 private:
72 
83 
86  );
87 
89  void operator=(
91  );
93 
96 
99 
104 
107 };
108 
116 {
117 public:
121  const Vector& reference_point,
122  Number random_pert_radius,
123  const Matrix& Px_L,
124  const Vector& x_L,
125  const Matrix& Px_U,
126  const Vector& x_U
127  );
128 
130  virtual ~PointPerturber()
131  { }
133 
136 
137 private:
138 
149 
151  const PointPerturber&
152  );
153 
155  void operator=(
156  const PointPerturber&
157  );
159 
162 
165 };
166 
167 } // namespace Ipopt
168 #endif
#define IPOPT_DECL_MC19A(x)
This class does problem scaling by setting the scaling parameters based on the maximum of the gradien...
Number point_perturbation_radius_
maximal radius for the random perturbation of the initial point
void operator=(const EquilibrationScaling &)
Default Assignment Operator.
bool InitializeImpl(const OptionsList &options, const std::string &prefix)
Initialize the object from the options.
static void RegisterOptions(const SmartPtr< RegisteredOptions > &roptions)
Methods for IpoptType.
EquilibrationScaling(const SmartPtr< NLP > &nlp, SmartPtr< LibraryLoader > hslloader_)
virtual ~EquilibrationScaling()
Destructor.
SmartPtr< NLP > nlp_
pointer to the NLP to get scaling parameters
virtual void DetermineScalingParametersImpl(const SmartPtr< const VectorSpace > x_space, const SmartPtr< const VectorSpace > c_space, const SmartPtr< const VectorSpace > d_space, const SmartPtr< const MatrixSpace > jac_c_space, const SmartPtr< const MatrixSpace > jac_d_space, const SmartPtr< const SymMatrixSpace > h_space, const Matrix &Px_L, const Vector &x_L, const Matrix &Px_U, const Vector &x_U, Number &df, SmartPtr< Vector > &dx, SmartPtr< Vector > &dc, SmartPtr< Vector > &dd)
This is the method that has to be overloaded by a particular scaling method that somehow computes the...
SmartPtr< LibraryLoader > hslloader
EquilibrationScaling(const EquilibrationScaling &)
Copy Constructor.
Matrix Base Class.
Definition: IpMatrix.hpp:28
This class stores a list of user set options.
This class is a simple object for generating randomly perturbed points that are within the NLP bounds...
SmartPtr< Vector > MakeNewPerturbedPoint() const
Return a new perturbed point.
virtual ~PointPerturber()
Destructor.
SmartPtr< Vector > ref_point_
pointer to the midpoint of the perturbation
PointPerturber(const PointPerturber &)
Copy Constructor.
SmartPtr< Vector > pert_dir_
pointer to the perturbation vector
PointPerturber(const Vector &reference_point, Number random_pert_radius, const Matrix &Px_L, const Vector &x_L, const Matrix &Px_U, const Vector &x_U)
void operator=(const PointPerturber &)
Default Assignment Operator.
Storing the reference count of all the smart pointers that currently reference it.
Template class for Smart Pointers.
Definition: IpSmartPtr.hpp:165
This is a base class for many standard scaling techniques.
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.
ipnumber Number
Type of all numbers.
Definition: IpTypes.hpp:17