DOpE
|
#include <reduced_ipopt_algorithm.h>
Public Member Functions | |
Reduced_IpoptAlgorithm (PROBLEM *OP, ReducedProblemInterface< PROBLEM, VECTOR > *S, DOpEtypes::VectorStorageType vector_behavior, ParameterReader ¶m_reader, DOpEExceptionHandler< VECTOR > *Except=NULL, DOpEOutputHandler< VECTOR > *Output=NULL, int base_priority=0) | |
~Reduced_IpoptAlgorithm () | |
virtual int | Solve (ControlVector< VECTOR > &q, double global_tol=-1.) |
Public Member Functions inherited from DOpE::ReducedAlgorithm< PROBLEM, VECTOR > | |
ReducedAlgorithm (PROBLEM *OP, ReducedProblemInterface< PROBLEM, VECTOR > *S, ParameterReader ¶m_reader, DOpEExceptionHandler< VECTOR > *Except=NULL, DOpEOutputHandler< VECTOR > *Output=NULL, int base_priority=0) | |
virtual | ~ReducedAlgorithm () |
virtual void | ReInit () |
virtual void | SolveForward (ControlVector< VECTOR > &q) |
virtual void | CheckGrads (double c, ControlVector< VECTOR > &q, ControlVector< VECTOR > &dq, unsigned int niter=1, double eps=1.) |
virtual void | FirstDifferenceQuotient (double exact, double eps, const ControlVector< VECTOR > &q, const ControlVector< VECTOR > &dq) |
virtual void | CheckHessian (double c, ControlVector< VECTOR > &q, ControlVector< VECTOR > &dq, unsigned int niter=1, double eps=1.) |
virtual void | SecondDifferenceQuotient (double exact, double eps, const ControlVector< VECTOR > &q, const ControlVector< VECTOR > &dq) |
DOpEExceptionHandler< VECTOR > * | GetExceptionHandler () |
DOpEOutputHandler< VECTOR > * | GetOutputHandler () |
Static Public Member Functions | |
static void | declare_params (ParameterReader ¶m_reader) |
Static Public Member Functions inherited from DOpE::ReducedAlgorithm< PROBLEM, VECTOR > | |
static void | declare_params (ParameterReader ¶m_reader) |
Additional Inherited Members | |
Protected Member Functions inherited from DOpE::ReducedAlgorithm< PROBLEM, VECTOR > | |
PROBLEM * | GetProblem () |
const PROBLEM * | GetProblem () const |
const ReducedProblemInterface < PROBLEM, VECTOR > * | GetReducedProblem () const |
ReducedProblemInterface < PROBLEM, VECTOR > * | GetReducedProblem () |
int | GetBasePriority () const |
This class provides a solver for constrained optimization problems in reduced form, i.e., the dependent variable given by an equality constraint is assumed to be eliminated by solving the equation. I.e., we solve the problem min j(q) s.t., a q b, g(q) 0
The solution is done by interfacing to the IPOPT library.
<PROBLEM> | The problem container. See, e.g., OptProblemContainer |
<VECTOR> | The vector type of the solution. |
DOpE::Reduced_IpoptAlgorithm< PROBLEM, VECTOR >::Reduced_IpoptAlgorithm | ( | PROBLEM * | OP, |
ReducedProblemInterface< PROBLEM, VECTOR > * | S, | ||
DOpEtypes::VectorStorageType | vector_behavior, | ||
ParameterReader & | param_reader, | ||
DOpEExceptionHandler< VECTOR > * | Except = NULL , |
||
DOpEOutputHandler< VECTOR > * | Output = NULL , |
||
int | base_priority = 0 |
||
) |
The constructor for the algorithm
OP | A pointer to the problem container |
S | The reduced problem. This object handles the equality constraint. For the interface see ReducedProblemInterface. |
param_reader | A parameter reader to access user given runtime parameters. |
Except | The DOpEExceptionHandler. This is used to handle the output by all exception. |
Output | The DOpEOutputHandler. This takes care of all output generated by the problem. |
base_priority | An offset for the priority of the output generated by the algorithm. |
DOpE::Reduced_IpoptAlgorithm< PROBLEM, VECTOR >::~Reduced_IpoptAlgorithm | ( | ) |
|
static |
Used to declare run time parameters. This is needed to declare all parameters a startup without the need for an object to be already declared.
|
virtual |
This solves an Optimizationproblem in only the control variable using the commercial optimization library ipopt. To use it you need to define the compiler flag WITH_IPOPT and ensure that all required ipopt headers and libraries are within the path or otherwise known.
q | The initial point. |
global_tol | An optional parameter specifying the required tolerance. The actual tolerance is the maximum of this and the one specified in the param file. Its default value is negative, so that it has no influence if not specified. |
Implements DOpE::ReducedAlgorithm< PROBLEM, VECTOR >.