Class implementing the default initialization procedure (based on user options) for the iterates. More...
#include <IpDefaultIterateInitializer.hpp>
Public Types | |
Enums of option values | |
enum | BoundMultInitMethod { B_CONSTANT = 0 , B_MU_BASED } |
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< EqMultiplierCalculator > | eq_mult_calculator_ |
object to be used for the initialization of the equality constraint multipliers. | |
SmartPtr< IterateInitializer > | warm_start_initializer_ |
object to be used for a warm start initialization | |
SmartPtr< AugSystemSolver > | aug_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 Journalist & | Jnlst () const |
IpoptNLP & | IpNLP () const |
IpoptData & | IpData () const |
IpoptCalculatedQuantities & | IpCq () const |
bool | HaveIpData () const |
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.
Enumerator | |
---|---|
B_CONSTANT | |
B_MU_BASED |
Definition at line 102 of file IpDefaultIterateInitializer.hpp.
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.
|
inlinevirtual |
Destructor.
Definition at line 43 of file IpDefaultIterateInitializer.hpp.
|
private |
Default Constructor.
|
private |
Copy Constructor.
|
virtual |
overloaded from AlgorithmStrategyObject
Implements Ipopt::IterateInitializer.
Compute the initial iterates and set the into the curr field of the ip_data object.
Implements Ipopt::IterateInitializer.
|
static |
Auxiliary function for moving the initial point.
This is declared static so that it can also be used from WarmStartIterateInitializer.
|
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.
|
static |
|
private |
Default Assignment Operator.
|
private |
Auxiliary method for computing least square primal variables.
|
private |
Auxiliary method for computing least square dual variables.
|
private |
Absolute parameter for bumping x0.
Definition at line 136 of file IpDefaultIterateInitializer.hpp.
|
private |
Relative parameter for bumping x0.
Definition at line 138 of file IpDefaultIterateInitializer.hpp.
|
private |
Absolute parameter for bumping s0.
Definition at line 140 of file IpDefaultIterateInitializer.hpp.
|
private |
Relative parameter for bumping s0.
Definition at line 142 of file IpDefaultIterateInitializer.hpp.
|
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.
|
private |
Initial value for all bound multipliers.
Definition at line 149 of file IpDefaultIterateInitializer.hpp.
|
private |
Flag indicating whether warm_start_initializer should be used instead of the default initialization.
Definition at line 152 of file IpDefaultIterateInitializer.hpp.
|
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.
|
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.
|
private |
Flag indicating how bound multipliers are initialized.
Definition at line 162 of file IpDefaultIterateInitializer.hpp.
|
private |
Initial value of barrier parameter.
Definition at line 164 of file IpDefaultIterateInitializer.hpp.
|
private |
object to be used for the initialization of the equality constraint multipliers.
Definition at line 170 of file IpDefaultIterateInitializer.hpp.
|
private |
object to be used for a warm start initialization
Definition at line 173 of file IpDefaultIterateInitializer.hpp.
|
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.