Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Well, assuming this proof holds up (and there are already links in the comments to other proofs that P != NP) they have proven what most people already assume, that the two are not equivalent. The consequences of P != NP are mostly just that people can stop spending time looking for ways for P to equal NP. Which is valuable, but doesn't have much "real-world practical usage"


[deleted]


A proof of P = NP would have huge practical consequences. A proof that P != NP "only" represents a huge advance in the theory of computation.


A proof that P != NP also represents the death of an era in which CS could look upon a single problem as motivation in hundreds of different directions.


True, but if the history of mathematics is a good guide CS will find other Big Problems in the future.


I hear this statement frequently when P = NP is discussed, but as someone not involved in computer science I have a hard time understanding it.

Could you explain what some of those consequences be? Does P = NP really need to be proved to achieve those practical consequences? Can't it just be assumed to be true and then see what the result is?


Intuitively:

NP questions take a long time to answer.

P questions take much less time.

The statement "P = NP" means that any NP question can be transformed into a P question. Answering the P question gives you an answer to the NP question.

So, if P = NP, then we can answer questions that we thought were slow, much more quickly than we would have thought possible.

Proving P = NP would (presumably) give you that method for transforming NP problems into P problems. So you would suddenly be able to figure things out easily that currently are hard and take a lot of computing power.

It's often assumed that P = NP would make cryptographic problems much easier to break, but apparently that's not really the case: http://world.std.com/~reinhold/p=np.txt


Yeah, the common complaint against "P=NP would break cryptography" is "but what if the polynomial algorithm for (say) SAT is n^10000?". That is not very likely, in my opinion. Even though "polynomial" is not equivalent to "efficient", in practice all problems that have a polynomial algorithm also have an efficient algorithm.


There are many problems that have polynomial algorithm, that is not especially fast for practical problems (matrix multiplication comes to mind for example, for which there isn't even any proof that fastest known algorithm is in fact optimal)


That's not a very good example - square matrix multiplication is O(n^1.5) (where n is the input size) and extremely fast in practice.

(Though, as you say, there could still be an O(n) algorithm - this is not known).

What I said is true even for linear programming (a P-complete problem) - it has polynomial and efficient algorithms - though the latter are actually not polynomial in the worst case. :)


Can you give a reference for a matrix multiplication algorithm which is O(n^1.5) ? thanks.


Note that I defined n as the input size...


If I remember correctly, any proof of P = NP would be have to be constructive, so it would immediately give us a fast algorithm for ALL NP-complete problems, as they can all be reduced to each other.


It isn't actually _necessary_ for a P=NP proof to be constructive. A constructive proof would probably be easier to reason through, but it is prossible to prove the existence of an algorithm without providing one.


Not so. Pure existence proofs can be non-constructive.

The first historical example of an important proof which was non-constructive was Hilbert's Basis Theorem in 1888, which solved a famous problem posed by Paul Gordon. It is now viewed as in some sense being the first salvo in the debate over constructivism in the 20th century. See http://en.wikipedia.org/wiki/David_Hilbert#The_finiteness_th... for more.


If P = NP were proved to be true, it would tell us that there are solutions to a certain class of problems. Assuming it's true doesn't give us those solutions.

Wikipedia should answer most of your questions regarding the consequences:

http://en.wikipedia.org/wiki/P_%3D_NP#Consequences_of_proof


To be a little more precise, proving P=NP would mean that there are algorithms to solve those problems that take polynomial time (can be calculated with a polynomial).

NP problems can be solved, it's just slow (think brute force method, running through all the possibilities).


Not true. A polynomial time algorithm for NP complete programs is known (if P=NP that is). You just need to prove P=NP to prove that it is polynomial time.

http://en.wikipedia.org/wiki/P_versus_NP_problem#Polynomial-...


Yeah, in general it's believed that any proof that P != NP would likely provide a lot of insight into which factors of an NP system make it difficult, and thus potentially allow us to divide even cleaner problems which are "easily" solved and problems which are "difficult to solve."


The huge consequences are if P = NP (which no-one really believes).




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: