Re: Optimization using a *Bounded* Levenberg-Marquardt method
- From: Olin Perry Norton <norton@xxxxxxxxxxxxxxxxxxxx>
- Date: Tue, 14 Feb 2006 11:56:10 -0600
Simone wrote:
Hello, I'm trying use the LM method to minimize a function over a bounded
domain. I've looked around and I found some paper regarding the argument. I
have understood the mechanism behind the unbounded LM and I succesfully
wrote a program that works.
The problem is that I don't understand how I must modify my algorithm to add
the fact that I want to optimize over a BOUNDED domain... I mean, from what
I read, I guess I can't simply resize the step lenght if it would bring me
off the domain?
I read about projecting the step vector over my domain... But what if my
domain isn't a vectorial space? I mean, if we work on R^2 and my domain is:
D={(x,y)|x>0,y>0,x+y<1}
I can't project a vector over it..
I hope that my question is understandable and excuse me for my english.
Thanks.
Simone
Here are a couple of quick and dirty tricks that
sometimes work. If they do, you can use your
program written for unbounded optimization and use
it to solve a problem with constraints.
1. When evaluating the objective function, check to
see if you are inside the domain or not. If not, add a
penalty to the value you compute for the objective function.
This should make the optimization algorithm avoid the
out of bounds area, since it is trying to minimize the
objective function, and the function increases every time
the algorithm steps out of bounds.
This might require some tinkering -- how much of a
penalty to add, whether the penalty should be a step
function or proportional to the distance from the boundary,
etc.
2. Sometimes one can map a finite domain into an infinite
domain, and then use an algorithm for unconstrained
optimization.
A good example is when x and y must be greater than zero.
If you choose new variables x' = log(x) and y'=log(y), then
x' and y' can vary over the entire R^2 plane and the
corresponding x and y are guaranteed to be positive.
In your case, the x+y<1 constraint makes the situation
a bit more complex. You might be able to use a
Schwartz-Christoffel transformation to map your
triangle into the upper half plane, and from there map
into the entire plane.
I admit I don't quite understand what you mean by "projecting
a step vector." You might be talking about the same sort of thing.
Like I say, these are quick and dirty tricks. Both require
that you make changes only to the function you are optimizing --
you don't have to tinker with the optimization program at all.
I'm sure there are algorithms for constrained optimization,
and I'm sure that there are more elegant solutions to your
problem, but these tricks sometimes work and they don't
take much effort to try.
Olin Perry Norton
.
- References:
- Prev by Date: Re: Optimization using a *Bounded* Levenberg-Marquardt method
- Next by Date: Re: system of differential equations with boundary conditions in spacetime !
- Previous by thread: Re: Optimization using a *Bounded* Levenberg-Marquardt method
- Next by thread: Re: Optimization using a *Bounded* Levenberg-Marquardt method
- Index(es):
Relevant Pages
|