How does using same variables for both objective and constraints affect optimization results?

조회 수: 2 (최근 30일)
I am running problems with fmincon.
I usually work with 3 variables ceq = [a,b,c] as constraints that I want to be zero. While trying multiple combinations, I also ran a case where in addition to those constraints, I set f = sum([a,b,c].^2) as the function to minimize.
In this scenario, the problem would try to reduce the value of abc to meet constraints, and then in the minimization part, would try to minimize abc again to minimize them as much as possible.
Unexpectedly, I found that this configuration sometimes gives better results than leaving the objective empty (f=0).
Since the values of abc are already taken care of as constraints, why does this "redundant" setup provide different (better, usually) results?

답변 (1개)

Alan Weiss
Alan Weiss 2022년 7월 15일
By changing the objective you also change the steps that fmincon takes to solve your problem. You should not be surprised that the solution changes. If you also multiply the objective or the constraint function by 100 you might find that the solution changes again. If you change the options to have different tolerances for the constraint function you might find again that the solution changes. If you change the initial point x0 you might find that the solution changes.
In other words, changing anything about the problem or the steps fmincon takes can affect the solution.
Alan Weiss
MATLAB mathematical toolbox documentation
  댓글 수: 1
Mitsu
Mitsu 2022년 7월 17일
편집: Mitsu 2022년 7월 17일
Thank you. I was asking in terms of improvement, not just change per se. Minimizing the same values for both objective and constraints seem to yield results that improve by several orders of magnitude. I am trying to understand the reason behind it.
That is, why is there such a large change (relatively speaking, from 1e-6 to 1e-15 in the satisfaction of constraints or in the objective)?
Why is it easier for an SQP algorithm to constrain and minimize [a,b,c] at the same time, as opposed to only trying to constrain them?

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

카테고리

Help CenterFile Exchange에서 Get Started with Optimization Toolbox에 대해 자세히 알아보기

제품


릴리스

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by