在NetworkX中测试图表相等

时间:2013-07-02 14:39:52

标签: python networkx

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

谢谢你的回答。

1 个答案:

答案 0 :(得分:12)

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
相关问题