Skip to content
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

Fresh install missing GMP #832

Open
xLaszlo opened this issue Mar 28, 2024 · 10 comments
Open

Fresh install missing GMP #832

xLaszlo opened this issue Mar 28, 2024 · 10 comments

Comments

@xLaszlo
Copy link

xLaszlo commented Mar 28, 2024

Describe the bug

I am getting the following warning:

Cannot set feasibility tolerance to small value 1e-12 without GMP - using 1e-10.

Despite setting feastol to 1e-9. If I change the value to 1e-7, the warning disappears. Somewhere, it must be divided by 1000.

This started when I tried to reinstall the virtual environment, so I suspect it must have been the result of a recent change.

libgmp-dev is installed on the machine

To Reproduce

I am using cvxpy with a number of variables in the low thousands

python 3.11
cvxpy = {extras = ["scip"], version = "^1.4.2"}
pyscipopt = "^5.0.0"

This is the exact line:

problem.solve(solver=self.solver, verbose=self.verbose, scip_params={'numerics/feastol': 1e-9})

As can be seen, I am using 1e-9 for feastol.

Expected behavior

This was working before.

System

  • OS: Ubuntu
  • Version: 22.04 LTS
  • SCIP version 9.0
  • How did you install pyscipopt?

I tried both poetry and pip and installing it with pip install pyscipopt and also pip install cvxpy[SCIP] with no different results.

@xLaszlo
Copy link
Author

xLaszlo commented Mar 28, 2024

I found this issue which might be related:

scipopt/scip#85

@Opt-Mucca
Copy link
Collaborator

Opt-Mucca commented Mar 29, 2024

So this works out of the box on Ubuntu 20.04 LTS (If I just run pip install pyscipopt or pip install cvxpy[SCIP]). I would need some more information on how you built everything. I believe the issue with scipopt/scip#85 is that SOPLEX also uses GMP, and you need to explicitly compile SOPLEX as well as SCIP with GMP=true.
What is the exact method you're going about installing SCIP? If you're using the automatic installation for PySCIPOpt==4.4.0 then GMP is missing. If you're using your own installation of SCIP, then that is on your side to manage whether it is linked to GMP. If you're using pip to install both SCIP and it's Python bindings and you're getting this error, then we might have an issue.

@xLaszlo
Copy link
Author

xLaszlo commented Mar 29, 2024

I am using PySCIPOpt==5.0.0 (the latest) Shall I try downgrading? I don't know which version I used previously but it might have been the previous one.

One other new thing I see is when I restart the kernel in jupyter, instead of killing the process, it responds with this:
pressed CTRL-C 1 times (5 times for forcing termination)

This is new as well.

Thanks for your response; I will work on a clean room replication for this today and share it here. One simple issue I found is that for some easier problems, the above message is not generated.

@xLaszlo
Copy link
Author

xLaszlo commented Mar 29, 2024

I am using automatic installation, just pip install PySCIPOpt or pip install cvxpy[SCIP]

@xLaszlo
Copy link
Author

xLaszlo commented Mar 29, 2024

I am also getting these errors:

[solve.c:3916] ERROR: (node 4) unresolved numerical troubles in LP 37 cannot be dealt with
[solve.c:4197] ERROR: Error <-6> in function call
[solve.c:4993] ERROR: Error <-6> in function call
[scip_solve.c:2782] ERROR: Error <-6> in function call

@xLaszlo
Copy link
Author

xLaszlo commented Mar 29, 2024

I replicated the error in a minimal setting:

Python 3.11.4

env:

python -m venv myenv
source myenv/bin/activate
pip install cvxpy[SCIP]

resulting in:

clarabel==0.7.1
cvxpy==1.4.2
ecos==2.0.13
numpy==1.26.4
osqp==0.6.5
pybind11==2.12.0
PySCIPOpt==5.0.0
qdldl==0.1.7.post0
scipy==1.11.4
scs==3.2.4.post1

I can't share the actual problem I work on, but the gist of it is:

problem = cp.Problem(objective, constraints)
problem.solve(solver=cp.SCIP, verbose=False, scip_params={'numerics/feastol': 1e-9})

The problem has 1200 continuous 900 binary variables and 950 constraints.

@xLaszlo
Copy link
Author

xLaszlo commented Mar 29, 2024

This is the complete log with
problem.solve(solver=cp.SCIP, verbose=True, scip_params={'numerics/feastol': 1e-9, 'display/verblevel': 5})

===============================================================================
                                     CVXPY                                     
                                     v1.4.2                                    
===============================================================================
(CVXPY) Mar 29 01:14:03 PM: Your problem has 2180 variables, 932 constraints, and 0 parameters.
(CVXPY) Mar 29 01:14:03 PM: It is compliant with the following grammars: DCP, DQCP
(CVXPY) Mar 29 01:14:03 PM: (If you need to solve this problem multiple times, but with different data, consider using parameters.)
(CVXPY) Mar 29 01:14:03 PM: CVXPY will first compile your problem; then, it will invoke a numerical solver to obtain a solution.
(CVXPY) Mar 29 01:14:03 PM: Your problem is compiled with the CPP canonicalization backend.
-------------------------------------------------------------------------------
                                  Compilation                                  
-------------------------------------------------------------------------------
(CVXPY) Mar 29 01:14:03 PM: Compiling problem (target solver=SCIP).
(CVXPY) Mar 29 01:14:03 PM: Reduction chain: Dcp2Cone -> CvxAttr2Constr -> ConeMatrixStuffing -> SCIP
(CVXPY) Mar 29 01:14:03 PM: Applying reduction Dcp2Cone
(CVXPY) Mar 29 01:14:03 PM: Applying reduction CvxAttr2Constr
(CVXPY) Mar 29 01:14:03 PM: Applying reduction ConeMatrixStuffing
(CVXPY) Mar 29 01:14:03 PM: Applying reduction SCIP
(CVXPY) Mar 29 01:14:03 PM: Finished problem compilation (took 5.207e-01 seconds).
-------------------------------------------------------------------------------
                                Numerical solver                               
-------------------------------------------------------------------------------
(CVXPY) Mar 29 01:14:03 PM: Invoking solver SCIP  to obtain a solution.
LP Solver <Soplex 7.0.0>: barrier convergence tolerance cannot be set -- tolerance of SCIP and LP solver may differ
LP Solver <Soplex 7.0.0>: fastmip setting not available -- SCIP parameter has no effect
LP Solver <Soplex 7.0.0>: number of threads settings not available -- SCIP parameter has no effect
transformed problem has 2350 variables (920 bin, 0 int, 0 impl, 1430 cont) and 3621 constraints
   3621 constraints of type <linear>

original problem has 13567 active (0.159436%) nonzeros and 13567 (0.159436%) check nonzeros

presolving:
(round 1, fast)       820 del vars, 3040 del conss, 0 add conss, 471 chg bounds, 0 chg sides, 3 chg coeffs, 0 upgd conss, 0 impls, 0 clqs
(round 2, fast)       914 del vars, 3050 del conss, 0 add conss, 475 chg bounds, 0 chg sides, 4 chg coeffs, 0 upgd conss, 0 impls, 0 clqs
(round 3, fast)       924 del vars, 3050 del conss, 0 add conss, 476 chg bounds, 0 chg sides, 4 chg coeffs, 0 upgd conss, 0 impls, 0 clqs
(round 4, exhaustive) 924 del vars, 3050 del conss, 0 add conss, 645 chg bounds, 0 chg sides, 4 chg coeffs, 0 upgd conss, 0 impls, 0 clqs
(round 5, exhaustive) 924 del vars, 3050 del conss, 0 add conss, 645 chg bounds, 0 chg sides, 4 chg coeffs, 2 upgd conss, 0 impls, 0 clqs
   (0.0s) probing: 51/920 (5.5%) - 0 fixings, 0 aggregations, 0 implications, 0 bound changes
   (0.0s) probing aborted: 50/50 successive totally useless probings
   (0.1s) dualsparsify: 11 nonzeros canceled
(round 6, exhaustive) 924 del vars, 3050 del conss, 0 add conss, 645 chg bounds, 0 chg sides, 55 chg coeffs, 2 upgd conss, 2 impls, 0 clqs
   (0.1s) symmetry computation started: requiring (bin +, int +, cont +), (fixed: bin -, int -, cont -)
   (0.1s) symmetry computation finished: 855 generators found (max: 1500, log10 of symmetry group size: 0.0) (symcode time: 0.00)
dynamic symmetry handling statistics:
   orbitopal reduction:       no components
   orbital reduction:          1 components of sizes 855
   lexicographic reduction:  855 permutations with support sizes 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
handled 1 out of 1 symmetry components
clique table cleanup detected 0 bound changes

presolved problem has 7479 active (0.918518%) nonzeros and 7479 (0.918518%) check nonzeros

presolving (7 rounds: 7 fast, 4 medium, 4 exhaustive):
 924 deleted vars, 3050 deleted constraints, 0 added constraints, 645 tightened bounds, 0 added holes, 0 changed sides, 55 changed coefficients
 2 implications, 0 cliques
presolved problem has 1426 variables (920 bin, 0 int, 0 impl, 506 cont) and 571 constraints
      2 constraints of type <varbound>
    569 constraints of type <linear>
Presolving Time: 0.14

 time | node  | left  |LP iter|LP it/n|mem/heur|mdpt |vars |cons |rows |cuts |sepa|confs|strbr|  dualbound   | primalbound  |  gap   | compl. 
  0.3s|     1 |     0 |  2772 |     - |    38M |   0 |1426 | 590 | 571 |   0 |  0 |  19 |   0 | 2.429554e+00 |      --      |    Inf | unknown
(node 1) numerical troubles in LP 4 -- solve again with primal simplex without scaling
(node 1) numerical troubles in LP 5 -- solve again with primal simplex without presolving
(node 1) solution of LP 10 not optimal (pfeas=0, dfeas=0) -- solving again with tighter feasibility tolerance
Cannot set feasibility tolerance to small value 1e-12 without GMP - using 1e-10.
  0.6s|     1 |     0 |  8060 |     - |    38M |   0 |1426 | 590 | 574 |   3 |  1 |  19 |   0 | 2.429554e+00 |      --      |    Inf | unknown
(node 1) solution of LP 14 not optimal (pfeas=0, dfeas=0) -- solving again with tighter feasibility tolerance
Cannot set feasibility tolerance to small value 1e-12 without GMP - using 1e-10.
(node 1) numerical troubles in LP 15 -- solve again with dual simplex without scaling
(node 1) numerical troubles in LP 16 -- solve again with dual simplex without presolving
(node 1) numerical troubles in LP 17 -- solve again from scratch with dual simplex
(node 1) numerical troubles in LP 18 -- solve again from scratch with primal simplex
(node 1) numerical troubles in LP 19 -- solve again from scratch with primal simplex without scaling
(node 1) numerical troubles in LP 20 -- solve again from scratch with primal simplex without presolving
(node 1) numerical troubles in LP 21 -- unresolved
(node 1) unresolved numerical troubles in LP 21 -- using pseudo solution instead (loop 1)
  3.0s|     1 |     2 | 54653 |     - |    39M |   0 |1426 | 590 | 576 |   5 |  2 |  19 |   0 | 2.429554e+00 |      --      |    Inf | unknown
(node 2) numerical troubles in LP 22 -- solve again with dual simplex without scaling
(node 2) numerical troubles in LP 23 -- solve again with dual simplex without presolving
(node 3) solution of LP 25 not optimal (pfeas=0, dfeas=0) -- solving again with tighter feasibility tolerance
Cannot set feasibility tolerance to small value 1e-12 without GMP - using 1e-10.
(node 3) numerical troubles in LP 26 -- solve again with dual simplex without scaling
(node 3) numerical troubles in LP 27 -- solve again with dual simplex without presolving
(node 3) numerical troubles in LP 28 -- solve again from scratch with dual simplex
(node 3) numerical troubles in LP 29 -- solve again from scratch with primal simplex
(node 3) numerical troubles in LP 30 -- solve again from scratch with primal simplex without scaling
(node 3) numerical troubles in LP 31 -- solve again from scratch with primal simplex without presolving
(node 3) numerical troubles in LP 32 -- unresolved
(node 3) unresolved numerical troubles in LP 32 -- using pseudo solution instead (loop 1)
(node 5) numerical troubles in LP 33 -- solve again with dual simplex without scaling
(node 5) numerical troubles in LP 34 -- solve again with dual simplex without presolving
(node 5) solution of LP 35 not optimal (pfeas=0, dfeas=0) -- solving again with tighter feasibility tolerance
Cannot set feasibility tolerance to small value 1e-12 without GMP - using 1e-10.
(node 5) numerical troubles in LP 36 -- solve again with dual simplex without scaling
(node 5) numerical troubles in LP 37 -- solve again with dual simplex without presolving
(node 5) numerical troubles in LP 38 -- solve again from scratch with dual simplex
(node 5) numerical troubles in LP 39 -- solve again from scratch with primal simplex
(node 5) numerical troubles in LP 40 -- solve again from scratch with primal simplex without scaling
(node 5) numerical troubles in LP 41 -- solve again from scratch with primal simplex without presolving
(node 5) numerical troubles in LP 42 -- unresolved
(node 5) unresolved numerical troubles in LP 42 -- using pseudo solution instead (loop 1)
(node 7) numerical troubles in LP 43 -- solve again with dual simplex without scaling
(node 7) numerical troubles in LP 44 -- solve again with dual simplex without presolving
(node 7) solution of LP 45 not optimal (pfeas=0, dfeas=0) -- solving again with tighter feasibility tolerance
Cannot set feasibility tolerance to small value 1e-12 without GMP - using 1e-10.
(node 7) numerical troubles in LP 46 -- solve again with dual simplex without scaling
(node 7) numerical troubles in LP 47 -- solve again with dual simplex without presolving
(node 7) numerical troubles in LP 48 -- solve again from scratch with dual simplex
(node 7) numerical troubles in LP 49 -- solve again from scratch with primal simplex
(node 7) numerical troubles in LP 50 -- solve again from scratch with primal simplex without scaling
(node 7) numerical troubles in LP 51 -- solve again from scratch with primal simplex without presolving
(node 7) numerical troubles in LP 52 -- unresolved
(node 7) unresolved numerical troubles in LP 52 -- using pseudo solution instead (loop 1)
(node 11) numerical troubles in LP 55 -- solve again with dual simplex without scaling
(node 11) solution of LP 56 not optimal (pfeas=0, dfeas=0) -- solving again with tighter feasibility tolerance
Cannot set feasibility tolerance to small value 1e-12 without GMP - using 1e-10.
(node 11) numerical troubles in LP 56 -- solve again with dual simplex without scaling
(node 11) numerical troubles in LP 56 -- solve again with dual simplex without presolving
(node 11) numerical troubles in LP 56 -- solve again from scratch with dual simplex
(node 11) solution of LP 56 not optimal (pfeas=1, dfeas=0) -- solving again with tighter feasibility tolerance
(node 11) numerical troubles in LP 56 -- solve again with dual simplex without scaling
(node 11) solution of LP 56 not optimal (pfeas=0, dfeas=1) -- solving again with tighter feasibility tolerance
Cannot set feasibility tolerance to small value 1e-12 without GMP - using 1e-10.
* 5.2s|    11 |     2 | 91552 |3799.0 |strongbr|   5 |1426 | 585 | 576 |   5 |  1 | 915 |   2 | 2.429554e+00 | 7.917452e+00 | 225.88%|  34.38%
(node 11) solution of LP 57 not optimal (pfeas=1, dfeas=0) -- solving again with tighter feasibility tolerance
(node 11) numerical troubles in LP 58 -- solve again with dual simplex without scaling
(node 11) solution of LP 59 not optimal (pfeas=0, dfeas=1) -- solving again with tighter feasibility tolerance
Cannot set feasibility tolerance to small value 1e-12 without GMP - using 1e-10.
(node 11) numerical troubles in LP 60 -- solve again with dual simplex without scaling
(node 11) numerical troubles in LP 61 -- solve again with dual simplex without presolving
(node 11) numerical troubles in LP 62 -- solve again from scratch with dual simplex
(node 11) numerical troubles in LP 63 -- solve again from scratch with primal simplex
(node 11) numerical troubles in LP 64 -- solve again from scratch with primal simplex without scaling
(node 11) numerical troubles in LP 65 -- solve again from scratch with primal simplex without presolving
(node 11) numerical troubles in LP 66 -- unresolved
(node 11) unresolved numerical troubles while resolving LP 66 after probing
(node 13) solution of LP 68 not optimal (pfeas=0, dfeas=0) -- solving again with tighter feasibility tolerance
Cannot set feasibility tolerance to small value 1e-12 without GMP - using 1e-10.
(node 13) numerical troubles in LP 69 -- solve again with dual simplex without scaling
(node 13) numerical troubles in LP 70 -- solve again with dual simplex without presolving
(node 13) numerical troubles in LP 71 -- solve again from scratch with dual simplex
(node 13) numerical troubles in LP 72 -- solve again from scratch with primal simplex
(node 13) numerical troubles in LP 73 -- solve again from scratch with primal simplex without scaling
(node 13) numerical troubles in LP 74 -- solve again from scratch with primal simplex without presolving
(node 13) numerical troubles in LP 75 -- unresolved
(node 13) unresolved numerical troubles in LP 75 -- using pseudo solution instead (loop 1)
(node 14) solution of LP 76 not optimal (pfeas=0, dfeas=0) -- solving again with tighter feasibility tolerance
Cannot set feasibility tolerance to small value 1e-12 without GMP - using 1e-10.
(node 14) numerical troubles in LP 77 -- solve again with dual simplex without scaling
(node 14) numerical troubles in LP 78 -- solve again with dual simplex without presolving
(node 14) numerical troubles in LP 79 -- solve again from scratch with dual simplex
(node 14) numerical troubles in LP 80 -- solve again from scratch with primal simplex
(node 14) numerical troubles in LP 81 -- solve again from scratch with primal simplex without scaling
(node 14) numerical troubles in LP 82 -- solve again from scratch with primal simplex without presolving
(node 14) numerical troubles in LP 83 -- unresolved
(node 14) unresolved numerical troubles in LP 83 -- using pseudo solution instead (loop 1)
(node 15) solution of LP 84 not optimal (pfeas=0, dfeas=0) -- solving again with tighter feasibility tolerance
Cannot set feasibility tolerance to small value 1e-12 without GMP - using 1e-10.
(node 15) numerical troubles in LP 85 -- solve again with dual simplex without scaling
(node 15) numerical troubles in LP 86 -- solve again with dual simplex without presolving
(node 15) numerical troubles in LP 87 -- solve again from scratch with dual simplex
(node 15) numerical troubles in LP 88 -- solve again from scratch with primal simplex
(node 15) numerical troubles in LP 89 -- solve again from scratch with primal simplex without scaling
(node 15) numerical troubles in LP 90 -- solve again from scratch with primal simplex without presolving
(node 15) numerical troubles in LP 91 -- unresolved
(node 15) unresolved numerical troubles in LP 91 -- using pseudo solution instead (loop 1)
(node 16) solution of LP 92 not optimal (pfeas=0, dfeas=0) -- solving again with tighter feasibility tolerance
Cannot set feasibility tolerance to small value 1e-12 without GMP - using 1e-10.
(node 16) numerical troubles in LP 93 -- solve again with dual simplex without scaling
(node 16) numerical troubles in LP 94 -- solve again with dual simplex without presolving
(node 16) numerical troubles in LP 95 -- solve again from scratch with dual simplex
(node 16) numerical troubles in LP 96 -- solve again from scratch with primal simplex
(node 16) numerical troubles in LP 97 -- solve again from scratch with primal simplex without scaling
(node 16) numerical troubles in LP 98 -- solve again from scratch with primal simplex without presolving
(node 16) proof of infeasible LP 99 not valid -- solving again from scratch
(node 16) numerical troubles in LP 100 -- solve again with dual simplex without scaling
(node 16) numerical troubles in LP 101 -- solve again with dual simplex without presolving
(node 16) numerical troubles in LP 102 -- solve again from scratch with primal simplex
(node 16) numerical troubles in LP 103 -- solve again from scratch with primal simplex without scaling
(node 16) numerical troubles in LP 104 -- solve again from scratch with primal simplex without presolving
(node 16) numerical troubles in LP 105 -- unresolved
(node 16) unresolved numerical troubles in LP 105 -- using pseudo solution instead (loop 1)
(node 17) solution of LP 106 not optimal (pfeas=0, dfeas=0) -- solving again with tighter feasibility tolerance
Cannot set feasibility tolerance to small value 1e-12 without GMP - using 1e-10.
(node 17) numerical troubles in LP 107 -- solve again with dual simplex without scaling
(node 17) numerical troubles in LP 108 -- solve again with dual simplex without presolving
(node 17) numerical troubles in LP 109 -- solve again from scratch with dual simplex
(node 17) numerical troubles in LP 110 -- solve again from scratch with primal simplex
(node 17) numerical troubles in LP 111 -- solve again from scratch with primal simplex without scaling
(node 17) numerical troubles in LP 112 -- solve again from scratch with primal simplex without presolving
(node 17) numerical troubles in LP 113 -- unresolved
(node 17) unresolved numerical troubles in LP 113 -- using pseudo solution instead (loop 1)
(node 18) numerical troubles in LP 114 -- solve again with dual simplex without scaling
(node 18) numerical troubles in LP 115 -- solve again with dual simplex without presolving
(node 18) solution of LP 116 not optimal (pfeas=0, dfeas=0) -- solving again with tighter feasibility tolerance
Cannot set feasibility tolerance to small value 1e-12 without GMP - using 1e-10.
(node 18) numerical troubles in LP 117 -- solve again with dual simplex without scaling
(node 18) numerical troubles in LP 118 -- solve again with dual simplex without presolving
(node 18) numerical troubles in LP 119 -- solve again from scratch with dual simplex
(node 18) numerical troubles in LP 120 -- solve again from scratch with primal simplex
(node 18) numerical troubles in LP 121 -- solve again from scratch with primal simplex without scaling
(node 18) numerical troubles in LP 122 -- solve again from scratch with primal simplex without presolving
(node 18) numerical troubles in LP 123 -- unresolved
(node 18) unresolved numerical troubles in LP 123 -- using pseudo solution instead (loop 1)
(node 20) solution of LP 124 not optimal (pfeas=0, dfeas=0) -- solving again with tighter feasibility tolerance
Cannot set feasibility tolerance to small value 1e-12 without GMP - using 1e-10.
(node 20) numerical troubles in LP 125 -- solve again with dual simplex without scaling
(node 20) numerical troubles in LP 126 -- solve again with dual simplex without presolving
(node 20) numerical troubles in LP 127 -- solve again from scratch with dual simplex
(node 20) numerical troubles in LP 128 -- solve again from scratch with primal simplex
(node 20) numerical troubles in LP 129 -- solve again from scratch with primal simplex without scaling
(node 20) numerical troubles in LP 130 -- solve again from scratch with primal simplex without presolving
(node 20) numerical troubles in LP 131 -- unresolved
(node 20) unresolved numerical troubles in LP 131 -- using pseudo solution instead (loop 1)
(node 22) solution of LP 132 not optimal (pfeas=0, dfeas=0) -- solving again with tighter feasibility tolerance
Cannot set feasibility tolerance to small value 1e-12 without GMP - using 1e-10.
(node 22) numerical troubles in LP 133 -- solve again with dual simplex without scaling
(node 22) numerical troubles in LP 134 -- solve again with dual simplex without presolving
(node 22) numerical troubles in LP 135 -- solve again from scratch with dual simplex
(node 22) numerical troubles in LP 136 -- solve again from scratch with primal simplex
(node 22) numerical troubles in LP 137 -- solve again from scratch with primal simplex without scaling
(node 22) numerical troubles in LP 138 -- solve again from scratch with primal simplex without presolving
(node 22) numerical troubles in LP 139 -- unresolved
(node 22) unresolved numerical troubles in LP 139 -- using pseudo solution instead (loop 1)
(node 24) numerical troubles in LP 140 -- solve again with dual simplex without scaling
(node 24) numerical troubles in LP 141 -- solve again with dual simplex without presolving
(node 24) solution of LP 142 not optimal (pfeas=0, dfeas=0) -- solving again with tighter feasibility tolerance
Cannot set feasibility tolerance to small value 1e-12 without GMP - using 1e-10.
(node 24) numerical troubles in LP 143 -- solve again with dual simplex without scaling
(node 24) numerical troubles in LP 144 -- solve again with dual simplex without presolving
(node 24) numerical troubles in LP 145 -- solve again from scratch with dual simplex
(node 24) numerical troubles in LP 146 -- solve again from scratch with primal simplex
(node 24) numerical troubles in LP 147 -- solve again from scratch with primal simplex without scaling
(node 24) numerical troubles in LP 148 -- solve again from scratch with primal simplex without presolving
(node 24) numerical troubles in LP 149 -- unresolved
(node 24) unresolved numerical troubles in LP 149 -- using pseudo solution instead (loop 1)
(node 26) solution of LP 150 not optimal (pfeas=0, dfeas=0) -- solving again with tighter feasibility tolerance
Cannot set feasibility tolerance to small value 1e-12 without GMP - using 1e-10.
(node 26) numerical troubles in LP 151 -- solve again with dual simplex without scaling
(node 26) numerical troubles in LP 152 -- solve again with dual simplex without presolving
(node 26) numerical troubles in LP 153 -- solve again from scratch with dual simplex
(node 26) numerical troubles in LP 154 -- solve again from scratch with primal simplex
(node 26) numerical troubles in LP 155 -- solve again from scratch with primal simplex without scaling
(node 26) numerical troubles in LP 156 -- solve again from scratch with primal simplex without presolving
(node 26) numerical troubles in LP 157 -- unresolved
(node 26) unresolved numerical troubles in LP 157 -- using pseudo solution instead (loop 1)
(node 28) numerical troubles in LP 158 -- solve again with dual simplex without scaling
(node 28) numerical troubles in LP 159 -- solve again with dual simplex without presolving
(node 28) solution of LP 160 not optimal (pfeas=0, dfeas=0) -- solving again with tighter feasibility tolerance
Cannot set feasibility tolerance to small value 1e-12 without GMP - using 1e-10.
(node 28) numerical troubles in LP 161 -- solve again with dual simplex without scaling
(node 28) numerical troubles in LP 162 -- solve again with dual simplex without presolving
(node 28) numerical troubles in LP 163 -- solve again from scratch with dual simplex
(node 28) numerical troubles in LP 164 -- solve again from scratch with primal simplex
(node 28) numerical troubles in LP 165 -- solve again from scratch with primal simplex without scaling
(node 28) numerical troubles in LP 166 -- solve again from scratch with primal simplex without presolving
(node 28) proof of infeasible LP 167 not valid -- solving again from scratch
(node 28) numerical troubles in LP 168 -- solve again with dual simplex without scaling
(node 28) numerical troubles in LP 169 -- solve again with dual simplex without presolving
(node 28) numerical troubles in LP 170 -- solve again from scratch with primal simplex
(node 28) numerical troubles in LP 171 -- solve again from scratch with primal simplex without scaling
(node 28) numerical troubles in LP 172 -- solve again from scratch with primal simplex without presolving
(node 28) numerical troubles in LP 173 -- unresolved
(node 28) unresolved numerical troubles in LP 173 -- using pseudo solution instead (loop 1)
*13.2s|    29 |     6 |228395 |6244.0 |    LP  |  16 |1426 | 591 | 576 |   5 |  1 | 921 |   3 | 2.567602e+00 | 3.776840e+00 |  47.10%|  54.06%
(node 30) solution of LP 175 not optimal (pfeas=0, dfeas=1) -- solving again with tighter feasibility tolerance
Cannot set feasibility tolerance to small value 1e-12 without GMP - using 1e-10.
(node 30) solution of LP 175 not optimal (pfeas=0, dfeas=0) -- solving again with tighter feasibility tolerance
(node 30) numerical troubles in LP 175 -- solve again with dual simplex without scaling
(node 30) numerical troubles in LP 175 -- solve again with dual simplex without presolving
(node 30) solution of LP 176 not optimal (pfeas=0, dfeas=1) -- solving again with tighter feasibility tolerance
Cannot set feasibility tolerance to small value 1e-12 without GMP - using 1e-10.
(node 30) solution of LP 177 not optimal (pfeas=0, dfeas=0) -- solving again with tighter feasibility tolerance
(node 30) numerical troubles in LP 178 -- solve again with dual simplex without scaling
(node 30) numerical troubles in LP 179 -- solve again with dual simplex without presolving
*13.4s|    30 |     5 |230068 |6086.4 |    LP  |  16 |1426 | 569 | 576 |   5 |  2 | 921 |   5 | 2.567602e+00 | 3.728922e+00 |  45.23%|  54.06%

SCIP Status        : problem is solved [optimal solution found]
Solving Time (sec) : 13.42
Solving Nodes      : 35
Primal Bound       : +3.72892203073302e+00 (3 solutions)
Dual Bound         : +3.72892203073302e+00
Gap                : 0.00 %
-------------------------------------------------------------------------------
                                    Summary                                    
-------------------------------------------------------------------------------
(CVXPY) Mar 29 01:14:17 PM: Problem status: optimal
(CVXPY) Mar 29 01:14:17 PM: Optimal value: 3.729e+00
(CVXPY) Mar 29 01:14:17 PM: Compilation took 5.207e-01 seconds
(CVXPY) Mar 29 01:14:17 PM: Solver (including time spent in interface) took 1.375e+01 seconds
done

@Opt-Mucca
Copy link
Collaborator

Opt-Mucca commented Mar 29, 2024

@xLaszlo There is an error, thanks for diving more into it! I never actually optimised the built model when I checked earlier, as I thought the error should be raised when I set the parameter. It is clear that GMP is just not linked properly. The intention was that GMP had been statically compiled and was also shipped via pip. Thanks for the detailed log output too! That problem definitely counts as numerically difficult.
I will look into this next week. A fix will likely take a week or two, as we'll probably try and put some new features.

For some of your comments above:

  • The unresolved LP error happens when you have numerically challenging problems. I would suggest changing not just the feastol, but also the epsilon tolerances. Such a warning is probably inescapable if the ratio of two numbers gets too high however.
  • The ctrl-c five times is simply how SCIP works. During a run, if you are trying to cancel via ctrl-c you need to enter it five times. I guess this functionality via Python depends on which signal Python sends. It shouldn't be anew functionality however, and has always existed. (Using quit() for instance in Python should not have any issues instantly closing the session).

@mmghannam It is going to be a good time to test the pipeline

@xLaszlo
Copy link
Author

xLaszlo commented Mar 29, 2024

No worries. Thanks for taking a look at this. I must admit this is beyond my knowledge, so I don't think I can be much help.

The only reason I mentioned the ctrl-c is that I didn't remember it happening before. I must admit this is an experimental project, and I am changing the algorithm and switching between solvers, so "Didn't happen before" might mean I just haven't yet used SCIP in that configuration.

I asked ChatGPT how to check if GMP is on the machine, and all checks came back positive.

If you have an update, I'd appreciate a comment here to be notified. Thanks again.

@Opt-Mucca
Copy link
Collaborator

Update: Apparently Boost is a hidden requirement for the extra precision. We're working on packaging it into Linux + Mac builds (Linux is currently working). Will be another week or so though as the build pipelines are failing for Windows.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants