-
Notifications
You must be signed in to change notification settings - Fork 1
Description
Source: GraphPartitioning
Target: ILP
Motivation: Enables solving graph bisection via ILP solvers; standard formulation used in VLSI partitioning tools.
Reference: Brunetta, Conforti & Rinaldi, 1997
Reduction Algorithm
Notation:
- Source: undirected graph
$G = (V, E)$ ,$n = |V|$ (even),$m = |E|$ - Target: ILP with binary variables, linear constraints, and a minimize objective
Variable mapping:
Partition variables:
Edge-crossing variables:
Constraints:
-
Balance:
$\sum_{i \in V} x_i = n/2$ -
Crossing detection (for each edge
$(u, v) \in E$ ):$y_{uv} \geq x_u - x_v$ $y_{uv} \geq x_v - x_u$
Objective: minimize
Solution extraction:
Size Overhead
| Target metric (code name) | Polynomial (using symbols above) |
|---|---|
num_vars |
|
num_constraints |
Validation Method
Closed-loop testing: solve GraphPartitioning by brute-force, solve the reduced ILP, and verify that both give the same optimal cut size.
Example
Source: 6 vertices, 9 edges:
ILP: 15 variables (
Optimal: