2011-07-19 37 views
5

我一直在阅读了VF2 algorithm查找,如果两个图是同构的,但我不知何故因小失大。可能是因为我错过了这方面的相关背景,但我所看到的只是我需要在每个步骤中使用的一系列规则,而没有看到为什么要执行这些步骤的直观解释。VF2算法的任何工作示例?

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

在任何情况下,有没有人知道这是如何算法工程的任何正在运行的例子吗?

+0

你最后(相关)问题发生了什么?删除吗?我现在也很感兴趣/正在处理非常类似的事情。如果可以的话,请给我发一封电子邮件(参见我的个人资料地址)。然后,我将删除此评论。 – Szabolcs

+0

@Szabolcs:其实我还没有完全删除这个问题。对于那个很抱歉。我仍然在考虑一个关于稳定性的良好定义,并且正在考虑在几个小时内重新发布它,因为当我问我如何定义稳定性时,我被困住了。但是,我现在放弃了我的问题。 – Legend

回答

8

我不知道这是你要找的是什么,但VF2算法按照以下步骤。

比方说您有2个图表:V和V“你想为V匹配V”

的算法去了一棵树,在每一步尝试V的下一个元素与一个相匹配V',当你经过V'中的所有节点时(当你找到一片叶子时)你停下来。

算法:

  • 第一步:匹配空图表V”空诉
  • 第二步:尽量数学V中的一个节点与V中的一个节点“
  • ...
  • 第N步:尽量V中的一个节点匹配V中一个新的节点”,如果 你不能回去一步在树上,并尝试在 前一步新的比赛..如果你不能再回去等..
  • ...
  • END:当你找到一片叶子,即当你通过V'中的所有节点 ,或者当你遍历所有的树而没有找到叶子。

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

“A < - > B” 指的V匹配节点A与

enter image description here

希望的V节点B”我很清楚,这就是你要找的内容。

+0

+1是的。这是我正在寻找的!非常感谢。只是几个(愚蠢)的问题。当你把V(1)映射到V'(1)时,你为什么会遇到一个“没有SOL”?让我们假设情况是这样的,现在我们回溯并将V(1)映射到V'(2),然后将V(3)映射到V'(2),最后将V(3)映射到V'(1)?这是怎么读的?在那种情况下,你的图表的结论是什么?我们映射了V(1)-V'(2),V(3)-V'(2)和V(3)-V'(1)。为什么将V(3)与两个节点相匹配?或者我必须解释错误。正如你到目前为止解释的那样,如果你不介意,你能否使它更加冗长? – Legend

+0

你说得对,我刚刚纠正了它。我在节点名称中犯了一个错误。我应该再次验证一下:D ...在两张图中使用1,2,3和1,2,3都有点令人困惑。我应该把它改为1,2,3和A B C。希望这是正确的。 :) –

+1

非常感谢!我想我甚至错过了最详细的解释!感谢您修复它。我接受你的答案作为解决方案,但是如果你有时间,你是否愿意解释五条规则背后的直觉是什么(R_pred,R_succ,R_new ......)?这些用于总结图表中的“无Sol”情况吗? – Legend

相关问题