CVX conform way of problem

#1

Hey there,
I have to implement one optimization problem from the communication domain. The issue I have is that cvx gets me the message

Error using .* (line 173)
Disciplined convex programming error:
Cannot perform the operation: {real affine} .* {convex}
Error in * (line 36)
z = feval( oper, x, y );
Error in algo (line 17)
SINR = p(k) * (f(:,j)’ * R(:,:,j) * f(:,j));

Here is the original part of the problem formulation:

The problem seems to be the p(k) (part which is affine?), and as far as I understood it the total problem is therefore not necessarily convex. The cvx algorithm was defined by me like this:

N = 5; % Number of antennas
L = 10; % Codebook size
K = 20; % Number of single antenna users
P_max = 50;

cvx_begin 
variable C
variable f(N, K) complex
variable p(K) nonnegative
maximize C
subject to
for k = 1:K
	SINR = 1; % the +1 part in the SINR denominator
	for j = 1:K
		if k == j
			continue
		end
		SINR = p(k) * (f(:,j)' * R(:,:,j) * f(:,j));
	end
	% SINR is the denominator of eq (3b)
	real(p(k) * ( f(:,k)' * R(:,:,k) * f(:,k))) * inv_pos(SINR)  >= C;
	norm(f(:, k)) == 1;
end
sum(p) <= P_max;
cvx_end

The TA of the course gave the impression that the problem should be trivially solved in cvx so am I missing here something?

I have read that I should make sure that the problem is convex but my problem is that the TA told me to “just do it in CVX” so I would assume that it is. The examples in cvx from my lecture were trivial and i got stuck now.

I appreciate any advice.

Kind regards

(Mark L. Stone) #2

The TA of my course gave the impression that the problem should be trivially solved in cvx

is not one of the acceptable convexity proof methods listed in Why isn't CVX accepting my model? READ THIS FIRST!

Given that this is a school assignment, I suggest you consult your TA for further guidance.

#3

I understand that this is a newbie question and that post you pointed I have already read. The thing is that this is the first cvx problem and I simply don’t see what I am doing wrong. I am really trying to solve it (lost yesterday the whole day) and I would like a push into the right direction.

(Mark L. Stone) #4

The right direction in CVX is to formulate a convex optimization problem. Note, convexity strongly depends on which “variables” are treated as optimization (a.k.a. decision) variables and which are numerical input data.

Consult your TA.

#5

Thanks for your hint. Your help is really appreciated.