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?
0 件のコメント
回答 (1 件)
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
参考
カテゴリ
Help Center および File Exchange で Get Started with Optimization Toolbox についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!