Ipopt Documentation  
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
44 { }
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
103 {
106 };
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.
Definition: IpIpoptData.hpp:98
This is the abstract base class for classes that map the traditional NLP into something that is more ...
Definition: IpIpoptNLP.hpp:36
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.
Definition: IpSmartPtr.hpp:165
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