Simbody
|
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, const bool new_parameters, Real &f) const |
Objective/cost function which is to be optimized; return 0 when successful. | |
virtual int | gradientFunc (const Vector ¶meters, const bool new_parameters, Vector &gradient) const |
Computes the gradient of the objective function; return 0 when successful. | |
virtual int | constraintFunc (const Vector ¶meters, const bool new_parameters, Vector &constraints) const |
Computes the value of the constraints; return 0 when successful. | |
virtual int | constraintJacobian (const Vector ¶meters, const bool new_parameters, Matrix &jac) const |
Computes Jacobian of the constraints; return 0 when successful. | |
virtual int | hessian (const Vector ¶meters, const 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 (double **lower, double **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, |
const 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, |
const 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, |
const 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, |
const 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, |
const 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 | ( | double ** | lower, |
double ** | 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.