# Integer linear programming in CVX

(Stone Feng) #1

I want to use CVX to solve antenna selection problem. An integer programming problem is formulated, and I defined an diagonal activity matrix S， whose diagonal elements is 0-1 integer.
The selected channle matrix Hs can be expressed as:`Hs=H*S`
Then ZF precoding W is applied: `W=Hs'*inv(Hs*Hs')`
My matlab code is as follows:

``````    variable s(Nt)
S=diag(s);
W=(hmat*diag(s))'*inv((hmat*diag(s))*(hmat*diag(s))');
``````

But matlab reports an error：

``````    Disciplined convex programming error:
Only scalar quadratic forms can be specified in CVX
``````

So how can I modify the precoding matrix W after antenna selection in CVX?

(Michael C. Grant) #2

I marked this as non-convex; which of course it trivially is because of the integer constraints. Nevertheless, W does not satisfy the DCP ruleset even if the binary constraints on S are relaxed, so it does not satisfy the DCP rules. Please read the FAQ.

I admit that the error message here is less than helpful, but the `inv` is not legal either.

Bottom line, CVX will not be able to solve your problem.

(Stone Feng) #3