Quadratic-​Equation-C​onstrained Optimization

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.

 채택된 답변

Bruno Luong
Bruno Luong 2021년 1월 12일
편집: Bruno Luong 2021년 1월 12일

0 개 추천

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?

댓글 수: 4

Yize Wang
Yize Wang 2021년 1월 12일
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 2021년 1월 12일
편집: Bruno Luong 2021년 1월 12일
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
Then
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.
Yize Wang
Yize Wang 2021년 1월 12일
Thanks a lot!
Late to the game here, but the discussion above is not correct. A constraint of the form mu'*x=0 is nonconvex and cannot be represented using second-order cones. If that was the case, P=NP as it would allow us to solve linear bilevel programming problems in polynomial time, as these can be used to encode integer programs...
It appears the discussion confuses x'*Asc*x == 0 (a nonconvex quadratic constraint) and the generation of a SOCP constraints ||Asc*x + 0|| <= 0 + 0*x (note the linear operator inside the norm)

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

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Quadratic Programming and Cone Programming에 대해 자세히 알아보기

질문:

2021년 1월 12일

댓글:

2021년 3월 31일

Community Treasure Hunt

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

Start Hunting!

Translated by