One of Clay Mathematical Institute millenium problems. Although it is a mathematical problem, it has a much different flavour than other maths problems, and also far reaching philosophical implications.

It is about problems we understand versus problems we want to understand.

1. Plan

Computation is everywhere.

Algorithm, the language of computation.

Efficient algorithms: P.

Efficient verification: NP.

Universality: NP completeness.

Implications.

2. Computation

Computation: every process which is a sequence of simple local steps. Examples:

Question: Do all problems which admit an algorithm also admit a class P algorithm ?

5. The class NP

Search problems: Shortest path, Pattern matching, Factoring, Theorem proving, Sudoku are instances of search problem. They may be of variable difficulty, but they share a common property: if someone hands you a solution for a given instance, it is easy to check that it is indeed a solution. Even checking a mathematical proof is easy, provided the proof is written in a formal language.

This is what class NP is about. It was defined formally by Cook and Levin in 1971, but the idea can be found in a letter of Gödel to von Neumann in 1956.

NP does NOT mean not polynomial. It means nondeterministically polynomial.

The P versus NP problem is wether for every search problem for which solutions can be efficiently checked, solutions can in fact be easily found.

Most people think that NP is not equal to P, i.e. finding is harder than checking.

6. What is in NP ?

Most everyday life search problems are in NP. Engineering (given constraints, find a suitable design),… Indeed, checking wether the design meets the constraints is easy (if not, we probably would not start looking).

If , this would mean that creativity can be automated. Utopia!

7. Universality: NP-completeness

Are Sudoku, Theorem proving, Factoring hard ? We do not know, but

Theorem 1 If Sudoku is easy, then so are Theorem proving and Factoring.

In fact, a Sudoku solver can solve any NP problem.

NP-complete problems are all equivalent: if one turns out to be easy, all of them will be.

Theorem proving (with a prescribed length of the proof) is NP-complete. We do not know about Factoring.

Question from audience: But Factoring has a subexponential algorithm ? Answer: and so what ? There exist NP-complete problems which have subexponential algorithms.

Thousands of problems in all fields of science have been shown to be NP-complete (e.g. protein threading problem with sequence amino-acid preference is NP-complete).

Possibly, nature deals only with special inputs. Inputs are bounded (by the number of atoms in the universe), but this does not matter, since limitations of non P algorithms are visible on ridiculously small inputs.

Or the model is wrong, and computers cannot do everything. If so, can one use natural processes to enhance the power of computers ? Yes! This is how randomness, and later quantum physics, were introduced in Turing’s model.

9. Positive consequences of

Are hard problems useful ? Yes!

If Factoring is hard, then personal data are safely stored and exchanged, all of us bank on that.

10. Questions from the audience

10.1. What progress has been made ?

We know that some very weak models (where algorithms are severely restricted) do not solve all NP-problems.

We know restrictions on certain methods: we can explain why certain techniques for proving lower bounds on complexity must fail.

Interesting interaction with statistical physicists.

10.2. Further questions

Power of quantum computation: Shor’s result that Factoring is P in the quantum computation model came as a surprise (although Feynman alluded to this possibility). Possibly, this might lead to discovery of flaws in quantum physics. Research is active, since there are many problems for which we do not have fast quantum algorithms.

Parallelism in nature: In the weather game, every atom plays the role of a computer which optimizes its own position, temperature, speed… So nature is massively parallel. Nevertheless, the number of processors is linear in the input, so it does not matter for P versus NP.