Opened 5 years ago
Last modified 2 years ago
#20324 new enhancement
MIP backends: Unify add_col, add_variable; and clarify defaulting behavior of binary, continuous, integer
Reported by: | mkoeppe | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | sage-7.2 |
Component: | numerical | Keywords: | lp |
Cc: | dimpase, ncohen, vdelecroix | Merged in: | |
Authors: | Reviewers: | ||
Report Upstream: | N/A | Work issues: | |
Branch: | Commit: | ||
Dependencies: | Stopgaps: |
Description (last modified by )
add_col
and add_variable
both add a variable to the problem; but add_col
only allows to add a column with no name; whereas add_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 deprecate add_col
.
Note that add_col
is not used by MixedIntegerLinearProgram
; it is only used in doctests of the backends.
Also, GurobiBackend
does not implement add_col
(this is fixed in #20424).
(Also compare with add_linear_constraint
, which takes a zipped index/coefficient list, whereas add_col
takes two parallel lists.)
While making this change, should also clarify the defaulting behavior of the binary
, continuous
, integer
arguments of add_variable
. The argument list is:
cpdef int add_variable(self, lower_bound=0.0, upper_bound=None, binary=False, continuous=False, integer=False, obj=0.0, name=None)
Whereas the documentation says:
binary
-True
if the variable is binary (default:False
).continuous
-True
if the variable is binary [SIC!] (default:True
).integer
-True
if the variable is binary [SIC!] (default:False
).
Probably the defaults in the arglist should be None
, and defaulting to creating continuous variables should be explained separately.
(See #20362 for a discussion of a possible better interface and the mismatch with set_variable_type
.)
Also #23600 should be fixed: the signatures of the cpdef
functions should be the same in all implementations to fix Cython vtable warnings.
Change History (9)
comment:1 Changed 5 years ago by
- Description modified (diff)
- Summary changed from MIP backends: Unify add_col, add_variable to MIP backends: Unify add_col, add_variable; and clarify defaulting behavior of binary, continuous, integer
comment:2 Changed 5 years ago by
- Description modified (diff)
comment:3 Changed 5 years ago by
- Description modified (diff)
comment:4 Changed 5 years ago by
- Description modified (diff)
comment:5 Changed 5 years ago by
- Description modified (diff)
comment:6 Changed 5 years ago by
- Dependencies set to #20424
comment:7 Changed 5 years ago by
- Description modified (diff)
comment:8 Changed 3 years ago by
- Dependencies #20424 deleted
- Description modified (diff)
comment:9 Changed 2 years ago by
- Description modified (diff)