Ipopt 3.12.10

- Main Page
- Classes
- Files

- File List
- File Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
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 // $Id: IpEquilibrationScaling.hpp 2269 2013-05-05 11:32:40Z stefan $
6 //
7 // Authors: Andreas Waechter IBM 2007-05-21
8
9 #ifndef __IPEQUILIBRATIONSCALING_HPP__
10 #define __IPEQUILIBRATIONSCALING_HPP__
11
12 #include "IpNLPScaling.hpp"
13 #include "IpNLP.hpp"
14
15 namespace Ipopt
16 {
21 class EquilibrationScaling : public StandardScalingBase
22 {
23 public:
26 EquilibrationScaling(const SmartPtr<NLP>& nlp)
27 :
28 StandardScalingBase(),
29 nlp_(nlp)
30 {}
31
33 virtual ~EquilibrationScaling()
34 {}
36
40 static void RegisterOptions(const SmartPtr<RegisteredOptions>& roptions);
42
43 protected:
45 bool InitializeImpl(const OptionsList& options,
46 const std::string& prefix);
47
48 virtual void DetermineScalingParametersImpl(
49 const SmartPtr<const VectorSpace> x_space,
50 const SmartPtr<const VectorSpace> c_space,
51 const SmartPtr<const VectorSpace> d_space,
52 const SmartPtr<const MatrixSpace> jac_c_space,
53 const SmartPtr<const MatrixSpace> jac_d_space,
54 const SmartPtr<const SymMatrixSpace> h_space,
55 const Matrix& Px_L, const Vector& x_L,
56 const Matrix& Px_U, const Vector& x_U,
57 Number& df,
58 SmartPtr<Vector>& dx,
59 SmartPtr<Vector>& dc,
60 SmartPtr<Vector>& dd);
61
62 private:
63
72
74 EquilibrationScaling(const EquilibrationScaling&);
75
77 void operator=(const EquilibrationScaling&);
79
81 SmartPtr<NLP> nlp_;
82
85 Number point_perturbation_radius_;
86 };
87
92 class PointPerturber : public ReferencedObject
93 {
94 public:
97 PointPerturber(const Vector& reference_point,
98 Number random_pert_radius,
99 const Matrix& Px_L, const Vector& x_L,
100 const Matrix& Px_U, const Vector& x_U);
101
103 virtual ~PointPerturber()
104 {}
106
108 SmartPtr<Vector> MakeNewPerturbedPoint() const;
109
110 private:
111
120
122 PointPerturber(const PointPerturber&);
123
125 void operator=(const PointPerturber&);
127
129 SmartPtr<Vector> ref_point_;
130
132 SmartPtr<Vector> pert_dir_;
133 };
134
135 } // namespace Ipopt
136 #endif
Ipopt::PointPerturber::operator=
void operator=(const PointPerturber &)
Overloaded Equals Operator.
IpNLP.hpp
Ipopt::Number
double Number
Type of all numbers.
Definition: IpTypes.hpp:17
Ipopt::Vector
Vector Base Class.
Definition: IpVector.hpp:47
Ipopt::PointPerturber::MakeNewPerturbedPoint
SmartPtr< Vector > MakeNewPerturbedPoint() const
Return a new perturbed point.
Ipopt::PointPerturber::PointPerturber
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)
Ipopt::EquilibrationScaling::InitializeImpl
bool InitializeImpl(const OptionsList &options, const std::string &prefix)
Initialize the object from the options.
Ipopt::StandardScalingBase
This is a base class for many standard scaling techniques.
Definition: IpNLPScaling.hpp:229
Ipopt::EquilibrationScaling::nlp_
SmartPtr< NLP > nlp_
pointer to the NLP to get scaling parameters
Definition: IpEquilibrationScaling.hpp:81
Ipopt::EquilibrationScaling::point_perturbation_radius_
Number point_perturbation_radius_
maximal radius for the random perturbation of the initial point.
Definition: IpEquilibrationScaling.hpp:85
IpNLPScaling.hpp
Ipopt::SmartPtr
Template class for Smart Pointers.
Definition: IpSmartPtr.hpp:172
Ipopt::ReferencedObject
ReferencedObject class.
Definition: IpReferenced.hpp:174
Ipopt::OptionsList
This class stores a list of user set options.
Definition: IpOptionsList.hpp:32
Ipopt::PointPerturber
This class is a simple object for generating randomly perturbed points that are withing the NLP bound...
Definition: IpEquilibrationScaling.hpp:92
Ipopt::PointPerturber::pert_dir_
SmartPtr< Vector > pert_dir_
pointer to the perturbation vector
Definition: IpEquilibrationScaling.hpp:132
Ipopt::Matrix
Matrix Base Class.
Definition: IpMatrix.hpp:27
Ipopt::PointPerturber::ref_point_
SmartPtr< Vector > ref_point_
pointer to the midpoint of the perturbation
Definition: IpEquilibrationScaling.hpp:129
Ipopt::EquilibrationScaling::RegisterOptions
static void RegisterOptions(const SmartPtr< RegisteredOptions > &roptions)
Methods for IpoptType.
x_L
Number * x_L
Lower bounds on variables.
Definition: IpStdCInterface.h:137
Ipopt::PointPerturber::~PointPerturber
virtual ~PointPerturber()
Default destructor.
Definition: IpEquilibrationScaling.hpp:103
x_U
Number Number * x_U
Upper bounds on variables.
Definition: IpStdCInterface.h:137
Ipopt::EquilibrationScaling
This class does problem scaling by setting the scaling parameters based on the maximum of the gradien...
Definition: IpEquilibrationScaling.hpp:21
Ipopt::EquilibrationScaling::DetermineScalingParametersImpl
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...
Ipopt::EquilibrationScaling::~EquilibrationScaling
virtual ~EquilibrationScaling()
Default destructor.
Definition: IpEquilibrationScaling.hpp:33
Ipopt::EquilibrationScaling::EquilibrationScaling
EquilibrationScaling(const SmartPtr< NLP > &nlp)
Definition: IpEquilibrationScaling.hpp:26
Ipopt::EquilibrationScaling::operator=
void operator=(const EquilibrationScaling &)
Overloaded Equals Operator.