python - NetworkX:边和节点属性的子图同构

标签 python networkx subgraph isomorphism

假设我有 2 个图 A 和 B,我想知道 A 是否是 B 的子图。 节点包含属性,例如“尺寸”和“ Material ”。

当我运行时:

GM = networkx.algorithms.isomorphism.GraphMatcher(B,A)
print networkx.algorithms.isomorphism.subgraph_is_isomorphic()

这仅按边匹配图,不按边和属性匹配图。

关于如何检查属性的任何线索?

此外,假设 B 包含 A 的 2 个连通图。

当我运行时:

GM.mapping

这将只输出 A 的子图的 1 个。关于如何输出每个子图的任何想法?

最佳答案

我已经通过使用解决了这个问题:

print GM = iso.GraphMatcher(B,A,node_match=iso.categorical_node_match(['material', 'size'],['metal',1]))

我之前不知道的是,['metal',1] 只是一个默认值,并不是硬匹配。

关于python - NetworkX:边和节点属性的子图同构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15671522/

相关文章:

performance - 连接两组节点的高效密码查询匹配子图

algorithm - 模糊图匹配

python - 如何在 JSON 字符串中的字典中获取字典?

python - 如何在具有相似名称和相同类型的多个对象上调用方法?

python - 访问 networkx 节点和属性

networkx - 使用 draw_networkx(),如何显示多个绘图窗口?

graphviz - 我怎样才能得到点来并排绘制连接的子图?

python - 在 numpy 中禁用静默转换

python - Pandas.Series 就像一个固定大小的字典 : What does it mean

python - 如何在 python networkx 中显示图形节点的标签