问题描述
我知道要检查2个图的相等性,而不考虑顶点标签,一个可以使用NetworkX中的is_isomorphic()
函数。但是,我有一组图,它们具有固定数量的节点,边和连通性,即,它们彼此同构,但是顶点的标签不断变化。在这种情况下,如何检查所有顶点标签也必须相同的图的相等性?
解决方法
如is_isomorphic
文档中所述,您可以为此使用node_match
参数。它还有两种已经实现的基于节点属性比较相等性的方法:numerical_node_match
和categorical_node_match
。在这两种情况下,您都需要提供节点属性的名称和默认值。
如果您直接想要使用节点标签,即节点ID,例如020000010000 in G == True
。然后,您可以将convert_node_labels_to_integers
与label_attribute="label"
一起使用,然后再使用categorical_node_match("label",None)
或创建自己的node_match
函数。