Algorithmics of Modular
                  decomposition

                          Christophe Paul

                    CNRS - LIRMM, Montpellier France


            Algorithms & Permutations Workshop
                       February 20, 2012



Joint work with: A. Bergeron, S. B´rard, S. Bessy, B.M. Bui Xuan, C.
                                  e
Chauve, D. Corneil, F. Fomin, E. Gioan, M. Habib, A. Perez, S. Saurabh,
S. Thomass´, M. Tedder, L. Viennot. . .
           e
Modular decomposition of undirected graphs


Ehrenfeucht et al’s modular decomposition algorithm


Common Intervals of permutations


Modular decomposition of tournaments


Kernelization algorithm for FAST
Permutations and permutation graphs

           1   2   3   4       5       6   7    8    9    10     11




           7   6   1   5   10          8   11   9    2       3   4



                           5
                                       2        8
                       6                                 10
               1

                                       3
                       7                                 9
                                   4            11
Permutations and permutation graphs

           1   2   3   4       5       6   7    8    9    10     11




           7   6   1   5   10          8   11   9    2       3   4



                           5
                                       2        8
                       6                                 10
               1

                                       3
                       7                                 9
                                   4            11
Permutations and permutation graphs

            1   2   3   4       5       6   7    8    9    10     11




            7   6   1   5   10          8   11   9    2       3   4



                            5
                                        2        8
                        6                                 10
                1

                                        3
                        7                                 9
                                    4            11

      Does a permutation graph have a unique representation ?
Permutations and permutation graphs

            1   2   3   4       5       6   7    10    8    11     9




            7   6   1   5       8       9   10   11    2       3   4



                            5
                                        2        8
                        6                                  10
                1

                                        3
                        7                                  9
                                    4             11


      Does a permutation graph have a unique representation ?
Modules
  A subset of vertices M of a graph G = (V , E ) is a module iff
           ∀x ∈ V  M, either M ⊆ N(x) or M ∩ N(x) = ∅

                             5
                                     2     8
                         6                       10
                1

                                     3
                         7                        9
                                 4          11
Modules
  A subset of vertices M of a graph G = (V , E ) is a module iff
           ∀x ∈ V  M, either M ⊆ N(x) or M ∩ N(x) = ∅

                             5
                                     2     8
                         6                       10
                1

                                     3
                         7                        9
                                 4          11


  Examples of modules:
      connected components
      connected components of G
Modules
  A subset of vertices M of a graph G = (V , E ) is a module iff
           ∀x ∈ V  M, either M ⊆ N(x) or M ∩ N(x) = ∅

                             5
                                     2      8
                         6                         10
                1

                                     3
                         7                         9
                                 4          11


      A graph (a module) is prime is all its modules are trivial:
      e.g. the P4 .
Modules
  A subset of vertices M of a graph G = (V , E ) is a module iff
           ∀x ∈ V  M, either M ⊆ N(x) or M ∩ N(x) = ∅

                             5
                                     2      8
                         6                         10
                1

                                     3
                         7                         9
                                 4          11


      A graph (a module) is prime is all its modules are trivial:
      e.g. the P4 .

      A graph (a module) is degenerate if every subset of vertices is
      a module: cliques and stables.
Permutation graph recognition

   Theorem [Gallai’67]
   A permutation graph has a unique representation (up to reversal)
   iff it is prime.
Permutation graph recognition

   Theorem [Gallai’67]
   A permutation graph has a unique representation (up to reversal)
   iff it is prime.

   Recognition algorithm
       Recursively solve the problem on modules
       Solve the prime case (with linear time transitive orientation
       algorithm)
Permutation graph recognition

   Theorem [Gallai’67]
   A permutation graph has a unique representation (up to reversal)
   iff it is prime.

   Recognition algorithm
       Recursively solve the problem on modules
       Solve the prime case (with linear time transitive orientation
       algorithm)


   Theorem [McConnell and Spinrad’99]
   The permutation graph recognition problem can be solved in
   O(n + m) time
       we need a linear time modular decomposition algorithm
Partitive families
   If M and M are two overlapping modules then
Partitive families
   If M and M are two overlapping modules then
       M  M is a module
Partitive families
   If M and M are two overlapping modules then
       M  M is a module
       M ∩ M is a module
Partitive families
   If M and M are two overlapping modules then
       M  M is a module
       M ∩ M is a module
       M∆M is a module
   The set of modules of a graph forms a partitive family

   A module is strong if it does not overlap any other module
Partitive families
   If M and M are two overlapping modules then
         M  M is a module
         M ∩ M is a module
         M∆M is a module
   The set of modules of a graph forms a partitive family

   A module is strong if it does not overlap any other module
                 5
                         2   8
                                               1 2 3 4 5 6 7 8 9 10 11
             6                    10
     1
                                             234           67      8 9 10 11
                         3
             7                    9      1   2 3 4    5   6 7      8 9 10 11
                     4       11


   Strong modules are nested into an inclusion tree: the modular
   decomposition tree MD(G )
Modular partition and quotient graph

   A partition P of the vertex set of a graph G is a modular partition
   if every part is a module of G .
                 5
                         2   8
             6                    10
     1

                         3
             7                    9
                     4       11
Modular partition and quotient graph

   A partition P of the vertex set of a graph G is a modular partition
   if every part is a module of G .

                 5
                         2   8
             6                    10
     1

                         3
             7                    9
                     4       11


   If P is a modular partition of G , the quotient graph G/P is the
   induced subgraph obtained by choosing one vertex per part of P.
Theorem [Gal’67,CHM81]
  Let G = (V , E ) be a graph. Then either
    1. (parallel) G is not connected, or
    2. (series) G is not connected, or
Theorem [Gal’67,CHM81]
  Let G = (V , E ) be a graph. Then either
      1. (parallel) G is not connected, or
      2. (series) G is not connected, or
      3. (prime) G/M(G ) is a prime graph, with M(G ) the modular
         partition containing the maximal strong modules of G .


               5                                             Prime
                       2   8                        1 2 3 4 5 6 7 8 9 10 11
           6                    10
  1
                                                 parallel       series     Prime
                       3                         234             67      8 9 10 11
           7                    9
                   4       11                1   2 3 4      5   6 7      8 9 10 11
Theorem [Gal’67,CHM81]
  Let G = (V , E ) be a graph. Then either
      1. (parallel) G is not connected, or
      2. (series) G is not connected, or
      3. (prime) G/M(G ) is a prime graph, with M(G ) the modular
         partition containing the maximal strong modules of G .


               5                                             Prime
                       2   8                        1 2 3 4 5 6 7 8 9 10 11
           6                    10
  1
                                                 parallel       series     Prime
                       3                         234             67      8 9 10 11
           7                    9
                   4       11                1   2 3 4      5   6 7      8 9 10 11



  Observation: If a P4 on {a, b, c, d} overlap a module M, then
                        |M ∩ {a, b, c, d}| = 1
Modular decomposition algorithms

      O(n4 ) [Cowan, James, Stanton’72]
      O(n3 ) [Blass, 1978], [Habib, Maurer’79]
      O(n2 ) [McConnell, Spinrad’89]
Modular decomposition algorithms

      O(n4 ) [Cowan, James, Stanton’72]
      O(n3 ) [Blass, 1978], [Habib, Maurer’79]
      O(n2 ) [McConnell, Spinrad’89]

      O(n + mα(m, n)) [Spinrad’92], [Cournier, Habib’93]
      O(n + m) [McConnell, Spinrad’94], [Cournier, Habib’94]
Modular decomposition algorithms

      O(n4 ) [Cowan, James, Stanton’72]
      O(n3 ) [Blass, 1978], [Habib, Maurer’79]
      O(n2 ) [McConnell, Spinrad’89]

      O(n + mα(m, n)) [Spinrad’92], [Cournier, Habib’93]
      O(n + m) [McConnell, Spinrad’94], [Cournier, Habib’94]

      O(n + m log n) [Habib, Paul, Viennot’99] (factoring
      permutation), [McConnell, Spinrad’00]
Modular decomposition algorithms

      O(n4 ) [Cowan, James, Stanton’72]
      O(n3 ) [Blass, 1978], [Habib, Maurer’79]
      O(n2 ) [McConnell, Spinrad’89]

      O(n + mα(m, n)) [Spinrad’92], [Cournier, Habib’93]
      O(n + m) [McConnell, Spinrad’94], [Cournier, Habib’94]

      O(n + m log n) [Habib, Paul, Viennot’99] (factoring
      permutation), [McConnell, Spinrad’00]

      O(n + m) [Capelle, Habib’97] (factoring permutation)
      [Dahlhaus, Gustedt, McConnell’97], [Tedder, Corneil, Habib,
      Paul’08]

      other many others for variants of modular decomposition
Cographs - Totally decomposable graphs
   Theorem: A graph is a cograph (a P4 -free graph 1 2 3 4)
   iff its modular decomposition tree does not contain any prime node
        b
                   u                                         Series

        d
                   v                      Parallel                             Parallel

        c
                       e         Series            Series         e   Series              Series
        a

                   w        Parallel      z    d       Parallel       y    w              u    v
        z
                   y       x      a                    c     b
        x
Cographs - Totally decomposable graphs
   Theorem: A graph is a cograph (a P4 -free graph 1 2 3 4)
   iff its modular decomposition tree does not contain any prime node
        b
                    u                                         Series

        d
                    v                      Parallel                             Parallel

        c
                        e         Series            Series         e   Series              Series
        a

                    w        Parallel      z    d       Parallel       y    w              u    v
        z
                    y       x      a                    c     b
        x



   Cographs can be built from the single vertex with the disjoint
   union and series composition
   Exercice: prove that cographs are permutation graphs
Cographs - Totally decomposable graphs
   Theorem: A graph is a cograph (a P4 -free graph 1 2 3 4)
   iff its modular decomposition tree does not contain any prime node
        b
                    u                                        Series

        d
                    v                     Parallel                             Parallel

        c
                        e        Series            Series         e   Series              Series
        a

                    w       Parallel      z    d       Parallel       y    w              u    v
        z
                    y       x     a                    c     b
        x



   Linear time recognition algorithms
       incremental [Corneil, Pearl, Stewart’85]
       partition refinement [Habib, P.’05]
       LexBFS [Bretscher, Corneil, Habib, P.’08]
Modular decomposition of undirected graphs


Ehrenfeucht et al’s modular decomposition algorithm


Common Intervals of permutations


Modular decomposition of tournaments


Kernelization algorithm for FAST
Ehrenfeucht et al’s modular decomposition algorithm

   M(G , v ) is the modular partition composed by
                    {v } and the maximal modules of G not containing v .


                                                                      series


                                             prime                                                parallel                                                                       8
                                                                                                                                                                                 9
                                                                                                                                                                                     8
                                                                                                                                                                                     9   A
                                                                                                                                                                                         @   A
                                                                                                                                                                                             @   C
                                                                                                                                                                                                 B   C
                                                                                                                                                                                                     B
                                                                                                                                                                                                          
                                                                                                                                                                                                         ¡
                                                                                                                                                                                                              
                                                                                                                                                                                                             ¡




          parallel                       series       
                                                      
                                                          
                                                             
                                                                 
                                                                  




                                                                                 series              !   !   #
                                                                                                                #
                                                                                                                 
                                                                                                                                                 4
                                                                                                                                                 5
                                                                                                                                                     4
                                                                                                                                                     5   7
                                                                                                                                                         6   7
                                                                                                                                                             6
                                                                                                                                                                 2
                                                                                                                                                                 3
                                                                                                                                                                     2
                                                                                                                                                                     3
                                                                                                                                                                         0
                                                                                                                                                                         1
                                                                                                                                                                             0
                                                                                                                                                                             1




       series        ¢
                     £
                         ¢
                         £
                             ¨
                             ©
                                 ¨
                                 ©
                                     ¦
                                     §
                                         ¦
                                         §    
                                                 
                                                  
                                                                         
                                                                         
                                                                             
                                                                                         
                                                                                             
                                                                                              
                                                                                                                                 $
                                                                                                                                 %
                                                                                                                                     $
                                                                                                                                     %
                                                                                                                                         (
                                                                                                                                         )
                                                                                                                                             (
                                                                                                                                             )




   v        ¤
            ¥
                ¤
                ¥




                                                                                                                     v   
                                                                                                                         '
                                                                                                                             
                                                                                                                             '




        1. Compute M(G , v )
        2. Compute MD(G/M(G ,v ) )
        3. For each X ∈ M(G , v ) compute MD(G [X ])
Computation of M(G , v ) (1)

   Lemma [MR84] Let P be a modular partition of G = (V , E ).
   X ⊆ P is a module of G/P iff ∪M∈X M is a module of G .

                 5
                         2   8
             6                    10
     1

                         3
             7                    9
                     4       11
Computation of M(G , v ) (1)

   Lemma [MR84] Let P be a modular partition of G = (V , E ).
   X ⊆ P is a module of G/P iff ∪M∈X M is a module of G .


   A vertex x is a splitter for a set S of vertices if
                    ∃y , z ∈ S with xy ∈ S and xz ∈ E  /
   We say that x separate y and z.

                2
                        6
    1     4

                3
                        7
Computation of M(G , v ) (1)

   Lemma [MR84] Let P be a modular partition of G = (V , E ).
   X ⊆ P is a module of G/P iff ∪M∈X M is a module of G .


   A vertex x is a splitter for a set S of vertices if
                    ∃y , z ∈ S with xy ∈ S and xz ∈ E  /
   We say that x separate y and z.

                2
                        6          Lemma If x is a splitter for the set
    1     4                       S, then any module M containing S
                                  must also contain x.
                3
                        7
Computation of M(G , v ) (2)
   Lemma If v is a splitter of a set S, then for any module M ⊆ S
               either M ⊆ S ∩ N(v ) or M ⊆ M ∩ N(v )
Computation of M(G , v ) (2)
   Lemma If v is a splitter of a set S, then for any module M ⊆ S
               either M ⊆ S ∩ N(v ) or M ⊆ M ∩ N(v )
         O(n + m log n) time using vertex partitioning algorihtm



                    N(v)                          N(v)
     v
Computation of M(G , v ) (2)
   Lemma If v is a splitter of a set S, then for any module M ⊆ S
               either M ⊆ S ∩ N(v ) or M ⊆ M ∩ N(v )
         O(n + m log n) time using vertex partitioning algorihtm




     v      x
Computation of M(G , v ) (2)
   Lemma If v is a splitter of a set S, then for any module M ⊆ S
               either M ⊆ S ∩ N(v ) or M ⊆ M ∩ N(v )
         O(n + m log n) time using vertex partitioning algorihtm




     v      x               y
Computation of M(G , v ) (2)
   Lemma If v is a splitter of a set S, then for any module M ⊆ S
               either M ⊆ S ∩ N(v ) or M ⊆ M ∩ N(v )
         O(n + m log n) time using vertex partitioning algorihtm




     v                                       z
Computation of MD(G/M(G ,v ) ) (3)
      The modules of G/M(G ,v ) are linearly nested:
                any non-trivial module contains v




                                             6

                                3   4   5

                           2

                   v   1
Computation of MD(G/M(G ,v ) ) (3)
      The modules of G/M(G ,v ) are linearly nested:
                  any non-trivial module contains v
      The forcing graph F(G , v ) has edge − iff y separates x and v
                                            →
                                           xy


                                                    6
                                                                        5
                                                            4
                                        6

                                                                3
                    3       4   5
                                            6           v
                                                                2
               2
                                                        1
       v   1
                        5           4           3       2           1
Computation of MD(G/M(G ,v ) ) (3)
      The modules of G/M(G ,v ) are linearly nested:
                  any non-trivial module contains v
      The forcing graph F(G , v ) has edge − iff y separates x and v
                                            →
                                           xy


                                                    6
                                                                        5
                                                            4
                                        6

                                                                3
                    3       4   5
                                            6           v
                                                                2
               2
                                                        1
       v   1
                        5           4           3       2           1
Computation of MD(G/M(G ,v ) ) (4)
   Complexity
       [Ehrenfeucht et al.’94] gives a O(n2 ) complexity.
       [MS00]: simple O(n + m log n) vertex partitioning algorithm
       [DGM’01]: O(n + m.α(n, m)) and a more complicated
       O(n + m) implementation.
   Other algorithms
       [CH94] and [MS94]: the first linear algorithms.
       [MS99]: O(n + m) algorithm which extends to transitive
       orientation.
Computation of MD(G/M(G ,v ) ) (4)
   Complexity
       [Ehrenfeucht et al.’94] gives a O(n2 ) complexity.
       [MS00]: simple O(n + m log n) vertex partitioning algorithm
       [DGM’01]: O(n + m.α(n, m)) and a more complicated
       O(n + m) implementation.
   Other algorithms
       [CH94] and [MS94]: the first linear algorithms.
       [MS99]: O(n + m) algorithm which extends to transitive
       orientation.

   [Spinrad’03] The new [linear time] algorithm [MS99] is currently
   too complex to describe easily [...] I hope and believe that in a
   number of years the linear algorithm can be simplified as well.
       [Tedder, Corneil, Habib, P.’08] simple linear time algorithm
Modular decomposition of undirected graphs


Ehrenfeucht et al’s modular decomposition algorithm


Common Intervals of permutations


Modular decomposition of tournaments


Kernelization algorithm for FAST
Back to permutations: common intervals
   In a permutation σ, a set S of consecutive elements is called an
   interval. Likewise a set S is a common interval of several
   permutations σ1 , σ2 . . . if it is an interval for every σi .

     1   2   3   4   5    6   7    8   9   10   11




     7   6   1   5   10   8   11   9   2   3    4
Back to permutations: common intervals
   In a permutation σ, a set S of consecutive elements is called an
   interval. Likewise a set S is a common interval of several
   permutations σ1 , σ2 . . . if it is an interval for every σi .
                                                             5
                                                                     2   8
     1   2   3   4   5    6   7    8   9   10   11
                                                         6                    10
                                                     1

                                                                     3
     7   6   1   5   10   8   11   9   2   3    4        7                    9
                                                                 4       11




   Obs.: common intervals of σ1 , σ2 are not modules of G (σ1 , σ2 )
Back to permutations: common intervals
   In a permutation σ, a set S of consecutive elements is called an
   interval. Likewise a set S is a common interval of several
   permutations σ1 , σ2 . . . if it is an interval for every σi .
                                                             5
                                                                     2   8
     1   2   3   4   5    6   7    8   9   10   11
                                                         6                    10
                                                     1

                                                                     3
     7   6   1   5   10   8   11   9   2   3    4        7                    9
                                                                 4       11




   Obs.: common intervals of σ1 , σ2 are not modules of G (σ1 , σ2 )

         Computation of all common intervals in linear time - O(n2 ) -
         [Uno, Yagura’00]
Back to permutations: common intervals
   In a permutation σ, a set S of consecutive elements is called an
   interval. Likewise a set S is a common interval of several
   permutations σ1 , σ2 . . . if it is an interval for every σi .
                                                             5
                                                                     2   8
     1   2   3   4   5    6   7    8   9   10   11
                                                         6                    10
                                                     1

                                                                     3
     7   6   1   5   10   8   11   9   2   3    4        7                    9
                                                                 4       11




   Obs.: common intervals of σ1 , σ2 are not modules of G (σ1 , σ2 )

   Strong (common) interval doesn’t overlap other common intervals

   Lemma [de Montgolfier] A set S is a strong interval of σ1 and σ2
   iff it is a strong module of the permutation graph G (σ1 , σ2 )
Common intervals (2)
   The family of common intervals is weakly partitive:


            7    1   6    5    4      3   2   9   8   11   10




   if I1 and I2 are two common intervals then
       I1 ∪ I2 is a common interval
       I1 ∩ I2 is a common interval
       I1  I2 and I2  I1 are common intervals
Common intervals (2)
   The family of common intervals is weakly partitive:


            7    1   6       5   4    3   2   9   8   11   10

            7    1       5            3               8

   if I1 and I2 are two common intervals then
       I1 ∪ I2 is a common interval
       I1 ∩ I2 is a common interval
       I1  I2 and I2  I1 are common intervals


   Let I be a partition of [1 . . . n] into common intervals of the
   permutation σ, then we denote by σ/I the quotient permutation
   defined on [1 . . . |I|]
Common intervals (2)
   The family of common intervals is weakly partitive:


            7    1   6       5   4    3   2   9   8   11   10

            4    1       3            2               5

   if I1 and I2 are two common intervals then
       I1 ∪ I2 is a common interval
       I1 ∩ I2 is a common interval
       I1  I2 and I2  I1 are common intervals


   Let I be a partition of [1 . . . n] into common intervals of the
   permutation σ, then we denote by σ/I the quotient permutation
   defined on [1 . . . |I|]
Common intervals (3)
   Theorem Let σ be a permutation on [1, . . . n] and I be the
   partition into maximal common intervals of σ, then either
    1. σ/I = 1|I| - the identity on [1 . . . |I|]
    2. σ/I = 1|I| - the reverse identity on [1 . . . |I|]
    3. σ/I is prime - or simple (does not have non-trivial common
       interval)
Common intervals (3)
   Theorem Let σ be a permutation on [1, . . . n] and I be the
   partition into maximal common intervals of σ, then either
    1. σ/I = 1|I| - the identity on [1 . . . |I|]
    2. σ/I = 1|I| - the reverse identity on [1 . . . |I|]
    3. σ/I is prime - or simple (does not have non-trivial common
       interval)




                   7   1   6   5   4   3   2   9    8   11   10


   Theorem (see e.g. [Bergeron et al.’08])
   The common interval tree can be computed in O(n) time.
Common intervals (4)
   A permutation σ is separable if it does not contains the pattern
                                3142




                  7   1   6   5   4   3   2   9   8   11   10
Common intervals (4)
   A permutation σ is separable if it does not contains the pattern
                                3142
                                                  1       2        3        4
       3 1 4 2 corresponds to the P4




                  7   1   6   5   4   3   2   9       8       11       10
Common intervals (4)
   A permutation σ is separable if it does not contains the pattern
                                3142
                                                  1       2        3        4
       3 1 4 2 corresponds to the P4
       a permutation is separable iff
       its common interval tree does not contains prime nodes
       a permutation is separable iff
       the permutation graph G (σ, 1) is a cograph (P4 -free graph)




                  7   1   6   5   4   3   2   9       8       11       10
Modular decomposition of undirected graphs


Ehrenfeucht et al’s modular decomposition algorithm


Common Intervals of permutations


Modular decomposition of tournaments


Kernelization algorithm for FAST
Modular decomposition of tournaments
           1     2


       8             3




       7             4


           6     5
Modular decomposition of tournaments
              1       2


        8                     3




        7                     4


             6        5




   A module in a tournament is a set S such that for every x ∈ S
                                                             /
       either ∀y ∈ S, x → y       or      ∀y ∈ S, y → x
Modular decomposition of tournaments
              1        2


        8                    3




        7                    4


              6        5




   A tournament is transitive if there exists a permutation σ of V (T )
   with no backward arcs

   Theorem: Let T be a tournament and M(T ) be the modular
   partition into maximal strong modules, then
    1. either T/M(T ) is transitive - contains no backward arc
    2. or T/M(T ) is prime
Modular decomposition of tournaments
              1        2


        8                    3




        7                    4


              6        5
                                 1   2    3   4    5   6    7   8



   A tournament is transitive if there exists a permutation σ of V (T )
   with no backward arcs

   Theorem: Let T be a tournament and M(T ) be the modular
   partition into maximal strong modules, then
    1. either T/M(T ) is transitive - contains no backward arc
    2. or T/M(T ) is prime
Modular decomposition algorithm for tournaments
   A factoring permutation of a tournament T (or a graph) is a
   permutation σ of its vertices such that
             every (strong) module of T is an interval of σ
Modular decomposition algorithm for tournaments
   A factoring permutation of a tournament T (or a graph) is a
   permutation σ of its vertices such that
             every (strong) module of T is an interval of σ

       Factoring permutation via a partition refinement algorithm in
       linear time [de Mongolfier’03]




            1     2      3      4      5      6      7     8
Modular decomposition algorithm for tournaments
   A factoring permutation of a tournament T (or a graph) is a
   permutation σ of its vertices such that
             every (strong) module of T is an interval of σ

       Factoring permutation via a partition refinement algorithm in
       linear time [de Mongolfier’03]




            3     4      5      6      1      2      7     8
Modular decomposition algorithm for tournaments
   A factoring permutation of a tournament T (or a graph) is a
   permutation σ of its vertices such that
             every (strong) module of T is an interval of σ

       Factoring permutation via a partition refinement algorithm in
       linear time [de Mongolfier’03]




            4     3      5      6      1      2      8     7
Modular decomposition algorithm for tournaments
   A factoring permutation of a tournament T (or a graph) is a
   permutation σ of its vertices such that
             every (strong) module of T is an interval of σ

       Factoring permutation via a partition refinement algorithm in
       linear time [de Mongolfier’03]




            4     3      5      6      1      2      8     7
Modular decomposition algorithm for tournaments
   A factoring permutation of a tournament T (or a graph) is a
   permutation σ of its vertices such that
             every (strong) module of T is an interval of σ

       Factoring permutation via a partition refinement algorithm in
       linear time [de Mongolfier’03]




            4     3      5      6      1      2      8     7




       Modular decomposition tree from a factoring permutation in
       linear time [Capelle’97]
Modular decomposition of undirected graphs


Ehrenfeucht et al’s modular decomposition algorithm


Common Intervals of permutations


Modular decomposition of tournaments


Kernelization algorithm for FAST
FAST: Feedback Arc Set in Tournament
      A tournament T and an integer k
      Find a set of at most k arcs whose reversal transform T into a
      transitive tournament
FAST: Feedback Arc Set in Tournament
      A tournament T and an integer k
      Find a permutation σ of the vertices with at most k backward
      edges




          1      2      3     4      5      6      7      8
FAST: Feedback Arc Set in Tournament
      A tournament T and an integer k
      Find a permutation σ of the vertices with at most k backward
      edges




          1      2      3      4      5      6     7      8




      NP-Complete [Alon’06] [Charbit et al.’07]
      FTP [Raman, Saurabh’06] [Alon et al.’09]
      (1 + )-approximation scheme [Kenyon-Mathieu, Schudy’07]
FAST (2)
  Obs.: A tournament is transitive iff there is no (directed) triangle
                              1         2


                       8                       3




                       7                       4


                             6          5
FAST (2)
  Obs.: A tournament is transitive iff there is no (directed) triangle
                              1         2


                       8                       3




                       7                       4


                             6          5
FAST (2)
  Obs.: A tournament is transitive iff there is no (directed) triangle
                              1         2


                       8                       3




                       7                       4


                             6          5
FAST (2)
  Obs.: A tournament is transitive iff there is no (directed) triangle


  Rule 1 [irrelevant vertex] If a vertex v is not contained in any
  triangle, then delete v




  Rule 2 [sunflower] If there is an arc
  belonging to more that k distinct triangles,
  then reverse it and decrease k by 1
FAST (2)
   Obs.: A tournament is transitive iff there is no (directed) triangle


   Rule 1 [irrelevant vertex] If a vertex v is not contained in any
   triangle, then delete v

           A reduced tournament contains no source nor sink


  Rule 2 [sunflower] If there is an arc
  belonging to more that k distinct triangles,
  then reverse it and decrease k by 1


 The span s(− ) of a backward arc of a reduced tournament is
            →
            uv                                                        2k + 2
FAST (3)
  Rule 3 [acyclic module] Let M be a maximal acyclic module.
  If there are at most p = |M| arcs from N + (M) to N − (M),
  then reverse all these arcs and decrease k by p.
FAST (3)
  Rule 3 [acyclic module] Let M be a maximal acyclic module.
  If there are at most p = |M| arcs from N + (M) to N − (M),
  then reverse all these arcs and decrease k by p.
FAST (3)
  Rule 3 [acyclic module] Let M be a maximal acyclic module.
  If there are at most p = |M| arcs from N + (M) to N − (M),
  then reverse all these arcs and decrease k by p.


                      acyclic module Rule ⇒
                     ti2        s(− )
                                  →
                                  uv




                                   ti
FAST (3)
  Rule 3 [acyclic module] Let M be a maximal acyclic module.
  If there are at most p = |M| arcs from N + (M) to N − (M),
  then reverse all these arcs and decrease k by p.


                         sunflower Rule ⇒
                   ti2        s(− )
                                →
                                uv      k(2k + 2)
FAST (3)
  Rule 3 [acyclic module] Let M be a maximal acyclic module.
  If there are at most p = |M| arcs from N + (M) to N − (M),
  then reverse all these arcs and decrease k by p.


                          sunflower Rule ⇒
                    ti2        s(− )
                                 →
                                 uv      k(2k + 2)




  Theorem [Bessy et al.’09]: Every instance (T , k) of k-FAST can
  be reduced in polynomial time to an equivalent instance (T , k )
  such that                            √
               |T | 2k + ti = O(k k) and k             k
Kernelization algorithm

                                   poly time
                         (G,k)                        (G’,k’)


                                                  |G’¦=f(k)


   Given a parameterized instance (I, k) of a problem, a kernelization
   algorithm computes in polytime an equivalent instance (I , k ) st.
                   k = f (k)     and           |I |        g (k)
Kernelization algorithm

                                   poly time
                         (G,k)                        (G’,k’)


                                                  |G’¦=f(k)


   Given a parameterized instance (I, k) of a problem, a kernelization
   algorithm computes in polytime an equivalent instance (I , k ) st.
                   k = f (k)     and           |I |        g (k)

                         √
       we described a O(k k)-vertex kernel for FAST based on
       modular decomposition
       best known result: O(k)-vertex kernel ([Bessy et al.’09], [P.,
       Perez, Thomass´’11])
                      e
Kernelization algorithm

                                   poly time
                         (G,k)                        (G’,k’)


                                                  |G’¦=f(k)


   Given a parameterized instance (I, k) of a problem, a kernelization
   algorithm computes in polytime an equivalent instance (I , k ) st.
                   k = f (k)     and           |I |        g (k)


   Other modular decomposition kernelizations:
       O(k 2 )-vertex kernel for cluster editing
       O(k 3 )-vertex kernel for cograph editing
       also for min flip consensus tree, closest 3-leaf
       power. . .
Some conclusions

      Modular decomposition plays an important role in the context
      of many graph classes
          permutation graphs, interval graphs, comparability graphs . . .
          even perfect graph)
Some conclusions

      Modular decomposition plays an important role in the context
      of many graph classes
          permutation graphs, interval graphs, comparability graphs . . .
          even perfect graph)

      Many examples of partitive (weakly partitive) families are
      known in various contexts
          modules in undirected graphs, digraphs, hypergraphs
          common interval of permutations
Some conclusions

      Modular decomposition plays an important role in the context
      of many graph classes
          permutation graphs, interval graphs, comparability graphs . . .
          even perfect graph)

      Many examples of partitive (weakly partitive) families are
      known in various contexts
          modules in undirected graphs, digraphs, hypergraphs
          common interval of permutations

      Various generalizations
          bimodular decomposition (module adapted to bipartite graphs)
          bipartitive families : eg. split decomposition of graphs -
          O(n + α(n, m).m) circle graph recognition
          crossing families, union-difference families of sets. . .
          clique-width (cographs are clique-widht 2 graphs), rankwidth
To learn / read more

      Habib and P. ”A survey of the algorithmic aspects of modular
      decomposition” in Computer Science Review 4:41-59, 2010
To learn / read more

      Habib and P. ”A survey of the algorithmic aspects of modular
      decomposition” in Computer Science Review 4:41-59, 2010

      F. de Montgolfier, ”D´composition modulaire de graphes,
                             e
      th´orie, extensions et algorithmes”, Phd Thesis (in French),
        e
      2003
      B.M. Bui Xuan, ”Tree-representation of set families in graph
      decompositions and efficient algorithms”, Phd Thesis, 2008
To learn / read more

      Habib and P. ”A survey of the algorithmic aspects of modular
      decomposition” in Computer Science Review 4:41-59, 2010

      F. de Montgolfier, ”D´composition modulaire de graphes,
                             e
      th´orie, extensions et algorithmes”, Phd Thesis (in French),
        e
      2003
      B.M. Bui Xuan, ”Tree-representation of set families in graph
      decompositions and efficient algorithms”, Phd Thesis, 2008
      C. Crespelle, ”Repr´sentations dynamiques de graphes”, PhD
                         e
      Thesis (in French), 2007           attend I. Todinca’s talk !!!
To learn / read more

      Habib and P. ”A survey of the algorithmic aspects of modular
      decomposition” in Computer Science Review 4:41-59, 2010

      F. de Montgolfier, ”D´composition modulaire de graphes,
                             e
      th´orie, extensions et algorithmes”, Phd Thesis (in French),
        e
      2003
      B.M. Bui Xuan, ”Tree-representation of set families in graph
      decompositions and efficient algorithms”, Phd Thesis, 2008
      C. Crespelle, ”Repr´sentations dynamiques de graphes”, PhD
                         e
      Thesis (in French), 2007           attend I. Todinca’s talk !!!

      Common intervals and sorting by reversal:
                                         attend M. Bouvel’s talk!!!

AlgoPerm2012 - 04 Christophe Paul

  • 1.
    Algorithmics of Modular decomposition Christophe Paul CNRS - LIRMM, Montpellier France Algorithms & Permutations Workshop February 20, 2012 Joint work with: A. Bergeron, S. B´rard, S. Bessy, B.M. Bui Xuan, C. e Chauve, D. Corneil, F. Fomin, E. Gioan, M. Habib, A. Perez, S. Saurabh, S. Thomass´, M. Tedder, L. Viennot. . . e
  • 2.
    Modular decomposition ofundirected graphs Ehrenfeucht et al’s modular decomposition algorithm Common Intervals of permutations Modular decomposition of tournaments Kernelization algorithm for FAST
  • 3.
    Permutations and permutationgraphs 1 2 3 4 5 6 7 8 9 10 11 7 6 1 5 10 8 11 9 2 3 4 5 2 8 6 10 1 3 7 9 4 11
  • 4.
    Permutations and permutationgraphs 1 2 3 4 5 6 7 8 9 10 11 7 6 1 5 10 8 11 9 2 3 4 5 2 8 6 10 1 3 7 9 4 11
  • 5.
    Permutations and permutationgraphs 1 2 3 4 5 6 7 8 9 10 11 7 6 1 5 10 8 11 9 2 3 4 5 2 8 6 10 1 3 7 9 4 11 Does a permutation graph have a unique representation ?
  • 6.
    Permutations and permutationgraphs 1 2 3 4 5 6 7 10 8 11 9 7 6 1 5 8 9 10 11 2 3 4 5 2 8 6 10 1 3 7 9 4 11 Does a permutation graph have a unique representation ?
  • 7.
    Modules Asubset of vertices M of a graph G = (V , E ) is a module iff ∀x ∈ V M, either M ⊆ N(x) or M ∩ N(x) = ∅ 5 2 8 6 10 1 3 7 9 4 11
  • 8.
    Modules Asubset of vertices M of a graph G = (V , E ) is a module iff ∀x ∈ V M, either M ⊆ N(x) or M ∩ N(x) = ∅ 5 2 8 6 10 1 3 7 9 4 11 Examples of modules: connected components connected components of G
  • 9.
    Modules Asubset of vertices M of a graph G = (V , E ) is a module iff ∀x ∈ V M, either M ⊆ N(x) or M ∩ N(x) = ∅ 5 2 8 6 10 1 3 7 9 4 11 A graph (a module) is prime is all its modules are trivial: e.g. the P4 .
  • 10.
    Modules Asubset of vertices M of a graph G = (V , E ) is a module iff ∀x ∈ V M, either M ⊆ N(x) or M ∩ N(x) = ∅ 5 2 8 6 10 1 3 7 9 4 11 A graph (a module) is prime is all its modules are trivial: e.g. the P4 . A graph (a module) is degenerate if every subset of vertices is a module: cliques and stables.
  • 11.
    Permutation graph recognition Theorem [Gallai’67] A permutation graph has a unique representation (up to reversal) iff it is prime.
  • 12.
    Permutation graph recognition Theorem [Gallai’67] A permutation graph has a unique representation (up to reversal) iff it is prime. Recognition algorithm Recursively solve the problem on modules Solve the prime case (with linear time transitive orientation algorithm)
  • 13.
    Permutation graph recognition Theorem [Gallai’67] A permutation graph has a unique representation (up to reversal) iff it is prime. Recognition algorithm Recursively solve the problem on modules Solve the prime case (with linear time transitive orientation algorithm) Theorem [McConnell and Spinrad’99] The permutation graph recognition problem can be solved in O(n + m) time we need a linear time modular decomposition algorithm
  • 14.
    Partitive families If M and M are two overlapping modules then
  • 15.
    Partitive families If M and M are two overlapping modules then M M is a module
  • 16.
    Partitive families If M and M are two overlapping modules then M M is a module M ∩ M is a module
  • 17.
    Partitive families If M and M are two overlapping modules then M M is a module M ∩ M is a module M∆M is a module The set of modules of a graph forms a partitive family A module is strong if it does not overlap any other module
  • 18.
    Partitive families If M and M are two overlapping modules then M M is a module M ∩ M is a module M∆M is a module The set of modules of a graph forms a partitive family A module is strong if it does not overlap any other module 5 2 8 1 2 3 4 5 6 7 8 9 10 11 6 10 1 234 67 8 9 10 11 3 7 9 1 2 3 4 5 6 7 8 9 10 11 4 11 Strong modules are nested into an inclusion tree: the modular decomposition tree MD(G )
  • 19.
    Modular partition andquotient graph A partition P of the vertex set of a graph G is a modular partition if every part is a module of G . 5 2 8 6 10 1 3 7 9 4 11
  • 20.
    Modular partition andquotient graph A partition P of the vertex set of a graph G is a modular partition if every part is a module of G . 5 2 8 6 10 1 3 7 9 4 11 If P is a modular partition of G , the quotient graph G/P is the induced subgraph obtained by choosing one vertex per part of P.
  • 21.
    Theorem [Gal’67,CHM81] Let G = (V , E ) be a graph. Then either 1. (parallel) G is not connected, or 2. (series) G is not connected, or
  • 22.
    Theorem [Gal’67,CHM81] Let G = (V , E ) be a graph. Then either 1. (parallel) G is not connected, or 2. (series) G is not connected, or 3. (prime) G/M(G ) is a prime graph, with M(G ) the modular partition containing the maximal strong modules of G . 5 Prime 2 8 1 2 3 4 5 6 7 8 9 10 11 6 10 1 parallel series Prime 3 234 67 8 9 10 11 7 9 4 11 1 2 3 4 5 6 7 8 9 10 11
  • 23.
    Theorem [Gal’67,CHM81] Let G = (V , E ) be a graph. Then either 1. (parallel) G is not connected, or 2. (series) G is not connected, or 3. (prime) G/M(G ) is a prime graph, with M(G ) the modular partition containing the maximal strong modules of G . 5 Prime 2 8 1 2 3 4 5 6 7 8 9 10 11 6 10 1 parallel series Prime 3 234 67 8 9 10 11 7 9 4 11 1 2 3 4 5 6 7 8 9 10 11 Observation: If a P4 on {a, b, c, d} overlap a module M, then |M ∩ {a, b, c, d}| = 1
  • 24.
    Modular decomposition algorithms O(n4 ) [Cowan, James, Stanton’72] O(n3 ) [Blass, 1978], [Habib, Maurer’79] O(n2 ) [McConnell, Spinrad’89]
  • 25.
    Modular decomposition algorithms O(n4 ) [Cowan, James, Stanton’72] O(n3 ) [Blass, 1978], [Habib, Maurer’79] O(n2 ) [McConnell, Spinrad’89] O(n + mα(m, n)) [Spinrad’92], [Cournier, Habib’93] O(n + m) [McConnell, Spinrad’94], [Cournier, Habib’94]
  • 26.
    Modular decomposition algorithms O(n4 ) [Cowan, James, Stanton’72] O(n3 ) [Blass, 1978], [Habib, Maurer’79] O(n2 ) [McConnell, Spinrad’89] O(n + mα(m, n)) [Spinrad’92], [Cournier, Habib’93] O(n + m) [McConnell, Spinrad’94], [Cournier, Habib’94] O(n + m log n) [Habib, Paul, Viennot’99] (factoring permutation), [McConnell, Spinrad’00]
  • 27.
    Modular decomposition algorithms O(n4 ) [Cowan, James, Stanton’72] O(n3 ) [Blass, 1978], [Habib, Maurer’79] O(n2 ) [McConnell, Spinrad’89] O(n + mα(m, n)) [Spinrad’92], [Cournier, Habib’93] O(n + m) [McConnell, Spinrad’94], [Cournier, Habib’94] O(n + m log n) [Habib, Paul, Viennot’99] (factoring permutation), [McConnell, Spinrad’00] O(n + m) [Capelle, Habib’97] (factoring permutation) [Dahlhaus, Gustedt, McConnell’97], [Tedder, Corneil, Habib, Paul’08] other many others for variants of modular decomposition
  • 28.
    Cographs - Totallydecomposable graphs Theorem: A graph is a cograph (a P4 -free graph 1 2 3 4) iff its modular decomposition tree does not contain any prime node b u Series d v Parallel Parallel c e Series Series e Series Series a w Parallel z d Parallel y w u v z y x a c b x
  • 29.
    Cographs - Totallydecomposable graphs Theorem: A graph is a cograph (a P4 -free graph 1 2 3 4) iff its modular decomposition tree does not contain any prime node b u Series d v Parallel Parallel c e Series Series e Series Series a w Parallel z d Parallel y w u v z y x a c b x Cographs can be built from the single vertex with the disjoint union and series composition Exercice: prove that cographs are permutation graphs
  • 30.
    Cographs - Totallydecomposable graphs Theorem: A graph is a cograph (a P4 -free graph 1 2 3 4) iff its modular decomposition tree does not contain any prime node b u Series d v Parallel Parallel c e Series Series e Series Series a w Parallel z d Parallel y w u v z y x a c b x Linear time recognition algorithms incremental [Corneil, Pearl, Stewart’85] partition refinement [Habib, P.’05] LexBFS [Bretscher, Corneil, Habib, P.’08]
  • 31.
    Modular decomposition ofundirected graphs Ehrenfeucht et al’s modular decomposition algorithm Common Intervals of permutations Modular decomposition of tournaments Kernelization algorithm for FAST
  • 32.
    Ehrenfeucht et al’smodular decomposition algorithm M(G , v ) is the modular partition composed by {v } and the maximal modules of G not containing v . series prime parallel 8 9 8 9 A @ A @ C B C B   ¡   ¡ parallel series series ! ! # # 4 5 4 5 7 6 7 6 2 3 2 3 0 1 0 1 series ¢ £ ¢ £ ¨ © ¨ © ¦ § ¦ § $ % $ % ( ) ( ) v ¤ ¥ ¤ ¥ v ' ' 1. Compute M(G , v ) 2. Compute MD(G/M(G ,v ) ) 3. For each X ∈ M(G , v ) compute MD(G [X ])
  • 33.
    Computation of M(G, v ) (1) Lemma [MR84] Let P be a modular partition of G = (V , E ). X ⊆ P is a module of G/P iff ∪M∈X M is a module of G . 5 2 8 6 10 1 3 7 9 4 11
  • 34.
    Computation of M(G, v ) (1) Lemma [MR84] Let P be a modular partition of G = (V , E ). X ⊆ P is a module of G/P iff ∪M∈X M is a module of G . A vertex x is a splitter for a set S of vertices if ∃y , z ∈ S with xy ∈ S and xz ∈ E / We say that x separate y and z. 2 6 1 4 3 7
  • 35.
    Computation of M(G, v ) (1) Lemma [MR84] Let P be a modular partition of G = (V , E ). X ⊆ P is a module of G/P iff ∪M∈X M is a module of G . A vertex x is a splitter for a set S of vertices if ∃y , z ∈ S with xy ∈ S and xz ∈ E / We say that x separate y and z. 2 6 Lemma If x is a splitter for the set 1 4 S, then any module M containing S must also contain x. 3 7
  • 36.
    Computation of M(G, v ) (2) Lemma If v is a splitter of a set S, then for any module M ⊆ S either M ⊆ S ∩ N(v ) or M ⊆ M ∩ N(v )
  • 37.
    Computation of M(G, v ) (2) Lemma If v is a splitter of a set S, then for any module M ⊆ S either M ⊆ S ∩ N(v ) or M ⊆ M ∩ N(v ) O(n + m log n) time using vertex partitioning algorihtm N(v) N(v) v
  • 38.
    Computation of M(G, v ) (2) Lemma If v is a splitter of a set S, then for any module M ⊆ S either M ⊆ S ∩ N(v ) or M ⊆ M ∩ N(v ) O(n + m log n) time using vertex partitioning algorihtm v x
  • 39.
    Computation of M(G, v ) (2) Lemma If v is a splitter of a set S, then for any module M ⊆ S either M ⊆ S ∩ N(v ) or M ⊆ M ∩ N(v ) O(n + m log n) time using vertex partitioning algorihtm v x y
  • 40.
    Computation of M(G, v ) (2) Lemma If v is a splitter of a set S, then for any module M ⊆ S either M ⊆ S ∩ N(v ) or M ⊆ M ∩ N(v ) O(n + m log n) time using vertex partitioning algorihtm v z
  • 41.
    Computation of MD(G/M(G,v ) ) (3) The modules of G/M(G ,v ) are linearly nested: any non-trivial module contains v 6 3 4 5 2 v 1
  • 42.
    Computation of MD(G/M(G,v ) ) (3) The modules of G/M(G ,v ) are linearly nested: any non-trivial module contains v The forcing graph F(G , v ) has edge − iff y separates x and v → xy 6 5 4 6 3 3 4 5 6 v 2 2 1 v 1 5 4 3 2 1
  • 43.
    Computation of MD(G/M(G,v ) ) (3) The modules of G/M(G ,v ) are linearly nested: any non-trivial module contains v The forcing graph F(G , v ) has edge − iff y separates x and v → xy 6 5 4 6 3 3 4 5 6 v 2 2 1 v 1 5 4 3 2 1
  • 44.
    Computation of MD(G/M(G,v ) ) (4) Complexity [Ehrenfeucht et al.’94] gives a O(n2 ) complexity. [MS00]: simple O(n + m log n) vertex partitioning algorithm [DGM’01]: O(n + m.α(n, m)) and a more complicated O(n + m) implementation. Other algorithms [CH94] and [MS94]: the first linear algorithms. [MS99]: O(n + m) algorithm which extends to transitive orientation.
  • 45.
    Computation of MD(G/M(G,v ) ) (4) Complexity [Ehrenfeucht et al.’94] gives a O(n2 ) complexity. [MS00]: simple O(n + m log n) vertex partitioning algorithm [DGM’01]: O(n + m.α(n, m)) and a more complicated O(n + m) implementation. Other algorithms [CH94] and [MS94]: the first linear algorithms. [MS99]: O(n + m) algorithm which extends to transitive orientation. [Spinrad’03] The new [linear time] algorithm [MS99] is currently too complex to describe easily [...] I hope and believe that in a number of years the linear algorithm can be simplified as well. [Tedder, Corneil, Habib, P.’08] simple linear time algorithm
  • 46.
    Modular decomposition ofundirected graphs Ehrenfeucht et al’s modular decomposition algorithm Common Intervals of permutations Modular decomposition of tournaments Kernelization algorithm for FAST
  • 47.
    Back to permutations:common intervals In a permutation σ, a set S of consecutive elements is called an interval. Likewise a set S is a common interval of several permutations σ1 , σ2 . . . if it is an interval for every σi . 1 2 3 4 5 6 7 8 9 10 11 7 6 1 5 10 8 11 9 2 3 4
  • 48.
    Back to permutations:common intervals In a permutation σ, a set S of consecutive elements is called an interval. Likewise a set S is a common interval of several permutations σ1 , σ2 . . . if it is an interval for every σi . 5 2 8 1 2 3 4 5 6 7 8 9 10 11 6 10 1 3 7 6 1 5 10 8 11 9 2 3 4 7 9 4 11 Obs.: common intervals of σ1 , σ2 are not modules of G (σ1 , σ2 )
  • 49.
    Back to permutations:common intervals In a permutation σ, a set S of consecutive elements is called an interval. Likewise a set S is a common interval of several permutations σ1 , σ2 . . . if it is an interval for every σi . 5 2 8 1 2 3 4 5 6 7 8 9 10 11 6 10 1 3 7 6 1 5 10 8 11 9 2 3 4 7 9 4 11 Obs.: common intervals of σ1 , σ2 are not modules of G (σ1 , σ2 ) Computation of all common intervals in linear time - O(n2 ) - [Uno, Yagura’00]
  • 50.
    Back to permutations:common intervals In a permutation σ, a set S of consecutive elements is called an interval. Likewise a set S is a common interval of several permutations σ1 , σ2 . . . if it is an interval for every σi . 5 2 8 1 2 3 4 5 6 7 8 9 10 11 6 10 1 3 7 6 1 5 10 8 11 9 2 3 4 7 9 4 11 Obs.: common intervals of σ1 , σ2 are not modules of G (σ1 , σ2 ) Strong (common) interval doesn’t overlap other common intervals Lemma [de Montgolfier] A set S is a strong interval of σ1 and σ2 iff it is a strong module of the permutation graph G (σ1 , σ2 )
  • 51.
    Common intervals (2) The family of common intervals is weakly partitive: 7 1 6 5 4 3 2 9 8 11 10 if I1 and I2 are two common intervals then I1 ∪ I2 is a common interval I1 ∩ I2 is a common interval I1 I2 and I2 I1 are common intervals
  • 52.
    Common intervals (2) The family of common intervals is weakly partitive: 7 1 6 5 4 3 2 9 8 11 10 7 1 5 3 8 if I1 and I2 are two common intervals then I1 ∪ I2 is a common interval I1 ∩ I2 is a common interval I1 I2 and I2 I1 are common intervals Let I be a partition of [1 . . . n] into common intervals of the permutation σ, then we denote by σ/I the quotient permutation defined on [1 . . . |I|]
  • 53.
    Common intervals (2) The family of common intervals is weakly partitive: 7 1 6 5 4 3 2 9 8 11 10 4 1 3 2 5 if I1 and I2 are two common intervals then I1 ∪ I2 is a common interval I1 ∩ I2 is a common interval I1 I2 and I2 I1 are common intervals Let I be a partition of [1 . . . n] into common intervals of the permutation σ, then we denote by σ/I the quotient permutation defined on [1 . . . |I|]
  • 54.
    Common intervals (3) Theorem Let σ be a permutation on [1, . . . n] and I be the partition into maximal common intervals of σ, then either 1. σ/I = 1|I| - the identity on [1 . . . |I|] 2. σ/I = 1|I| - the reverse identity on [1 . . . |I|] 3. σ/I is prime - or simple (does not have non-trivial common interval)
  • 55.
    Common intervals (3) Theorem Let σ be a permutation on [1, . . . n] and I be the partition into maximal common intervals of σ, then either 1. σ/I = 1|I| - the identity on [1 . . . |I|] 2. σ/I = 1|I| - the reverse identity on [1 . . . |I|] 3. σ/I is prime - or simple (does not have non-trivial common interval) 7 1 6 5 4 3 2 9 8 11 10 Theorem (see e.g. [Bergeron et al.’08]) The common interval tree can be computed in O(n) time.
  • 56.
    Common intervals (4) A permutation σ is separable if it does not contains the pattern 3142 7 1 6 5 4 3 2 9 8 11 10
  • 57.
    Common intervals (4) A permutation σ is separable if it does not contains the pattern 3142 1 2 3 4 3 1 4 2 corresponds to the P4 7 1 6 5 4 3 2 9 8 11 10
  • 58.
    Common intervals (4) A permutation σ is separable if it does not contains the pattern 3142 1 2 3 4 3 1 4 2 corresponds to the P4 a permutation is separable iff its common interval tree does not contains prime nodes a permutation is separable iff the permutation graph G (σ, 1) is a cograph (P4 -free graph) 7 1 6 5 4 3 2 9 8 11 10
  • 59.
    Modular decomposition ofundirected graphs Ehrenfeucht et al’s modular decomposition algorithm Common Intervals of permutations Modular decomposition of tournaments Kernelization algorithm for FAST
  • 60.
    Modular decomposition oftournaments 1 2 8 3 7 4 6 5
  • 61.
    Modular decomposition oftournaments 1 2 8 3 7 4 6 5 A module in a tournament is a set S such that for every x ∈ S / either ∀y ∈ S, x → y or ∀y ∈ S, y → x
  • 62.
    Modular decomposition oftournaments 1 2 8 3 7 4 6 5 A tournament is transitive if there exists a permutation σ of V (T ) with no backward arcs Theorem: Let T be a tournament and M(T ) be the modular partition into maximal strong modules, then 1. either T/M(T ) is transitive - contains no backward arc 2. or T/M(T ) is prime
  • 63.
    Modular decomposition oftournaments 1 2 8 3 7 4 6 5 1 2 3 4 5 6 7 8 A tournament is transitive if there exists a permutation σ of V (T ) with no backward arcs Theorem: Let T be a tournament and M(T ) be the modular partition into maximal strong modules, then 1. either T/M(T ) is transitive - contains no backward arc 2. or T/M(T ) is prime
  • 64.
    Modular decomposition algorithmfor tournaments A factoring permutation of a tournament T (or a graph) is a permutation σ of its vertices such that every (strong) module of T is an interval of σ
  • 65.
    Modular decomposition algorithmfor tournaments A factoring permutation of a tournament T (or a graph) is a permutation σ of its vertices such that every (strong) module of T is an interval of σ Factoring permutation via a partition refinement algorithm in linear time [de Mongolfier’03] 1 2 3 4 5 6 7 8
  • 66.
    Modular decomposition algorithmfor tournaments A factoring permutation of a tournament T (or a graph) is a permutation σ of its vertices such that every (strong) module of T is an interval of σ Factoring permutation via a partition refinement algorithm in linear time [de Mongolfier’03] 3 4 5 6 1 2 7 8
  • 67.
    Modular decomposition algorithmfor tournaments A factoring permutation of a tournament T (or a graph) is a permutation σ of its vertices such that every (strong) module of T is an interval of σ Factoring permutation via a partition refinement algorithm in linear time [de Mongolfier’03] 4 3 5 6 1 2 8 7
  • 68.
    Modular decomposition algorithmfor tournaments A factoring permutation of a tournament T (or a graph) is a permutation σ of its vertices such that every (strong) module of T is an interval of σ Factoring permutation via a partition refinement algorithm in linear time [de Mongolfier’03] 4 3 5 6 1 2 8 7
  • 69.
    Modular decomposition algorithmfor tournaments A factoring permutation of a tournament T (or a graph) is a permutation σ of its vertices such that every (strong) module of T is an interval of σ Factoring permutation via a partition refinement algorithm in linear time [de Mongolfier’03] 4 3 5 6 1 2 8 7 Modular decomposition tree from a factoring permutation in linear time [Capelle’97]
  • 70.
    Modular decomposition ofundirected graphs Ehrenfeucht et al’s modular decomposition algorithm Common Intervals of permutations Modular decomposition of tournaments Kernelization algorithm for FAST
  • 71.
    FAST: Feedback ArcSet in Tournament A tournament T and an integer k Find a set of at most k arcs whose reversal transform T into a transitive tournament
  • 72.
    FAST: Feedback ArcSet in Tournament A tournament T and an integer k Find a permutation σ of the vertices with at most k backward edges 1 2 3 4 5 6 7 8
  • 73.
    FAST: Feedback ArcSet in Tournament A tournament T and an integer k Find a permutation σ of the vertices with at most k backward edges 1 2 3 4 5 6 7 8 NP-Complete [Alon’06] [Charbit et al.’07] FTP [Raman, Saurabh’06] [Alon et al.’09] (1 + )-approximation scheme [Kenyon-Mathieu, Schudy’07]
  • 74.
    FAST (2) Obs.: A tournament is transitive iff there is no (directed) triangle 1 2 8 3 7 4 6 5
  • 75.
    FAST (2) Obs.: A tournament is transitive iff there is no (directed) triangle 1 2 8 3 7 4 6 5
  • 76.
    FAST (2) Obs.: A tournament is transitive iff there is no (directed) triangle 1 2 8 3 7 4 6 5
  • 77.
    FAST (2) Obs.: A tournament is transitive iff there is no (directed) triangle Rule 1 [irrelevant vertex] If a vertex v is not contained in any triangle, then delete v Rule 2 [sunflower] If there is an arc belonging to more that k distinct triangles, then reverse it and decrease k by 1
  • 78.
    FAST (2) Obs.: A tournament is transitive iff there is no (directed) triangle Rule 1 [irrelevant vertex] If a vertex v is not contained in any triangle, then delete v A reduced tournament contains no source nor sink Rule 2 [sunflower] If there is an arc belonging to more that k distinct triangles, then reverse it and decrease k by 1 The span s(− ) of a backward arc of a reduced tournament is → uv 2k + 2
  • 79.
    FAST (3) Rule 3 [acyclic module] Let M be a maximal acyclic module. If there are at most p = |M| arcs from N + (M) to N − (M), then reverse all these arcs and decrease k by p.
  • 80.
    FAST (3) Rule 3 [acyclic module] Let M be a maximal acyclic module. If there are at most p = |M| arcs from N + (M) to N − (M), then reverse all these arcs and decrease k by p.
  • 81.
    FAST (3) Rule 3 [acyclic module] Let M be a maximal acyclic module. If there are at most p = |M| arcs from N + (M) to N − (M), then reverse all these arcs and decrease k by p. acyclic module Rule ⇒ ti2 s(− ) → uv ti
  • 82.
    FAST (3) Rule 3 [acyclic module] Let M be a maximal acyclic module. If there are at most p = |M| arcs from N + (M) to N − (M), then reverse all these arcs and decrease k by p. sunflower Rule ⇒ ti2 s(− ) → uv k(2k + 2)
  • 83.
    FAST (3) Rule 3 [acyclic module] Let M be a maximal acyclic module. If there are at most p = |M| arcs from N + (M) to N − (M), then reverse all these arcs and decrease k by p. sunflower Rule ⇒ ti2 s(− ) → uv k(2k + 2) Theorem [Bessy et al.’09]: Every instance (T , k) of k-FAST can be reduced in polynomial time to an equivalent instance (T , k ) such that √ |T | 2k + ti = O(k k) and k k
  • 84.
    Kernelization algorithm poly time (G,k) (G’,k’) |G’¦=f(k) Given a parameterized instance (I, k) of a problem, a kernelization algorithm computes in polytime an equivalent instance (I , k ) st. k = f (k) and |I | g (k)
  • 85.
    Kernelization algorithm poly time (G,k) (G’,k’) |G’¦=f(k) Given a parameterized instance (I, k) of a problem, a kernelization algorithm computes in polytime an equivalent instance (I , k ) st. k = f (k) and |I | g (k) √ we described a O(k k)-vertex kernel for FAST based on modular decomposition best known result: O(k)-vertex kernel ([Bessy et al.’09], [P., Perez, Thomass´’11]) e
  • 86.
    Kernelization algorithm poly time (G,k) (G’,k’) |G’¦=f(k) Given a parameterized instance (I, k) of a problem, a kernelization algorithm computes in polytime an equivalent instance (I , k ) st. k = f (k) and |I | g (k) Other modular decomposition kernelizations: O(k 2 )-vertex kernel for cluster editing O(k 3 )-vertex kernel for cograph editing also for min flip consensus tree, closest 3-leaf power. . .
  • 87.
    Some conclusions Modular decomposition plays an important role in the context of many graph classes permutation graphs, interval graphs, comparability graphs . . . even perfect graph)
  • 88.
    Some conclusions Modular decomposition plays an important role in the context of many graph classes permutation graphs, interval graphs, comparability graphs . . . even perfect graph) Many examples of partitive (weakly partitive) families are known in various contexts modules in undirected graphs, digraphs, hypergraphs common interval of permutations
  • 89.
    Some conclusions Modular decomposition plays an important role in the context of many graph classes permutation graphs, interval graphs, comparability graphs . . . even perfect graph) Many examples of partitive (weakly partitive) families are known in various contexts modules in undirected graphs, digraphs, hypergraphs common interval of permutations Various generalizations bimodular decomposition (module adapted to bipartite graphs) bipartitive families : eg. split decomposition of graphs - O(n + α(n, m).m) circle graph recognition crossing families, union-difference families of sets. . . clique-width (cographs are clique-widht 2 graphs), rankwidth
  • 90.
    To learn /read more Habib and P. ”A survey of the algorithmic aspects of modular decomposition” in Computer Science Review 4:41-59, 2010
  • 91.
    To learn /read more Habib and P. ”A survey of the algorithmic aspects of modular decomposition” in Computer Science Review 4:41-59, 2010 F. de Montgolfier, ”D´composition modulaire de graphes, e th´orie, extensions et algorithmes”, Phd Thesis (in French), e 2003 B.M. Bui Xuan, ”Tree-representation of set families in graph decompositions and efficient algorithms”, Phd Thesis, 2008
  • 92.
    To learn /read more Habib and P. ”A survey of the algorithmic aspects of modular decomposition” in Computer Science Review 4:41-59, 2010 F. de Montgolfier, ”D´composition modulaire de graphes, e th´orie, extensions et algorithmes”, Phd Thesis (in French), e 2003 B.M. Bui Xuan, ”Tree-representation of set families in graph decompositions and efficient algorithms”, Phd Thesis, 2008 C. Crespelle, ”Repr´sentations dynamiques de graphes”, PhD e Thesis (in French), 2007 attend I. Todinca’s talk !!!
  • 93.
    To learn /read more Habib and P. ”A survey of the algorithmic aspects of modular decomposition” in Computer Science Review 4:41-59, 2010 F. de Montgolfier, ”D´composition modulaire de graphes, e th´orie, extensions et algorithmes”, Phd Thesis (in French), e 2003 B.M. Bui Xuan, ”Tree-representation of set families in graph decompositions and efficient algorithms”, Phd Thesis, 2008 C. Crespelle, ”Repr´sentations dynamiques de graphes”, PhD e Thesis (in French), 2007 attend I. Todinca’s talk !!! Common intervals and sorting by reversal: attend M. Bouvel’s talk!!!