Open mkoeppe opened 8 years ago
Description changed:
---
+++
@@ -1,6 +1,6 @@
While implementing `InteractiveLPBackend` for #20296, I noticed several deficiencies in the design of the MILP backend interface.
-- `add_col` and `add_variable` both add a variable to the problem; but `add_col` only allows to add a column with no name; whereas `add_variable` only allows to add a column with no coefficients. There should be one function (`add_variable`, probably) that can do both; should then deprecate `add_col`. (Also compare with `add_linear_constraint`, which takes as zipped index/coefficient list, whereas `add_col` takes two parallel lists.)
+- `add_col` and `add_variable` both add a variable to the problem; but `add_col` only allows to add a column with no name; whereas `add_variable` only allows to add a column with no coefficients. There should be one function (`add_variable`, probably - see #20296 for a possible interface) that can do both; should then deprecate `add_col`. (Also compare with `add_linear_constraint`, which takes a zipped index/coefficient list, whereas `add_col` takes two parallel lists.)
- `variable_upper_bound`: This interface is bizarre. Can't remove an upper bound from a variable because `None` means both 'no upper bound' and 'get the upper bound'. Likewise `variable_lower_bound`. (Moreover, there's redundancy with `col_bounds`.)
Description modified to remove my comments about variable_upper_bound
and variable_lower_bound
. I was misled by the interface description in GenericBackend
, which was out of sync with the real backends. Fixed in #20296
Description changed:
---
+++
@@ -1,8 +1,6 @@
While implementing `InteractiveLPBackend` for #20296, I noticed several deficiencies in the design of the MILP backend interface.
- `add_col` and `add_variable` both add a variable to the problem; but `add_col` only allows to add a column with no name; whereas `add_variable` only allows to add a column with no coefficients. There should be one function (`add_variable`, probably - see #20296 for a possible interface) that can do both; should then deprecate `add_col`. (Also compare with `add_linear_constraint`, which takes a zipped index/coefficient list, whereas `add_col` takes two parallel lists.)
-
-- `variable_upper_bound`: This interface is bizarre. Can't remove an upper bound from a variable because `None` means both 'no upper bound' and 'get the upper bound'. Likewise `variable_lower_bound`. (Moreover, there's redundancy with `col_bounds`.)
- `add_variables` and `add_linear_constraints` should have a default implementation in `GenericBackend`, like `add_linear_constraint_vector`.
Dependencies: #20296
Description changed:
---
+++
@@ -1,6 +1,6 @@
While implementing `InteractiveLPBackend` for #20296, I noticed several deficiencies in the design of the MILP backend interface.
-- `add_col` and `add_variable` both add a variable to the problem; but `add_col` only allows to add a column with no name; whereas `add_variable` only allows to add a column with no coefficients. There should be one function (`add_variable`, probably - see #20296 for a possible interface) that can do both; should then deprecate `add_col`. (Also compare with `add_linear_constraint`, which takes a zipped index/coefficient list, whereas `add_col` takes two parallel lists.)
+- `add_col` and `add_variable` both add a variable to the problem; but `add_col` only allows to add a column with no name; whereas `add_variable` only allows to add a column with no coefficients. There should be one function (`add_variable`, probably - see #20296 for a possible interface) that can do both; should then deprecate `add_col`. Note that `add_col` is not used by `MixedIntegerLinearProgram`; it is only used in doctests of the backends. (Also compare with `add_linear_constraint`, which takes a zipped index/coefficient list, whereas `add_col` takes two parallel lists.)
- `add_variables` and `add_linear_constraints` should have a default implementation in `GenericBackend`, like `add_linear_constraint_vector`.
Description changed:
---
+++
@@ -4,5 +4,37 @@
- `add_variables` and `add_linear_constraints` should have a default implementation in `GenericBackend`, like `add_linear_constraint_vector`.
+- The doctest of `add_linear_constraint_vector` from generic_backend.pyx (which is never run for any real backend!), when applied to COIN or GLPK leads to segfaults:
+
+```
+sage: sage: coeffs = ([0, vector([1, 2])], [1, vector([2, 3])])
+sage: sage: upper = vector([5, 5])
+sage: sage: lower = vector([0, 0])
+sage: sage: from sage.numerical.backends.generic_backend import get_solver
+sage: sage: p = get_solver(solver = "Coin") # optional - cbc
+sage: p.add_linear_constraint_vector(2, coeffs, lower, upper, 'foo')
+------------------------------------------------------------------------
+0 signals.so 0x0000000109df05c5 print_backtrace + 37
+------------------------------------------------------------------------
+Unhandled SIGSEGV: A segmentation fault occurred.
+This probably occurred because a *compiled* module has a bug
+in it and is not properly wrapped with sig_on(), sig_off().
+Python will now terminate.
+------------------------------------------------------------------------
+Segmentation fault: 11
+$ sage
+SageMath Version 7.2.beta0, Release Date: 2016-03-24
+sage: sage: sage: coeffs = ([0, vector([1, 2])], [1, vector([2, 3])])
+sage: sage: sage: upper = vector([5, 5])
+sage: sage: sage: lower = vector([0, 0])
+sage: sage: sage: from sage.numerical.backends.generic_backend import get_solver
+sage: sage: sage: p = get_solver(solver = "Coin") # optional - cbc
+sage: p.add_linear_constraint_vector(2, coeffs, lower, upper)
+------------------------------------------------------------------------
+0 signals.so 0x0000000109c8a5c5 print_backtrace + 37
+------------------------------------------------------------------------
+Unhandled SIGSEGV: A segmentation fault occurred.
+```
+
Also, I think the backends should be tested using a common `TestSuite`. Right now each backend uses its own doctests, which have slightly diverged from each other, so there is nothing (other than the fact that they were the result of copy-paste from each other) that ensures consistency. (#20296 fixes several wrong doctests in `GenericBackend`, from which I tried to copy-paste, for example.)
Hello,
I guess that you do not want to fix all of that in one ticket. One possibility is to use this one as a "task ticket" pointing to other tickets. See for example #18846, #17601 or #18333.
Description changed:
---
+++
@@ -1,3 +1,27 @@
+Frontend:
+- #20304: More error checking in MixedIntegerLinearProgram
+
+Backends:
+- #20303: Fixes for add_variables in CVXOPT, PPL, GLPK MIP backends and add_linear_constraints in CVXOPT
+
+
+Interactions with InteractiveLinearProgram and its dictionaries:
+- #18734: Construct an interactive_simplex_method.LPDictionary from a MixedIntegerLinearProgram
+- #20311: interactive_simplex_method enhancements
+- #20296: MixedIntegerLinearProgram: New backend using InteractiveLPProblem
+- #18735: MixedIntegerLinearProgram/HybridBackend: Reconstruct exact rational/algebraic basic solution
+- #20203: LPCleanDictionary - floating-point helper class for interactive simplex method
+- #18804: LPBackendDictionary - a debugging view of a MIP backend connected to interactive_simplex_method
+
+Interactions with polyhedra:
+- #20301 Polyhedron.to_linear_program should return the MIP variable used
+
+* * * *
+
+To be put on separate tickets:
+
+Clean up MILP backend interface:
+
While implementing `InteractiveLPBackend` for #20296, I noticed several deficiencies in the design of the MILP backend interface.
- `add_col` and `add_variable` both add a variable to the problem; but `add_col` only allows to add a column with no name; whereas `add_variable` only allows to add a column with no coefficients. There should be one function (`add_variable`, probably - see #20296 for a possible interface) that can do both; should then deprecate `add_col`. Note that `add_col` is not used by `MixedIntegerLinearProgram`; it is only used in doctests of the backends. (Also compare with `add_linear_constraint`, which takes a zipped index/coefficient list, whereas `add_col` takes two parallel lists.)
Description changed:
---
+++
@@ -1,20 +1,20 @@
Frontend:
-- #20304: More error checking in MixedIntegerLinearProgram
+- #20304: More error checking in `MixedIntegerLinearProgram`
Backends:
-- #20303: Fixes for add_variables in CVXOPT, PPL, GLPK MIP backends and add_linear_constraints in CVXOPT
+- #20303: Fixes for add_variables in CVXOPT, PPL, GLPK MIP backends and `add_linear_constraints` in CVXOPT
-Interactions with InteractiveLinearProgram and its dictionaries:
-- #18734: Construct an interactive_simplex_method.LPDictionary from a MixedIntegerLinearProgram
-- #20311: interactive_simplex_method enhancements
-- #20296: MixedIntegerLinearProgram: New backend using InteractiveLPProblem
-- #18735: MixedIntegerLinearProgram/HybridBackend: Reconstruct exact rational/algebraic basic solution
-- #20203: LPCleanDictionary - floating-point helper class for interactive simplex method
-- #18804: LPBackendDictionary - a debugging view of a MIP backend connected to interactive_simplex_method
+Interactions with `InteractiveLinearProgram` and its dictionaries:
+- #18734: Construct an `interactive_simplex_method.LPDictionary` from a `MixedIntegerLinearProgram`
+- #20311: `interactive_simplex_method` enhancements
+- #20296: `MixedIntegerLinearProgram`: New backend using `InteractiveLPProblem`
+- #18735: `MixedIntegerLinearProgram`/`HybridBackend`: Reconstruct exact rational/algebraic basic solution
+- #20203: `LPCleanDictionary` - floating-point helper class for interactive simplex method
+- #18804: `LPBackendDictionary` - a debugging view of a MIP backend connected to `interactive_simplex_method`
Interactions with polyhedra:
-- #20301 Polyhedron.to_linear_program should return the MIP variable used
+- #20301 `Polyhedron.to_linear_program` should return the MIP variable used
* * * *
Description changed:
---
+++
@@ -1,9 +1,16 @@
Frontend:
- #20304: More error checking in `MixedIntegerLinearProgram`
+- #19523: defect: Adding constraints for the wrong MILP crashes Sage
+- #18733: enhancement: `MixedIntegerLinearProgram` should support tableau-query methods
+- #18688: task: `MixedIntegerLinearProgram` should support basis status getting/setting
Backends:
-- #20303: Fixes for add_variables in CVXOPT, PPL, GLPK MIP backends and `add_linear_constraints` in CVXOPT
-
+- #20303: Fixes for `add_variables` in CVXOPT, PPL, GLPK MIP backends and `add_linear_constraints` in CVXOPT
+- #19525: enhancement: Improve GLPK error handling
+- #20323: Common `TestSuite` for MIP backends
+- #20324: MIP backends: Unify `add_col`, `add_variable`
+- #20325: `GenericBackend`: Add default implementation of `add_variables` and `add_linear_constraints`
+- #20326: `GenericBackend`: Fix doctest of add_linear_constraint_vector
Interactions with `InteractiveLinearProgram` and its dictionaries:
- #18734: Construct an `interactive_simplex_method.LPDictionary` from a `MixedIntegerLinearProgram`
@@ -16,49 +23,4 @@
Interactions with polyhedra:
- #20301 `Polyhedron.to_linear_program` should return the MIP variable used
-* * * *
-To be put on separate tickets:
-
-Clean up MILP backend interface:
-
-While implementing `InteractiveLPBackend` for #20296, I noticed several deficiencies in the design of the MILP backend interface.
-
-- `add_col` and `add_variable` both add a variable to the problem; but `add_col` only allows to add a column with no name; whereas `add_variable` only allows to add a column with no coefficients. There should be one function (`add_variable`, probably - see #20296 for a possible interface) that can do both; should then deprecate `add_col`. Note that `add_col` is not used by `MixedIntegerLinearProgram`; it is only used in doctests of the backends. (Also compare with `add_linear_constraint`, which takes a zipped index/coefficient list, whereas `add_col` takes two parallel lists.)
-
-- `add_variables` and `add_linear_constraints` should have a default implementation in `GenericBackend`, like `add_linear_constraint_vector`.
-
-- The doctest of `add_linear_constraint_vector` from generic_backend.pyx (which is never run for any real backend!), when applied to COIN or GLPK leads to segfaults:
-
-```
-sage: sage: coeffs = ([0, vector([1, 2])], [1, vector([2, 3])])
-sage: sage: upper = vector([5, 5])
-sage: sage: lower = vector([0, 0])
-sage: sage: from sage.numerical.backends.generic_backend import get_solver
-sage: sage: p = get_solver(solver = "Coin") # optional - cbc
-sage: p.add_linear_constraint_vector(2, coeffs, lower, upper, 'foo')
-------------------------------------------------------------------------
-0 signals.so 0x0000000109df05c5 print_backtrace + 37
-------------------------------------------------------------------------
-Unhandled SIGSEGV: A segmentation fault occurred.
-This probably occurred because a *compiled* module has a bug
-in it and is not properly wrapped with sig_on(), sig_off().
-Python will now terminate.
-------------------------------------------------------------------------
-Segmentation fault: 11
-$ sage
-SageMath Version 7.2.beta0, Release Date: 2016-03-24
-sage: sage: sage: coeffs = ([0, vector([1, 2])], [1, vector([2, 3])])
-sage: sage: sage: upper = vector([5, 5])
-sage: sage: sage: lower = vector([0, 0])
-sage: sage: sage: from sage.numerical.backends.generic_backend import get_solver
-sage: sage: sage: p = get_solver(solver = "Coin") # optional - cbc
-sage: p.add_linear_constraint_vector(2, coeffs, lower, upper)
-------------------------------------------------------------------------
-0 signals.so 0x0000000109c8a5c5 print_backtrace + 37
-------------------------------------------------------------------------
-Unhandled SIGSEGV: A segmentation fault occurred.
-```
-
-Also, I think the backends should be tested using a common `TestSuite`. Right now each backend uses its own doctests, which have slightly diverged from each other, so there is nothing (other than the fact that they were the result of copy-paste from each other) that ensures consistency. (#20296 fixes several wrong doctests in `GenericBackend`, from which I tried to copy-paste, for example.)
-
Description changed:
---
+++
@@ -4,7 +4,7 @@
- #18733: enhancement: `MixedIntegerLinearProgram` should support tableau-query methods
- #18688: task: `MixedIntegerLinearProgram` should support basis status getting/setting
-Backends:
+Improvements to backends:
- #20303: Fixes for `add_variables` in CVXOPT, PPL, GLPK MIP backends and `add_linear_constraints` in CVXOPT
- #19525: enhancement: Improve GLPK error handling
- #20323: Common `TestSuite` for MIP backends
@@ -12,11 +12,15 @@
- #20325: `GenericBackend`: Add default implementation of `add_variables` and `add_linear_constraints`
- #20326: `GenericBackend`: Fix doctest of add_linear_constraint_vector
+New backends:
+- #20296: `MixedIntegerLinearProgram`: New backend using `InteractiveLPProblem`
+- #18735: `MixedIntegerLinearProgram`/`HybridBackend`: Reconstruct exact rational/algebraic basic solution
+- #19219: MILP: Add CyLP backend
+- #18862: Interface to COIN OpenSolverInterface
+
Interactions with `InteractiveLinearProgram` and its dictionaries:
- #18734: Construct an `interactive_simplex_method.LPDictionary` from a `MixedIntegerLinearProgram`
- #20311: `interactive_simplex_method` enhancements
-- #20296: `MixedIntegerLinearProgram`: New backend using `InteractiveLPProblem`
-- #18735: `MixedIntegerLinearProgram`/`HybridBackend`: Reconstruct exact rational/algebraic basic solution
- #20203: `LPCleanDictionary` - floating-point helper class for interactive simplex method
- #18804: `LPBackendDictionary` - a debugging view of a MIP backend connected to `interactive_simplex_method`
Description changed:
---
+++
@@ -15,8 +15,11 @@
New backends:
- #20296: `MixedIntegerLinearProgram`: New backend using `InteractiveLPProblem`
- #18735: `MixedIntegerLinearProgram`/`HybridBackend`: Reconstruct exact rational/algebraic basic solution
-- #19219: MILP: Add CyLP backend
-- #18862: Interface to COIN OpenSolverInterface
+- #19219: MILP: Add "CyLP" backend
+- #18862: Interface to COIN `OpenSolverInterface`
+- #8672 SCIP support
+- #10879: add optional SCIP integer constraint solver
+- #18766: Add bindings, `MixedIntegerLinearProgram` backend to qsopt_ex, a state-of-the-art exact simplex solver
Interactions with `InteractiveLinearProgram` and its dictionaries:
- #18734: Construct an `interactive_simplex_method.LPDictionary` from a `MixedIntegerLinearProgram`
Description changed:
---
+++
@@ -11,6 +11,7 @@
- #20324: MIP backends: Unify `add_col`, `add_variable`
- #20325: `GenericBackend`: Add default implementation of `add_variables` and `add_linear_constraints`
- #20326: `GenericBackend`: Fix doctest of add_linear_constraint_vector
+- #20328: tests related to cplex / gurobi
New backends:
- #20296: `MixedIntegerLinearProgram`: New backend using `InteractiveLPProblem`
Description changed:
---
+++
@@ -12,6 +12,7 @@
- #20325: `GenericBackend`: Add default implementation of `add_variables` and `add_linear_constraints`
- #20326: `GenericBackend`: Fix doctest of add_linear_constraint_vector
- #20328: tests related to cplex / gurobi
+- #10232: MIP backends should perform bounds checks
New backends:
- #20296: `MixedIntegerLinearProgram`: New backend using `InteractiveLPProblem`
Description changed:
---
+++
@@ -3,6 +3,10 @@
- #19523: defect: Adding constraints for the wrong MILP crashes Sage
- #18733: enhancement: `MixedIntegerLinearProgram` should support tableau-query methods
- #18688: task: `MixedIntegerLinearProgram` should support basis status getting/setting
+
+Wishlist tickets:
+- #7290: Dual method for linear programs
+- #15356: linear programming enhancements
Improvements to backends:
- #20303: Fixes for `add_variables` in CVXOPT, PPL, GLPK MIP backends and `add_linear_constraints` in CVXOPT
@@ -19,8 +23,7 @@
- #18735: `MixedIntegerLinearProgram`/`HybridBackend`: Reconstruct exact rational/algebraic basic solution
- #19219: MILP: Add "CyLP" backend
- #18862: Interface to COIN `OpenSolverInterface`
-- #8672 SCIP support
-- #10879: add optional SCIP integer constraint solver
+- #10879: add optional SCIP integer constraint solver (dup: #8672)
- #18766: Add bindings, `MixedIntegerLinearProgram` backend to qsopt_ex, a state-of-the-art exact simplex solver
Interactions with `InteractiveLinearProgram` and its dictionaries:
Description changed:
---
+++
@@ -1,6 +1,7 @@
Frontend:
- #20304: More error checking in `MixedIntegerLinearProgram`
- #19523: defect: Adding constraints for the wrong MILP crashes Sage
+- #20331: MIPVariable misreports its dimension (always 1)
- #18733: enhancement: `MixedIntegerLinearProgram` should support tableau-query methods
- #18688: task: `MixedIntegerLinearProgram` should support basis status getting/setting
Description changed:
---
+++
@@ -12,6 +12,7 @@
Improvements to backends:
- #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`
- #20323: Common `TestSuite` for MIP backends
- #20324: MIP backends: Unify `add_col`, `add_variable`
- #20325: `GenericBackend`: Add default implementation of `add_variables` and `add_linear_constraints`
Description changed:
---
+++
@@ -13,6 +13,7 @@
- #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`
+- #20337: `MIP backends: obj_constant_term` should be exposed by a backend method
- #20323: Common `TestSuite` for MIP backends
- #20324: MIP backends: Unify `add_col`, `add_variable`
- #20325: `GenericBackend`: Add default implementation of `add_variables` and `add_linear_constraints`
Description changed:
---
+++
@@ -13,7 +13,7 @@
- #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`
-- #20337: `MIP backends: obj_constant_term` should be exposed by a backend method
+- #20337: MIP backends: `obj_constant_term` should be exposed by a backend method
- #20323: Common `TestSuite` for MIP backends
- #20324: MIP backends: Unify `add_col`, `add_variable`
- #20325: `GenericBackend`: Add default implementation of `add_variables` and `add_linear_constraints`
Description changed:
---
+++
@@ -13,7 +13,7 @@
- #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`
-- #20337: MIP backends: `obj_constant_term` should be exposed by a backend method
+- #20337: MIP: Several fixes regarding constant terms in the objective function
- #20323: Common `TestSuite` for MIP backends
- #20324: MIP backends: Unify `add_col`, `add_variable`
- #20325: `GenericBackend`: Add default implementation of `add_variables` and `add_linear_constraints`
Description changed:
---
+++
@@ -1,7 +1,7 @@
Frontend:
- #20304: More error checking in `MixedIntegerLinearProgram`
- #19523: defect: Adding constraints for the wrong MILP crashes Sage
-- #20331: MIPVariable misreports its dimension (always 1)
+- #20331: A `MIPVariable`'s repr should include some useful information
- #18733: enhancement: `MixedIntegerLinearProgram` should support tableau-query methods
- #18688: task: `MixedIntegerLinearProgram` should support basis status getting/setting
Description changed:
---
+++
@@ -20,6 +20,7 @@
- #20326: `GenericBackend`: Fix doctest of add_linear_constraint_vector
- #20328: tests related to cplex / gurobi
- #10232: MIP backends should perform bounds checks
+- #20351: `sage.libs.ppl.MIP_Problem` and `PPLBackend`: Add support for integer variables
New backends:
- #20296: `MixedIntegerLinearProgram`: New backend using `InteractiveLPProblem`
Description changed:
---
+++
@@ -19,7 +19,7 @@
- #20325: `GenericBackend`: Add default implementation of `add_variables` and `add_linear_constraints`
- #20326: `GenericBackend`: Fix doctest of add_linear_constraint_vector
- #20328: tests related to cplex / gurobi
-- #10232: MIP backends should perform bounds checks
+- #10232: check GLPK bound errors
- #20351: `sage.libs.ppl.MIP_Problem` and `PPLBackend`: Add support for integer variables
New backends:
Description changed:
---
+++
@@ -1,18 +1,25 @@
-Frontend:
+Frontend defects:
- #20304: More error checking in `MixedIntegerLinearProgram`
- #19523: defect: Adding constraints for the wrong MILP crashes Sage
+- #13696: process chained equalities with different signs correctly
+- #14540: MILP constraints are silently misunderstood
+- #15159: Segfault after deepcopy of MixedIntegerLinearProgram
+
+Frontend wishlist tickets:
- #20331: A `MIPVariable`'s repr should include some useful information
-- #18733: enhancement: `MixedIntegerLinearProgram` should support tableau-query methods
-- #18688: task: `MixedIntegerLinearProgram` should support basis status getting/setting
-
-Wishlist tickets:
-- #7290: Dual method for linear programs
+- #18733: `MixedIntegerLinearProgram` should support tableau-query methods
+- #18688: `MixedIntegerLinearProgram` should support basis status getting/setting
+- #7290: Dual method for linear programs (dup: #13141)
+- #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
Improvements to backends:
- #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`
+- #18572: CVXOPT solver equations handling
- #20337: MIP: Several fixes regarding constant terms in the objective function
- #20323: Common `TestSuite` for MIP backends
- #20324: MIP backends: Unify `add_col`, `add_variable`
@@ -21,6 +28,9 @@
- #20328: tests related to cplex / gurobi
- #10232: check GLPK bound errors
- #20351: `sage.libs.ppl.MIP_Problem` and `PPLBackend`: Add support for integer variables
+
+Improvements to underlying libraries:
+- #19903 crash with MIP_Problem
New backends:
- #20296: `MixedIntegerLinearProgram`: New backend using `InteractiveLPProblem`
Description changed:
---
+++
@@ -3,7 +3,7 @@
- #19523: defect: Adding constraints for the wrong MILP crashes Sage
- #13696: process chained equalities with different signs correctly
- #14540: MILP constraints are silently misunderstood
-- #15159: Segfault after deepcopy of MixedIntegerLinearProgram
+- #15159: Segfault after deepcopy of `MixedIntegerLinearProgram`
Frontend wishlist tickets:
- #20331: A `MIPVariable`'s repr should include some useful information
@@ -13,7 +13,7 @@
- #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
+- #15583: `sage.numerical.linear_functions.LinearConstraint` is not a hashable type
Improvements to backends:
- #20303: Fixes for `add_variables` in CVXOPT, PPL, GLPK MIP backends and `add_linear_constraints` in CVXOPT
Description changed:
---
+++
@@ -24,13 +24,14 @@
- #20323: Common `TestSuite` for MIP backends
- #20324: MIP backends: Unify `add_col`, `add_variable`
- #20325: `GenericBackend`: Add default implementation of `add_variables` and `add_linear_constraints`
-- #20326: `GenericBackend`: Fix doctest of add_linear_constraint_vector
+- #20326: `GenericBackend`: Fix doctest of `add_linear_constraint_vector`
- #20328: tests related to cplex / gurobi
- #10232: check GLPK bound errors
-- #20351: `sage.libs.ppl.MIP_Problem` and `PPLBackend`: Add support for integer variables
+- #20354: `PPLBackend`: Add support for integer variables
Improvements to underlying libraries:
-- #19903 crash with MIP_Problem
+- #19903 crash with `MIP_Problem`
+- #20351: `sage.libs.ppl.MIP_Problem`: Add support for integer variables
New backends:
- #20296: `MixedIntegerLinearProgram`: New backend using `InteractiveLPProblem`
Description changed:
---
+++
@@ -28,6 +28,7 @@
- #20328: tests related to cplex / gurobi
- #10232: check GLPK bound errors
- #20354: `PPLBackend`: Add support for integer variables
+- #20360: Add `sig_on`/`sig_off` to COINBackend
Improvements to underlying libraries:
- #19903 crash with `MIP_Problem`
Description changed:
---
+++
@@ -29,6 +29,7 @@
- #10232: check GLPK bound errors
- #20354: `PPLBackend`: Add support for integer variables
- #20360: Add `sig_on`/`sig_off` to COINBackend
+- #20361: PPL backend re-solves the problem every time `get_variable_value` or `get_objective_value` is called
Improvements to underlying libraries:
- #19903 crash with `MIP_Problem`
Description changed:
---
+++
@@ -20,9 +20,7 @@
- #19525: enhancement: Improve GLPK error handling
- #20332: `CVXOPTBackend`: Set initial `problem_name`
- #18572: CVXOPT solver equations handling
-- #20337: MIP: Several fixes regarding constant terms in the objective function
- #20323: Common `TestSuite` for MIP backends
-- #20324: MIP backends: Unify `add_col`, `add_variable`
- #20325: `GenericBackend`: Add default implementation of `add_variables` and `add_linear_constraints`
- #20326: `GenericBackend`: Fix doctest of `add_linear_constraint_vector`
- #20328: tests related to cplex / gurobi
@@ -30,6 +28,11 @@
- #20354: `PPLBackend`: Add support for integer variables
- #20360: Add `sig_on`/`sig_off` to COINBackend
- #20361: PPL backend re-solves the problem every time `get_variable_value` or `get_objective_value` is called
+
+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)
Improvements to underlying libraries:
- #19903 crash with `MIP_Problem`
Description changed:
---
+++
@@ -1,11 +1,11 @@
Frontend defects:
- #20304: More error checking in `MixedIntegerLinearProgram`
-- #19523: defect: Adding constraints for the wrong MILP crashes Sage
- #13696: process chained equalities with different signs correctly
- #14540: MILP constraints are silently misunderstood
- #15159: Segfault after deepcopy of `MixedIntegerLinearProgram`
Frontend wishlist tickets:
+- #19523: Raise an error when constraints are added to the wrong MILP
- #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
Description changed:
---
+++
@@ -16,6 +16,13 @@
- #15583: `sage.numerical.linear_functions.LinearConstraint` is not a hashable type
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
+- #18838: GLPK backend does not detect unboundedness in simplex-only mode
+- #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`
@@ -45,14 +52,21 @@
- #18862: Interface to COIN `OpenSolverInterface`
- #10879: add optional SCIP integer constraint solver (dup: #8672)
- #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)
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
- #18734: Construct an `interactive_simplex_method.LPDictionary` from a `MixedIntegerLinearProgram`
- #20311: `interactive_simplex_method` enhancements
- #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`
Interactions with polyhedra:
- #20301 `Polyhedron.to_linear_program` should return the MIP variable used
+Applications:
+- #20367: fix integer option and a bug in Delsarte bounds code
Description changed:
---
+++
@@ -47,6 +47,7 @@
New backends:
- #20296: `MixedIntegerLinearProgram`: New backend using `InteractiveLPProblem`
+- #20376: LoggingBackend - delegating MIP backend class that logs input/output to backend methods
- #18735: `MixedIntegerLinearProgram`/`HybridBackend`: Reconstruct exact rational/algebraic basic solution
- #19219: MILP: Add "CyLP" backend
- #18862: Interface to COIN `OpenSolverInterface`
Description changed:
---
+++
@@ -5,6 +5,7 @@
- #15159: Segfault after deepcopy of `MixedIntegerLinearProgram`
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
- #20331: A `MIPVariable`'s repr should include some useful information
- #18733: `MixedIntegerLinearProgram` should support tableau-query methods
Description changed:
---
+++
@@ -48,6 +48,7 @@
New backends:
- #20296: `MixedIntegerLinearProgram`: New backend using `InteractiveLPProblem`
+- #20413: InteractiveLPProblem: Use standard-form transformation, objective_constant_term
- #20376: LoggingBackend - delegating MIP backend class that logs input/output to backend methods
- #18735: `MixedIntegerLinearProgram`/`HybridBackend`: Reconstruct exact rational/algebraic basic solution
- #19219: MILP: Add "CyLP" backend
Description changed:
---
+++
@@ -27,15 +27,16 @@
- #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
+- #10232: check GLPK bound errors
+- #20354: `PPLBackend`: Add support for integer variables
+- #20326: `GenericBackend`: Fix doctest of `add_linear_constraint_vector`
+- #20414: Add `copy`/`__copy__` methods to CVXOPT, PPL, InteractiveLP backends
- #18572: CVXOPT solver equations handling
- #20323: Common `TestSuite` for MIP backends
- #20325: `GenericBackend`: Add default implementation of `add_variables` and `add_linear_constraints`
-- #20326: `GenericBackend`: Fix doctest of `add_linear_constraint_vector`
- #20328: tests related to cplex / gurobi
-- #10232: check GLPK bound errors
-- #20354: `PPLBackend`: Add support for integer variables
- #20360: Add `sig_on`/`sig_off` to COINBackend
-- #20361: PPL backend re-solves the problem every time `get_variable_value` or `get_objective_value` is called
Improvements to the backend interface:
- #20337: MIP: Several fixes regarding constant terms in the objective function
Description changed:
---
+++
@@ -70,6 +70,7 @@
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:
- #20367: fix integer option and a bug in Delsarte bounds code
Description changed:
---
+++
@@ -41,7 +41,7 @@
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)
+- #20362: MIP backends: Make variable type consistent between `add_variable`, `set_variable_type` (with deprecation)
Improvements to underlying libraries:
- #19903 crash with `MIP_Problem`
@@ -50,7 +50,7 @@
New backends:
- #20296: `MixedIntegerLinearProgram`: New backend using `InteractiveLPProblem`
- #20413: InteractiveLPProblem: Use standard-form transformation, objective_constant_term
-- #20376: LoggingBackend - delegating MIP backend class that logs input/output to backend methods
+- #20376: `LoggingBackend` - delegating MIP backend class that logs input/output to backend methods
- #18735: `MixedIntegerLinearProgram`/`HybridBackend`: Reconstruct exact rational/algebraic basic solution
- #19219: MILP: Add "CyLP" backend
- #18862: Interface to COIN `OpenSolverInterface`
@@ -74,4 +74,4 @@
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
Description changed:
---
+++
@@ -46,6 +46,7 @@
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
New backends:
- #20296: `MixedIntegerLinearProgram`: New backend using `InteractiveLPProblem`
@@ -57,6 +58,7 @@
- #10879: add optional SCIP integer constraint solver (dup: #8672)
- #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
Interactions with `InteractiveLinearProgram` and its dictionaries:
- #19097: Refactor run_[revised]_simplex_method; add run_dual_[revised]_simplex_method
Description changed:
---
+++
@@ -34,6 +34,7 @@
- #20414: Add `copy`/`__copy__` methods to CVXOPT, PPL, InteractiveLP backends
- #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
- #20360: Add `sig_on`/`sig_off` to COINBackend
Description changed:
---
+++
@@ -51,7 +51,7 @@
New backends:
- #20296: `MixedIntegerLinearProgram`: New backend using `InteractiveLPProblem`
-- #20413: InteractiveLPProblem: Use standard-form transformation, objective_constant_term
+- #20413: `InteractiveLPBackend`: Use standard-form transformation, `objective_constant_term`, change default `base_ring` to `QQ`
- #20376: `LoggingBackend` - delegating MIP backend class that logs input/output to backend methods
- #18735: `MixedIntegerLinearProgram`/`HybridBackend`: Reconstruct exact rational/algebraic basic solution
- #19219: MILP: Add "CyLP" backend
Description changed:
---
+++
@@ -52,6 +52,7 @@
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`
- #20376: `LoggingBackend` - delegating MIP backend class that logs input/output to backend methods
- #18735: `MixedIntegerLinearProgram`/`HybridBackend`: Reconstruct exact rational/algebraic basic solution
- #19219: MILP: Add "CyLP" backend
Description changed:
---
+++
@@ -54,6 +54,7 @@
- #20413: `InteractiveLPBackend`: Use standard-form transformation, `objective_constant_term`, change default `base_ring` to `QQ`
- #20433: `InteractiveLPBackend`: Implement `set_verbosity`
- #20376: `LoggingBackend` - delegating MIP backend class that logs input/output to backend methods
+- #20446: `GLPKExactBackend` - a variation on `GLPKBackend` that sets a solver parameter and signals errors on integer variables
- #18735: `MixedIntegerLinearProgram`/`HybridBackend`: Reconstruct exact rational/algebraic basic solution
- #19219: MILP: Add "CyLP" backend
- #18862: Interface to COIN `OpenSolverInterface`
Description changed:
---
+++
@@ -80,3 +80,4 @@
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
Description changed:
---
+++
@@ -38,6 +38,7 @@
- #20325: `GenericBackend`: Add default implementation of `add_variables` and `add_linear_constraints`
- #20328: tests related to cplex / gurobi
- #20360: Add `sig_on`/`sig_off` to COINBackend
+- #20458: GLPKBackend/GLPKExactBackend: Support "glp_simplex followed by glp_exact"
Improvements to the backend interface:
- #20337: MIP: Several fixes regarding constant terms in the objective function
Description changed:
---
+++
@@ -1,5 +1,6 @@
Frontend defects:
- #20304: More error checking in `MixedIntegerLinearProgram`
+- #20461: Fixes for copying a MIP and its variables
- #13696: process chained equalities with different signs correctly
- #14540: MILP constraints are silently misunderstood
- #15159: Segfault after deepcopy of `MixedIntegerLinearProgram`
Description changed:
---
+++
@@ -1,5 +1,6 @@
Frontend defects:
- #20304: More error checking in `MixedIntegerLinearProgram`
+- #20462: `MixedIntegerLinearProgram`/`MIPVariable`: `get_min`, `set_min`, `get_max`, `set_max` are broken
- #20461: Fixes for copying a MIP and its variables
- #13696: process chained equalities with different signs correctly
- #14540: MILP constraints are silently misunderstood
Description changed:
---
+++
@@ -72,6 +72,7 @@
- #18852: interactive_simplex_method: Enable typesetting of run_simplex_method in SageMathCloud
- #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`
- #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`
@@ -84,3 +85,6 @@
- #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
+
+SDP:
+- #20506: dual variables handling in SDP solver(s)
Description changed:
---
+++
@@ -34,11 +34,13 @@
- #20354: `PPLBackend`: Add support for integer variables
- #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"
Description changed:
---
+++
@@ -1,6 +1,7 @@
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
- #13696: process chained equalities with different signs correctly
- #14540: MILP constraints are silently misunderstood
Description changed:
---
+++
@@ -3,6 +3,7 @@
- #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`
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
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
20462:
MixedIntegerLinearProgram
/MIPVariable
:get_min
,set_min
,get_max
,set_max
are broken20602: Deprecate
MixedIntegerLinearProgram.gen()
,__call__
,linear_function
, which do not do anything useful; adddefault_variable
methodFrontend improvements:
7574: clean up of MIP interface
20406:
get_solver
should allow passing a function (a solver factory) as the solver argument15583:
sage.numerical.linear_functions.LinearConstraint
is not a hashable type20773:
MixedIntegerLinearProgram.new_variable
could optionally take a "static" list of component indices23681: Make
_repr_
of MILP more informative19523: Raise an error when constraints are added to the wrong MILP
20664: Meta-ticket:
MixedIntegerLinearProgram
/MIPVariable
API cleanup18733:
MixedIntegerLinearProgram
should support tableau-query methods18688:
MixedIntegerLinearProgram
should support basis status getting/setting7290: Dual method for linear programs (dup: #13141)
18466: Optimal dual solution of LP from
MixedIntegerLinearProgram
7300: Display tight constraints
15356: linear programming enhancements
26511: MIP frontend/backend using PuLP
Backend defects:
21825: memory leak in
MixedIntegerLinearProgram
coin backend21449:
CoinBackend
: _test_solve fails on 32-bit21550: Fix
CoinBackend
testsuite (32-bit failure)20303: Fixes for
add_variables
in CVXOPT, PPL, GLPK MIP backends andadd_linear_constraints
in CVXOPT18572: CVXOPT solver equations handling
20600: more failing tests related to cplex / gurobi
20360: Add
sig_on
/sig_off
toCOINBackend
28914: default_mip_solver: Allow solver = a callable
Improvements to backends:
18685: Add basis status functions
get_col_stat
,get_row_stat
to GLPK backend18732: Add tableau query functions
glp_eval_tab_row
,glp_eval_tab_col
to GLPK backend18763: COIN backend should support basis status and tableau data functions
18838: GLPK backend does not detect unboundedness in simplex-only mode
18764: Add
glp_exact
to Sage's GLPK bindings19471: COIN backend: More basis status and tableau data functions
19472: GLPK backend: More basis status and tableau data functions
19525: enhancement: Improve GLPK error handling
20332:
CVXOPTBackend
: Set initialproblem_name
20361: PPL backend re-solves the problem every time
get_variable_value
orget_objective_value
is called10232: check GLPK bound errors
20354:
PPLBackend
: Add support for integer variables20326:
GenericBackend
: Fix doctest ofadd_linear_constraint_vector
20414: Add
copy
/__copy__
methods to CVXOPT, PPL, InteractiveLP backends20548: py3 print in numerical folder
20323: Common
TestSuite
for MIP backends20424: More tests for common MIP
TestSuite
20325:
GenericBackend
: Add default implementation ofadd_variables
andadd_linear_constraints
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
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 methodImprovements to underlying libraries:
19903 crash with
MIP_Problem
20351:
sage.libs.ppl.MIP_Problem
: Add support for integer variables19592: 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
22380: update cvxopt to 1.1.9
New backends:
20296:
MixedIntegerLinearProgram
: New backend usingInteractiveLPProblem
20413:
InteractiveLPBackend
: Use standard-form transformation,objective_constant_term
, change defaultbase_ring
toQQ
20433:
InteractiveLPBackend
: Implementset_verbosity
20376:
LoggingBackend
- delegating MIP backend class that logs input/output to backend methods20446:
GLPKExactBackend
- a variation onGLPKBackend
that sets a solver parameter and signals errors on integer variables18735:
MixedIntegerLinearProgram
/HybridBackend
: Reconstruct exact rational/algebraic basic solution19219: 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 solver18765: 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
26511: MIP frontend/backend using PuLP; backend to OSI using yaposib
Interactions with
InteractiveLinearProgram
and its dictionaries:19097: Refactor run_[revised]_simplex_method; add rundual[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
18734: Construct an
interactive_simplex_method.LPDictionary
from aMixedIntegerLinearProgram
20311:
interactive_simplex_method
enhancements20500:
LPAbstractDictionary
: Refactorleaving_coefficients
,entering_coefficients
using new methodsrow_coefficients
,column_coefficients
20559:
InteractiveLPProblem
, dictionaries:add_constraint
/add_row
methods20874:
LPAbstractDictionary
: Addobjective_name
method20203:
LPCleanDictionary
- floating-point helper class for interactive simplex method18804:
LPBackendDictionary
- a debugging view of a MIP backend connected tointeractive_simplex_method
20570:
InteractiveLPProblem
: refactorplot
method18805: Add didactical implementation of tableau cutting planes to
interactive_simplex_method
Interactions with polyhedra:
20301
Polyhedron.to_linear_program
should return the MIP variable used20415
Polyhedron.to_linear_program
should select solver bybase_ring
Applications:
20367: fix integer option and a bug in Delsarte bounds code
20416: Various callers of
MixedIntegerLinearProgram
should accept and pass through a solver argument20447: Wrong result from
delsarte_bound_additive_hamming_space
with GLPK exact simplex20766: avoid using maxima simplex algo in
lattice_polytope
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:
22472: Numerical optimization section of the reference manual needs reorganization
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