检查networkx图是否是另一个的子图

时间:2014-04-18 09:29:23

标签: python graph-theory networkx

我有一个networkx图表G,我希望检查是否可以嵌入其他networkx图表H。简单的例子包括:

  • 检查G是否包含三角形(可以通过networkx.triangles完成)
  • 检查G是否包含长度为k
  • 的路径/周期
  • 检查G是否包含k叶的明星(这可以通过学位顺序完成)

我知道问题通常是 NP-complete ,但我想看看是否存在比天真更好的东西,或者你是否有关于如何编写这种方法的建议。

1 个答案:

答案 0 :(得分:1)

我一直在使用python中的图表做一些大量的工作,我建议使用networkx not 来解决更大的问题。由于该库是纯python,它适用于较小的图形和可移植性,但对于较大的子图同构,我发现graph-tool非常有效。

您在图形工具中寻找的函数调用位于拓扑部分:

graph_tool.topology.subgraph_isomorphism