我一直在阅读了VF2 algorithm查找,如果两个图是同构的,但我不知何故因小失大。可能是因为我错过了这方面的相关背景,但我所看到的只是我需要在每个步骤中使用的一系列规则,而没有看到为什么要执行这些步骤的直观解释。VF2算法的任何工作示例?
从基本的谷歌搜索,它似乎被认为是事实上的算法之一,用于查找两张图是同构的,但由于某种原因,我无法找到一个足够简单的解释,足以在高层理解。或者,这个算法是否以不同的名称被称为?
在任何情况下,有没有人知道这是如何算法工程的任何正在运行的例子吗?
我一直在阅读了VF2 algorithm查找,如果两个图是同构的,但我不知何故因小失大。可能是因为我错过了这方面的相关背景,但我所看到的只是我需要在每个步骤中使用的一系列规则,而没有看到为什么要执行这些步骤的直观解释。VF2算法的任何工作示例?
从基本的谷歌搜索,它似乎被认为是事实上的算法之一,用于查找两张图是同构的,但由于某种原因,我无法找到一个足够简单的解释,足以在高层理解。或者,这个算法是否以不同的名称被称为?
在任何情况下,有没有人知道这是如何算法工程的任何正在运行的例子吗?
我不知道这是你要找的是什么,但VF2算法按照以下步骤。
比方说您有2个图表:V和V“你想为V匹配V”
的算法去了一棵树,在每一步尝试V的下一个元素与一个相匹配V',当你经过V'中的所有节点时(当你找到一片叶子时)你停下来。
算法:
例
这里是一个例子,该算法从左到树的右边进行。
“A < - > B” 指的V匹配节点A与
希望的V节点B”我很清楚,这就是你要找的内容。
+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
你说得对,我刚刚纠正了它。我在节点名称中犯了一个错误。我应该再次验证一下:D ...在两张图中使用1,2,3和1,2,3都有点令人困惑。我应该把它改为1,2,3和A B C。希望这是正确的。 :) –
非常感谢!我想我甚至错过了最详细的解释!感谢您修复它。我接受你的答案作为解决方案,但是如果你有时间,你是否愿意解释五条规则背后的直觉是什么(R_pred,R_succ,R_new ......)?这些用于总结图表中的“无Sol”情况吗? – Legend
你最后(相关)问题发生了什么?删除吗?我现在也很感兴趣/正在处理非常类似的事情。如果可以的话,请给我发一封电子邮件(参见我的个人资料地址)。然后,我将删除此评论。 – Szabolcs
@Szabolcs:其实我还没有完全删除这个问题。对于那个很抱歉。我仍然在考虑一个关于稳定性的良好定义,并且正在考虑在几个小时内重新发布它,因为当我问我如何定义稳定性时,我被困住了。但是,我现在放弃了我的问题。 – Legend