12

测试两个 NetworkX 图是否相同(即相同的节点集、每个节点上的相同节点属性、相同的边集和每条边上的相同边属性)的最有效方法是什么?假设我们知道这两个图属于同一类。

谢谢你的好意回答。

4

1 回答 1

21

NetworkX 中有一个函数叫做is_isomorphic()

https://networkx.github.io/documentation/stable/reference/algorithms/generated/networkx.algorithms.isomorphism.is_isomorphic.html#networkx.algorithms.isomorphism.is_isomorphic

这是该页面的示例:

>>> import networkx.algorithms.isomorphism as iso
>>> G1 = nx.DiGraph()
>>> G2 = nx.DiGraph()
>>> G1.add_path([1,2,3,4],weight=1)
>>> G2.add_path([10,20,30,40],weight=2)
>>> em = iso.numerical_edge_match('weight', 1)
>>> nx.is_isomorphic(G1, G2)  # no weights considered
True
>>> nx.is_isomorphic(G1, G2, edge_match=em) # match weights
False
于 2014-11-07T17:59:26.790 回答