-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add benchmark option maros_meszaros_dense_posdef for running dense convex problems only #58
Comments
Yes, Maros-Meszaros problems are designed to be difficult so many problems are not strictly convex. If it's relevant to your use case, it's totally possible to add a class MarosMeszarosDense(MarosMeszaros): Similarly, a class MarosMeszarosDensePosDef(MarosMeszarosDense): And then wire this new test set up to @property
def description(self) -> str:
"""Description of the test set."""
return (
"Subset of the Maros-Meszaros test set "
"restricted to smaller dense problems "
"and strictly positive definite Hessian matrices."
) In benchmarking, it is of prime importance to state the additional assumptions clearly when using subsets of well-known test sets. |
You should be able to convert positive semi-definite matrices to second-order cone form too, using a Cholesky factorization where you throw away the zero columns (corresponding to zero eigenvalues). Ideally the timing to do this conversion would count towards the solvers total time, but that might be a pain. |
Does it mean there is a approximation from convex to strictly convex QP? That would be great! Second-order cone is a new topic for me. Can you suggest an ilustrating reference, please? I can possibly implement inside the solver... |
I just mean that here for positive semi-definite matrices we could just use a different decomp (looks like numpy cholesky only supports positive definite, so would have to use something else like svd). |
For instance Eigen's Cholesky decompositions are available in Python via eigenpy, including the LDLT which doesn't require the matrix to be definite. We could definitely make it available in qpsolvers to improve the interface for ECOS. I've opened an issue at qpsolvers/qpsolvers#179, I'll gladly help support a PR if somebody is willing to try it out. |
To me it is essential that it does, the problem being that it should not take into account the possible python overhead. |
…more for positive definite Hessian matrix only
Please consider the feature of running only strictly convex problems, as some solvers can solve QP with strictly positive definite Hessian (P>0) only. If those solvers are running a complete set of problems, the results may look (unfairly) unattractive:
For example, ECOS warns that you cannot solve some of the problems in the command line:
The text was updated successfully, but these errors were encountered: