dwavebinarycsp.Constraint.from_func

classmethod Constraint.from_func(func, variables, vartype, name=None)[source]

Construct a constraint from a validation function.

Parameters:
  • func (function) – Function that evaluates True when the variables satisfy the constraint.
  • variables (iterable) – Iterable of variable labels.
  • vartype (Vartype/str/set) –

    Variable type for the constraint. Accepted input values:

  • name (string, optional, default='Constraint') – Name for the constraint.

Examples

This example creates a constraint that binary variables a and b are not equal.

>>> import dwavebinarycsp
>>> import operator
>>> const = dwavebinarycsp.Constraint.from_func(operator.ne, ['a', 'b'], 'BINARY')
>>> print(const.name)
Constraint
>>> (0, 1) in const.configurations
True

This example creates a constraint that \(out = NOT(x)\) for spin variables.

>>> import dwavebinarycsp
>>> def not_(y, x):  # y=NOT(x) for spin variables
...     return (y == -x)
...
>>> const = dwavebinarycsp.Constraint.from_func(
...               not_,
...               ['out', 'in'],
...               {1, -1},
...               name='not_spin')
>>> print(const.name)
not_spin
>>> (1, -1) in const.configurations
True