Intro and NP Hard problems

CSE 548: (Design and) Analysis of Algorithms NP and Complexity Classes

R. Sekar

1 / 38 Intro P and NP Hard problems Search and Optimization Problems

Many problems of our interest are search problems with exponentially (or even infinitely) many solutions Shortest of the paths between two vertices Spanning tree with minimal cost Combination of variable values that minimize an objective We should be surprised we find ecient (i.e., polynomial-time) solutions to these problems It seems like these should be the exceptions rather than the norm! What do we do when we hit upon other search problems?

2 / 38 Intro P and NP Hard problems Hard Problems: Where you find yourself ...

I can’t find an ecient algorithm, I guess I’m just too dumb.

Images from “Computers and Intractability” by Garey and Johnson

3 / 38 Intro P and NP Hard problems Search and Optimization Problems

What do we do when we hit upon hard search problems? Can we prove they can’t be solved eciently?

4 / 38 Intro P and NP Hard problems Hard Problems: Where you would like to be ...

I can’t find an ecient algorithm, because no such algorithm is possible.

Images from “Computers and Intractability” by Garey and Johnson

5 / 38 Intro P and NP Hard problems Search and Optimization Problems

Unfortunately, it is very hard to prove that ecient algorithms are impossible Second best alternative: Show that the problem is as hard as many other problems that have been worked on by a host of brilliant scientists over a very long time Much of complexity theory is concerned with categorizing hard problems into such equivalence classes

6 / 38 Intro P and NP Hard problems

P, NP, Co-NP, NP-hard and NP-complete

7 / 38 Intro P and NP Hard problems Nondeterminism and Search Problems

Nondeterminism is an oft-used abstraction in language theory Non-deterministic FSA Non-deterministic PDA So, why not non-deterministic Turing machines? Acceptance criteria is analogous to NFA and NPDA if there is a sequence of transitions to an accepting state, an NDTM will take that path. What does nondeterminism, a theoretical construct, mean in practice? You can think of it as a boundless potential to search for and identify the correct path that leads to a solution So, it does not change the class of problems that can be solved, just

the time/space needed to solve. 8 / 38 Intro P and NP Hard problems Class NP: Non-deterministic Polynomial Time

How they operate: Guess a solution verify correctness in polynomial time Polynomial time verifiability is the key property of NP. This is how you build a path from P to NP. Ideal formulation for search problems, where correct solutions are hard to find but easy to recognize. Example: Boolean formula satisfiability (SAT) Given a boolean formula in CNF, find an assignment of {true, false} to variables that makes it true. Why not DNF?

9 / 38 Intro P and NP Hard problems What are the bounds of NP?

Only Decision problems: Problems with an “yes” or “no” answer Optimization problems are generally not in NP But we can often find optimal solutions using “binary search” “No” answers are usually not verifiable in P-time So, of NP problems are often not NP. UNSAT — show that a CNF formula is false for truth assignments1 Key point: You cannot negate nondeterministic automata. So, we are unable to convert an NDTM for SAT to solve UNSAT in NP-time.

1Whether UNSAT ∈ NP is unknown! 10 / 38 Intro P and NP Hard problems What are the bounds of NP?

Existentially quantified vs Universally quantified formulas NP is good for ∃x P(x): guess a value for x and check if P(x) holds. NP is not good for ∀x P(x): Guessing does not seem to help if you need to check all values of x. Negation of existential formula yields a universal formula. No surprise that complement of NP problems are typically not in NP. UNSAT: ∀x¬P(x) where P is in CNF VALID: ∀xP(x), where P is in DNF NP seems to be a good way to separate hard problems from even harder ones!

11 / 38 Algorithms Lecture 30: NP-Hard Problems[Fa’13] is harder than just checking that a solution is correct. But nobody knows how to prove it! The Clay Mathematics Institute lists P versus NP as thefirst of its seven Millennium Prize Problems, offering a $1,000,000 reward for its solution. And yes, in fact, several people have lost their souls attempting to solve this problem. Intro P and NP Hard problems A more subtle but still openCo-NP: question Problems is whether whose the complexity complement classes is NP in and NP co-NP are different. Even if we can verify every YES answer quickly, there’s no reason to believe we can also verify NO answers quickly. For example, as far as we know, there is no short proof that a boolean circuit is not satisfiable. It is generally believed that NP= co-NP,Decision but problems nobody that knows have a polynomially how to prove checkable it. proof when � the answer is “no”

������

What we think the world looks like. Biggest open problem: Is P = NP? Will also imply co-NP = P 30.3 NP-hard, NP-easy, and NP-complete

A problemΠ is NP-hard if a polynomial-time algorithm forΠ would imply a polynomial-time12 / 38 algorithm for every problem in NP. In other words:

Π is NP-hard IfΠ can be solved in polynomial time, then P=NP ⇐⇒ Intuitively, if we could solve one particular NP-hard problem quickly, then we could quickly solve any problem whose solution is easy to understand, using the solution to that one special problem as a subroutine. NP-hard problems are at least as hard as any problem in NP. Calling a problem NP-hard is like saying ‘If I own a dog, then it can speakfluent English.’ You probably don’t know whether or not I own a dog, but I bet you’repretty sure that I don’t own a talking dog. Nobody has a mathematical proof that dogs can’t speak English—the fact that no one has ever heard a dog speak English is evidence, as are the hundreds of examinations of dogs that lacked the proper mouth shape and brainpower, but mere evidence is not a mathematical proof. Nevertheless, no sane person would believe me if I said I owned a dog that spokefluent English. So the statement ‘If I own a dog, then it can speakfluent English’ has a natural corollary: No one in their right mind should believe that I own a dog! Likewise, if a problem is NP-hard, no one in their right mind should believe it can be solved in polynomial time. Finally, a problem is NP-complete if it is both NP-hard and an element of NP (or ‘NP-easy’). NP- complete problems are the hardest problems in NP. If anyonefinds a polynomial-time algorithm for even one NP-complete problem, then that would imply a polynomial-time algorithm for every NP-complete problem. Literally thousands of problems have been shown to be NP-complete, a polynomial-time algorithm for one (and therefore all) of them seems incredibly unlikely.

�������

���� �� ����������� �

More of what we think the world looks like.

3 Intro P and NP Hard problems The class Co-NP ∩ NP

Often, problems that are in NP ∩ co-NP are in P It requires considerable insight and/or structure in the problem to show that something is both NP and co-NP This can often be turned into a P-time algorithm Examples Linear programming [1979] Obviously in NP. To see why it is in co-NP, we can derive a lower bound by multiplying the constraints by a suitable (guessed) number and adding. Primality testing [2002] Obviously in co−NP; See “primality certificate” for proof it is NP Integer factorization?

13 / 38 Algorithms Lecture 30: NP-Hard Problems[Fa’13] is harder than just checking that a solution is correct. But nobody knows how to prove it! The Clay Mathematics Institute lists P versus NP as thefirst of its seven Millennium Prize Problems, offering a $1,000,000 reward for its solution. And yes, in fact, several people have lost their souls attempting to solve this problem. A more subtle but still open question is whether the complexity classes NP and co-NP are different. Even if we can verify every YES answer quickly, there’s no reason to believe we can also verify NO answers quickly. For example, as far as we know, there is no short proof that a boolean circuit is not satisfiable. It is generally believed that NP= co-NP, but nobody knows how to prove it. �

������

What we think the world looks like.

30.3 NP-hard, NP-easy, and NP-complete

A problemΠ is NP-hard if a polynomial-time algorithm forΠ would imply a polynomial-time algorithm for every problem in NP. In other words:

Π is NP-hard IfΠ can be solved in polynomial time, then P=NP ⇐⇒ Intuitively, if we could solve one particular NP-hard problem quickly, then we could quickly solve any problem whose solution is easy to understand, using the solution to that one special problem as a subroutine. NP-hard problems are at least as hard as any problem in NP. Calling a problem NP-hard is like saying ‘If I own a dog, then it can speakfluent English.’ You probably don’t know whether or not I own a dog, but I bet you’repretty sure that I don’t own a talking dog. Nobody has a mathematical proof that dogs can’t speak English—the fact that no one has ever heard a dog speak English is evidence, as are the hundreds of examinations of dogs that lacked the proper mouth shape and brainpower, but mere evidence is not a mathematical proof. Nevertheless, no sane person would believe me if I said I owned a dog that spokefluent English. So the statement ‘If I own a dog, then it can speakfluent English’ has a natural corollary: No one in their right mind should believe that I own a dog! Likewise, ifIntro aP problemand NP Hard problems is NP-hard, no one in their right mind should believe it can be solved in polynomialNP-hard time. and NP-complete Finally, a problem is NP-complete if it is both NP-hard and an element of NP (or ‘NP-easy’). NP- complete problems are theA problem hardestΠ problemsis NP-hard inif the NP. availability If anyone offi ands polynomial a polynomial-time solution algorithm for even one NP-complete problem,to Π thenwill allow thatNP would-problems imply to be a solvedpolynomial-time in polynomial time.algorithm for every NP-complete problem. Literally thousandsΠ is NPof-hard problems⇔ if Π can have be solved been in shownP-time, P to= beNP NP-complete, so a polynomial-time algorithm for one (and therefore all) of them seems incredibly unlikely. NP-complete = NP-hard ∩ NP

�������

���� �� ����������� �

More of what we think the world looks like.

14 / 38

3 Intro P and NP Hard problems Polynomial-time Reducibility

Show that a problem A could be transformed into problem B in polynomial time Called a polynomial-time of A to B The crux of proofs involving NP-completeness Implication: if B can be solved in P-time, we can solve A in P-time An NP-complete problem is one to which any problem in NP can be reduced to. Never forget the direction: To prove a problem Π is NP-complete, need to show how all other NP problems can be solved using Π, not vice-versa!

15 / 38 Intro P and NP Hard problems Wait! How can I reduce every NP to my problem?

If a particular NP-problem A is given to you, then you can think of a way to reduce it to your problem B But how do you go about proving that every NP problem X can be reduced to B You don’t even know X — indeed, the class NP is infinite! If you already knew an NP-complete problem, your task is easy!

Simply reduce this NP-complete problem to B, and by transitivity, you have a reduction of every X ∈ NP to B So, who will bell the cat? Stephen Cook [1970] and Leonid Levin [1973] managed to do this! Cook was denied reappointment/tenure in 1970 at Berkeley, but won 16 / 38 the Turing award in 1982! Intro P and NP Hard problems The first NP-complete problem: SAT

How do you show reducibility of arbitrary NP-problems to SAT? You start from the definition, of course! The class NP is defined in terms of an NDTM

X is in NP if there is an NDTM TX that solves X in polynomial time Use this NDTM as the basis of proof. Specifically, show that acceptance by an NDTM can be encoded in terms of a boolean formula

Model TX tape contents, tape heads, and finite state at each step as a vector of boolean variables 2 Need (p(n)) variables, where p(n) is the (polynomial) runtime of TX Model each transition as a boolean formula

17 / 38 Intro P and NP Hard problems Thanks to Cook-Levin, you can say ...

I can’t find an ecient algorithm, but neither can all these famous people.

Thanks to NP-completeness results, you can say this even if you have been working on an obscure problem that no one ever looked at! 18 / 38 Intro P and NP Hard problems

Some Hard Decision Problems

19 / 38 Intro P and NP Hard problems Figure 8.1 The optimalTraveling traveling Salesman salesman Problem tour, shown in bold, has length 18.

5

3 2 3 3 4 1

4 3 2

6 Given n vertices and n(n − 1)/2 distances between them, is there a tour (i.e., cycle) of length b or less that passes through all vertices? components of a particular graph constructed from the instance (recall Exercise20 / 38 3.28). In fact, in Chapter 9, we’ll see a different polynomial algorithm for this same special case, which is called 2SAT. On the other hand, if we are just a little more permissive and allow clauses to contain three literals, then the resulting problem, known as 3SAT (an example of which we saw earlier), once again becomes hard to solve!

The traveling salesman problem

In the traveling salesman problem (TSP) we are givenn vertices1,...,n and alln(n 1)/2 − distances between them, as well as a budgetb. We are asked tofind a tour, a cycle that passes through every vertex exactly once, of total costb or less—or to report that no such tour exists. That is, we seek a permutationτ(1),...,τ(n) of the vertices such that when they are toured in this order, the total distance covered is at mostb:

d +d + +d b. τ(1),τ(2) τ(2),τ(3) ··· τ(n),τ(1) ≤ See Figure 8.1 for an example (only some of the distances are shown; assume the rest are very large). Notice how we have defined the TSP as a search problem: given an instance,find a tour within the budget (or report that none exists). But why are we expressing the traveling salesman problem in this way, when in reality it is an optimization problem, in which the shortest possible tour is sought? Why dress it as something else? For a good reason. Our plan in this chapter is to compare and relate problems. The framework of search problems is helpful in this regard, because it encompasses optimization problems like the TSP in addition to true search problems like SAT. Turning an optimization problem into a search problem does not change its difficulty at all, because the two versions reduce to one another. Any algorithm that solves the optimization TSP also readily solves the search problem:find the optimum tour and if it is within budget, return it; if not, there is no solution. Conversely, an algorithm for the search problem can also be used to solve the optimization problem. To see why,first suppose that we somehow knew the cost of the optimum tour; then we couldfind this tour by calling the algorithm for the search problem, using the optimum

236 Intro P and NP Hard problems Hamiltonian Cycle

Simpler than TSP Is there a cycle that passes through every vertex in the graph? Earliest reference, posed in the context of chess boards and knights (“Rudrata cycle”) Longest path is another version of the same problem When posed as a , becomes the same as Hamiltonian path problem

21 / 38 Intro P and NP Hard problems Balanced Cuts

Does there exist a way to partition vertices V in a graph into two sets S and T such that there are at most b edges between S and T, and |S| ≥ |T| ≥ |V|/3

22 / 38 Intro P and NP Hard problems Integer Linear Programming (ILP) and Zero-One Equations (ZOE)

ILP: Linear programing, but solutions are limited to integers Many problems are easy to solve over real numbers but much harder for integers. Examples: Knapsack solutions to equations such as xn + yn = zn ZOE: A special case of ILP, where the values are just 0 or 1. Find x such that Ax = 1 where 1 is a column matrix consisting of 1’s.

23 / 38 Intro P and NP Hard problems 3d-Matching

Figure 8.4 A moreGiven elaborate triples of matchmakingcompatibilities between scenario. men, Each women triple and is pets, shown as a triangular- shaped node joiningfind perfect, boy, girl, 3-way and matches. pet.

Chet Alice

Bob Beatrice

Al Carol

Armadillo Bobcat Canary

24 / 38

Independent set, vertex cover, and clique

In the INDEPENDENTSET problem (recall Section 6.7) we are given a graph and an integerg, and the aim is tofindg vertices that are independent, that is, no two of which have an edge between them. Can youfind an independent set of three vertices in Figure 8.5? How about four vertices? We saw in Section 6.7 that this problem can be solved efficiently on trees, but for general graphs no polynomial algorithm is known.

Figure 8.5 What is the size of the largest independent set in this graph?

There are many other search problems about graphs. In VERTEXCOVER, for example, the input is a graph and a budgetb, and the idea is tofindb vertices that cover (touch) every edge. Can you cover all edges of Figure 8.5 with seven vertices? With six? (And do you see the intimate connection to the INDEPENDENTSET problem?) VERTEXCOVER is a special case of SETCOVER, which we encountered in Chapter 5. In that problem, we are given a setE and several subsets of it,S 1,...,Sm, along with a budget b. We are asked to selectb of these subsets so that their union isE.V ERTEXCOVER is the

241 Figure 8.4 A more elaborate matchmaking scenario. Each triple is shown as a triangular- shaped node joining boy, girl, and pet.

Chet Alice

Bob Beatrice

Al Carol

Armadillo Bobcat Canary

Independent set, vertex cover, and clique

In the INDEPENDENTSET problem (recall Section 6.7) we are given a graph and an integerg, and the aim is tofindg vertices that are independent, that is, no two of which have an edge between them.Intro CanP and NP youHardfi problemsnd an independent set of three vertices in Figure 8.5? How about four vertices? We saw in Section 6.7 that this problem can be solved efficiently on trees, but Independentfor general graphs set, no polynomial vertex cover, algorithm and is known. clique

Figure 8.5 What is the size of the largest independent set in this graph? Independent set: Does this graph contain a set of at least k vertices with no edge between them?

Vertex cover: Does this graph contain a set of at least k vertices that cover all edges?

Clique: Does this graph contain at least k vertices that are fully connected among themselves? There are many other search problems about graphs. In VERTEXCOVER, for example, the input is a graph and a budgetb, and the idea is tofindb vertices25 /38 that cover (touch) every edge. Can you cover all edges of Figure 8.5 with seven vertices? With six? (And do you see the intimate connection to the INDEPENDENTSET problem?) VERTEXCOVER is a special case of SETCOVER, which we encountered in Chapter 5. In that problem, we are given a setE and several subsets of it,S 1,...,Sm, along with a budget b. We are asked to selectb of these subsets so that their union isE.V ERTEXCOVER is the

241 Intro P and NP Hard problems Easy Vs Hard Problems

Hard Easy 3SAT 2SAT, HORN SAT TSP MST Longest path Shortest path 3d-matching bipartite match Independent set Indep. set on trees ILP Linear programming Hamiltonian cycle Euler path, Knights tour Balanced cut Min-cut

26 / 38 Intro P and NP Hard problems NP-completeness: Polynomial-time Reductions

Show that a known NP-complete problem A could be transformed I. These two translation proceduresf andh imply that any algorithm forB can be converted intointo an problem algorithm forBA inby bracketingpolynomial it between timef andh. Algorithm forA

SolutionS off(I) Solution Instance h Instancef(I) Algorithm h(S) ofI I f forB No solution tof(I) No solution toI

And now we canfinally define the class of the hardest search problems. Implication: if B can be solved in P-time, we can solve A in P-time A search problem isNP-complete if all other search problems reduce to it. ThisNever is a very forget strong requirement the direction: indeed. For a problem to beNP-complete, it must be useful in solving every search problem in the world! It is remarkable that such problems exist. ButWe they are do, provingand thefirst that columnB is ofNP the-complete table we saw here. earlier isfilled with the most famous examples. In Section 8.3 we shall see how all these problems reduce to one another, and also why all other search problems reduce to them.

The two ways to use reductions 27 / 38 So far in this book the purpose of a reduction from a problemA to a problemB has been straightforward and honorable: We know how to solveB efficiently, and we want to use this knowledge to solveA. In this chapter, however, reductions fromA toB serve a somewhat perverse goal: we knowA is hard, and we use the reduction to prove thatB is hard as well!

If we denote a reduction fromA toB by

A B −→ then we can say that difficultyflows in the direction of the arrow, while efficient algorithms move in the opposite direction. It is through this propagation of difficulty that we know NP-complete problems are hard: all other search problems reduce to them, and thus eachNP-complete problem contains the complexity of all search problems. If even one NP-complete problem is inP, thenP=NP.

Reductions also have the convenient property that they compose.

IfA B andB C, thenA C. −→ −→ −→ To see this, observefirst of all that any reduction is completely specified by the pre- and postprocessing functionsf andh (see the reduction diagram). If(f AB, hAB ) and(f BC , hBC ) define the reductions fromA toB and fromB toC, respectively, then a reduction fromA to C is given by compositions of these functions:f f maps an instance ofA to an instance BC ◦ AB ofC andh h sends a solution ofC back to a solution ofA. AB ◦ BC This means that once we know a problemAisNP-complete, we can use it to prove that a new search problemB is alsoNP-complete, simply by reducingA toB. Such a reduction establishes that all problems inNP reduce toB, viaA.

245 Intro P and NP Hard problems

Figure 8.7 ReductionsNP-completeness between search problems. Reductions

All ofNP

SAT

3SAT

INDEPENDENTSET 3D MATCHING

VERTEXCOVER CLIQUE ZOE

SUBSETSUM ILP RUDRATACYCLE

TSP 28 / 38

8.3 The reductions

We shall now see that the search problems of Section 8.1 can be reduced to one another as depicted in Figure 8.7. As a consequence, they are allNP-complete. Before we tackle the specific reductions in the tree, let’s warm up by relating two versions of the Rudrata problem.

RUDRATA (s, t)-PATH RUDRATA CYCLE −→ Recall the RUDRATACYCLE problem: given a graph, is there a cycle that passes through each vertex exactly once? We can also formulate the closely related RUDRATA (s, t)-PATH problem, in which two verticess andt are specified, and we want a path starting ats and ending att that goes through each vertex exactly once. Is it possible that RUDRATACYCLE is easier than RUDRATA (s, t)-PATH? We will show by a reduction that the answer is no. The reduction maps an instance(G=(V, E),s,t) of UDRATA (s, t)-PATH into an instance G� = (V �,E�) of RUDRATACYCLE as follows:G � is simplyG with an additional vertexx and two new edges s, x and x, t . For instance: { } { } G G� s s

t x t

SoV =V x , andE =E s, x , x, t . How do we recover a Rudrata(s, t)-path inG � ∪{ } � ∪ {{ } { }} given any Rudrata cycleinG ? Easy, we just delete the edges s, x and x, t from the cycle. � { } { } 247 Intro P and NP Hard problems Reducing all of NP to SAT

We already discussed this Show how to reduce acceptance by an NDTM to the SAT problem. Exercise: Show how to transform acceptance by an FSA into an instance of SAT

29 / 38 Intro P and NP Hard problems Reducing SAT to 3SAT

3SAT: A special case of SAT where each clause has ≤ 3 literals Reduction involves transforming a disjunction with many literals into a CNF of disjunctions with ≤ 3 literals per term The transformation below at most doubles the problem size. Key Idea: Introduce additional variables:

Example: l1 ∨ l2 ∨ l3 ∨ l4 can be transformed into:

(l1 ∨ l2 ∨ y1) ∧ (y1 ∨ l3 ∨ l4)

For this conjunction to be true, one of {l1, ..., l4} must be true: So a solution to the transformed problem is a solution to the original —

simply discard assignments for the new variables yi .

30 / 38 Intro P and NP Hard problems Reducing 3SAT to Independent set

Nontrivial reduction, as the problems are quite dierent in nature Idea: Model each of k clauses of 3SAT by a “triangle” in a graph

Figure 8.8 The graph corresponding to( x y z)(x y z)(x y z)( x y). ∨ ∨ ∨ ∨ ∨ ∨ ∨

y y y y

x z x z x z x

Independent set of size k must contain one literal from each clause By setting that literal to true, we obtain a solution for 3SAT to pick only one of them for the independent set. Repeat this construction for all clauses—a clauseKey with point: two literalsAvoid will conflicts, be represented e.g., assigning simply bytrue an edgeto both joiningx and the literals.x (A clause with oneensure literal isusing silly edges and can between be removed every variablein a preprocessing and its complement step, since the value of the variable is determined.) In the resulting graph, an independent set has to pick at most31 / 38 one literal from each group (clause). To force exactly one choice from each clause, take the goalg to be the number of clauses; in our example,g=4. All that is missing now is a way to prevent us from choosing opposite literals (that is, both x and x) in different clauses. But this is easy: put an edge between any two vertices that correspond to opposite literals. The resulting graph for our example is shown in Figure 8.8. Let’s recap the construction. Given an instanceI of 3 SAT, we create an instance(G, g) of INDEPENDENTSET as follows.

GraphG has a triangle for each clause (or just an edge, if the clause has two literals), • with vertices labeled by the clause’s literals, and has additional edges between any two vertices that represent opposite literals.

The goalg is set to the number of clauses. • Clearly, this construction takes polynomial time. However, recall that for a reduction we do not just need an efficient way to map instances of thefirst problem to instances of the second (the functionf in the diagram on page 245), but also a way to reconstruct a solution to thefirst instance from any solution of the second (the functionh). As always, there are two things to show.

1. Given an independent setS ofg vertices inG, it is possible to efficiently recover a satis- fying truth assignment toI.

For any variablex, the setS cannot contain vertices labeled bothx and x, because any such pair of vertices is connected by an edge. So assignx a value of true ifS contains a vertex labeledx, and a value of false ifS contains a vertex labeled x (ifS contains neither, then assign either value tox). SinceS hasg vertices, it must have one vertex per clause; this truth assignment satisfies those particular literals, and thus satisfies all clauses.

2. If graphG has no independent set of sizeg, then the Boolean formulaI is unsatisfiable.

249 Intro P and NP Hard problems Reducing Independent set to Vertex Cover

If S is an independent set then V − S is a vertex cover Consider any edge e in the graph Case 1: Both ends of e are in V − S Case 2: At least one end of e is S. The other end of e cannot be in S or else S won’t be independent. Thus, in both cases, at least one side of e must go to V − S. In other words V − S is a vertex cover Thus, we have reduced independent set to vertex cover problem.

32 / 38 Intro P and NP Hard problems Reducing Independent set to Clique

If S is an independent set then S is clique in G = (V, E)

For any pair v1, v2 ∈ S there is no edge in E means that there is an edge between any such pair in G0 i.e, S is a clique in G Thus, we have reduced independent set to the clique problem, while only using polynomial time and space.

33 / 38 Intro P and NP Hard problems NP-completeness Reductions We have discussed the left half of this picture We won’t discuss the right half, since the proofs are similar in many ways, but are more involved.

Figure 8.7You Reductions can find between those search reductions problems. in the text book.

All ofNP

SAT

3SAT

INDEPENDENTSET 3D MATCHING

VERTEXCOVER CLIQUE ZOE

SUBSETSUM ILP RUDRATACYCLE

TSP 34 / 38

8.3 The reductions

We shall now see that the search problems of Section 8.1 can be reduced to one another as depicted in Figure 8.7. As a consequence, they are allNP-complete. Before we tackle the specific reductions in the tree, let’s warm up by relating two versions of the Rudrata problem.

RUDRATA (s, t)-PATH RUDRATA CYCLE −→ Recall the RUDRATACYCLE problem: given a graph, is there a cycle that passes through each vertex exactly once? We can also formulate the closely related RUDRATA (s, t)-PATH problem, in which two verticess andt are specified, and we want a path starting ats and ending att that goes through each vertex exactly once. Is it possible that RUDRATACYCLE is easier than RUDRATA (s, t)-PATH? We will show by a reduction that the answer is no. The reduction maps an instance(G=(V, E),s,t) of R UDRATA (s, t)-PATH into an instance G� = (V �,E�) of RUDRATACYCLE as follows:G � is simplyG with an additional vertexx and two new edges s, x and x, t . For instance: { } { } G G�

s s

t x t

SoV =V x , andE =E s, x , x, t . How do we recover a Rudrata(s, t)-path inG � ∪{ } � ∪ {{ } { }} given any Rudrata cycleinG ? Easy, we just delete the edges s, x and x, t from the cycle. � { } { } 247 Intro P and NP Hard problems Beyond NP: PSPACE

PSPACE: The class of problems that can be solved using only polynomial amount of space. It is OK to take exponential (or super-exponential) time. Key point: Unlike time, space is reusable. Result: many exponential algorithms are in PSPACE. Consider universal formulas. We can check them in polynomial space by rerunning the same computation (say, check(v)) for each v. The space used for check is recycled, but the time adds up for dierent v’s. Note: SAT is in PSPACE Try every possible truthe assignment for variables. Thus, all NP-complete problems are in PSPACE.

35 / 38 Intro P and NP Hard problems PSPACE-hard and PSPACE-complete

PSPACE-hard: A problem Π is PSPACE-hard if for any problem Π0 in PSPACE there is a P-time reduction to Π. PSPACE-complete: PSPACE-hard problems that are in PSPACE. Examples: QBF: Quantified boolean formulae NFA totality: Does this NFA accept all strings?

Is NP ( PSPACE? We think so, but we can’t even prove P ( PSPACE

36 / 38 Intro P and NP Hard problems Classes EXP, EXP-hard and EXP-complete

The class EXP (aka EXPTIME) consists of the class of problems that can be solved in O(2nk ) time for some k. PSPACE ⊆ EXP. Intuitively, you can’t do more than EXP work using a PSPACE algorithm because you need polynomial amount of space even if the only thing you did is to count up to 2n. As usual, EXP-hard and EXP-complete are defined using P-time reductions. Generalized versions of games such as chess and checkers are EXP-hard.

We think PSPACE ( EXP, but can only prove P ( EXP. 37 / 38 Intro P and NP Hard problems Where do we stop?

These classes can be extended for ever: NEXP: Nondeterministic exponential time EXPSPACE: Problems solvable with exponential space. (nk ) EEXP: Problems solvable in double exp. time (O(22 )) for some k Examples: Equivalence of regexpr with intersection is EXPSPACE-hard. REs with negation can’t be decided even in EkEXPTIME for any k. P ⊆ NP ⊆ PSPACE ⊆ EXP ⊆ NEXP ⊆ EXPSPACE ⊆ EEXP ⊆ NEEXP ⊆ EEXPSPACE ⊆ · · · We think these classes are distinct, but have proofs only for classes that are 3 places apart, e.g., P and EXP.

38 / 38