Definition
3-SAT to Dominating Set
There is a polynomial-time many-one reduction
A 3-SAT formula with variables and clauses is mapped to a Dominating Set instance with vertices, such that
Construction
Write , where each clause contains at most three literals over variables . All graphs below are simple and undirected. A selected vertex dominates itself and its neighbours, not vertices at distance two.
Give each variable two truth choices
For variable , introduce four distinct vertices
The vertices and represent setting to true and false. Add the five edges
These are two triangles sharing the edge . There is no edge between and , and these two auxiliary vertices will have no neighbours outside .
Selecting either or dominates all four vertices. Selecting only does not dominate , and selecting only does not dominate . Thus a single selection can handle this gadget only by choosing a truth-value vertex. The second auxiliary vertex is what prevents a one-vertex auxiliary choice.
Make each clause demand a true literal
For each clause , add one vertex . Join it to if occurs in , and to if occurs in . No other edges are added: in particular, clause vertices are not adjacent to one another or to auxiliary vertices.
If is not itself selected, it is dominated exactly when at least one of its literal-vertices is selected. This is the disjunction in . We still need to prohibit selecting directly; that is the purpose of the budget.
Allow exactly one selection per variable
Output with . Every gadget needs at least one internal selection, since cannot be dominated from outside . There are disjoint gadgets, so these selections exhaust the budget. There is no room for a clause vertex or a second choice in any gadget.
Consequently, each gadget must be dominated using exactly one internal vertex. By the variable gadget construction, that vertex must be or .
This is the complete graph for the displayed formula. Orange vertices are selected; orange clause edges witness satisfied literals. Edge crossings are not vertices. The budget forces a truth assignment, and domination of the clause vertices checks that assignment.
For reference, the full construction is
Here means that the literal occurs in the clause; it does not assert that the literal is true.
Correctness
Satisfiability is equivalent to domination within the budget
Forward: turn an assignment into a dominating set
Let satisfy . Select
There is exactly one selected vertex per variable, so . Each selected truth-value vertex dominates its entire gadget. Each clause has a true literal; the corresponding selected vertex is adjacent to . Thus every vertex of is dominated.
Backward: recover a satisfying assignment
Let dominate with .
Count the selections forced inside gadgets
The only vertices that can dominate are , all in . Hence for every . Since the gadgets are disjoint,
All inequalities are equalities. Thus every gadget contains exactly one selected vertex, and no clause vertex is selected.
Exclude auxiliary selections
If , then is undominated: it is not selected, its only neighbours are , and neither is selected. The case is symmetric. Therefore
Define when , and when . Exactly one of these cases holds for each variable.
Read domination of each clause as satisfaction
Fix any clause . Since , it must have a selected neighbour. Such a neighbour is either with , or with . By the definition of , that literal is true. Thus every clause is satisfied, so .
Size and running time
Let count distinct literal occurrences within clauses, so . The construction creates
It takes vertex/edge operations, hence polynomial time in the encoded input length. Repeated literals in a clause create only one edge. An empty clause creates an isolated clause vertex, which cannot fit into the exhausted budget; thus unsatisfiable empty clauses are handled correctly too.