|
Simbody
3.4 (development)
|
Abstract class which defines an objective/cost function which is optimized by and Optimizer object. More...
#include <Optimizer.h>
Public Member Functions | |
| OptimizerSystem () | |
| OptimizerSystem (int nParameters) | |
| virtual | ~OptimizerSystem () |
| virtual int | objectiveFunc (const Vector ¶meters, bool new_parameters, Real &f) const |
| Objective/cost function which is to be optimized; return 0 when successful. | |
| virtual int | gradientFunc (const Vector ¶meters, bool new_parameters, Vector &gradient) const |
| Computes the gradient of the objective function; return 0 when successful. | |
| virtual int | constraintFunc (const Vector ¶meters, bool new_parameters, Vector &constraints) const |
| Computes the value of the constraints; return 0 when successful. | |
| virtual int | constraintJacobian (const Vector ¶meters, bool new_parameters, Matrix &jac) const |
| Computes Jacobian of the constraints; return 0 when successful. | |
| virtual int | hessian (const Vector ¶meters, bool new_parameters, Vector &gradient) const |
| Computes Hessian of the objective function; return 0 when successful. | |
| void | setNumParameters (const int nParameters) |
| Sets the number of parameters in the objective function. | |
| void | setNumEqualityConstraints (const int n) |
| Sets the number of equality constraints. | |
| void | setNumInequalityConstraints (const int n) |
| Sets the number of inequality constraints. | |
| void | setNumLinearEqualityConstraints (const int n) |
| Sets the number of lineaer equality constraints. | |
| void | setNumLinearInequalityConstraints (const int n) |
| Sets the number of lineaer inequality constraints. | |
| void | setParameterLimits (const Vector &lower, const Vector &upper) |
| Set the upper and lower bounds on the paramters. | |
| int | getNumParameters () const |
| Returns the number of parameters, that is, the number of variables that the Optimizer may adjust while searching for a solution. | |
| int | getNumConstraints () const |
| Returns the total number of constraints. | |
| int | getNumEqualityConstraints () const |
| Returns the number of equality constraints. | |
| int | getNumInequalityConstraints () const |
| Returns the number of inequality constraints. | |
| int | getNumLinearEqualityConstraints () const |
| Returns the number of linear equality constraints. | |
| int | getNumNonlinearEqualityConstraints () const |
| Returns the number of nonlinear equality constraints. | |
| int | getNumLinearInequalityConstraints () const |
| Returns the number of linear inequality constraints. | |
| int | getNumNonlinearInequalityConstraints () const |
| Returns the number of linear inequality constraints. | |
| bool | getHasLimits () const |
| Returns true if there are limits on the parameters. | |
| void | getParameterLimits (Real **lower, Real **upper) const |
| Returns the limits on the allowed values of each parameter, as an array of lower bounds and an array of upper bounds, with assumed lengths matching the number of parameters. | |
Abstract class which defines an objective/cost function which is optimized by and Optimizer object.
The OptimizerSystem also defines any constraints which must be satisfied.
| SimTK::OptimizerSystem::OptimizerSystem | ( | ) | [inline] |
| SimTK::OptimizerSystem::OptimizerSystem | ( | int | nParameters | ) | [inline, explicit] |
| virtual SimTK::OptimizerSystem::~OptimizerSystem | ( | ) | [inline, virtual] |
| virtual int SimTK::OptimizerSystem::objectiveFunc | ( | const Vector & | parameters, |
| bool | new_parameters, | ||
| Real & | f | ||
| ) | const [inline, virtual] |
Objective/cost function which is to be optimized; return 0 when successful.
This method must be supplied by concrete class.
| virtual int SimTK::OptimizerSystem::gradientFunc | ( | const Vector & | parameters, |
| bool | new_parameters, | ||
| Vector & | gradient | ||
| ) | const [inline, virtual] |
Computes the gradient of the objective function; return 0 when successful.
This method does not have to be supplied if a numerical gradient is used.
| virtual int SimTK::OptimizerSystem::constraintFunc | ( | const Vector & | parameters, |
| bool | new_parameters, | ||
| Vector & | constraints | ||
| ) | const [inline, virtual] |
Computes the value of the constraints; return 0 when successful.
This method must be supplied if the objective function has constraints.
| virtual int SimTK::OptimizerSystem::constraintJacobian | ( | const Vector & | parameters, |
| bool | new_parameters, | ||
| Matrix & | jac | ||
| ) | const [inline, virtual] |
Computes Jacobian of the constraints; return 0 when successful.
This method does not have to be supplied if a numerical jacobian is used.
| virtual int SimTK::OptimizerSystem::hessian | ( | const Vector & | parameters, |
| bool | new_parameters, | ||
| Vector & | gradient | ||
| ) | const [inline, virtual] |
Computes Hessian of the objective function; return 0 when successful.
This method does not have to be supplied if limited memory is used.
| void SimTK::OptimizerSystem::setNumParameters | ( | const int | nParameters | ) | [inline] |
Sets the number of parameters in the objective function.
| void SimTK::OptimizerSystem::setNumEqualityConstraints | ( | const int | n | ) | [inline] |
Sets the number of equality constraints.
| void SimTK::OptimizerSystem::setNumInequalityConstraints | ( | const int | n | ) | [inline] |
Sets the number of inequality constraints.
| void SimTK::OptimizerSystem::setNumLinearEqualityConstraints | ( | const int | n | ) | [inline] |
Sets the number of lineaer equality constraints.
| void SimTK::OptimizerSystem::setNumLinearInequalityConstraints | ( | const int | n | ) | [inline] |
Sets the number of lineaer inequality constraints.
| void SimTK::OptimizerSystem::setParameterLimits | ( | const Vector & | lower, |
| const Vector & | upper | ||
| ) | [inline] |
Set the upper and lower bounds on the paramters.
| int SimTK::OptimizerSystem::getNumParameters | ( | ) | const [inline] |
Returns the number of parameters, that is, the number of variables that the Optimizer may adjust while searching for a solution.
| int SimTK::OptimizerSystem::getNumConstraints | ( | ) | const [inline] |
Returns the total number of constraints.
| int SimTK::OptimizerSystem::getNumEqualityConstraints | ( | ) | const [inline] |
Returns the number of equality constraints.
| int SimTK::OptimizerSystem::getNumInequalityConstraints | ( | ) | const [inline] |
Returns the number of inequality constraints.
| int SimTK::OptimizerSystem::getNumLinearEqualityConstraints | ( | ) | const [inline] |
Returns the number of linear equality constraints.
| int SimTK::OptimizerSystem::getNumNonlinearEqualityConstraints | ( | ) | const [inline] |
Returns the number of nonlinear equality constraints.
| int SimTK::OptimizerSystem::getNumLinearInequalityConstraints | ( | ) | const [inline] |
Returns the number of linear inequality constraints.
| int SimTK::OptimizerSystem::getNumNonlinearInequalityConstraints | ( | ) | const [inline] |
Returns the number of linear inequality constraints.
| bool SimTK::OptimizerSystem::getHasLimits | ( | ) | const [inline] |
Returns true if there are limits on the parameters.
| void SimTK::OptimizerSystem::getParameterLimits | ( | Real ** | lower, |
| Real ** | upper | ||
| ) | const [inline] |
Returns the limits on the allowed values of each parameter, as an array of lower bounds and an array of upper bounds, with assumed lengths matching the number of parameters.