Opened 5 years ago
Last modified 5 weeks ago
#20302 new task
Clean up MILP backend interface — at Version 2
Reported by: | mkoeppe | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | sage-9.3 |
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: | Stopgaps: |
Description (last modified by )
While implementing InteractiveLPBackend
for #20296, I noticed several deficiencies in the design of the MILP backend interface.
add_col
andadd_variable
both add a variable to the problem; butadd_col
only allows to add a column with no name; whereasadd_variable
only allows to add a column with no coefficients. There should be one function (add_variable
, probably - see #20296 for a possible interface) that can do both; should then deprecateadd_col
. (Also compare withadd_linear_constraint
, which takes a zipped index/coefficient list, whereasadd_col
takes two parallel lists.)
add_variables
andadd_linear_constraints
should have a default implementation inGenericBackend
, likeadd_linear_constraint_vector
.
Also, I think the backends should be tested using a common TestSuite
. Right now each backend uses its own doctests, which have slightly diverged from each other, so there is nothing (other than the fact that they were the result of copy-paste from each other) that ensures consistency. (#20296 fixes several wrong doctests in GenericBackend
, from which I tried to copy-paste, for example.)
Change History (2)
comment:1 Changed 5 years ago by
- Description modified (diff)
comment:2 Changed 5 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