Presentation on theme: "Complexity. P=NP? Who knows? Who cares? Lets revisit some questions from last time – How many pairwise comparisons do I need to do to check if a sequence."— Presentation transcript:
P=NP? Who knows? Who cares? Lets revisit some questions from last time – How many pairwise comparisons do I need to do to check if a sequence of n- numbers is sorted? – If I have a procedure for checking whether a sequence is sorted, is it reasonable to sort a sequence of numbers by generating permutations and testing if any of them are sorted? – What major CS theorem did someone claimed to have proved recently? Intelligence is putting the test part of Generate&Test into generate part…
Exactly when do we say an algorithm is slow? We kind of felt that O(N! * N) is a bit much complexity How about O(N 2 )? O(N 10 )? Where do we draw the line? – Meet the Computer Scientist Nightmare – So Polynomial ~ easy & exponential ~ hard – 2 n eventually overtakes any n k however large k is.. How do we know if a problem is really hard to solve or it is just that I am dumb and didnt know how to do better? 2n2n
Classes P and NP Class P If a problem can be solved in time polynomial in the size of the input it is considered an easy problem – Note that your failure to solve a problem in polynomial time doesnt mean it is not polynomial (you could come up with O(N* N!) algorithm for sorting, after all Class NP Technically if a problem can be solved in polynomial time by a non-deterministic turing machine, then it is in class NP Informally, if you can check the correctness of a solution in polynomial time, then it is in class NP – Are there problems where even checking the solution is hard?
Tower of Hanoi (or Brahma) Shift the disks from the left peg to the right peg – You can lift one disk at a time – You can use the middle peg to park disks – You can never ever have a larger disk on top of a smaller disk (or KABOOM) How many moves to solve a 2-disk version? A 3-disk one? An n-disk one? – How long does it take (in terms of input size), to check if you have a correct solution?
How to explain to your boss as to why your program is so slow… I can't find an efficient algorithm, I guess I'm just too dumb. I can't find an efficient algorithm, because no such algorithm is possible. I can't find an efficient algorithm, but neither can all these famous people.
The P=NP question Clearly, all polynomial problems are also NP problems Do we know for sure that there are NP problems that are not polynomial? If we assume this, then we are assuming P != NP If P = NP, then some smarter person can still solve a problem that we thought cant be solved in polytime – Can imply more than a loss of face… For example, factorization is known to be an NP-Complete problem; and forms the basis for all of cryptography.. If P=NP, then all the cryptography standards can be broken! NP-Complete: hardest problems in class NP EVERY problem in class NP can be reduced to an NP-Complete problem in polynomial time --So you can solve that problem by using an algorithm that solves the NP-complete problem
Academic Integrity What it means Typical ASU policy – Homeworks – Exams Take-Home Exams – Term papers
Scholarship Opportunities General Scholarships The FURI program NSF REU program
Is exponential complexity the worst? After all, we can have 2 2 More fundamental question: Can every computational problem be solved in finite time? Decidability --Unfortunately not guaranteed [and Hilbert turns in his grave] 2n2n
Some Decidability Challenges In First Order Logic, inference (proving theorems) is semi-decidable – If the theorem is true, you can show that in finite time; if it is false you may never be able to show it In First Order Logic + Peano Arithmatic, inference is undecidable – There may be theorems that are true but you cant prove them [Godel]
Reducing Problems… Mathematician reduces mattress on fire problem Make Rao Happy Make Everyone in ASU Happy Make Little Tommy Happy Make his entire family happy General NP- problem Boolean Satisfiability Problem 3-SAT
Practical Implications of Intractability A class of problems is said to be NP-hard as long as the class contains at least one instance that will take exponential time.. What if 99% of the instances are actually easy to solved? --Where then are the wild things?
Satisfiability problem Given a set of propositions P 1 P 2 … P n..and a set of clauses that the propositions must satisfy – Clauses are of the form P 1 V P 7 VP 9 V P 12 V ~P 35 – Size of a clause is the number of propositions it mentions; size can be anywhere from 1 to n Find a T/F assignment to the propositions that respects all clauses Is it in class NP? How many potential solutions? Canonical NP-Complete Problem. 3-SAT is where all clauses are of length 3
Example of a SAT problem P,Q,R are propositions Clauses – P V ~Q V R – Q V ~R V ~P Is P=False, Q=True, R=False as solution? Is Boolean SAT in NP?
Hardness of 3-sat as a function of #clauses/#variables #clauses/#variables Probability that there is a satisfying assignment Cost of solving (either by finding a solution or showing there aint one) p=0.5 You would expect this This is what happens! ~4.3 Phase Transition!
Phase Transition in SAT Theoretically we only know that phase transition ratio occurs between 3.26 and 4.596. Experimentally, it seems to be close to 4.3 (We also have a proof that 3-SAT has sharp threshold)