A Continuous Optimization Approach to the Minimum Bisection Problem Edward F. Gonzalez Dr. Yin Zhang October 2003
The Min-Bisection Problem G = (V,E) is an undirected, simple graph, where every vertex has at least one neighbor V = Set of vertices = {1,2,...,n} E = Set of edges { (i,k) : 1 i k n}
Small Example 1 2 3 V = {1,2,3} E ={(1,2), (2,3), (3,1)}
Larger Example 1024 Vertices 2846 Edges
Minimum Bisection Problem Objective: Divide the vertices of a graph into two equal groups while minimizing the total weights of the edges between the groups V V/2 V/2
Applications of the Min-Bisection Problem Parallel Scientific Computing Domain Decomposition Mesh Partitioning Sparse Matrix Ordering VLSI Design Task Scheduling
Many Possible Bisections If G has n vertices, there are [n choose (n/2)] possible bisections
Easy Problem? The Min-Bisection Problem is an NP-hard problem Efficient Algorithms for finding exact solutions unlikely, unless P = NP Heuristics used to solve this problem Spectral Bisection Multilevel Approach Rank-Two Relaxation
Spectral Bisection Uses the Laplacian Matrix L, where Lij: = deg(vi) if i=j = -1 if (i,j)E = 0 otherwise L is Symmetric Pos. Semi Definite Let x where xi = {-1,1} if x = 1, xFirst Partition if x = -1, xSecond Partition
Spectral Bisection xTLx = (xi- xj)2 = 4*(Cut between Partitions) Relax: x Null(e) {y: ||y||=sqrt(n)} Solved by second smallest eigenvector Components of the eigenvector determine Partition (i,j) E Min xTLx s.t eTx =0 , |xi| = 1 n
Rank-2 Relaxation Relaxation: Let x 2 Min (1/2) wik(1 - xixk) s.t |xi| = 1 xi = 0 Max wik xixk s.t |xi| = 1 xi = 0 Relaxation: Let x 2
vi = [cos i, sin i]T viTvk = cos(i - k) Max wikviTvk s.t. ||vi||2 = 1 || vi|| = 0 vi = [cos i, sin i]T viTvk = cos(i - k) ||vi||2 = 1 automatically satisfied Max (1/2)W • cos(T()) n Where Tik() = i - k
Find a local Minimum of the problem Develop a cut (which is also a saddle point) Perturb, repeat, and try to improve cut Rank-2 Feasible Region Max-Cut Feasible Points = Notice: vi= 0 Satisfied
Multilevel Approach: G G G1 Coarsen Gn-2 Un-Coarsen & Refine Cut Gn-1
Multilevel Techniques Coarsen: Use a matching criterion Initial Cut: Various Methods Breath First Search Refinement: Kernighan-Lin type approach 2 1 2 1,2 (2) 1 4 4 3 3,4 3
Where we stand Currently, the most popular software for graph partitioning problems is METIS, which uses a multi-level approach Rank-2 approach has shown to give either better or competitive results than spectral or multilevel algorithms Rank-2 approach is slow (relative to METIS) and does not handle large graphs well
A Rank-2/Multilevel Idea In a multilevel approach graph is coarsened down to a manageable size and then partitioning takes places…this coarse graph may be a good candidate for the Rank-2 approach Initial cut will need refinement, use the Rank-2 approach on a small subgraph (Frontier) around the cut at each level Proposed solution: Use multi-level approach in combination with Rank-2 algorithm (initial cut and refinement)
Multilevel Approach: G G1 G Coarsen Un-Coarsen & Refine Gn-1 Cut Gn-2 = Area where Rank 2 used Gn-1
Manipulating the Frontier to Produce a Bisection -10
Examples and Comparisons
Tapir 1024 vertices 2846 Edges Metis Spectral 58 24
Unified 23 {22(1), 23(2), 24(5), 32, 33} Spectral: 58 Metis: 24
Treexpath A graph consisting of two complete binary trees of k levels, connected by an edge of their respective root K=2 Depth=2 K=4 Depth=3
Graph Metis Our Approach 14-2 276 27 {4(14), 8(7)} 15-2 444 28 {4(14), 8(4), 12(6)} 6-79 474 235(16) 474 (14) 6-254 878 352(8) 800 (12) 7-98 292 292(29) 7-157 1407 469(7) 1500
Grid3dt A 3-D graph in which cells are divided into tetrahedral
Graph Metis Our Approach 20 1239 1239 (28) (Lowest 1183) 25 2386 1925 (all) ( 1900 in 20 runs) 30 3487 2789 (all) [2711, 2789] 35 3649 40 5356
Time Comparisons Graph Metis Circuit Our Algorithm Tapir TXP 14-2 Grid3dt_25 Grid3dt_30
Observations thus far Results are promising At this point, our algorithm can be used as a verification tool
Future Work Improve Run Time Get Theoretical Results Investigate multilevel coarsening to improve cut Run more test on different types of graphs Try to be more consistent