Hello,

I am trying to solve a SDP relaxation of a non-convex problem, the relaxation looks as follows :

tic

cvx_begin sdp

variable z(n);

variable X(n,n) symmetric;

minimize ( trace(H*X)-f’ z+f’f)
subject to
Aeqz == beq ;
LB <= z <= UB;
for i=1:n/7
trace(XVmatrix(:,:,i))==0;
trace(X*P(:,:,i))+q(:,1,i)’*z+f’*f<=0;

end

[X z; z’ 1] == semidefinite(n+1);

cvx_end

toc

This solution is the control input and states in order to avoid collision of two vehicles this is done at each sampling time so the program is run at each iteration. Therefore to be scalable and for experimental purposes the computation time should be lower than the sampling time. However, the solution is as follows:

Calling SDPT3 4.0: 741 variables, 101 equality constraints

num. of constraints = 101

dim. of sdp var = 36, num. of sdp blk = 1

dim. of linear var = 75

SDPT3: Infeasible path-following algorithms

## version predcorr gam expon scale_data

HKM 1 0.000 1 0

it pstep dstep pinfeas dinfeas gap prim-obj dual-obj cputime

## 0|0.000|0.000|4.1e+01|5.5e+00|1.5e+08| 1.081372e+07 0.000000e+00| 0:0:00| chol 1 1

1|0.969|0.843|1.3e+00|8.7e-01|1.8e+07| 6.657526e+06 5.312966e+05| 0:0:00| chol 1 1

2|0.969|0.978|4.0e-02|2.5e-02|1.6e+06| 1.596548e+06 2.494570e+05| 0:0:00| chol 1 1

3|0.422|0.918|2.3e-02|1.3e-02|1.0e+06| 1.184067e+06 3.803411e+05| 0:0:00| chol 1 1

4|0.930|0.946|1.6e-03|7.1e-03|1.4e+05| 5.626440e+05 4.460365e+05| 0:0:00| chol 1 1

5|0.923|0.980|1.2e-04|1.4e-03|1.2e+04| 5.128262e+05 5.030611e+05| 0:0:01| chol 1 1

6|0.926|0.965|9.2e-06|5.2e-04|3.0e+03| 5.089199e+05 5.064452e+05| 0:0:01| chol 1 1

7|0.924|0.913|7.0e-07|2.6e-04|5.4e+02| 5.081852e+05 5.077947e+05| 0:0:01| chol 1 1

8|1.000|0.931|4.0e-08|1.2e-04|2.0e+02| 5.081058e+05 5.079637e+05| 0:0:01| chol 1 1

9|0.943|1.000|4.0e-09|3.4e-05|3.3e+01| 5.080690e+05 5.080527e+05| 0:0:01| chol 1 1

10|0.920|0.957|3.2e-10|1.5e-06|1.8e+00| 5.080607e+05 5.080596e+05| 0:0:01| chol 1 1

11|1.000|0.943|2.1e-12|8.4e-08|3.3e-01| 5.080601e+05 5.080598e+05| 0:0:01| chol 1 1

12|0.974|0.982|1.1e-12|1.5e-09|6.4e-03| 5.080600e+05 5.080600e+05| 0:0:01|

stop: max(relative gap, infeasibilities) < 1.49e-08

## number of iterations = 12

primal objective value = 5.08060025e+05

dual objective value = 5.08060019e+05

gap := trace(XZ) = 6.45e-03

relative gap = 6.34e-09

actual relative gap = 5.65e-09

rel. primal infeas (scaled problem) = 1.08e-12

rel. dual " " " = 1.48e-09

rel. primal infeas (unscaled problem) = 0.00e+00

rel. dual " " " = 0.00e+00

norm(X), norm(y), norm(Z) = 4.8e+03, 1.5e+03, 1.6e+03

norm(A), norm(b), norm© = 2.5e+01, 5.6e+03, 3.6e+02

Total CPU time (secs) = 0.63

CPU time per iteration = 0.05

termination code = 0

DIMACS: 2.4e-12 0.0e+00 3.5e-09 0.0e+00 5.7e-09 6.3e-09

Status: Solved

Optimal value (cvx_optval): +510846

Elapsed time is 1.698546 seconds.

the elapsed time is too high for the required purposes , however i have observed that the most time is taken up launching the solver at each iteration and possibly printing the results. Could that be suppressed in order to increase computation time? Moreover is there a way in order to avoid launching the solver at each iteration.

Thank you for your help in advance