LSST Applications g0f08755f38+9c285cab97,g1635faa6d4+13f3999e92,g1653933729+a8ce1bb630,g1a0ca8cf93+bf6eb00ceb,g28da252d5a+0829b12dee,g29321ee8c0+5700dc9eac,g2bbee38e9b+9634bc57db,g2bc492864f+9634bc57db,g2cdde0e794+c2c89b37c4,g3156d2b45e+41e33cbcdc,g347aa1857d+9634bc57db,g35bb328faa+a8ce1bb630,g3a166c0a6a+9634bc57db,g3e281a1b8c+9f2c4e2fc3,g414038480c+077ccc18e7,g41af890bb2+fde0dd39b6,g5fbc88fb19+17cd334064,g781aacb6e4+a8ce1bb630,g80478fca09+55a9465950,g82479be7b0+d730eedb7d,g858d7b2824+9c285cab97,g9125e01d80+a8ce1bb630,g9726552aa6+10f999ec6a,ga5288a1d22+2a84bb7594,gacf8899fa4+c69c5206e8,gae0086650b+a8ce1bb630,gb58c049af0+d64f4d3760,gc28159a63d+9634bc57db,gcf0d15dbbd+4b7d09cae4,gda3e153d99+9c285cab97,gda6a2b7d83+4b7d09cae4,gdaeeff99f8+1711a396fd,ge2409df99d+5e831397f4,ge79ae78c31+9634bc57db,gf0baf85859+147a0692ba,gf3967379c6+41c94011de,gf3fb38a9a8+8f07a9901b,gfb92a5be7c+9c285cab97,w.2024.46
LSST Data Management Base Package
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
lsst::meas::modelfit::OptimizerControl Class Reference

Configuration object for Optimizer. More...

#include <optimizer.h>

Public Member Functions

 OptimizerControl ()
 

Public Attributes

bool noSR1Term
 "If true, ignore the SR1 update term in the Hessian, resulting in a Levenberg-Marquardt-like method" ;
 
double skipSR1UpdateThreshold
 "Skip the SR1 update if |v||s| / (|v||s|) is less than this threshold" ;
 
double minTrustRadiusThreshold
 "If the trust radius falls below this threshold, consider the algorithm converged" ;
 
double gradientThreshold
 "If the maximum of the gradient falls below this threshold, consider the algorithm converged" ;
 
double numDiffRelStep
 "relative step size used for numerical derivatives (added to other steps)" ;
 
double numDiffAbsStep
 "absolute step size used for numerical derivatives (added to other steps)" ;
 
double numDiffTrustRadiusStep
 "step size (in units of trust radius) used for numerical derivatives (added to relative step)" ;
 
double stepAcceptThreshold
 "steps with reduction ratio greater than this are accepted" ;
 
double trustRegionInitialSize
 "the initial trust region will be set to this value" ;
 
double trustRegionGrowReductionRatio
 "steps with reduction radio greater than this may increase the trust radius" ;
 
double trustRegionGrowStepFraction
 "steps with length this fraction of the trust radius may increase the trust radius" ;
 
double trustRegionGrowFactor
 "when increase the trust region size, multiply the radius by this factor" ;
 
double trustRegionShrinkReductionRatio
 "steps with reduction radio less than this will decrease the trust radius" ;
 
double trustRegionShrinkFactor
 "when reducing the trust region size, multiply the radius by this factor" ;
 
double trustRegionSolverTolerance
 "value passed as the tolerance to solveTrustRegion" ;
 
int maxInnerIterations
 "maximum number of iterations (i.e. function evaluations and trust region subproblems) per step" ;
 
int maxOuterIterations
 "maximum number of steps" ;
 
bool doSaveIterations
 "whether to save all iterations for debugging purposes" ;
 

Detailed Description

Configuration object for Optimizer.

Many of these configuration options pertain to how the trust region is updated. It's easiest to understand these together rather than separately. At each iteration, a quadratic model of the objective function is formed. We can use this model to predict how we expect the objective function to behave over a step, and compare it to how the actual objective function behaves. To do this, we'll use the ratio of the actual reduction in the objective function to the predicted reduction in the objective function, and call this \(\rho\). Then,

Definition at line 187 of file optimizer.h.

Constructor & Destructor Documentation

◆ OptimizerControl()

lsst::meas::modelfit::OptimizerControl::OptimizerControl ( )
inline

Definition at line 279 of file optimizer.h.

279 :
280 noSR1Term(false), skipSR1UpdateThreshold(1E-8),
282 gradientThreshold(1E-5),
294 doSaveIterations(false)
295 {}
double trustRegionGrowStepFraction
"steps with length this fraction of the trust radius may increase the trust radius" ;
Definition optimizer.h:242
bool noSR1Term
"If true, ignore the SR1 update term in the Hessian, resulting in a Levenberg-Marquardt-like method" ...
Definition optimizer.h:192
double trustRegionShrinkFactor
"when reducing the trust region size, multiply the radius by this factor" ;
Definition optimizer.h:257
double trustRegionShrinkReductionRatio
"steps with reduction radio less than this will decrease the trust radius" ;
Definition optimizer.h:252
double numDiffAbsStep
"absolute step size used for numerical derivatives (added to other steps)" ;
Definition optimizer.h:217
double numDiffTrustRadiusStep
"step size (in units of trust radius) used for numerical derivatives (added to relative step)" ;
Definition optimizer.h:222
double gradientThreshold
"If the maximum of the gradient falls below this threshold, consider the algorithm converged" ;
Definition optimizer.h:207
double numDiffRelStep
"relative step size used for numerical derivatives (added to other steps)" ;
Definition optimizer.h:212
double trustRegionGrowReductionRatio
"steps with reduction radio greater than this may increase the trust radius" ;
Definition optimizer.h:237
double trustRegionGrowFactor
"when increase the trust region size, multiply the radius by this factor" ;
Definition optimizer.h:247
int maxInnerIterations
"maximum number of iterations (i.e. function evaluations and trust region subproblems) per step" ;
Definition optimizer.h:267
double skipSR1UpdateThreshold
"Skip the SR1 update if |v||s| / (|v||s|) is less than this threshold" ;
Definition optimizer.h:197
double minTrustRadiusThreshold
"If the trust radius falls below this threshold, consider the algorithm converged" ;
Definition optimizer.h:202
bool doSaveIterations
"whether to save all iterations for debugging purposes" ;
Definition optimizer.h:277
double stepAcceptThreshold
"steps with reduction ratio greater than this are accepted" ;
Definition optimizer.h:227
int maxOuterIterations
"maximum number of steps" ;
Definition optimizer.h:272
double trustRegionInitialSize
"the initial trust region will be set to this value" ;
Definition optimizer.h:232
double trustRegionSolverTolerance
"value passed as the tolerance to solveTrustRegion" ;
Definition optimizer.h:262

Member Data Documentation

◆ doSaveIterations

bool lsst::meas::modelfit::OptimizerControl::doSaveIterations

"whether to save all iterations for debugging purposes" ;

Definition at line 277 of file optimizer.h.

◆ gradientThreshold

double lsst::meas::modelfit::OptimizerControl::gradientThreshold

"If the maximum of the gradient falls below this threshold, consider the algorithm converged" ;

Definition at line 207 of file optimizer.h.

◆ maxInnerIterations

int lsst::meas::modelfit::OptimizerControl::maxInnerIterations

"maximum number of iterations (i.e. function evaluations and trust region subproblems) per step" ;

Definition at line 267 of file optimizer.h.

◆ maxOuterIterations

int lsst::meas::modelfit::OptimizerControl::maxOuterIterations

"maximum number of steps" ;

Definition at line 272 of file optimizer.h.

◆ minTrustRadiusThreshold

double lsst::meas::modelfit::OptimizerControl::minTrustRadiusThreshold

"If the trust radius falls below this threshold, consider the algorithm converged" ;

Definition at line 202 of file optimizer.h.

◆ noSR1Term

bool lsst::meas::modelfit::OptimizerControl::noSR1Term

"If true, ignore the SR1 update term in the Hessian, resulting in a Levenberg-Marquardt-like method" ;

Definition at line 192 of file optimizer.h.

◆ numDiffAbsStep

double lsst::meas::modelfit::OptimizerControl::numDiffAbsStep

"absolute step size used for numerical derivatives (added to other steps)" ;

Definition at line 217 of file optimizer.h.

◆ numDiffRelStep

double lsst::meas::modelfit::OptimizerControl::numDiffRelStep

"relative step size used for numerical derivatives (added to other steps)" ;

Definition at line 212 of file optimizer.h.

◆ numDiffTrustRadiusStep

double lsst::meas::modelfit::OptimizerControl::numDiffTrustRadiusStep

"step size (in units of trust radius) used for numerical derivatives (added to relative step)" ;

Definition at line 222 of file optimizer.h.

◆ skipSR1UpdateThreshold

double lsst::meas::modelfit::OptimizerControl::skipSR1UpdateThreshold

"Skip the SR1 update if |v||s| / (|v||s|) is less than this threshold" ;

Definition at line 197 of file optimizer.h.

◆ stepAcceptThreshold

double lsst::meas::modelfit::OptimizerControl::stepAcceptThreshold

"steps with reduction ratio greater than this are accepted" ;

Definition at line 227 of file optimizer.h.

◆ trustRegionGrowFactor

double lsst::meas::modelfit::OptimizerControl::trustRegionGrowFactor

"when increase the trust region size, multiply the radius by this factor" ;

Definition at line 247 of file optimizer.h.

◆ trustRegionGrowReductionRatio

double lsst::meas::modelfit::OptimizerControl::trustRegionGrowReductionRatio

"steps with reduction radio greater than this may increase the trust radius" ;

Definition at line 237 of file optimizer.h.

◆ trustRegionGrowStepFraction

double lsst::meas::modelfit::OptimizerControl::trustRegionGrowStepFraction

"steps with length this fraction of the trust radius may increase the trust radius" ;

Definition at line 242 of file optimizer.h.

◆ trustRegionInitialSize

double lsst::meas::modelfit::OptimizerControl::trustRegionInitialSize

"the initial trust region will be set to this value" ;

Definition at line 232 of file optimizer.h.

◆ trustRegionShrinkFactor

double lsst::meas::modelfit::OptimizerControl::trustRegionShrinkFactor

"when reducing the trust region size, multiply the radius by this factor" ;

Definition at line 257 of file optimizer.h.

◆ trustRegionShrinkReductionRatio

double lsst::meas::modelfit::OptimizerControl::trustRegionShrinkReductionRatio

"steps with reduction radio less than this will decrease the trust radius" ;

Definition at line 252 of file optimizer.h.

◆ trustRegionSolverTolerance

double lsst::meas::modelfit::OptimizerControl::trustRegionSolverTolerance

"value passed as the tolerance to solveTrustRegion" ;

Definition at line 262 of file optimizer.h.


The documentation for this class was generated from the following file: