Ipopt 3.11.9
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// $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
14#include "IpAugSystemSolver.hpp"
15
16namespace Ipopt
17{
18
25 {
26 public:
35 (const SmartPtr<EqMultiplierCalculator>& eq_mult_calculator,
36 const SmartPtr<IterateInitializer>& warm_start_initializer,
37 const SmartPtr<AugSystemSolver> aug_system_solver = NULL);
38
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,
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,
77 const SmartPtr<EqMultiplierCalculator>& eq_mult_calculator,
78 Number constr_mult_init_max);
79
80
85
94 private:
105
108
112
123
146
150
153
158
162
166 Vector& vL_new, Vector& vU_new,
167 Vector& yc_new, Vector& yd_new);
168
169 };
170
171} // namespace Ipopt
172
173#endif
Number * x_L
Lower bounds on variables.
Number Number * x_U
Upper bounds on variables.
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)
Auxilliary 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)
Auxilliary 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)
Auxilliary 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.
virtual ~DefaultIterateInitializer()
Default destructor.
SmartPtr< IterateInitializer > warm_start_initializer_
object to be used for a warm start initialization
Number bound_mult_init_val_
Initial value for all bound mulitpliers.
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)
Auxilliary function for computing least_square multipliers.
void operator=(const DefaultIterateInitializer &)
Overloaded Equals 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)
Methods for IpoptType.
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
double Number
Type of all numbers.
Definition IpTypes.hpp:17