Filter löschen
Filter löschen

What is the effect of ScaleProblem = obj-and-conj

2 Ansichten (letzte 30 Tage)
Eugene
Eugene am 18 Jan. 2013
I had to calibrate our use of both 2012a and 2010b to get the same answers for internal algorithm troubleshooting. I make use og fmincon and I saw that to get the same results from my 2012a version of fmincon I need to set ScaleProblem to 'obj-and-conj', its default value in 2010b. Since the default value in 2012a is 'none' I wonder if there is some downside to setting it to 'obj-and-conj'. I have nonlinear constraints and nonlinear gradients.
Does this setting have something to do with normalizing the gradient so that the direction is chosen more on the basis of a standardized (scaled) gradient in case the scales for different variables are very different, hence giving more weight to directions with larger values in the gradient.
Gene Davis

Akzeptierte Antwort

Matt J
Matt J am 19 Jan. 2013
Bearbeitet: Matt J am 19 Jan. 2013
Documentation about ScaleProblem seems sparse, so I'm just guessing.
It sounds like obj-and-constr causes the objective f(x) and constraints c_i(x) to be normalized by constants
f(x)/F
c_i(x)/Ci
Some FMINCON algorithms use primal-dual methods which try to minimize the Lagrangian
L(x,m) = f(x) + sum_i m_i c_i(x)
where the m_i are Lagrange multipliers. So, you can imagine that by normalizing all the functions this way, you get a normalized Lagrangian
L(x,m) = f(x)/F + sum_i m_i c_i(x)/C_i
in which the different terms all hopefully have comparable weight and the Lagrangian will be comparably sensitive to all of the Lagrange multipliers m_i
The reason obj-and-constr may have been discontinued as the default is that, because these algorithms incorporate Hessian info, they should already be fairly insensitive to scale differences among the different variables, including the m_i.
Anyway, I encourage you to test with both ScaleProblem settings and tell us the performance differences that you see! I would be curious.
  1 Kommentar
Eugene
Eugene am 22 Jan. 2013
I have already tried using both settings. I'm not sure what is going on in the guts of FMINCON but I get different answers in some cases. Instead of figuring out what conditions cause different answers I just set the option explicitly so I have the same results with my newer version as we get in our released version (2010b).
Thanks for the thoughtful response.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by