Warning

This documents an unmaintained version of NetworkX. Please upgrade to a maintained version and see the current NetworkX documentation.

# 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. P – The Cartesian product of G and H. P will be a multi-graph if either G or H is a multi-graph. Will be a directed if G and H are directed, and undirected if G and H are undirected. NetworkX graph NetworkXError – If G and H are not both directed or both undirected.

Notes

Node attributes in P are two-tuple of the G and H node attributes. Missing attributes are assigned None.

Examples

>>> G = nx.Graph()
>>> H = nx.Graph()