Nor has there been agreement about the right road to truth.
—Isaiah Berlin
The notions of reducibility and completeness play an important role in the classification of the complexity of problems from diverse areas of applications. In this chapter, we formally define two types of reducibilities: the polynomial-time many-one reducibility and the polynomial-time Turing reducibility. Then we prove several basic NP-complete problems and discuss the complexity of some combinatorial optimization problems.
The complexity class NP has a nice characterization in terms of class P and polynomial length-bounded existential quantifiers.
Based on the above characterization, we often say a nondeterministic computation is a guess-and-verify computation. That is, if set A has the property (2.1), then for any input x, an NTM M can determine whether by firstguessing a string y of length and then deterministically verifying that , in time polynomial in . For each , a string y of length such that is called a witness or a certificate for x. This notion of guess-and-check computation is a simple way of presenting a nondeterministic algorithm.
In the following text, we introduce some well-known problems in NP. We define each problem Π in the form of a decision problem: “Given an input instance x, determine whether it satisfies the property .” Each problem Π has a corresponding language . We say that Π is in NP to mean that the corresponding language LΠ is in NP.
The notion of reducibilities was first developed in recursion theory. In general, a reducibility is a binary relation on languages that satisfies the reflexivity and transitivity properties and, hence, it defines a partial ordering on the class of all languages. In this section, we introduce the notion of polynomial-time many-one reducibility. Let and be two languages. We say that A is many-one reducible to B, denoted by , if there exists a computable function such that for each , if and only if . If the reduction function f is further known to be computable in polynomial time, then we say that A is polynomial-time many-one reducible to B and write . It is easy to see that polynomial-time many-one reducibility does satisfy the reflexivity and transitivity properties and, hence, indeed is a reducibility.
Note that if and , then . In general, we say a complexity class is closed under the reducibility if and imply .
Note that the complexity class is not closed under . People sometimes, therefore, study a weaker class of exponential-time computable sets EXPPOLY , which is closed under .
For any complexity class that is closed under a reducibility , we say a set B is -hard for class if for all and we say a set B is -complete for class if and B is -hard for . For convenience, we say a set B is -complete if B is -complete for the class .2 Thus, a set B is NP-complete if and for all . An NP-complete set B is a maximal element in NP under the partial ordering . Thus, it is not in P if and only if .
In recursion theory, the halting problem is the first problem proved to be complete for the class of recursively enumerable (r.e.) sets under the reducibility . As the class of r.e. sets properly contains the class of recursive sets, the halting problem and other complete sets for the class of r.e. sets are not recursive. The analogous problem for the class NP, called the time-bounded halting problem for NTMs, is our first NP-complete problem. (Again, for a natural problem Π that asks whether the given input x satisfies , we say it is NP-complete to mean that the set is NP-complete.)
BOUNDED HALTING PROBLEM (BHP): Given the code x of an NTM Mx, an input y and a string 0t determine whether machine M accepts y within t moves.
The above theorem demonstrates that NP contains at least one complete problem. By the transitivity property of , we would like to prove other NP-complete problems by reducing a known NP-complete problem to them, which is presumably easier than reducing all problems in NP to them. However, the problem BHP, being a problem concerning with the properties of NTMs, is hardly a natural problem. To prove the NP-completeness of natural problems, we first need a natural NP-complete problem. Our first natural NP-complete problem is the satisfiability problem SAT. It was first proved to be NP-complete by Stephen Cook in 1970 (Cook, 1971).
To apply SAT to prove other natural NP-complete problems, it would be easier to work with Boolean formulas of simpler forms, such as conjunctive normal form (CNF). Recall that a CNF formula is a product of elementary sums. Each factor of a CNF formula F is a clause of F. A CNF formula F is called a 3-CNF formula if each clause (implicant, respectively) of F contains exactly three literals of three distinct variables. The following variation of SAT is very useful for proving new NP-complete problems:
3-SAT: Given a 3-CNF formula, determine whether it is satisfiable.
The importance of the notion of NP-completeness is witnessed by thousands of NP-complete problems from a variety of areas in computer science, discrete mathematics, and operations research. Theoretically, all these problems can be proved to be NP-complete by reducing SAT to them. It is practically much easier to prove new NP-complete problems from some other known NP-complete problems that have similar structures as the new problems. In this section, we study some best-known NP-complete problems that may be useful to obtain new NP-completeness results.
VERTEX COVER (VC): Given a graph and an integer K ≥ 0, determine whether G has a vertex cover of size at most K, that is, determine whether V has a subset V′ of size such that each has at least one end point in .
CLIQUE: Given a graph and an integer K ≥ 0, determine whether G has a clique of size K, that is, whether G has a complete subgraph of size K.INDEPENDENT SET (IS): Given a graph and an integer K ≥ 0, determine whether G has an independent set of size K, that is, whether there is a subset of size K such that for any two vertices , .
3.147.27.171