Permutation to Block Triangular Form in Graph Theory
70 likes | 92 Vues
Learn about Dulmage-Mendelsohn decomposition, bipartite matching, and solving linear equations with block triangular matrices. Discover how to find perfect matchings in graphs and apply symmetric permutations.
Permutation to Block Triangular Form in Graph Theory
E N D
Presentation Transcript
CS 290H Lecture 16Permutation to block triangular form • Final presentations for survey projects next Tue and Thu • 20-minute talk with at least 5 min for questions and discussion • Email me with your preferred day – first come first served • Slides on Tim Davis’s KLU are at http://www.cs.ucsd.edu/classes/fa04/cse245/notes/KLU.pdf
Matching and block triangular form • Dulmage-Mendelsohn decomposition: • Bipartite matching followed by strongly connected components • Square, full rank A: • [p, q, r] = dmperm(A); • A(p,q) has nonzero diagonal and is in block upper triangular form • also, strongly connected components of a directed graph • also, connected components of an undirected graph • Arbitrary A: • [p, q, r, s] = dmperm(A); • maximum-size matching in a bipartite graph • minimum-size vertex cover in a bipartite graph • decomposition into strong Hall blocks
2 1 4 5 7 6 3 Directed graph • A is square, unsymmetric, nonzero diagonal • Edges from rows to columns • Symmetric permutations PAPT renumber vertices A G(A)
1 2 4 7 5 3 6 1 2 2 1 4 7 5 4 5 7 3 6 6 3 Strongly connected components • Symmetric permutation to block triangular form • Diagonal blocks are Strong Hall (irreducible / strongly connected) • Find P in linear time by depth-first search [Tarjan] • Row and column partitions are independent of choice of nonzero diagonal • Solve Ax=b by block back substitution G(A) PAPT
1 2 3 4 5 6 7 1 2 3 4 5 6 = 7 A x b Solving A*x = b in block triangular form % Permute A to block form [p,q,r] = dmperm(A); A = A(p,q); x = b(p); % Block backsolve nblocks = length(r) – 1; for k = nblocks : –1 : 1 % Indices above the k-th block I = 1 : r(k) – 1; % Indices of the k-th block J = r(k) : r(k+1) – 1; x(J) = A(J,J) \ x(J); x(I) = x(I) – A(I,J) * x(J); end; % Undo the permutation of x x(q) = x;
1 2 3 4 5 1 4 1 5 2 2 3 3 3 1 4 2 4 5 PA 5 Bipartite matching: Permutation to nonzero diagonal 1 2 3 4 5 • Represent A as an undirected bipartite graph (one node for each row and one node for each column) • Find perfect matching: set of edges that hits each vertex exactly once • Permute rows to place matching on diagonal 1 2 3 4 5 A
1 2 4 7 5 3 6 1 1 22 11 1 2 2 2 3 3 4 44 55 4 4 77 7 5 5 5 3 6 6 66 33 6 7 7 1 1 1 2 4 7 5 3 6 12 41 4 2 2 1 3 3 7 74 55 4 4 27 2 5 5 5 6 6 6 36 63 3 7 7 Strong Hall comps are independent of matching