Skip to main content
QUICK REVIEW

[论文解读] Deep Analysis on Subgraph Isomorphism

Li Zeng, Yan Jiang|arXiv (Cornell University)|Dec 12, 2020
Graph Theory and Algorithms参考文献 26被引用 6
一句话总结

本论文通过在相同平台上用C++重新实现七种最先进的子图同构算法,对它们进行了严格且公平的比较,消除了实现和平台带来的偏差。研究发现VF3、QuickSI和DAF在时间效率和内存消耗方面表现最佳,揭示了VF3和BoostISO中的关键错误,并表明基于索引的剪枝技术通常带来较高的开销,且性能提升并不稳定。

ABSTRACT

Subgraph isomorphism is a well-known NP-hard problem which is widely used in many applications, such as social network analysis and knowledge graph query. Its performance is often limited by the inherent hardness. Several insightful works have been done since 2012, mainly optimizing pruning rules and matching orders to accelerate enumerating all isomorphic subgraphs. Nevertheless, their correctness and performance are not well studied. First, different languages are used in implementation with different compilation flags. Second, experiments are not done on the same platform and the same datasets. Third, some ideas of different works are even complementary. Last but not least, there exist errors when applying some algorithms. In this paper, we address these problems by re-implementing seven representative subgraph isomorphism algorithms as well as their improved versions, and conducting comprehensive experiments on various graphs. The results show pros and cons of state-of-the-art solutions and explore new approaches to optimization.

研究动机与目标

  • 解决先前子图同构评估中因编程语言、编译标志、平台和数据集不同而产生的不一致性问题。
  • 在Linux平台上用C++重新实现七种具有代表性的子图同构算法(QuickSI、GraphQL、TurboISO、BoostISO、CFL-Match、VF3、CECI、DAF),以实现公平比较。
  • 识别并修正VF3(仅对诱导子图有效)和BoostISO(在某些情况下产生错误结果)中的关键实现错误。
  • 评估BoostISO的预处理技术与其他算法结合时的有效性。
  • 对不同类型图和查询集下的时间与内存性能进行全面的实证分析。

提出的方法

  • 使用相同的编译器和编译标志,在C++中重新实现所有七个算法,以确保平台和实现的一致性。
  • 在三个真实世界数据集(Human、Email、DBLP)上进行实验,使用稀疏和密集的查询图,以评估在不同条件下的性能表现。
  • 评估算法的原始版本和增强版本,将BoostISO的预处理技术应用于其他算法,以评估其通用优势。
  • 采用内存中执行方式,消除磁盘I/O的影响,专注于纯粹的算法性能。
  • 在所有数据集中使用标准化的查询集,以确保时间与内存消耗的公平比较。
  • 对实验结果进行深入分析,以识别性能趋势、权衡关系以及算法的优势与劣势。

实验结果

研究问题

  • RQ1在公平、受控的实验条件下,最先进的子图同构算法的性能特征如何比较?
  • RQ2当将BoostISO的预处理技术应用于其他算法时,其真实影响是什么?
  • RQ3为何具有复杂剪枝机制的基于索引的算法并未始终优于更简单的树搜索方法?
  • RQ4VF3和BoostISO中错误结果的根本原因是什么,它们如何影响性能?
  • RQ5在哪些场景下,算法的增强版本相比其原始版本能带来可测量的性能提升?

主要发现

  • 在时间效率方面,VF3、QuickSI和DAF位列前三名,且在大多数数据集上,VF3和QuickSI在时间和内存消耗方面均表现领先。
  • 尽管基于索引的算法具有复杂的剪枝机制,但树搜索算法(VF3和QuickSI)在时间和内存效率方面仍优于它们。
  • 各算法内存消耗的排名为:QuickSI < VF3 < GraphQL < CFL-Match < TurboISO < CECI < DAF,这直接反映了其索引结构的大小。
  • BoostISO的预处理技术在特定的“坏情况”下能有效提升性能,但整体收益有限,且其原始实现中存在错误,导致结果不正确。
  • 在DBLP数据集上,GQL+优于GQL,但其他增强版本(如VF3+)的表现反而劣于其非增强版本,原因在于递归调用开销增加。
  • DAF在密集查询集上表现出色,得益于其“失败集合”技术,该技术在大规模搜索空间中非常有效;而VF3和QuickSI在多种图类型中均保持高效。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。