微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

确定半定编程SDP问题的翻牌计数/数字复杂度的顺序?

如何解决确定半定编程SDP问题的翻牌计数/数字复杂度的顺序?

我需要根据特定SDP问题的翻牌计数来确定时间复杂度/计算复杂度。我已经在Matlab的YALMIP中实现了以下SDP问题。

    % LMI
    A = [-0.0276         0         0   -0.0111;...
          0.0024         0    0.0024    0.0024;...
               0         0   -0.0276         0;...
               0         0         0   -0.0165];
    C = [1 0 0 0];
    n = size(A,1);
    m = size(C,2);
    alpha = 2e7;
    e = 2e-8;
    
    P = sdpvar(n,n);
    M = sdpvar(n,n);
    Y = sdpvar(m,1);
    gain=0; %gain*eye(n*2)
    F = [P >= 0,...
        [P*A+A'*P+P*((alpha/2)*eye(n))+((alpha/2)*eye(n))'*P-Y*C-C'*Y'+e*0.8^2*eye(4) P;P -e*eye(n)] <= 0];
    options = sdpsettings('solver','sedumi','sedumi.eps',1e-8,...
                    'sedumi.cg.qprec',1,'sedumi.cg.maxiter',49,...
                    'sedumi.stepdif',2);
    
    solvesdp(F,trace(P));
    Pfeasible = value(P);
                
    P_attr=(alpha/(e*(0.2208^2*4.512^2+0.003362*3^2)))*Pfeasible;
    L=inv(P_attr)*value(Y);

以上代码未优化。因此,请忽略是否遇到数值错误。我需要对问题的计算复杂度有所了解。下面提供了在MATLAB命令窗口中获得的结果。

    The coefficient matrix is not full row rank,numerical problems may occur.
    SeDuMi 1.3.4 by AdvOL,2005-2008 and Jos F. Sturm,1998-2003.
    Alg = 2: xz-corrector,theta = 0.250,beta = 0.500
    eqs m = 14,order n = 13,dim = 81,blocks = 3
    nnz(A) = 56 + 0,nnz(ADA) = 196,nnz(L) = 105
     it :     b*y       gap    delta  rate   t/tP*  t/tD*   feas cg cg  prec
      0 :            6.15E+13 0.000
      1 :   2.00E-07 9.23E+06 0.000 0.0000 1.0000 1.0000   1.00  1  1  6.0E+00
      2 :   8.25E-08 2.59E+06 0.000 0.2806 0.9000 0.9000   1.37  1  1  1.3E+00
      3 :   1.33E-08 6.44E+05 0.000 0.2487 0.9000 0.9000   2.02  1  1  2.0E-01
      4 :   3.30E-11 2.76E+03 0.000 0.0043 0.9990 0.9990   1.29  1  1  7.5E-04
      5 :   2.49E-14 2.03E+00 0.000 0.0007 0.9999 0.9999   1.00  1  1  5.5E-07
      6 :   2.48E-15 1.44E-01 0.000 0.0710 0.9900 0.9900   0.92  2  2  4.3E-08
      7 :  -4.00E-19 2.79E-02 0.000 0.1934 0.9000 0.9000  -0.32  2  2  5.2E-08
      8 :  -6.00E-13 1.40E-04 0.000 0.0050 0.9990 0.9990  -0.80  2  2  3.3E-08
      9 :  -1.81E-09 3.80E-08 0.000 0.0003 0.9999 0.9999  -1.00  3  3  3.0E-08
     10 :  -8.81E-09 7.94E-09 0.000 0.2088 0.9000 0.9000  -1.00  5  5  3.0E-08
     11 :  -1.45E-08 5.46E-09 0.000 0.6879 0.9000 0.9000  -1.00  5  5  3.2E-08
     12 :  -2.17E-08 4.44E-09 0.000 0.8136 0.9000 0.9000  -1.00  5  5  3.6E-08
    Run into numerical problems.
    
    iter seconds digits       c*x               b*y
     12      1.2   Inf -1.7987675256e-07 -2.1730811842e-08
    |Ax-b| =   4.0e-07,[Ay-c]_+ =   7.9E-16,|x|=  2.0e+08,|y|=  6.8e+06
    
    Detailed timing (sec)
       Pre          IPM          Post
    1.310E-01    7.790E-01    2.900E-02    
    Max-norms: ||b||=1,||c|| = 2.000000e-08,Cholesky |add|=0,|skip| = 1,||L.L|| = 1.

image

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?