Ipopt 3.12.10

- Main Page
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Member Functions | List of all members
Ipopt::NLP Class Referenceabstract

Brief Class Description. More...

`#include <IpNLP.hpp>`

Inheritance diagram for Ipopt::NLP:
[legend]

## Public Member Functions
virtual void | GetQuasiNewtonApproximationSpaces (SmartPtr< VectorSpace > &approx_space, SmartPtr< Matrix > &P_approx)
| Method for obtaining the subspace in which the limited-memory Hessian approximation should be done. More...
Constructors/Destructors
| NLP ()
| Default constructor. More...
virtual | ~NLP ()
| Default destructor. More...
| DECLARE_STD_EXCEPTION (USER_SCALING_NOT_IMPLEMENTED)
| Exceptions. More...
| DECLARE_STD_EXCEPTION (INVALID_NLP)
NLP Initialization (overload in
derived classes).
virtual bool | ProcessOptions (const OptionsList &options, const std::string &prefix)
| Overload if you want the chance to process options or parameters that may be specific to the NLP. More...
virtual bool | 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)=0
| Method for creating the derived vector / matrix types. More...
virtual bool | GetBoundsInformation (const Matrix &Px_L, Vector &x_L, const Matrix &Px_U, Vector &x_U, const Matrix &Pd_L, Vector &d_L, const Matrix &Pd_U, Vector &d_U)=0
| Method for obtaining the bounds information. More...
virtual bool | GetStartingPoint (SmartPtr< Vector > x, bool need_x, SmartPtr< Vector > y_c, bool need_y_c, SmartPtr< Vector > y_d, bool need_y_d, SmartPtr< Vector > z_L, bool need_z_L, SmartPtr< Vector > z_U, bool need_z_U)=0
| Method for obtaining the starting point for all the iterates. More...
virtual bool | GetWarmStartIterate (IteratesVector &warm_start_iterate)
| Method for obtaining an entire iterate as a warmstart point. More...
NLP evaluation routines (overload
in derived classes.
virtual bool | Eval_f (const Vector &x, Number &f)=0
virtual bool | Eval_grad_f (const Vector &x, Vector &g_f)=0
virtual bool | Eval_c (const Vector &x, Vector &c)=0
virtual bool | Eval_jac_c (const Vector &x, Matrix &jac_c)=0
virtual bool | Eval_d (const Vector &x, Vector &d)=0
virtual bool | Eval_jac_d (const Vector &x, Matrix &jac_d)=0
virtual bool | Eval_h (const Vector &x, Number obj_factor, const Vector &yc, const Vector &yd, SymMatrix &h)=0
NLP solution routines. Have default dummy
implementations that can be overloaded.
virtual 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)
| This method is called at the very end of the optimization. More...
virtual 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, const IpoptData *ip_data, IpoptCalculatedQuantities *ip_cq)
| This method is called once per iteration, after the iteration summary output has been printed. More...
virtual void | GetScalingParameters (const SmartPtr< const VectorSpace > x_space, const SmartPtr< const VectorSpace > c_space, const SmartPtr< const VectorSpace > d_space, Number &obj_scaling, SmartPtr< Vector > &x_scaling, SmartPtr< Vector > &c_scaling, SmartPtr< Vector > &d_scaling) const
| Routines to get the scaling parameters. More...
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

## 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.
| NLP (const NLP &)
| Copy Constructor. More...
void | operator= (const NLP &)
| Overloaded Equals Operator. More...

## Detailed Description

Brief Class Description.

Detailed Class Description.

Definition at line 31 of file IpNLP.hpp.

## Constructor & Destructor Documentation

Ipopt::NLP::NLP | ( |  | ) |
| inline

Default constructor.

Definition at line 37 of file IpNLP.hpp.

virtual Ipopt::NLP::~NLP | ( |  | ) |
| inline virtual

Default destructor.

Definition at line 41 of file IpNLP.hpp.

Ipopt::NLP::NLP | ( | const NLP & |  | ) |
| private

Copy Constructor.

## Member Function Documentation

Ipopt::NLP::DECLARE_STD_EXCEPTION | ( | USER_SCALING_NOT_IMPLEMENTED |  | ) |

Exceptions.

Ipopt::NLP::DECLARE_STD_EXCEPTION | ( | INVALID_NLP |  | ) |

virtual bool Ipopt::NLP::ProcessOptions | ( | const OptionsList & | options,
|  | const std::string & | prefix
| ) |  |
| inline virtual

Overload if you want the chance to process options or parameters that may be specific to the NLP.

Reimplemented in Ipopt::TNLPAdapter, and Ipopt::NLPBoundsRemover.

Definition at line 56 of file IpNLP.hpp.

virtual bool Ipopt::NLP::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
| ) |  |
| pure virtual

Method for creating the derived vector / matrix types.

The Hess_lagrangian_space pointer can be NULL if a quasi-Newton options is chosen.

Implemented in Ipopt::TNLPAdapter, and Ipopt::NLPBoundsRemover.

virtual bool Ipopt::NLP::GetBoundsInformation | ( | const Matrix & | Px_L,
|  | Vector & | x_L,
|  | const Matrix & | Px_U,
|  | Vector & | x_U,
|  | const Matrix & | Pd_L,
|  | Vector & | d_L,
|  | const Matrix & | Pd_U,
|  | Vector & | d_U
| ) |  |
| pure virtual

Method for obtaining the bounds information.

Implemented in Ipopt::TNLPAdapter, and Ipopt::NLPBoundsRemover.

virtual bool Ipopt::NLP::GetStartingPoint | ( | SmartPtr< Vector > | x,
|  | bool | need_x,
|  | SmartPtr< Vector > | y_c,
|  | bool | need_y_c,
|  | SmartPtr< Vector > | y_d,
|  | bool | need_y_d,
|  | SmartPtr< Vector > | z_L,
|  | bool | need_z_L,
|  | SmartPtr< Vector > | z_U,
|  | bool | need_z_U
| ) |  |
| pure virtual

Method for obtaining the starting point for all the iterates.

ToDo it might not make sense to ask for initial values for v_L and v_U?

Implemented in Ipopt::TNLPAdapter, and Ipopt::NLPBoundsRemover.

virtual bool Ipopt::NLP::GetWarmStartIterate | ( | IteratesVector & | warm_start_iterate | ) |
| inline virtual

Method for obtaining an entire iterate as a warmstart point.

The incoming IteratesVector has to be filled. The default dummy implementation returns false.

Reimplemented in Ipopt::TNLPAdapter, and Ipopt::NLPBoundsRemover.

Definition at line 109 of file IpNLP.hpp.

virtual bool Ipopt::NLP::Eval_f | ( | const Vector & | x,
|  | Number & | f
| ) |  |
| pure virtual

Implemented in Ipopt::NLPBoundsRemover, and Ipopt::TNLPAdapter.

virtual bool Ipopt::NLP::Eval_grad_f | ( | const Vector & | x,
|  | Vector & | g_f
| ) |  |
| pure virtual

Implemented in Ipopt::NLPBoundsRemover, and Ipopt::TNLPAdapter.

virtual bool Ipopt::NLP::Eval_c | ( | const Vector & | x,
|  | Vector & | c
| ) |  |
| pure virtual

Implemented in Ipopt::NLPBoundsRemover, and Ipopt::TNLPAdapter.

virtual bool Ipopt::NLP::Eval_jac_c | ( | const Vector & | x,
|  | Matrix & | jac_c
| ) |  |
| pure virtual

Implemented in Ipopt::NLPBoundsRemover, and Ipopt::TNLPAdapter.

virtual bool Ipopt::NLP::Eval_d | ( | const Vector & | x,
|  | Vector & | d
| ) |  |
| pure virtual

Implemented in Ipopt::NLPBoundsRemover, and Ipopt::TNLPAdapter.

virtual bool Ipopt::NLP::Eval_jac_d | ( | const Vector & | x,
|  | Matrix & | jac_d
| ) |  |
| pure virtual

Implemented in Ipopt::NLPBoundsRemover, and Ipopt::TNLPAdapter.

virtual bool Ipopt::NLP::Eval_h | ( | const Vector & | x,
|  | Number | obj_factor,
|  | const Vector & | yc,
|  | const Vector & | yd,
|  | SymMatrix & | h
| ) |  |
| pure virtual

Implemented in Ipopt::NLPBoundsRemover, and Ipopt::TNLPAdapter.

virtual void Ipopt::NLP::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
| ) |  |
| inline virtual

This method is called at the very end of the optimization.

It provides the final iterate to the user, so that it can be stored as the solution. The status flag indicates the outcome of the optimization, where SolverReturn is defined in IpAlgTypes.hpp.

Reimplemented in Ipopt::NLPBoundsRemover, and Ipopt::TNLPAdapter.

Definition at line 145 of file IpNLP.hpp.

virtual bool Ipopt::NLP::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,
|  | const IpoptData * | ip_data,
|  | IpoptCalculatedQuantities * | ip_cq
| ) |  |
| inline virtual

This method is called once per iteration, after the iteration summary output has been printed.

It provides the current information to the user to do with it anything she wants. It also allows the user to ask for a premature termination of the optimization by returning false, in which case Ipopt will terminate with a corresponding return status. The basic information provided in the argument list has the quantities values printed in the iteration summary line. If more information is required, a user can obtain it from the IpData and IpCalculatedQuantities objects. However, note that the provided quantities are all for the problem that Ipopt sees, i.e., the quantities might be scaled, fixed variables might be sorted out, etc. The status indicates things like whether the algorithm is in the restoration phase... In the restoration phase, the dual variables are probably not not changing.

Reimplemented in Ipopt::NLPBoundsRemover, and Ipopt::TNLPAdapter.

Definition at line 170 of file IpNLP.hpp.

virtual void Ipopt::NLP::GetScalingParameters | ( | const SmartPtr< const VectorSpace > | x_space,
|  | const SmartPtr< const VectorSpace > | c_space,
|  | const SmartPtr< const VectorSpace > | d_space,
|  | Number & | obj_scaling,
|  | SmartPtr< Vector > & | x_scaling,
|  | SmartPtr< Vector > & | c_scaling,
|  | SmartPtr< Vector > & | d_scaling
| ) |  | const
| inline virtual

Routines to get the scaling parameters.

These do not need to be overloaded unless the options are set for User scaling

Reimplemented in Ipopt::NLPBoundsRemover, and Ipopt::TNLPAdapter.

Definition at line 188 of file IpNLP.hpp.

virtual void Ipopt::NLP::GetQuasiNewtonApproximationSpaces | ( | SmartPtr< VectorSpace > & | approx_space,
|  | SmartPtr< Matrix > & | P_approx
| ) |  |
| inline virtual

Method for obtaining the subspace in which the limited-memory Hessian approximation should be done.

This is only called if the limited-memory Hessian approximation is chosen. Since the Hessian is zero in the space of all variables that appear in the problem functions only linearly, this allows the user to provide a VectorSpace for all nonlinear variables, and an ExpansionMatrix to lift from this VectorSpace to the VectorSpace of the primal variables x. If the returned values are NULL, it is assumed that the Hessian is to be approximated in the space of all x variables. The default instantiation of this method returns NULL, and a user only has to overwrite this method if the approximation is to be done only in a subspace.

Reimplemented in Ipopt::NLPBoundsRemover, and Ipopt::TNLPAdapter.

Definition at line 217 of file IpNLP.hpp.

void Ipopt::NLP::operator= | ( | const NLP & |  | ) |
| private

Overloaded Equals Operator.

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

- src/Interfaces/IpNLP.hpp