Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MixedIntegerLinearProgram should support tableau-query methods getBInvARow, getBInvRow, getBInvACol, getBInvCol #18733

Open
mkoeppe opened this issue Jun 19, 2015 · 5 comments

Comments

@mkoeppe
Copy link
Contributor

mkoeppe commented Jun 19, 2015

If one uses Sage's MixedIntegerLinearProgram class for solving an LP, it is useful to access dictionary (tableau) data corresponding to the current (often optimal) basis. For example, one needs this to compute tableau cutting planes such as Gomory's fractional cut.

The Sage interface should, of course, be designed to work consistently across all solvers. There are some subtleties here. Best to be compatible with a library that has already sorted most of it out: In the COIN open solver interface, there are the functions getBInvARow, getBInvRow, getBInvACol, getBInvCol.
Unfortunately these functions do not seem to be implemented in Osi's GLPK backend; so one needs to use one of Osi more complete backends such as CPLEX or CLP to find the precise definition.

#18732 adds the necessary backend functions for the GLPK backend.
#18763 adds the necessary backend functions for the COIN (CBC/CLP) backend.

This kind of information is available in every solver.

See also #18688, and also #18804 (LPBackendDictionary).

Depends on #18732

CC: @nathanncohen @yuan-zhou

Component: numerical

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

@mkoeppe mkoeppe added this to the sage-6.8 milestone Jun 19, 2015
@dimpase

This comment has been minimized.

@dimpase
Copy link
Member

dimpase commented Jun 20, 2015

comment:2

Note that not all Sage's LP solvers use a simplex method. E.g. cvxopt does not. In this case is makes no sense talking about tableaux...

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Jun 20, 2015

comment:3

The methods would raise NotImplementedError or other errors when no tableau is available. Even if the backend uses the simplex method, these methods may raise an error when solve has not been called yet.

@mkoeppe

This comment has been minimized.

@mkoeppe

This comment has been minimized.

@mkoeppe mkoeppe removed this from the sage-6.8 milestone Dec 29, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants