2013-07-02 39 views
4

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

谢谢你的回答。

回答

7

有一个在NetworkX一个函数调用is_isomorphic()

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

下面是从页的例子:

>>> 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 
+0

@cpburnz函数本身是很简单的。您可以检查两个图在边和节点方面是否相同。你也可以检查重量。 –