Changes between Version 72 and Version 74 of Ticket #26511
- Timestamp:
- 03/21/22 18:43:29 (5 months ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Ticket #26511 – Description
v72 v74 4 4 - provide an entry point for [https://wiki.sagemath.org/GSoC/2022 GSoC 2022 projects] 5 5 6 '''Status quo in Sage:''' 6 == SageMath status quo: Front end == 7 7 - Frontend class [https://doc.sagemath.org/html/en/reference/numerical/sage/numerical/mip.html#sage.numerical.mip.MixedIntegerLinearProgram MixedIntegerLinearProgram] 8 8 - mutable (can call `add_constraint`, `set_integer`, `new_variable` etc. and then re-solve) … … 11 11 - [https://doc.sagemath.org/html/en/reference/numerical/sage/numerical/mip.html#sage.numerical.mip.MIPVariable MIPVariable] - indexed by arbitrary objects 12 12 - 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 13 16 - [https://github.com/sagemath/sage/tree/develop/src/sage/numerical/backends In-tree backends], using Cython, with varying degrees of implementation quality 14 17 - GLPK backend - complete, includes support for tableau data and GLPK's exact rational mode … … 22 25 - Optimization interface is maintained by a very small part of the Sage developer community 23 26 24 '''Tickets:''' 27 == SageMath tickets and tasks == 25 28 26 29 - #28175 Move sage optimization backends to separate Cython packages to remove `OptionalExtension` problems … … 39 42 Related: 40 43 - #20302 Meta-ticket: Improvements to `MixedIntegerLinearProgram`, its backends, and `InteractiveLinearProgram` 41 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42 43 References:44 45 '''Key Python software (solver-independent):'''46 44 47 45 46 == Key Python software (solver-independent) == 48 47 49 48 '''cvxpy''' - #31962 49 - permissive open source license: Apache 2.0 50 50 - use CBC via '''cylp''' 51 51 - experimental CBC interface via '''python-mip''' - https://github.com/cvxpy/cvxpy/issues/1265, https://pypi.org/project/mip-cvxpy/ … … 55 55 '''or-tools''' - #33493 56 56 57 https://github.com/KarrLab/conv_opt57 '''conv_opt''' - https://github.com/KarrLab/conv_opt 58 58 - MIT license 59 - Cbc, CVXOPT, FICO XPRESS, GLPK, Gurobi, IBM CPLEX, MINOS, Mosek, quadprog, SciPy, andSoPlex.59 - Cbc, CVXOPT, FICO XPRESS, GLPK, Gurobi, IBM CPLEX, MINOS, Mosek, quadprog, !SciPy, and !SoPlex. 60 60 61 '''PuLP''' 62 - https://github.com/coin-or/pulp61 '''PuLP''' - https://github.com/coin-or/pulp 62 - permissive open source license (BSD?) 63 63 - Installation with `sage -pip install pulp` works 64 64 - Frontend: a basic modeling system … … 73 73 74 74 '''Pyomo''' 75 - permissive open source license: BSD 75 76 - http://www.pyomo.org/ 76 77 - installation with `sage -pip install pyomo` works … … 97 98 - https://pypi.org/project/PICOS/ 98 99 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) == 100 112 101 113 '''scipy.optimize''' … … 103 115 - #32282 Add LP solver backends for HiGHS via scipy.optimize.linprog 104 116 105 '''GLPK''' 117 Interfaces to '''GLPK''' 106 118 - it looks like https://github.com/biosustain/swiglpk/releases is the best maintained. Excluding sage and cvxopt. 107 119 - see https://en.wikibooks.org/wiki/GLPK/Python for a list of other glpk bindings … … 126 138 - #21003 127 139 128 '''Other relevant software''' 140 == Other relevant software == 129 141 130 142 - PaPILO: Parallel Presolve for Integer and Linear Optimization (https://github.com/scipopt/papilo/) - LGPL license, C++ library; used in SCIP 131 143 132 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 134 '''Possible integration routes via Julia''' 144 == Possible integration routes via Julia == 135 145 136 146 - `MathOptInterface` - https://arxiv.org/pdf/2002.03447.pdf 137 138 139