Ipopt 3.12.10

- Main Page
- Classes
- Files

- File List
- File Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
IpDefaultIterateInitializer.hpp
Go to the documentation of this file.
1 // Copyright (C) 2004, 2008 International Business Machines and others.
2 // All Rights Reserved.
3 // This code is published under the Eclipse Public License.
4 //
5 // $Id: IpDefaultIterateInitializer.hpp 1861 2010-12-21 21:34:47Z andreasw $
6 //
7 // Authors: Carl Laird, Andreas Waechter IBM 2004-09-24
8
9 #ifndef __IPDEFAULTITERATEINITIALIZER_HPP__
10 #define __IPDEFAULTITERATEINITIALIZER_HPP__
11
12 #include "IpIterateInitializer.hpp"
13 #include "IpEqMultCalculator.hpp"
14 #include "IpAugSystemSolver.hpp"
15
16 namespace Ipopt
17 {
18
24 class DefaultIterateInitializer: public IterateInitializer
25 {
26 public:
34 DefaultIterateInitializer
35 (const SmartPtr<EqMultiplierCalculator>& eq_mult_calculator,
36 const SmartPtr<IterateInitializer>& warm_start_initializer,
37 const SmartPtr<AugSystemSolver> aug_system_solver = NULL);
38
40 virtual ~DefaultIterateInitializer()
41 {}
43
45 virtual bool InitializeImpl(const OptionsList& options,
46 const std::string& prefix);
47
50 virtual bool SetInitialIterates();
51
55 static void push_variables(const Journalist& jnlst,
56 Number bound_push,
57 Number bound_frac,
58 std::string name,
59 const Vector& orig_x,
60 SmartPtr<const Vector>& new_x,
61 const Vector& x_L,
62 const Vector& x_U,
63 const Matrix& Px_L,
64 const Matrix& Px_U);
65
73 static void least_square_mults(const Journalist& jnlst,
74 IpoptNLP& ip_nlp,
75 IpoptData& ip_data,
76 IpoptCalculatedQuantities& ip_cq,
77 const SmartPtr<EqMultiplierCalculator>& eq_mult_calculator,
78 Number constr_mult_init_max);
79
80
83 static void RegisterOptions(SmartPtr<RegisteredOptions> reg_options);
85
88 enum BoundMultInitMethod
89 {
90 B_CONSTANT=0,
91 B_MU_BASED
92 };
94 private:
104 DefaultIterateInitializer();
105
107 DefaultIterateInitializer(const DefaultIterateInitializer&);
108
110 void operator=(const DefaultIterateInitializer&);
112
116 Number bound_push_;
118 Number bound_frac_;
120 Number slack_bound_push_;
122 Number slack_bound_frac_;
123
127 Number constr_mult_init_max_;
129 Number bound_mult_init_val_;
132 bool warm_start_init_point_;
136 bool least_square_init_primal_;
140 bool least_square_init_duals_;
142 BoundMultInitMethod bound_mult_init_method_;
144 Number mu_init_;
146
149 SmartPtr<EqMultiplierCalculator> eq_mult_calculator_;
150
152 SmartPtr<IterateInitializer> warm_start_initializer_;
153
157 SmartPtr<AugSystemSolver> aug_system_solver_;
158
161 bool CalculateLeastSquarePrimals(Vector& x_ls, Vector& s_ls);
162
165 bool CalculateLeastSquareDuals(Vector& zL_new, Vector& zU_new,
166 Vector& vL_new, Vector& vU_new,
167 Vector& yc_new, Vector& yd_new);
168
169 };
170
171 } // namespace Ipopt
172
173 #endif
Ipopt::DefaultIterateInitializer::least_square_init_primal_
bool least_square_init_primal_
Flag indicating whether the primal variables should be initialized as least square fit for the linear...
Definition: IpDefaultIterateInitializer.hpp:136
Ipopt::DefaultIterateInitializer::eq_mult_calculator_
SmartPtr< EqMultiplierCalculator > eq_mult_calculator_
object to be used for the initialization of the equality constraint multipliers.
Definition: IpDefaultIterateInitializer.hpp:149
Ipopt::DefaultIterateInitializer::BoundMultInitMethod
BoundMultInitMethod
Definition: IpDefaultIterateInitializer.hpp:88
Ipopt::IpoptCalculatedQuantities
Class for all IPOPT specific calculated quantities.
Definition: IpIpoptCalculatedQuantities.hpp:81
Ipopt::DefaultIterateInitializer::DefaultIterateInitializer
DefaultIterateInitializer()
Default Constructor.
Ipopt::DefaultIterateInitializer::bound_frac_
Number bound_frac_
Relative parameter for bumping x0.
Definition: IpDefaultIterateInitializer.hpp:118
Ipopt::DefaultIterateInitializer::mu_init_
Number mu_init_
Initial value of barrier parameter.
Definition: IpDefaultIterateInitializer.hpp:144
Ipopt::DefaultIterateInitializer::bound_mult_init_method_
BoundMultInitMethod bound_mult_init_method_
Flag indicating how bound multipliers are initialized.
Definition: IpDefaultIterateInitializer.hpp:142
Ipopt::DefaultIterateInitializer
Class implementing the default initialization procedure (based on user options) for the iterates...
Definition: IpDefaultIterateInitializer.hpp:24
Ipopt::DefaultIterateInitializer::CalculateLeastSquarePrimals
bool CalculateLeastSquarePrimals(Vector &x_ls, Vector &s_ls)
Auxilliary method for computing least square primal variables.
Ipopt::Number
double Number
Type of all numbers.
Definition: IpTypes.hpp:17
Ipopt::Vector
Vector Base Class.
Definition: IpVector.hpp:47
Ipopt::DefaultIterateInitializer::InitializeImpl
virtual bool InitializeImpl(const OptionsList &options, const std::string &prefix)
overloaded from AlgorithmStrategyObject
Ipopt::IterateInitializer
Base class for all methods for initializing the iterates.
Definition: IpIterateInitializer.hpp:22
Ipopt::DefaultIterateInitializer::RegisterOptions
static void RegisterOptions(SmartPtr< RegisteredOptions > reg_options)
Methods for IpoptType.
Ipopt::DefaultIterateInitializer::SetInitialIterates
virtual bool SetInitialIterates()
Compute the initial iterates and set the into the curr field of the ip_data object.
Ipopt::SmartPtr
Template class for Smart Pointers.
Definition: IpSmartPtr.hpp:172
Ipopt::DefaultIterateInitializer::operator=
void operator=(const DefaultIterateInitializer &)
Overloaded Equals Operator.
Ipopt::OptionsList
This class stores a list of user set options.
Definition: IpOptionsList.hpp:32
Ipopt::DefaultIterateInitializer::push_variables
static void push_variables(const Journalist &jnlst, Number bound_push, Number bound_frac, std::string name, const Vector &orig_x, SmartPtr< const Vector > &new_x, const Vector &x_L, const Vector &x_U, const Matrix &Px_L, const Matrix &Px_U)
Auxilliary function for moving the initial point.
Ipopt::DefaultIterateInitializer::slack_bound_frac_
Number slack_bound_frac_
Relative parameter for bumping s0.
Definition: IpDefaultIterateInitializer.hpp:122
Ipopt::Matrix
Matrix Base Class.
Definition: IpMatrix.hpp:27
IpAugSystemSolver.hpp
Ipopt::DefaultIterateInitializer::bound_push_
Number bound_push_
Absolute parameter for bumping x0.
Definition: IpDefaultIterateInitializer.hpp:116
Ipopt::IpoptData
Class to organize all the data required by the algorithm.
Definition: IpIpoptData.hpp:83
Ipopt::DefaultIterateInitializer::least_square_init_duals_
bool least_square_init_duals_
Flag indicating whether all dual variables should be initialized as least square fit for the lineariz...
Definition: IpDefaultIterateInitializer.hpp:140
IpEqMultCalculator.hpp
x_L
Number * x_L
Lower bounds on variables.
Definition: IpStdCInterface.h:137
x_U
Number Number * x_U
Upper bounds on variables.
Definition: IpStdCInterface.h:137
Ipopt::DefaultIterateInitializer::warm_start_initializer_
SmartPtr< IterateInitializer > warm_start_initializer_
object to be used for a warm start initialization
Definition: IpDefaultIterateInitializer.hpp:152
Ipopt::DefaultIterateInitializer::constr_mult_init_max_
Number constr_mult_init_max_
If max-norm of the initial equality constraint multiplier estimate is larger than this...
Definition: IpDefaultIterateInitializer.hpp:127
Ipopt::Journalist
Class responsible for all message output.
Definition: IpJournalist.hpp:134
Ipopt::DefaultIterateInitializer::~DefaultIterateInitializer
virtual ~DefaultIterateInitializer()
Default destructor.
Definition: IpDefaultIterateInitializer.hpp:40
Ipopt::DefaultIterateInitializer::least_square_mults
static void least_square_mults(const Journalist &jnlst, IpoptNLP &ip_nlp, IpoptData &ip_data, IpoptCalculatedQuantities &ip_cq, const SmartPtr< EqMultiplierCalculator > &eq_mult_calculator, Number constr_mult_init_max)
Auxilliary function for computing least_square multipliers.
Ipopt::DefaultIterateInitializer::aug_system_solver_
SmartPtr< AugSystemSolver > aug_system_solver_
Object for solving the augmented system.
Definition: IpDefaultIterateInitializer.hpp:157
Ipopt::DefaultIterateInitializer::slack_bound_push_
Number slack_bound_push_
Absolute parameter for bumping s0.
Definition: IpDefaultIterateInitializer.hpp:120
Ipopt::DefaultIterateInitializer::B_MU_BASED
Definition: IpDefaultIterateInitializer.hpp:91
Ipopt::DefaultIterateInitializer::bound_mult_init_val_
Number bound_mult_init_val_
Initial value for all bound mulitpliers.
Definition: IpDefaultIterateInitializer.hpp:129
Ipopt::DefaultIterateInitializer::B_CONSTANT
Definition: IpDefaultIterateInitializer.hpp:90
Ipopt::IpoptNLP
This is the abstract base class for classes that map the traditional NLP into something that is more ...
Definition: IpIpoptNLP.hpp:28
IpIterateInitializer.hpp
Ipopt::DefaultIterateInitializer::CalculateLeastSquareDuals
bool CalculateLeastSquareDuals(Vector &zL_new, Vector &zU_new, Vector &vL_new, Vector &vU_new, Vector &yc_new, Vector &yd_new)
Auxilliary method for computing least square dual variables.
Ipopt::DefaultIterateInitializer::warm_start_init_point_
bool warm_start_init_point_
Flag indicating whether warm_start_initializer should be used instead of the default initialization...
Definition: IpDefaultIterateInitializer.hpp:132