VF2算法的任何工作示例?

时间:2011-07-19 07:52:08

标签: algorithm language-agnostic graph graph-theory

我一直在阅读VF2 algorithm,因为我发现两张图是同构的,但却在某种程度上错过了大局。可能是我错过了这个领域的相关背景,但我看到的是我需要在每一步使用的一系列规则,而没有看到为什么要执行这些步骤的直观解释。

从基本的谷歌搜索,似乎这被认为是事实上的算法之一,用于查找两个图是否同构,但由于某种原因,我无法找到一个简单到足以在高层次上理解的解释。或者这个算法是用不同的名称知道的?

在任何情况下,是否有人知道该算法如何运作的任何运行示例?

2 个答案:

答案 0 :(得分:10)

我不确定您的需求是什么,但VF2算法如下所示。

假设您有2个图表:V和V',您希望将V与V'匹配

算法沿着一棵树走下去,在每一步你尝试将V的下一个元素与V'中的一个匹配,当你通过V'中的所有节点时(当你找到一个叶子时)你停止。

<强>算法:

  • 第一步:将空V与空图V'匹配。
  • 第二步:尝试将V中的一个节点与V'
  • 中的一个节点相匹配
  • ...
  • 第N步:尝试将V中的一个节点与V'中的一个新节点匹配,如果 你不能回到树的一步,尝试新的比赛 上一步..如果你不能再回去等......
  • ...
  • END:当你找到一片叶子时,即你经历了所有节点 在V'或当你在没有找到叶子的情况下穿过整棵树时。

示例

这是一个例子,算法从树的左到右进行。

“A&lt; - &gt; B”表示将V的节点A与V'的节点B匹配

enter image description here

希望我很清楚,这就是你要找的东西。

答案 1 :(得分:2)