More NP-completeness Sipser 7.5 (pages 283-294)
NP’s hardest problems Definition 7.34: A language B is NP-complete if B∈NP A≤pB, for all A∈NP NP A1 A2 CLIQUE SAT A3
Hamiltonian paths HAMPATH = {<G,s,t> | ∃ Hamiltonian path from s to t} Theorem 7.46: HAMPATH is NP-complete. s t
Hamiltonian paths HAMPATH = {<G,s,t> | ∃ Hamiltonian path from s to t} Theorem 7.46: HAMPATH is NP-complete. s t
Remember… HAMPATH∈NP N = "On input <G,s,t>: Guess an orderings, p1, p2,..., pn, of the nodes of G Check whether s = p1 and t = pn For each i=1 to n-1, check whether (pi, pi+1) is an edge of G. If any are not, reject. Otherwise, accept.”
3SAT≤pHAMPATH NP A1 A2 HAMPATH 3SAT A3
Proof outline Given a boolean formula φ, we convert it to a directed graph G such that φ has a valid truth assignment iff G has a Hamiltonian graph
3SAT’s main features Choice: Each variable has a choice between two truth values. Consistency: Different occurrences of the same variable have the same value. Constraints: Variable occurrences are organized into clauses that provide constraints that must be satisfied. *We model each of these three features by a different a "gadget" in the graph G.
The choice gadget Modeling variable xi
Zig-zagging and zag-zigging Zig-zag (TRUE) Zag-zig (FALSE)
The consistency gadget
Clauses Modeling clause cj cj
The global structure
The constraint gadget Modeling when clause cj contains xi
The constraint gadget Modeling when clause cj contains xi
A situation that cannot occur
TSP is NP-complete TSP: Given n cities, 1, 2, ..., n, together with a nonnegative distance dij between any two cities, find the shortest tour.
HAMPATH ≤p TSP NP A1 A2 TSP HAMPATH A3
SUBSET-SUM is NP-complete {<S,t> | S = {x1,…,xk} and, for some {y1,…,yl} ⊆ S, Σ yi=t} Why is SUBSET-SUM in NP?
3SAT ≤p SUBSET-SUM
And…if that’s not enough There are more than 3000 known NP-complete problems! http://en.wikipedia.org/wiki/List_of_NP-complete_problems
Other types of complexity Space complexity Circuit complexity Descriptive complexity Randomized complexity Quantum complexity …