假设我有 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/