- VF2算法是一种用于图同构匹配的算法,可以判断两个图是否同构。VF2算法最初由L. P. Cordella等人在1981年提出,后经过多次改进和优化,已成为常用的图同构匹配算法之一。
- VF2算法的基本思想是通过递归地搜索两个图的节点匹配,从而判断它们是否同构。具体来说,VF2算法将节点匹配分为两个部分:前向搜索和反向搜索。在前向搜索中,VF2算法尝试将源图和目标图的节点进行匹配,并检查它们是否满足一些限制条件,如相邻节点应该匹配到相邻节点等。在反向搜索中,VF2算法尝试回溯,寻找其他可能的匹配方式,直到找到所有的匹配或者无法再进行匹配为止。
- VF2算法的优点是可以高效地处理大规模图数据,并且可以发现非常复杂的同构关系。由于VF2算法是基于递归搜索的,因此它的实现比较简单,容易理解和扩展。VF2算法也被广泛应用于许多图形相关的应用程序中,如图像处理、计算机视觉、生物信息学、数据挖掘等。
- 需要注意的是,VF2算法只能处理节点数相同的两个图的同构匹配问题。如果两个图的节点数不同,那么需要使用其他算法,如Subgraph Isomorphism算法或者Maximum Common Subgraph算法等。
论文:
A (Sub)Graph Isomorphism Algorithm for Matching Large Graphs
Basic Information:
- Title: A (Sub)Graph Isomorphism Algorithm for Matching Large Graphs (匹配大型图的(子)图同构算法)
- Authors: Luigi P. Cordella, Pasquale Foggia, Carlo Sansone, and Mario Vento
- Affiliation: Dipartimento di Informatica e Sistemistica, Universita´ di Napoli \Federico II\ (Luigi P. Cordella)
- Keywords: Graph-subgraph isomorphism, large graphs, attributed relational graphs.
- URLs: https://ieeexplore.ieee.org/document/1334388, GitHub: None
摘要:
- a. 本文的研究背景:
- 本文提出了一种图同构和子图同构算法,该算法在处理大型图形时效率高。该算法是一种确定性的匹配方法,适用于验证同构和子图同构,并具有普遍的有效性,因为没有对图形拓扑 imposed的约束。该算法使用匹配过程的状态空间表示(SSR)和一组五个可行性规则来修建搜索树。可行性规则消除了不会导致完整解决方案的不一致状态的生成,并减少了搜索空间。该算法已在一个公开可用的合成图形数据库和从技术绘图领域的实际应用中获得的带属性的图形上进行了测试。结果证实了该方法的有效性,特别是在处理大型图形时。该算法在匹配时间方面优于Ullmann算法,并适用于匹配具有数千个节点和分支的图形。该算法是VF算法(一种初步版本的算法)的改进,因为它减少了内存要求。
- b. 过去的方法,它们的问题和动机:
- 过去的方法在处理大型图形时效率低下,且大多限制了图形拓扑的形状。为了完成更有效匹配,本文提出了一种改进的算法,遵循可行性规则以在不同应用中优化性能。
- c. 本文提出的研究方法:
- 本文提出了一种图匹配算法,使用可行性函数来探索搜索图。可行性函数取决于两个子函数:Fsyn,用于检查句法可行性,以及Fsem,用于检查语义可行性。该算法使用深度优先搜索策略来探索搜索图,并包括一个特殊过程以避免生成已访问的状态。通过考虑与G1(s)和G2(s)直接连接的节点集来计算候选配对集合P(s),并引入了可行性规则Rpred、Rsucc、Rin、Rout和Rnew以进行一致性检查和剪枝搜索树。文章讨论了几个实现问题、数据结构,并使用成本函数来定量评估两个节点或分支之间的不相似度。该算法旨在高效处理大型图形,其搜索空间可以通过剪枝所有成本大于迄今为止达到的最佳目标状态的状态来减少。
- d. 方法在本文中实现的任务和表现:
- 本文提出的算法是为了高效地匹配大型图形,可在不做特殊假设的情况下处理同构和图-子图同构。 实验结果表明,该算法在匹配超过20个节点的子图时比Ullmann算法表现更好,对于超过100个节点的子图,时间比达到了4个数量级。本文得出结论,该算法提出了一项特别有趣的成果,因为几乎所有至今提出的算法都不能同时满足所有必要的要求。
背景:
- a. 主题和特点:
- 本文的主题是针对大型图形的匹配问题,提出了一种改进算法。
- b. 历史发展:
- 过去的图形匹配算法在处理大型图形时效率低下。
- c. 过去的方法:
- 过去的方法通常限制了图形拓扑的形状。
- d. 过去的研究缺陷:
- 过去的算法在处理大型图形时效率低下。
- e. 当前需要解决的问题:
- 如何提高大型图形匹配的效率并克服与图形拓扑形状有关的限制?
方法:
- a. 研究的理论基础:
- 本文使用了匹配过程的状态空间表示和一组可行性规则。
- b. 本文的技术路线(一步一步):
- 本文提出了一个匹配算法,使用可行性函数探索搜索图。
- 该算法使用深度优先搜索,包括一种特殊过程以避免生成已访问的状态。
- 该算法计算候选配对集合P(s)。
- 引入了可行性规则Rpred、Rsucc、Rin、Rout和Rnew。
- 本文使用成本函数来定量评估两个节点或分支之间的不相似度。
结论:
- a. 本文工作的重要性:
- 本文提出的算法可以更有效地匹配大型图形,克服了过去算法的局限性。
- b. 创新、性能和负担:
- 该算法在匹配时间方面优于Ullmann算法,并适用于匹配具有数千个节点和分支的图形,同时减少了内存要求。
- c. 研究结论(列出要点):
- 本文提出了一种图匹配算法,使用可行性函数探索搜索图。
- 引入了可行性规则Rpred、Rsucc、Rin、Rout和Rnew,用于一致性检查和剪枝搜索树。
- 通过使用和语义部分持有的信息来处理带属性的关系图,可以进一步减少匹配时间。
- 实验结果表明,该算法在匹配超过20个节点的子图时比Ullmann算法表现更好,特别是对于超过100个节点的子图。