Ipopt
3.11.9
|
This class maps the traditional NLP into something that is more useful by Ipopt. More...
#include <IpRestoIpoptNLP.hpp>
Public Member Functions | |
Constructors/Destructors | |
RestoIpoptNLP (IpoptNLP &orig_ip_nlp, IpoptData &orig_ip_data, IpoptCalculatedQuantities &orig_ip_cq) | |
~RestoIpoptNLP () | |
Default destructor. More... | |
virtual bool | Initialize (const Journalist &jnlst, const OptionsList &options, const std::string &prefix) |
Initialize - overloaded from IpoptNLP. More... | |
virtual bool | InitializeStructures (SmartPtr< Vector > &x, bool init_x, SmartPtr< Vector > &y_c, bool init_y_c, SmartPtr< Vector > &y_d, bool init_y_d, SmartPtr< Vector > &z_L, bool init_z_L, SmartPtr< Vector > &z_U, bool init_z_U, SmartPtr< Vector > &v_L, SmartPtr< Vector > &v_U) |
Initialize (create) structures for the iteration data. More... | |
virtual bool | GetWarmStartIterate (IteratesVector &warm_start_iterate) |
Method accessing the GetWarmStartIterate of the NLP. More... | |
void | FinalizeSolution (SolverReturn status, const Vector &x, const Vector &z_L, const Vector &z_U, const Vector &c, const Vector &d, const Vector &y_c, const Vector &y_d, Number obj_value, const IpoptData *ip_data, IpoptCalculatedQuantities *ip_cq) |
Solution Routines - overloaded from IpoptNLP. More... | |
virtual bool | objective_depends_on_mu () const |
Accessor methods for model data. More... | |
virtual Number | f (const Vector &x) |
Objective value (incorrect version for restoration phase) More... | |
virtual Number | f (const Vector &x, Number mu) |
Objective value. More... | |
virtual SmartPtr< const Vector > | grad_f (const Vector &x) |
Gradient of the objective (incorrect version for restoration phase) More... | |
virtual SmartPtr< const Vector > | grad_f (const Vector &x, Number mu) |
Gradient of the objective. More... | |
virtual SmartPtr< const Vector > | c (const Vector &x) |
Equality constraint residual. More... | |
virtual SmartPtr< const Matrix > | jac_c (const Vector &x) |
Jacobian Matrix for equality constraints. More... | |
virtual SmartPtr< const Vector > | d (const Vector &x) |
Inequality constraint residual (reformulated as equalities with slacks. More... | |
virtual SmartPtr< const Matrix > | jac_d (const Vector &x) |
Jacobian Matrix for inequality constraints. More... | |
virtual SmartPtr< const SymMatrix > | h (const Vector &x, Number obj_factor, const Vector &yc, const Vector &yd) |
Hessian of the Lagrangian (incorrect version for restoration phase) More... | |
virtual SmartPtr< const SymMatrix > | h (const Vector &x, Number obj_factor, const Vector &yc, const Vector &yd, Number mu) |
Hessian of the Lagrangian. More... | |
virtual SmartPtr< const SymMatrix > | uninitialized_h () |
Provides a Hessian matrix from the correct matrix space with uninitialized values. More... | |
virtual SmartPtr< const Vector > | x_L () const |
Lower bounds on x. More... | |
virtual SmartPtr< const Matrix > | Px_L () const |
Permutation matrix (x_L_ -> x) More... | |
virtual SmartPtr< const Vector > | x_U () const |
Upper bounds on x. More... | |
virtual SmartPtr< const Matrix > | Px_U () const |
Permutation matrix (x_U_ -> x. More... | |
virtual SmartPtr< const Vector > | d_L () const |
Lower bounds on d. More... | |
virtual SmartPtr< const Matrix > | Pd_L () const |
Permutation matrix (d_L_ -> d) More... | |
virtual SmartPtr< const Vector > | d_U () const |
Upper bounds on d. More... | |
virtual SmartPtr< const Matrix > | Pd_U () const |
Permutation matrix (d_U_ -> d. More... | |
virtual SmartPtr< const SymMatrixSpace > | HessianMatrixSpace () const |
Accessor method to obtain the MatrixSpace for the Hessian matrix (or it's approximation) More... | |
virtual void | GetSpaces (SmartPtr< const VectorSpace > &x_space, SmartPtr< const VectorSpace > &c_space, SmartPtr< const VectorSpace > &d_space, SmartPtr< const VectorSpace > &x_l_space, SmartPtr< const MatrixSpace > &px_l_space, SmartPtr< const VectorSpace > &x_u_space, SmartPtr< const MatrixSpace > &px_u_space, SmartPtr< const VectorSpace > &d_l_space, SmartPtr< const MatrixSpace > &pd_l_space, SmartPtr< const VectorSpace > &d_u_space, SmartPtr< const MatrixSpace > &pd_u_space, SmartPtr< const MatrixSpace > &Jac_c_space, SmartPtr< const MatrixSpace > &Jac_d_space, SmartPtr< const SymMatrixSpace > &Hess_lagrangian_space) |
Accessor method for vector/matrix spaces pointers. More... | |
virtual void | AdjustVariableBounds (const Vector &new_x_L, const Vector &new_x_U, const Vector &new_d_L, const Vector &new_d_U) |
Method for adapting the variable bounds. More... | |
bool | IntermediateCallBack (AlgorithmMode mode, Index iter, Number obj_value, Number inf_pr, Number inf_du, Number mu, Number d_norm, Number regularization_size, Number alpha_du, Number alpha_pr, Index ls_trials, SmartPtr< const IpoptData > ip_data, SmartPtr< IpoptCalculatedQuantities > ip_cq) |
User callback method. More... | |
Accessor method for the information of the original NLP. | |
These methods are not overloaded from IpoptNLP | |
IpoptNLP & | OrigIpNLP () const |
IpoptData & | OrigIpData () const |
IpoptCalculatedQuantities & | OrigIpCq () const |
Number | Rho () const |
Accessor Method for obtaining the Rho penalization factor for the ell_1 norm. More... | |
![]() | |
IpoptNLP (const SmartPtr< NLPScalingObject > nlp_scaling) | |
virtual | ~IpoptNLP () |
Default destructor. More... | |
DECLARE_STD_EXCEPTION (Eval_Error) | |
thrown if there is any error evaluating values from the nlp More... | |
SmartPtr< NLPScalingObject > | NLP_scaling () const |
Returns the scaling strategy object. More... | |
![]() | |
ReferencedObject () | |
virtual | ~ReferencedObject () |
Index | ReferenceCount () const |
void | AddRef (const Referencer *referencer) const |
void | ReleaseRef (const Referencer *referencer) const |
Private Member Functions | |
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. | |
RestoIpoptNLP () | |
Default Constructor. More... | |
RestoIpoptNLP (const RestoIpoptNLP &) | |
Copy Constructor. More... | |
void | operator= (const RestoIpoptNLP &) |
Overloaded Equals Operator. More... | |
Private Attributes | |
Pointers for the original NLP information. | |
SmartPtr< IpoptNLP > | orig_ip_nlp_ |
Pointer to the original IpoptNLP. More... | |
SmartPtr< IpoptData > | orig_ip_data_ |
Pointer to the original IpoptData. More... | |
SmartPtr< IpoptCalculatedQuantities > | orig_ip_cq_ |
Pointer to the original IpoptCalculatedQuantities. More... | |
SmartPtr< CompoundVectorSpace > | x_space_ |
Necessary Vector/Matrix spaces. More... | |
SmartPtr< const VectorSpace > | c_space_ |
SmartPtr< const VectorSpace > | d_space_ |
SmartPtr< CompoundVectorSpace > | x_l_space_ |
SmartPtr< CompoundMatrixSpace > | px_l_space_ |
SmartPtr< const VectorSpace > | x_u_space_ |
SmartPtr< CompoundMatrixSpace > | px_u_space_ |
SmartPtr< const VectorSpace > | d_l_space_ |
SmartPtr< const MatrixSpace > | pd_l_space_ |
SmartPtr< const VectorSpace > | d_u_space_ |
SmartPtr< const MatrixSpace > | pd_u_space_ |
SmartPtr< CompoundMatrixSpace > | jac_c_space_ |
SmartPtr< CompoundMatrixSpace > | jac_d_space_ |
SmartPtr< CompoundSymMatrixSpace > | h_space_ |
Storage for Model Quantities | |
SmartPtr< CompoundVector > | x_L_ |
Lower bounds on x. More... | |
SmartPtr< CompoundMatrix > | Px_L_ |
Permutation matrix (x_L_ -> x) More... | |
SmartPtr< const Vector > | x_U_ |
Upper bounds on x. More... | |
SmartPtr< CompoundMatrix > | Px_U_ |
Permutation matrix (x_U_ -> x) More... | |
SmartPtr< const Vector > | d_L_ |
Lower bounds on d. More... | |
SmartPtr< const Matrix > | Pd_L_ |
Permutation matrix (d_L_ -> d) More... | |
SmartPtr< const Vector > | d_U_ |
Upper bounds on d. More... | |
SmartPtr< const Matrix > | Pd_U_ |
Permutation matrix (d_U_ -> d. More... | |
Values particular to the restoration phase problem statement | |
Number | rho_ |
Penalty parameter for the $l_1$ norm. More... | |
Number | eta_factor_ |
scaling factor for eta calculation More... | |
Number | eta_mu_exponent_ |
exponent for mu in eta calculation More... | |
SmartPtr< Vector > | dr_x_ |
Scaling factors for the $x$ part of the regularization term. More... | |
SmartPtr< DiagMatrix > | DR_x_ |
SmartPtr< Vector > | x_ref_ |
$x$ part of the reference point in the regularization term More... | |
Algorithmic parameter | |
bool | evaluate_orig_obj_at_resto_trial_ |
Flag indicating if evalution of the objective should be performed for every restoration phase objective function evaluation. More... | |
HessianApproximationType | hessian_approximation_ |
Flag indicating how hessian information is obtained. More... | |
bool | initialized_ |
Flag indicating if initialization method has been called. More... | |
Counters for the function evaluations | |
Index | f_evals_ |
Index | grad_f_evals_ |
Index | c_evals_ |
Index | jac_c_evals_ |
Index | d_evals_ |
Index | jac_d_evals_ |
Index | h_evals_ |
Counters for the number of function evaluations. | |
virtual Index | f_evals () const |
virtual Index | grad_f_evals () const |
virtual Index | c_evals () const |
virtual Index | jac_c_evals () const |
virtual Index | d_evals () const |
virtual Index | jac_d_evals () const |
virtual Index | h_evals () const |
Number | Eta (Number mu) const |
Method to calculate eta, the factor for the regularization term. More... | |
SmartPtr< const Vector > | DR_x () const |
Method returning the scaling factors for the 2-norm penalization term. More... | |
static void | RegisterOptions (SmartPtr< RegisteredOptions > roptions) |
Methods for IpoptType. More... | |
This class maps the traditional NLP into something that is more useful by Ipopt.
This class takes care of storing the calculated model results, handles cacheing, and (some day) takes care of addition of slacks.
Definition at line 32 of file IpRestoIpoptNLP.hpp.
Ipopt::RestoIpoptNLP::RestoIpoptNLP | ( | IpoptNLP & | orig_ip_nlp, |
IpoptData & | orig_ip_data, | ||
IpoptCalculatedQuantities & | orig_ip_cq | ||
) |
Ipopt::RestoIpoptNLP::~RestoIpoptNLP | ( | ) |
Default destructor.
|
private |
Default Constructor.
|
private |
Copy Constructor.
|
virtual |
Initialize - overloaded from IpoptNLP.
Reimplemented from Ipopt::IpoptNLP.
|
virtual |
Initialize (create) structures for the iteration data.
Implements Ipopt::IpoptNLP.
|
inlinevirtual |
Method accessing the GetWarmStartIterate of the NLP.
Implements Ipopt::IpoptNLP.
Definition at line 67 of file IpRestoIpoptNLP.hpp.
|
inlinevirtual |
Solution Routines - overloaded from IpoptNLP.
Implements Ipopt::IpoptNLP.
Definition at line 74 of file IpRestoIpoptNLP.hpp.
|
inlinevirtual |
Accessor methods for model data.
Method for telling IpoptCalculatedQuantities that the restoration phase objective function depends on the barrier parameter
Reimplemented from Ipopt::IpoptNLP.
Definition at line 89 of file IpRestoIpoptNLP.hpp.
Objective value (incorrect version for restoration phase)
Implements Ipopt::IpoptNLP.
Objective value.
Implements Ipopt::IpoptNLP.
Gradient of the objective (incorrect version for restoration phase)
Implements Ipopt::IpoptNLP.
Gradient of the objective.
Implements Ipopt::IpoptNLP.
Equality constraint residual.
Implements Ipopt::IpoptNLP.
Jacobian Matrix for equality constraints.
Implements Ipopt::IpoptNLP.
Inequality constraint residual (reformulated as equalities with slacks.
Implements Ipopt::IpoptNLP.
Jacobian Matrix for inequality constraints.
Implements Ipopt::IpoptNLP.
|
virtual |
Hessian of the Lagrangian (incorrect version for restoration phase)
Implements Ipopt::IpoptNLP.
|
virtual |
Hessian of the Lagrangian.
Implements Ipopt::IpoptNLP.
Provides a Hessian matrix from the correct matrix space with uninitialized values.
This can be used in LeastSquareMults to obtain a "zero Hessian".
Implements Ipopt::IpoptNLP.
Permutation matrix (x_L_ -> x)
Implements Ipopt::IpoptNLP.
Definition at line 146 of file IpRestoIpoptNLP.hpp.
Permutation matrix (x_U_ -> x.
Implements Ipopt::IpoptNLP.
Definition at line 158 of file IpRestoIpoptNLP.hpp.
Permutation matrix (d_L_ -> d)
Implements Ipopt::IpoptNLP.
Definition at line 170 of file IpRestoIpoptNLP.hpp.
Permutation matrix (d_U_ -> d.
Implements Ipopt::IpoptNLP.
Definition at line 182 of file IpRestoIpoptNLP.hpp.
|
inlinevirtual |
Accessor method to obtain the MatrixSpace for the Hessian matrix (or it's approximation)
Implements Ipopt::IpoptNLP.
Definition at line 187 of file IpRestoIpoptNLP.hpp.
|
virtual |
Accessor method for vector/matrix spaces pointers.
Implements Ipopt::IpoptNLP.
|
virtual |
Method for adapting the variable bounds.
This is called if slacks are becoming too small
Implements Ipopt::IpoptNLP.
|
virtual |
User callback method.
Implements Ipopt::IpoptNLP.
|
inline |
Definition at line 229 of file IpRestoIpoptNLP.hpp.
|
inline |
Definition at line 233 of file IpRestoIpoptNLP.hpp.
|
inline |
Definition at line 237 of file IpRestoIpoptNLP.hpp.
|
inline |
Accessor Method for obtaining the Rho penalization factor for the ell_1 norm.
Definition at line 245 of file IpRestoIpoptNLP.hpp.
|
inlinevirtual |
Implements Ipopt::IpoptNLP.
Definition at line 252 of file IpRestoIpoptNLP.hpp.
|
inlinevirtual |
Implements Ipopt::IpoptNLP.
Definition at line 256 of file IpRestoIpoptNLP.hpp.
|
inlinevirtual |
Implements Ipopt::IpoptNLP.
Definition at line 260 of file IpRestoIpoptNLP.hpp.
|
inlinevirtual |
Implements Ipopt::IpoptNLP.
Definition at line 264 of file IpRestoIpoptNLP.hpp.
|
inlinevirtual |
Implements Ipopt::IpoptNLP.
Definition at line 268 of file IpRestoIpoptNLP.hpp.
|
inlinevirtual |
Implements Ipopt::IpoptNLP.
Definition at line 272 of file IpRestoIpoptNLP.hpp.
|
inlinevirtual |
Implements Ipopt::IpoptNLP.
Definition at line 276 of file IpRestoIpoptNLP.hpp.
Method to calculate eta, the factor for the regularization term.
Method returning the scaling factors for the 2-norm penalization term.
Definition at line 287 of file IpRestoIpoptNLP.hpp.
|
static |
Methods for IpoptType.
Called by IpoptType to register the options
|
private |
Overloaded Equals Operator.
Pointer to the original IpoptNLP.
Definition at line 302 of file IpRestoIpoptNLP.hpp.
Pointer to the original IpoptData.
Definition at line 305 of file IpRestoIpoptNLP.hpp.
|
private |
Pointer to the original IpoptCalculatedQuantities.
Definition at line 308 of file IpRestoIpoptNLP.hpp.
|
private |
Necessary Vector/Matrix spaces.
Definition at line 313 of file IpRestoIpoptNLP.hpp.
|
private |
Definition at line 315 of file IpRestoIpoptNLP.hpp.
|
private |
Definition at line 317 of file IpRestoIpoptNLP.hpp.
|
private |
Definition at line 319 of file IpRestoIpoptNLP.hpp.
|
private |
Definition at line 321 of file IpRestoIpoptNLP.hpp.
|
private |
Definition at line 323 of file IpRestoIpoptNLP.hpp.
|
private |
Definition at line 325 of file IpRestoIpoptNLP.hpp.
|
private |
Definition at line 327 of file IpRestoIpoptNLP.hpp.
|
private |
Definition at line 329 of file IpRestoIpoptNLP.hpp.
|
private |
Definition at line 331 of file IpRestoIpoptNLP.hpp.
|
private |
Definition at line 333 of file IpRestoIpoptNLP.hpp.
|
private |
Definition at line 335 of file IpRestoIpoptNLP.hpp.
|
private |
Definition at line 337 of file IpRestoIpoptNLP.hpp.
|
private |
Definition at line 339 of file IpRestoIpoptNLP.hpp.
|
private |
Lower bounds on x.
Definition at line 345 of file IpRestoIpoptNLP.hpp.
|
private |
Permutation matrix (x_L_ -> x)
Definition at line 348 of file IpRestoIpoptNLP.hpp.
Upper bounds on x.
Definition at line 351 of file IpRestoIpoptNLP.hpp.
|
private |
Permutation matrix (x_U_ -> x)
Definition at line 354 of file IpRestoIpoptNLP.hpp.
Lower bounds on d.
Definition at line 357 of file IpRestoIpoptNLP.hpp.
Permutation matrix (d_L_ -> d)
Definition at line 360 of file IpRestoIpoptNLP.hpp.
Upper bounds on d.
Definition at line 363 of file IpRestoIpoptNLP.hpp.
Permutation matrix (d_U_ -> d.
Definition at line 366 of file IpRestoIpoptNLP.hpp.
|
private |
Penalty parameter for the $l_1$ norm.
Definition at line 373 of file IpRestoIpoptNLP.hpp.
|
private |
scaling factor for eta calculation
Definition at line 375 of file IpRestoIpoptNLP.hpp.
|
private |
exponent for mu in eta calculation
Definition at line 377 of file IpRestoIpoptNLP.hpp.
Scaling factors for the $x$ part of the regularization term.
Definition at line 380 of file IpRestoIpoptNLP.hpp.
|
private |
Definition at line 381 of file IpRestoIpoptNLP.hpp.
$x$ part of the reference point in the regularization term
Definition at line 383 of file IpRestoIpoptNLP.hpp.
|
private |
Flag indicating if evalution of the objective should be performed for every restoration phase objective function evaluation.
Definition at line 409 of file IpRestoIpoptNLP.hpp.
|
private |
Flag indicating how hessian information is obtained.
Definition at line 411 of file IpRestoIpoptNLP.hpp.
|
private |
Flag indicating if initialization method has been called.
Definition at line 415 of file IpRestoIpoptNLP.hpp.
|
private |
Definition at line 419 of file IpRestoIpoptNLP.hpp.
|
private |
Definition at line 420 of file IpRestoIpoptNLP.hpp.
|
private |
Definition at line 421 of file IpRestoIpoptNLP.hpp.
|
private |
Definition at line 422 of file IpRestoIpoptNLP.hpp.
|
private |
Definition at line 423 of file IpRestoIpoptNLP.hpp.
|
private |
Definition at line 424 of file IpRestoIpoptNLP.hpp.
|
private |
Definition at line 425 of file IpRestoIpoptNLP.hpp.