Optimization 执行SDP时控制python cvxopt解算器的参数

Optimization 执行SDP时控制python cvxopt解算器的参数,optimization,matrix,syntax,cvxopt,Optimization,Matrix,Syntax,Cvxopt,我有一个python代码来解决以下简单的半定程序: 输入:两个实4 x 4矩阵,A和B 输出:1-q,其中q=所有p的最大值,因此: 0

我有一个python代码来解决以下简单的半定程序:

输入:两个实4 x 4矩阵,A和B

输出:1-q,其中q=所有p的最大值,因此:

  • 0
  • A-pb是半正定的

  • 当我在详细模式下查看上述问题的实例时,Python代码生成以下消息

    10:Channel_Flow pavithran$ python stackoverflow_sdp.py 
    *** Dualizing the problem...  ***
    [ #################################################################### ] 100% 
    [ #################################################################### ] 100% 
    --------------------------
      cvxopt CONELP solver
    --------------------------
         pcost       dcost       gap    pres   dres   k/t
     0:  5.5546e-01  5.5546e-01  2e+01  3e+00  2e+00  1e+00
     1: -4.3006e-01 -7.3065e-02  3e+00  6e-01  3e-01  6e-01
     2: -4.9751e+01  2.1091e+00  9e+03  2e+01  8e+00  6e+01
     3: -3.4525e+02  7.6511e-02  9e+03  2e+00  1e+00  3e+02
     4: -3.4496e+04  7.6337e-02  9e+05  2e+00  1e+00  3e+04
     5: -3.4496e+06  7.6337e-02  9e+07  2e+00  1e+00  3e+06
     6: -3.4496e+08  7.6337e-02  9e+09  2e+00  1e+00  3e+08
    Certificate of dual infeasibility found.
    cvxopt status: dual infeasible
    *** Dual Solution not found
    Traceback (most recent call last):
      File "stackoverflow_sdp.py", line 42, in <module>
        simple_sdp(A,B)
      File "stackoverflow_sdp.py", line 31, in simple_sdp
        prob.solve(verbose = 2)
      File "/Library/Python/2.7/site-packages/picos/problem.py", line 4246, in solve
        raise Exception("\033[1;31m no Primals retrieved from the dual problem \033[0m")
    Exception:  no Primals retrieved from the dual problem 
    10:Channel_Flow pavithran$
    
    10:Channel\u Flow pavithran$python stackoverflow\u sdp.py
    ***将问题二元化***
    [ #################################################################### ] 100% 
    [ #################################################################### ] 100% 
    --------------------------
    cvxopt CONELP解算器
    --------------------------
    pcost dcost间隙压力k/t
    0:5.5546e-01 5.5546e-01 2e+01 3e+00 2e+00 1e+00
    1:-4.3006e-01-7.3065e-02 3e+00 6e-01 3e-01 6e-01
    2:-4.9751e+01 2.1091e+00 9e+03 2e+01 8e+00 6e+01
    3:-3.4525e+027.6511e-029E+032E+001E+003E+02
    4:-3.4496e+04 7.6337e-02 9e+05 2e+00 1e+00 3e+04
    5:-3.4496e+06 7.6337e-02 9e+07 2e+00 1e+00 3e+06
    6:-3.4496e+08 7.6337e-02 9e+09 2e+00 1e+00 3e+08
    发现双重不可行性证书。
    cvxopt状态:双重不可行
    ***未找到双重解决方案
    回溯(最近一次呼叫最后一次):
    文件“stackoverflow_sdp.py”,第42行,在
    简单的sdp(A,B)
    文件“stackoverflow_sdp.py”,第31行,在simple_sdp中
    问题求解(详细=2)
    文件“/Library/Python/2.7/site packages/picos/problem.py”,第4246行,在solve中
    raise异常(“\033[1;31m未从对偶问题中检索到原始值\033[0m”)
    例外:没有从对偶问题中检索到原始值
    10:通道_流量pavithran$
    
    有几个参数。我想知道,除了指定最大迭代次数外,是否可以在任何参数上指定一个界限来终止SDP。例如,我们可以指定“间隙”、“压力”、“dres”的限制吗