How to solve an optimization problem over two variables using fmincon?
4 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Hello, I'm trying to solve an optimization problem in which there is a decision variable in its objective function, and some constraints with afformentioned variable and also another decision variable that must be calculated. this problem could be depicted as below:
Minimize Z=f(x)
subject to: g(x,y)<=0
x and y are both decision variables that in particular y is a binary variable that gonna choose an additional constraint to make it continues.
3 Commenti
Risposte (1)
John D'Errico
il 5 Apr 2021
Modificato: John D'Errico
il 5 Apr 2021
You CANNOT use fmincon on a problem with binary variables or any form of discrete variables.
However, IF y is indeed binary, then you have only two cases to consider. So solve the problem to minimize f(x), given y == 0, and then repeat, solving it for the minimum over x of f(x), given y == 1.
Take the better of the two results and you are done. There really is little more than that to do here. You still need to choose intelligent starting values for x of course. Note that if there are multiple disjoint regions for x that satisfy the constraints, thus g(x,y)<=0, then you need to search within EACH of them. Fmincon cannot intelligently jump from one such region to another to search among them all.
If you had a more complicated case where you had multiple binary variables, then you would be forced to use a code like GA, which can handle the fully general problem. But that is apparently not the case here.
Vedere anche
Categorie
Scopri di più su Get Started with Optimization Toolbox in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!