Ipopt Documentation  
 
Loading...
Searching...
No Matches
Ipopt::DefaultIterateInitializer Class Reference

Class implementing the default initialization procedure (based on user options) for the iterates. More...

#include <IpDefaultIterateInitializer.hpp>

+ Inheritance diagram for Ipopt::DefaultIterateInitializer:

Public Types

Enums of option values
enum  BoundMultInitMethod { B_CONSTANT = 0 , B_MU_BASED }
 

Public Member Functions

virtual bool InitializeImpl (const OptionsList &options, const std::string &prefix)
 overloaded from AlgorithmStrategyObject
 
virtual bool SetInitialIterates ()
 Compute the initial iterates and set the into the curr field of the ip_data object.
 
Constructors/Destructors
 DefaultIterateInitializer (const SmartPtr< EqMultiplierCalculator > &eq_mult_calculator, const SmartPtr< IterateInitializer > &warm_start_initializer, const SmartPtr< AugSystemSolver > aug_system_solver=NULL)
 Constructor.
 
virtual ~DefaultIterateInitializer ()
 Destructor.
 
- Public Member Functions inherited from Ipopt::IterateInitializer
 IterateInitializer ()
 Default Constructor.
 
virtual ~IterateInitializer ()
 Default destructor.
 
- Public Member Functions inherited from Ipopt::AlgorithmStrategyObject
bool Initialize (const Journalist &jnlst, IpoptNLP &ip_nlp, IpoptData &ip_data, IpoptCalculatedQuantities &ip_cq, const OptionsList &options, const std::string &prefix)
 This method is called every time the algorithm starts again - it is used to reset any internal state.
 
bool ReducedInitialize (const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
 Reduced version of the Initialize method, which does not require special Ipopt information.
 
 AlgorithmStrategyObject ()
 Default Constructor.
 
virtual ~AlgorithmStrategyObject ()
 Destructor.
 
- Public Member Functions inherited from Ipopt::ReferencedObject
 ReferencedObject ()
 
virtual ~ReferencedObject ()
 
Index ReferenceCount () const
 
void AddRef (const Referencer *referencer) const
 
void ReleaseRef (const Referencer *referencer) const
 

Static Public Member Functions

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.
 
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.
 
static void RegisterOptions (SmartPtr< RegisteredOptions > reg_options)
 

Private Member Functions

bool CalculateLeastSquarePrimals (Vector &x_ls, Vector &s_ls)
 Auxiliary method for computing least square primal variables.
 
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.
 
Default Compiler Generated Methods

(Hidden to avoid implicit creation/calling).

These methods are not implemented and we do not want the compiler to implement them for us, so we declare them private and do not define them. This ensures that they will not be implicitly created/called.

 DefaultIterateInitializer ()
 Default Constructor.
 
 DefaultIterateInitializer (const DefaultIterateInitializer &)
 Copy Constructor.
 
void operator= (const DefaultIterateInitializer &)
 Default Assignment Operator.
 

Private Attributes

SmartPtr< EqMultiplierCalculatoreq_mult_calculator_
 object to be used for the initialization of the equality constraint multipliers.
 
SmartPtr< IterateInitializerwarm_start_initializer_
 object to be used for a warm start initialization
 
SmartPtr< AugSystemSolveraug_system_solver_
 Object for solving the augmented system.
 
Algorithmic Parameters
Number bound_push_
 Absolute parameter for bumping x0.
 
Number bound_frac_
 Relative parameter for bumping x0.
 
Number slack_bound_push_
 Absolute parameter for bumping s0.
 
Number slack_bound_frac_
 Relative parameter for bumping s0.
 
Number constr_mult_init_max_
 If max-norm of the initial equality constraint multiplier estimate is larger than this, the initial y_* variables are set to zero.
 
Number bound_mult_init_val_
 Initial value for all bound multipliers.
 
bool warm_start_init_point_
 Flag indicating whether warm_start_initializer should be used instead of the default initialization.
 
bool least_square_init_primal_
 Flag indicating whether the primal variables should be initialized as least square fit for the linearized constraints.
 
bool least_square_init_duals_
 Flag indicating whether all dual variables should be initialized as least square fit for the linearized dual infeasibility.
 
BoundMultInitMethod bound_mult_init_method_
 Flag indicating how bound multipliers are initialized.
 
Number mu_init_
 Initial value of barrier parameter.
 

Additional Inherited Members

- Protected Member Functions inherited from Ipopt::AlgorithmStrategyObject
const JournalistJnlst () const
 
IpoptNLPIpNLP () const
 
IpoptDataIpData () const
 
IpoptCalculatedQuantitiesIpCq () const
 
bool HaveIpData () const
 

Detailed Description

Class implementing the default initialization procedure (based on user options) for the iterates.

It is used at the very beginning of the optimization for determine the starting point for all variables.

Definition at line 23 of file IpDefaultIterateInitializer.hpp.

Member Enumeration Documentation

◆ BoundMultInitMethod

Enumerator
B_CONSTANT 
B_MU_BASED 

Definition at line 102 of file IpDefaultIterateInitializer.hpp.

Constructor & Destructor Documentation

◆ DefaultIterateInitializer() [1/3]

Ipopt::DefaultIterateInitializer::DefaultIterateInitializer ( const SmartPtr< EqMultiplierCalculator > &  eq_mult_calculator,
const SmartPtr< IterateInitializer > &  warm_start_initializer,
const SmartPtr< AugSystemSolver aug_system_solver = NULL 
)

Constructor.

If eq_mult_calculator is not NULL, it will be used to compute the initial values for equality constraint multipliers. If warm_start_initializer is not NULL, it will be used to compute the initial values if the option warm_start_init_point is chosen.

◆ ~DefaultIterateInitializer()

virtual Ipopt::DefaultIterateInitializer::~DefaultIterateInitializer ( )
inlinevirtual

Destructor.

Definition at line 43 of file IpDefaultIterateInitializer.hpp.

◆ DefaultIterateInitializer() [2/3]

Ipopt::DefaultIterateInitializer::DefaultIterateInitializer ( )
private

Default Constructor.

◆ DefaultIterateInitializer() [3/3]

Ipopt::DefaultIterateInitializer::DefaultIterateInitializer ( const DefaultIterateInitializer )
private

Copy Constructor.

Member Function Documentation

◆ InitializeImpl()

virtual bool Ipopt::DefaultIterateInitializer::InitializeImpl ( const OptionsList options,
const std::string &  prefix 
)
virtual

◆ SetInitialIterates()

virtual bool Ipopt::DefaultIterateInitializer::SetInitialIterates ( )
virtual

Compute the initial iterates and set the into the curr field of the ip_data object.

Implements Ipopt::IterateInitializer.

◆ push_variables()

static void Ipopt::DefaultIterateInitializer::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 
)
static

Auxiliary function for moving the initial point.

This is declared static so that it can also be used from WarmStartIterateInitializer.

◆ least_square_mults()

static void Ipopt::DefaultIterateInitializer::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 
)
static

Auxiliary function for computing least_square multipliers.

The multipliers are computed based on the values in the trial fields (current is overwritten). On return, the multipliers are in the trial fields as well. The value of constr_mult_init_max determines if the computed least square estimate should be used, or if the initial multipliers are set to zero.

◆ RegisterOptions()

static void Ipopt::DefaultIterateInitializer::RegisterOptions ( SmartPtr< RegisteredOptions reg_options)
static

◆ operator=()

void Ipopt::DefaultIterateInitializer::operator= ( const DefaultIterateInitializer )
private

Default Assignment Operator.

◆ CalculateLeastSquarePrimals()

bool Ipopt::DefaultIterateInitializer::CalculateLeastSquarePrimals ( Vector x_ls,
Vector s_ls 
)
private

Auxiliary method for computing least square primal variables.

◆ CalculateLeastSquareDuals()

bool Ipopt::DefaultIterateInitializer::CalculateLeastSquareDuals ( Vector zL_new,
Vector zU_new,
Vector vL_new,
Vector vU_new,
Vector yc_new,
Vector yd_new 
)
private

Auxiliary method for computing least square dual variables.

Member Data Documentation

◆ bound_push_

Number Ipopt::DefaultIterateInitializer::bound_push_
private

Absolute parameter for bumping x0.

Definition at line 136 of file IpDefaultIterateInitializer.hpp.

◆ bound_frac_

Number Ipopt::DefaultIterateInitializer::bound_frac_
private

Relative parameter for bumping x0.

Definition at line 138 of file IpDefaultIterateInitializer.hpp.

◆ slack_bound_push_

Number Ipopt::DefaultIterateInitializer::slack_bound_push_
private

Absolute parameter for bumping s0.

Definition at line 140 of file IpDefaultIterateInitializer.hpp.

◆ slack_bound_frac_

Number Ipopt::DefaultIterateInitializer::slack_bound_frac_
private

Relative parameter for bumping s0.

Definition at line 142 of file IpDefaultIterateInitializer.hpp.

◆ constr_mult_init_max_

Number Ipopt::DefaultIterateInitializer::constr_mult_init_max_
private

If max-norm of the initial equality constraint multiplier estimate is larger than this, the initial y_* variables are set to zero.

Definition at line 147 of file IpDefaultIterateInitializer.hpp.

◆ bound_mult_init_val_

Number Ipopt::DefaultIterateInitializer::bound_mult_init_val_
private

Initial value for all bound multipliers.

Definition at line 149 of file IpDefaultIterateInitializer.hpp.

◆ warm_start_init_point_

bool Ipopt::DefaultIterateInitializer::warm_start_init_point_
private

Flag indicating whether warm_start_initializer should be used instead of the default initialization.

Definition at line 152 of file IpDefaultIterateInitializer.hpp.

◆ least_square_init_primal_

bool Ipopt::DefaultIterateInitializer::least_square_init_primal_
private

Flag indicating whether the primal variables should be initialized as least square fit for the linearized constraints.

Definition at line 156 of file IpDefaultIterateInitializer.hpp.

◆ least_square_init_duals_

bool Ipopt::DefaultIterateInitializer::least_square_init_duals_
private

Flag indicating whether all dual variables should be initialized as least square fit for the linearized dual infeasibility.

Definition at line 160 of file IpDefaultIterateInitializer.hpp.

◆ bound_mult_init_method_

BoundMultInitMethod Ipopt::DefaultIterateInitializer::bound_mult_init_method_
private

Flag indicating how bound multipliers are initialized.

Definition at line 162 of file IpDefaultIterateInitializer.hpp.

◆ mu_init_

Number Ipopt::DefaultIterateInitializer::mu_init_
private

Initial value of barrier parameter.

Definition at line 164 of file IpDefaultIterateInitializer.hpp.

◆ eq_mult_calculator_

SmartPtr<EqMultiplierCalculator> Ipopt::DefaultIterateInitializer::eq_mult_calculator_
private

object to be used for the initialization of the equality constraint multipliers.

Definition at line 170 of file IpDefaultIterateInitializer.hpp.

◆ warm_start_initializer_

SmartPtr<IterateInitializer> Ipopt::DefaultIterateInitializer::warm_start_initializer_
private

object to be used for a warm start initialization

Definition at line 173 of file IpDefaultIterateInitializer.hpp.

◆ aug_system_solver_

SmartPtr<AugSystemSolver> Ipopt::DefaultIterateInitializer::aug_system_solver_
private

Object for solving the augmented system.

This is only required if we use the least square initialization of primal and all dual variables.

Definition at line 180 of file IpDefaultIterateInitializer.hpp.


The documentation for this class was generated from the following file: