qpbenchmark icon indicating copy to clipboard operation
qpbenchmark copied to clipboard

Conversion to SOCP limits performance of ECOS

Open stephane-caron opened this issue 1 year ago • 2 comments

As @bodono pointed out in https://github.com/qpsolvers/qpsolvers_benchmark/issues/58#issuecomment-1443914166, socp_from_qp relies on NumPy's implementation, which in turns require the matrix to be positive definite.

This requirement comes from the conversion, not from the underlying conic solvers. This yields a https://github.com/qpsolvers/qpsolvers_benchmark/labels/fairness issue since failing to solve the problem is no fault of the solver itself.

stephane-caron avatar Feb 24 '23 17:02 stephane-caron

For fairness I would suggest that the time to perform the factorization should be added to the total solver time too, but that's up to you really.

bodono avatar Feb 24 '23 18:02 bodono

I suppose using a pivoted cholesky or adding a "small" identity matrix to the matrix under factorisation would be two ways to attempt to solve non-strictly convex problems. This answer is quite relevant, to the definition of "strict definiteness" and "small", I believe. Taking a look at how exactly cvxpy performs the QP -> SOCP conversion might also be interesting.

I agree with Brendan that the factorisation time should probably be included into the total solver time.

nrontsis avatar Apr 04 '23 14:04 nrontsis