tensor_product#

tensor_product(G, H)[source]#

返回图 G 和 H 的张量积。

\(G\)\(H\) 的张量积 \(P\) 的节点集是节点集的笛卡尔积,即 \(V(P)=V(G) \times V(H)\)\(P\) 存在边 \(((u,v), (x,y))\) 当且仅当 \((u,x)\)\(G\) 中的边且 \((v,y)\)\(H\) 中的边。

张量积有时也称为范畴积、直积、基数积或合取。

参数:
G, H: 图

NetworkX 图。

返回:
P: NetworkX 图

G 和 H 的张量积。如果 G 或 H 是多重图,P 将是多重图;如果 G 和 H 都是有向图,P 将是有向图;如果 G 和 H 都是无向图,P 将是无向图。

抛出:
NetworkXError

如果 G 和 H 不同为有向图或同为无向图。

注意

P 中的节点属性是 G 和 H 节点属性的二元组。缺失的属性被赋值为 None。

示例

>>> G = nx.Graph()
>>> H = nx.Graph()
>>> G.add_node(0, a1=True)
>>> H.add_node("a", a2="Spam")
>>> P = nx.tensor_product(G, H)
>>> list(P)
[(0, 'a')]

边属性和边键(用于多重图)也会复制到新的乘积图。