# dwave.embedding.embed_bqm¶

embed_bqm(source_bqm, embedding=None, target_adjacency=None, chain_strength=None, smear_vartype=None)[source]

Embed a binary quadratic model onto a target graph.

Parameters: source_bqm (BinaryQuadraticModel) – Binary quadratic model to embed. embedding (dict/EmbeddedStructure) – Mapping from source graph to target graph as a dict of form {s: {t, …}, …}, where s is a source-model variable and t is a target-model variable. Alternately, an EmbeddedStructure object produced by, for example, EmbeddedStructure(target_adjacency.edges(), embedding). If embedding is a dict, target_adjacency must be provided. target_adjacency (dict/networkx.Graph, optional) – Adjacency of the target graph as a dict of form {t: Nt, …}, where t is a variable in the target graph and Nt is its set of neighbours. This should be omitted if and only if embedding is an EmbeddedStructure object. chain_strength (float/mapping/callable, optional) – Magnitude of the quadratic bias (in SPIN-space) applied between variables to form a chain, with the energy penalty of chain breaks set to 2 * chain_strength. If a mapping is passed, a chain-specific strength is applied. If a callable is passed, it will be called on chain_strength(source_bqm, embedding) and should return a float or mapping, to be interpreted as above. By default, chain_strength is calculated with uniform_torque_compensation(). smear_vartype (Vartype, optional, default=None) – Determines whether the linear bias of embedded variables is smeared (the specified value is evenly divided as biases of a chain in the target graph) in SPIN or BINARY space. Defaults to the Vartype of source_bqm. Target binary quadratic model. BinaryQuadraticModel

Examples

This example embeds a triangular binary quadratic model representing a $$K_3$$ clique into a square target graph by mapping variable c in the source to nodes 2 and 3 in the target.

>>> import networkx as nx
...
>>> target = nx.cycle_graph(4)
>>> # Binary quadratic model for a triangular source graph
>>> h = {'a': 0, 'b': 0, 'c': 0}
>>> J = {('a', 'b'): 1, ('b', 'c'): 1, ('a', 'c'): 1}