필터 지우기
필터 지우기

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

조회 수: 1 (최근 30일)
Eugene
Eugene 2013년 1월 18일
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

채택된 답변

Matt J
Matt J 2013년 1월 19일
편집: Matt J 2013년 1월 19일
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
Eugene
Eugene 2013년 1월 22일
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.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Solver Outputs and Iterative Display에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by