david evans cs.virginia/evans
DESCRIPTION
Class 24: P=NP?. Remaining Exam 2 comments now posted. PS6 (the last one) is due Thursday, April 24. David Evans http://www.cs.virginia.edu/evans. cs302: Theory of Computation University of Virginia Computer Science. Protein model, Berger Lab UC Berkeley. Final Exam. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/1.jpg)
Class 24: Class 24: P=NP?P=NP?
David EvansDavid Evanshttp://www.cs.virginia.edu/evanshttp://www.cs.virginia.edu/evans
cs302: Theory of Computationcs302: Theory of ComputationUniversity of Virginia Computer ScienceUniversity of Virginia Computer Science
PS6 (the last one) is due Thursday, April 24.
Protein model, Berger Lab UC Berkeley
Remaining Exam 2 comments now posted.
![Page 2: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/2.jpg)
2Lecture 24: P=NP?
Final Exam• Scheduled by registrar:
– Saturday, May 3, 9am-noon (exam is scheduled for 3 hours, but will be designed to take 1.5 hours)
• No notes or books allowed– My sense from grading Exam 2 is people used their
notes as a crutch, not helpfully– Enables “easier” questions and more partial credit
• In class next Tuesday, I will hand out a “preview” of some of the exam questions and possibly discuss them
![Page 3: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/3.jpg)
3Lecture 24: P=NP?
Final Exam Topics• Everything covered through this Thursday:
– Exams 1 and 2 and comments– Problem Sets 1-6 and comments– Lectures 1-25– Sipser, Chapters 0-5, 7– Additional Readings: Aaronson (spring break), one of
the NP-completeness papers• Roughly ⅓ Exam 1 material, ⅓ Exam 2 material, ⅓
since Exam 2 (but many individual questions will combine material from multiple parts)
![Page 4: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/4.jpg)
4Lecture 24: P=NP?
P = NP ?
PNP P
NP
Option 2: P = NPOption 1: P NP
![Page 5: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/5.jpg)
5Lecture 24: P=NP?
Theological Question
If God exists (and is omnipotent), can she compute anything regular people cannot compute?
Yes: P NPBeing able to always guess right when given a decision makes you more powerful than having to try both.
No: P = NPBeing able to always guess right when given a decision does not make you more powerful than having to try both.
![Page 6: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/6.jpg)
6Lecture 24: P=NP?
NP-CompleteA language B is in NP-complete if:
2. There is a polynomial-time reduction from every problem A NP to B.
1. B NP
B
NPB
NP
Is NP-Complete a Ring or a Circle?
![Page 7: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/7.jpg)
7Lecture 24: P=NP?
NP-Complete
PNP P
NP
Option 2: P = NPOption 1: P NP
NP-C
= NP-Complete Tautology
Tautology problemsA = {}; A = Σ*
![Page 8: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/8.jpg)
8Lecture 24: P=NP?
NP-Complete
P
NP-C
Option 1a: P NP, NP-C P NP
Option 1b: P NP, NP-C P = NP
P
NP-C
Either is possible
![Page 9: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/9.jpg)
9Lecture 24: P=NP?
NP-CompleteA language B is in NP-complete if:
2. There is a polynomial-time reduction from every problem A NP to B.
1. B NP
B
NPB
NP
What does NP-Hard look like?
Hard
Not necessary for NP-Hard
![Page 10: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/10.jpg)
10Lecture 24: P=NP?
NP-Hard (if P NP)
P
NP-C
Option 1a: P NP, NP-C P NP
Option 1b: P NP, NP-C P = NP
NP-Hard
P
NP-C
![Page 11: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/11.jpg)
11Lecture 24: P=NP?
NP-Hard (if P = NP)
P
NP
Option 2: P = NP
NP-C
≈ NP-Complete
NP-Hard = All Problems - {A = {}; A = Σ*}
![Page 12: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/12.jpg)
12Lecture 24: P=NP?
NP-Hardness Recap• If P = NP:
– To show a problem is NP-Hard: show for some input it outputs “true”, and for some input it outputs “false”
• If P NP:– To show a problem is NP-Hard: show that there is a
polynomial-time reduction from some known NP-Complete problem to it
– Showing a problem is NP-Hard means there is no polynomial time solution for it
![Page 13: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/13.jpg)
13Lecture 24: P=NP?
Games and NP-Hardness
![Page 14: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/14.jpg)
14Lecture 24: P=NP?
Papers from Last Class• (Generalized) Cracker Barrel Puzzle is NP-
Complete• (Generalized) March Madness is NP-Hard
– Is it NP-Complete also?• (Generalized) Minesweeper Consistency is NP-
Complete• ... ?
Are these special cases, or is there something about “interesting” games that makes them NP-Hard?
![Page 15: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/15.jpg)
What makes a “game” a game?
![Page 16: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/16.jpg)
16Lecture 24: P=NP?
All “Interesting” Games?Initial Game State
Possible Moves
...
Winning StateWhat is a “winning path”?
![Page 17: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/17.jpg)
17Lecture 24: P=NP?
Recall: Class NP
A language is in NP if and only if it is decided by some nondeterministic polynomial time Turing Machine
A language is in NP if and only if it has a corresponding polynomial time verifier
That is, there is a certificate that can prove a string is in the language which can be checked in polynomial time.
![Page 18: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/18.jpg)
18Lecture 24: P=NP?
Game Certificate
• Given a path through a game, can you check if it is a valid winning path in polynomial time?
def verify(Path p): return isInitialState(p[0]) && isWinningState(p[-1]) && allMovesValid(p)
def allMovesValid(Path p): if (p.length <= 1) return true; return isValidMove(p[0], p[1]) && allMovesValid(p[1:])
![Page 19: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/19.jpg)
19Lecture 24: P=NP?
(One-Player) Games in NP
• The maximum number of moves is polynomial in the size of the game
• There is a polynomial-time procedure for checking a move (state, state pair) is valid
• There is a polynomial-time procedure for checking a position is a winner
How could a game be outside NP?
e.g., Hex, Sokoban
?
?
![Page 20: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/20.jpg)
20Lecture 24: P=NP?
Games in P
• The number of possible moves or the number of moves you need to lookahead to pick the right move, does not scale with the size of the game
There is a polynomial-time function from the game state to the correct move: don’t need to consider deep paths to select the right move
![Page 21: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/21.jpg)
21Lecture 24: P=NP?
NP-Complete One-Player Games
• In NP: polynomial-time certificate• Polynomial-time reduction from 3SAT (or any
other NPC problem) to the game
Essentially: no way to know if a move is correct without looking ahead all the way to the end.
All “fun” one-player games are NP-Complete: Games inside P are too easy (once you solve them always win) Games outside NP are too hard
But…we actually play finite versions of these games (in TIME(1))
![Page 22: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/22.jpg)
22Lecture 24: P=NP?
Reduction Proofs
![Page 23: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/23.jpg)
23Lecture 24: P=NP?
Reducing Reduction Proofs• Conjecture: A has some property Y.• Proof by reduction from B to A:
– Assume A has Y. Then, we know there is an M that decides A.
– We already know B does not have property Y.– Show how to build S that solves B using M.
• Since we know B does not have Y, but having S would imply B has Y, S cannot exist. Therefore, M cannot exist, and A does not have Y.
![Page 24: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/24.jpg)
24Lecture 24: P=NP?
Undecidability Proofs• Conjecture: A has some property Y.• Proof by reduction from B to A:
– Assume A has Y. Then, we know an M exists.– We already know B does not have property Y.– Show how to build S that solves B using M.
• Since we know B does not have Y, but having S would imply B has Y, S cannot exist. Therefore, M cannot exist, and A does not have Y.
Undecidability: Y = “can be decided by a TM” B = a known undecidable problem (e.g., ATM, HALTTM, EQTM, …) M = “a TM that decides A”
![Page 25: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/25.jpg)
25Lecture 24: P=NP?
NP-Hardness Proofs• Conjecture: A has some property Y.• Proof by reduction from B to A:
– Assume A has Y. Then, we know an M exists.– We already know B does not have property Y.– Show how to build S that solves B using M.
• Since we know B does not have Y, but having S would imply B has Y, S cannot exist. Therefore, M cannot exist, and A does not have Y.
NP-Hardness: Y = “is NP-Hard” B = a known NP-Hard problem (e.g., 3-SAT, SUBSET-SUM, …) M = “a TM that decides A in polynomial-time”
![Page 26: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/26.jpg)
26Lecture 24: P=NP?
The Hard Part• Conjecture: A has some property Y.• Proof by reduction from B to A:
– Assume A has Y. Then, we know an M exists.– We already know B does not have property Y.– Show how to build S that solves B using M.
• Since we know B does not have Y, but having S would imply B has Y, S cannot exist. Therefore, M cannot exist, and A does not have Y.
![Page 27: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/27.jpg)
27Lecture 24: P=NP?
Example
• Suppose we know ATM is undecidable, but do not yet know if EQTM is.
EQTM = { <A, B> | A and B are TMs where L(A) = L(B) }ATM = { <M, w> | M is TM, w is string, w in L(M) }
Conjecture: EQTM is undecidable.What do we need to do to prove conjecture?
Reduce from ATM to EQTM: show that a solver for EQTM could be used to solve ATM.
Pitfall #1: Make sure you do reduction in right direction. Showing how to solve B using MA, shows A is as hard as B.
![Page 28: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/28.jpg)
28Lecture 24: P=NP?
Building Solvers
EQTM = { <M1, M2> | M1 and M2 are TMs where L(M1) = L(M2) }
ATM = { <M, w> | M is TM, w is string, w in L(M) }
Reduce from EQTM to ATM: show that MEQ, a solver for EQTM can be used to solve ATM.
Conjecture: EQTM is undecidable.
Pitfall #2: Get the inputs to the solver to match correctly. To solve B using MA, must transform inputs to B into inputs to A.
B =A =
MB(<M, w>): machine that decides ATM
Simulate MEQ on <M1, M2>: M1 = a TM that simulates M running on w M2 = a TM that always accepts If it accepts, accept; if it rejects, reject.
![Page 29: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/29.jpg)
29Lecture 24: P=NP?
Legal Transformations• Undecidability proofs: your transformation
can do anything a TM can do, but must be guaranteed to terminate– E.g., cannot include, “simulate M and if it halts,
accept”• NP-Hardness proofs: your transformation
must finish in polynomial time– E.g., cannot include, “do an exponential search to
find the answer, and output that”
![Page 30: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/30.jpg)
30Lecture 24: P=NP?
Example: KNAPSACK Problems
• You have a collection of items, each has a value and weight
• How to optimally fill a knapsack with as many items as you can carry
Scheduling: weight = time,one deadline for all tasks
Budget allocation: weight = cost
![Page 31: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/31.jpg)
31Lecture 24: P=NP?
General KNAPSACK Problem• Input: a set of n items
{<name0, value0, weight0>, …,
<namen-1, valuen-1, weightn-1>}and maxweight
• Output: a subset of the input items such that the sum of the weights of all items in the output set is maxweight and there is no subset with weight sum maxweight with a greater value sum
Note: it is not a decision problem. Can we make it one?
![Page 32: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/32.jpg)
32Lecture 24: P=NP?
def knapsack (items, maxweight): best = {} bestvalue = 0 for s in allPossibleSubsets (items): value = 0 weight = 0 for item in s: value += item.value weight += item.weight if weight <= maxweight: if value > bestvalue: best = s bestvalue = value
return best
2n subsets
Θ(n) foreach one
Running time (n2n) Does this prove it is not in P?
![Page 33: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/33.jpg)
33Lecture 24: P=NP?
No!
To prove it is not in P, we would need to show the best possible algorithm that solves it is not
polynomial time.
![Page 34: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/34.jpg)
34Lecture 24: P=NP?
Is KNAPSACK NP-Complete?
![Page 35: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/35.jpg)
35Lecture 24: P=NP?
NP-CompleteA language B is in NP-complete if:
2. There is a polynomial-time reduction from every problem A NP to B.
1. B NP
B
NPB
NP
![Page 36: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/36.jpg)
36Lecture 24: P=NP?
KNAPSACK in NP
• Certificate: subset of items• Test in P: add up the weights of those items,
check it is less than maxweight
For the non-decision problem: ask for certificates for allvalues 1, 2, …, maxweight.
![Page 37: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/37.jpg)
37Lecture 24: P=NP?
KNAPSACK in NP-Complete
• Reduction from SUBSET-SUM to KNAPSACK:SUBSET-SUM = { <S, t> | S = {x1, …, xk} and for
some {y1, …, yl } S, Σyi = t }
Transform input to match KNAPSACK:Input: a set of n items
{<name0, value0, weight0>, …,
<namen-1, valuen-1, weightn-1>}and maxweight
![Page 38: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/38.jpg)
38Lecture 24: P=NP?
Input TransformationSUBSET-SUM (<S, t>): S = {x1, …, xk}
do something using
KNAPSACK ( <{<“x1”, x1, x1>, …,
<“xk”, xk, xk>}, t>)
KNAPSACK Input: a set of n items <{<name0, value0, weight0>, …,
<namen-1, valuen-1, weightn-1>}, maxweight>
![Page 39: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/39.jpg)
39Lecture 24: P=NP?
Output TransformationSUBSET-SUM (<S, t>): S = {x1, …, xk}
accept ifft = Σ (KNAPSACK ( <{<“x1”, x1, x1>, …,
<“xk”, xk, xk>}, t>)))
KNAPSACK Output: a subset of the input items such that the sum of the weights of all items in the output set is maxweight and there is no subset with weight sum maxweight with a greater value sum
![Page 40: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/40.jpg)
40Lecture 24: P=NP?
“Solving” NP-Hard Problems
• What do we do when solving an important problem requires solving an NP-Complete problem?
a. Give up.b. Hope P = NP.c. Solve a different problem.d. Settle for an “incorrect” answer.
![Page 41: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/41.jpg)
41Lecture 24: P=NP?
Approximation Algorithms
Sometimes it is better to produce an incorrect answer quickly, than wait (longer than the lifetime of the universe) for a correct answer.
A good approximation algorithm:1. Runs in Polynomial Time2. Produces answer within some known bound of best answer
![Page 42: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/42.jpg)
42Lecture 24: P=NP?
Greedy Algorithms
• Make locally optimal decisions• For NP-Hard problems: cannot guarantee you
find the best answer this way
![Page 43: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/43.jpg)
43Lecture 24: P=NP?
Greedy Knapsack Algorithmdef knapsack_greedy (items, maxweight): result = [] weight = 0 while True: # try to add the best item weightleft = maxweight - weight bestitem = None for item in items: if item.weight <= weightleft \ and (bestitem == None \ or item.value > bestitem.value): bestitem = item if bestitem == None: break else: result.append (bestitem) weight += bestitem.weight return result
Running Time(n2)
![Page 44: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/44.jpg)
44Lecture 24: P=NP?
Is Greedy Algorithm Correct?No.Proof by counterexample: Consider input items = {<“gold”, 100, 1 >, <“platinum”, 110, 3> <“silver”, 80, 2 >} maxweight = 3
Greedy algorithm picks {<“platinum”>}value = 110, but {<“gold”>, “silver”>} has weight <= 3 and value = 180
![Page 45: David Evans cs.virginia/evans](https://reader036.vdocument.in/reader036/viewer/2022062322/5681451a550346895db1dbb2/html5/thumbnails/45.jpg)
45Lecture 24: P=NP?
The Moral
Life is (NP-) Hard, but probably not (NP-)Complete…
Thursday: Karsten Nohl will talk about interesting theory problems in breaking cryptosystems