Algorithm for generating a tree decomposition

后端 未结 1 895
萌比男神i
萌比男神i 2020-12-17 00:00

I want to construct a tree decomposition: http://en.wikipedia.org/wiki/Tree_decomposition and I have the chordal graph and a perfect elimination ordering. I am following adv

1条回答
  •  执念已碎
    2020-12-17 01:06

    So that was my (bad, as it turns out) advice. Your tree decomposition has some cliques that aren't maximal, i.e., {2, 0, 1}, {0, 1}, and {1}. The list of candidate cliques is

    {4, 5, 6} (maximal)
    {3, 2} (maximal)
    {5, 6, 2, 0} (maximal)
    {7, 2, 1} (maximal)
    {6, 2, 0, 1} (maximal)
    {2, 0, 1} (not maximal: subset of {6, 2, 0, 1})
    {0, 1} (not maximal: subset of {6, 2, 0, 1})
    {1} (not maximal: subset of {6, 2, 0, 1})
    

    Then the decomposition should look like

                    {3, 2}
                      |
    {4, 5, 6}----{5, 6, 2, 0}
                      |
                 {7, 2, 1}
                      |
                 {6, 2, 0, 1},
    

    which is wrong as well, since the 0 vertices aren't connected. Sorry about that.

    What I should have done is to set aside the maximality condition for the moment and to connect each clique K to the next candidate seeded with a vertex belonging to K. This ensures that every vertex in K that exists in at least one other subsequent clique also appears in the target of the connection. Then the decomposition looks like this

    {4, 5, 6}----{5, 6, 2, 0}
                      |
                 {6, 2, 0, 1}
                      |
       {3, 2}----{2, 0, 1}----{7, 2, 1}
                      |
                    {0, 1}
                      |
                    {1}
    

    and you can splice out the non-maximal cliques by checking, for each clique in reverse order, whether it's a superset of its parent, and if so, reparenting its parent's children to it.

    {4, 5, 6}----{5, 6, 2, 0}
                      |
       {3, 2}----{6, 2, 0, 1}----{7, 2, 1}
    

    0 讨论(0)
提交回复
热议问题