MATLAB Answers

Quadratic-​Equation-C​onstrained Optimization

27 views (last 30 days)
Yize Wang
Yize Wang on 12 Jan 2021
Edited: Bruno Luong on 12 Jan 2021
Dear all,
I am trying to solve a bilevel optimization as follows,
I then transformed the lower-level optimization with KKT conditions and obtained a new optimization problem:
The toughness is the constraint . I am wondering whether there exists a solver that can efficient deal with this constraint?
Thank you all in advance.


Sign in to comment.

Accepted Answer

Bruno Luong
Bruno Luong on 12 Jan 2021
Edited: Bruno Luong on 12 Jan 2021
There is
but only for linear objective function.
You migh iterate on by relaxing succesively the cone constraint and second order objective like this
while not converge
x1 = quadprog(...) % ignoring tau change (remove it as opt variable)
x2 = coneprog(...) % replace quadratic objective (x2'*H*x2 + f'*x2) by linear (2*x1'*H + f')*x2
until converge
Otherwise you can always call FMINCON but I guess you already know that?


Yize Wang
Yize Wang on 12 Jan 2021
Hi Bruno, Thank you for your answer. I assume the toughness results from the complementary slackness, but the coneprog does not seem to deal with this since μ should also be part of the decision variable. Am I right about this?
Bruno Luong
Bruno Luong on 12 Jan 2021
If you set the decision variables of coneprog() as a long vector of
X = [tau; x; mu; lambda]
Thus, the tau index is 1:n;
The x index is n+(1:n);
The mu index is 2*n+(1:n).
If the matrix Asc is defined with Asc(i,j) has value 1 for (i,j) == (n+k,2*n*k) for k=1,...n; and 0 elsewhere
X'*Asc*X = dot(tau,x).
If you set bsc, dsc, gamma = 0, the cone constraint becomes
dot(mu,x) = 0
This is exactly what you want.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!