qpbenchmark
qpbenchmark copied to clipboard
Conversion to SOCP limits performance of ECOS
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.
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.
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.