CS2
Week 5: Algorithm analysis, searching, sorting
13
NP-Complete and NP-Hard Problems
nThe third category of problem (NP problems) can be solved in polynomial time but only assuming an unbounded number of processors. This means there is no polynomial time algorithm yet developed for these problems that would work on a single processor - but no one can prove that such an algorithm may not be possible.
nNP problems are recognised because they can all be reduced to a common base problem called the satisfiability problem. The reason NP problems are studied is because a large number of practical problems have been shown to be NP-complete or NP-hard (NP-complete have a yes/no answer whereas NP-hard problems have a more complex output).
nThe attempt to make computers ‘intelligent’ has hit the NP barrier. Most activities that we do naturally, like walking, talking, recognising objects, people and handwriting, etc, when specified to a computer become NP-complete search problems. Therefore much work has gone into developing algorithms that, while still exponential in theory, perform well in practice. The human brain is an excellent example of a computer that can solve NP problems efficiently.