Infeasible Status


(Sunny) #1

Hello @all !

I hope everyone is doing well.

I have convert my optimization problem into a suitable form so that Cvx can solve it, but still the status shows infeasible, anyone have idea about this?

image

Code i made is;

clear,clc %Clear all
m=2; %number of Tx and Rx antennas
n=1;
P=1; %Transmitted Power
%rng(1);
%H=rand(m,m); %Channel matrix
G1=rand(n,m);
G2=rand(n,m);
W1=rand(m,n);
W2=rand(m,n);
T1=W1W1’;
%t=0.5;
t=1/(trace(G2
G2’W1W1’)+1);
%Arho = [0.3 0; 0 0.3]; %Fix Arho
I=eye(m,m) %Identity matrix

%Arhobar=I-Arho %Arhobar

cvx_clear %To clear models used before
cvx_begin %To begin a new CVX model

variable T1(m,m) Symmetric %S Variable
maximize (trace(G2G2’W2W2’)); %Objective Function
subject to
(trace(G2
G2’*T1))+t==1;

trace(G1G1’T1)>=0.5(trace(G1G1’W2W2’)+t*I);

trace(T1)+trace(W2W2’)<= tP
t>0;
T1==semidefinite(m);
W2*W2’>=0;

cvx_end %To end the CVX model
cvx_status

The status is:

Calling SDPT3 4.0: 6 variables, 2 equality constraints
For improved efficiency, SDPT3 is solving the dual problem.

num. of constraints = 2
dim. of sdp var = 2, num. of sdp blk = 1
dim. of linear var = 3


SDPT3: Infeasible path-following algorithms


version predcorr gam expon scale_data
HKM 1 0.000 1 0
it pstep dstep pinfeas dinfeas gap prim-obj dual-obj cputime

0|0.000|0.000|9.1e-11|1.3e+01|5.0e+02|-8.127156e+00 0.000000e+00| 0:0:00| chol 1 1
1|1.000|0.936|1.1e-07|9.1e-01|2.8e+01|-9.156551e+00 0.000000e+00| 0:0:00| chol 1 1
2|1.000|0.188|2.6e-08|7.4e-01|4.3e+01|-1.967381e+02 0.000000e+00| 0:0:00| chol 1 1
3|1.000|0.018|1.0e-08|7.3e-01|1.0e+03|-4.259003e+05 0.000000e+00| 0:0:00| chol 1 1
4|1.000|0.002|5.5e-09|7.3e-01|2.1e+07|-1.022235e+11 0.000000e+00| 0:0:00| chol 1 1
5|1.000|0.000|2.8e-09|7.3e-01|5.0e+13|-2.455185e+18 0.000000e+00| 0:0:00|
sqlp stop: dual problem is suspected of being infeasible

number of iterations = 5
residual of dual infeasibility
certificate X = 1.14e-27
reldist to infeas. <= 3.44e-28
Total CPU time (secs) = 0.18
CPU time per iteration = 0.04
termination code = 2
DIMACS: 2.8e-09 0.0e+00 8.1e-01 0.0e+00 -1.0e+00 2.0e-05


Status: Infeasible
Optimal value (cvx_optval): -Inf

cvx_status =

Infeasible


(Mark L. Stone) #2

The trace constraints are not mutually compatible. Various combinations of trace constraints may be feasible, depending on the random input data you generated.

Do you have actual problem inputs, not just random inputs, to test this on?


(Sunny) #3

Dear Mark_L_Stone,

You seem to be very helpful throughout, I appreciate your efforts.

Actually, I don’t have the actual inputs because, I have two users and for two users I used two precoding matrices, that I have to optimize.


(Mark L. Stone) #4

Feasibility may depend on the inputs. Perhaps “real” data results in a feasible problem, whereas random data generated per the probability distribution you are using, might (usually or always) not be


(Erling D.Andersen) #5

Anecdote: I recall Yinyu Ye once told me a random problem is either easy or infeasible. He was talking about LPs.


(Mark L. Stone) #6

@Erling, I agree, because what matters is the multivariate probability distribution of the inputs. Real problems tend to have structure which is not manifested in independent uniform or Normal random numbers (everyone on this forum uses rand or randn to generate and populate independent random numbers in an entire matrix or vector).

You still might be able to achieve realistic structure by superimposing random numbers on an imposed structure or sparsity pattern, i.e., you only populate certain elements of a matrix with random numbers.

In fact I did just this on my final project for Gene Golub’s Statistical Computing course in March 1982. Using the for loop (one of the few programming features) and rand capabilities in the original Fortran-based MATLAB, I generated random matrices having specified structure or properties, such as (symmetric) psd (covariance matrices) , correlation matrices (psd matrices constrained to have unit diagonal), Toeplitz, circulant, Hurwitz and other special matrices. I systematically controlled the condition numbers to various specified levels. Then I examined the relation of condition number estimators in various norms to actual condition numbers in various norms. Over 24 years later, about a year and a half before he died,I talked to Golub at a conference. I mentioned that he gave me an A+ on that project. He asked me if I thought I deserved it. I said yes.Those were my last words ever to him. BTW, back in those more innocent (just pre-AIDS) days, long before important applications such as recommending which teen celebrities conservative old geezers should follow on social media, Golub referred in class to SVD as a Stanford social disease.


(Sunny) #7

Dear @Mark_L_Stone,

I have solved the problem, it gives me the simulation results sometimes and sometimes it shows the same -inf issue, i dont know what’s going wrong.


(Mark L. Stone) #8

It sounds like your problem is feasible or not, depending on the input data. The :“solution” to your difficulties is to use real(istic) input data.If that is infeasible, then you need to examine hwo good your mode is.