Digital Image Correlation Engine  Version 1.0
A modular, high-performance, image correlation tool used to compute full-field displacements and strains from digital images
Public Member Functions | Protected Attributes | List of all members
DICe::Simplex Class Referenceabstract

Non-gradient based optimization algorithm class. More...

#include <DICe_Simplex.h>

Inheritance diagram for DICe::Simplex:
DICe::Affine_Homography_Simplex DICe::Homography_Simplex DICe::Quadratic_Homography_Simplex DICe::Subset_Simplex DICe::Warp_Simplex

Public Member Functions

 Simplex (const Teuchos::RCP< Teuchos::ParameterList > &params=Teuchos::null)
 Default constructor. More...
 
virtual ~Simplex ()
 destructor
 
virtual Status_Flag minimize (Teuchos::RCP< std::vector< scalar_t > > variables, Teuchos::RCP< std::vector< scalar_t > > deltas, int_t &num_iterations, const scalar_t &threshold=1.0E-10)
 Returns the status of the algorithm when complete. More...
 
virtual scalar_t objective (Teuchos::RCP< std::vector< scalar_t > > variables)=0
 the objective function that the simplex method is optimizing More...
 

Protected Attributes

int_t max_iterations_
 Maximum allowed iterations for convergence.
 
double tolerance_
 Convergence tolerance.
 
scalar_t tiny_
 Numerically small value.
 

Detailed Description

Non-gradient based optimization algorithm class.

Image gradients are not needed or used in a simplex method. The simplex method determines on an optimal solution (one that minimizes the objective's gamma function) by evaluating gamma at simplex vertices and modifying the simplex until it converges to a single point. This method is a lot slower than a gradient-based approach, but is much more robust. The simplex method will almost always converge to a value that that represents the best solution given the input parameters.

Constructor & Destructor Documentation

◆ Simplex()

DICe::Simplex::Simplex ( const Teuchos::RCP< Teuchos::ParameterList > &  params = Teuchos::null)

Default constructor.

Parameters
paramsParamters that define the varaitions on the initial guess, convergence tolerance and max number of iterations

Member Function Documentation

◆ minimize()

virtual Status_Flag DICe::Simplex::minimize ( Teuchos::RCP< std::vector< scalar_t > >  variables,
Teuchos::RCP< std::vector< scalar_t > >  deltas,
int_t num_iterations,
const scalar_t threshold = 1.0E-10 
)
virtual

Returns the status of the algorithm when complete.

Parameters
variables[out] Taken as the initial guess for the first iteration and returned as the converged solution at successful completion.
deltasThe variations on the initial guess used to construct the other simplex points.
num_iterations[out] Returns the number of iterations that took place
thresholdif the initial evaluation of gamma is below this value, the analysis will be skipped A return value of MAX_ITERATIONS_REACHED means that convergence did not occur in the allowed number of iterations. A return value of CORRELATION_SUCCESSFUL means that convergence was obtained for the solution stored in the variables vector

◆ objective()

virtual scalar_t DICe::Simplex::objective ( Teuchos::RCP< std::vector< scalar_t > >  variables)
pure virtual

the objective function that the simplex method is optimizing

Parameters
variablesthe current guess at which to evaluate the objective

Implemented in DICe::Warp_Simplex, DICe::Quadratic_Homography_Simplex, DICe::Affine_Homography_Simplex, DICe::Homography_Simplex, and DICe::Subset_Simplex.