ITK/Release 4/Refactor Numerical Libraries/Inventory/Non-Linear Optimization

From KitwarePublic
Jump to navigationJump to search

Optimizers

LBFGSB Optimizer

The LBFGSB optimizer is commonly used for optimization problems involving a high dimensional parametric space.

The LBFGSB optimizer provides the functionality of defining bounds for each one of the parameters in the optimization space.

Examples

The optimizer is commonly used to drive Deformable registration problems.

Specific examples can be found in

  ITK/Examples/Registration/


  • DeformableRegistration4.cxx
  • DeformableRegistration6.cxx
  • DeformableRegistration7.cxx
  • DeformableRegistration8.cxx
  • DeformableRegistration12.cxx

They can be run by doing:

  ctest  -R   DeformableRegistration4   -V


Of particular interest is the 3D example in

  • DeformableRegistration8.cxx

Because it uses

  • The LBFSGB optimizer
  • And computes in 3D image

The Code

In ITK

The ITK optimizer class can be found in

 ITK/Modules/Numerics/Optimizers

in the files

 ./src/itkLBFGSBOptimizer.cxx
 ./include/itkLBFGSBOptimizer.h

and a test is available at

./test/itkLBFGSBOptimizerTest.cxx


In VXL

The ITK class invokes the VXL class in

 ITK/Modules/ThirdParty/VNL/src/vxl/core/vnl/algo/vnl_lbfgsb.cxx
 ITK/Modules/ThirdParty/VNL/src/vxl/core/vnl/algo/vnl_lbfgsb.h


Amoeba Optimizer

Conjugate Gradient Optimizer