论文标题
通过利用搜索失败来快速子图匹配
Fast Subgraph Matching by Exploiting Search Failures
论文作者
论文摘要
子图匹配是一个计算密集型问题,要求列举数据图内查询图的所有同构嵌入。这个问题通常通过回溯解决,该问题会递归地进化出所有可能的部分嵌入,直到它成为同构嵌入或发现无法成为其。尽管现有方法通过在开始回溯之前通过分析图形结构来减少搜索空间,但对于复杂的图,它通常无效。在本文中,我们提出了一种用于子图匹配的有效算法,该算法在回溯过程中执行即时修剪。我们的主要思想是“从失败中学习”。也就是说,当发现部分嵌入无法成为同构嵌入时,我们的算法会产生故障模式。然后,在回溯的后续过程中,我们的算法修剪部分嵌入与故障模式相匹配。这种修剪不会改变结果,因为故障模式被设计为代表永不产生同构嵌入的条件。此外,我们引入了恒定时间模式匹配的故障模式的有效表示。实验结果表明,我们的方法比现有方法提高了10000倍的性能。
Subgraph matching is a compute-intensive problem that asks to enumerate all the isomorphic embeddings of a query graph within a data graph. This problem is generally solved with backtracking, which recursively evolves every possible partial embedding until it becomes an isomorphic embedding or is found unable to become it. While existing methods reduce the search space by analyzing graph structures before starting the backtracking, it is often ineffective for complex graphs. In this paper, we propose an efficient algorithm for subgraph matching that performs on-the-fly pruning during the backtracking. Our main idea is to `learn from failure'. That is, our algorithm generates failure patterns when a partial embedding is found unable to become an isomorphic embedding. Then, in the subsequent process of the backtracking, our algorithm prunes partial embeddings matched with a failure pattern. This pruning does not change the result because failure patterns are designed to represent the conditions that never yield an isomorphic embedding. Additionally, we introduce an efficient representation of failure patterns for constant-time pattern matching. The experimental results show that our method improves the performance by up to 10000 times than existing methods.