dimod.BinaryQuadraticModel.from_networkx_graph

classmethod BinaryQuadraticModel.from_networkx_graph(G, vartype=None, node_attribute_name='bias', edge_attribute_name='bias')[source]

Create a binary quadratic model from a NetworkX graph.

Parameters:
  • G (networkx.Graph) – A NetworkX graph with biases stored as node/edge attributes.
  • 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 not provided, the G should have a vartype attribute. If vartype is provided and G.vartype exists then the argument overrides the property.

  • node_attribute_name (hashable, optional, default='bias') – Attribute name for linear biases. If the node does not have a matching attribute then the bias defaults to 0.
  • edge_attribute_name (hashable, optional, default='bias') – Attribute name for quadratic biases. If the edge does not have a matching attribute then the bias defaults to 0.
Returns:

BinaryQuadraticModel

Examples

>>> import networkx as nx
...
>>> G = nx.Graph()
>>> G.add_node('a', bias=.5)
>>> G.add_edge('a', 'b', bias=-1)
>>> bqm = dimod.BinaryQuadraticModel.from_networkx_graph(G, 'SPIN')
>>> bqm.adj['a']['b']
-1