networkx.algorithms.operators.product.strong_product¶

strong_product
(G, H)[source]¶ Returns the strong product of G and H.
The strong product \(P\) of the graphs \(G\) and \(H\) has a node set that is the Cartesian product of the node sets, \(V(P)=V(G) \times V(H)\). \(P\) has an edge \(((u,v), (x,y))\) if and only if \(u==v\) and \((x,y)\) is an edge in \(H\), or \(x==y\) and \((u,v)\) is an edge in \(G\), or \((u,v)\) is an edge in \(G\) and \((x,y)\) is an edge in \(H\).
 Parameters
G, H (graphs) – Networkx graphs.
 Returns
P – The Cartesian product of G and H. P will be a multigraph if either G or H is a multigraph. Will be a directed if G and H are directed, and undirected if G and H are undirected.
 Return type
NetworkX graph
 Raises
NetworkXError – If G and H are not both directed or both undirected.
Notes
Node attributes in P are twotuple of the G and H node attributes. Missing attributes are assigned None.
Examples
>>> G = nx.Graph() >>> H = nx.Graph() >>> G.add_node(0, a1=True) >>> H.add_node('a', a2='Spam') >>> P = nx.strong_product(G, H) >>> list(P) [(0, 'a')]
Edge attributes and edge keys (for multigraphs) are also copied to the new product graph