#10043: Complete rewrite of LP solver interfaces
----------------------------------+-----------------------------------------
Reporter: ncohen | Owner: ncohen
Type: enhancement | Status: new
Priority: major | Milestone: sage-4.6
Component: linear programming | Keywords:
Author: Nathann Cohen | Upstream: N/A
Reviewer: | Merged:
Work_issues: |
----------------------------------+-----------------------------------------
Description changed by ncohen:
Old description:
> This (large) patch creates a `backends` directory in the `numerical/`
> folder.
>
> It adds the following files :
>
> * glpk_backend.pyx/pxd
> * coin_backend.pyx/pxd
> * cplex_backend.pyx/pxd
> * generic_backend.pyx/pxd
>
> It removes the following files from `numerical`
>
> * mip_glpk.pyx/pxd
> * mip_coin.pyx/pxd
> * mip_cplex.pyx/pxd
> * osi_interface.pyx/pxd
>
> What for ? There is no a real interface between Sage and all these
> solvers. Not just a "solve"function that does everything at the same
> time. It is now much clearer, much more efficient, and it will be
> faaaaaaaar easier to use solver-specific features. It can now be used
> directly in Cython, and we can now deal with constraint generation (see
> patches XXX and XXX), which is a great news.
>
> I know this patch is huge, and I swear I tried to avoid it by considering
> step-by-step patches, which slowly became a nightmare... The good point
> in all this is that all the LP-related methods are extensively tested
> through all the graph methods, which are very likely to detect the
> important mistakes. I do not doubt there are many left, and I expect this
> patch to be followed by several "fixes" as these new features are being
> used, but.... I hope this review will get us rid of most of them !
>
> Thankssssssssss !!!
>
> Nathann
New description:
This (large) patch creates a `backends` directory in the `numerical/`
folder.
It adds the following files :
* glpk_backend.pyx/pxd
* coin_backend.pyx/pxd
* cplex_backend.pyx/pxd
* generic_backend.pyx/pxd
It removes the following files from `numerical`
* mip_glpk.pyx/pxd
* mip_coin.pyx/pxd
* mip_cplex.pyx/pxd
* osi_interface.pyx/pxd
What for ? There is no a real interface between Sage and all these
solvers. Not just a "solve"function that does everything at the same time.
It is now much clearer, much more efficient, and it will be faaaaaaaar
easier to use solver-specific features. It can now be used directly in
Cython, and we can now deal with constraint generation (see patches XXX
and XXX), which is a great news.
I know this patch is huge, and I swear I tried to avoid it by considering
step-by-step patches, which slowly became a nightmare... The good point in
all this is that all the LP-related methods are extensively tested through
all the graph methods, which are very likely to detect the important
mistakes. I do not doubt there are many left, and I expect this patch to
be followed by several "fixes" as these new features are being used,
but.... I hope this review will get us rid of most of them !
Thankssssssssss !!!
Nathann
(With this patch, there is no need anymore to install CBC in order to use
CPLEX. Just adding the cplex files to include/ and lib/, as indicated at
the end of
http://www.sagemath.org/doc/constructions/linear_programming.html#solvers
and running ``sage -b`` is enough)
--
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/10043#comment:1>
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.