dimod.higherorder.utils.make_quadratic¶
-
make_quadratic(poly, strength, vartype=None, bqm=None)[source]¶ Create a binary quadratic model from a higher order polynomial.
Parameters: - poly (dict) – Polynomial as a dict of form {term: bias, …}, where term is a tuple of variables and bias the associated bias.
- strength (float) – The energy penalty for violating the prodcut constraint. Insufficient strength can result in the binary quadratic model not having the same minimizations as the polynomial.
- vartype (
Vartype/str/set, optional) –Variable type for the binary quadratic model. Accepted input values:
Vartype.SPIN,'SPIN',{-1, 1}Vartype.BINARY,'BINARY',{0, 1}
If bqm is provided, vartype is not required.
- bqm (
BinaryQuadraticModel, optional) – The terms of the reduced polynomial are added to this binary quadratic model. If not provided, a new binary quadratic model is created.
Returns: Examples
>>> poly = {(0,): -1, (1,): 1, (2,): 1.5, (0, 1): -1, (0, 1, 2): -2} >>> bqm = dimod.make_quadratic(poly, 5.0, dimod.SPIN)