dimod.binary.BinaryQuadraticModel.add_linear_equality_constraint#

BinaryQuadraticModel.add_linear_equality_constraint(terms: Iterable[Tuple[Hashable, float | floating | integer]], lagrange_multiplier: float | floating | integer, constant: float | floating | integer)[source]#

Add a linear constraint as a quadratic objective.

Adds a linear constraint of the form \(\sum_{i} a_{i} x_{i} + C = 0\) to the binary quadratic model as a quadratic objective.

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.

  • constant – Value of the constant term, \(C\), of the linear constraint.

Examples

>>> bqm = dimod.BinaryQuadraticModel("BINARY")
>>> bqm.add_linear_equality_constraint([("x1", 5), ("x2", -2)], 10, -3)
>>> print(bqm)
BinaryQuadraticModel({'x1': -50.0, 'x2': 160.0}, {('x2', 'x1'): -200.0}, 90.0, 'BINARY')