-
Notifications
You must be signed in to change notification settings - Fork 3
Description
Source: KSatisfiability
Target: MaxCut
Motivation: Classic NP-completeness reduction connecting Boolean satisfiability to graph partitioning, establishing MaxCut as NP-hard.
Reference: Garey, Johnson & Stockmeyer, "Some simplified NP-complete graph problems," Theoretical Computer Science 1(3), 237–267 (1976). Also: Garey & Johnson, Computers and Intractability (1979), Section 3.2.5.
Reduction Algorithm
Given a 3-SAT instance with
Notation:
-
$n$ = number of variables,$m$ = number of clauses (each clause has exactly 3 literals) - For variable
$x_i$ , create two vertices:$v_i$ (positive literal) and$v_i'$ (negative literal)
Variable mapping (variable gadgets):
- For each variable
$x_i$ , create two vertices$v_i$ and$v_i'$ representing$x_i$ and$\neg x_i$ . - Connect
$v_i$ and$v_i'$ with an edge of weight$m$ . This forces them onto opposite sides of any large cut, encoding that a variable and its negation have opposite truth values.
This gives
Constraint/objective transformation (clause gadgets):
3. For each clause
- Add a triangle (3 edges, weight 1 each) connecting the three literal-vertices.
- For each literal
$\ell$ in the clause, add an edge of weight 1 between the literal-vertex and its complement-vertex (these accumulate onto the variable-gadget edges when parallel edges are merged).
-
Cut threshold: The instance is satisfiable iff the maximum cut value
$\geq n \cdot m + 2m$ . Each variable gadget contributes$m$ + (number of occurrences) from the forced-opposite edges; each satisfied clause contributes exactly 2 from its triangle.
Solution extraction: For variable
Size Overhead
| Target metric (code name) | Polynomial (using symbols above) |
|---|---|
num_vertices |
|
num_edges |
|
Validation Method
- Construct small 3-SAT instances, reduce to MaxCut, solve both with BruteForce.
- Verify that satisfying assignments map to maximum cuts, and unsatisfiable instances have strictly smaller maximum cut.
- Test with both satisfiable and unsatisfiable instances.
Example
Source: 3-SAT with
- Variables:
$x_1, x_2, x_3$ $C_1 = (x_1 \lor x_2 \lor x_3)$ $C_2 = (\neg x_1 \lor \neg x_2 \lor x_3)$
Reduction:
- Vertices:
$v_1, v_1', v_2, v_2', v_3, v_3'$ (6 vertices total) - Variable gadget edges:
$(v_1, v_1')$ $w=2$ ,$(v_2, v_2')$ $w=2$ ,$(v_3, v_3')$ $w=2$ -
$C_1$ triangle:$(v_1, v_2)$ $w=1$ ,$(v_2, v_3)$ $w=1$ ,$(v_1, v_3)$ $w=1$ -
$C_1$ complement edges: add$w \mathrel{+}= 1$ to$(v_1, v_1')$ ,$(v_2, v_2')$ ,$(v_3, v_3')$ -
$C_2$ triangle:$(v_1', v_2')$ $w=1$ ,$(v_2', v_3)$ $w=1$ ,$(v_1', v_3)$ $w=1$ -
$C_2$ complement edges: add$w \mathrel{+}= 1$ to$(v_1', v_1)$ ,$(v_2', v_2)$ ,$(v_3, v_3')$ - Final variable gadget weights:
$(v_1, v_1')$ $w=4$ ,$(v_2, v_2')$ $w=4$ ,$(v_3, v_3')$ $w=4$
Solution: