Opened 6 years ago
Last modified 3 months ago
#20302 new task
Meta-ticket: Improvements to MixedIntegerLinearProgram and its backends — at Version 42
Reported by: | mkoeppe | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | sage-9.5 |
Component: | numerical | Keywords: | lp |
Cc: | dimpase, vdelecroix, vbraun, jdemeyer, chapoton, fbissey, Rudi, novoselt, moritz, jipilab, mmasdeu, klee, tmonteil, mforets, yzh | Merged in: | |
Authors: | Reviewers: | ||
Report Upstream: | N/A | Work issues: | |
Branch: | Commit: | ||
Dependencies: | #20296 | Stopgaps: |
Description (last modified by )
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
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 - #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:
- #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 andadd_linear_constraints
in CVXOPT - #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 called - #10232: check GLPK bound errors
- #20354:
PPLBackend
: Add support for integer variables - #20326:
GenericBackend
: Fix doctest ofadd_linear_constraint_vector
- #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 ofadd_variables
andadd_linear_constraints
- #20328: tests related to cplex / gurobi
- #20360: Add
sig_on
/sig_off
to COINBackend
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
- #20351:
sage.libs.ppl.MIP_Problem
: Add support for integer variables - #19592: PPL Variables cannot be saved
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 methods - #18735:
MixedIntegerLinearProgram
/HybridBackend
: Reconstruct exact rational/algebraic basic solution - #19219: MILP: Add "CyLP" backend
- #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)
- #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
- #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
enhancements - #20203:
LPCleanDictionary
- floating-point helper class for interactive simplex method - #18804:
LPBackendDictionary
- a debugging view of a MIP backend connected tointeractive_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 - #20415
Polyhedron.to_linear_program
should select solver bybase_ring
Applications:
Change History (42)
comment:1 Changed 6 years ago by
- Description modified (diff)
comment:2 Changed 6 years ago by
- Description modified (diff)
comment:3 Changed 6 years ago by
- Cc vdelecroix added
comment:4 Changed 6 years ago by
- Dependencies set to #20296
comment:5 Changed 6 years ago by
- Description modified (diff)
comment:6 Changed 6 years ago by
- Description modified (diff)
comment:7 Changed 6 years ago by
comment:8 Changed 6 years ago by
- Cc vbraun added
- Description modified (diff)
- Summary changed from Clean up MILP backend interface to Meta-ticket: Improvements to MixedIntegerLinearProgram and its backends
- Type changed from defect to task
comment:9 Changed 6 years ago by
- Description modified (diff)
comment:10 Changed 6 years ago by
- Description modified (diff)
comment:11 Changed 6 years ago by
- Cc jdemeyer added
comment:12 Changed 6 years ago by
- Description modified (diff)
comment:13 Changed 6 years ago by
- Description modified (diff)
comment:14 Changed 6 years ago by
- Description modified (diff)
comment:15 Changed 6 years ago by
- Description modified (diff)
comment:16 Changed 6 years ago by
- Description modified (diff)
comment:17 Changed 6 years ago by
- Description modified (diff)
comment:18 Changed 6 years ago by
- Description modified (diff)
comment:19 Changed 6 years ago by
- Description modified (diff)
comment:20 Changed 6 years ago by
- Description modified (diff)
comment:21 Changed 6 years ago by
- Description modified (diff)
comment:22 Changed 6 years ago by
- Description modified (diff)
comment:23 Changed 6 years ago by
- Description modified (diff)
comment:24 Changed 6 years ago by
- Description modified (diff)
comment:25 Changed 6 years ago by
- Description modified (diff)
comment:26 Changed 6 years ago by
- Description modified (diff)
comment:27 Changed 6 years ago by
- Description modified (diff)
comment:28 Changed 6 years ago by
- Description modified (diff)
comment:29 Changed 6 years ago by
- Description modified (diff)
comment:30 Changed 6 years ago by
- Description modified (diff)
comment:31 Changed 6 years ago by
- Description modified (diff)
comment:32 Changed 6 years ago by
- Description modified (diff)
comment:33 Changed 6 years ago by
- Description modified (diff)
comment:34 Changed 6 years ago by
- Description modified (diff)
comment:35 Changed 6 years ago by
- Description modified (diff)
comment:36 Changed 6 years ago by
- Description modified (diff)
comment:37 Changed 6 years ago by
- Description modified (diff)
comment:38 Changed 6 years ago by
- Description modified (diff)
comment:39 Changed 6 years ago by
- Description modified (diff)
comment:40 Changed 6 years ago by
- Description modified (diff)
comment:41 Changed 6 years ago by
- Description modified (diff)
comment:42 Changed 6 years ago by
- Description modified (diff)
Note: See
TracTickets for help on using
tickets.
Description modified to remove my comments about
variable_upper_bound
andvariable_lower_bound
. I was misled by the interface description inGenericBackend
, which was out of sync with the real backends. Fixed in #20296