#20324: MIP backends: Unify add_col, add_variable; and clarify defaulting
behavior
of binary, continuous, integer
-------------------------------+------------------------
Reporter: mkoeppe | Owner:
Type: enhancement | Status: new
Priority: major | Milestone: sage-7.2
Component: numerical | Resolution:
Keywords: lp | Merged in:
Authors: | Reviewers:
Report Upstream: N/A | Work issues:
Branch: | Commit:
Dependencies: | Stopgaps:
-------------------------------+------------------------
Description changed by mkoeppe:
Old description:
> `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 compare with `add_linear_constraint`, which takes a zipped
> index/coefficient list, whereas `add_col` takes two parallel lists.)
New description:
`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 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 (default:
``True`).
- `integer` - `True` if the variable is binary (default: `False`).
Probably the defaults in the arglist should be `None`, and defaulting to
creating continuous variables should be explained separately.
--
--
Ticket URL: <http://trac.sagemath.org/ticket/20324#comment:1>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.