Definition
Dominating Set to Integer Linear Programming
There is a polynomial-time many-one reduction
from the Dominating Set decision problem to the integer linear programming decision problem. A graph
and threshold are mapped to an integer constraint system feasible exactly when has a dominating set of size at most .
Construction
Let
Represent selection by binary integer variables
Introduce one integer variable
per vertex and impose
Integrality forces: means selected and means unselected. Enforce the size bound by
The sum counts selected vertices exactly because each variable is binary. Bounds alone without integrality would allow fractional choices and would not encode a dominating set.
Turn each closed neighbourhood into one constraint
A vertex
is dominated if it is selected itself or some neighbour is selected. Require Each summand is
or , so the inequality says that at least one vertex in is selected. These are the three domination rows for the path above. The choice
makes all three left-hand sides equal to . An isolated vertex has constraint , correctly forcing its selection.
Express feasibility in the target decision format
In the ILP decision format
, rewrite lower bounds by multiplying by : Set the objective vector to
and threshold to . Then is always true, so the target asks only whether the constraints admit an integer solution. No optimisation needs to be performed by the reduction.
Correctness
Selections and feasible integer vectors correspond
Forward: encode a dominating set
Suppose
dominates and . Set for and otherwise. These values are integral and satisfy the domain bounds. Their sum is . For every , domination gives , so . The zero objective reaches its zero threshold. Thus the target is a yes-instance. Backward: decode a feasible integer vector
Suppose the target has a feasible integer vector
. Domain bounds imply . Define . The budget row gives . For each , the domination row forces at least one with . Hence every vertex lies in or has a neighbour in . Thus is a dominating set of the required size.
Size and running time
For
nonzero coefficients: each vertex contributes its own variable, and each undirected edge contributes to two rows. Including
All coefficients are