[Insight-developers] Unconstrained optimizers

Luis Ibanez luis.ibanez at kitware.com
Tue, 18 May 2004 14:17:42 -0400


Jim,

Yes, all the optimizers are unconstrained.

It will be interesting to add a common framework
for imposing constraints. Probably something close
to what was done with the parameter scaling...

That will certainly help to prevent registrations
from going too far off.

Given the large variety of possible ways for applying
constrains we should probably do this via a new class
to be plugged into the optimizer.

Let's say an

          itk::OptmimizerBoundaryEnforcer

That will receive the array of parameters and return
a modified array of parameters and a boolean.

A trivial boundary enforcer could simply clamp the
values of the parameters to min[i],max[i].  A more
sophisticated one could correct for ranges of orientations
when the parameters are the components of a quaternion.

The default OptimizerBoundaryEnforcer could be an
identity function that always returns true.

With this setup we can create a set of basic enforcers,
and still allow users to come up with their own.



    Luis


-------------------
Miller, James V (Research) wrote:

> Are all the optimizers in ITK unconstrained?  Has anyone given any 
> thought on how to include
> constrained optimization? 
>  
> I was thinking of limiting registration via a set of constraints, i.e. 
> max F, subject to a translation less than 5 mm and a rotation less than 
> 10 degrees.
>  
> There are other reasons to constrain an optimization, for instance to 
> incorporate subspace constraints on a transform.
>  
>  
>  
> 
> *Jim Miller*
> */_____________________________________/*
> /Visualization & Computer Vision//
> /GE Research/
> /Bldg. KW, Room C218B/
> /P.O. Box 8, Schenectady NY 12301/
> 
> //_millerjv at research.ge.com <mailto:millerjv at research.ge.com>_/
> 
> /_james.miller at research.ge.com_/
> /(518) 387-4005, Dial Comm: 8*833-4005, /
> /Cell: (518) 505-7065, Fax: (518) 387-6981/
> 
>