Opened 5 years ago
Last modified 3 months ago
#21003 needs_work enhancement
Add SCIP backend using PySCIPOpt — at Version 36
Reported by:  mkoeppe  Owned by:  

Priority:  major  Milestone:  sage9.5 
Component:  linear programming  Keywords:  lp, days84, IMAPolyGeom 
Cc:  moritz, yzh, malb  Merged in:  
Authors:  Matthias Koeppe, Moritz Firsching  Reviewers:  
Report Upstream:  N/A  Work issues:  
Branch:  u/moritz/pyscipopt (Commits, GitHub, GitLab)  Commit:  82fd6d6f0ef30160e00a794cb339b78170ef9bf7 
Dependencies:  #22557, #24662  Stopgaps: 
Description (last modified by )
This ticket adds a package pyscipopt and adds a new MIP backend based on it.
https://github.com/SCIPInterfaces/PySCIPOpt
Branch is on top of #24662.
Steps to get it to work:
 pull from this branch
 put http://scip.zib.de/download.php?fname=scipoptsuite5.0.1.tgz in
./upstream
(see #24662)  put PySCIPOpt1.4.4.tar.gz in
./upstream
sage f pyscipopt
Change History (36)
comment:1 Changed 5 years ago by
 Description modified (diff)
comment:2 Changed 5 years ago by
 Dependencies changed from #10879 to #21094
comment:3 Changed 5 years ago by
 Branch set to u/mkoeppe/pyscipopt
comment:4 Changed 5 years ago by
 Commit set to db1b1d9c9de824cb25e614b9b39ee838f7f510ad
comment:5 Changed 5 years ago by
 Commit changed from db1b1d9c9de824cb25e614b9b39ee838f7f510ad to 805a0349170376f392c0b1aff410b554d894a4c1
Branch pushed to git repo; I updated commit sha1. New commits:
805a034  Merge tag '7.4.beta0' into t/21003/pyscipopt

comment:6 Changed 5 years ago by
 Commit changed from 805a0349170376f392c0b1aff410b554d894a4c1 to d3271c0e047c6ead45eb7330101db1e2b1c0843f
comment:7 Changed 5 years ago by
 Cc moritz added
comment:8 Changed 5 years ago by
 Commit changed from d3271c0e047c6ead45eb7330101db1e2b1c0843f to 41b70bb400d4a0142f5bbf6ff64756868f4383a5
Branch pushed to git repo; I updated commit sha1. New commits:
41b70bb  PySCIPOpt: Install from git

comment:9 Changed 5 years ago by
 Description modified (diff)
 Milestone changed from sage7.3 to sage7.6
comment:10 Changed 5 years ago by
 Keywords days84 added
comment:11 Changed 5 years ago by
comment:12 Changed 5 years ago by
 Commit changed from 41b70bb400d4a0142f5bbf6ff64756868f4383a5 to d973980c8bea05015dbcc4e28121f77de30eb6a2
comment:13 Changed 5 years ago by
 Dependencies changed from #21094 to #22557
 Description modified (diff)
comment:14 Changed 5 years ago by
 Commit changed from d973980c8bea05015dbcc4e28121f77de30eb6a2 to 9794b3ae7c7b836ddff0e419aaf8a369d0ec76dc
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
ccf5e37  Update patches and script for 4.0.0

75fb34c  Use OPT=opt on Linux. Check results of test suite

74f1d79  scip: Working configuration for clang on Mac

0f37658  scipoptsuite: Use clang on Mac OS

607a51c  Add SCIP backend (stubs only)

05a723f  New pip package pyscipopt

74a2875  PySCIPOpt: Install from git

b433c65  pyscipopt: Use real upstream git

9794b3a  SCIPBackend: First step

comment:15 Changed 5 years ago by
 Cc yzh added
comment:16 Changed 4 years ago by
 Dependencies changed from #22557 to #22557, #24662
comment:17 Changed 4 years ago by
 Branch changed from u/mkoeppe/pyscipopt to u/moritz/pyscipopt
comment:18 Changed 4 years ago by
 Commit changed from 9794b3ae7c7b836ddff0e419aaf8a369d0ec76dc to f260221f94bcfeada17fa4836303e8dd57fbd4f7
This (hopefully) works now, after putting PySCIPOpt1.4.0.tar.gz into upstream, which can be found here:
*UPDATE* (from a later edit): now you need to put PySCIPOpt1.4.2.tar.gz https://pypi.python.org/packages/c0/b6/b619a33cd90dbf5579de341c873f85f0388030c47ee5da71a9113ee308d4/PySCIPOpt1.4.2.tar.gz#md5=4f175316bc3ba4ce97c284434a4b62f0
*UPDATE* (from yet a later edit): Check the description of the ticket for the latest version!
Last 10 new commits:
966aeb9  compiling with cmake

057a2c7  add dependency info

f4a061e  use cmake sage package; make output verbose

b86cf01  scipoptsuite: Add patch for using libhistory (needed for Mac OS X)

e94b94e  improving the check

6cce2c7  Add SCIP backend (stubs only)

4eb6e95  New pip package pyscipopt

fbe8e62  PySCIPOpt: Install from git

9c8d7c6  pyscipopt: Use real upstream git

f260221  SCIPBackend: First step

comment:19 Changed 4 years ago by
 Commit changed from f260221f94bcfeada17fa4836303e8dd57fbd4f7 to 8fdae7c429e4814f15fa13bf9ff9b7699586c9a9
Branch pushed to git repo; I updated commit sha1. New commits:
8fdae7c  new version 1.4.0

comment:20 Changed 4 years ago by
 Commit changed from 8fdae7c429e4814f15fa13bf9ff9b7699586c9a9 to 1958470beb6fecca8d71ebd7fbf1dfcf452f7cb9
Branch pushed to git repo; I updated commit sha1. New commits:
1958470  added SPKG.txt

comment:21 Changed 4 years ago by
 Commit changed from 1958470beb6fecca8d71ebd7fbf1dfcf452f7cb9 to 6ebdc937ef5033d45dc7a6107d02c0be56b8970e
comment:22 Changed 4 years ago by
comment:23 Changed 4 years ago by
 Keywords IMAPolyGeom added
 Milestone changed from sage7.6 to sage8.2
comment:24 Changed 4 years ago by
 Commit changed from 6ebdc937ef5033d45dc7a6107d02c0be56b8970e to 1eb34120be1864103d24c7a057e8e30101f6d822
Branch pushed to git repo; I updated commit sha1. New commits:
1eb3412  almost all doctests working, some pyscipopt patches

comment:25 Changed 4 years ago by
 Description modified (diff)
comment:26 Changed 4 years ago by
 Commit changed from 1eb34120be1864103d24c7a057e8e30101f6d822 to a586569de8a5b864cdd5dc431eb61b05825d6dd4
comment:27 Changed 4 years ago by
 Status changed from new to needs_review
In this version, there are a number of patches in the patches
directory. All of them will be merged upstream in a version of pyscipopt with version number >=1.4.3, which should be available on Pypi not too long from now. I will update the pyscipopt package then.
comment:28 Changed 4 years ago by
 Cc malb added
comment:29 Changed 4 years ago by
 Branch changed from u/moritz/pyscipopt to u/mkoeppe/pyscipopt
comment:30 Changed 4 years ago by
 Commit changed from a586569de8a5b864cdd5dc431eb61b05825d6dd4 to 080bc9037c475123d4ed1428150d740d64480001
I merged latest #24662.
All doctests need to be marked # optional  pyscipopt
New commits:
f4ad108  put readline as depency

8b20290  scipoptsuite: Update patch to remove cmake warning

f25f900  scipoptsuite: Set GMP_DIR so that we do not catch /usr/local/include

d49ff94  scipoptsuite: Add patch: ZIMPL cmake scripts: Put ZIMPL includes first to avoid clash of idxset.h with install soplex idxset.h

d7e29d5  scipoptsuite: Fix install name for libscip on Mac

737e606  Make bliss and MP_LIBRARY dependencies, cmake orderonly dependency

080bc90  Merge branch 't/24662/public/scipoptsuite' into t/21003/pyscipopt

comment:32 Changed 4 years ago by
in the meantime its version 1.4.4: I am on it...
comment:33 Changed 4 years ago by
 Branch changed from u/mkoeppe/pyscipopt to u/moritz/pyscipopt
comment:34 Changed 4 years ago by
 Commit changed from 080bc9037c475123d4ed1428150d740d64480001 to 82fd6d6f0ef30160e00a794cb339b78170ef9bf7
I marked all doctest optional
and updated.
Suddenly, one doctest doesn't work anymore:
sage: g = graphs.CubeGraph(9) sage: p = MixedIntegerLinearProgram(solver = "SCIP") # optional  pyscipopt sage: b = p.new_variable(binary=True) # optional  pyscipopt sage: p.set_objective(p.sum(b[v] for v in g)) # optional  pyscipopt sage: for v in g: # optional  pyscipopt ....: p.add_constraint(b[v]+p.sum(b[u] for u in g.neighbors(v)) <= 1) # optional  pyscipopt sage: p.add_constraint(b[v] == 1) # Force an easy non0 solution # optional  pyscipopt sage: p.solver_parameter("limits/absgap", 100) # optional  pyscipopt sage: p.solve() # rel tol 100 # optional  pyscipopt
and totaly chrashes sage with an error message free(): invalid pointer
. I don't quite know what is going on.
What is really weird is that it works if I don't run the last line, but instead:
sage: q = copy(p) sage: q.solver_parameter("limits/absgap", 100) sage: q.solve() 0
(I temperarily change 9
to 4
in the doctest above, in order to be able to run the rest of the doctest. The current branch works without failures for me.)
Last 10 new commits:
0544b25  almost all doctests working, some pyscipopt patches

c774d7e  getParam and setParam working

41f641b  all methods implemented in backend; all doctests working

c10594c  one more patch

c7eee88  pyscipopt: update to v1.4.3

a054b24  pyscipopt: update to v1.4.4

3e5621a  scipbackend: added '# optional  pyscipopt'

52b98d0  Make bliss and MP_LIBRARY dependencies, cmake orderonly dependency

f217970  quicksum and modify doctests

82fd6d6  remove all patches

comment:35 Changed 4 years ago by
... the nice thing: all my patches have been merged by a very responsive upstream!
comment:36 Changed 4 years ago by
 Description modified (diff)
Branch pushed to git repo; I updated commit sha1. New commits:
Pacth SCIP Makefile more to get library dependencies right
Fixup
Fixup
Merge branch 't/21094/sage_package_for_scip_integer_programming_solver' into t/21003/pyscipopt