SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Downloaden Sie, um offline zu lesen
Recognizing Sparse Perfect Elimination Bipartite Graphs




           Recognizing Sparse Perfect Elimination Bipartite
                               Graphs

                                                Matthijs Bomhoff

                                                  University of Twente
                                                   The Netherlands


                                               CSR 2011, June 18
Recognizing Sparse Perfect Elimination Bipartite Graphs
  Outline




       1    Introduction and Motivation


       2    Perfect Elimination Bipartite Graphs


       3    A New Recognition Algorithm


       4    Conclusion
Recognizing Sparse Perfect Elimination Bipartite Graphs
  Introduction and Motivation



      Gaussian Elimination Example

                                
             −24       7    4 −6
                                
       
            −8        2    0 0 
       
             5        0    4 0 
              1        0    0 3
Recognizing Sparse Perfect Elimination Bipartite Graphs
  Introduction and Motivation



      Gaussian Elimination Example
                                                         
                        −24 7 4 −6
                                        
         −24 7 4 −6                                      
        −8 2 0 0   0 = 0 = 0 = 0
                                                       
                                                          
        5 0 4 0   0 =0 =0 =0
                                                       
                                                          
                                                       
          1 0 0 3        0 =0 =0 =0
Recognizing Sparse Perfect Elimination Bipartite Graphs
  Introduction and Motivation



      Gaussian Elimination Example
                                                         
                                  −24 7 4 −6
                                        
             −24       7 4 −6                            
                               0 =0 =0 =0              
            −8        2 0 0                            
                       0 4 0   0 =0 =0 =0
                                                       
       
             5                
                                                          
                                                          
              1        0 0 3       0 =0 =0 =0
                             
             −24       7 4 −6
                             
       
            −8        2 0 0 
       
             5        0 4 0 
              1        0 0 3
Recognizing Sparse Perfect Elimination Bipartite Graphs
  Introduction and Motivation



      Gaussian Elimination Example
                                                                
                        −24 7                              4 −6
                                        
         −24 7 4 −6                                             
        −8 2 0 0   0 = 0                               =0 =0 
                    
                                                                 
        5 0 4 0   0 =0                                 =0 =0 
                                                              
                                                              
          1 0 0 3        0 =0                             =0 =0
                                                            
         −24 7 4 −6     =0 =0                             =0 0
                                                            
        −8 2 0 0     −8 2                              0 0 
                                                            
        5 0 4 0   5      0                             4 0 
                                                               
                    
          1 0 0 3        1  0                             0 3
Recognizing Sparse Perfect Elimination Bipartite Graphs
  Introduction and Motivation



      Gaussian Elimination Example
                                                                
                        −24 7                              4 −6
                                        
         −24 7 4 −6                                             
        −8 2 0 0   0 = 0                               =0 =0 
                    
                                                                 
        5 0 4 0   0 =0                                 =0 =0 
                                                              
                                                              
          1 0 0 3        0 =0                             =0 =0
                                                            
         −24 7 4 −6     =0 =0                             =0 0
                                                            
        −8 2 0 0     −8 2                              0 0 
                                                            
        5 0 4 0   5      0                             4 0 
                                                               
                    
          1 0 0 3        1  0                             0 3

               Question: when can we avoid turning zeroes into non-zeroes
               completely?
Recognizing Sparse Perfect Elimination Bipartite Graphs
  Introduction and Motivation



      Simplification
       ‘Regularity’ assumption: If we add some multiple of row i to row j,
       at most one non-zero value is turned into a zero.
Recognizing Sparse Perfect Elimination Bipartite Graphs
  Introduction and Motivation



      Simplification
       ‘Regularity’ assumption: If we add some multiple of row i to row j,
       at most one non-zero value is turned into a zero.
           Exact values are not important
           A problem instance is a n × n (0, 1)-matrix M (with m
           non-zeroes, n ≤ m ≤ n2 ):
                                                
                                                     1 1 1   1   
                                                     1 1 0   0   
                                                                 
                                                     1 0 1   0   
                                                                 
                                                      1 0 0   1
Recognizing Sparse Perfect Elimination Bipartite Graphs
  Introduction and Motivation



      Simplification
       ‘Regularity’ assumption: If we add some multiple of row i to row j,
       at most one non-zero value is turned into a zero.
           Exact values are not important
           A problem instance is a n × n (0, 1)-matrix M (with m
           non-zeroes, n ≤ m ≤ n2 ):
                                                
                                                     1 1 1     1   
                                                     1 1 0     0   
                                                                   
                                                     1 0 1     0   
                                                                   
                                                      1 0 0     1
               . . . or an equivalent bipartite graph GM (with m edges):
                                       r1     r2    r3   r4



                                                  c1      c2   c3   c4
Recognizing Sparse Perfect Elimination Bipartite Graphs
  Introduction and Motivation



      Suitable Pivots

       Remark
       A pivot (i, j) (with Mi,j = 1) does not create additional
       non-zeroes, if for every i , j we have that if Mi,j = 1 and
       Mi ,j = 1, then Mi ,j = 1.
                                                                     
                                                     1   1   1   0   
                                               
                                                     0   1   1   0   
                                                                      
                                               
                                                     1   1   0   1   
                                                                      
                                                      1   1   1   0


               If we can find a sequence of n such pivots in distinct rows and
               columns, we can perform elimination without creating new
               non-zeroes.
Recognizing Sparse Perfect Elimination Bipartite Graphs
  Introduction and Motivation



      Bisimplicial Edges

       Definition
       An edge e of a bipartite graph G is called bisimplicial if the
       neighbors of the vertices incident to it induce a complete bipartite
       subgraph.

                       r1         r2        r3            r4   r1   r2   r3   r4



                       c1        c2         c3        c4       c1   c2   c3   c4


               Bisimplicial edges in GM correspond to pivots that avoid new
               non-zeroes in M.
Recognizing Sparse Perfect Elimination Bipartite Graphs
  Perfect Elimination Bipartite Graphs



      Perfect Elimination Bipartite Graphs


       Definition
       (Golumbic and Goss, (1978,1980)) A graph G is called perfect
       elimination bipartite if there exists a sequence of edges
       [e1 , e2 , . . . , en ] such that:
          1    e1 is a bisimplicial edge in G and ei is bisimplicial in
               G − [e1 , . . . , ei−1 ] for 2 ≤ i ≤ n;
          2    G − [e1 , e2 , . . . , en ] is empty.

               Perfect elimination bipartite graphs correspond to matrices
               that allow elimination without creating new non-zeroes.
               Naive algorithm for recognition: O n5
Recognizing Sparse Perfect Elimination Bipartite Graphs
  Perfect Elimination Bipartite Graphs



      A faster algorithm
       Remark
       (Goh and Rotem (1982)) Consider the matrix Q = MM T : Qi,j
       contains the inner product of rows Mi,∗ and Mj,∗ . Let li equal the
       number of elements in row Qi,∗ with value equal to Qi,i . Denote
       by sj the column sums in M. (i, j) is bisimplicial in GM iff Mi,j = 1
       and li = sj .

               This leads to a O n3 algorithm
               Spinrad (2004) subsequently improves this to O n3 / log n
Recognizing Sparse Perfect Elimination Bipartite Graphs
  Perfect Elimination Bipartite Graphs



      A faster algorithm
       Remark
       (Goh and Rotem (1982)) Consider the matrix Q = MM T : Qi,j
       contains the inner product of rows Mi,∗ and Mj,∗ . Let li equal the
       number of elements in row Qi,∗ with value equal to Qi,i . Denote
       by sj the column sums in M. (i, j) is bisimplicial in GM iff Mi,j = 1
       and li = sj .

               This leads to a O n3 algorithm
               Spinrad (2004) subsequently improves this to O n3 / log n
               Unfortunately, a sparse M may lead to a dense Q:
                                                                
                1 1 1 1   1 1 1 1   4 1 1 1 
                1 0 0 0   1 0 0 0   1 1 1 1 
                1 0 0 0 × 1 0 0 0 = 1 1 1 1 
                                                                
                                                                
                   1 0 0 0             1 0 0 0            1 1 1 1
Recognizing Sparse Perfect Elimination Bipartite Graphs
  Perfect Elimination Bipartite Graphs



      Summary so far



               Matrices that allow elimination without new non-zeroes
               correspond to perfect elimination bipartite graphs
               Recognition algorithms (time complexity):
                       naive: O n5
                       based on matrix-multiplication: O n3 / log n
Recognizing Sparse Perfect Elimination Bipartite Graphs
  Perfect Elimination Bipartite Graphs



      Summary so far



               Matrices that allow elimination without new non-zeroes
               correspond to perfect elimination bipartite graphs
               Recognition algorithms (time complexity):
                       naive: O n5
                       based on matrix-multiplication: O n3 / log n
               However, the result of matrix-multiplication may be a dense
               matrix, while avoiding new non-zeroes is mainly useful for
               sparse matrices. . .
Recognizing Sparse Perfect Elimination Bipartite Graphs
  A New Recognition Algorithm



      An Observation
                                    
              1    1    1     0     
       
              0    1    1     0     
                                     
       
              1    1    0     1     
                                     
               1    1    1     0
Recognizing Sparse Perfect Elimination Bipartite Graphs
  A New Recognition Algorithm



      An Observation
                                                                   
              1    1    1     0                   1    1   1   0   
       
              0    1    1     0     
                                     
                                             
                                                    0    1   1   0   
                                                                      
       
              1    1    0     1     
                                     
                                             
                                                    1    1   0   1   
                                                                      
               1    1    1     0                     1    1   1   0
Recognizing Sparse Perfect Elimination Bipartite Graphs
  A New Recognition Algorithm



      An Observation
                                                                                         
              1    1    1     0                   1    1   1   0         1   1   1   0   
       
              0    1    1     0     
                                     
                                             
                                                    0    1   1   0   
                                                                      
                                                                          
                                                                             0   1   1   0   
                                                                                              
       
              1    1    0     1     
                                     
                                             
                                                    1    1   0   1   
                                                                      
                                                                          
                                                                             1   1   0   1   
                                                                                              
               1    1    1     0                     1    1   1   0           1   1   1   0
Recognizing Sparse Perfect Elimination Bipartite Graphs
  A New Recognition Algorithm



      An Observation
                                                                                         
              1    1    1     0                   1    1   1   0         1   1   1   0   
       
              0    1    1     0     
                                     
                                             
                                                    0    1   1   0   
                                                                      
                                                                          
                                                                             0   1   1   0   
                                                                                              
       
              1    1    0     1     
                                     
                                             
                                                    1    1   0   1   
                                                                      
                                                                          
                                                                             1   1   0   1   
                                                                                              
               1    1    1     0                     1    1   1   0           1   1   1   0
                                    
              1    1    1     0     
       
              0    1    1     0     
                                     
       
              1    1    0     1     
                                     
               1    1    1     0
Recognizing Sparse Perfect Elimination Bipartite Graphs
  A New Recognition Algorithm



      An Observation
                                                                                         
              1    1    1     0                   1    1   1   0         1   1   1   0   
       
              0    1    1     0     
                                     
                                             
                                                    0    1   1   0   
                                                                      
                                                                          
                                                                             0   1   1   0   
                                                                                              
       
              1    1    0     1     
                                     
                                             
                                                    1    1   0   1   
                                                                      
                                                                          
                                                                             1   1   0   1   
                                                                                              
               1    1    1     0                     1    1   1   0           1   1   1   0
                                    
              1    1    1     0                                
       
              0    1    1     0     
                                                    1 1 1
               1    1    0     1                     0 1 1
                                                               
                                                               
               1    1    1     0                     1 1 1
Recognizing Sparse Perfect Elimination Bipartite Graphs
  A New Recognition Algorithm



      An Observation
                                                                                         
              1    1    1     0                   1    1   1   0         1   1   1   0   
       
              0    1    1     0     
                                     
                                             
                                                    0    1   1   0   
                                                                      
                                                                          
                                                                             0   1   1   0   
                                                                                              
       
              1    1    0     1     
                                     
                                             
                                                    1    1   0   1   
                                                                      
                                                                          
                                                                             1   1   0   1   
                                                                                              
               1    1    1     0                     1    1   1   0           1   1   1   0
                                    
              1    1    1     0                                
       
              0    1    1     0     
                                                    1 1 1
               1    1    0     1                     0 1 1
                                                               
                                                               
               1    1    1     0                     1 1 1
                              
               1 1 1
               0 1 1
                               
                               
               1 1 1
Recognizing Sparse Perfect Elimination Bipartite Graphs
  A New Recognition Algorithm



      An Observation
                                                                                         
              1    1    1     0                   1    1   1   0         1   1   1   0   
       
              0    1    1     0     
                                     
                                             
                                                    0    1   1   0   
                                                                      
                                                                          
                                                                             0   1   1   0   
                                                                                              
       
              1    1    0     1     
                                     
                                             
                                                    1    1   0   1   
                                                                      
                                                                          
                                                                             1   1   0   1   
                                                                                              
               1    1    1     0                     1    1   1   0           1   1   1   0
                                    
              1    1    1     0                 
       
              0    1    1     0     
                                            1 1 1
               1    1    0     1           0 1 1 
                                                
                                    
               1    1    1     0             1 1 1
                                              
               1 1 1                       1 1 1
               0 1 1                     0 1 1 
                                              
                               
               1 1 1                       1 1 1
Recognizing Sparse Perfect Elimination Bipartite Graphs
  A New Recognition Algorithm



      Algorithm Outline

                                                         
                                     1    1    1     0                 
                              
                                     0    1    1     0   
                                                                 1 1 1
                                      1    1    0     1           0 1 1
                                                                       
                                                                       
                                      1    1    1     0           1 1 1


               Up to n iterations (one for each pivot)
               Each iteration, for every edge:
                       Continue checking other edges until blocked
                       If we finish checking other edges, we found a pivot
                       If all edges block, there is no pivot
Recognizing Sparse Perfect Elimination Bipartite Graphs
  A New Recognition Algorithm



      Implementation Details


               Rows/columns of M stored as lists of column/row numbers
               Consider a single edge over the entire algorithm:
                                                
                                   1        1 
                                                
                                              
                   1 1                                 step: O (m)
                                                
                0 1                       2
                                              
                                                
                   1 0
                                   3        3          block: O (n)
Recognizing Sparse Perfect Elimination Bipartite Graphs
  A New Recognition Algorithm



      Implementation Details


               Rows/columns of M stored as lists of column/row numbers
               Consider a single edge over the entire algorithm:
                                                
                                   1        1 
                                                
                                              
                   1 1                                 step: O (m)
                                                
                0 1                       2
                                              
                                                
                   1 0
                                   3        3          block: O (n)

               Total work for a single edge: O (m) steps and O (n) blocks
               For each pivot, we update all list items: O (m)
Recognizing Sparse Perfect Elimination Bipartite Graphs
  A New Recognition Algorithm



      Time and Space Complexities



               Time complexity: O m2
                       initialization: O n2
                       steps: O m2
                       blocks: O (nm)
                       updates: O (nm)
               Space complexity: O (m)
                       lists: O (m)
                       edge states: O (m)
                       row/column data: O (n)
                       pivots: O (n)
Recognizing Sparse Perfect Elimination Bipartite Graphs
  Conclusion



      Conclusion


               Existing literature: focus on time complexity
               However: space complexity is important in practice
               Our new algorithm:
                       O m2 time
                       O (m) space
                       Both time and space improvement for sparse M
                        m < n n/ log n
Recognizing Sparse Perfect Elimination Bipartite Graphs
  Conclusion



      Conclusion


               Existing literature: focus on time complexity
               However: space complexity is important in practice
               Our new algorithm:
                       O m2 time
                       O (m) space
                       Both time and space improvement for sparse M
                        m < n n/ log n
               Work in progress:
                       Thinking about possible further time complexity improvements
                       Work on alternative elimination procedures

Weitere ähnliche Inhalte

Andere mochten auch

Approximation Algorithms Part Three: (F)PTAS
Approximation Algorithms Part Three: (F)PTASApproximation Algorithms Part Three: (F)PTAS
Approximation Algorithms Part Three: (F)PTASBenjamin Sach
 
Csr2011 june18 15_15_bomhoff
Csr2011 june18 15_15_bomhoffCsr2011 june18 15_15_bomhoff
Csr2011 june18 15_15_bomhoffCSR2011
 
Csr2011 june17 16_30_blin
Csr2011 june17 16_30_blinCsr2011 june17 16_30_blin
Csr2011 june17 16_30_blinCSR2011
 
Fractions: Finding Lowest Terms
Fractions: Finding Lowest TermsFractions: Finding Lowest Terms
Fractions: Finding Lowest Termskeithpeter
 
Csr2011 june14 09_30_grigoriev
Csr2011 june14 09_30_grigorievCsr2011 june14 09_30_grigoriev
Csr2011 june14 09_30_grigorievCSR2011
 

Andere mochten auch (7)

Approximation Algorithms Part Three: (F)PTAS
Approximation Algorithms Part Three: (F)PTASApproximation Algorithms Part Three: (F)PTAS
Approximation Algorithms Part Three: (F)PTAS
 
Csr2011 june18 15_15_bomhoff
Csr2011 june18 15_15_bomhoffCsr2011 june18 15_15_bomhoff
Csr2011 june18 15_15_bomhoff
 
Csr2011 june17 16_30_blin
Csr2011 june17 16_30_blinCsr2011 june17 16_30_blin
Csr2011 june17 16_30_blin
 
27 NP Completness
27 NP Completness27 NP Completness
27 NP Completness
 
Fractions: Finding Lowest Terms
Fractions: Finding Lowest TermsFractions: Finding Lowest Terms
Fractions: Finding Lowest Terms
 
Csr2011 june14 09_30_grigoriev
Csr2011 june14 09_30_grigorievCsr2011 june14 09_30_grigoriev
Csr2011 june14 09_30_grigoriev
 
J1
J1J1
J1
 

Ähnlich wie Csr2011 june18 15_15_bomhoff

EwB PowerPoint Course
EwB PowerPoint CourseEwB PowerPoint Course
EwB PowerPoint CourseVinit Patel
 
Excel with Business Services Launch
Excel with Business Services LaunchExcel with Business Services Launch
Excel with Business Services LaunchVinit Patel
 
EwB Excel - What we do
EwB Excel - What we doEwB Excel - What we do
EwB Excel - What we doVinit Patel
 
Notas mec rac-(06) 2012-2
Notas mec rac-(06) 2012-2Notas mec rac-(06) 2012-2
Notas mec rac-(06) 2012-2giljjx
 
Amth250 octave matlab some solutions (3)
Amth250 octave matlab some solutions (3)Amth250 octave matlab some solutions (3)
Amth250 octave matlab some solutions (3)asghar123456
 
Conversor nº binarios a decimales y viceversa 2
Conversor nº binarios a decimales y viceversa 2Conversor nº binarios a decimales y viceversa 2
Conversor nº binarios a decimales y viceversa 2Jaime914
 
Notas mec rac-(06) 2012
Notas mec rac-(06) 2012Notas mec rac-(06) 2012
Notas mec rac-(06) 2012giljjx
 

Ähnlich wie Csr2011 june18 15_15_bomhoff (8)

EwB PowerPoint Course
EwB PowerPoint CourseEwB PowerPoint Course
EwB PowerPoint Course
 
Ppt promotional
Ppt promotionalPpt promotional
Ppt promotional
 
Excel with Business Services Launch
Excel with Business Services LaunchExcel with Business Services Launch
Excel with Business Services Launch
 
EwB Excel - What we do
EwB Excel - What we doEwB Excel - What we do
EwB Excel - What we do
 
Notas mec rac-(06) 2012-2
Notas mec rac-(06) 2012-2Notas mec rac-(06) 2012-2
Notas mec rac-(06) 2012-2
 
Amth250 octave matlab some solutions (3)
Amth250 octave matlab some solutions (3)Amth250 octave matlab some solutions (3)
Amth250 octave matlab some solutions (3)
 
Conversor nº binarios a decimales y viceversa 2
Conversor nº binarios a decimales y viceversa 2Conversor nº binarios a decimales y viceversa 2
Conversor nº binarios a decimales y viceversa 2
 
Notas mec rac-(06) 2012
Notas mec rac-(06) 2012Notas mec rac-(06) 2012
Notas mec rac-(06) 2012
 

Mehr von CSR2011

Csr2011 june18 14_00_sudan
Csr2011 june18 14_00_sudanCsr2011 june18 14_00_sudan
Csr2011 june18 14_00_sudanCSR2011
 
Csr2011 june18 15_45_avron
Csr2011 june18 15_45_avronCsr2011 june18 15_45_avron
Csr2011 june18 15_45_avronCSR2011
 
Csr2011 june18 09_30_shpilka
Csr2011 june18 09_30_shpilkaCsr2011 june18 09_30_shpilka
Csr2011 june18 09_30_shpilkaCSR2011
 
Csr2011 june18 12_00_nguyen
Csr2011 june18 12_00_nguyenCsr2011 june18 12_00_nguyen
Csr2011 june18 12_00_nguyenCSR2011
 
Csr2011 june18 11_00_tiskin
Csr2011 june18 11_00_tiskinCsr2011 june18 11_00_tiskin
Csr2011 june18 11_00_tiskinCSR2011
 
Csr2011 june18 11_30_remila
Csr2011 june18 11_30_remilaCsr2011 june18 11_30_remila
Csr2011 june18 11_30_remilaCSR2011
 
Csr2011 june17 17_00_likhomanov
Csr2011 june17 17_00_likhomanovCsr2011 june17 17_00_likhomanov
Csr2011 june17 17_00_likhomanovCSR2011
 
Csr2011 june17 09_30_yekhanin
Csr2011 june17 09_30_yekhaninCsr2011 june17 09_30_yekhanin
Csr2011 june17 09_30_yekhaninCSR2011
 
Csr2011 june17 09_30_yekhanin
Csr2011 june17 09_30_yekhaninCsr2011 june17 09_30_yekhanin
Csr2011 june17 09_30_yekhaninCSR2011
 
Csr2011 june17 12_00_morin
Csr2011 june17 12_00_morinCsr2011 june17 12_00_morin
Csr2011 june17 12_00_morinCSR2011
 
Csr2011 june17 11_30_vyalyi
Csr2011 june17 11_30_vyalyiCsr2011 june17 11_30_vyalyi
Csr2011 june17 11_30_vyalyiCSR2011
 
Csr2011 june17 11_00_lonati
Csr2011 june17 11_00_lonatiCsr2011 june17 11_00_lonati
Csr2011 june17 11_00_lonatiCSR2011
 
Csr2011 june17 14_00_bulatov
Csr2011 june17 14_00_bulatovCsr2011 june17 14_00_bulatov
Csr2011 june17 14_00_bulatovCSR2011
 
Csr2011 june17 15_15_kaminski
Csr2011 june17 15_15_kaminskiCsr2011 june17 15_15_kaminski
Csr2011 june17 15_15_kaminskiCSR2011
 
Csr2011 june17 14_00_bulatov
Csr2011 june17 14_00_bulatovCsr2011 june17 14_00_bulatov
Csr2011 june17 14_00_bulatovCSR2011
 
Csr2011 june17 12_00_morin
Csr2011 june17 12_00_morinCsr2011 june17 12_00_morin
Csr2011 june17 12_00_morinCSR2011
 
Csr2011 june17 11_30_vyalyi
Csr2011 june17 11_30_vyalyiCsr2011 june17 11_30_vyalyi
Csr2011 june17 11_30_vyalyiCSR2011
 
Csr2011 june17 11_00_lonati
Csr2011 june17 11_00_lonatiCsr2011 june17 11_00_lonati
Csr2011 june17 11_00_lonatiCSR2011
 
Csr2011 june17 09_30_yekhanin
Csr2011 june17 09_30_yekhaninCsr2011 june17 09_30_yekhanin
Csr2011 june17 09_30_yekhaninCSR2011
 
Csr2011 june17 17_00_likhomanov
Csr2011 june17 17_00_likhomanovCsr2011 june17 17_00_likhomanov
Csr2011 june17 17_00_likhomanovCSR2011
 

Mehr von CSR2011 (20)

Csr2011 june18 14_00_sudan
Csr2011 june18 14_00_sudanCsr2011 june18 14_00_sudan
Csr2011 june18 14_00_sudan
 
Csr2011 june18 15_45_avron
Csr2011 june18 15_45_avronCsr2011 june18 15_45_avron
Csr2011 june18 15_45_avron
 
Csr2011 june18 09_30_shpilka
Csr2011 june18 09_30_shpilkaCsr2011 june18 09_30_shpilka
Csr2011 june18 09_30_shpilka
 
Csr2011 june18 12_00_nguyen
Csr2011 june18 12_00_nguyenCsr2011 june18 12_00_nguyen
Csr2011 june18 12_00_nguyen
 
Csr2011 june18 11_00_tiskin
Csr2011 june18 11_00_tiskinCsr2011 june18 11_00_tiskin
Csr2011 june18 11_00_tiskin
 
Csr2011 june18 11_30_remila
Csr2011 june18 11_30_remilaCsr2011 june18 11_30_remila
Csr2011 june18 11_30_remila
 
Csr2011 june17 17_00_likhomanov
Csr2011 june17 17_00_likhomanovCsr2011 june17 17_00_likhomanov
Csr2011 june17 17_00_likhomanov
 
Csr2011 june17 09_30_yekhanin
Csr2011 june17 09_30_yekhaninCsr2011 june17 09_30_yekhanin
Csr2011 june17 09_30_yekhanin
 
Csr2011 june17 09_30_yekhanin
Csr2011 june17 09_30_yekhaninCsr2011 june17 09_30_yekhanin
Csr2011 june17 09_30_yekhanin
 
Csr2011 june17 12_00_morin
Csr2011 june17 12_00_morinCsr2011 june17 12_00_morin
Csr2011 june17 12_00_morin
 
Csr2011 june17 11_30_vyalyi
Csr2011 june17 11_30_vyalyiCsr2011 june17 11_30_vyalyi
Csr2011 june17 11_30_vyalyi
 
Csr2011 june17 11_00_lonati
Csr2011 june17 11_00_lonatiCsr2011 june17 11_00_lonati
Csr2011 june17 11_00_lonati
 
Csr2011 june17 14_00_bulatov
Csr2011 june17 14_00_bulatovCsr2011 june17 14_00_bulatov
Csr2011 june17 14_00_bulatov
 
Csr2011 june17 15_15_kaminski
Csr2011 june17 15_15_kaminskiCsr2011 june17 15_15_kaminski
Csr2011 june17 15_15_kaminski
 
Csr2011 june17 14_00_bulatov
Csr2011 june17 14_00_bulatovCsr2011 june17 14_00_bulatov
Csr2011 june17 14_00_bulatov
 
Csr2011 june17 12_00_morin
Csr2011 june17 12_00_morinCsr2011 june17 12_00_morin
Csr2011 june17 12_00_morin
 
Csr2011 june17 11_30_vyalyi
Csr2011 june17 11_30_vyalyiCsr2011 june17 11_30_vyalyi
Csr2011 june17 11_30_vyalyi
 
Csr2011 june17 11_00_lonati
Csr2011 june17 11_00_lonatiCsr2011 june17 11_00_lonati
Csr2011 june17 11_00_lonati
 
Csr2011 june17 09_30_yekhanin
Csr2011 june17 09_30_yekhaninCsr2011 june17 09_30_yekhanin
Csr2011 june17 09_30_yekhanin
 
Csr2011 june17 17_00_likhomanov
Csr2011 june17 17_00_likhomanovCsr2011 june17 17_00_likhomanov
Csr2011 june17 17_00_likhomanov
 

Csr2011 june18 15_15_bomhoff

  • 1. Recognizing Sparse Perfect Elimination Bipartite Graphs Recognizing Sparse Perfect Elimination Bipartite Graphs Matthijs Bomhoff University of Twente The Netherlands CSR 2011, June 18
  • 2. Recognizing Sparse Perfect Elimination Bipartite Graphs Outline 1 Introduction and Motivation 2 Perfect Elimination Bipartite Graphs 3 A New Recognition Algorithm 4 Conclusion
  • 3. Recognizing Sparse Perfect Elimination Bipartite Graphs Introduction and Motivation Gaussian Elimination Example   −24 7 4 −6     −8 2 0 0    5 0 4 0  1 0 0 3
  • 4. Recognizing Sparse Perfect Elimination Bipartite Graphs Introduction and Motivation Gaussian Elimination Example   −24 7 4 −6   −24 7 4 −6    −8 2 0 0   0 = 0 = 0 = 0       5 0 4 0   0 =0 =0 =0          1 0 0 3 0 =0 =0 =0
  • 5. Recognizing Sparse Perfect Elimination Bipartite Graphs Introduction and Motivation Gaussian Elimination Example   −24 7 4 −6   −24 7 4 −6      0 =0 =0 =0   −8 2 0 0    0 4 0   0 =0 =0 =0       5     1 0 0 3 0 =0 =0 =0   −24 7 4 −6     −8 2 0 0    5 0 4 0  1 0 0 3
  • 6. Recognizing Sparse Perfect Elimination Bipartite Graphs Introduction and Motivation Gaussian Elimination Example   −24 7 4 −6   −24 7 4 −6    −8 2 0 0   0 = 0 =0 =0       5 0 4 0   0 =0 =0 =0          1 0 0 3 0 =0 =0 =0     −24 7 4 −6 =0 =0 =0 0      −8 2 0 0   −8 2 0 0       5 0 4 0   5 0 4 0      1 0 0 3 1 0 0 3
  • 7. Recognizing Sparse Perfect Elimination Bipartite Graphs Introduction and Motivation Gaussian Elimination Example   −24 7 4 −6   −24 7 4 −6    −8 2 0 0   0 = 0 =0 =0       5 0 4 0   0 =0 =0 =0          1 0 0 3 0 =0 =0 =0     −24 7 4 −6 =0 =0 =0 0      −8 2 0 0   −8 2 0 0       5 0 4 0   5 0 4 0      1 0 0 3 1 0 0 3 Question: when can we avoid turning zeroes into non-zeroes completely?
  • 8. Recognizing Sparse Perfect Elimination Bipartite Graphs Introduction and Motivation Simplification ‘Regularity’ assumption: If we add some multiple of row i to row j, at most one non-zero value is turned into a zero.
  • 9. Recognizing Sparse Perfect Elimination Bipartite Graphs Introduction and Motivation Simplification ‘Regularity’ assumption: If we add some multiple of row i to row j, at most one non-zero value is turned into a zero. Exact values are not important A problem instance is a n × n (0, 1)-matrix M (with m non-zeroes, n ≤ m ≤ n2 ):    1 1 1 1   1 1 0 0     1 0 1 0    1 0 0 1
  • 10. Recognizing Sparse Perfect Elimination Bipartite Graphs Introduction and Motivation Simplification ‘Regularity’ assumption: If we add some multiple of row i to row j, at most one non-zero value is turned into a zero. Exact values are not important A problem instance is a n × n (0, 1)-matrix M (with m non-zeroes, n ≤ m ≤ n2 ):    1 1 1 1   1 1 0 0     1 0 1 0    1 0 0 1 . . . or an equivalent bipartite graph GM (with m edges): r1 r2 r3 r4 c1 c2 c3 c4
  • 11. Recognizing Sparse Perfect Elimination Bipartite Graphs Introduction and Motivation Suitable Pivots Remark A pivot (i, j) (with Mi,j = 1) does not create additional non-zeroes, if for every i , j we have that if Mi,j = 1 and Mi ,j = 1, then Mi ,j = 1.    1 1 1 0    0 1 1 0     1 1 0 1   1 1 1 0 If we can find a sequence of n such pivots in distinct rows and columns, we can perform elimination without creating new non-zeroes.
  • 12. Recognizing Sparse Perfect Elimination Bipartite Graphs Introduction and Motivation Bisimplicial Edges Definition An edge e of a bipartite graph G is called bisimplicial if the neighbors of the vertices incident to it induce a complete bipartite subgraph. r1 r2 r3 r4 r1 r2 r3 r4 c1 c2 c3 c4 c1 c2 c3 c4 Bisimplicial edges in GM correspond to pivots that avoid new non-zeroes in M.
  • 13. Recognizing Sparse Perfect Elimination Bipartite Graphs Perfect Elimination Bipartite Graphs Perfect Elimination Bipartite Graphs Definition (Golumbic and Goss, (1978,1980)) A graph G is called perfect elimination bipartite if there exists a sequence of edges [e1 , e2 , . . . , en ] such that: 1 e1 is a bisimplicial edge in G and ei is bisimplicial in G − [e1 , . . . , ei−1 ] for 2 ≤ i ≤ n; 2 G − [e1 , e2 , . . . , en ] is empty. Perfect elimination bipartite graphs correspond to matrices that allow elimination without creating new non-zeroes. Naive algorithm for recognition: O n5
  • 14. Recognizing Sparse Perfect Elimination Bipartite Graphs Perfect Elimination Bipartite Graphs A faster algorithm Remark (Goh and Rotem (1982)) Consider the matrix Q = MM T : Qi,j contains the inner product of rows Mi,∗ and Mj,∗ . Let li equal the number of elements in row Qi,∗ with value equal to Qi,i . Denote by sj the column sums in M. (i, j) is bisimplicial in GM iff Mi,j = 1 and li = sj . This leads to a O n3 algorithm Spinrad (2004) subsequently improves this to O n3 / log n
  • 15. Recognizing Sparse Perfect Elimination Bipartite Graphs Perfect Elimination Bipartite Graphs A faster algorithm Remark (Goh and Rotem (1982)) Consider the matrix Q = MM T : Qi,j contains the inner product of rows Mi,∗ and Mj,∗ . Let li equal the number of elements in row Qi,∗ with value equal to Qi,i . Denote by sj the column sums in M. (i, j) is bisimplicial in GM iff Mi,j = 1 and li = sj . This leads to a O n3 algorithm Spinrad (2004) subsequently improves this to O n3 / log n Unfortunately, a sparse M may lead to a dense Q:        1 1 1 1   1 1 1 1   4 1 1 1   1 0 0 0   1 0 0 0   1 1 1 1   1 0 0 0 × 1 0 0 0 = 1 1 1 1              1 0 0 0 1 0 0 0 1 1 1 1
  • 16. Recognizing Sparse Perfect Elimination Bipartite Graphs Perfect Elimination Bipartite Graphs Summary so far Matrices that allow elimination without new non-zeroes correspond to perfect elimination bipartite graphs Recognition algorithms (time complexity): naive: O n5 based on matrix-multiplication: O n3 / log n
  • 17. Recognizing Sparse Perfect Elimination Bipartite Graphs Perfect Elimination Bipartite Graphs Summary so far Matrices that allow elimination without new non-zeroes correspond to perfect elimination bipartite graphs Recognition algorithms (time complexity): naive: O n5 based on matrix-multiplication: O n3 / log n However, the result of matrix-multiplication may be a dense matrix, while avoiding new non-zeroes is mainly useful for sparse matrices. . .
  • 18. Recognizing Sparse Perfect Elimination Bipartite Graphs A New Recognition Algorithm An Observation    1 1 1 0    0 1 1 0     1 1 0 1   1 1 1 0
  • 19. Recognizing Sparse Perfect Elimination Bipartite Graphs A New Recognition Algorithm An Observation      1 1 1 0   1 1 1 0    0 1 1 0     0 1 1 0     1 1 0 1     1 1 0 1   1 1 1 0 1 1 1 0
  • 20. Recognizing Sparse Perfect Elimination Bipartite Graphs A New Recognition Algorithm An Observation        1 1 1 0   1 1 1 0   1 1 1 0    0 1 1 0     0 1 1 0     0 1 1 0     1 1 0 1     1 1 0 1     1 1 0 1   1 1 1 0 1 1 1 0 1 1 1 0
  • 21. Recognizing Sparse Perfect Elimination Bipartite Graphs A New Recognition Algorithm An Observation        1 1 1 0   1 1 1 0   1 1 1 0    0 1 1 0     0 1 1 0     0 1 1 0     1 1 0 1     1 1 0 1     1 1 0 1   1 1 1 0 1 1 1 0 1 1 1 0    1 1 1 0    0 1 1 0     1 1 0 1   1 1 1 0
  • 22. Recognizing Sparse Perfect Elimination Bipartite Graphs A New Recognition Algorithm An Observation        1 1 1 0   1 1 1 0   1 1 1 0    0 1 1 0     0 1 1 0     0 1 1 0     1 1 0 1     1 1 0 1     1 1 0 1   1 1 1 0 1 1 1 0 1 1 1 0    1 1 1 0      0 1 1 0   1 1 1 1 1 0 1 0 1 1         1 1 1 0 1 1 1
  • 23. Recognizing Sparse Perfect Elimination Bipartite Graphs A New Recognition Algorithm An Observation        1 1 1 0   1 1 1 0   1 1 1 0    0 1 1 0     0 1 1 0     0 1 1 0     1 1 0 1     1 1 0 1     1 1 0 1   1 1 1 0 1 1 1 0 1 1 1 0    1 1 1 0      0 1 1 0   1 1 1 1 1 0 1 0 1 1         1 1 1 0 1 1 1   1 1 1 0 1 1     1 1 1
  • 24. Recognizing Sparse Perfect Elimination Bipartite Graphs A New Recognition Algorithm An Observation        1 1 1 0   1 1 1 0   1 1 1 0    0 1 1 0     0 1 1 0     0 1 1 0     1 1 0 1     1 1 0 1     1 1 0 1   1 1 1 0 1 1 1 0 1 1 1 0    1 1 1 0      0 1 1 0   1 1 1 1 1 0 1  0 1 1        1 1 1 0 1 1 1     1 1 1 1 1 1 0 1 1  0 1 1        1 1 1 1 1 1
  • 25. Recognizing Sparse Perfect Elimination Bipartite Graphs A New Recognition Algorithm Algorithm Outline    1 1 1 0      0 1 1 0   1 1 1 1 1 0 1 0 1 1         1 1 1 0 1 1 1 Up to n iterations (one for each pivot) Each iteration, for every edge: Continue checking other edges until blocked If we finish checking other edges, we found a pivot If all edges block, there is no pivot
  • 26. Recognizing Sparse Perfect Elimination Bipartite Graphs A New Recognition Algorithm Implementation Details Rows/columns of M stored as lists of column/row numbers Consider a single edge over the entire algorithm:  1 1      1 1 step: O (m)   0 1  2     1 0 3 3 block: O (n)
  • 27. Recognizing Sparse Perfect Elimination Bipartite Graphs A New Recognition Algorithm Implementation Details Rows/columns of M stored as lists of column/row numbers Consider a single edge over the entire algorithm:  1 1      1 1 step: O (m)   0 1  2     1 0 3 3 block: O (n) Total work for a single edge: O (m) steps and O (n) blocks For each pivot, we update all list items: O (m)
  • 28. Recognizing Sparse Perfect Elimination Bipartite Graphs A New Recognition Algorithm Time and Space Complexities Time complexity: O m2 initialization: O n2 steps: O m2 blocks: O (nm) updates: O (nm) Space complexity: O (m) lists: O (m) edge states: O (m) row/column data: O (n) pivots: O (n)
  • 29. Recognizing Sparse Perfect Elimination Bipartite Graphs Conclusion Conclusion Existing literature: focus on time complexity However: space complexity is important in practice Our new algorithm: O m2 time O (m) space Both time and space improvement for sparse M m < n n/ log n
  • 30. Recognizing Sparse Perfect Elimination Bipartite Graphs Conclusion Conclusion Existing literature: focus on time complexity However: space complexity is important in practice Our new algorithm: O m2 time O (m) space Both time and space improvement for sparse M m < n n/ log n Work in progress: Thinking about possible further time complexity improvements Work on alternative elimination procedures