1

I have a python code to solve the following simple Semidefinite Program:

Input: Two Real 4 x 4 matrices, A and B

Output: 1 - q where q = maximum over all p, such that:

  1. 0 < p < 1

  2. A - p B is positive semi-definite

When I view an instance of the above problem in verbose mode, the Python code produces the following message.

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$

There are several parameters. I would like to know if it is possible to specify a bound on any of the parameters, to terminate the SDP, except specifying the maximum number of iterations. For instance, can we specify a limit on "gap", "pres", "dres"?

Community
  • 1
  • 1
Pavithran Iyer
  • 402
  • 5
  • 14

0 Answers0