Discrete Quadratic Models#
The discrete quadratic model (DQM) is a polynomial over discrete variables,
with all terms of degree two or less, where a discrete variable represents some
collection of distinct values, such as {red, green, blue, yellow}
or
{3.2, 67}
, which are called the variable’s cases.
A discrete quadratic model may be defined as
where \(\bf{d}_i\) are the discrete variables, \(a_i()\) and \(b_{i,j}()\) are real-valued functions, and \(c\) is a constant (offset).
You can represent any DQM with an equivalent model over binary variables by replacing each discrete variable, \(\bf{d}_i\), with a vector of binary variables using one-hot encoding, where exactly one binary variable is True and all others are False: \(\sum_a x_{i,a} = 1 \quad \forall i\).
In particular, a discrete quadratic model for \(N\) discrete variables, \(\bf{d}_i\), each with \(n_i\) cases, is then defined by using a binary variable, \(x_{i,u}\), to indicate whether discrete variable \(\bf{d}_i\) is set to case \(u\). The objective function can be expressed by the equation:
Both representations are equivalent over the feasible space; that is, the solutions that meet the one-hot-encoding constraints. The second representation ascribes energies both to the feasible space (satisfying constraints), and an infeasible space (violating constraints). The second representation is used by Ocean tools.
The dimod.DiscreteQuadraticModel
class can contain this model and its
methods provide convenient utilities for working with representations
of a problem.
These models and their use in solving problems on the D-Wave system are described in the following documentation:
Example Map Coloring: Hybrid DQM Sampler
Shows an example of using Leap‘s hybrid DQM solver,
hybrid_binary_quadratic_model_version<x>
, to solve a map coloring problem.dimod.DiscreteQuadraticModel
class documentationDescribes the DQM class and its methods.
LeapHybridDQMSampler
class documentationDescribes Leap’s DQM solver API.