在NetworkX中测试图表相等

Mos*_* Xu 8 python networkx

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

谢谢你的回答.

小智 14

NetworkX中有一个名为is_isomorphic()的函数

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

以下是该页面的示例:

>>> 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
Run Code Online (Sandbox Code Playgroud)