#20302: Meta-ticket: Improvements to MixedIntegerLinearProgram, its backends, 
and
InteractiveLinearProgram
-----------------------------+------------------------
       Reporter:  mkoeppe    |        Owner:
           Type:  task       |       Status:  new
       Priority:  major      |    Milestone:  sage-7.3
      Component:  numerical  |   Resolution:
       Keywords:  lp         |    Merged in:
        Authors:             |    Reviewers:
Report Upstream:  N/A        |  Work issues:
         Branch:             |       Commit:
   Dependencies:  #20296     |     Stopgaps:
-----------------------------+------------------------
Description changed by mkoeppe:

Old description:

> 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 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:
>  - #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
>  - #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
>  - #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
>
> 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`
>  - #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
>  - #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"
>
> 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
>  - #20876: GLPK: glp_exact ignores verbosity level
>
> 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
>  - #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`
>  - #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
>  - #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
>  - #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
>  - #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`
>  - #20570: `InteractiveLPProblem`: refactor `plot` 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 by
> `base_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 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)

New description:

 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 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:
  - #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
  - #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
  - #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

 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`
  - #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
  - #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"

 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
  - #20876: GLPK: glp_exact ignores verbosity level

 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
  - #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`
  - #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
  - #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
  - #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
  - #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`
  - #20570: `InteractiveLPProblem`: refactor `plot` 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 by
 `base_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 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)

--

--
Ticket URL: <https://trac.sagemath.org/ticket/20302#comment:68>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to