Changes between Version 72 and Version 74 of Ticket #26511


Ignore:
Timestamp:
03/21/22 18:43:29 (5 months ago)
Author:
mkoeppe
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #26511 – Description

    v72 v74  
    44 - provide an entry point for [https://wiki.sagemath.org/GSoC/2022 GSoC 2022 projects]
    55
    6 '''Status quo in Sage:'''
     6== SageMath status quo: Front end ==
    77 - Frontend class [https://doc.sagemath.org/html/en/reference/numerical/sage/numerical/mip.html#sage.numerical.mip.MixedIntegerLinearProgram MixedIntegerLinearProgram]
    88     - mutable (can call `add_constraint`, `set_integer`, `new_variable` etc. and then re-solve)
     
    1111     - [https://doc.sagemath.org/html/en/reference/numerical/sage/numerical/mip.html#sage.numerical.mip.MIPVariable MIPVariable] - indexed by arbitrary objects
    1212     - 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)
     13
     14== SageMath status quo: Back ends ==
     15
    1316 - [https://github.com/sagemath/sage/tree/develop/src/sage/numerical/backends In-tree backends], using Cython, with varying degrees of implementation quality
    1417     - GLPK backend - complete, includes support for tableau data and GLPK's exact rational mode
     
    2225 - Optimization interface is maintained by a very small part of the Sage developer community
    2326
    24 '''Tickets:'''
     27== SageMath tickets and tasks ==
    2528
    2629 - #28175 Move sage optimization backends to separate Cython packages to remove `OptionalExtension` problems
     
    3942Related:
    4043 - #20302 Meta-ticket: Improvements to `MixedIntegerLinearProgram`, its backends, and `InteractiveLinearProgram`
    41 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 
    42 
    43 References:
    44 
    45 '''Key Python software (solver-independent):'''
    4644
    4745
     46== Key Python software (solver-independent) ==
    4847
    4948'''cvxpy''' - #31962
     49 - permissive open source license: Apache 2.0
    5050 - use CBC via '''cylp'''
    5151 - experimental CBC interface via '''python-mip''' - https://github.com/cvxpy/cvxpy/issues/1265, https://pypi.org/project/mip-cvxpy/
     
    5555'''or-tools''' - #33493
    5656
    57 https://github.com/KarrLab/conv_opt
     57'''conv_opt''' - https://github.com/KarrLab/conv_opt
    5858 - MIT license
    59  - Cbc, CVXOPT, FICO XPRESS, GLPK, Gurobi, IBM CPLEX, MINOS, Mosek, quadprog, SciPy, and SoPlex.
     59 - Cbc, CVXOPT, FICO XPRESS, GLPK, Gurobi, IBM CPLEX, MINOS, Mosek, quadprog, !SciPy, and !SoPlex.
    6060
    61 '''PuLP'''
    62  - https://github.com/coin-or/pulp
     61'''PuLP''' - https://github.com/coin-or/pulp
     62 - permissive open source license (BSD?)
    6363 - Installation with `sage -pip install pulp` works
    6464- Frontend: a basic modeling system
     
    7373
    7474'''Pyomo'''
     75- permissive open source license: BSD
    7576- http://www.pyomo.org/
    7677- installation with `sage -pip install pyomo` works
     
    9798- https://pypi.org/project/PICOS/
    9899
    99 '''Key Python software (solver-dependent):'''
     100
     101== C, C++ solver abstractions ==
     102
     103'''or-tools''' (#33493) `​linear_solver` wrapper
     104- supporting CLP, CBC, GLPK, Gurobi, SCIP, XPRESS
     105- permissive open source license: Apache 2.0
     106
     107'''COIN-OR OSI'''
     108- '''incompatible copyleft license''': Eclipse Public License 2.0
     109
     110
     111== Key Python software (solver-dependent) ==
    100112
    101113'''scipy.optimize'''
     
    103115 - #32282 Add LP solver backends for HiGHS via scipy.optimize.linprog
    104116
    105 '''GLPK'''
     117Interfaces to '''GLPK'''
    106118- it looks like ​https://github.com/biosustain/swiglpk/releases is the best maintained. Excluding sage and cvxopt.
    107119- see https://en.wikibooks.org/wiki/GLPK/Python for a list of other glpk bindings
     
    126138- #21003
    127139
    128 '''Other relevant software'''
     140== Other relevant software ==
    129141
    130142- PaPILO: Parallel Presolve for Integer and Linear Optimization (https://github.com/scipopt/papilo/) - LGPL license, C++ library; used in SCIP
    131143
    132 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 
    133 
    134 '''Possible integration routes via Julia'''
     144== Possible integration routes via Julia ==
    135145
    136146- `MathOptInterface` - https://arxiv.org/pdf/2002.03447.pdf
    137 
    138 
    139