nextupprevious
Next:10.2 Optimization Problems and Decision ProblemsUp:10. Introduction to NP-CompletenessPrevious:10. Introduction to NP-Completeness

10.1 Importance of NP-Completeness

Most algorithms we have studied so far have polynomial-time running times. According to Cormen, Leiserson, and Rivest, polynomial-time algorithms can be considered tractable for the following reasons.
(1)
Although a problem which has a running time of say O(n20) or O(n100) can be called intractable, there are very few practical problems with such orders of polynomial complexity.
(2)
For reasonable models of computation, a problem that can be solved in polynomial time in one model can also be solved in polynomial time on another.
(3)
The class of polynomial-time solvable problems has nice closure properties (since polynomials are closed under addition, multiplication, etc.)
The class of NP-complete (Non-deterministic polynomial time complete) problems is a very important and interesting class of problems in Computer Science. The interest surrounding this class of problems can be attributed to the following reasons.
1.
No polynomial-time algorithm has yet been discovered for any NP-complete problem; at the same time no NP-complete problem has been shown to have a super polynomial-time (for example exponential time) lower bound.
2.
If a polynomial-time algorithm is discovered for even one NP-complete problem, then all NP-complete problems will be solvable in polynomial-time.
It is believed (but so far no proof is available) that NP-complete problems do not have polynomial-time algorithms and therefore are intractable. The basis for this belief is the second fact above, namely that if any single NP-complete problem can be solved in polynomial time, then every NP-complete problem has a polynomial-time algorithm. Given the wide range of NP-complete problems that have been discovered to date, it will be sensational if all of them could be solved in polynomial time.

It is important to know the rudiments of NP-completeness for anyone to design "sound" algorithms for problems. If one can establish a problem as NP-complete, there is strong reason to believe that it is intractable. We would then do better by trying to design a good approximation algorithm rather than searching endlessly seeking an exact solution. An example of this is the TSP (Traveling Salesman Problem), which has been shown to be intractable. A practical strategy to solve TSP therefore would be to design a good approximation algorithm. This is what we did in Chapter 8, where we used a variation of Kruskal's minimal spanning tree algorithm to approximately solve the TSP. Another important reason to have good familiarity with NP-completeness is many natural interesting and innocuous-looking problems that on the surface seem no harder than sorting or searching, are in fact NP-complete.


nextupprevious
Next:10.2 Optimization Problems and Decision ProblemsUp:10. Introduction to NP-CompletenessPrevious:10. Introduction to NP-Completeness
eEL,CSA_Dept,IISc,Bangalore