dimod.binary.BinaryQuadraticModel.add_linear_inequality_constraint¶
- BinaryQuadraticModel.add_linear_inequality_constraint(terms: Iterable[Tuple[Hashable, int]], lagrange_multiplier: Union[float, numpy.floating, numpy.integer], label: str, constant: int = 0, lb: int = - 9223372036854775808, ub: int = 0, cross_zero: bool = False) Iterable[Tuple[Hashable, int]] [source]¶
Add a linear inequality constraint as a quadratic objective.
The linear inequality constraint is of the form: \(lb <= \sum_{i,k} a_{i,k} x_{i,k} + constant <= ub\).
For constraints with fractional coefficients, multiply both sides of the inequality by an appropriate factor of ten to attain or approximate integer coefficients.
- Parameters
terms – Values of the \(\sum_{i} a_{i} x_{i}\) term as an \(i\)–length iterable of 2-tuples,
(variable, bias)
, with each tuple constituting a term in the summation.lagrange_multiplier – Weight or penalty strength. The linear constraint is multiplied by this value (which does not appear explicitly in the above equation) when added to the binary quadratic model.
label – Prefix for labels of any slack variables used in the added objective.
constant – Value of the constant term of the linear constraint.
lb – Lower bound for the constraint.
ub – Upper bound for the constraint.
cross_zero – When True, adds zero to the domain of constraint.
- Returns
Values of \(\sum_{i} b_{i} slack_{i}\) as an \(i\)–length iterable of 2-tuples,
(slack variable, bias)
, with each tuple constituting a term in the summation.- Return type
slack_terms