【问题标题】:Find the subgraph that matches with the query graph?找到与查询图匹配的子图?
【发布时间】:2013-10-23 14:21:03
【问题描述】:

我有一个无向图G。由于G 是顶点和边的集合,所以我想把它当作一个“数据库”。

现在我有一个查询图H,它保证是G的子图。我怎样才能知道H 对应于G 的哪一部分?

这个问题与这里的现有问题不同,因为基本上我知道HG 的一部分。

【问题讨论】:

  • 考虑将您的问题标记为迁移到cs.SE

标签: graph-theory graph-algorithm subgraph


【解决方案1】:

判断一个图是否是另一个图的子图,即子图同构问题是 NP 完全的。许多图形处理系统使用的一种解决方法是图形索引。它减少了必须超过子图同构测试的候选图的数量。索引创建有很多变体,对此有很多研究,也有很多论文可用。这些是我发现有用的一些示例论文: graph indexing: a frequent strucutre-based approach - 这是一个很老的问题,但问题解释得很好,非常有利于阅读。 GRAPES: A software for parallel searching on biological graphs - 这也值得一读,它很好地解释了图形索引过程。

【讨论】:

  • 我不会说图索引是一种绕过子图同构的 NP 硬度的方法。图索引可以帮助解决的是当一个人有许多查询图(H1,H2,...),并且想要预先花费大量时间和空间来建立一个图索引,然后解决 SI(H1, G ), SI(H2, G), ... 快速利用索引。
【解决方案2】:

这是Subgraph isomorphism problem。如果您不限制查询图,则它是 NP 完全的(因为您可以采用 H 哈密顿循环)。如果图 H 非常小(固定),您可以在多项式时间内找到 G 中 H 的副本(通过简单的蛮力或通过维基百科页面中提到的算法)。

【讨论】:

    猜你喜欢
    • 2012-09-11
    • 1970-01-01
    • 2021-06-21
    • 1970-01-01
    • 2018-08-20
    • 1970-01-01
    • 1970-01-01
    • 2016-07-25
    • 1970-01-01
    相关资源
    最近更新 更多