Changes between Version 62 and Version 63 of Ticket #26511


Ignore:
Timestamp:
03/14/22 16:23:16 (5 months ago)
Author:
mkoeppe
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #26511 – Description

    v62 v63  
    11The purpose of this ticket is to
    2  - connect SageMath to interfaces to optimization solvers that are maintained outside of the Sage project,
     2 - connect !SageMath to interfaces to optimization solvers that are maintained outside of the Sage project,
    33 - integrate the related developer and user communities.
    44
    55'''Status quo in Sage:'''
    6  - Frontend class `MixedIntegerLinearProgram`
     6 - Frontend class [https://doc.sagemath.org/html/en/reference/numerical/sage/numerical/mip.html#sage.numerical.mip.MixedIntegerLinearProgram MixedIntegerLinearProgram]
    77     - mutable (can call `add_constraint`, `set_integer`, `new_variable` etc. and then re-solve)
    8      - solver-independent and solver-specific parameters (solver_parameter)
    9      - widely used in Sage code
    10      - `MIPVariable` - indexed by arbitrary objects
    11      - some connections to Polyhedron class and to InteractiveLPProblem (didactical code)
    12  - Backends, using Cython, with varying degrees of implementation quality
     8     - solver-independent and solver-specific parameters (`solver_parameter`)
     9     - widely used in Sage library code for `sage.graphs`, `sage.coding`, `sage.combinat`, ...
     10     - [https://doc.sagemath.org/html/en/reference/numerical/sage/numerical/mip.html#sage.numerical.mip.MIPVariable MIPVariable] - indexed by arbitrary objects
     11     - some connections to [https://doc.sagemath.org/html/en/reference/discrete_geometry/index.html#polyhedral-computations Polyhedron] class and to [https://doc.sagemath.org/html/en/reference/numerical/sage/numerical/interactive_simplex_method.html InteractiveLPProblem] (didactical code)
     12 - [https://github.com/sagemath/sage/tree/develop/src/sage/numerical/backends In-tree backends], using Cython, with varying degrees of implementation quality
    1313     - GLPK backend - complete, includes support for tableau data and GLPK's exact rational mode
    14      - COIN backend - very basic, no support for setting solver parameters such as time limit
    15      - CPLEX backend, Gurobi backend, CVXOPT backend, PPL backend
    1614     - InteractiveLP backend - basic, provide LP only for algebraic LPs
     15     - CVXOPT backend
     16     - PPL backend - exact solver
     17 - Separate distribution packages for optional packages (proprietary solvers, open-source solvers with incompatible licenses)
     18     - https://github.com/sagemath/sage-numerical-backends-coin: COIN backend (CBC) - very basic, no support for setting solver parameters such as time limit
     19     - https://github.com/sagemath/sage-numerical-backends-cplex: CPLEX backend
     20     - https://github.com/sagemath/sage-numerical-backends-gurobi: Gurobi backend
    1721 - Very small developer community
    1822
     
    7781- https://pypi.org/project/mip/
    7882- https://github.com/coin-or/python-mip
    79 - Eclipse Public License 2.0 (considered '''GPL-incompatible''' https://www.gnu.org/licenses/license-list.en.html#GPLCompatibleLicenses)
     83- Eclipse Public License 2.0 (considered '''GPL'''-incompatible https://www.gnu.org/licenses/license-list.en.html#GPLCompatibleLicenses)
     84- '''requires Python 3.5 or newer'''
    8085
    8186'''PICOS''' - a user friendly Python API to several conic and integer programming solvers, very much like YALMIP or