-
Notifications
You must be signed in to change notification settings - Fork 1
Description
Source: GraphPartitioning
Target: MaxCut
Motivation: Reveals the duality between minimizing and maximizing cut edges; enables using MaxCut solvers for bisection via a complementary objective.
Reference: Garey, Johnson & Stockmeyer, 1976
Reduction Algorithm
Notation:
- Source: undirected graph
$G = (V, E)$ ,$n = |V|$ (even),$m = |E|$ - Target: MaxCut on a modified weighted graph
$G' = (V, E')$
Key idea: Add penalty-weighted edges on the complete graph to enforce balance, then maximize the total cut.
Construction:
-
$V' = V$ (same vertices). -
For each edge
$(u,v) \in E$ : set weight$w_{uv} = -1$ (we want to minimize these cut edges, so penalize cutting them in a max objective). -
For each pair
$(i,j)$ with$i < j$ : add a penalty edge with weight$P > 0$ . These reward balanced partitions — a balanced cut of the complete graph gives$|A| \cdot |B| = (n/2)^2$ cut edges, which is maximal. -
Equivalently, the combined objective is:
For
Solution extraction: The MaxCut partition of
Size Overhead
| Target metric (code name) | Polynomial (using symbols above) |
|---|---|
num_vertices |
|
num_edges |
|
Validation Method
Closed-loop testing: solve GraphPartitioning by brute-force, solve the reduced MaxCut, and verify the extracted partition matches the optimal bisection.
Example
Source: 6 vertices, 9 edges:
MaxCut graph
Optimal partition
- Cut value:
$9 \cdot 3 + 10 \cdot 6 = 27 + 60 = 87$ (3 original crossing edges at weight 9, 6 non-edge cross-pairs at weight 10)
An unbalanced partition