np p and np
play

NP P and NP For all of these problems the following is true: If the - PowerPoint PPT Presentation

CS500 CS500 NP P and NP For all of these problems the following is true: If the answer is Planar3Coloring yes, then it is easy to show that this is indeed correct. An algorithm C ( , ) is a polynomial-time certifier for Sat 3Sat


  1. CS500 CS500 NP P and NP For all of these problems the following is true: If the answer is Planar3Coloring “yes”, then it is easy to show that this is indeed correct. An algorithm C ( · , · ) is a polynomial-time certifier for Sat 3Sat 3Coloring IndependentSet problem X if there is a polynomial p ( · ) such that for every instance I X we have: the solution to I X is “yes” if and only if VertexCover • there is a string t of length | t | ≤ p ( | I X | ) such that Clique • C ( I X , t ) returns “yes”, and HamiltonianCycle • C ( · , · ) runs in polynomial time. SetCover SubsetSum Note that if the answer to I X is “no”, there may be no HamiltonianPath certificate for this. Partition • Let P be the class of all problems that have a polynomial time algorithm. LongestPath • Let NP be the class of problems that have a What do all these problems have in common? polynomial-time certifier. CS500 CS500 P and NP P, NP, and EXP Clearly we have P ⊆ NP . Let EXP be the class of problems that have an exponential time algorithm. (Here, exponential time means O ( n p ( n ) ) , for So far, nobody has been able to find a problem that is in NP, some polynomial p ). but not in P. For example O (1 . 2 n ) , O (2 n ) , O ( n !) , O (2 n 3 ) . So we do not know if P � NP or P = NP . We have P ⊆ NP ⊆ EXP . This is one of the millenium problems, and worth a million dollars. It is known that P � = EXP . Is it harder to find solutions than to check them? Which of the two inclusions is proper? If P = NP then “creativity can be automated”. For instance, proofs for mathematical theorems can be found automatically.

  2. CS500 CS500 NP-hardness and NP-completeness Why is NP-completeness interesting? A problem X is called NP-hard iff for every problem Y ∈ NP Theorem: Let X be an NP-complete problem. Then X has a we have polynomial time algorithm if and only if P = NP . Y ≤ X. Proof: In other words, X is harder than all problems in NP. ⇐ : From P = NP and X ∈ NP follows that X has a polynomial-time algorithm. A problem X is called NP-complete iff • X ∈ NP, and ⇒ : Consider any Y ∈ NP . • X is NP-hard We have Y ≤ X . Since X has a polynomial-time algorithm, In other words, X is one of the hardest problems in NP. this implies that Y has a polynomial-time algorithm. Cook-Levin Theorem: Sat is NP-complete. Therefore Y ∈ P . It follow NP ⊆ P , and therefore NP = P . CS500 CS500 Why is NP-completeness interesting? How to prove NP-completeness Theorem: Let X be an NP-complete problem. Then X has a To prove that a problem X is NP-complete, we need to polynomial time algorithm if and only if P = NP . • show that X ∈ NP (by giving a polynomial-time certifier for X ) Finding a polynomial time algorithm for one NP-complete • show that Y ≤ X for some NP-hard problem Y . problem is equivalent to finding one for all problems in NP! We believe P � = NP , and so it is unlikely that an NP-complete Hundreds and thousands of different problems from many problem has an efficient algorithm. areas of science and engineering have been shown to be At least many smart people have failed to find an algorithm for NP-Complete . these problems. It’s a surprisingly common phenomenon. All the hard problems we studied are NP-complete, since there is a reduction from Sat .

  3. CS500 CS500 Why prove NP-completeness? Examples When you encounter a problem for which you cannot find an Register allocation: Assign variables to (at most) k registers efficient algorithm, you can prove that it is NP-complete. such that variables needed at the same time are not in the same register. • It shows to your boss/advisor that you are not too lazy to find a good algorithm. Interference graph: Nodes are variables, with an edge when variables are needed at the same time. • A paper with a heuristic or approximation algorithm is Register allocation is equivalent to coloring the graph with k more likely to be accepted if you can show that the colors. problem is hard. 3Coloring ≤ k -RegisterAllocation , • It makes you feel good. for k ≥ 3 . CS500 CS500 Examples Subset Sum and KnapSack Class room scheduling: Given n classes and their meeting Subset Sum Problem: Given n integers a 1 , a 2 , ..., a n and a times, are k class rooms sufficient? target B , is there a subset of S of { a 1 , ..., a n } such that the numbers in S add up precisely to B ? Again equivalent to k -Coloring . Knapsack: Given n items with item i having size s i and profit p i , a knapsack of capacity B , and a target profit P , is there a Cellular telephone systems break up the frequency band into subset S of items that can be packed in the knapsack and the small bands. A cell phone tower gets one band. If towers are profit of S is at least P ? too close, they cannot get the same band. SubsetSum ≤ Knapsack The problem of assigning frequency bands to cell phone towers reduces to k -Coloring .

  4. CS500 CS500 The input encoding matters Lecture Planning We want to plan a sequence of ℓ guest lectures. There are n Subset Sum can be solved in O ( nB ) time using dynamic possible speakers. In week i a subset L i of these speakers is programming (exercise for you). available. This implies that problem is hard only when (some of) Afterwards the students will do p projects about topics from numbers a 1 , a 2 , ..., a n are exponentially large compared to n . the lectures. Project j requires at least one of the speakers The input encoding matters! When input is encoded in unary, from a subset P j of the speakers. the problem is in P . Example: ℓ = 2 , p = 3 , n = 4 speakers. L 1 = { A, B, C } , L 2 = { A, D } . Number problems of the above type are said to be weakly NP-Complete . P 1 = { B, C } , P 2 = { A, B, D } , P 3 = { C, D } . LecturePlanning is clearly in NP. Is it also NP-hard? CS500 NP-hardness proof Reduction from 3Sat : For each variable x i , make two lecturers x i and ¯ x i . In week i , we can choose between them: L i = { x i , ¯ x i } . Make a project for each clause! Reduction from VertexCover : Given graph G = ( V, E ) and k > 0 , create a lecturer z v for each node v . Set ℓ = k and let L 1 = L 2 = . . . = L k = { z v | v ∈ V } . Make a project j for each edge e j = ( v, w ) , where P j = { z v , z w } . More examples in the homework!

Recommend


More recommend