NP-Completeness

\(NP\)-completeness is a property of some computational problems, which makes them amongst the hardest computational problems, and also at least as hard as each other.

Definition

A decision problem is a problem with a yes/no answer (or 0/1, true/false).

Polynomial time is a running time for an algorithm which is some polynomial multiplied by the size of the algorithm’s
inputs \(N\), such as \(N\), \(log\ N\), \(N\ log\ N\), \(N^2\), or \(N^3\), but not \(2^N\) or \(N!\).

A deterministic algorithm is one which, when it has to pursue several options, needs to pursue them one at a time.
A nondeterministic algorithm is one which, when it has to pursue several options, can pursue them simultaneously.
A nondeterministic algorithm is faster than a deterministic algorithm, but it is no more powerful in the sense of
being able to solve problems that a deterministic algorithm can’t.

The class \(P\) is the class of decision problems that can be solved in polynomial time by a deterministic algorithm.
The class \(NP\) is the class of decision problems that can be solved in polynomial time by a nondeterministic algorithm.
It follows from this that \(P\) is a subset of \(NP\).

A polynomial reduction is an polynomial time algorithm that can transform an instance of a problem \(A\)
(decision or otherwise) into an instance of another problem \(B\), such that the solution is preserved, i.e., for every
instance of \(A\), if the solution of \(A\) is yes, then the instance of \(B\) produced by the polynomial transformation will also
be yes, and the same for no, or any other value.

A problem (decision or otherwise) is \(NP\)-hard if every problem in \(NP\) can be reduced to it by a polynomial reduction.
So \(NP\)-hard can be read as “at least as hard as \(NP\)“.
A problem is \(NP\)-complete if it is \(NP\)-hard and it is in \(NP\).

So a problem is \(NP\)-hard but not \(NP\)-complete if it isn’t in \(NP\).
There are two two reasons for this:
1. It isn’t a decision problem, which means it isn’t in \(NP\)
2. It isn’t decidable, e.g., the Turing machine Halting Problem is \(NP\)-hard, but not in \(NP\) because the definition of \(NP\)
requires there is an algorithm, but by definition no algorithm exists for undecidable problems.

Since every problem in \(NP\) can be reduced to any \(NP\)-complete problem, but the converse is not true, the \(NP\)-complete
problems can be seen as the hardest problems in \(NP\).

Most scientists believe that there is no polynomial time algorithm that can solve an \(NP\)-hard problem.
This means that there are problems in \(NP\) that are not in \(P\), so \(P \neq NP\).
This is the \(P-NP\) Problem.

Karp’s 21 Problems

Richard Karp’s 1972 paper “Reducibility Among Combinatorial Problems” demonstrated the \(NP\)-completeness of 20 problems by reducing the known \(NP\)-complete problem SATISFIABILITY directly or indirectly to them as in the following diagram:

Problem definitions

SATISFIABILITY

INPUT: Clauses \(C_1, C_2, \dots, C_p\)

PROPERTY: The conjunction of the given clauses is satisfiable;
i.e., there is a set \(S \subseteq \{x_1, x_2, \dots, x_n;\overline{x_1}, \overline{x_2}, \dots, \overline{x_n}\}\) such
that
a) \(S\) does not contain a complementary pair of literals and
b) \(S \cap C_k \neq \emptyset, k = 1, 2, \dots, p\)

2. 0-1 INTEGER PROGRAMMING

INPUT: Integer matrix \(C\) and integer vector \(d\)

PROPERTY: There exists a \(0-1\) vector \(x\) such that \(C_x\) = \(d\).

3. CLIQUE

INPUT: Graph \(G\), positive integer \(k\)

PROPERTY: \(G\) has a set of \(k\) mutually adjacent nodes.

4. SET PACKING

INPUT: Family of sets \(\{S_j\}\), positive integer \(\ell\)

PROPERTY: \(\{S_j\}\) contains \(\ell\) mutually disjoint sets.

5. NODE COVER

INPUT: Graph \(G^\prime\), positive integer \(\ell\)

PROPERTY: There is a set \(R \subseteq N^\prime\) such that \(|R| \le \ell\) and
every arc is incident with some node in \(R\).

6. SET COVERING

INPUT: Finite family of finite sets \(\{S_j\}\)

PROPERTY: There is a subfamily \(\{T_h\} \subseteq \{S_j\}\) containing \(\le k\)
sets such that \(\bigcup T_h = \bigcup S_j\).

7. FEEDBACK NODE SET

INPUT: Digraph \(H\), positive integer \(k\)

PROPERTY: There is a set \(R \subseteq V\) such that every (directed)
cycle of \(H\) contains a node in \(R\).

8. FEEDBACK ARC SET

INPUT: Digraph \(H\), positive integer \(k\)

PROPERTY: There is a set \(S \subseteq E\) such that every (directed)
cycle of \(H\) contains an arc in \(S\).

9. DIRECTED HAMILTON CIRCUIT

INPUT: Digraph \(H\)

PROPERTY: \(H\) has a directed cycle which includes each node exactly once.

10. UNDIRECTED HAMILTON CIRCUIT

INPUT: Graph \(G\)

PROPERTY: \(G\) has a cycle which includes each node exactly once.

11. SATISFIABILITY WITH AT MOST 3 LITERALS PER CLAUSE

INPUT: Clauses \(D_1, D_2, \ldots, D_r\), each consisting of at most 3
literals from the set \(\{u_1, u_2, \ldots, u_m\} \cup \{\overline{u_1}, \overline{u_2}, \ldots, \overline{u_m}\}\)

PROPERTY: The set {\(D_1, D_2, \ldots, D_r\)} is satisfiable.

12. CHROMATIC NUMBER

INPUT: Graph \(G\), positive integer \(k\)

PROPERTY: There is a function \(\phi: N \to \mathbb{Z_k}\) such that, if \(u\)
and \(v\) are adjacent, then \(\phi(u) \ne \phi(v)\).

13. CLIQUE COVER

INPUT: Graph \(G\), positive integer \(\ell\)

PROPERTY: \(N^\prime\) is the union of \(\ell\) or fewer cliques.

14. EXACT COVER

INPUT: Family \(\{S_j\}\) of subsets of a set \(\{u_i, i = 1, 2, \ldots, t\}\)

PROPERTY: There is a subfamily \(\{T_h\} \subseteq \{S_j\}\) such that the
sets \(T_h\) are disjoint and \(\bigcup T_h = \bigcup S_j = \{u_i, i = 1, 2, \ldots, t\}\).

15. HITTING SET

INPUT: Family \(\{U_i\}\) of subsets of \(\{S_j, j = 1, 2, \ldots, r\}\)

PROPERTY: There is a set \(W\) such that, for each \(i\), \(|W \cap U_i| = 1\).

16. STEINER TREE

INPUT: Graph \(G\), \(R \subseteq N\), weighting function \(w: A \to \mathbb{Z}\),
positive integer k

PROPERTY: \(G\) has a subtree of weight \(\leq k\) containing the set of nodes in \(R\).

17. 3-DIMENSIONAL MATCHING

INPUT: Set \(U \subseteq T \times T \times T\), where \(T\) is a finite set

PROPERTY: There is a set \(W \subseteq U\) such that \(|W| = |T|\) and
no two elements of \(W\) agree in any coordinate.

18. KNAPSACK

INPUT: \((a_1, a_2, \ldots, a_r, b) \in \mathbb{Z}^{n+1}\)

PROPERTY: \(\sum a_j x_j = b\) has a \(0-1\) solution.

19. JOB SEQUENCING

INPUT:
“execution time vector” \((T_1, \ldots, T_P) \in \mathbb{Z}^P\)
“deadline vector” \((D_1, \ldots, D_P) \in \mathbb{Z}^P\)
“penalty vector” \((P_1, \ldots, P_P) \in \mathbb{Z}^P\)
positive integer \(k\)

PROPERTY: There is a permutation \(\pi\) of \(\{1, 2, \ldots, P\)} such that

\(\left( \sum_{j=1}^P [\text{if } T_{\pi(1)} + \dots + T_{\pi(j)} \gt D_{\pi(j)} \text{ then } P_{\pi(j)} \text{ else } 0]\right) \le k .\)

20. PARTITION

INPUT: \((c_1, c_2, \ldots, c_s) \in \mathbb{Z}^S\)

PROPERTY: There is a set \(I \subseteq \{1, 2, \ldots, s\}\) such that

\(\sum_{h \in I} c_h = \sum_{h \notin I} c_h\)

21. MAX CUT

INPUT: graph \(G\), weighting function \(w: A \to \mathbb{Z}\), positive
integer \(W\)

PROPERTY: There is a set \(S \subseteq N\) such that

\(\sum_{\{u, v\} \in A, u \in S v \notin S} w(\{u, v\}) \ge W.\)

Reductions

SATISIFIABILITY \(\propto\) 0,1 INTEGER PROGRAMMING

\(c_{ij} = \begin{cases} 1 & if\; x_j \in C_i\quad i=1, 2, \dots, p \\
-1 & if\; \overline{x_j} \in C_i\quad i=1, 2, \dots, n \\
0 & otherwise\; \end{cases}\)
The vector \(b\) is dimension \(p\) with:
\(b_i\) = 1 – (the number of complemented variables in \(C_i\)),
\(i = 1, 2, \ldots, p\).

SATISFIABILITY \(\propto\) CLIQUE

\(N = \{\langle \sigma, i\rangle | \sigma\) is a literal and occurs in \(C_i\}\)
\(A = \{\{\langle \sigma, i\rangle, \langle\delta, j\rangle\} | i \neq j\) and \(\sigma \neq \overline{\delta}\}\)
\(k = p\), the number of clauses

CLIQUE \(\propto\) SET PACKING

Assume \(N = \{1, 2, \ldots, n\}\).
The elements of the sets \(S_1, S_2, \ldots, S_n\) are those two-element sets of nodes \(\{i, j\}\) not in \(A\).
\(S_i = \{\{i, j\}| \{i, j\} \notin A\}, i = 1, 2, \ldots, n\).
\(\ell = k\).

CLIQUE \(\propto\) NODE COVER

\(G^\prime\) is the complement of \(G\).
\(\ell = |N| – k\).

NODE COVER \(\propto\) SET COVERING

Assume \(N^\prime = \{0, 1, \ldots, n\}\).
The elements are the arcs of \(G^\prime\).
\(S_j\) is the set of arcs incident with node \(j\).
\(k = \ell\).

NODE COVER \(\propto\) FEEDBACK NODE SET

\(V = N^\prime\).
\(E = \{\langle u, v\rangle | \{u,v\} \in A^\prime\}\).
\(k = \ell\).

NODE COVER \(\propto\) FEEDBACK ARC SET

\(V = N^\prime \times \{0, 1\}\).
\(E = \{\langle \langle u, 0 \rangle, \langle u, 1 \rangle \rangle| u \in N^\prime\} \cup \{\langle \langle u, 1\rangle, \langle v, 0\rangle\rangle| \{u, v\} \in A^\prime\}\).
\(k = \ell\).

NODE COVER \(\propto\) DIRECTED HAMILTONIAN CIRCUIT

Without loss of generality assume \(A^\prime = Z_m\).
\(V = \{a_1, a_2, \dots, a_\ell\} \cup \{\langle u, i, \alpha \rangle\ | u \in N^\prime\) is incident with \(i \in A^\prime\) and \(\alpha \in \{0, 1\}\}\)
\(E = \{\langle \langle u, i, 0 \rangle, \langle u, i, 1 \rangle, \rangle | \langle u, i, 0 \rangle \in V\}\)
\(\;\cup\;\{\langle \langle u, i, \alpha \rangle, \langle v, i, \alpha \rangle \rangle | i \in A^\prime, u\) and \(v\) are incident with \(i\), \(\alpha \in \{0, 1\}\}\)
\(\;\cup\;\{\langle \langle u, i, 1 \rangle, \langle u, j, 0 \rangle \rangle | u\) is incident with \(i\) and \(j\) and \(!\exists h, i \lt h \lt j,\) such that \(u\) is incident with \(h\}\)
\(\;\cup\;\{\langle \langle u, i, 1 \rangle, a_f \rangle | 1 \leq f \leq \ell\) and \(!\exists h \gt i\) such that \(u\) is incident with \(h\}\)
\(\;\cup\;\{\langle a_f,\langle u, i, 0 \rangle \rangle | 1 \leq f \leq \ell\) and \(!\exists h \lt i\) such that \(u\) is incident with \(h\}\)

DIRECTED HAMILTONIAN CIRCUIT \(\propto\) UNDIRECTED HAMILTONIAN CIRCUIT

\(N = V \times \{0, 1, 2\}\)
\(A = \{\{\langle u, 0 \rangle, \langle u, 1\}, \{\langle u, 1 \rangle, \langle u, 2 \rangle\}| u \in V\}\)
\(\; \cup \{\{\langle u, 2 \rangle, \langle v, 0 \rangle\} | \langle u, v \rangle \in E\}\)

SATISFIABILITY \(\propto\) SATISFIABILITY WITH AT MOST 3 LITERALS PER CLAUSE

Replace a clause \(\sigma_1 \cup \sigma_2 \cup \ldots \cup \sigma_m\), where the \(\sigma_i\) are literals and \(m \gt\) 3, by
\((\sigma_1 \cup \sigma_2 \cup u_1)(\sigma_3 \cup \ldots \cup \sigma_m \cup \overline{u_1})(\overline{\sigma_3} \cup u_1) \ldots (\overline{\sigma_m} \cup u_1)\),
where \(u_1\) is a new variable.
Repeat this transformation until no clause has more than three literals.

SATISFIABILITY WITH AT MOST 3 LITERALS PER CLAUSE \(\propto\) CHROMATIC NUMBER

Assume without loss of generality that \(m \ge 4\).
\(N = \{u_1, u_2, \ldots, u_m\} \cup \{\overline{u1}, \overline{u2}, \ldots, \overline{um}\} \cup {v1, v2, \ldots, v_m}\)
\(\;\cup \{D_1, D_2, \dots, D_r\}\)
\(A = \{\{u_i, \overline{ui}\}| i = 1, 2, \ldots, n\} \cup \{\{v_i, v_j\} | i \neq j\} \cup \{\{v_i, x_j\}| i != j\} \cup \{\{v_i, \overline{x_j}\}| i \neq j\}\)
\(\;\cup \{\{u_i, D_f\} | u_i \notin D_f\} \cup \{\{\overline{u_i}, D_f\}| \overline{u_i} \in D_f\}\)
\(k = r + 1\)

CHROMATIC NUMBER \(\propto\) CLIQUE COVER

\(G^\prime\) is the complement of \(G\)
\(\ell = k\)

CHROMATIC NUMBER \(\propto\) EXACT COVER

The set of elements is
\(N \cup A \cup \{ \langle u, e, f\rangle | u\) is incident with \(e\) and \(1 \leq f \leq k\}\).
The sets \(S_j\) are the following:
for each \(f, 1 \leq f \leq k\), and each \(u \in N\),
\(\quad\{u\} \cup \{\langle u, e, f \rangle | e\) is incident with \(u\}\);
for each \(e \in A\) and each pair \(f_1, f_2\) such that
\(\quad 1 \leq f_1 \leq k, 1 \leq f_2 \leq k\) and \(f_1 \neq f_2\)
\(\quad\{e\} \cup \{\langle u, e, f \rangle, f \neq f_1\} \cup \{\langle v, e, g \rangle | g \neq f_2\}\),
where \(u\) and \(v\) are the two nodes incident with \(e\).

EXACT COVER \(\propto\) HITTING SET

The hitting set problem has sets \(U_i\) and elements \(s_j\) such that
\(s_j \in U_i \iff u_i \in S_j\).

EXACT COVER \(\propto\) STEINER TREE

\(N = \{n_0\} \cup \{S_j\} \cup \{u_1\}\)
\(R = \{n_0\} \cup \{u_i\}\)
\(A = \{\{n_0, S_j\}\} \cup \{\{S_j, u_i\}| u_i \in S_j\}\)
\(w(\{n_0, S_j\}) = |S_j|\)
\(w(\{S_j, u_i\}) = 0\)
\(k = |\{u_i\}|\).

EXACT COVER \(\propto\) 3-DIMENSIONAL MATCHING

Without loss of generality, assume \(|S_j| \geq 2\) for each \(j\).
Let \(T = \{\langle i, j \rangle | u_i \in S_j\}\).
Let \(\alpha\) be an arbitrary one-one function from \(\{u_i\}\) into \(T\).
Let \(pi: T \to T\) be a permutation such that,
for each fixed \(j, \{\langle i, j\rangle | u_i \in S_j\}\) is a cycle of \(\pi\).
\(U = \{\langle \alpha(u_i), \langle i, j\rangle , \langle i, j\rangle \rangle | \langle i, j\rangle \in T\}\)
\(\quad\cup \langle \beta, \sigma, \pi(\sigma)\rangle | \text{for all } i, \beta \ne \alpha(u_i)\}\).

EXACT COVER \(\propto\) KNAPSACK

Let \(d = |\{S_j\}|+1.\)
Let \(\epsilon_ji = \begin{cases} 1 & if\; u_i \in S_j \\
0 & if\; u_i \notin S_j \end{cases}\)
Let \(r = |\{S_j\}|, a_j = \sum \epsilon_{ji}d^{i-1}\;and\;b = \frac{d^t-1}{d-1}.\)

KNAPSACK \(\propto\) SEQUENCING

\(p = r, T_i = P_i = a_i, D_i = b\).

KNAPSACK \(\propto\) PARTITION

\(s = r + 2\)
\(c_i = a_i i = 1, 2, \ldots r\)
\(c_{r+1} = b + 1\)
\(c_{r+2} = (\sum_{i = 1}^r a_i) + 1 – b\)

PARTITION \(\propto\) MAX CUT

\(N = \{1, 2, \dots, s\}\)
\(A = \{\{i, j\} | i \in N, j \in N, i \ne j\}\)
\(w(\{i, j\}) = c_i \cdot c_j\)
\(W = [\frac{1}{4} \sum c_i^2]\)