QCQP problems with CVXOPT?

1,085 views
Skip to first unread message

maksimilian musik

unread,
Apr 25, 2017, 9:31:48 AM4/25/17
to CVXOPT
Hi all,

Total beginner in the optimization world here. I am trying to use CVXOPT to find the optimal solution for the following QCQP problem:



Where beta is the variable I am trying to optimize for, G_i is a positive semi-definite matrix, and r_i = tr(G_i) for all i.

Does anybody have any resources or tips as to how to convert this problem into something that can be solved by CVXOPT? It is my understanding that CVXOPT cannot deal with QCQP problems directly. Any suggestions to get the ball rolling?

Max
Auto Generated Inline Image 1

Dima Pasechnik

unread,
Apr 25, 2017, 5:24:42 PM4/25/17
to CVXOPT
isn't such a problem NP-hard, in general?

You can perhaps try solving a semidefnite programming relaxation, replacing $\beta\beta^T$ with a positive semidefinite matrix B...
 

Max

maksimilian musik

unread,
Apr 26, 2017, 9:17:20 AM4/26/17
to CVXOPT

@Dima, I am not sure about the complexity of the problem in general. I know of the SDP formulations of the problem, but it was my impression tha solving a QCQP formulation would be more efficient. Is there a way to express a quadratic constraint in CVXOPT that you know of? Also the fact that this problem is optimizing over both beta and t is throwing me off a little bit.

Joachim Dahl

unread,
Apr 26, 2017, 9:43:00 AM4/26/17
to cvx...@googlegroups.com
This section in the Mosek manual explains how to convert a convex QCQP to conic form:

--
You received this message because you are subscribed to the Google Groups "CVXOPT" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cvxopt+unsubscribe@googlegroups.com.
To post to this group, send email to cvx...@googlegroups.com.
Visit this group at https://groups.google.com/group/cvxopt.
For more options, visit https://groups.google.com/d/optout.

maksimilian musik

unread,
May 1, 2017, 4:57:45 AM5/1/17
to CVXOPT

@Joachim

Ok, so this means that is actually not possible to optimize a problem in the QCQP form within CVXOPT?



On Wednesday, April 26, 2017 at 3:43:00 PM UTC+2, Joachim Dahl wrote:
This section in the Mosek manual explains how to convert a convex QCQP to conic form:
On Wed, Apr 26, 2017 at 3:17 PM, maksimilian musik <maksimil...@gmail.com> wrote:

@Dima, I am not sure about the complexity of the problem in general. I know of the SDP formulations of the problem, but it was my impression tha solving a QCQP formulation would be more efficient. Is there a way to express a quadratic constraint in CVXOPT that you know of? Also the fact that this problem is optimizing over both beta and t is throwing me off a little bit.



On Tuesday, April 25, 2017 at 11:24:42 PM UTC+2, Dima Pasechnik wrote:


On Tuesday, April 25, 2017 at 2:31:48 PM UTC+1, maksimilian musik wrote:
Hi all,

Total beginner in the optimization world here. I am trying to use CVXOPT to find the optimal solution for the following QCQP problem:



Where beta is the variable I am trying to optimize for, G_i is a positive semi-definite matrix, and r_i = tr(G_i) for all i.

Does anybody have any resources or tips as to how to convert this problem into something that can be solved by CVXOPT? It is my understanding that CVXOPT cannot deal with QCQP problems directly. Any suggestions to get the ball rolling?

isn't such a problem NP-hard, in general?

You can perhaps try solving a semidefnite programming relaxation, replacing $\beta\beta^T$ with a positive semidefinite matrix B...
 

Max

--
You received this message because you are subscribed to the Google Groups "CVXOPT" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cvxopt+un...@googlegroups.com.

Joachim Dahl

unread,
May 1, 2017, 7:21:03 AM5/1/17
to cvx...@googlegroups.com
No, it's not possible to solve QCQPs directly.  You must reformulate them on conic form.

To unsubscribe from this group and stop receiving emails from it, send an email to cvxopt+unsubscribe@googlegroups.com.
Message has been deleted
Message has been deleted

maksimilian musik

unread,
May 1, 2017, 7:28:38 AM5/1/17
to CVXOPT
Ok, I understand. But after I reformulate according to the resource you linked, I would then be using something like the coneqp solver within CVXOPT?

Also in the following formulation, I would not need to explicitly program the last constraint right?:

Auto Generated Inline Image 1

Joachim Dahl

unread,
May 2, 2017, 3:29:23 AM5/2/17
to CVXOPT
There is a minor step of programming let before you can feed it to CVXOPT. The constraint "(ti, 1, Fi*x) in Qr" needs to be rewritten to something like

ui = ti
vi = 1
zi = Fi*x

and then "(ui, vi, zi) in Qr" is a pure conic constraint that you don't program - but you need to setup the conic variables in the right way.  If you, after chewing on this for awhile, think this is too difficult to implement,  then you can use a modeling layer on top of CVXOPT, like PICOS or PYCVX.
Reply all
Reply to author
Forward
0 new messages