-
Notifications
You must be signed in to change notification settings - Fork 3
Description
Motivation
MINIMUM CUT INTO BOUNDED SETS from Garey & Johnson, A2 ND17. An NP-complete graph partitioning problem that combines the classical minimum s-t cut problem with a balance constraint on the sizes of the resulting partition sets. While minimum s-t cut without balance constraints is polynomial-time solvable via network flow, adding the requirement that both sides of the partition have bounded size makes the problem NP-complete. This problem is fundamental to VLSI layout, load balancing, and graph bisection applications.
Associated rules:
- SIMPLE MAX CUT -> MINIMUM CUT INTO BOUNDED SETS (ND17) — per G&J, "Transformation from SIMPLE MAX CUT."
Definition
Name: MinimumCutIntoBoundedSets
Canonical name: Minimum Cut Into Bounded Sets (also: Balanced s-t Cut, Bounded Bisection)
Reference: Garey & Johnson, Computers and Intractability, A2 ND17
Mathematical definition:
INSTANCE: Graph G = (V,E), weight w(e) in Z+ for each e in E, specified vertices s,t in V, positive integer B <= |V|, positive integer K.
QUESTION: Is there a partition of V into disjoint sets V1 and V2 such that s in V1, t in V2, |V1| <= B, |V2| <= B, and such that the sum of the weights of the edges from E that have one endpoint in V1 and one endpoint in V2 is no more than K?
Variables
- Count: n = |V| binary variables (one per vertex)
- Per-variable domain: binary {0, 1} — side of the partition (0 = V1, 1 = V2)
dims()implementation:vec![2; self.graph.num_vertices()]- Meaning: variable x_v = 0 means vertex v is in V1 (with s), x_v = 1 means v is in V2 (with t). Constraints: x_s = 0, x_t = 1, sum(1-x_v) <= B, sum(x_v) <= B, and total cut weight sum(w(e) * |x_u - x_v|) <= K.
Schema (data type)
Type name: MinimumCutIntoBoundedSets<G, W>
Variants: graph topology (graph type parameter G), weight type (W)
| Field | Type | Description |
|---|---|---|
graph |
G |
The undirected graph G = (V, E) |
edge_weights |
Vec<W> |
Edge weights w: E -> Z+ (one per edge, indexed by edge index) |
source |
usize |
Source vertex s that must be in V1 |
sink |
usize |
Sink vertex t that must be in V2 |
size_bound |
usize |
Maximum size B for each partition set |
cut_bound |
W |
Maximum total cut weight K |
Size fields (getter methods):
num_vertices()->usize(= |V|)num_edges()->usize(= |E|)
Notes:
- This is a satisfaction (decision) problem:
Metric = bool, implementingSatisfactionProblem. - The "Minimum" in the name is part of the Garey & Johnson canonical name (ND17), not an optimization prefix per the codebase conventions.
- The optimization version minimizes the cut weight subject to |V1| <= B and |V2| <= B.
- Edge weights follow the same pattern as
MaxCut: stored in a separateVec<W>field parallel to the graph's edge list.
Complexity
- Decision complexity: NP-complete (Garey & Johnson, 1979, A2 ND17; transformation from SIMPLE MAX CUT). Remains NP-complete for B = |V|/2 and unit edge weights (the minimum bisection problem).
- Best known exact algorithm: Brute-force enumeration of all 2^n vertex partitions in O(2^n) time. For minimum bisection, Cygan et al. (2014) showed it is fixed-parameter tractable (FPT) with respect to the cut size. Without the balance constraint, minimum s-t cut is solvable in polynomial time via max-flow (e.g., O(n^3) with push-relabel).
declare_variants!guidance:crate::declare_variants! { MinimumCutIntoBoundedSets<SimpleGraph, i32> => "2^num_vertices", }
- Approximation: For k-way balanced graph partitioning with exact balance, no polynomial-time finite approximation factor exists unless P = NP (Andreev and Räcke, 2006). For balanced separator (relaxed balance), an O(sqrt(log n))-approximation is known (Arora, Rao, Vazirani, 2009).
- References:
- M.R. Garey, D.S. Johnson (1979). Computers and Intractability: A Guide to the Theory of NP-Completeness. W.H. Freeman. Problem ND17.
- M.R. Garey, D.S. Johnson, L. Stockmeyer (1976). "Some Simplified NP-Complete Graph Problems." Theoretical Computer Science, 1(3):237-267. (Proves SIMPLE MAX CUT is NP-complete; the reduction to ND17 is in G&J 1979.)
- M. Cygan, D. Lokshtanov, M. Pilipczuk, M. Pilipczuk, S. Saurabh (2014). "Minimum Bisection is Fixed Parameter Tractable." STOC 2014.
Extra Remark
Full book text:
INSTANCE: Graph G = (V,E), weight w(e) in Z+ for each e in E, specified vertices s,t in V, positive integer B <= |V|, positive integer K.
QUESTION: Is there a partition of V into disjoint sets V1 and V2 such that s in V1, t in V2, |V1| <= B, |V2| <= B, and such that the sum of the weights of the edges from E that have one endpoint in V1 and one endpoint in V2 is no more than K?
Reference: [Garey, Johnson, and Stockmeyer, 1976]. Transformation from SIMPLE MAX CUT.
Comment: Remains NP-complete for B = |V|/2 and w(e) = 1 for all e in E. Can be solved in polynomial time for B = |V| by standard network flow techniques.
How to solve
- It can be solved by (existing) bruteforce. Enumerate all 2^n partitions of V with s in V1 and t in V2, check size bounds and compute cut weight.
- It can be solved by reducing to integer programming. Binary variable per vertex, minimize cut weight subject to s/t placement and balance constraints.
- Other: Semidefinite programming relaxation for the minimum bisection variant
Example Instance
Graph G with 8 vertices {0, 1, 2, 3, 4, 5, 6, 7} and 12 edges, s=0, t=7:
- Edges with weights:
- {0,1}: w=2, {0,2}: w=3, {1,2}: w=1, {1,3}: w=4
- {2,4}: w=2, {3,5}: w=1, {3,6}: w=3, {4,5}: w=2
- {4,6}: w=1, {5,7}: w=2, {6,7}: w=3, {5,6}: w=1
- Size bound B = 5
YES instance (K=6): Partition V1 = {0, 1, 2, 3}, V2 = {4, 5, 6, 7}.
- |V1| = 4 <= 5, |V2| = 4 <= 5. s=0 in V1, t=7 in V2.
- Cut edges: {2,4}(w=2), {3,5}(w=1), {3,6}(w=3). Cut weight = 2 + 1 + 3 = 6 <= K=6. Answer: YES.
NO instance (K=5): No partition of V with s=0 in V1, t=7 in V2, |V1| <= 5, |V2| <= 5 achieves cut weight <= 5.
- V1={0,1,2,4}, V2={3,5,6,7}: cut edges {1,3}(4)+{4,5}(2)+{4,6}(1) = 7 > 5.
- V1={0,1,2,3,4}, V2={5,6,7}: cut edges {3,5}(1)+{3,6}(3)+{4,5}(2)+{4,6}(1) = 7 > 5.
- All valid partitions have cut weight >= 6. Answer: NO.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status