Hey guys,

As part of my objective function, a queuing delay formula is known as follows.

where z is a binary decision variable. lambda ,mu and delta are pre-defined positive constants.

I used lambda_CS = sum(z .* lambda_k) and T_CS = inv_pos(mu_CS - lambda_CS) to represent the above two variables.

In my objective function, need to calculate z .* T_CS. But I receive the consequence of

Disciplined convex programming error:

Cannot perform the operation: {real affine} .* {convex}

So I use the Reformulation Linearization Technique (RLT) to transform the variables as follows,

cvx_begin

variable z(K) binary

variable V(K) nonnegative

expression lambda_CS

expression T_CS

lambda_CS = sum(z .* lambda_mean);

T_CS = inv_pos(mu_CS - lambda_CS);

minimize(sum(V));

subject to

lambda_CS <= (mu_CS - 1);

for k = 1:K

V(k) >= (z(k) / mu_CS );

V(k) <= (z(k) * T_max);

V(k) <= (T_CS - 1 / mu_CS + z(k) / mu_CS );

V(k) >= (T_CS - T_max + z(k) * T_max);

end

cvx_end

where T_max is a large positive constants.

I hope that through these four unlimited constraints, the equivalence is established. However, when I put these four unlimited constraints into the subject to, I receive the consequence of

Disciplined convex programming error:

Invalid constraint: {real affine} <= {convex}

The reason is that there is a problem with the third constraint.

What should I do? Looking forward to the help. It‘d be much appreciated if anyone could help me out. Thanks a lot.