Millennium Problem: P versus NP
Computer
scientists classify problems based on how hard they are to solve, for example P
and NP complexity classes.
P
classes, Polynomial classes, are a polynomial function of the size of the
inputs and are generally “easy”
This means that when the size of the inputs grows exponentially then the time to solve them does not. Take the example of multiplication. If we keep multiplying with bigger and bigger digits, the processing time of the calculator does not really change to get the answer. This is largely due to the fantastic algorithm it uses.
NP stands for non-deterministic polynomial time.
Non deterministic means we don’t have a defined way to solve them and rely on
heuristics like trial and error. For example, if we have to factorize a very
large prime numbers, we will have to use trial and error to find the solution.
The solving time would grow exponentially as the size of the prime number
increases. In fact, a large part of our internet security is based on the fact
that this is a NP problem. Also in these kind of problems, finding the solution
is very hard if not impossible but checking if your answer is correct is not
hard. So in the case of the large prime number if we are given the factors, we
can quite easily check if they are correct or not (by multiplying) but finding
the factors is very hard. So they are easy to check but impossible to solve. NP-
Complete or (NPC) problems are the hardest problems in this class.
The
fundamental question is - can we convert NP hard problems to P problems which we
can solve? This is the million dollar question no pun intended. If we can, then
Mathematicians and scientists become redundant because their originality and
creativity is replaced by an algorithm. Problems like protein folding can be
easily solved and we will find a cure for cancer.
So
what do you think?
P = NP
Or
P ≠ NP
Proving
either will get you a million dollars!
Great work!
ReplyDelete