首页 > 解决方案 > 在 NetworkX 中检查具有各种顶点标签的同构图的相等性

问题描述

我知道无论顶点标签如何都要检查 2 个图的相等性,可以使用is_isomorphic()NetworkX 中的函数。但是,我有一组具有固定数量的节点、边和连通性的图,也就是说,它们都是彼此同构的,但顶点的标签不断变化。在这种情况下,如何检查所有顶点标签也需要相同的图的相等性?

每个图表如下所示。每个顶点都由一个长字符串标记。 在此处输入图像描述

标签: pythongraphnetworkxisomorphism

解决方案


如您的文档中所述,is_isomorphic您可以为此使用node_match参数。它还有两个已经实现的方法来比较基于节点属性的相等性:numerical_node_matchcategorical_node_match. 在这两种情况下,您都需要提供节点属性的名称和默认值。

如果直接要使用节点标签,即节点id,例如020000010000 in G == True。然后您可以使用convert_node_labels_to_integerswithlabel_attribute="label"和之后使用categorical_node_match("label", None)或创建自己的node_match函数。


推荐阅读