You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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).
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
.Note that
add_col
is not used byMixedIntegerLinearProgram
; it is only used in doctests of the backends.Also,
GurobiBackend
does not implementadd_col
(this is fixed in #20424).(Also compare with
add_linear_constraint
, which takes a zipped index/coefficient list, whereasadd_col
takes two parallel lists.)While making this change, should also clarify the defaulting behavior of the
binary
,continuous
,integer
arguments ofadd_variable
. The argument list is: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 MIP backends: Make variable type consistent between add_variable, set_variable_type (with deprecation) #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.CC: @dimpase @nathanncohen @videlec
Component: numerical
Issue created by migration from https://trac.sagemath.org/ticket/20324
The text was updated successfully, but these errors were encountered: