Source
MaxCut/SimpleGraph/One
Target
Maximum2Satisfiability
Motivation
This classic affine objective encoding provides the reverse direction of the existing Maximum 2-SAT to MaxCut connection. The unit-weight source restriction is explicit and necessary because the target model is unweighted.
Reference
Gramm, Hirsch, Niedermeier, and Rossmanith, “Worst-case upper bounds for MAX-2-SAT with an application to MAX-CUT,” Discrete Applied Mathematics 130(2), 2003, DOI 10.1016/S0166-218X(02)00402-X.
Reduction Algorithm
Given unweighted G=(V,E), V={0,...,n-1}, m=|E|:
- Create Boolean variable
x_v for every vertex; its truth value is the side of the cut.
- For every edge
{u,v}, add clauses (x_u OR x_v) and (not x_u OR not x_v). In the repository's signed, 1-indexed CNFClause representation these are [u+1, v+1] and [-(u+1), -(v+1)].
- Extract the source cut configuration directly from the target assignment: configuration position
v is 1 exactly when x_v is true, and 0 otherwise.
Each edge occurrence creates its own clause pair. Consequently, parallel edges remain repeated clause pairs. A self-loop {u,u} becomes (x_u OR x_u) and (not x_u OR not x_u).
If the endpoints differ, both clauses are satisfied. If they agree, exactly one is satisfied. This also handles a self-loop, whose endpoints always agree. Therefore for every configuration
satisfied_clauses = m + cut_edges.
The affine offset is constant, so the maximizers coincide and max2sat_optimum = m + maxcut_optimum.
Size Overhead
| Target metric |
Formula |
num_vars |
num_vertices |
num_clauses |
2 * num_edges |
Validation Method
- Exhaust every simple graph through five vertices and every cut/truth assignment.
- Check the affine objective identity for every configuration, not only at the optimum.
- Verify direct solution extraction and empty/edgeless/disconnected graphs.
- Explicitly test self-loops and parallel edges admitted by the current
SimpleGraph constructor; confirm repeated literals and repeated clause pairs remain valid target data.
Example
- Source instance: four-cycle
01,12,23,30 plus diagonal 02, giving five edges.
- Construction: create four variables and the ten clauses
(x_0 OR x_1), (not x_0 OR not x_1), (x_1 OR x_2), (not x_1 OR not x_2), (x_2 OR x_3), (not x_2 OR not x_3), (x_3 OR x_0), (not x_3 OR not x_0), (x_0 OR x_2), and (not x_0 OR not x_2).
- Target witness: cut assignment
[0,1,0,1]. The four cycle edges cross and diagonal 02 does not.
- Round trip: source cut value is 4. The eight clauses belonging to crossing edges are all satisfied, while the diagonal contributes exactly one, so the target value is
5+4=9. Exhaustive enumeration confirms these are the respective optima; putting all vertices on one side gives target value 5 and checks the affine offset.
- Negative-threshold check: for a graph consisting of one edge, no cut has value at least 2. Its two-clause target has optimum 2, so the corresponding target threshold
m+2=3 is also unattainable.
BibTeX
@article{Gramm2003Max2SatMaxCut,
author = {Gramm, Jens and Hirsch, Edward A. and Niedermeier, Rolf and Rossmanith, Peter},
title = {Worst-case upper bounds for MAX-2-SAT with an application to MAX-CUT},
journal = {Discrete Applied Mathematics},
volume = {130},
number = {2},
pages = {139--155},
year = {2003},
doi = {10.1016/S0166-218X(02)00402-X}
}
Source
MaxCut/SimpleGraph/One
Target
Maximum2Satisfiability
Motivation
This classic affine objective encoding provides the reverse direction of the existing Maximum 2-SAT to MaxCut connection. The unit-weight source restriction is explicit and necessary because the target model is unweighted.
Reference
Gramm, Hirsch, Niedermeier, and Rossmanith, “Worst-case upper bounds for MAX-2-SAT with an application to MAX-CUT,” Discrete Applied Mathematics 130(2), 2003, DOI 10.1016/S0166-218X(02)00402-X.
Reduction Algorithm
Given unweighted
G=(V,E),V={0,...,n-1},m=|E|:x_vfor every vertex; its truth value is the side of the cut.{u,v}, add clauses(x_u OR x_v)and(not x_u OR not x_v). In the repository's signed, 1-indexedCNFClauserepresentation these are[u+1, v+1]and[-(u+1), -(v+1)].vis1exactly whenx_vis true, and0otherwise.Each edge occurrence creates its own clause pair. Consequently, parallel edges remain repeated clause pairs. A self-loop
{u,u}becomes(x_u OR x_u)and(not x_u OR not x_u).If the endpoints differ, both clauses are satisfied. If they agree, exactly one is satisfied. This also handles a self-loop, whose endpoints always agree. Therefore for every configuration
satisfied_clauses = m + cut_edges.The affine offset is constant, so the maximizers coincide and
max2sat_optimum = m + maxcut_optimum.Size Overhead
num_varsnum_verticesnum_clauses2 * num_edgesValidation Method
SimpleGraphconstructor; confirm repeated literals and repeated clause pairs remain valid target data.Example
01,12,23,30plus diagonal02, giving five edges.(x_0 OR x_1),(not x_0 OR not x_1),(x_1 OR x_2),(not x_1 OR not x_2),(x_2 OR x_3),(not x_2 OR not x_3),(x_3 OR x_0),(not x_3 OR not x_0),(x_0 OR x_2), and(not x_0 OR not x_2).[0,1,0,1]. The four cycle edges cross and diagonal02does not.5+4=9. Exhaustive enumeration confirms these are the respective optima; putting all vertices on one side gives target value 5 and checks the affine offset.m+2=3is also unattainable.BibTeX