Got Questions? Get Answers.
Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Thread Subject:
fmincon: setting a limit for Line Search steplength

Subject: fmincon: setting a limit for Line Search steplength

From: Allamarein

Date: 3 Jan, 2013 18:45:10

Message: 1 of 6

Using fmincon, is it possible setting a limit for Line Search Steplength?
After some iterations the steplength is about 1e-5 and the f(x) is constant during the following iterations.
It seems the steplength is too small and the algorithm does not further explore the domain.
In my opinion this is a local minimum. Setting a limit for the inferior steplength (let's say 1e-2), can it help to avoid this local minimum?

Maybe I have to deal with options 'DiffMinChange' and 'DiffMaxChange'
What is 'RelLineSrchBnd' for?

Subject: fmincon: setting a limit for Line Search steplength

From: Alan_Weiss

Date: 3 Jan, 2013 19:56:22

Message: 2 of 6

On 1/3/2013 1:45 PM, Allamarein wrote:
> Using fmincon, is it possible setting a limit for Line Search Steplength?
> After some iterations the steplength is about 1e-5 and the f(x) is constant during the following iterations.
> It seems the steplength is too small and the algorithm does not further explore the domain.
> In my opinion this is a local minimum. Setting a limit for the inferior steplength (let's say 1e-2), can it help to avoid this local minimum?
>
> Maybe I have to deal with options 'DiffMinChange' and 'DiffMaxChange'
> What is 'RelLineSrchBnd' for?

The documentation has some suggestions for finding global (as opposed to
local) minima:
http://www.mathworks.com/help/optim/ug/when-the-solver-succeeds.html#brhkghv-65

If you have a Global Optimization Toolbox license, there are ways to
automate the search. See
http://www.mathworks.com/help/gads/how-to-optimize-with-globalsearch-and-multistart.html

Alan Weiss
MATLAB mathematical toolbox documentation

Subject: fmincon: setting a limit for Line Search steplength

From: Allamarein

Date: 3 Jan, 2013 20:31:29

Message: 3 of 6

Thanks for your kind reply.
Perhaps I will try to use a genetic algorithm or a pattern search and, subsequently, fmincon.
Probably also a multistart algorithm could be useful.

About this aspect, what are 'DiffMinChange', 'DiffMaxChange' and 'RelLineSrchBnd' for?

Subject: fmincon: setting a limit for Line Search steplength

From: Alan_Weiss

Date: 3 Jan, 2013 20:51:11

Message: 4 of 6

On 1/3/2013 3:31 PM, Allamarein wrote:
> Thanks for your kind reply.
> Perhaps I will try to use a genetic algorithm or a pattern search and, subsequently, fmincon.
> Probably also a multistart algorithm could be useful.
>
> About this aspect, what are 'DiffMinChange', 'DiffMaxChange' and 'RelLineSrchBnd' for?
Suit yourself, but you will likely find the genetic algorithm and
pattern search solvers far slower and less accurate than fmincon.

You can read about the meaning of the various options here:
http://www.mathworks.com/help/optim/ug/optimization-options-reference.html

In brief, DiffMinChange and DiffMaxChange are limits on finite
differencing steps for derivative estimation, and RelLineSearchBnd is a
bound on a line-search relative step length for the fmincon active-set
algorithm (a very obscure option indeed). For more information on
DiffMinChange and DiffMaxChang, see
http://www.mathworks.com/help/optim/ug/optimizing-a-simulation-or-ordinary-differential-equation.html#btfixqo
and the surrounding discusion.

Alan Weiss
MATLAB mathematical toolbox documentation

Subject: fmincon: setting a limit for Line Search steplength

From: Bruno Luong

Date: 3 Jan, 2013 22:18:08

Message: 5 of 6

Allamarein <matteo.diplomacy@gmail.com> wrote in message <624d64c9-1cf1-4212-b21d-30a61a53398f@googlegroups.com>...
> Using fmincon, is it possible setting a limit for Line Search Steplength?
> After some iterations the steplength is about 1e-5 and the f(x) is constant during the following iterations.
> It seems the steplength is too small and the algorithm does not further explore the domain.
> In my opinion this is a local minimum. Setting a limit for the inferior steplength (let's say 1e-2), can it help to avoid this local minimum?

FWIW, I never seen the local minima issue to be sorted out by hacking the line-search.

Bruno

Subject: fmincon: setting a limit for Line Search steplength

From: Matt J

Date: 4 Jan, 2013 03:03:12

Message: 6 of 6

Allamarein <matteo.diplomacy@gmail.com> wrote in message <624d64c9-1cf1-4212-b21d-30a61a53398f@googlegroups.com>...
> Using fmincon, is it possible setting a limit for Line Search Steplength?
> After some iterations the steplength is about 1e-5 and the f(x) is constant during the following iterations.
> It seems the steplength is too small and the algorithm does not further explore the domain.
> In my opinion this is a local minimum. Setting a limit for the inferior steplength (let's say 1e-2), can it help to avoid this local minimum?
===================

How are you inspecting the "steplength"? Are you referring to |x_n - x_{n-1}|, the difference between 2 subsequent iterations? If so, you can't impose a lower bound on this if you want convergence to occur. |x_n - x_{n-1}| has to converge to zero in order for x_n to converge.

As for line searches, searching over a longer line can help you jump from a local minimum to a global minimum, but it can also do the reverse.

Tags for this Thread

No tags are associated with this thread.

What are tags?

A tag is like a keyword or category label associated with each thread. Tags make it easier for you to find threads of interest.

Anyone can tag a thread. Tags are public and visible to everyone.

Contact us