dimod.utilities.qubo_to_ising¶

qubo_to_ising
(Q, offset=0.0)[source]¶ Convert a QUBO problem to an Ising problem.
Map a quadratic unconstrained binary optimization (QUBO) problem \(x' Q x\) defined over binary variables (0 or 1 values), where the linear term is contained along the diagonal of Q, to an Ising model defined on spins (variables with {1, +1} values). Return h and J that define the Ising model as well as the offset in energy between the two problem formulations:
\[x' Q x = offset + s' J s + h' s\]See
ising_to_qubo()
for the inverse function.Parameters:  Q (dict[(variable, variable), coefficient]) – QUBO coefficients in a dict of form {(u, v): coefficient, …}, where keys are 2tuples of variables of the model and values are biases associated with the pair of variables. Tuples (u, v) represent interactions and (v, v) linear biases.
 offset (numeric, optional, default=0) – Constant offset to be applied to the energy. Default 0.
Returns: A 3tuple containing:
dict: Linear coefficients of the Ising problem.
dict: Quadratic coefficients of the Ising problem.
float: New energy offset.
Return type: Examples
This example converts a QUBO problem of two variables that have positive biases of value 1 and are positively coupled with an interaction of value 1 to an Ising problem.
>>> import dimod >>> Q = {(1, 1): 1, (2, 2): 1, (1, 2): 1} >>> dimod.qubo_to_ising(Q, 0.5) # doctest: +SKIP ({1: 0.75, 2: 0.75}, {(1, 2): 0.25}, 1.75)