sagemath / sage

Main repository of SageMath
https://www.sagemath.org
Other
1.3k stars 447 forks source link

Meta-ticket: Improvements to MixedIntegerLinearProgram, its backends, and InteractiveLinearProgram #20302

Open mkoeppe opened 8 years ago

mkoeppe commented 8 years ago

Alternatives:

Proposed packaging change:

Frontend defects:

Frontend improvements:

Backend defects:

Improvements to backends:

Improvements to the backend interface:

Improvements to underlying libraries:

New backends:

Interactions with InteractiveLinearProgram and its dictionaries:

Interactions with polyhedra:

Applications:

SDP, MINLP, Manifolds:

Documentation:

Depends on #20296

CC: @dimpase @videlec @vbraun @jdemeyer @fchapoton @kiwifb @sagetrac-Rudi @novoselt @mo271 @jplab @mmasdeu @kwankyu @sagetrac-tmonteil @mforets @yuan-zhou

Component: numerical

Issue created by migration from https://trac.sagemath.org/ticket/20302

mkoeppe commented 8 years ago

Description changed:

--- 
+++ 
@@ -1,12 +1,13 @@
 Frontend defects:
 - #20304: More error checking in `MixedIntegerLinearProgram`
-- #20462: `MixedIntegerLinearProgram`/`MIPVariable`: `get_min`, `set_min`, `get_max`, `set_max` are broken
-- #20602: `MixedIntegerLinearProgram.gen()` does not do anything useful
-- #20461: Fixes for copying a MIP and its variables
-- #20656: `MixedIntegerLinearProgram`: Remove `_variables` dictionary
 - #13696: process chained equalities with different signs correctly
 - #14540: MILP constraints are silently misunderstood
 - #15159: Segfault after deepcopy of `MixedIntegerLinearProgram`
+- #20461: Fixes for copying a MIP and its variables
+- #20657: More fixes for copying a MIP and the `MIPVariable`s created by `new_variable`
+- #20462: `MixedIntegerLinearProgram`/`MIPVariable`: `get_min`, `set_min`, `get_max`, `set_max` are broken
+- #20656: `MixedIntegerLinearProgram`: Remove `_variables` dictionary
+- #20602: `MixedIntegerLinearProgram.gen()` does not do anything useful

 Frontend wishlist tickets:
 - #20406: `get_solver` should allow passing a function (a solver factory) as the solver argument
mkoeppe commented 8 years ago

Description changed:

--- 
+++ 
@@ -78,6 +78,7 @@
 - #18734: Construct an `interactive_simplex_method.LPDictionary` from a `MixedIntegerLinearProgram`
 - #20311: `interactive_simplex_method` enhancements
 - #20500: `LPAbstractDictionary`: Refactor `leaving_coefficients`, `entering_coefficients` using new methods `row_coefficients`, `column_coefficients`
+- #20559: `InteractiveLPProblem`, dictionaries: `add_constraint` / `add_row` methods
 - #20203: `LPCleanDictionary` - floating-point helper class for interactive simplex method
 - #18804: `LPBackendDictionary` - a debugging view of a MIP backend connected to `interactive_simplex_method`
 - #18805: Add didactical implementation of tableau cutting planes to `interactive_simplex_method`
mkoeppe commented 8 years ago

Description changed:

--- 
+++ 
@@ -12,6 +12,7 @@
 Frontend wishlist tickets:
 - #20406: `get_solver` should allow passing a function (a solver factory) as the solver argument
 - #19523: Raise an error when constraints are added to the wrong MILP
+- #20664: `MixedIntegerLinearProgram`/`MIPVariable` API cleanup
 - #20331: A `MIPVariable`'s repr should include some useful information
 - #18733: `MixedIntegerLinearProgram` should support tableau-query methods
 - #18688: `MixedIntegerLinearProgram` should support basis status getting/setting
mkoeppe commented 8 years ago

Description changed:

--- 
+++ 
@@ -92,6 +92,7 @@
 - #20367: fix integer option and a bug in Delsarte bounds code
 - #20416: Various callers of `MixedIntegerLinearProgram` should accept and pass through a solver argument
 - #20447: Wrong result from `delsarte_bound_additive_hamming_space` with GLPK exact simplex
+- #20766: avoid using maxima simplex algo in `lattice_polytope`

 SDP:
 - #20506: dual variables handling in SDP solver(s)
mkoeppe commented 8 years ago

Description changed:

--- 
+++ 
@@ -13,6 +13,7 @@
 - #20406: `get_solver` should allow passing a function (a solver factory) as the solver argument
 - #19523: Raise an error when constraints are added to the wrong MILP
 - #20664: `MixedIntegerLinearProgram`/`MIPVariable` API cleanup
+- #20773: `MixedIntegerLinearProgram.new_variable` could optionally take a "static" list of component indices
 - #20331: A `MIPVariable`'s repr should include some useful information
 - #18733: `MixedIntegerLinearProgram` should support tableau-query methods
 - #18688: `MixedIntegerLinearProgram` should support basis status getting/setting
mkoeppe commented 8 years ago

Description changed:

--- 
+++ 
@@ -10,6 +10,7 @@
 - #20602: `MixedIntegerLinearProgram.gen()` does not do anything useful

 Frontend wishlist tickets:
+- #7574: clean up of MIP interface
 - #20406: `get_solver` should allow passing a function (a solver factory) as the solver argument
 - #19523: Raise an error when constraints are added to the wrong MILP
 - #20664: `MixedIntegerLinearProgram`/`MIPVariable` API cleanup
mkoeppe commented 8 years ago

Description changed:

--- 
+++ 
@@ -19,6 +19,7 @@
 - #18733: `MixedIntegerLinearProgram` should support tableau-query methods
 - #18688: `MixedIntegerLinearProgram` should support basis status getting/setting
 - #7290: Dual method for linear programs (dup: #13141)
+- #18466: Optimal dual solution of LP from `MixedIntegerLinearProgram`
 - #7300: Display tight constraints
 - #7790: Setting a default max/min bound when calling `MixedIntegerLinearProgram.new_variable`
 - #15356: linear programming enhancements
mkoeppe commented 8 years ago

Description changed:

--- 
+++ 
@@ -83,6 +83,7 @@
 - #20311: `interactive_simplex_method` enhancements
 - #20500: `LPAbstractDictionary`: Refactor `leaving_coefficients`, `entering_coefficients` using new methods `row_coefficients`, `column_coefficients`
 - #20559: `InteractiveLPProblem`, dictionaries: `add_constraint` / `add_row` methods
+- #20874: `LPAbstractDictionary`: Add `objective_name` method
 - #20203: `LPCleanDictionary` - floating-point helper class for interactive simplex method
 - #18804: `LPBackendDictionary` - a debugging view of a MIP backend connected to `interactive_simplex_method`
 - #18805: Add didactical implementation of tableau cutting planes to `interactive_simplex_method`
mkoeppe commented 8 years ago

Description changed:

--- 
+++ 
@@ -60,6 +60,7 @@
 - #19903 crash with `MIP_Problem`
 - #20351: `sage.libs.ppl.MIP_Problem`: Add support for integer variables
 - #19592: PPL Variables cannot be saved
+- #20876: GLPK: glp_exact ignores verbosity level

 New backends:
 - #20296: `MixedIntegerLinearProgram`: New backend using `InteractiveLPProblem`
mkoeppe commented 8 years ago

Description changed:

--- 
+++ 
@@ -4,10 +4,10 @@
 - #14540: MILP constraints are silently misunderstood
 - #15159: Segfault after deepcopy of `MixedIntegerLinearProgram`
 - #20461: Fixes for copying a MIP and its variables
+- #20462: `MixedIntegerLinearProgram`/`MIPVariable`: `get_min`, `set_min`, `get_max`, `set_max` are broken
+- #20602: Deprecate `MixedIntegerLinearProgram.gen()`, `__call__`, `linear_function`, which do not do anything useful; add `default_variable` method
+- #20656: `MixedIntegerLinearProgram`: Remove `_variables` dictionary
 - #20657: More fixes for copying a MIP and the `MIPVariable`s created by `new_variable`
-- #20462: `MixedIntegerLinearProgram`/`MIPVariable`: `get_min`, `set_min`, `get_max`, `set_max` are broken
-- #20656: `MixedIntegerLinearProgram`: Remove `_variables` dictionary
-- #20602: `MixedIntegerLinearProgram.gen()` does not do anything useful

 Frontend wishlist tickets:
 - #7574: clean up of MIP interface
mkoeppe commented 8 years ago

Description changed:

--- 
+++ 
@@ -87,6 +87,7 @@
 - #20874: `LPAbstractDictionary`: Add `objective_name` method
 - #20203: `LPCleanDictionary` - floating-point helper class for interactive simplex method
 - #18804: `LPBackendDictionary` - a debugging view of a MIP backend connected to `interactive_simplex_method`
+- #20570: `InteractiveLPProblem`: refactor `plot` method
 - #18805: Add didactical implementation of tableau cutting planes to `interactive_simplex_method`

 Interactions with polyhedra:
mkoeppe commented 8 years ago

Description changed:

--- 
+++ 
@@ -72,6 +72,7 @@
 - #19219: MILP: Add "CyLP" backend
 - #18862: Interface to COIN `OpenSolverInterface`
 - #10879: add optional SCIP integer constraint solver (dup: #8672)
+- #21003: Add SCIP backend using PySCIPOpt
 - #18766: Add bindings, `MixedIntegerLinearProgram` backend to qsopt_ex, a state-of-the-art exact simplex solver
 - #18765: Add Cython wrappers for GLPK's interface glpssx.h (exact rational simplex)
 - #18847   create an interface to Mosek optimisation software
mkoeppe commented 8 years ago

Description changed:

--- 
+++ 
@@ -76,6 +76,7 @@
 - #18766: Add bindings, `MixedIntegerLinearProgram` backend to qsopt_ex, a state-of-the-art exact simplex solver
 - #18765: Add Cython wrappers for GLPK's interface glpssx.h (exact rational simplex)
 - #18847   create an interface to Mosek optimisation software
+- #21032: MIPCL solver: Add package, MIP backend

 Interactions with `InteractiveLinearProgram` and its dictionaries:
 - #19097: Refactor run_[revised]_simplex_method; add run_dual_[revised]_simplex_method
mkoeppe commented 8 years ago

Description changed:

--- 
+++ 
@@ -77,6 +77,7 @@
 - #18765: Add Cython wrappers for GLPK's interface glpssx.h (exact rational simplex)
 - #18847   create an interface to Mosek optimisation software
 - #21032: MIPCL solver: Add package, MIP backend
+- #8661: add lpsolve spkg

 Interactions with `InteractiveLinearProgram` and its dictionaries:
 - #19097: Refactor run_[revised]_simplex_method; add run_dual_[revised]_simplex_method
mkoeppe commented 8 years ago

Description changed:

--- 
+++ 
@@ -71,6 +71,7 @@
 - #18735: `MixedIntegerLinearProgram`/`HybridBackend`: Reconstruct exact rational/algebraic basic solution
 - #19219: MILP: Add "CyLP" backend
 - #18862: Interface to COIN `OpenSolverInterface`
+- #21094: Sage package for SCIP integer programming solver
 - #10879: add optional SCIP integer constraint solver (dup: #8672)
 - #21003: Add SCIP backend using PySCIPOpt
 - #18766: Add bindings, `MixedIntegerLinearProgram` backend to qsopt_ex, a state-of-the-art exact simplex solver
mkoeppe commented 8 years ago

Description changed:

--- 
+++ 
@@ -61,6 +61,7 @@
 - #20351: `sage.libs.ppl.MIP_Problem`: Add support for integer variables
 - #19592: PPL Variables cannot be saved
 - #20876: GLPK: glp_exact ignores verbosity level
+- #14645: cvxopt 1.1.6.p0 fails to build with SAGE_SPKG_INSTALL_DOCS=yes

 New backends:
 - #20296: `MixedIntegerLinearProgram`: New backend using `InteractiveLPProblem`
mkoeppe commented 7 years ago

Description changed:

--- 
+++ 
@@ -50,11 +50,14 @@
 - #20600: more failing tests related to cplex / gurobi
 - #20360: Add `sig_on`/`sig_off` to COINBackend
 - #20458: GLPKBackend/GLPKExactBackend: Support "glp_simplex followed by glp_exact"
+- #21449: CoinBackend: _test_solve fails on 32-bit

 Improvements to the backend interface:
 - #20337: MIP: Several fixes regarding constant terms in the objective function
 - #20324: MIP backends: Unify `add_col`, `add_variable`
 - #20362: MIP backends: Make variable type consistent between `add_variable`, `set_variable_type` (with deprecation)
+- #21498: Unify/document write_lp, write_mps behavior regarding filenames and problem transformations 
+- #21499: GenericBackend: Add _test_sense method

 Improvements to underlying libraries:
 - #19903 crash with `MIP_Problem`
mkoeppe commented 7 years ago

Description changed:

--- 
+++ 
@@ -51,6 +51,7 @@
 - #20360: Add `sig_on`/`sig_off` to COINBackend
 - #20458: GLPKBackend/GLPKExactBackend: Support "glp_simplex followed by glp_exact"
 - #21449: CoinBackend: _test_solve fails on 32-bit
+- #21550: Fix CoinBackend testsuite (32-bit failure)

 Improvements to the backend interface:
 - #20337: MIP: Several fixes regarding constant terms in the objective function
mkoeppe commented 7 years ago

Description changed:

--- 
+++ 
@@ -52,6 +52,7 @@
 - #20458: GLPKBackend/GLPKExactBackend: Support "glp_simplex followed by glp_exact"
 - #21449: CoinBackend: _test_solve fails on 32-bit
 - #21550: Fix CoinBackend testsuite (32-bit failure)
+- #21563: Add scripts to install Gurobi, Cplex include and lib links in SAGE_LOCAL

 Improvements to the backend interface:
 - #20337: MIP: Several fixes regarding constant terms in the objective function
dimpase commented 7 years ago

Description changed:

--- 
+++ 
@@ -25,6 +25,15 @@
 - #15356: linear programming enhancements
 - #15583: `sage.numerical.linear_functions.LinearConstraint` is not a hashable type

+Backend defects:`
+- #21825: memory leak in `MixedIntegerLinearProgram` coin backend
+- #21449: `CoinBackend`: _test_solve fails on 32-bit
+- #21550: Fix `CoinBackend` testsuite (32-bit failure)
+- #20303: Fixes for `add_variables` in CVXOPT, PPL, GLPK MIP backends and `add_linear_constraints` in CVXOPT
+- #18572: CVXOPT solver equations handling
+- #20600: more failing tests related to cplex / gurobi
+- #20360: Add `sig_on`/`sig_off` to `COINBackend`
+
 Improvements to backends:
 - #18685: Add basis status functions `get_col_stat`, `get_row_stat` to GLPK backend
 - #18732: Add tableau query functions `glp_eval_tab_row`, `glp_eval_tab_col` to GLPK backend
@@ -33,7 +42,6 @@
 - #18764: Add `glp_exact` to Sage's GLPK bindings
 - #19471: COIN backend: More basis status and tableau data functions
 - #19472: GLPK backend: More basis status and tableau data functions
-- #20303: Fixes for `add_variables` in CVXOPT, PPL, GLPK MIP backends and `add_linear_constraints` in CVXOPT
 - #19525: enhancement: Improve GLPK error handling
 - #20332: `CVXOPTBackend`: Set initial `problem_name`
 - #20361: PPL backend re-solves the problem every time `get_variable_value` or `get_objective_value` is called
@@ -42,16 +50,11 @@
 - #20326: `GenericBackend`: Fix doctest of `add_linear_constraint_vector`
 - #20414: Add `copy`/`__copy__` methods to CVXOPT, PPL, InteractiveLP backends
 - #20548: py3 print in numerical folder
-- #18572: CVXOPT solver equations handling
 - #20323: Common `TestSuite` for MIP backends
 - #20424: More tests for common MIP `TestSuite`
 - #20325: `GenericBackend`: Add default implementation of `add_variables` and `add_linear_constraints`
 - #20328: tests related to cplex / gurobi
-- #20600: more failing tests related to cplex / gurobi
-- #20360: Add `sig_on`/`sig_off` to COINBackend
 - #20458: GLPKBackend/GLPKExactBackend: Support "glp_simplex followed by glp_exact"
-- #21449: CoinBackend: _test_solve fails on 32-bit
-- #21550: Fix CoinBackend testsuite (32-bit failure)
 - #21563: Add scripts to install Gurobi, Cplex include and lib links in SAGE_LOCAL

 Improvements to the backend interface:
@@ -59,7 +62,7 @@
 - #20324: MIP backends: Unify `add_col`, `add_variable`
 - #20362: MIP backends: Make variable type consistent between `add_variable`, `set_variable_type` (with deprecation)
 - #21498: Unify/document write_lp, write_mps behavior regarding filenames and problem transformations 
-- #21499: GenericBackend: Add _test_sense method
+- #21499: `GenericBackend`: Add _test_sense method

 Improvements to underlying libraries:
 - #19903 crash with `MIP_Problem`
mkoeppe commented 7 years ago

Description changed:

--- 
+++ 
@@ -70,6 +70,7 @@
 - #19592: PPL Variables cannot be saved
 - #20876: GLPK: glp_exact ignores verbosity level
 - #14645: cvxopt 1.1.6.p0 fails to build with SAGE_SPKG_INSTALL_DOCS=yes
+- #22006: CBC tries to use system's blas at runtime which creates an error

 New backends:
 - #20296: `MixedIntegerLinearProgram`: New backend using `InteractiveLPProblem`
dimpase commented 7 years ago

Description changed:

--- 
+++ 
@@ -71,6 +71,7 @@
 - #20876: GLPK: glp_exact ignores verbosity level
 - #14645: cvxopt 1.1.6.p0 fails to build with SAGE_SPKG_INSTALL_DOCS=yes
 - #22006: CBC tries to use system's blas at runtime which creates an error
+- #22380: update cvxopt to 1.1.9

 New backends:
 - #20296: `MixedIntegerLinearProgram`: New backend using `InteractiveLPProblem`
mkoeppe commented 7 years ago

Description changed:

--- 
+++ 
@@ -117,3 +117,7 @@

 SDP:
 - #20506: dual variables handling in SDP solver(s)
+
+Documentation:
+- #22472: Numerical optimization section of the reference manual needs reorganization
+
kwankyu commented 7 years ago
comment:78

Perhaps I am not that klee that you think I am. My name is Kwankyu Lee.

mkoeppe commented 7 years ago
comment:79

Yes, you wrote ticket #22472 regarding optimization documentation, so I copied you to make sure you are aware of other efforts regarding the optimization code.

kwankyu commented 7 years ago
comment:80

Ok :-)

videlec commented 7 years ago

Description changed:

--- 
+++ 
@@ -56,6 +56,7 @@
 - #20328: tests related to cplex / gurobi
 - #20458: GLPKBackend/GLPKExactBackend: Support "glp_simplex followed by glp_exact"
 - #21563: Add scripts to install Gurobi, Cplex include and lib links in SAGE_LOCAL
+- #23680: package Osi

 Improvements to the backend interface:
 - #20337: MIP: Several fixes regarding constant terms in the objective function
jdemeyer commented 7 years ago

Description changed:

--- 
+++ 
@@ -24,6 +24,7 @@
 - #7790: Setting a default max/min bound when calling `MixedIntegerLinearProgram.new_variable`
 - #15356: linear programming enhancements
 - #15583: `sage.numerical.linear_functions.LinearConstraint` is not a hashable type
+- #23681: Make `_repr_` of MILP more informative

 Backend defects:`
 - #21825: memory leak in `MixedIntegerLinearProgram` coin backend
mkoeppe commented 5 years ago

Description changed:

--- 
+++ 
@@ -25,6 +25,8 @@
 - #15356: linear programming enhancements
 - #15583: `sage.numerical.linear_functions.LinearConstraint` is not a hashable type
 - #23681: Make `_repr_` of MILP more informative
+- #26302: `MixedIntegerLinearProgram` should provide a way to get the variables in the order they are provided to the `polyhedron` method
+

 Backend defects:`
 - #21825: memory leak in `MixedIntegerLinearProgram` coin backend
mkoeppe commented 5 years ago

Description changed:

--- 
+++ 
@@ -26,7 +26,7 @@
 - #15583: `sage.numerical.linear_functions.LinearConstraint` is not a hashable type
 - #23681: Make `_repr_` of MILP more informative
 - #26302: `MixedIntegerLinearProgram` should provide a way to get the variables in the order they are provided to the `polyhedron` method
-
+- #26511: MIP frontend/backend using PuLP

 Backend defects:`
 - #21825: memory leak in `MixedIntegerLinearProgram` coin backend
@@ -94,6 +94,7 @@
 - #18847   create an interface to Mosek optimisation software
 - #21032: MIPCL solver: Add package, MIP backend
 - #8661: add lpsolve spkg
+- #26511: MIP frontend/backend using PuLP; backend to OSI using yaposib

 Interactions with `InteractiveLinearProgram` and its dictionaries:
 - #19097: Refactor run_[revised]_simplex_method; add run_dual_[revised]_simplex_method
mkoeppe commented 5 years ago

Description changed:

--- 
+++ 
@@ -1,3 +1,6 @@
+Alternatives:
+- #26511: **Meta-ticket: Use Python optimization interfaces: PuLP, Pyomo, cylp...**
+
 Frontend defects:
 - #20304: More error checking in `MixedIntegerLinearProgram`
 - #13696: process chained equalities with different signs correctly
mkoeppe commented 4 years ago

Description changed:

--- 
+++ 
@@ -1,5 +1,8 @@
 Alternatives:
 - #26511: **Meta-ticket: Use Python optimization interfaces: PuLP, Pyomo, cylp...**
+
+Proposed packaging change:
+- #28175: Move sage optimization backends to separate Cython packages to remove OptionalExtension problems

 Frontend defects:
 - #20304: More error checking in `MixedIntegerLinearProgram`
mkoeppe commented 4 years ago

Description changed:

--- 
+++ 
@@ -42,6 +42,7 @@
 - #18572: CVXOPT solver equations handling
 - #20600: more failing tests related to cplex / gurobi
 - #20360: Add `sig_on`/`sig_off` to `COINBackend`
+- #28914: default_mip_solver: Allow solver = a callable

 Improvements to backends:
 - #18685: Add basis status functions `get_col_stat`, `get_row_stat` to GLPK backend
embray commented 4 years ago
comment:89

Ticket retargeted after milestone closed

mkoeppe commented 4 years ago
comment:90

Batch modifying tickets that will likely not be ready for 9.1, based on a review of the ticket title, branch/review status, and last modification date.

mkoeppe commented 3 years ago
comment:93

Sage development has entered the release candidate phase for 9.3. Setting a new milestone for this ticket based on a cursory review of ticket status, priority, and last modification date.

mkoeppe commented 3 years ago

Description changed:

--- 
+++ 
@@ -12,26 +12,21 @@
 - #20461: Fixes for copying a MIP and its variables
 - #20462: `MixedIntegerLinearProgram`/`MIPVariable`: `get_min`, `set_min`, `get_max`, `set_max` are broken
 - #20602: Deprecate `MixedIntegerLinearProgram.gen()`, `__call__`, `linear_function`, which do not do anything useful; add `default_variable` method
-- #20656: `MixedIntegerLinearProgram`: Remove `_variables` dictionary
-- #20657: More fixes for copying a MIP and the `MIPVariable`s created by `new_variable`

-Frontend wishlist tickets:
+Frontend improvements:
 - #7574: clean up of MIP interface
 - #20406: `get_solver` should allow passing a function (a solver factory) as the solver argument
+- #15583: `sage.numerical.linear_functions.LinearConstraint` is not a hashable type
+- #20773: `MixedIntegerLinearProgram.new_variable` could optionally take a "static" list of component indices
+- #23681: Make `_repr_` of MILP more informative
 - #19523: Raise an error when constraints are added to the wrong MILP
-- #20664: `MixedIntegerLinearProgram`/`MIPVariable` API cleanup
-- #20773: `MixedIntegerLinearProgram.new_variable` could optionally take a "static" list of component indices
-- #20331: A `MIPVariable`'s repr should include some useful information
+- #20664: **Meta-ticket: `MixedIntegerLinearProgram`/`MIPVariable` API cleanup**
 - #18733: `MixedIntegerLinearProgram` should support tableau-query methods
 - #18688: `MixedIntegerLinearProgram` should support basis status getting/setting
 - #7290: Dual method for linear programs (dup: #13141)
 - #18466: Optimal dual solution of LP from `MixedIntegerLinearProgram`
 - #7300: Display tight constraints
-- #7790: Setting a default max/min bound when calling `MixedIntegerLinearProgram.new_variable`
 - #15356: linear programming enhancements
-- #15583: `sage.numerical.linear_functions.LinearConstraint` is not a hashable type
-- #23681: Make `_repr_` of MILP more informative
-- #26302: `MixedIntegerLinearProgram` should provide a way to get the variables in the order they are provided to the `polyhedron` method
 - #26511: MIP frontend/backend using PuLP

 Backend defects:`
mkoeppe commented 3 years ago

Description changed:

--- 
+++ 
@@ -1,10 +1,10 @@
-Alternatives:
+**Alternatives:**
 - #26511: **Meta-ticket: Use Python optimization interfaces: PuLP, Pyomo, cylp...**

-Proposed packaging change:
+**Proposed packaging change:**
 - #28175: Move sage optimization backends to separate Cython packages to remove OptionalExtension problems

-Frontend defects:
+**Frontend defects:**
 - #20304: More error checking in `MixedIntegerLinearProgram`
 - #13696: process chained equalities with different signs correctly
 - #14540: MILP constraints are silently misunderstood
@@ -13,7 +13,7 @@
 - #20462: `MixedIntegerLinearProgram`/`MIPVariable`: `get_min`, `set_min`, `get_max`, `set_max` are broken
 - #20602: Deprecate `MixedIntegerLinearProgram.gen()`, `__call__`, `linear_function`, which do not do anything useful; add `default_variable` method

-Frontend improvements:
+**Frontend improvements:**
 - #7574: clean up of MIP interface
 - #20406: `get_solver` should allow passing a function (a solver factory) as the solver argument
 - #15583: `sage.numerical.linear_functions.LinearConstraint` is not a hashable type
@@ -29,7 +29,7 @@
 - #15356: linear programming enhancements
 - #26511: MIP frontend/backend using PuLP

-Backend defects:`
+**Backend defects:**
 - #21825: memory leak in `MixedIntegerLinearProgram` coin backend
 - #21449: `CoinBackend`: _test_solve fails on 32-bit
 - #21550: Fix `CoinBackend` testsuite (32-bit failure)
@@ -39,7 +39,7 @@
 - #20360: Add `sig_on`/`sig_off` to `COINBackend`
 - #28914: default_mip_solver: Allow solver = a callable

-Improvements to backends:
+**Improvements to backends:**
 - #18685: Add basis status functions `get_col_stat`, `get_row_stat` to GLPK backend
 - #18732: Add tableau query functions `glp_eval_tab_row`, `glp_eval_tab_col` to GLPK backend
 - #18763: COIN backend should support basis status and tableau data functions
@@ -63,14 +63,14 @@
 - #21563: Add scripts to install Gurobi, Cplex include and lib links in SAGE_LOCAL
 - #23680: package Osi

-Improvements to the backend interface:
+**Improvements to the backend interface:**
 - #20337: MIP: Several fixes regarding constant terms in the objective function
 - #20324: MIP backends: Unify `add_col`, `add_variable`
 - #20362: MIP backends: Make variable type consistent between `add_variable`, `set_variable_type` (with deprecation)
 - #21498: Unify/document write_lp, write_mps behavior regarding filenames and problem transformations 
 - #21499: `GenericBackend`: Add _test_sense method

-Improvements to underlying libraries:
+**Improvements to underlying libraries:**
 - #19903 crash with `MIP_Problem`
 - #20351: `sage.libs.ppl.MIP_Problem`: Add support for integer variables
 - #19592: PPL Variables cannot be saved
@@ -79,7 +79,7 @@
 - #22006: CBC tries to use system's blas at runtime which creates an error
 - #22380: update cvxopt to 1.1.9

-New backends:
+**New backends:**
 - #20296: `MixedIntegerLinearProgram`: New backend using `InteractiveLPProblem`
 - #20413: `InteractiveLPBackend`: Use standard-form transformation, `objective_constant_term`, change default `base_ring` to `QQ`
 - #20433: `InteractiveLPBackend`: Implement `set_verbosity`
@@ -98,7 +98,7 @@
 - #8661: add lpsolve spkg
 - #26511: MIP frontend/backend using PuLP; backend to OSI using yaposib

-Interactions with `InteractiveLinearProgram` and its dictionaries:
+**Interactions with `InteractiveLinearProgram` and its dictionaries:**
 - #19097: Refactor run_[revised]_simplex_method; add run_dual_[revised]_simplex_method
 - #18742: interactive_simplex_method: Support several styles corresponding to major textbooks
 - #18852: interactive_simplex_method: Enable typesetting of run_simplex_method in SageMathCloud
@@ -112,19 +112,22 @@
 - #20570: `InteractiveLPProblem`: refactor `plot` method
 - #18805: Add didactical implementation of tableau cutting planes to `interactive_simplex_method`

-Interactions with polyhedra:
+**Interactions with polyhedra:**
 - #20301 `Polyhedron.to_linear_program` should return the MIP variable used
 - #20415 `Polyhedron.to_linear_program` should select solver by `base_ring`

-Applications:
+**Applications:**
 - #20367: fix integer option and a bug in Delsarte bounds code
 - #20416: Various callers of `MixedIntegerLinearProgram` should accept and pass through a solver argument
 - #20447: Wrong result from `delsarte_bound_additive_hamming_space` with GLPK exact simplex
 - #20766: avoid using maxima simplex algo in `lattice_polytope`

-SDP:
+**SDP, MINLP, Manifolds:**
 - #20506: dual variables handling in SDP solver(s)
+- #25116: Frontend for Mixed Integer Nonlinear Programming
+- #31740: **Meta-ticket: Families, posets, complexes of manifold subsets**

-Documentation:
+
+**Documentation:**
 - #22472: Numerical optimization section of the reference manual needs reorganization