Cvx_solver mosek get Problem status : ILL_POSED

Here is the matlab code to reproduce my problem.

target1_A = [7.99995669675181e-06     -8.03975747633764e-06                         0                         0;
            -8.03975747633764e-06         0.497520517567215                         0                         0;
                         0                         0      7.99995669675181e-06     -8.03975747633764e-06;
                         0                         0     -8.03975747633764e-06         0.497520517567215];
target1_B_s1 = [5.4786924582329e-10      6.35177457508857e-13     -2.57705351589825e-11     -6.30413626577541e-11;
      6.35177457508857e-13      1.26095524861251e-12      6.39977287162576e-15     -1.25149808424792e-10;
     -2.57705351589825e-11      6.39977287162576e-15      3.10533520760511e-09     -6.35177457508857e-13;
     -6.30413626577541e-11     -1.25149808424792e-10     -6.35177457508857e-13      1.24211184861606e-08];
target1_B_s2 = [1.88230545590483e-09      5.52035135357927e-11     -1.55785827265852e-09     -1.01458019994494e-10;
      5.52035135357927e-11      4.33590670936381e-09      3.00363431778171e-11     -7.96892229201435e-09;
     -1.55785827265852e-09      3.00363431778171e-11      3.89784473863295e-09     -5.52035135357927e-11;
     -1.01458019994494e-10     -7.96892229201435e-09     -5.52035135357927e-11      1.46460075718467e-08];
target1_B_s3 = [1.02330422638801e-09      1.82607222090617e-11     -7.42695381881943e-10     -1.69795845837224e-11;
      1.82607222090617e-11      3.67668784024726e-09      1.96385237785021e-11     -3.41873839690975e-09;
     -7.42695381881943e-10      1.96385237785021e-11      9.15160537542683e-10     -1.82607222090617e-11;
     -1.69795845837224e-11     -3.41873839690976e-09     -1.82607222090617e-11      3.17888619712656e-09];
target2_A = [7.99995669675181e-06     -8.03975747633764e-06                         0                         0;
     -8.03975747633764e-06         0.497520517567215                         0                         0;
                         0                         0      7.99995669675181e-06     -8.03975747633764e-06;
                         0                         0     -8.03975747633764e-06         0.497520517567215];
target2_B_s1 = [5.64035654298123e-10      1.60948130730564e-11      5.62465169122037e-10      2.21233904553342e-11;
      1.60948130730564e-11      1.85113331582138e-09     -1.17090103517189e-11      2.54450579481112e-09;
      5.62465169122037e-10     -1.17090103517189e-11      9.27986825379898e-10     -1.60948130730564e-11;
      2.21233904553342e-11      2.54450579481112e-09     -1.60948130730564e-11      3.49759235841667e-09];
target2_B_s2 = [2.09639991245474e-09      7.30760895546975e-11      1.54352691955118e-09      1.87995748196879e-10;
      7.30760895546975e-11      3.18564170747668e-09     -2.84055087193446e-11         8.19539058444e-09;
      1.54352691955118e-09     -2.84055087193446e-11      5.46729499225802e-09     -7.30760895546975e-11;
      1.87995748196879e-10         8.19539058444e-09     -7.30760895546975e-11      2.10834842706552e-08];
target2_B_s3 = [2.2580799064e-09     -3.04378599845204e-11     -7.84825229556515e-10      2.11712226114553e-10;
     -3.04378599845204e-11       6.2511251350135e-10      -4.3760501575189e-12     -4.34800481613161e-09;
     -7.84825229556515e-10      -4.3760501575189e-12      7.60414109380293e-09      3.04378599845204e-11;
      2.11712226114553e-10     -4.34800481613161e-09      3.04378599845204e-11      3.02427890544266e-08];
target3_A = [7.99995669675181e-06     -8.03975747633764e-06                         0                         0;
     -8.03975747633764e-06         0.497520517567215                         0                         0;
                         0                         0      7.99995669675181e-06     -8.03975747633764e-06;
                         0                         0     -8.03975747633764e-06         0.497520517567215];
target3_B_s1 = [1.43840293444844e-10      1.51736067093141e-12     -8.19135562435095e-11     -2.02540553843076e-11;
      1.51736067093141e-12      2.76208445629662e-11       1.1367518069854e-13     -3.68688951978879e-10;
     -8.19135562435094e-11       1.1367518069854e-13      1.23110332732941e-09     -1.51736067093141e-12;
     -2.02540553843076e-11     -3.68688951978879e-10     -1.51736067093141e-12       4.9213391357895e-09];
target3_B_s2 = [5.05035735969096e-10      1.24959519690227e-11      -5.8120083630651e-10     -2.54206866036491e-11;
      1.24959519690227e-11      1.31353725412431e-09      6.14258843778465e-12     -2.67214686500778e-09;
      -5.8120083630651e-10      6.14258843778465e-12      1.40168185018073e-09     -1.24959519690227e-11;
     -2.54206866036491e-11     -2.67214686500778e-09     -1.24959519690227e-11      5.43598504401093e-09];
target3_B_s3 = [3.97366456044822e-10      5.88381226567152e-12     -3.63995327836505e-10     -6.58754161039662e-12;
      5.88381226567152e-12      1.42869715222334e-09      5.25526043327448e-12     -1.59957549866732e-09;
     -3.63995327836505e-10      5.25526043327448e-12      4.79786509904517e-10     -5.88381226567152e-12;
     -6.58754161039662e-12     -1.59957549866732e-09     -5.88381226567152e-12      1.79089163295037e-09];
target4_A = [7.99995669675181e-06     -8.03975747633764e-06                         0                         0;
     -8.03975747633764e-06         0.497520517567215                         0                         0;
                         0                         0      7.99995669675181e-06     -8.03975747633764e-06;
                         0                         0     -8.03975747633764e-06         0.497520517567215];
target4_B_s1 = [2.87158625001848e-11       3.1809715324394e-13      5.72693419379107e-11       8.8713761626921e-13;
       3.1809715324394e-13      8.58673110436647e-11      -1.1405874020699e-13      2.39474389688443e-10;
      5.72693419379107e-11      -1.1405874020699e-13      1.67898870102364e-10      -3.1809715324394e-13;
       8.8713761626921e-13      2.39474389688443e-10      -3.1809715324394e-13      6.67867464575545e-10];
target4_B_s2 = [3.01492292991484e-11      4.61934501838872e-13      5.18288985202304e-11      2.99363359417514e-12;
      4.61934501838872e-13      3.40506484542303e-11     -7.12790918716029e-14      2.20670170143705e-10;
      5.18288985202304e-11     -7.12790918716029e-14      3.58036439146185e-10     -4.61934501838872e-13;
      2.99363359417514e-12      2.20670170143705e-10     -4.61934501838872e-13      1.43008507038292e-09];

target4_B_s3 = [2.62854997889735e-11     -3.78261161104058e-13     -3.31591394128855e-11      3.99961406662133e-12;
     -3.78261161104058e-13      1.33649085319876e-11     -3.57738280785321e-14     -1.41316322319806e-10;
     -3.31591394128855e-11     -3.57738280785321e-14       3.7376376241739e-10      3.78261161104058e-13;
      3.99961406662133e-12     -1.41316322319806e-10      3.78261161104058e-13      1.49423416600258e-09];

T1 = @(p) target1_A + p(1)*target1_B_s1+p(2)*target1_B_s2+p(3)*target1_B_s3;
T2 = @(p) target2_A + p(1)*target2_B_s1+p(2)*target2_B_s2+p(3)*target2_B_s3;
T3 = @(p) target3_A + p(1)*target3_B_s1+p(2)*target3_B_s2+p(3)*target3_B_s3;
T4 = @(p) target4_A + p(1)*target4_B_s1+p(2)*target4_B_s2+p(3)*target4_B_s3;

tv1 = [13460.8324799922; 6251.18916815389];
tv2 = [11559.1461555462; 3769.19060527909];
tv3 = [34872.2901982884; 8883.62735666326];
tv4 = [88276.4154079558; 22123.3756352467];

p_min = 10;
p_max = 1e5;
p_total = 1e5;

cvx_solver mosek
cvx_begin SDP
    variables p_s1(4) p_s2(4) p_s3(4);
    minimize( sum(p_s1)+sum(p_s2)+sum(p_s3) )
    subject to
        [T1([p_s1(1);p_s2(1);p_s3(1)]),[1;0;0;0];
        [1,0,0,0],tv1(1)] == semidefinite(5);
        [T1([p_s1(1);p_s2(1);p_s3(1)]),[0;0;1;0];
        [0,0,1,0],tv1(2)] == semidefinite(5);

        [T2([p_s1(2);p_s2(2);p_s3(2)]),[1;0;0;0];
        [1,0,0,0],tv2(1)] == semidefinite(5);
        [T2([p_s1(2);p_s2(2);p_s3(2)]),[0;0;1;0];
        [0,0,1,0],tv2(2)] == semidefinite(5);

        [T3([p_s1(3);p_s2(3);p_s3(3)]),[1;0;0;0];
        [1,0,0,0],tv3(1)] == semidefinite(5);
        [T3([p_s1(3);p_s2(1);p_s3(3)]),[0;0;1;0];
        [0,0,1,0],tv3(2)] == semidefinite(5);

        [T4([p_s1(4);p_s2(4);p_s3(4)]),[1;0;0;0];
        [1,0,0,0],tv4(1)] == semidefinite(5);
        [T4([p_s1(4);p_s2(4);p_s3(4)]),[0;0;1;0];
        [0,0,1,0],tv4(2)] == semidefinite(5);

        p_min <= p_s1 <= p_max;
        p_min <= p_s2 <= p_max;
        p_min <= p_s3 <= p_max;
        sum(p_s1) <= p_total;
        sum(p_s2) <= p_total;
        sum(p_s3) <= p_total;
cvx_end

After running this code, I got “Problem status : ILL_POSED”. Is this the problem due to scaling? If so, how to rescale? Any hint will be appreciated. Thanks in advance.

The scaling is horrible. If the scaling is suitably fixed, I don’t know what the outcome will be, but at least the solver will have a fighting chance to solve to optimality.

Change the units, or something, to try to get all non-zero input numbers to be within a small number of orders of magnitude of 1. I have no idea what your model represents, so don’t have any more specific suggestions as to how to do that.

With the problem as is (not rescaled), SeDuMi and SDPT3 both solved to claimed optimality (cvx_optval 120 and 120.176).

But the claimed optimality of SeDuMi and SDPT3 is not the true optimality. I will try to change my model. thanks for your reply!