Opened 4 years ago

Last modified 3 years ago

#18804 needs_work enhancement

LPBackendDictionary - a debugging view of a MIP backend connected to interactive_simplex_method

Reported by: mkoeppe Owned by:
Priority: major Milestone: sage-7.2
Component: numerical Keywords: lp
Cc: ncohen, yzh, zwang, novoselt, dimpase Merged in:
Authors: Aedi Wang Reviewers:
Report Upstream: N/A Work issues:
Branch: u/zwang/temp (Commits) Commit: 4f6d36698f929209f32901c0df15d8fd384a4e7b
Dependencies: #19471, #19472, #18734, #20203 Stopgaps:

Description (last modified by mkoeppe)

This is a follow-up on #18734.

This ticket creates:

  • a new class, LPBackendDictionary (inheriting from LPAbstractDictionary), would avoid going through InteractiveLP and rather be tied directly to the MILP backend, using tableau data query functions such as getBInvArow etc.

(It would be in a separate file perhaps interactive_backend_dictionary.py, so as not to add clutter to the didactical implementation in interactive_simplex_method.py.)

#18732 added most of the missing functions for retrieving the data of the dictionary (for the GLPK backend) such as getBInvARow etc. The remaining functions are provided by #19472. #18763 and #19471 do the same for the COIN backend.

See also: #18733

Doctests could then test that:

  • A backend has implemented all the necessary methods to get tableau information.
  • The information is consistent, by checking that the LPBackendDictionary (in this ticket) and the LPDictionary (created in #18734) are the same.

Change History (15)

comment:1 Changed 4 years ago by mkoeppe

  • Description modified (diff)
  • Keywords lp added

comment:2 Changed 3 years ago by zwang

  • Branch set to u/zwang/temp

comment:3 Changed 3 years ago by mkoeppe

  • Authors set to Aedi Wang
  • Commit set to 440ed874635c88940bc0f06c6ed1e913c29d9042
  • Dependencies set to #19471, #19472
  • Description modified (diff)

New commits:

440ed87backend dictionaries

comment:4 Changed 3 years ago by git

  • Commit changed from 440ed874635c88940bc0f06c6ed1e913c29d9042 to aa8bdc1fd054699b8997f686c69725577cd3dbff

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

1e5f5f6improve style, fix bug, now complete
b402777rename general_backend_dictionary
0e97b61add coin option
e46a9b6CleanDictionary quick draft
cc496c0clean dictionary
3f972c2fix interactive_lp_problem()
bd6954babstract backend dictionary renamed
1cb502aselective import messages
cbb3d3eclean dictionary done
aa8bdc1Merge branch 'u/zwang/temp' of git://trac.sagemath.org/sage into temp

comment:5 Changed 3 years ago by git

  • Commit changed from aa8bdc1fd054699b8997f686c69725577cd3dbff to ec1f1675c382520b89e7798af4cec86375da83fb

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

ec1f167backend dictionaries

comment:6 Changed 3 years ago by mkoeppe

  • Dependencies changed from #19471, #19472 to #19471, #19472, #18734
  • Milestone changed from sage-6.8 to sage-6.10
  • Status changed from new to needs_review

comment:7 Changed 3 years ago by mkoeppe

  • Branch changed from u/zwang/temp to u/mkoeppe/temp

comment:8 Changed 3 years ago by mkoeppe

  • Commit changed from ec1f1675c382520b89e7798af4cec86375da83fb to b0f388ea4cddb638f7fc3b97f1d8caf9509aac75
  • Status changed from needs_review to needs_work

New commits:

2848cf6backend dictionaries
b0f388eMerge commit 'e8ffa20d8d' into t/18804/temp

comment:9 Changed 3 years ago by mkoeppe

  • Milestone changed from sage-6.10 to sage-7.2

comment:10 Changed 3 years ago by git

  • Commit changed from b0f388ea4cddb638f7fc3b97f1d8caf9509aac75 to fd5da14d17fe2398ac6fefab01d3bf3b0cb708f7

Branch pushed to git repo; I updated commit sha1. New commits:

e94b9e4Documentation fixes
639b1e6LPAbstractBackendDictionary: Use GLPK instead of COIN for testing
3b84083Use interactive_linear_program instead of interactive_lp_problem
bc86ca1Use ZZ instead of int
fd5da14Make all test problems bounded

comment:11 Changed 3 years ago by git

  • Commit changed from fd5da14d17fe2398ac6fefab01d3bf3b0cb708f7 to f45615cdcdb68bdda0bb78f591845309ef283f4f

Branch pushed to git repo; I updated commit sha1. New commits:

f45615cDoc fixes

comment:12 Changed 3 years ago by git

  • Commit changed from f45615cdcdb68bdda0bb78f591845309ef283f4f to 3866f3a49ac2d95c9961eaaf5a49d41a65462936

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

067b75dclean_dictionary.py copied from f45615c
82ce16abackend dictionaries
b369b9eDocumentation fixes
8c20137LPAbstractBackendDictionary: Use GLPK instead of COIN for testing
3866f3aUse interactive_linear_program instead of interactive_lp_problem

comment:13 Changed 3 years ago by mkoeppe

Rebased on top of #20203.

comment:14 Changed 3 years ago by zwang

  • Branch changed from u/mkoeppe/temp to u/zwang/temp

comment:15 Changed 3 years ago by mkoeppe

  • Commit changed from 3866f3a49ac2d95c9961eaaf5a49d41a65462936 to 4f6d36698f929209f32901c0df15d8fd384a4e7b
  • Dependencies changed from #19471, #19472, #18734 to #19471, #19472, #18734, #20203

New commits:

6cad314add objective_name() to dictionary interface
288e6f7Doc fix
62b9ec6clean_dictionary.py copied from f45615c
7bdddd4revise doc tests and implementation to use LPDictionary
a3c2ae4backend dictionaries
0ec1237Documentation fixes
835a228LPAbstractBackendDictionary: Use GLPK instead of COIN for testing
925499eUse interactive_linear_program instead of interactive_lp_problem
7f51310add objective_name()
4f6d366revise dictionary() to use objective_name()
Note: See TracTickets for help on using tickets.