hybrid.utils.bqm_induced_by¶

bqm_induced_by
(bqm, variables, sample)[source]¶ Induce a binary quadratic model by fixing values of boundary variables.
The function is optimized for
len(variables) << len(bqm)
, that is, for fixing the majority of variables.Parameters:  bqm (
dimod.BinaryQuadraticModel
) – Binary quadratic model (BQM).  variables (list/set) – Subset of variables to keep in the reduced BQM, typically a subgraph.
 sample (dict/list) – Mapping of variable labels to values or a list when labels are sequential integers. Values are required only for boundary variables, that is, for variables with interactions with variables (having edges with nonzero quadratic biases connected to the subgraph).
Returns: A BQM induced by fixing values of those variables adjacent to its subset of variables and setting the energy offset to zero.
Return type: Examples
This example induces a 2variable BQM from a 6variable path graph—the subset of nodes 2 and 3 of nodes 0 to 5—by fixing values of boundary variables 1 and 4.
>>> import dimod >>> import networkx as nx >>> bqm = dimod.BinaryQuadraticModel({}, ... {edge: edge[0] + 0.5 for edge in set(nx.path_graph(6).edges)}, 0, 'BINARY') >>> sample = {1: 3, 4: 3} >>> bqm_induced_by(bqm, [2, 3], sample) BinaryQuadraticModel({2: 4.5, 3: 10.5}, {(2, 3): 2.5}, 0.0, Vartype.BINARY)
 bqm (