-
Notifications
You must be signed in to change notification settings - Fork 253
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
PySCIPOpt 4.2 (SCIP 8) incorrectly reports a second-order cone program is infeasible #583
Comments
Surely this is a bug in the C code, not the python wrapper, true? |
@BrannonKing yes, almost certainly. I posted here since I can only provide the MWE in Python (and even then, using CVXPY as a wrapper). |
It would be good if you can let SCIP print the problem and see if it arrives there correctly. If it does, post the CIP file here. That may make it easier for us to reproduce the problem. |
I've uploaded the .cip file for the above CVXPY formulation. (Renamed to .txt so github allows the attachment.) |
Hi @svigerske, @matbesancon ran the file Steven posted and found no problem in SCIP. Help investigating this on pyscipopt's side would be much appreciated. |
Can we see the log you get from running SCIP/PySCIPOpt? That should include all the info on what dependencies of SCIP you have linked in. |
The comment scipopt/scip#22 (comment) sounds like this has been fixed on the CVXPY side. |
I'm a project maintainer of CVXPY. We've found that PySCIPOpt version 4 or higher results in failing tests. The current plan for us to fix this is to only allow PySCIPOpt version 3.X. Here's the most up-to-date snapshot of the CVXPY repository before we implement that fix: https://github.com/cvxpy/cvxpy/tree/dc92bad111c7f1304c6d4a1bd02f64c5e888a581.
The data for the failing test case is here (with axis=0):
https://github.com/cvxpy/cvxpy/blob/dc92bad111c7f1304c6d4a1bd02f64c5e888a581/cvxpy/tests/solver_test_helpers.py#L319-L350
SCIP claims the problem is infeasible, but that is not actually the case. The optimal objective is about -1.9321.
The code above looks messy compared to normal CVXPY code. Here's a cleaned up-version
The canonicalized problem expresses constraints as
A @ x + b \in K
whereK
is a product of three 3D second-order cones. The augmented matrix[A | b]
is as follows:We also define the 3D second-order cone as
{ (t1, t2, t3) : t1 >= sqrt(t2 ** 2 + t3 ** 2) }
.Let me know if there's anything I can do to help diagnose this problem on the SCIP / PySCIPOpt side!
The text was updated successfully, but these errors were encountered: