 NPcomplete problem

any of a class of computational problems for which no efficient solution algorithm has been found. Many significant computerscience problems belong to this class—e.g., the traveling salesman problem, satisfiability problems, and graphcovering problems.Socalled easy, or tractable, problems can be solved by computer algorithms that run in polynomial time; i.e., for a problem of size n, the time or number of steps needed to find the solution is a polynomial function of n. Algorithms for solving hard, or intractable, problems, on the other hand, require times that are exponential functions of the problem size n. Polynomialtime algorithms are considered to be efficient, while exponentialtime algorithms are considered inefficient, because the execution times of the latter grow much more rapidly as the problem size increases.A problem is called NP (nondeterministic polynomial) if its solution can be guessed and verified in polynomial time; nondeterministic means that no particular rule is followed to make the guess. If a problem is NP and all other NP problems are polynomialtime reducible to it, the problem is NPcomplete. Thus, finding an efficient algorithm for any NPcomplete problem implies that an efficient algorithm can be found for all such problems, since any problem belonging to this class can be recast into any other member of the class. It is not known whether any polynomialtime algorithms will ever be found for NPcomplete problems, and determining whether these problems are tractable or intractable remains one of the most important questions in theoretical computer science. When an NPcomplete problem must be solved, one approach is to use a polynomial algorithm to approximate the solution; the answer thus obtained will not necessarily be optimal but will be reasonably close.
* * *
Universalium. 2010.