VF2 algorithm steps with example

后端 未结 2 1798
野趣味
野趣味 2021-02-02 01:10

Can someone explain the steps of the VF2 algorithm for graph isomorphism in simple words? I am learning this algorithm, but it is harsh without a working example. Can someone le

相关标签:
2条回答
  • 2021-02-02 01:37

    I will try to give you a quick explaination of my previous answer to this question :

    Any working example of VF2 algorithm?

    I will use the same example as the one in my previous answer :

    enter image description here

    The 2 graphs above are V and V' .(V' is not in the drawing but it's the one on the right)

    The VF2 algorithm is described in the graph.

    Step by step

    I want to know if V and V' are isomorphic.

    I will use the following notations : XV is the node X in V

    In the VF2 algorithm I will try to match each node in V with a node in V'.

    step 1 :

    I match empty V with empty V' : it always works

    step 2 : I can match 1V with 1V',2V' or 3V'

    I match 1V with 1V' : it always works

    step 3 :

    I can match 2V with 2V' or 3V'

    I match 2V with 2V' : it works because {1V 2V} and {1V' 2V} are isomorphic

    step 4 :

    I try to match 3V with a node in V' : I cannot! {it would be possible if there were an edge between node 3 and 2 in V', and no edge between 3 and 1)

    So I go back to step 2

    step 5:

    I match 2V with 3V'

    step 6:

    same as step 4

    I go back to step 2. there is no solution in step 2 , I go back to step 1

    step 7:

    I match 1V with 2V'

    step 8:

    I match 2V with 1V'

    step 9 :

    I match 3V with 3V'

    it works I matched {1V 2V 3V} with { 2V' 1V' 3V'}

    The graphs are isomorphic.

    If I test all the solution and it never works the graph would not be isomorphic.

    Hope this helps


    About your question on "matching", have a look at the wikipedia article on graph isomorphism :

    http://en.wikipedia.org/wiki/Graph_isomorphism

    this is a good example of a function f that matches graph G and H : enter image description here

    Hope you can better understand this algorithm with this illustration.

    0 讨论(0)
  • 2021-02-02 01:44

    high-level overview of the VF algorithm is presented:

    PROCEDURE Match(s)
        INPUT: an intermediate state s; the initial state s0 has M(s0)=
        OUTPUT: the mappings between the two graphs
        IF M(s) covers all the nodes of G2 THEN
            OUTPUT M(s)
        ELSE
            Compute the set P(s) of the pairs candidate for inclusion in M(s)
            FOREACH (n, m) P(s)
                IF F(s, n, m) THEN
                    Compute the state s´ obtained by adding (n, m) to M(s)
                    CALL Match(s )
                END IF
            END FOREACH
             Restore data structures
        END IF
    END PROCEDURE
    
    0 讨论(0)
提交回复
热议问题