This is an adapter for an NLP that converts variable bound constraints to inequality constraints. More...
#include <IpNLPBoundsRemover.hpp>
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. | |
NLPBoundsRemover () | |
Default Constructor. | |
NLPBoundsRemover (const NLPBoundsRemover &) | |
Copy Constructor. | |
void | operator= (const NLPBoundsRemover &) |
Default Assignment Operator. | |
Private Attributes | |
SmartPtr< NLP > | nlp_ |
Pointer to the original NLP. | |
SmartPtr< const Matrix > | Px_l_orig_ |
Pointer to the expansion matrix for the lower x bounds. | |
SmartPtr< const Matrix > | Px_u_orig_ |
Pointer to the expansion matrix for the upper x bounds. | |
SmartPtr< const VectorSpace > | d_space_orig_ |
Pointer to the original d space. | |
bool | allow_twosided_inequalities_ |
Flag indicating whether twosided inequality constraints are allowed. | |
This is an adapter for an NLP that converts variable bound constraints to inequality constraints.
This is necessary for the version of Ipopt that uses iterative linear solvers. At this point, none of the original inequality constraints is allowed to have both lower and upper bounds. The NLP visible to Ipopt via this adapter will not have any bounds on variables, but have equivalent inequality constraints.
Definition at line 23 of file IpNLPBoundsRemover.hpp.
The constructor is given the NLP of which the bounds are to be replaced by inequality constraints.
|
inlinevirtual |
Destructor.
Definition at line 37 of file IpNLPBoundsRemover.hpp.
|
private |
Default Constructor.
|
private |
Copy Constructor.
|
inlinevirtual |
Overload if you want the chance to process options or parameters that may be specific to the NLP.
Reimplemented from Ipopt::NLP.
Definition at line 46 of file IpNLPBoundsRemover.hpp.
|
virtual |
Method for creating the derived vector / matrix types.
The Hess_lagrangian_space pointer can be NULL if a quasi-Newton options is chosen.
Implements Ipopt::NLP.
|
virtual |
Method for obtaining the bounds information.
Implements Ipopt::NLP.
|
virtual |
Method for obtaining the starting point for all the iterates.
Implements Ipopt::NLP.
|
inlinevirtual |
Method for obtaining an entire iterate as a warmstart point.
The incoming IteratesVector has to be filled. This has not yet been implemented for this adapter.
Reimplemented from Ipopt::NLP.
Definition at line 107 of file IpNLPBoundsRemover.hpp.
Implements Ipopt::NLP.
Definition at line 117 of file IpNLPBoundsRemover.hpp.
Implements Ipopt::NLP.
Definition at line 125 of file IpNLPBoundsRemover.hpp.
Implements Ipopt::NLP.
Definition at line 133 of file IpNLPBoundsRemover.hpp.
Implements Ipopt::NLP.
Definition at line 141 of file IpNLPBoundsRemover.hpp.
Implements Ipopt::NLP.
Implements Ipopt::NLP.
|
virtual |
Implements Ipopt::NLP.
|
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 from Ipopt::NLP.
|
inlinevirtual |
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 from Ipopt::NLP.
Definition at line 184 of file IpNLPBoundsRemover.hpp.
|
virtual |
Routines to get the scaling parameters.
Reimplemented from Ipopt::NLP.
|
inlinevirtual |
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 from Ipopt::NLP.
Definition at line 218 of file IpNLPBoundsRemover.hpp.
Accessor method to the original NLP.
Definition at line 227 of file IpNLPBoundsRemover.hpp.
|
private |
Default Assignment Operator.
Pointer to the original NLP.
Definition at line 257 of file IpNLPBoundsRemover.hpp.
Pointer to the expansion matrix for the lower x bounds.
Definition at line 260 of file IpNLPBoundsRemover.hpp.
Pointer to the expansion matrix for the upper x bounds.
Definition at line 263 of file IpNLPBoundsRemover.hpp.
|
private |
Pointer to the original d space.
Definition at line 266 of file IpNLPBoundsRemover.hpp.
|
private |
Flag indicating whether twosided inequality constraints are allowed.
Definition at line 269 of file IpNLPBoundsRemover.hpp.