Go to the documentation of this file. 1 #ifndef SimTK_SIMMATH_OPTIMIZER_REP_H_
2 #define SimTK_SIMMATH_OPTIMIZER_REP_H_
73 convergenceTolerance(
Real(1e-3)),
74 constraintTolerance(
Real(1e-4)),
76 limitedMemoryHistory(50),
81 numericalGradient(false),
82 numericalJacobian(false)
93 convergenceTolerance(
Real(1e-3)),
94 constraintTolerance(
Real(1e-4)),
96 limitedMemoryHistory(50),
101 numericalGradient(false),
102 numericalJacobian(false)
114 void setDiagnosticsLevel(
const int level );
115 void setConvergenceTolerance(
Real accuracy );
116 void setConstraintTolerance(
Real tolerance );
117 void setMaxIterations(
const int iter );
118 void setLimitedMemoryHistory(
const int history );
120 bool setAdvancedStrOption(
const std::string &option,
const std::string &value );
121 bool setAdvancedRealOption(
const std::string &option,
const Real value );
122 bool setAdvancedIntOption(
const std::string &option,
const int value );
123 bool setAdvancedBoolOption(
const std::string &option,
const bool value );
124 bool setAdvancedVectorOption(
const std::string &option,
const Vector value );
126 bool getAdvancedStrOption(
const std::string &option, std::string &value )
const;
127 bool getAdvancedRealOption(
const std::string &option,
Real &value )
const;
128 bool getAdvancedIntOption(
const std::string &option,
int &value )
const;
129 bool getAdvancedBoolOption(
const std::string &option,
bool &value )
const;
130 bool getAdvancedVectorOption(
const std::string &option,
Vector &value )
const;
136 void useNumericalGradient(
bool flag,
Real objEstAccuracy);
137 void useNumericalJacobian(
bool flag,
Real consEstAccuracy);
144 {
return objectiveEstimatedAccuracy; }
146 {
return constraintsEstimatedAccuracy; }
162 static int numericalGradient_static(
const OptimizerSystem&,
const Vector & parameters,
const bool new_parameters,
Vector &gradient );
164 const Vector& parameters,
const bool new_parameters,
Matrix& jacobian );
172 static int objectiveFuncWrapper (
int n,
const Real* x,
int new_x,
Real* f,
void* rep);
173 static int gradientFuncWrapper (
int n,
const Real* x,
int new_x,
Real* gradient,
void* rep);
174 static int constraintFuncWrapper(
int n,
const Real* x,
int new_x,
int m,
Real* g,
void* rep);
175 static int constraintJacobianWrapper(
int n,
const Real* x,
int new_x,
int m,
int nele_jac,
176 int* iRow,
int* jCol,
Real* values,
void* rep);
177 static int hessianWrapper(
int n,
const Real* x,
int new_x,
Real obj_factor,
178 int m,
Real* lambda,
int new_lambda,
179 int nele_hess,
int* iRow,
int* jCol,
180 Real* values,
void* rep);
193 bool numericalGradient;
194 bool numericalJacobian;
201 std::map<std::string, std::string> advancedStrOptions;
202 std::map<std::string, Real> advancedRealOptions;
203 std::map<std::string, int> advancedIntOptions;
204 std::map<std::string, bool> advancedBoolOptions;
205 std::map<std::string, Vector> advancedVectorOptions;
221 #endif // SimTK_SIMMATH_OPTIMIZER_REP_H_
OptimizerRep()
Definition: OptimizerRep.h:86
const OptimizerSystem & getOptimizerSystem() const
Definition: OptimizerRep.h:111
Derive a concrete class from this one if you have a set of functions (i.e., a vector-valued function)...
Definition: Differentiator.h:227
int f(const Vector &y, Vector &fy) const override
Definition: OptimizerRep.h:56
Real getEstimatedAccuracyOfObjective() const
Definition: OptimizerRep.h:143
Real convergenceTolerance
Definition: OptimizerRep.h:183
Real getEstimatedAccuracyOfConstraints() const
Definition: OptimizerRep.h:145
#define SimTK_SIMMATH_EXPORT
Definition: SimTKmath/include/simmath/internal/common.h:64
This is a System that represents the dynamics of a particle moving along a smooth surface.
Definition: Assembler.h:37
const Optimizer & getMyHandle() const
Definition: OptimizerRep.h:133
int f(const Vector &y, Real &fy) const override
Definition: OptimizerRep.h:42
SysObjectiveFunc(int ny, const OptimizerSystem *sysPtr)
Definition: OptimizerRep.h:38
static bool isAvailable()
Definition: OptimizerRep.h:107
Real constraintsEstimatedAccuracy
Definition: OptimizerRep.h:189
virtual OptimizerAlgorithm getAlgorithm() const
Definition: OptimizerRep.h:158
const Differentiator & getGradientDifferentiator() const
Definition: OptimizerRep.h:148
Real objectiveEstimatedAccuracy
Definition: OptimizerRep.h:188
void clearMyHandle()
Definition: OptimizerRep.h:134
virtual int objectiveFunc(const Vector ¶meters, bool new_parameters, Real &f) const
Objective/cost function which is to be optimized; return 0 when successful.
Definition: Optimizer.h:98
int limitedMemoryHistory
Definition: OptimizerRep.h:186
Differentiator::Method getDifferentiatorMethod() const
Definition: OptimizerRep.h:142
const Differentiator & getJacobianDifferentiator() const
Definition: OptimizerRep.h:153
void setMyHandle(Optimizer &cp)
Definition: OptimizerRep.h:132
Differentiator::Method diffMethod
Definition: OptimizerRep.h:187
@ UnknownOptimizerAlgorithm
Definition: Optimizer.h:61
const OptimizerSystem * sysp
Definition: OptimizerRep.h:45
Definition: OptimizerRep.h:212
int diagnosticsLevel
Definition: OptimizerRep.h:182
Real constraintTolerance
Definition: OptimizerRep.h:184
const OptimizerSystem * sysp
Definition: OptimizerRep.h:59
SimTK_Real Real
This is the default compiled-in floating point type for SimTK, either float or double.
Definition: SimTKcommon/include/SimTKcommon/internal/common.h:606
bool isUsingNumericalGradient() const
Definition: OptimizerRep.h:140
virtual int constraintFunc(const Vector ¶meters, bool new_parameters, Vector &constraints) const
Computes the value of the constraints; return 0 when successful.
Definition: Optimizer.h:111
Method
Definition: Differentiator.h:92
virtual OptimizerRep * clone() const
Definition: OptimizerRep.h:106
Definition: OptimizerRep.h:63
int maxIterations
Definition: OptimizerRep.h:185
Definition: OptimizerRep.h:36
JacobianFunction(int nf=-1, int ny=-1, Real acc=-1)
OptimizerRep(const OptimizerSystem &sys)
Definition: OptimizerRep.h:66
bool isUsingNumericalJacobian() const
Definition: OptimizerRep.h:141
Abstract class which defines an objective/cost function which is optimized by and Optimizer object.
Definition: Optimizer.h:71
OptimizerAlgorithm
The available Optimizer algorithms.
Definition: Optimizer.h:40
GradientFunction(int ny=-1, Real acc=-1)
Definition: OptimizerRep.h:50
API for SimTK Simmath's optimizers.
Definition: Optimizer.h:421
Derive a concrete class from this one if you have a scalar function of multiple variables that you wa...
Definition: Differentiator.h:208
Given a function f(y), where f, y or both can be vectors, calculate the derivative (gradient,...
Definition: Differentiator.h:77
SysConstraintFunc(int nf, int ny, const OptimizerSystem *sysPtr)
Definition: OptimizerRep.h:52
const Real SignificantReal
SignificantReal is the smallest value that we consider to be clearly distinct from roundoff error whe...