Ipopt Documentation  
 
Loading...
Searching...
No Matches
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// Authors: Carl Laird, Andreas Waechter IBM 2004-09-24
6
7#ifndef __IPDEFAULTITERATEINITIALIZER_HPP__
8#define __IPDEFAULTITERATEINITIALIZER_HPP__
9
12#include "IpAugSystemSolver.hpp"
13
14namespace Ipopt
15{
16
24{
25public:
28
37 const SmartPtr<EqMultiplierCalculator>& eq_mult_calculator,
38 const SmartPtr<IterateInitializer>& warm_start_initializer,
39 const SmartPtr<AugSystemSolver> aug_system_solver = NULL
40 );
41
46
48 virtual bool InitializeImpl(
49 const OptionsList& options,
50 const std::string& prefix
51 );
52
56 virtual bool SetInitialIterates();
57
63 static void push_variables(
64 const Journalist& jnlst,
65 Number bound_push,
66 Number bound_frac,
67 std::string name,
68 const Vector& orig_x,
70 const Vector& x_L,
71 const Vector& x_U,
72 const Matrix& Px_L,
73 const Matrix& Px_U
74 );
75
85 static void least_square_mults(
86 const Journalist& jnlst,
87 IpoptNLP& ip_nlp,
88 IpoptData& ip_data,
90 const SmartPtr<EqMultiplierCalculator>& eq_mult_calculator,
91 Number constr_mult_init_max
92 );
93
95 static void RegisterOptions(
97 );
99
108private:
119
121
125 );
126
130 );
132
135
143
166
171
174
181
184 Vector& x_ls,
185 Vector& s_ls
186 );
187
190 Vector& zL_new,
191 Vector& zU_new,
192 Vector& vL_new,
193 Vector& vU_new,
194 Vector& yc_new,
195 Vector& yd_new
196 );
197};
198
199} // namespace Ipopt
200
201#endif
Class implementing the default initialization procedure (based on user options) for the iterates.
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)
Auxiliary function for moving the initial point.
Number slack_bound_frac_
Relative parameter for bumping s0.
bool CalculateLeastSquareDuals(Vector &zL_new, Vector &zU_new, Vector &vL_new, Vector &vU_new, Vector &yc_new, Vector &yd_new)
Auxiliary method for computing least square dual variables.
Number mu_init_
Initial value of barrier parameter.
DefaultIterateInitializer(const SmartPtr< EqMultiplierCalculator > &eq_mult_calculator, const SmartPtr< IterateInitializer > &warm_start_initializer, const SmartPtr< AugSystemSolver > aug_system_solver=NULL)
Constructor.
DefaultIterateInitializer()
Default Constructor.
SmartPtr< AugSystemSolver > aug_system_solver_
Object for solving the augmented system.
bool CalculateLeastSquarePrimals(Vector &x_ls, Vector &s_ls)
Auxiliary method for computing least square primal variables.
BoundMultInitMethod bound_mult_init_method_
Flag indicating how bound multipliers are initialized.
Number constr_mult_init_max_
If max-norm of the initial equality constraint multiplier estimate is larger than this,...
bool least_square_init_primal_
Flag indicating whether the primal variables should be initialized as least square fit for the linear...
virtual bool InitializeImpl(const OptionsList &options, const std::string &prefix)
overloaded from AlgorithmStrategyObject
Number slack_bound_push_
Absolute parameter for bumping s0.
bool warm_start_init_point_
Flag indicating whether warm_start_initializer should be used instead of the default initialization.
SmartPtr< IterateInitializer > warm_start_initializer_
object to be used for a warm start initialization
Number bound_mult_init_val_
Initial value for all bound multipliers.
Number bound_frac_
Relative parameter for bumping x0.
DefaultIterateInitializer(const DefaultIterateInitializer &)
Copy Constructor.
Number bound_push_
Absolute parameter for bumping x0.
bool least_square_init_duals_
Flag indicating whether all dual variables should be initialized as least square fit for the lineariz...
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)
Auxiliary function for computing least_square multipliers.
void operator=(const DefaultIterateInitializer &)
Default Assignment Operator.
SmartPtr< EqMultiplierCalculator > eq_mult_calculator_
object to be used for the initialization of the equality constraint multipliers.
virtual bool SetInitialIterates()
Compute the initial iterates and set the into the curr field of the ip_data object.
static void RegisterOptions(SmartPtr< RegisteredOptions > reg_options)
Class for all IPOPT specific calculated quantities.
Class to organize all the data required by the algorithm.
This is the abstract base class for classes that map the traditional NLP into something that is more ...
Base class for all methods for initializing the iterates.
Class responsible for all message output.
Matrix Base Class.
Definition IpMatrix.hpp:28
This class stores a list of user set options.
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.
ipnumber Number
Type of all numbers.
Definition IpTypes.hpp:17