有人能用简单的话解释一下VF2算法在图同构中的步骤吗?我正在学习这个算法,但没有工作示例很困难。有人能给我指点方向吗?谢谢。
有人能用简单的话解释一下VF2算法在图同构中的步骤吗?我正在学习这个算法,但没有工作示例很困难。有人能给我指点方向吗?谢谢。
我将尝试快速解释一下我先前回答问题的内容:
我将使用与先前回答相同的示例:
上面的两个图是V和V'。(V'没有出现在图中,但是它是右边的那个)
VF2算法在图中有所描述。
我想知道V和V'是否同构。
我将使用以下符号:XV是V中的节点X
在VF2算法中,我将尝试将V中的每个节点与V'中的节点匹配。
步骤1:
我将空V与空V'进行匹配:它始终有效。
步骤2:
我可以将1V与1V'、2V'或3V'匹配。
我将1V与1V'进行匹配:它始终有效。
步骤3:
我可以将2V与2V'或3V'匹配。
我将2V与2V'进行匹配:它有效,因为{1V 2V}和{1V' 2V}是同构的。
步骤4:
我尝试将3V与V'中的节点匹配:我无法这样做!(如果V'的节点3与2之间有一条边且3与1之间没有边,则可能会匹配)
所以我回到步骤2。
步骤5:
我将2V与3V'进行匹配。
步骤6:
与步骤4相同。
我回到步骤2,如果在步骤2中没有解决方案,则返回到步骤1。
步骤7:
我将1V与2V'配对。
步骤8:
我将2V与1V'配对。
步骤9:
我将3V与3V'配对。
它奏效了,我将{1V 2V 3V}与{2V' 1V' 3V'}匹配。
这些图是同构的。
如果我测试所有解决方案并且它从未奏效,则图形将不是同构的。
希望这能帮助您。
关于您对“匹配”的问题,请查看维基百科上的图同构文章:
http://en.wikipedia.org/wiki/Graph_isomorphism
这是一个将图G和H配对的函数f的很好的例子:
希望这个示例可以帮助您更好地理解这个算法。