Back to 07-129 homepage


Dr Kapoutsis – Theory of Computation









What is a decision problem?

It’s a question where the answer is always either “yes” or “no.” Imagine you are trying to determine if a certain algorithm achieves a desired effect (i.e., solves a problem) under given conditions. For example, “Is this graph connected?” is a decision problem. In essence, it’s a problem that asks whether a certain condition or property holds true for a given input.

What does it mean for a decision problem to be decidable?

A decision problem is decidable if there exists an algorithm that will always give you a definitive “yes” or “no” answer, no matter what input you throw at it. It’s like having a universal solution manual that can always tell you the answer to any question in a particular class of problems. Formally, it means there’s a Turing machine that will halt with an answer for every possible input to the problem. If you can build such a machine, the problem is decidable. If you can't, the problem might be undecidable, a domain where computation runs into the limits of what is theoretically solvable.

What is the class P? What is the class NP?

Think of class P as the realm of problems that are solvable quickly (in polynomial time) by a deterministic computer—a kind of computational model where efficiency is paramount. Problems in P are computations which can be made in a predictable and manageable manner.

Class NP, on the other hand, is a bit more enigmatic. It stands for "nondeterministic polynomial time" and includes problems for which a proposed solution can be verified quickly (in polynomial time) by a deterministic machine. These problems are like puzzles where, if someone hands you a potential solution, you can quickly verify its correctness. However, finding that solution might be a far more daunting task.

What is the intuitive meaning of the “P versus NP” question?

The P versus NP question is one of the greatest questions in computer science. It asks: if we can verify a solution to a problem quickly (in polynomial time), can we also find that solution quickly? In other words, is the ability to check a solution as powerful as the ability to find it? If P equals NP, then every problem where solutions can be verified quickly can also be solved quickly. If P does not equal NP, there exist some problems where verifying a solution is easy, but finding that solution is inherently difficult and time-consuming. It’s like asking whether the ability to quickly check a magic spell’s effect means we can also conjure it up just as fast.

If you resolve the P versus NP question, how much richer will you be?

Resolving the P versus NP question would be like solving the world's most elusive mystery. If you prove P = NP, you’d unlock the ability to solve many currently intractable problems efficiently, revolutionizing fields from cryptography to logistics. If P ≠ NP, you’d cement the understanding of the limits of computational power and the inherent complexity of certain problems.

In both cases, the intellectual and practical ramifications would be immense, possibly earning you fame, accolades, and a place in the annals of mathematical and computational history. In a more literal sense, the Clay Mathematics Institute offers a $1 million prize for solving this problem, so you could get quite a bit richer!