Proposals:Refactoring of optimization framework: Difference between revisions

From KitwarePublic
Jump to navigationJump to search
(Created page with '= Refactor Optimization Framework Based on Available Function Derivative Information = ==Modification to cost function hierarchy== Currently all cost functions are subclasses o…')
 
Line 5: Line 5:
Currently all cost functions are subclasses of itk::SingleValuedCostFunction or itk::MultipleValuedCostFunction. These two classes are pure virtual, forcing the user to implement a GetDerivative() method. This assumes that the optimized function is differentiable. When this is not the case, developers either provide a bogus derivative which is problematic if they unintentionally use an optimizer that utilizes this information or they can throw an exception.
Currently all cost functions are subclasses of itk::SingleValuedCostFunction or itk::MultipleValuedCostFunction. These two classes are pure virtual, forcing the user to implement a GetDerivative() method. This assumes that the optimized function is differentiable. When this is not the case, developers either provide a bogus derivative which is problematic if they unintentionally use an optimizer that utilizes this information or they can throw an exception.


The
We propose to modify the hierarchy to the following:

Revision as of 15:55, 20 July 2010

Refactor Optimization Framework Based on Available Function Derivative Information

Modification to cost function hierarchy

Currently all cost functions are subclasses of itk::SingleValuedCostFunction or itk::MultipleValuedCostFunction. These two classes are pure virtual, forcing the user to implement a GetDerivative() method. This assumes that the optimized function is differentiable. When this is not the case, developers either provide a bogus derivative which is problematic if they unintentionally use an optimizer that utilizes this information or they can throw an exception.

We propose to modify the hierarchy to the following: