You may recall when we discussed the The Poincare Conjecture and that it was also one of the seven Clay Institute Millennium Prize Problems. Those are seven of the most interesting and difficult open problems in math research as of May 24th, 2000. One of the other Millennium Prize Problems is, in a line:
Does P = NP?
In the last few days the internet is abuzz with a discussion of a preprint by Vinay Deolalikar, a principal research scientist at HP which contains a claimed proof of P≠NP. Heck, it’s already appeared on slashdot! Where it was immediately analyzed by their experts (tongue in check, of course):
by Anonymous Coward writes: on Sunday August 08, @06:31PM (#33183704)
by Anonymous Coward writes: on Sunday August 08, @06:39PM (#33183766)
We at OU MathClub HQ aren’t qualified to evaluate the correctness of the paper. But we can say a few things.
One the one hand, people were amazed in 2002 when Manindra Agrawal, Neeraj Kayal and Nitin Saxena announced a polynomial time test for the primeness of an n digit number (Kayal and Saxena were undergraduates!) in a paper called “PRIMES is in P”. And, of course, there is the now famous case of Pereleman and the Poincare Conjecture.
On the other hand, slashdot themselves posted about another proof of P not equal to NP and in 2008 and announced a proof of the famous Riemann Hypothesis (both of which turned out to have fatal errors).
P stands for problems which can be solved by an algorithm which runs in polynomial time; that is, there is an algorithm which can solve the problem and the amount of time it takes is a polynomial function of the size of the input. For example, finding the GCD of two integers is a problem in P. Another example, thanks to the AKS algorithm mentioned above, is testing whether a given number is prime or not.
NP are problems for which there does not necessarily exist an algorithm to find an answer in polynomial time, but there does exist a way to test the answer within polynomial time. If a problem is in P, then it is in NP since we don’t forbid polynomial time solutions. So we always have
For example, imagine I have a combination lock with 10 numbers on the dial and the combination is n numbers long. If you find the combination by an exhaustive (and exhausting!) search, then you will have to check different combinations. That is, solving the problem by direct search is exponential as a function of how many numbers are in the combination. But if I give you the solution, you can check it in a small amount of time (polynomial in the number n). That is, this dumb algorithm shows that the problem is at least in NP.
But of course if I was much more clever, then I could perhaps come up with a solution which actually is polynomial in n. The million dollar question is then, does there actually exist problems which are in NP but not in P? That is, are there problems which cannot be solved in polynomial time?
Of course this is an interesting problem for us math folks, but why should your mom care? Well, if she shops online, then very likely the encryption used depends on it being very, very hard to factor large numbers. What does very, very hard mean? To be precise, there is no known algorithm to factor large numbers which is of polynomial time. Factoring is an example of a NP problem. It took over 2 years to factor a 232 digit number using a large number of computers. Which means that the by the time people have factored the number and cracked the code, your mom (and her credit card number) is long gone from the amazon website.
Of course, if , then that means that there is a polynomial time algorithm to factor large numbers. If someone finds that algorithm, then internet security, banking, and the folks at the NSA are suddenly going to have their hands full! Society is banking on the fact that factoring integers is in NP but not P.
It would be reassuring to know that indeed, ! Homer Simpson, though, doesn’t seem worried about it: