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:  sage7.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 )
This is a followup on #18734.
This ticket creates:
 a new class,
LPBackendDictionary
(inheriting fromLPAbstractDictionary
), would avoid going throughInteractiveLP
and rather be tied directly to the MILP backend, using tableau data query functions such asgetBInvArow
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 theLPDictionary
(created in #18734) are the same.
Change History (15)
comment:1 Changed 4 years ago by
 Description modified (diff)
 Keywords lp added
comment:2 Changed 3 years ago by
 Branch set to u/zwang/temp
comment:3 Changed 3 years ago by
 Commit set to 440ed874635c88940bc0f06c6ed1e913c29d9042
 Dependencies set to #19471, #19472
 Description modified (diff)
comment:4 Changed 3 years ago by
 Commit changed from 440ed874635c88940bc0f06c6ed1e913c29d9042 to aa8bdc1fd054699b8997f686c69725577cd3dbff
Branch pushed to git repo; I updated commit sha1. Last 10 new commits:
1e5f5f6  improve style, fix bug, now complete

b402777  rename general_backend_dictionary

0e97b61  add coin option

e46a9b6  CleanDictionary quick draft

cc496c0  clean dictionary

3f972c2  fix interactive_lp_problem()

bd6954b  abstract backend dictionary renamed

1cb502a  selective import messages

cbb3d3e  clean dictionary done

aa8bdc1  Merge branch 'u/zwang/temp' of git://trac.sagemath.org/sage into temp

comment:5 Changed 3 years ago by
 Commit changed from aa8bdc1fd054699b8997f686c69725577cd3dbff to ec1f1675c382520b89e7798af4cec86375da83fb
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
ec1f167  backend dictionaries

comment:6 Changed 3 years ago by
 Dependencies changed from #19471, #19472 to #19471, #19472, #18734
 Milestone changed from sage6.8 to sage6.10
 Status changed from new to needs_review
comment:7 Changed 3 years ago by
 Branch changed from u/zwang/temp to u/mkoeppe/temp
comment:8 Changed 3 years ago by
 Commit changed from ec1f1675c382520b89e7798af4cec86375da83fb to b0f388ea4cddb638f7fc3b97f1d8caf9509aac75
 Status changed from needs_review to needs_work
comment:9 Changed 3 years ago by
 Milestone changed from sage6.10 to sage7.2
comment:10 Changed 3 years ago by
 Commit changed from b0f388ea4cddb638f7fc3b97f1d8caf9509aac75 to fd5da14d17fe2398ac6fefab01d3bf3b0cb708f7
Branch pushed to git repo; I updated commit sha1. New commits:
e94b9e4  Documentation fixes

639b1e6  LPAbstractBackendDictionary: Use GLPK instead of COIN for testing

3b84083  Use interactive_linear_program instead of interactive_lp_problem

bc86ca1  Use ZZ instead of int

fd5da14  Make all test problems bounded

comment:11 Changed 3 years ago by
 Commit changed from fd5da14d17fe2398ac6fefab01d3bf3b0cb708f7 to f45615cdcdb68bdda0bb78f591845309ef283f4f
Branch pushed to git repo; I updated commit sha1. New commits:
f45615c  Doc fixes

comment:12 Changed 3 years ago by
 Commit changed from f45615cdcdb68bdda0bb78f591845309ef283f4f to 3866f3a49ac2d95c9961eaaf5a49d41a65462936
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
067b75d  clean_dictionary.py copied from f45615c

82ce16a  backend dictionaries

b369b9e  Documentation fixes

8c20137  LPAbstractBackendDictionary: Use GLPK instead of COIN for testing

3866f3a  Use interactive_linear_program instead of interactive_lp_problem

comment:13 Changed 3 years ago by
Rebased on top of #20203.
comment:14 Changed 3 years ago by
 Branch changed from u/mkoeppe/temp to u/zwang/temp
comment:15 Changed 3 years ago by
 Commit changed from 3866f3a49ac2d95c9961eaaf5a49d41a65462936 to 4f6d36698f929209f32901c0df15d8fd384a4e7b
 Dependencies changed from #19471, #19472, #18734 to #19471, #19472, #18734, #20203
New commits:
6cad314  add objective_name() to dictionary interface

288e6f7  Doc fix

62b9ec6  clean_dictionary.py copied from f45615c

7bdddd4  revise doc tests and implementation to use LPDictionary

a3c2ae4  backend dictionaries

0ec1237  Documentation fixes

835a228  LPAbstractBackendDictionary: Use GLPK instead of COIN for testing

925499e  Use interactive_linear_program instead of interactive_lp_problem

7f51310  add objective_name()

4f6d366  revise dictionary() to use objective_name()

New commits:
backend dictionaries