Constrained graph partitioning: decomposition, polyhedral structure and algorithms

Many real world problems such as minimizing communication costs in parallel computing systems, partitioning files among the nodes of a network, designing compilers, designing chips, classifying data, and political districting can be modeled as constrained partitioning problems on a graph. We formulate the constrained graph partitioning problem (clustering problem) as an integer program and describe a decomposition and column generation scheme for its solution. Most of the clustering problems studied in the literature are special cases of the constrained graph partitioning problem we consider here. Our study differs primarily in three ways. We do not assume that the underlying graph is complete; we include a constraint on the size or weight of the clusters and we solve these clustering problems using a decomposition and column generation scheme. To solve the subproblem for column generation efficiently via a cutting plane methodology, we study the facial structure of the polyhedra associated with the subproblem's integer programming formulation. As a byproduct of our study, we describe new valid inequalities for the polyhedra associated with knapsack and cardinality constrained quadratic 0-1 problems. Implementation details and computational results on compiler construction problems are given. These results yield significant improvements over the heuristics previously used.