NP-Complete Problems
暂无分享,去创建一个
There are many practical computational problems for which no effective computer algorithms have been devised. Many of these seemingly intractable problems belong to a class of problems known as NP-complete problems. NP stands for nondeterministic polynomial, a concept discussed below. The only known algorithms for these problems require an amount of time that is an exponential function of the problem size (measured by some parameter, n, on which the problem depends). Such algorithms are called exponential time algorithms. Technically, problem size is measured by the number of bits in the problem description, but often the running time of an algorithm is more conveniently expressed in terms of some other (roughly equivalent) measure of the amount of input data. For problems of size n, exponential time algorithms may take time 2n, 2n1/2, 3n2, etc. In contrast, many problems can be solved by algorithms that require an amount of time that is a polynomial function of the problem size. These algorithms are called polynomial time algorithms. For problems of size n, they may take time n, n log n, n2, n3, etc. Because polynomials grow more slowly than exponentials, polynomial time algorithms (even with a large exponent) are efficient in comparison with exponential time algorithms. As a first cut at categorizing algorithm complexity, polynomial time algorithms are regarded as "efficient," and exponential time algorithms as "inefficient."
[1] Richard M. Karp,et al. Reducibility Among Combinatorial Problems , 1972, 50 Years of Integer Programming.
[2] Yishai A. Feldman,et al. Algorithmics: The Spirit of Computing , 1987 .
[3] David S. Johnson,et al. Computers and Intractability: A Guide to the Theory of NP-Completeness , 1978 .
[4] Stephen A. Cook,et al. The complexity of theorem-proving procedures , 1971, STOC.