rustworkx.is_isomorphic_node_match#

is_isomorphic_node_match(first, second, matcher, id_order=True)[source]#

判断两个图是否同构

这个检查判断两个图是否在结构上同构,并且通过提供的匹配器函数比较节点数据。匹配器函数接收两个节点数据对象并进行比较。一个简单的示例是检查它们是否相同:

graph_a = rustworkx.PyDAG()
graph_b = rustworkx.PyDAG()
rustworkx.is_isomorphic_node_match(graph_a, graph_b,
                                lambda x, y: x == y)

注意

对于大型图更好的性能, 建议设置 id_order=False.

Parameters:
  • first – 用于比较的第一个图形。可以是 PyGraphPyDiGraph

  • second – 待比较的第二个图。可以是 PyGraphPyDiGraph。 它应该与第一个图属于相同类型。

  • matchercallable)– 一个Python可调用对象,接收2个位置参数 (每个节点数据对象分别传入一个)。如果此函数返回结果 评估为True,则传入的节点将被视为匹配。

  • id_order (布尔值) – 如果设置为 False,此函数将使用基于[VF2]论文的启发式匹配顺序。否则将默认按照节点ID指定的顺序进行匹配。

Returns:

True 如果两个图是同构的 False 如果它们不是。

Return type:

布尔型