How does using same variables for both objective and constraints affect optimization results?
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Réponses (1)
Alan Weiss
le 15 Juil 2022
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 commentaire
Voir également
Catégories
En savoir plus sur Get Started with Optimization Toolbox dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!