Feasibility of a nonconvex optimization problem

42 views
Skip to first unread message

Shaik

unread,
Apr 8, 2015, 9:25:45 AM4/8/15
to yal...@googlegroups.com
Dear Johan,

I am facing a problem of checking the feasibility of an optimization problem (logdet problem) subject to constraints. The diagnostics is giving a problem of numerical errors.
 Can this problem be solved with other solvers in this case or is there some tweek?
The code is exactly as given below.

Thanks,
Shaik.
----------------------------------------------------------------------------------
N=5;
Pz=sdpvar(N+2,N+2,'symmetric');% Actually inverse of Pz
Psi_kv=[[0.4462   0.0334  0.1200;0.4414    0.8835    0.7900] zeros(2,N-1); zeros(N-1,3) eye(N-1);  zeros(1,N+2)];
G_1kv=[-0.3653  -0.388 1 zeros(1,N-1)];Tx=[eye(2);zeros(N,2)];

lmiPz1=blkvar;
lmiPz1(1,1)=-0.3*Pz; lmiPz1(1,2)=0; lmiPz1(1,3)=Pz*Psi_kv';
lmiPz1(2,2)=-0.7; lmiPz1(2,3)=[2 2 zeros(1,N)];
lmiPz1(3,3)=-Pz;
lmiPz1=sdpvar(lmiPz1);

lmiPz2=blkvar;
lmiPz2(1,1)=4; lmiPz2(1,2)=G_1kv*Pz;
lmiPz2(2,2)=Pz;
lmiPz2=sdpvar(lmiPz2);

F=[Pz>=0]; F=[F,lmiPz1<=0];F=[F,lmiPz2>=0];
solvesdp(F,-logdet(Tx'*Pz*Tx),sdpsettings('solver','sdpt3')) %maximize the logdet(inv(Pz))
chekingset=checkset(F)
Pz=value(Pz)

Johan Löfberg

unread,
Apr 8, 2015, 10:09:01 AM4/8/15
to yal...@googlegroups.com
Nonconvex? This is convex, otherwise you would never be able to use sdpt3

It is infeasible though
optimize(F)
    yalmiptime
: 0.3818
    solvertime
: 0.4292
          info
: 'Infeasible problem (MOSEK)'
       problem
: 1

The second constraint is infeasible on its own
optimize(F(2))          

ans
=

    yalmiptime
: 0.3377
    solvertime
: 0.3493
          info
: 'Infeasible problem (MOSEK)'
       problem
: 1



Shaik

unread,
Apr 8, 2015, 10:37:18 AM4/8/15
to yal...@googlegroups.com
Oh Thanks..
Sorry I provided the wrong code. Now the problem is feasible without logdet optimization. But once I include logdet optimization, it gives a solution with huge numbers. 
In this case, is it advisable to put the upper limit on Pz??



------------------------------------------------------------------
N=5;ld=0.5;
Pz=sdpvar(N+2,N+2,'symmetric');% Actually inverse of Pz
Psi_kv=[[ 0.2955    0.0512    0.100;-0.1359    0.7092    0.8] zeros(2,N-1); zeros(N-1,3) eye(N-1);  zeros(1,N+2)];
G_1kv=[0  0 1 zeros(1,N-1)];Tx=[eye(2);zeros(N,2)];

lmiPz1=blkvar;
lmiPz1(1,1)=-ld*Pz; lmiPz1(1,2)=0; lmiPz1(1,3)=Pz*Psi_kv';
lmiPz1(2,2)=ld-1;lmiPz1(2,3)=[2 2 zeros(1,N)];%lmiPz1(2,3)=0;% 
lmiPz1(3,3)=-Pz;
lmiPz1=sdpvar(lmiPz1);

lmiPz2=blkvar;
lmiPz2(1,1)=4; lmiPz2(1,2)=G_1kv*Pz;
lmiPz2(2,2)=Pz;
lmiPz2=sdpvar(lmiPz2);

F=[Pz>=0];
F=[F,lmiPz1<=0];
F=[F,lmiPz2>=0];
%solvesdp(F,[],sdpsettings('solver','sdpt3'))
solvesdp(F,-logdet(Tx'*Pz*Tx),sdpsettings('solver','sdpt3')) %maximize the logdet(inv(Pz))
checkset(F)
Pz=value(Pz)

Johan Löfberg

unread,
Apr 8, 2015, 2:29:14 PM4/8/15
to yal...@googlegroups.com
You want to maximize logdet(...). It turns out it can be made arbitrarily large by letting Pz tend to infinity. Why aren't you happy? Sounds like you've formulated an optimization problem which doesn't reflect what you actually want.

Shaik

unread,
Apr 9, 2015, 1:18:22 AM4/9/15
to yal...@googlegroups.com
Thanks a lot..I need to take a relook at the proofs of the constraints
Reply all
Reply to author
Forward
0 new messages