But it may be more realistic to consider what happens if NP \neq P. The main change for CS will be the shift in the focus of research.
If the proof is correct, there will be a brief flurry in which people find simplifications, restatements, and shallow applications to other areas of research.
But for three decades this has been the motivating problem in theoretical computer science. I think there will be a lot of soul searching, and perhaps a subdued atmosphere in the research community, but then attention will turn back to the topics in which people are actively exploring. However, there will perhaps never again be such a unifying, fundamental problem in CS.
How is this possibly safe to assume? The “heuristic” methods aim for a “good enough” solution rather than “the best solution”. Whyever would a polynomial time algorithm for exactly solving an NP-hard problem be faster than polynomial time “heuristic” algorithms (which depending on the acceptable solution quality can be relatively computationally simple)?
There are many things built on top of the fact that certain types of problems are not easily solvable - cryptography being the most obvious - so if it could be proved that algorithms that make these problems easily-solvable could exist, it would shatter the line of thinking about these types of problems.
The way I like to think about NP is: are there certain types of problems which we, as smart as we might be, cannot easily solve, not because we aren't smart enough but because of the nature of the problem itself?
(I have no formal education in this area so this is just my layman's attempt at an answer)
Of course, that's still a blow to cryptography, since polynomial increases in computing power will make cryptography-breaking algorithms run meaningfully faster. Still, I don't think it would immediately devastate cryptography.
That's not entirely accurate. There are many problems that are untractable (i.e. can't solve them because of the nature of the problem) but have nothing to do with P=NP. Consider the halting problem, for instance.
Can you elaborate some more on this? I'd like to learn more about this area. Are you referring to problems for which no polynomial time solution exists, and there is also no polynomial time method for verifying a solution?
> The way I like to think about NP is: are there certain types of problems which we, as smart as we might be, cannot easily solve, not because we aren't smart enough but because of the nature of the problem itself?
If you read it one way, it sounds as if P=NP would allow us to solve every formal problem. It doesn't. One very interesting example:
The concept of Kolmogorov Complexity. I'm not a CS theorist, so I can only give my layman interpretation, but if I understand it well it goes like this: given a particular string of bits, the Kolmogorov Complexity relates to the shortest possible program that can describe this string. In effect, that means: the ultimate compression. Well, the whole theory of KC says that you can't find this shortest possible program for every string. Not because it takes too much time to check very possible combination (P=?=NP) but because of the nature of the problem.
This would mean that the two largest results in CS in the past 20 years have both come from working with feet both in CS and physics (Shor's work on factorization with quantum computers being the other huge result, IMO).
I'd love to see undergrad CS, at least the theory tracks, to require a physics concentration in quantum and statistical physics.
Since BPP (http://en.wikipedia.org/wiki/BPP) essentially encompasses problems that can be solved with very high probability chance in polynomial time (the definition requires probability only higher than 50%, but you can iterate a polynomial amount of time, and reach probability arbitrary close to 1), it is expected that BPP = P. Not to mention that the huge amount of derandomization techniques are more evidence that this is very likely to be true.
There are many possible scenarios, however. This blog post http://rjlipton.wordpress.com/2009/07/03/is-pnp-an-ill-posed... describes some of them.
The tie to physics is particularly interesting: for example if Quantum mechanics was a nonlinear theory then we could physically solve NP complete problems [1]. Note the implication, this is not to say p = np => QM nonlinear. The utopian consequences of p = np are discussed very engagingly by Scott Aaronson here [2].
I suggest you also check out his blog as well - his writing style is clear and fun. Plus there was a recent discussion there that linked complexity theory to foundational physics.
Essentially covers cryptography which isn't based on hard-to-factor equations. Though it's not the same area, similar solutions / approaches might survive a p=np discovery + algorithm.