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:
RelLineSrchBnd option for fmincon

Subject: RelLineSrchBnd option for fmincon

From: Mike

Date: 9 May, 2008 01:46:06

Message: 1 of 5

Hi all,

I have question regarding the use of the RelLineSrchBnd and
RelLineSrchBndDuration options for fmincon.

I am not sure if I understand the description given in the
help documentation. It says that it sets the relative bound
on the line search step such that total displacement in x
satisfies |delta xi| =< RelLineSrchBnd*max(|xi|,|typical
xi|). Could someone explain to me what this means, and
under what circumstances adjusting this option would be
useful? Is it common to use this option?

Thanks,
Mike

Subject: RelLineSrchBnd option for fmincon

From: Allamarein

Date: 3 Jan, 2013 18:52:43

Message: 2 of 5


> Hi all,
>
> I have question regarding the use of the RelLineSrchBnd and
> RelLineSrchBndDuration options for fmincon.
>
> I am not sure if I understand the description given in the
> help documentation. It says that it sets the relative bound
> on the line search step such that total displacement in x
> satisfies |delta xi| =< RelLineSrchBnd*max(|xi|,|typical
> xi|). Could someone explain to me what this means, and
> under what circumstances adjusting this option would be
> useful? Is it common to use this option?
>
> Thanks,
> Mike

Very interesting point. I am wondering about this aspect. Someone can answer?

Subject: RelLineSrchBnd option for fmincon

From: Sargondjani

Date: 18 Jul, 2013 18:33:12

Message: 3 of 5

Many years later I am stuck with the same question...

I THOUGHT that RelLineSrchBnd would adjust the stepsize for the next iteration. So lets say:
Iteration 0, X=0;
Iteration 1, without RelLineSrchBnd => X=10; %as determined by algorithm

and now let's say I use RelLineSrchBnd then:
Iteration 1, with RelLineSrchBnd=0.2 => X=2; %because the stepsize was 1, times 0.2 give X=2;

But this is not what happens... the algorithm takes X=10 again. So what does RelLineSrchBnd do then?

Subject: RelLineSrchBnd option for fmincon

From: Alan_Weiss

Date: 18 Jul, 2013 19:08:26

Message: 4 of 5

On 7/18/2013 2:33 PM, Sargondjani wrote:
> Many years later I am stuck with the same question...
>
> I THOUGHT that RelLineSrchBnd would adjust the stepsize for the next
> iteration. So lets say:
> Iteration 0, X=0;
> Iteration 1, without RelLineSrchBnd => X=10; %as determined by algorithm
>
> and now let's say I use RelLineSrchBnd then:
> Iteration 1, with RelLineSrchBnd=0.2 => X=2; %because the stepsize was
> 1, times 0.2 give X=2;
>
> But this is not what happens... the algorithm takes X=10 again. So
> what does RelLineSrchBnd do then?

You can see the definition in
http://www.mathworks.com/help/optim/ug/fmincon.html#f854721 under the
Active Set algorithm. The option doesn't do what you think, read the
explanation carefully, and also look at RelLineSrchBndDuration.

Alan Weiss
MATLAB mathematical toolbox documentation

Subject: RelLineSrchBnd option for fmincon

From: Sargondjani

Date: 18 Jul, 2013 21:11:10

Message: 5 of 5

Thanks Alan. The thing is, I read it carefully, but I guess I didn't understand it because I didn't know what is meant with 'displacement' and 'line search step length'.

After reading this documentation
http://www.mathworks.com/help/optim/ug/constrained-nonlinear-optimization-algorithms.html#f26965

i found the following:

"Line Search and Merit Function: The solution to the QP subproblem produces a vector dk, which is used to form a new iterate" and then "The step length parameter ?k is determined in order to produce a sufficient decrease in a merit function."

But I don't really understand.

In fact I did find out that RelLineSrchBnd does affect the stepsize in the iteration, but not as much as I expected. For example, when I set RelLineSrchBnd=0.01 then the change in the x-values in the first iteration only seem to get smaller by factor 10 (where I expected a factor 100).

Maybe you can explain in more simple words what RelLineSrchBnd does? What it means in practice? And why is the stepsize in the iteration only affected so little?)

Many thanks in advance!

Tags for 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