#10879: add optional SCIP integer constraint solver
-------------------------------+--------------------------------------------
Reporter: malb | Owner: tbd
Type: enhancement | Status: needs_work
Priority: major | Milestone: sage-5.0
Component: packages | Keywords: mip, mixed integer programming
Author: Martin Albrecht | Upstream: N/A
Reviewer: | Merged:
Work_issues: |
-------------------------------+--------------------------------------------
Old description:
> "SCIP is currently one of the fastest non-commercial mixed integer
> programming (MIP) solvers. It is also a framework for Constraint Integer
> Programming and branch-cut-and-price. It allows total control of the
> solution process and the access of detailed information down to the guts
> of the solver." -- http://scip.zib.de/
>
> Features interesting to Sage:
>
> * SCIP is pretty fast for Mixed Integer Programming
> * SCIP is a Constraint Integer Programming solver and allows non-linear
> constraints
> * SCIP's source code is available
>
> However, we don't have the right to redistribute the SCIP source code.
> Thus, the attached SPKG is empty except for the spkg-install script etc.
>
> To build a SCIP for Sage do:
> * download the ZIB Optmisation Suite from
> http://zibopt.zib.de/download.php?fname=ziboptsuite-2.0.1.tgz
> * place the files `scip-2.0.1.tgz` and `soplex-1.5.0.tgz` in the `src/`
> subdirectory of the attached SPKG
> * install the SPKG
> * apply the attached patch and `sage -b`
>
> '''KNOWN ISSUES'''
> * Sage crashes when SCIP variables are printed with SIGSEGV on OSX. It
> works fine under Linux.
> * the following doctests fail
> {{{
> sage -t -long -force_lib
> devel/sage/doc/en/thematic_tutorials/linear_programming.rst # 9 doctests
> failed
> sage -t -long -force_lib devel/sage/sage/graphs/digraph.py # 1 doctests
> failed
> sage -t -long -force_lib devel/sage/sage/graphs/graph_coloring.py # 3
> doctests failed
> sage -t -long -force_lib devel/sage/sage/graphs/graph_generators.py # 2
> doctests failed
> sage -t -long -force_lib devel/sage/sage/numerical/knapsack.py # 4
> doctests failed
> sage -t -long -force_lib devel/sage/sage/numerical/mip.pyx # 11
> doctests failed
> sage -t -long -force_lib devel/sage/sage/graphs/generic_graph.py # 18
> doctests failed
> }}}
New description:
"SCIP is currently one of the fastest non-commercial mixed integer
programming (MIP) solvers. It is also a framework for Constraint Integer
Programming and branch-cut-and-price. It allows total control of the
solution process and the access of detailed information down to the guts
of the solver." -- http://scip.zib.de/
Features interesting to Sage:
* SCIP is pretty fast for Mixed Integer Programming
* SCIP is a Constraint Integer Programming solver and allows non-linear
constraints
* SCIP's source code is available
However, we don't have the right to redistribute the SCIP source code.
Thus, the attached SPKG is empty except for the spkg-install script etc.
To build a SCIP for Sage do:
* download the ZIB Optmisation Suite from
http://zibopt.zib.de/download.php?fname=ziboptsuite-2.0.1.tgz
* place the files `scip-2.0.1.tgz` and `soplex-1.5.0.tgz` in the `src/`
subdirectory of the attached SPKG
* install the SPKG
* apply the attached patch and `sage -b`
'''KNOWN ISSUES'''
* Sage crashes when SCIP variables are printed with SIGSEGV on OSX. It
works fine under Linux.
* the following doctests fail
{{{
sage -t -long -force_lib
devel/sage/doc/en/thematic_tutorials/linear_programming.rst # 1 doctests
failed
sage -t -long -force_lib devel/sage/sage/graphs/digraph.py # 1 doctests
failed
sage -t -long -force_lib devel/sage/sage/numerical/mip.pyx # 3 doctests
failed
}}}
* printing of quadratic constraints does not work yet.
--
Comment(by malb):
Thanks to the input of Nathann the number of failed doctests was greatly
reduced.
'''linear_programming.rst'''
This seems to be just another just-as-good solution. Probably, the doctest
should be changed to allow alternative solutions?
{{{
sage -t -long -force_lib
"devel/sage/doc/en/thematic_tutorials/linear_programming.rst"
**********************************************************************
File
"/home/malb/Sage/current/devel/sage/doc/en/thematic_tutorials/linear_programming.rst",
line 366:
sage: [e for e,b in matching.iteritems() if b == 1]
Expected:
[(0, 1), (6, 9), (2, 7), (3, 4), (5, 8)]
Got:
[(1, 6), (0, 4), (2, 3), (5, 8), (7, 9)]
**********************************************************************
}}}
'''digraph.py'''
Is this worrisome?
{{{
sage -t -long -force_lib "devel/sage/sage/graphs/digraph.py"
**********************************************************************
File "/home/malb/Sage/current/devel/sage/sage/graphs/digraph.py", line
1539:
sage: x == y
Expected:
True
Got:
False
**********************************************************************
}}}
'''mip.pyx'''
These are purely cosmetic.
{{{
sage -t -long -force_lib "devel/sage/sage/numerical/mip.pyx"
**********************************************************************
File "/home/malb/Sage/current/devel/sage/sage/numerical/mip.pyx", line
648:
sage: p.solve()
Expected:
0.0
Got:
-0.0
**********************************************************************
File "/home/malb/Sage/current/devel/sage/sage/numerical/mip.pyx", line
1216:
sage: p.get_backend()
Expected:
<sage.numerical.backends.glpk_backend.GLPKBackend object ...>
Got:
SCIP Constraint Integer Program "" ( maximization, 0 variables, 0
constraints )
**********************************************************************
File "/home/malb/Sage/current/devel/sage/sage/numerical/mip.pyx", line
365:
sage: p.show()
Expected:
Maximization:
Hey[1] +Hey[2]
Constraints:
Constraint_1: -3.0 Hey[1] +2.0 Hey[2] <= 2.0
Variables:
Hey[1] is a continuous variable (min=0.0, max=+oo)
Hey[2] is a continuous variable (min=0.0, max=+oo)
Got:
Maximization:
x_0 +x_1
Constraints:
Constraint_1: -3.0 x_0 +2.0 x_1 <= 2.0
Variables:
x_0 is a continuous variable (min=0.0, max=+oo)
x_1 is a continuous variable (min=0.0, max=+oo)
**********************************************************************
}}}
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/10879#comment:5>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.